UPDATE:本文已被收錄到原做者的GITHUB Wiki中:https://github.com/iacopomasi/face_specific_augm/wikihtml
面部增長代碼地址:python
https://github.com/iacopomasi/face_specific_augmgit
論文原文:github
http://www.openu.ac.il/home/hassner/projects/augmented_faces/shell
下面是配置過程,bash
2017年4月23日app
在Linux Ubuntu 16.04LTS上安裝工具
首先安裝Anaconda測試
https://www.continuum.io/downloadsui
下載後是一個.sh文件,
使用bash ./*.sh安裝
此時conda並不能使用,
(conda是一種相似於homebrew或者pip的工具)
須要添加環境變量:
# 將anaconda的bin目錄加入PATH,根據版本不一樣,也多是~/anaconda3/bin echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc # 更新bashrc以當即生效 source ~/.bashrc
如今就可使用conda了,使用
which conda或者conda --version查看是否是安裝好了
咱們的第一個目標是配置原文中的:
使用conda來安裝,比挨個安裝快得多
conda install -n matplotlib numpy scipy scikit-learn
這裏可能會出現錯誤,試試
或者
conda install matplotlib numpy scipy scikit-learn
conda install -c conda-forge matplotlib=2.0.0
安裝Dlib:[1]
conda install -c menpo dlib=18.18
安裝opencv[3]
conda install -c menpo opencv3=3.2.0
這個命令行可能會更新,能夠去:https://anaconda.org/menpo/opencv3 看看最新的命令,或者手動下載
引用3中的博客,其中的命令行就已經失效了
以上就安裝好了環境
而後
git clone https://github.com/iacopomasi/face_specific_augm.git
把代碼拷貝到本地,運行一個例子試試
python demo.py input/input_1.jpg
方式
報錯:ImportError: No module named _sysconfigdata_nd
解決:
sudo ln -s /usr/lib/python2.7/plat-*/_sysconfigdata_nd.py /usr/lib/python2.7/
報錯:ImportError: No module named math
其實出現連math模塊都沒有,就說明了不少問題,
這時候輸入python,命令行返回python運行環境是anaconda,可是再輸入
which python
返回的是
/usr/bin/python
也就是說,編譯器用的是anaconda的python,可是調用的各類模塊仍然是系統自帶的
這時候須要建立python的anaconda運行環境[4],
# 建立一個名爲python27的環境,指定Python版本是2.7(不用管是2.7.x,conda會爲咱們自動尋找2.7.x中的最新版本)conda create --name python27 python=2.7
運行環境就建立好了,須要切換到運行環境裏:輸入
source activate python27
這時候再輸入which python查看版本,會顯示
/home/bert/anaconda2/envs/python27/bin/python
說明終於到達了anaconda的環境,
這時候再重複1.中的各類conda安裝
(conda本質上是包管理器,用anaconda的環境而不是系統自帶的環境,就是由於conda能夠方便的下載並配置各類包如numpy)
另外:
若是環境變量出現了問題,好比在anaconda安裝的最後一步,沒有選擇添加環境變量(也就是路徑),能夠手動添加:
sudo gedit ~/.bashrc
在最後一行添加上
export PATH="~/anaconda2/bin:$PATH"
# 查看當前環境下已安裝的包[2] conda list
# 刪除package conda remove -n python27 numpy
運行一個demo試一試:
python demo.py input/input_1.jpg
發現出錯了,說
ValueError: too many values to unpack
因而根據
http://stackoverflow.com/questions/25504964/opencv-python-valueerror-too-many-values-to-unpack
進行修改,增長了一個下劃線,而後出現了新的錯誤
cv2.error: <PATH_TO_OPENCV>/opencv-3.2.0/modules/imgproc/src/imgwarp.cpp:4956: error: (-215) dst.cols < SHRT_MAX && dst.rows < SHRT_MAX && src.cols < SHRT_MAX && src.rows < SHRT_MAX in function remap
而後根據
https://github.com/iacopomasi/face_specific_augm/issues/3
應該是Opencv的版本問題,畢竟做者沒有在readme中說明他本身的詳細運行環境,只是說了用Linux
個人OpenCV版本是3.2.0
使用
conda install -c menpo opencv=2.4.11
安裝2.4的版本(我用了這個,親測能夠跑通代碼)
或者選擇
conda install -c menpo opencv3=3.1.0
均可以
萬事俱備,開始運行
輸入
python demo.py input/input_1.jpg
,通過噼裏啪啦的一行行跳躍,
搞定,去output文件夾下查看:
下面這是原圖:
下面是各類轉換後的圖片
以上就是完整的實驗過程
此次調代碼,配環境的過程真的是曲折無比ʕ •ᴥ•ʔ
總之,不能放棄啊~
睡一覺起來,可能就有了靈感~
加油!
Reference:
[1] python下安裝dlib庫 http://blog.csdn.net/jhw_xf/article/details/53321272
[2] Anaconda使用總結 http://www.jianshu.com/p/2f3be7781451
[3] 怎樣用conda安裝opencv http://www.cnblogs.com/MrLJC/p/4245925.html
[4] Anaconda使用教程 http://www.afox.cc/archives/390