一、写在前面
(一)我为什么要装dlib
我要基于python3.5做一个人脸识别照相机。OpenCV用于摄像头控制以及图像处理,dlib用于人脸检测、特征计算和比对。
(二)我的系统环境
- 硬件:树莓派3B、外置摄像头(10几年前的usb webcam了)
- 操作系统:Raspbian
(三)主要失败经历
- 安装的时候基本上到95%树莓派就死掉了
因为在编译Dlib库的时候需要的内存过大,会导致系统杀死进程。树莓派3只有1GB的RAM。这个1GB的RAM负责所有的系统操作,显示GUI /桌面以及处理我们的编译。因此,需要使用几步来解决这个问题。
原文可以参考:https://www.pyimagesearch.com/2017/05/01/install-dlib-raspberry-pi/
原文中是在python虚拟环境中安装dlib和相关依赖,我的实际环境不需要。
二、安装前的准备工作
先到http://dlib.net/下载dlib,这个耗时长。边下载边做下面的事情。
- 扩大虚拟内存
修改虚拟内存配置文件:
$ sudo nano /etc/dphys-swapfile
将CONF_SWAPSIZE=100改为 CONF_SWAPSIZE=1024
即是把虚拟内存从100M改为1G,然后重启虚拟内存相关服务:
$ sudo /etc/init.d/dphys-swapfile stop
$ sudo /etc/init.d/dphys-swapfile start
- 设置启动后进入命令终端而不是图形界面
$ sudo raspi-config
按以下路径选择选项并修改:
Boot Options => Desktop / CLI => Console Autologin
- 设置GPU占用内存的大小
$ sudo raspi-config
Advanced Options => Memory Split
将GPU可用内存改为16。作用就是把更多的内存给CPU用。
三、安装依赖库
dlib需要以下依赖:
- Boost
- Boost.Python
- CMake
- X11
安装方法:
$ sudo apt-get update
$ sudo apt-get install build-essential cmake libgtk-3-dev libboost-all-dev -y
四、用pip3安装其他dlib运行依赖的库
$ pip3 install numpy
$ pip3 install scipy
$ pip3 install scikit-image
五、正式安装
解压下载好的dlib,进入dlib目录后
$ sudo python3 setup.py install
这一步耗时是最长的了,耐心等待。
六、验证
$ python3
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dlib
>>>
七、把虚拟内存和GPU使用内存改回原始值
修改方法见“二、修改前的准备工作”
收工。