前言
因项目需要,这2天开始花时间来学习faster cnn模型,准备用它来训练我们自己的数据,看准确度如何。
准备工作
1)下载代码。 官方faster rcnn实现有两个版本,一个是matlab实现,另一个则是python + caffe实现。显然,后者更受大家欢迎。
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
注意要用参数--recursive(递归),否则其子目录caffe-fast-rcnn里面为空。
2)Cython模块编译。
cd py-faster-rcnn
make
可能会遇到cuda located error, 这是需要根据自己安装cuda的路径来修改setup.py的内容,我自己平台的修改内容如下所示。另外还得加上CUDAHOME环境变量。
3)编译caffe和pycaffe
cd py-faster-rcnn/caffe-fast-rcnn
cp Makefile.config.example Makefile.config
sudo make clean
sudo make -j8
sudo make pycaffe -j8
但是在make之前,要修改Makefile.config
此外,还需要注意一点就是,py-faster-rcnn里面用的caffe代码是基于旧版本的cudnn(4.0.0?),而我们服务器安装的cudnn版本为7.1.1,所以需要将caffe-fast-rcnn里面和cudn相关的代码进行更新。 可以从github官方连接去拿最新caffe代码,然后进行相应更新。我这里所更新的文件,如下图所示。
4)编译完后,还需要下载基于voc数据集训练好的模型
cd py-faster-rcnn
sudo ./data/scripts/fetch_rcnn_models.sh
不过要拿到这个压缩的模型文件 需要翻墙。 下载完后,再进行解压缩。
5)最后一步就是运行demo
cd py-faster-rcnn
sudo ./tools/demo.py