gpt4 book ai didi

Android CameraX - 录制视频时进行人脸检测

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:14 27 4
gpt4 key购买 nike

我在 Android 中使用带有 Firebase ML Kit 的新库 CameraX,并在设备可以检测的每一帧中检测人脸。

所以我这样设置 CameraX:

CameraX.bindToLifecycle(this, preview, imageCapture, faceDetectAnalyzer)

所有工作都很流畅,现在,当我这样做的时候,我想录制一段视频。

所以基本上我想在录制视频时检测人脸

我试过:

CameraX.bindToLifecycle(this, preview, imageCapture, faceDetectAnalyzer, videoCapture)

但我收到一个错误消息,说参数太多,所以我猜这不是正确的方法。

我知道这个库仍处于 alpha 阶段,但我想有办法做到这一点。

即使没有 jet,还有什么方法可以在使用 Firebase ML 录制视频时实现人脸检测?

最佳答案

我没有经常使用 CameraX,但我通常使用 Camera 2 API 和 Firebase ML Kit。

要同时使用这两个 API,您应该从预览大小 ImageReader 中获取 Image 回调。在该回调中,您可以使用该图像通过 API 创建一个 FirebaseVisionFace 并用它做任何您想做的事情。使用 Kotlin 和协程,它应该如下所示:

 private val options: FirebaseVisionFaceDetectorOptions = FirebaseVisionFaceDetectorOptions.Builder()
.setContourMode(FirebaseVisionFaceDetectorOptions.ALL_CONTOURS)
.build()

val detector = FirebaseVision.getInstance().getVisionFaceDetector(options)

suspend fun processImage(image: Image): FirebaseVisionFace {
val metadata = FirebaseVisionImageMetadata.Builder()
.setWidth(image.width) // 480x360 is typically sufficient for image recognition
.setHeight(image.height)
.setFormat(FirebaseVisionImageMetadata.IMAGE_FORMAT_NV21)
.build()

val visionImage = FirebaseVisionImage.fromMediaImage(image)
val firebaseVisionFace = detector.detectInImage(visionImage).await()

return firebaseVisionFace
}

如果你想使用 await 方法来支持协程,你可以给 https://github.com/FrangSierra/Firebase-Coroutines-Android 一个战利品。

关于Android CameraX - 录制视频时进行人脸检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57306511/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com