1. 程式人生 > >Ubuntu16.04 基於anaconda快速配置openface環境---完整過程版

Ubuntu16.04 基於anaconda快速配置openface環境---完整過程版

Ubuntu16.04 基於anaconda快速配置openface環境—完整過程版

openface是一個基於深度神經網路的開源人臉識別系統。該系統基於谷歌的文章FaceNet: A Unified Embedding for Face Recognition and Clustering。openface是卡內基梅隆大學的 Brandon Amos主導的。


開始前囉嗦幾句

配置openface的環境,有好幾種方法,但在這裡選用的是在anaconda裡建立環境,個人感覺相較與其他教程要簡單快速很多
先把官方教程亮出來
官方教程畢竟是比較舊的版本了,如果按著他的操作下來會有問題,昨天花了些功夫解決了,拿出來跟大家分享一下,互相學習 :)

一、Anaconda安裝

這裡簡單說一下Anaconda3的安裝,已經安裝了的可以跳過這一部分。
1)先到官網下載對應的版本,點這裡
根據Python版本和系統選擇下載。
2)安裝

cd Downloads
bash Anaconda3-5.2.0-Linux-x86_64.sh

3)跟著一直按回車閱讀那些許可檔案即可,到最後會問你同不同意這些許可檔案,輸入yes 即可。
4)最後還會詢問你安裝路徑,如果沒有特殊要求,直接回車安裝到預設目錄下即可。
到這裡就安裝完成了。

二、openface環境配置

  1. 建立一個以openface命名的conda環境
conda create -n openface python=2.7
  1. 啟用上一步建立的環境
source activate openface
  1. 安裝依賴項
conda config --add channels conda-forge
conda install opencv numpy pandas scipy scikit-learn scikit-image dlib txaio twisted autobahn OpenSSL pyopenssl imagehash service_identity
  1. 退出啟用環境
source deactivate
  1. 安裝Torch
    安裝地址是/home/uesrname/torch
    ,可以修改成自己需要的路徑
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch
bash install-deps;
./install.sh

下面這段是安裝Torch的依賴項:

for NAME in dpnn nn optim optnet csvigo cutorch cunn fblualib torchx tds; do luarocks install $NAME; done

可能會報錯,若沒有繼續往下看:


Error:
luarocks-problem
解決方法:
重新安裝luarocks

wget http://www.lua.org/ftp/lua-5.2.4.tar.gz
tar -zxvf lua-5.2.4.tar.gz
make linux test
make install

之後再重新執行:

for NAME in dpnn nn optim optnet csvigo cutorch cunn fblualib torchx tds; do luarocks install $NAME; done

  1. 啟用openface環境
source activate openface
  1. 安裝openface
    預設安裝在/home/username/openface,根據自己需要修改
git clone https://github.com/cmusatyalab/openface.git ~/openface
cd openface
python setup.py install
  1. 下載dlib模型
./models/get-models.sh

這個下載會有點舊,耐心等待
dlib

到這裡就可以環境就配置完成了

三、測試openface

執行demo2測試:

./demos/classifier.py infer models/openface/celeb-classifier.nn4.small2.v1.pkl ./images/examples/carell.jpg

這時會報錯,如下圖所示:
sklearn-version-problem

原因:
是找不到這個sklearn.grid_search.GridsearchCV這個類,現在的下載的scikit-learn版本是0.20,這個版本把sklearn.grid_search.GridsearchCV這個類移除了,只能通過sklearn.model_selection呼叫GridsearchCV
先把原因分析看到最後,別修改程式碼!別修改程式碼!別修改程式碼!
可以通過vim ./demos/classifier.py來修改程式碼裡的43行那一句,改成from sklearn.model_selection import GridSearchCV即可。
scikit-problem
但是找出這一處的版本不同後,還是會繼續報錯,下一個就是GMM模組匯入失敗,其實都是因為scikit-learn版本的問題,最好的辦法是直接把conda環境裡的scikit-learn版本從0.20降級為0.18,這就一切問題都解決了。

conda install scikit-learn=0.18

等待降級完成,再重新測試demo2的程式碼就沒問題了:

./demos/classifier.py infer models/openface/celeb-classifier.nn4.small2.v1.pkl ./images/examples/carell.jpg

有如下輸出就說明成功,這裡預測圖片的為SteveCarell的自信度為0.99,
這是自帶的訓練集做的,要用起來還需要自己提供訓練集。
openface-demo2