配置面部数据增加的代码环境流程记录
UPDATE:本文已被收录到原作者的GITHUB Wiki中:https://github.com/iacopomasi/face_specific_augm/wiki
面部增加代码地址:
https://github.com/iacopomasi/face_specific_augm
论文原文:
http://www.openu.ac.il/home/hassner/projects/augmented_faces/
分4个小节叙述,建议概览一遍再从0开始按本文配置
0.
下面是配置过程,
2017年4月23日
在Linux Ubuntu 16.04LTS上安装
首先安装Anaconda
https://www.continuum.io/downloads
下载后是一个.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查看是不是安装好了
1.
我们的第一个目标是配置原文中的:
Dependencies
使用conda来安装,比挨个安装快得多
conda install -n matplotlib numpy scipy scikit-learn
这里可能会出现错误,试试
conda install -c conda-forge matplotlib=2.0.0
或者
conda install matplotlib numpy scipy scikit-learn
安装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中的博客,其中的命令行就已经失效了
2.
以上就安装好了环境
然后
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)
另外:
1.
如果环境变量出现了问题,比如在anaconda安装的最后一步,没有选择添加环境变量(也就是路径),可以手动添加:
sudo gedit ~/.bashrc
在最后一行添加上
export PATH="~/anaconda2/bin:$PATH"
2.
# 查看当前环境下已安装的包[2] conda list
# 删除package conda remove -n python27 numpy
4.测试demo
运行一个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
posted on 2017-04-24 09:03 Oliver-cs 阅读(1481) 评论(3) 编辑 收藏 举报