本博客记录了用pytorch实现的faster rcnn代码,完成VOC2007数据集,以及个人数据集的训练及测试过程。比较少做目标检测方向的实验,花了点时间调通代码,记录一下填坑过程。
前言
Faster RCNN是一个很成熟的two-stage目标检测算法,由Kaiming He等大神在2015年提出。该算法在2015年的ILSVRV和COCO竞赛中获得多项第一,在VOC2007+2012数据集和COCO数据集上有很客观的mAP,同时利用所提出的RPN网络大幅提升了测试阶段的速度。整个RCNN系列的目标检测框架发展历程主要包含RCNN、SPP、Fast RCNN、Faster RCNN.
paper:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
code(tensorflow):Tensorflow Faster RCNN for Object Detection
code(pytorch1.0):Pytorch implemention of Faster RCNN
调试
本篇博客主要参考上面的pytorch faster rcnn代码,按照README的提示完成整个调试过程。下载链接中提供的源代码,并解压。
- 环境
Win10+CUDA10.0+python 3.6+pytorch1.0 - 准备数据集
在解压后的源码根目录下新建文件夹data用于存放数据集及其下级目录data\pretrained_model用于存放detector的预训练权重。
下载Pascal VOC2007数据集,解压后将两个文件夹下的VOCdevkit文件合并,放到data目录下,整个数据集的结构如下图。Annotations存放的是所有样本的xml标签,ImageSets存放的是训练集和验证集列表,JPEGImages存放所有样本。
---data
---VOCdevkit2007
--