记pytorch版faster rcnn配置运行中的一些坑
-
项目地址
https://github.com/jwyang/faster-rcnn.pytorch
一般安装配置参考README.md文件
-
配置详情
- Python3.6
- pytorch1.0
- GPURTX2080
- CUDA10.0
-
参考博客
https://blog.csdn.net/weixin_43380510/article/details/83004127
1. 分支爬取错误
git clone -b pytorch-1.0 https://github.com/jwyang/faster-rcnn.pytorch.git
不同分支的项目需求配置不一样,比如主分支是支持pytorch-0.4.0,上述克隆的分支是支持pytorch-1.0的
2.ImportError: cannot import name '_mask'
训练时遇到无法导入_mask的问题
https://github.com/jwyang/faster-rcnn.pytorch/issues/410
https://github.com/cocodataset/cocoapi/issues/59#issuecomment-469859646
原因应该是项目中/lib/pycocotools里的文件过于老旧,将https://github.com/cocodataset/cocoapi/tree/master/PythonAPI/pycocotools中的文件复制到/lib/pycocotools文件中,然后进入lib目录下,执行下列代码
python setup.py build develop
3.训练过程发生assert(boxes[:,2]>=boxes[:,0]).all()
这个问题是由于标注框中含有0导致的,网上有很多的解决办法,比如https://blog.csdn.net/xzzppp/article/details/52036794,但是个人觉得这样其实改变了代码原本用意,所以没有采用。我所采用的解决方法其实很简单,就是在自己制作数据集,写XML文件的时候,遇到边框为0的时候+1,也就是起始从1开始,而不是从0开始。
4.修改检测类别
修改/lib/datasets/pascal_voc.py文件
将上述代码修改成你需要的检测的类别。
例:
self._classes = ('__background__', # always index 0
'apple', 'banana)
5.清空缓存
当重新训练的时候,往往会遇到图片读取错误的问题,这个便是因为缓存没有清空。原因是当训练数据集的时候,会读取data/cache目录下的.pkl缓存文件,所以每次重新训练的时候,一定要记得删除data/cache文件夹下的缓存文件。
6.运行demo.py文件模型数量过多
修改demo.py文件
对应4,修改成对应检测类别