下面主要针对 https://github.com/endernewton/tf-faster-rcnn工程,作者写的很好,但是对于我这种常识比较少的小白还是会遇到很多问题,所有都是从网上一点点找到的,整理在下面,希望可以减少大家的配置时间。
因为我是在windows10 subsystem ubuntu下跑的,所以没能用上GPU。下面我先按照我的配置说一遍,后面遇到什么问题再补充。
一、tf-faster rcnn 配置
1、下载代码: git clone https://github.com/endernewton/tf-faster-rcnn.git
2、由于运行在cpu上,所以要进行一些配置
a. 修改lib/setup.py文件,用‘return None’代替 ‘raise EnvironmentError’;注释掉Extension(‘nms.gpu_nms’…)整段代码。
b.修改lib/model/nms_wrapper.py文件,注释掉‘import gpu_nms’并且设置 ‘force_cpu = True’
3、build Cython modules
进入lib文件夹,执行 makeclean make 命令
4、下载VOC数据 https://github.com/rbgirshick/py-faster-rcnn#beyond-the-demo-installation-for-training-and-testing-models
5、下载与训练模型./data/scripts/fetch_faster_rcnn_models.sh
不知道是不是我网络的问题,我下载不下来,所以我通过文档中的链接下载的
https://drive.google.com/drive/folders/0B1_fAEgxdnvJSmF3YUlZcHFqWTQ
解压之后放在下图的位置,并且验证4个文件全不全
为什么是4个文件呢? 我在网上查到说是tensorflow的模型就产生4个文件,然后模型的名字是xxxx.ckpt。开始我遇到一个错误,我没有把这个文件放在这个目录下,提示我是缺少ckpt.meta文件,我只把xxxxx.ckpt.meta拷贝过来了,结果就报没有ckpt文件,我怎么找都找不到,结果知道tensorflow模型是4个文件之后才改正这个错误。
6、运行程序的demo ./tools/demo.py
7、Train and test VOC
下载预训练模型已经train
mkdir -p data/imagenet_weights
cd data/imagenet_weights
wget -v http://download.tensorflow.org/models/resnet_v1_101_2016_08_28.tar.gz
tar -xzvf resnet_v1_101_2016_08_28.tar.gz
mv resnet_v1_101.ckpt res101.ckpt
cd ../..
./experiments/scripts/train_faster_rcnn.sh 0 pascal_voc res10
这个地方可能遇到一个错误,提示找不到test.txt文件,我的解决方法就是创建一个test.txt文件,然后copy一些train.txt的数据到test.txt下面。
二、训练自己的数据 (我的是人脸检测数据,相当于就是face和背景的分类)
1、制作VOC数据集
https://www.cnblogs.com/qw12/p/6185126.html
我是根据这个代码改的,由于我有标注好的数据,只是格式不同,我只用到了后面两段代码。
2、修改代码 (http://blog.csdn.net/flashTianjiao/article/details/78032351?locationNum=4&fps=1#reply)
a.修改 lib/datasets/pascal_voc.py
self._classes = ('__background__', # always index 0
'face')
b.修改tools/demo.py.这里的数字是类别+1
net.create_architecture("TEST",2,
tag='default',anchor_scales=[8, 16, 32])
3、可以训练了
./experiments/scripts/train_faster_rcnn.sh0 pascal_voc res101
下面这些包需要安装,也可以到出现错误的时候提示哪个装哪个.
pip install cython
,pip installopencv-python
, pip installeasydict, pip install matplotlib, sudo apt-get installpython-tk, sudo pip install Pillow, sudo pip install scipy, pip install pyyaml
三、一些其他问题
1、'max_overlaps' issue on custom dataset!
删除 data/cache 文件即可。 Rm -rf data/cache
2、跑自己的数据的时候,遇到assert(boxes[:,2]>=boxes[:,0]).all()
http://blog.csdn.net/XZZPPP/article/details/52036794
我通过第一种方法就解决了。
3、KeyError:“chair” 这大概是你的数据类别没有chair,而Annotations中的xml中的name有chair这一类。
这还是在配置完之后马上写的,已经有很多都不记得啦!脑子越来越不好使!