在前面说过,树莓派上使用face_recognition是十分慢的,这里讲解一下作者自己的提速方法:

<>face_recognition在不同机器上识别时间对比

可能是因为我在树莓派上使用了多线程,opencv等原因树莓派上识别时间比较久,后来关闭了多线程识别时间平均为13,但是可见树莓派上识别任然是十分缓慢的。

设备 使用语言 识别时间
台式ubuntu16.04 python 0.5s
树莓派 python 23
<>原因分析

在前面我有整理过face_recognition的资料,上面有介绍识别的过程。这里主要分析软件上的原因,不考虑硬件。
face_recognition的识别过程和时间分析如下(本测试全在树莓派上进行):

识别步骤 作用 使用函数 花费时间 备注
1 读入图片 load_image_file 0.02S
2 寻找人脸 batch_face_locations 8s 使用hog
3 提取特征 face_encodings 6s
4 面部比较 compare_faces 0.05 比对了15张人脸特征
可以看出时间主要花费在【寻找人脸】和【提取特征】这两步,所以解决方案从里面开始入手。

<>提速方案

这里只提出了一部分结局方案,其他的方案正在研究中,以后有其他的解决方案作者添加到这里。

* 更换【寻找人脸】方法
这里使用的HOG方法,这是face_recognitinon
里面自带的,虽然识别比较准确,但是速度相对较慢。所以这里替换成opencv自带的的HARR寻找人脸模型。
待续。。。