一,需求
基于树莓派4b,usb1080p摄像头,实现人脸检测与人脸识别。尝试了海陵科的模组和百度的sdk。海陵科的模组无法录入人脸,浪费了100多块钱。百度的sdk 在树莓派上也无法录入人脸,官方解决不了。最后只能用opencv自己实现,因为只要实现最简单检测和识别就行,不在乎准确率。经测试 opencv 能满足基本要求,这里整理下思路。
二,
(1),加载模型 并实例化 Ptr<FaceDetectorYN> 和Ptr<FaceRecognizerSF>对象。
树莓派4b opencv版本是4.5.4 ,经测试模型要使用 2021版本。
(2),检测人脸
回返回多个检测到的人脸识别矩形框。传入图片时,不要传入1080p原图,缩放到640*320就够了,太大的话 检测起来特别慢,帧率特别低。
(3),识别人脸
比较两幅图片的特征。这里可以做个阈值,自己调解。
(4), 利用sqlite数据库,进行人脸的管理。包括人脸录入,删除。在录入人脸时,将人脸的特征计算出来,然后转成txt,进行存储。