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環境配置
- 建立一個以openface命名的conda環境
conda create -n openface python=2.7
- 啟用上一步建立的環境
source activate openface
- 安裝依賴項
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
- 退出啟用環境
source deactivate
- 安裝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
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
- 啟用openface環境
source activate openface
- 安裝openface
預設安裝在/home/username/openface
,根據自己需要修改
git clone https://github.com/cmusatyalab/openface.git ~/openface
cd openface
python setup.py install
- 下載dlib模型
./models/get-models.sh
這個下載會有點舊,耐心等待
到這裡就可以環境就配置完成了
三、測試openface
執行demo2測試:
./demos/classifier.py infer models/openface/celeb-classifier.nn4.small2.v1.pkl ./images/examples/carell.jpg
這時會報錯,如下圖所示:
原因:
是找不到這個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
即可。
但是找出這一處的版本不同後,還是會繼續報錯,下一個就是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,
這是自帶的訓練集做的,要用起來還需要自己提供訓練集。