首先在终端输入
git clone https://github.com/zeusees/FaceBoxes.git
得到源码。
主要看你的电脑是否使用GPU,我是使用CPU,只在一些地方做了更改。
最重要的几个地方是:
因为这里没有配置GPU,所以去掉CPU_ONLY := 1前面的注释,同时去掉那些cudnn,cuda的选项(如果使用GPU,则自己google把~)
由于Ubuntu16.04文件结构的变化,#Whatever else you find you need goes here.处要改成下面这样:
# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
设置python的接口(2.7),如果为3.5需要改一下路径。
WITH_PYTHON_LAYER := 1
重新打开Makefile.config目录,又查找了一下numpy的安装目录,发现对应不上,需要重新设置,需要把原本如下的内容:
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
更改为:
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
在这些地方注意查看文件都是否存在,一般设置是这样的,但还是要看自己的电脑怎么样。
在改完了上面的config文件之后就可以进行编译了,在你的FaceBoxes目录下输入以下命令:
mkdir build
cd build
cmake ..
make all -j4
make test -j4
make runtest -j4
这里的4指的是你的电脑的核数,如果顺利的话,应该都没有报错。
先切换到caffe下的pyhon文件夹下
for req in $(cat requirements.txt); do pip install $req; done
设置环境变量
A.把环境变量路径放到 ~/.bashrc文件中(注意是你的caffe的python,具体路径需要自己看)
sudo echo export PYTHONPATH="~/FaceBoxes/python" >> ~/.bashrc
B.使环境变量生效
source ~/.bashrc
编译pycaffe
make pycaffe
进入python环境,输入:(这里使用的是python2)
import caffe
如果没有报错,证明安装成功。
这次训练使用的是widerface的数据集,可以在官网下:http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/index.html
注意要下载四个压缩包,然后切换到:
cd /home/chan/FaceBoxes/examples/faceboxes/tool
在与py文件的同一个目录创建一个wider_face的文件夹,把解压后的图片放在里面
运行wider_face_2_voc.py将图片生成voc格式。生成三个文件:
一般来说,没有那么顺利,原因在于你的python可能少了一些库的导入,这个时候,你可能就要看一下源py文件,看你少了那些包,然后google一下安装上去就行了。
在CAFFE /数据目录下创建faces_database文件夹,拷贝wider_face文件夹(前面生成的VOC格式数据),布局如图:
是里面的FACE和faces_database,其他的不用管
然后运行以下的命令:
cd FaceBoxes
\# Create the trainval.txt, test.txt, and test_name_size.txt in data/FACE/
./data/FACE/create_list.sh
\# You can modify the parameters in create_data.sh if needed.
\# It will create lmdb files for trainval and test with encoded original image:
\# data/faces_database/FACE/lmdb/FACE_trainval_lmdb
\# data/faces_database/FACE/lmdb/FACE_test_lmdb
\# and make soft links at examples/FACE/
./data/FACE/create_data.sh
注意:你需要修改路径:
list.sh文件
data.sh文件
如果能够顺利完成的话,会生成以下文件:
到此,数据准备就OK了。(如果顺利的话,但可能没那么简单~)
注意,如果在运行list.sh的时候没有生成test_name_size.txt,并且有警告,尝试一下,删除test.txt以及trainval.txt文件,然后用
bash create_list.sh
bash create_data.sh
(笔者在这里卡了很久。。。)
我的数据是在cpu上转换的,就是上面的那些步骤,然后在tx2上跑(因为tx2没内存了。。。),建议是在gpu上跑,因为cpu太慢了,然后这部分主要是配置train_proto.txt以及test_proto.txt和solver文件,主要是更改路径,根据你的电脑上的文件来改。首先切换到examples
cd FaceBoxes/examples/faceboxes
然后配置里面的三个文件,可以使用gedit打开,然后ctrl+f,搜索lqy就可以知道改哪里了。
最后在你的FaceBoxes目录下输入命令:
./build/tools/caffe train --solver examples/faceboxes/solver.prototxt
就可以开始训练啦。
这里如果训练过程中,出现了killed的话,应该是你的GPU内存不足,这个时候,你应该区修改你的train_proto.txt里面的batch_size,把它变小就行。