- 作者:
- 分类:知识&开发->AI->edge_AI
- 阅读:638
- 点赞:2
- 版权:CC BY-SA 4.0
- 创建:2024-05-16
- 更新:2024-06-21
原文链接(持续更新):https://neucrack.com/p/539
分别使用两个模型:
- Pytorch_Retinaface: https://github.com/biubug6/Pytorch_Retinaface
- Face-Detector-1MB-with-landmark: https://github.com/biubug6/Face-Detector-1MB-with-landmark
- YOLOv5n-face: https://github.com/derronqi/yolov8-face
将它们分别移植到 MaixPy(MaixCAM),使用 NPU 进行加速,代码已经开源,请到MaixPy查看。
测试图:
640x640
均使用 640x640, 图片会先等比例缩放周围填黑色再识别,retinaface 用 mobilenet0.25主干, facedetector_1MB_landmark 用 RFB 模型:
retinaface, CPU预处理+npu处理+CPU后处理 73ms, 阈值设置比较高(0.4), 效果:
facedetector 1MB landmark, CPU预处理+npu处理+CPU后处理 65ms, 阈值设置比较高(0.4), 效果:
yolov5n-face: 100ms 左右
320x320
均使用 320x320, 图片会先等比例缩放周围填黑色再识别, retinaface 用 mobilenet0.25主干, facedetector_1MB_landmark 用 RFB 模型:
缩放后传进npu的图像:
retinaface, CPU预处理+npu处理+CPU后处理 17~21ms, 阈值设置比较高(0.4), 效果:
facedetector 1MB landmark, CPU预处理+npu处理+CPU后处理 18ms, 阈值设置比较高(0.4), 效果:
yolov8n-face 30ms左右:
对比
retinaface 和 facedetector_1MB_landmark 看起来后者运行速度会快一点,识别到的人也多一些,但是两者均出现了误识别的问题,会错误地识别到一些非人脸的物体(本文没有贴出,实际摄像头测试发现的),实际应用时需要考虑到并想办法过滤。
YOLOv8n-face 精度会高一些,但是速度也会慢一些,根据实际使用场景选择合适的即可。