GMX*_*GMX 6 android android-camera android-camera2 firebase-mlkit android-camerax
我正在使用Android中带有Firebase ML Kit的新库CameraX,并检测设备可以拍摄的每张脸。
所以我像这样设置CameraX:
CameraX.bindToLifecycle(this, preview, imageCapture, faceDetectAnalyzer)
Run Code Online (Sandbox Code Playgroud)
现在所有工作都很流畅,我想录制视频。
因此,基本上我想在录制视频时检测人脸。
我试过了:
CameraX.bindToLifecycle(this, preview, imageCapture, faceDetectAnalyzer, videoCapture)
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误消息,说参数太多,所以我猜这不是正确的方法。
我知道该库仍处于alpha状态,但我想有一种方法可以做到这一点。
即使没有喷气机,使用Firebase ML录制视频时,还有另一种实现面部检测的方法吗?
我没有经常使用 CameraX,但我通常使用 Camera 2 API 和 Firebase ML Kit。
要同时使用这两个 API,您应该Image从 Preview Size 获取回调ImageReader。FirebaseVisionFace在该回调中,您可以使用该图像通过 API创建一个图像,并用它做任何您想做的事情。使用 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
}
Run Code Online (Sandbox Code Playgroud)
如果您想使用协程支持的方法,您可以向https://github.com/FrangSierra/Firebase-Coroutines-Androidawait提供战利品
| 归档时间: |
|
| 查看次数: |
743 次 |
| 最近记录: |