macOS下安裝Dlib和Python2.7

macOS下安裝Dlib和Python2.7

Dlib是一個(gè)使用現(xiàn)代C++技術(shù)編寫(xiě)的跨平臺(tái)的通用庫(kù),遵守Boost Software licence.

主要特點(diǎn)如下:

  1. 完善的文檔:每個(gè)類(lèi)每個(gè)函數(shù)都有詳細(xì)的文檔,并且提供了大量的示例代碼,如果你發(fā)現(xiàn)文檔描述不清晰或者沒(méi)有文檔,告訴作者,作者會(huì)立刻添加。
  2. 可移植代碼:代碼符合ISO C++標(biāo)準(zhǔn),不需要第三方庫(kù)支持,支持win32、Linux、Mac OS X、Solaris、HPUX、BSDs 和 POSIX 系統(tǒng)
  3. 線程支持:提供簡(jiǎn)單的可移植的線程API
  4. 網(wǎng)絡(luò)支持:提供簡(jiǎn)單的可移植的Socket API和一個(gè)簡(jiǎn)單的Http服務(wù)器
  5. 圖形用戶(hù)界面:提供線程安全的GUI API
  6. 數(shù)值算法:矩陣、大整數(shù)、隨機(jī)數(shù)運(yùn)算等
  7. 機(jī)器學(xué)習(xí)算法:
  8. 圖形模型算法:
  9. 圖像處理:支持讀寫(xiě)Windows BMP文件,不同類(lèi)型色彩轉(zhuǎn)換
  10. 數(shù)據(jù)壓縮和完整性算法:CRC32、Md5、不同形式的PPM算法
  11. 測(cè)試:線程安全的日志類(lèi)和模塊化的單元測(cè)試框架以及各種測(cè)試assert支持
  12. 一般工具: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)工具:

  1. Boost
  2. Boost.Python
  3. CMake
  4. 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é)或圖像處理的工作,一定要安裝:

  1. Numpy
  2. Scipy
  3. 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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容