一、寫在前面
(一)我為什么要裝dlib
我要基于python3.5做一個人臉識別照相機。OpenCV用于攝像頭控制以及圖像處理,dlib用于人臉檢測、特征計算和比對。
(二)我的系統(tǒng)環(huán)境
- 硬件:樹莓派3B、外置攝像頭(10幾年前的usb webcam了)
- 操作系統(tǒng):Raspbian
(三)主要失敗經(jīng)歷
- 安裝的時候基本上到95%樹莓派就死掉了
因為在編譯Dlib庫的時候需要的內(nèi)存過大,會導致系統(tǒng)殺死進程。樹莓派3只有1GB的RAM。這個1GB的RAM負責所有的系統(tǒng)操作,顯示GUI /桌面以及處理我們的編譯。因此,需要使用幾步來解決這個問題。
原文可以參考:https://www.pyimagesearch.com/2017/05/01/install-dlib-raspberry-pi/
原文中是在python虛擬環(huán)境中安裝dlib和相關(guān)依賴,我的實際環(huán)境不需要。
二、安裝前的準備工作
先到http://dlib.net/下載dlib,這個耗時長。邊下載邊做下面的事情。
- 擴大虛擬內(nèi)存
修改虛擬內(nèi)存配置文件:
$ sudo nano /etc/dphys-swapfile
將CONF_SWAPSIZE=100改為 CONF_SWAPSIZE=1024
即是把虛擬內(nèi)存從100M改為1G,然后重啟虛擬內(nèi)存相關(guān)服務:
$ sudo /etc/init.d/dphys-swapfile stop
$ sudo /etc/init.d/dphys-swapfile start
- 設置啟動后進入命令終端而不是圖形界面
$ sudo raspi-config
按以下路徑選擇選項并修改:
Boot Options => Desktop / CLI => Console Autologin
- 設置GPU占用內(nèi)存的大小
$ sudo raspi-config
Advanced Options => Memory Split
將GPU可用內(nèi)存改為16。作用就是把更多的內(nèi)存給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
>>>
七、把虛擬內(nèi)存和GPU使用內(nèi)存改回原始值
修改方法見“二、修改前的準備工作”
收工。