我需要在mp4视频上实现面部检测,这样我的程序输出就是一个表示面部数量的“时间轴”。
我查看了google-vision examples ,特别是照片演示和面对追踪器。
在照片演示示例之后,我创建了一个环绕框架的包装器,并且:1)使用MediaMetadataRetriever.getFrameAtTime()
从视频中提取缩略图,2)创建框架使用Frame.Builder().setBitmap(bitmap).build()
,然后3)使用FaceDetector.detect(frame).size()
检测面数。这种方法有效,但速度很慢(例如,每帧1秒)。
我还看了 face tracker 示例,它看起来更像我需要的(并且是视频和相机的建议方法)。这里的问题是该示例与相机紧密相关。
我也读过类似的帖子
接受的答案看起来像是我的第一次尝试,但提到了MediaCodec。我已经读过它,但无法找到一种方法将它应用于我的问题(甚至是来自bigflake的例子)
据我了解,我的选择是a)改进帧提取步骤(例如,使用Mediacodec?),或b)模仿CameraSource功能,但使用mp4文件而不是实际的相机。