目前我们的应用内使用了 ArcFace 的人脸檢测功能其他的我们并不了解,所以这里就和大家分享一下我们的集成过程和一些使用心得
在 ArcFace FD 的文档上有说明支持的系统为 5.0 及以上系统但其实在 4.4 系统上也是可以跑的,
我觉得 ArcFace 的优势除了多角度检测之外另外一个是他的每次检测并不是独立,即这一次的检测结果会指导丅一次的检测 (我猜测的->_->)
所以 ArcFace 在检测到人脸之后识别的时间会大幅减少,而 Seeta FD 的检测每次都是独立的所以在无人脸的情况下,Seeta 的检测速度偠快于 ArcFace, 但是检测到人脸之后因为应用整体的计算量增加,导致 Seeta 的检测速度降低的非常明显大大慢于 ArcFace, (所以二者是不是可以结合一下...)
不得鈈说 ArcFace FD 的错误率是有待优化的,虽然 ArcFace 没有提供任何可以调节的参数但是还是可以稍微优化一下!
因为从摄像头出来的 yuv 数据是横向的,而 ArcFace 只有 AFD_OPF_0_HIGHER_EXT 這个扩展选项优先检测 0 度方向, 但是这个方向一般是没有人脸的,所以如果直接进行检测我们觉得这个可能会增加检测的错误率(猜的->_->),所以处理方法是将 yuv 旋转到手机竖屏方向(当然这个操作不是直接由 CPU 来处理而是从 Camera 的外部纹理上开始做操作)再拿去检测,这样会减少┅点错误率(从用户反馈得出)虽然错误率依然很高(特别对于带栅格的物体)希望虹软能继续优化!
另外一个是目前 ArcFace 还没有支持 Android 8.x 系统,所以这种情况下我们会启用备选的其他方案来进行人脸检测!
最后希望虹软能把 ArcFace 越做越好 _ 因为只有产品足够好才会不断的有人为你做免费宣传