Retinanet环境配置与训练自己的数据集
论文地址: https://arxiv.org/pdf/1708.02002.pdf
论文源代码:https://github.com/fizyr/keras-retinanet
环境配置
- python2.7 or python3.6
- tensorflow-gpu-1.8.0
-
keras 2.2.4 or highter
- OpenCV 3.4
- pycocotools (如果要训练MS COCO数据集的话)
-
pip install tensorflow-gpu pip install git+https://github.com/cocodataset/cocoapi.git pip install opencv-python pip install keras==2.2.4
详情请见:https://github.com/fizyr/keras-retinanet/blob/master/README.md 中的Installation与Notes
数据集准备
- 制作自己的数据集
- 将数据集转化成VOC格式(格式可按自己而定)
下载Retinanet项目
git clone https://github.com/fizyr/keras-retinanet.git
- 编译
在setup.py目录下运行下面代码
python setup.py build_ext --inplace
- 根据自己的数据集修改类别
我的数据集格式是voc,我找到文件pascal_voc.py(路径:keras-retinanet/keras_retinanet/preprocessing/pascal_voc.p)
找到voc_classes,根据你的类别修改。
- 测试是否能训练,修改epoch ,step参数,将这两个参数改下,试着能否运行,能运行看输出的结果和日志和权重模型。
- 找到train.py文件,找到参数epoch step修改他们后,运行代码:
keras_retinanet/bin/train.py pascal /path/to/VOCdevkit/VOC2007 (后面为数据集的路径)
训练时出现的bug
- 在数据预处理,读取图片和XML文件时出现了找不到00000001.png文件
解决方法:在pascal_voc.py代码中发现voc读取图片时采用.jpg格式,所以将该地方的代码修改成读取.png图片格式
2.训练自己的数据集,我先默认原训练代码train.py中的一些参数,只修改step,将这个参数改成我数据集的图片个数。
3.再次运行,可训练