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