当前位置: 首页 > 知识库问答 >
问题:

Android Camerax-录制视频时的人脸检测

周阳成
2023-03-14

我在Android中使用新的库CameraX和Firebase ML工具包,并检测设备可以检测的每一帧人脸。

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

我知道这个库仍然在阿尔法,但我想有一种方法可以做到这一点。

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

共有1个答案

马弘和
2023-03-14

我使用CameraX不多,但我通常使用Camera2 API和Firebase ML工具包。

为了同时使用这两个API,您应该从预览大小ImageReader中获得Image回调。在回调中,您可以使用这些图像通过API创建FirebaseVisionFace,并对其进行任何操作。使用Kotlin和Coroutines应该如下所示:

 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方法来支持Coroutine,可以向https://github.com/frangsierra/firebase-coroutines-android提供一个loot

 类似资料:
  • 1.接口描述 对照片中的人脸进行检测,返回人脸数目和每张人脸的位置信息 图片要求 格式为 JPG(JPEG),BMP,PNG,GIF,TIFF 宽和高大于 8px,小于等于4000px 小于等于 5 MB 请求方式: POST 请求URL: https://cloudapi.linkface.cn/face/face_detect 2.请求参数 字段 类型 必需 描述 api_id string

  • 问题内容: 我正在尝试在android上进行人脸检测,并且正在遵循指南http://www.richardnichols.net/2011/01/java- facial-recognition-haar-cascade-with-jjil- guide/ 但是在android上。当我做 尽管确切的代码使用netbeans代码返回了2张面孔,但pushAndReturn似乎只从Android图像上

  • 我们可以在录制视频时重置mediaRecorder中的所有值吗?我尝试在录制视频时使用。但行不通。我不知道有没有可能。如果有可能,请任何参考将不胜感激。 我读过这篇文章,也读过谷歌开发者,开发者中的mediaRecorder。但任何参考文献都没有提到我的问题。 编辑: 感谢您宝贵的时间。

  • 我正在研究Kinesis实时流媒体视频PoC。 我可以从android应用程序流视频到视频流,并调用python boto3 api('get_records')进行人脸检测。 在java/python api中从视频流生成帧的示例中有任何帮助/指针吗?

  • 调用人脸检测接口,返回人脸检测的结果 requestsyntax image = Image(uri="fds://cnbj2.fds.api.xiaomi.com/vision-test/test_img.jpg") detect_faces_request = DetectFacesRequest(image) faces_list = vision_client.analysis_faces

  • 请求URL /api/v1/vision/face-analysis 请求方法 POST Header Content-Type application/json body请求体 { "Image": {"Content": "base64 image string"} } 返回结果 { "faceInfo": [{ "facePos": {