macOS下安裝Dlib和Python2.7

Dlib是一個(gè)使用現(xiàn)代C++技術(shù)編寫(xiě)的跨平臺(tái)的通用庫(kù),遵守Boost Software licence.
主要特點(diǎn)如下:
- 完善的文檔:每個(gè)類(lèi)每個(gè)函數(shù)都有詳細(xì)的文檔,并且提供了大量的示例代碼,如果你發(fā)現(xiàn)文檔描述不清晰或者沒(méi)有文檔,告訴作者,作者會(huì)立刻添加。
- 可移植代碼:代碼符合ISO C++標(biāo)準(zhǔn),不需要第三方庫(kù)支持,支持win32、Linux、Mac OS X、Solaris、HPUX、BSDs 和 POSIX 系統(tǒng)
- 線程支持:提供簡(jiǎn)單的可移植的線程API
- 網(wǎng)絡(luò)支持:提供簡(jiǎn)單的可移植的Socket API和一個(gè)簡(jiǎn)單的Http服務(wù)器
- 圖形用戶(hù)界面:提供線程安全的GUI API
- 數(shù)值算法:矩陣、大整數(shù)、隨機(jī)數(shù)運(yùn)算等
- 機(jī)器學(xué)習(xí)算法:
- 圖形模型算法:
- 圖像處理:支持讀寫(xiě)Windows BMP文件,不同類(lèi)型色彩轉(zhuǎn)換
- 數(shù)據(jù)壓縮和完整性算法:CRC32、Md5、不同形式的PPM算法
- 測(cè)試:線程安全的日志類(lèi)和模塊化的單元測(cè)試框架以及各種測(cè)試assert支持
- 一般工具:XML解析、內(nèi)存管理、類(lèi)型安全的big/little endian轉(zhuǎn)換、序列化支持和容器類(lèi)
本文學(xué)習(xí)如何在Mac osx系統(tǒng)中安裝dlib,假設(shè)我們已經(jīng)成功安裝了Homebrew、anaconda。
第一步:準(zhǔn)備工作
Homebrew
# 運(yùn)行以下命令安裝Homebrew,Homebrew默認(rèn)被安裝到/usr/local/Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 添加環(huán)境變量,我裝了oh-my-zsh,故將export命令添加到~/.zshrc中
echo 'export PATH=/usr/local/opt/opencv/bin:$PATH' >> ~/.zshrc
# 成功驗(yàn)證
brew -v
Anaconda
根據(jù)官網(wǎng)教程來(lái)下載安裝anaconda客戶(hù)端。
# 添加環(huán)境變量,也可以使用你喜歡的編輯器修改配置文件~/.zshrc或者~/.bash_profile
echo 'export PATH=~/anaconda/bin:$PATH' >> ~/.zshrc
# 查看已安裝環(huán)境及當(dāng)前被激活的環(huán)境,用戶(hù)安裝的不同python環(huán)境都會(huì)被放在目錄~/anaconda/envs下,當(dāng)前被激活的環(huán)境會(huì)顯示有一個(gè)星號(hào)或者括號(hào)
conda info -e
# 創(chuàng)建python2.7虛擬環(huán)境,命名為pydlib,創(chuàng)建時(shí)自動(dòng)安裝完整anaconda集合包
conda create --n pydlib python=python2.7 anaconda
# 激活某個(gè)虛擬環(huán)境,conda、python、pip等均是運(yùn)行在當(dāng)前激活環(huán)境下的
source activate pydlib
# 取消環(huán)境激活
source deactivate # mac或Liunx
# 修改~/.zshrc配置文件,為source activate設(shè)置別名workon,為source deactivate設(shè)置別名workdone
echo alias workon=\"source activate\" >> ~/.zshrc
echo alias workdone=\"source deactivate\" >> ~/.zshrc
# 執(zhí)行.zshrc使修改生效
source ~/.zshrc
# 現(xiàn)在就可以用workon 環(huán)境名,激活某個(gè)虛擬環(huán)境,用workdone取消激活某個(gè)虛擬環(huán)境
Garden ~ workon pydlib
Garden (e) pydlib ~ workdone
Garden ~
注意:以下操作都是在虛擬環(huán)境pydlib下進(jìn)行的。
第二步:安裝依賴(lài)
dlib有四個(gè)主要的依賴(lài)工具:
- Boost
- Boost.Python
- CMake
- X11/XQuartx
下面我們來(lái)安裝這些工具
brew install cmake
brew install boost
brew install boost-python --with-python3
安裝驗(yàn)證:
brew list | grep cmake
# 如果成功安裝,則有如下顯示
cmake
brew list | grep boost
# 如果boost和boost-python成功安裝,則有如下顯示
boost
boost-python
X11是執(zhí)行Unix程序的圖形窗口環(huán)境。Mac OS X本身的程序是Aqua界面的,但是為了能夠兼容unix和linux移植過(guò)來(lái)的程序(Mac OS X由BSD-UNIX修改而來(lái)),比如MatLab,就需要x11窗口環(huán)境。
運(yùn)行dlib需要X11,但Mac目前沒(méi)有自帶X11,需要重新下載安裝XQuartz window manager.dmg安裝包,默認(rèn)安裝目錄為opt/X11,需要在/usr/loca/opt目錄下創(chuàng)建軟連接,創(chuàng)建命令如下,創(chuàng)建后重啟Mac
cd /usr/local/opt
ln -s /opt/X11 X11
第三步:安裝dlib
python依賴(lài)包
dlib沒(méi)有嚴(yán)格意義上的python依賴(lài)包,但是如果你想要使用dlib做任何視覺(jué)或圖像處理的工作,一定要安裝:
- Numpy
- Scipy
- scikit-image
# 首先切換到pydlib環(huán)境
workon pydlib
# 查看是否安裝對(duì)應(yīng)包,anaconda的默認(rèn)集合包一般會(huì)包括前兩個(gè)
conda list | grep numpy
# 使用conda或pip進(jìn)行安裝
pip install numpy
pip install scipy
pip install scikit-image
安裝dlib
以前我們還需要手動(dòng)編譯dlib(和安裝Opencv類(lèi)似),現(xiàn)在我們可以通過(guò)pip(conda不可以)來(lái)安裝dlib:
# 此命令會(huì)從PyPI下載dlib安裝包,自動(dòng)通過(guò)CMake進(jìn)行配置、編譯并安裝到你的系統(tǒng)
pip install dlib
安裝驗(yàn)證:
Garden ~ workon pydlib
Garden (e) pydlib ~ python
Python 2.7.13 |Anaconda custom (x86_64)| (default, Dec 20 2016, 23:05:08)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import dlib
>>>
參考
[1] How to install dlib
by Adrian Rosebrock on March 27, 2017 in dlib, Libraries, Tutorials