- Python3.6/3.7/3.8
- Pytorch1.7.1(注意:必须是1.6.0或以上,因为使用官方提供的混合精度训练1.6.0后才支持)
- Ubuntu或Centos(不建议Windows)
- 最好使用GPU训练
- 详细环境配置见
requirements.txt
├── backbone: 特征提取网络(ResNet50+FPN)与注意力机制模块(CBAM、NAM、SimAM、DBAM)
├── network_files: RetinaNet网络
├── train_utils: 训练验证相关模块(包括cocotools)
├── my_dataset.py: 自定义dataset用于读取VOC数据集
├── train.py: 以resnet50+FPN做为backbone进行训练
├── train_multi_GPU.py: 针对使用多GPU的用户使用
├── predict.py: 简易的预测脚本,使用训练好的权重进行预测测试
├── validation.py: 利用训练好的权重验证/测试数据的COCO指标,并生成record_mAP.txt文件
└── pascal_voc_classes.json: pascal_voc标签文件(注意索引从0开始,不包括背景)
- ResNet50+FPN backbone: https://download.pytorch.org/models/retinanet_resnet50_fpn_coco-eeacb38b.pth
- 注意,下载的预训练权重记得要重命名,比如在train.py中读取的是
retinanet_resnet50_fpn_coco.pth
文件, 不是retinanet_resnet50_fpn_coco-eeacb38b.pth
- Pascal VOC2012 train/val数据集下载地址:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
- Pascal VOC2007 test数据集下载地址: http://host.robots.ox.ac.uk/pascal/VOC/voc2007/index.html
- 在PASCAL VOC2007测试集上结果:
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.567
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.823
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.619
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.362
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.434
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.613
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.482
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.684
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.699
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.510
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.592
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.736