设备和环境:
1、树莓派3b;
2、ubuntu mate系统 linux内核是4.4.38;
功能需求:
1、调用dlib实现人脸识别。
可行性研究:
1、dlib安装的库有多大?
分析:windows下dlib19.7版本,debug版本65M、release版本22M,此可以作为参考。
2、dlib中的人脸识别算法占用资源多少?
分析:1G的RAM不能满足要求,树莓派3b的RAM是1G的,要想运行,需要改SWAP,SWAP需要改成1G的。
3、调用dlib识别人脸的速度是多少?
分析:I5四代标压双核处理器的笔记本上,每帧检测人脸Detector函数耗时大约稳定在100ms(软件运行过多的情况下会到180ms),这是该博主的测试的结果,链接是博主的对应文章,文末也有其对应链接。Dlib人脸特征点检测性能测试(光照+各部分功能模块运行时间)
由此可见在在树莓派上,比较慢,不能实时。
功能实现:
1、搭建dlib(树莓派搭建Dlib库)
自Raspbian以来,Raspberry Pi用户运行的操作系统是基于Debian的(就像Ubuntu一样), 相同的安装说明可
以用于Raspbian和Ubuntu ...
但是在树莓派上安装Dlib库经常会报错,因为在编译Dlib库的时候需要的内存过大,会导致系统杀死进程。树莓派3只有1GB的RAM。这个1GB的RAM负责所有的系统操作,显示GUI /桌面以及处理我们的编译。因此,需要使用几步来解决这个问题。
在树莓派上安装Dlib
1、首先从Dlib官方下载安装包。下载链接:http://dlib.net/
从18版本开始Dlib安装包中有setup.py。因此在Windows端安装只需要pip install setup.py命令即可。树莓派端首先需要扩大缓存。
2、更新交换文件大小
交换文件或交换空间是用作虚拟内存的硬盘/内存卡上的空间, 作为系统实内存(RAM)的扩展。
启用交换文件允许操作系统“假装”,因为它具有比实际更多的板载内存。使用交换文件体系结构,RAM中的页面被
“换出”到磁盘,直到它们被再
次需要,在这种情况下它们被“交换”。
几乎所有主要的操作系统都支持某种程度的交换。
在Raspbian中,dphys-swapfile解决方案的使用默认为100MB专用于交换我们的卡。
为了更新我们交换的大小,我们需要编辑位于的dphys-swapfile配置文件 。
您可以使用您最喜爱的文本编辑器编辑配置:
- $sudo nano /etc/dphys-swapfile
向下滚动到配置:
然后更新它使用1024MB而不是100MB:
注意这里如何 -这将是足够的交换更值得我们编译我们的树莓派DLIB。
注意:增加交换大小是烧毁Raspberry Pi卡的好方法。基于闪存的存储器可以执行的写操作数量有限,直到卡实际上无法再保持1和0为止。我们只能在短时间内进行大额交换,所以这不是什么大问题。无论如何,一定要备份你的 文件安装dlib后,以防万一你的卡早日意外死亡。您可以在此页面阅读更多关于破坏存储卡的大型交换大小的信息。
更新 文件后,运行以下两个命令重新启动交换服务:
由于交换大小正在增加和重新分配,所以 命令可能需要几分钟才能完成执行。
然后你可以运行:
确认您的交换大小已经增加。
在这里你可以看到,我的交换是1024MB,从前面的100MB:
然后进入Dlib的目录,运行:
- sudo python setup.py install
致谢:
2、Install dlib on the Raspberry Pi
3、Raspberry Pi: Facial landmarks + drowsiness detection with OpenCV and dlib
4、Dlib人脸特征点检测性能测试(光照+各部分功能模块运行时间)