【问题标题】:Can Mobile Vision API's Face Tracking, not Detection, used independent of its CameraSource?Mobile Vision API 的人脸跟踪,而不是检测,可以独立于其 CameraSource 使用吗?
【发布时间】:2018-10-08 12:19:46
【问题描述】:

这个问题是关于在 Android 上使用Google's Mobile Vision Face API

故事(背景)和我想做的事

我正在尝试实现一个功能,在相机视图中检测面部,并在这些面部上叠加图像。

现在,我已经使用 Mobile Vision API 的 Face Detection 成功实现了这样的功能。它的机制是这样的:

  1. CameraView(我正在使用 Fotoapparat 这里) 可以在回调中传递每个相机帧
  2. 我把那个框架变成了Bitmap
  3. 位图被传递到 Mobile Vision API 以进行人脸检测
  4. 当检测到人脸时,我会得到它的位置和大小
  5. 使用该位置信息,在另一个自定义视图上绘制一些东西。

问题是,上述过程显然花费了太多时间。我每秒只能更新覆盖图像位置 3-5 次,在速度较慢的设备上更新频率更低。

通过查看配置文件,令人惊讶的是,最繁重的方法是第 3 步(面部检测)。执行一次平均需要 100ms。
第二种重方法是将 NV21 帧转换为 Bitmap 对象,大约需要 90 毫秒。
总结一下现在我得到的更新 FPS 为 3~5。

但除此之外,一切都完美无缺 - 图像可以高质量拍摄,自动对焦捏缩放

人脸跟踪怎么样?

另一方面,Mobile Vision API 提供了另一个 API - Face Tracking

在 Google 的示例应用程序中,跟踪速度非常快,它几乎可以在相机预览中立即跟随人脸。如文档中所述,这是因为机制完全不同 - 不是在每一帧上检测人脸,而是在检测到人脸后,位置只是跟随其移动而不执行任何人脸检测。

但事实上这种机制在我的用例中已经足够好了!

但是,通过查看示例代码,我似乎必须使用其内置的CameraSource 实现。这可以在下面的代码中找到:

    mCameraSource = new CameraSource.Builder(context, detector)
            .setRequestedPreviewSize(640, 480)
            .setFacing(CameraSource.CAMERA_FACING_BACK)
            .setRequestedFps(30.0f)
            .build();

detector是这里的主角,这里只在传递给CameraSource时使用。 看来我必须坚持使用这个CameraSource

不过,虽然这个摄像头源有takePicture() 方法,但我找不到任何方法来实现自动对焦和缩放

最后,问题

我的最终目标是实现我在开头提到的功能,并满足以下要求:

  1. 捕获的高质量图像
  2. 自动对焦
  3. 缩放
  4. 快速面部定位 更新(一秒10次左右就够了)

1-3 可以使用人脸检测完成,但不能使用 4;
虽然 4 可以使用 Face Tracker 完成,但不能使用 1-3。

有没有办法完成所有 1-4?我欢迎任何建议,即使是使用其他库而不是 Mobile Vision。

感谢您阅读这么长的问题直到最后!

【问题讨论】:

  • 如何使用 CameraSource 获取相机预览? ..这样在预览时我可以识别出这些面孔..

标签: android computer-vision android-camera face-detection android-vision


【解决方案1】:

CameraSource.java 在许可 Apache license 下可用 on GitHub。随意添加自动对焦和缩放。

【讨论】:

  • 后来我发现样本中的平滑度(可能)是因为它将预览大小设置为相当小的分辨率。有了这个分辨率,我还可以获得更高的 FPS,这在我使用前置摄像头时会注意到。无论如何感谢您的回答,我肯定错过了 Github 上的这个文件,我认为它不是开源的。
  • 理论上,barcodereader 和 facedetection CameraSource 类可能不同,但对于所有实际目的,前者就足够了。
猜你喜欢
  • 2016-07-20
  • 2018-05-30
  • 1970-01-01
  • 2017-04-22
  • 1970-01-01
  • 1970-01-01
  • 2017-08-30
  • 2017-12-24
  • 2019-04-08
相关资源
最近更新 更多