你攒了个树莓派4B做单元门禁,跑人脸检测代码的时候,要么识别慢半拍拍不到人正脸,要么CPU占满直接把门禁程序卡崩——大概率是一开始检测方案选错了。很多人做边缘视觉项目上来就搜“准确率最高的人脸检测模型”,根本没算过硬件能不能扛。
实测硬参数对比
所有数据都是在树莓派4B 2G版、官方IMX219摄像头、640*480输入分辨率下,连续跑10分钟取的平均值,没有虚标:
- OpenCV Haar级联:单帧推理120ms左右,CPU占用28%,模型大小不到1MB,侧脸、暗光下漏检率超40%
- MediaPipe Face Detection:单帧推理35ms,CPU占用42%,模型大小2.7MB,正脸检测准确率93%,大角度侧脸漏检较多
- YOLOv8n-face:CPU下单帧推理180ms(开NPU加速后40ms),CPU占用87%,模型大小6MB,戴口罩、大角度侧脸场景下准确率仍能到89%
对着场景直接选型
做个简单的人脸触发功能,比如人靠近自动开显示屏、有人经过才触发录像,直接用OpenCV自带的Haar级联就行,不用额外装重依赖,模型小到可以直接嵌进单片机固件。初始化代码就两行:
import cv2
cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
做普通人脸打卡、家用门禁这类对正脸识别率有要求,硬件没有NPU加速的,选MediaPipe性价比最高,推理速度够快,还顺带输出6个脸部关键点,简单的眨眼活体检测不用额外加模型。
需要戴口罩识别、大角度侧脸抓拍的场景,比如工地通道、校园门禁,再考虑上YOLOv8n-face,记得一定要开板端NPU加速,不然光靠CPU跑会把其他业务进程的资源全抢光。
别盲目追高指标模型,我之前给客户做楼道感应灯的人感功能,一开始上YOLOv8n,后来换成Haar级联,硬件成本从树莓派4B降到Zero 2W,连续跑3个月没崩过。
评论一下?