接下里就是不用RPN自己生成的候选框来训练,直接用SS候选框算法挑选出的2000个候选框来训练Fast RCNN(基于ZF的backbone)。然后看RPN的测试准确率如何(同样使用unshared的策略)。 如果RPN在测试过程中生成的是300个候选框,准确率为56.8。比58.7要低是因为训练集和测试集不一样,这个正常。这个指标只是作为下面两个实...
经过R-CNN和Fast RCNN的积淀,Ross B. Girshick在2016年提出了新的Faster RCNN,在结构上,Faster RCNN已经将特征抽取(feature extraction),proposal提取,bounding box regression(rect refine),classification都整合在了一个网络中,使得综合性能有较大提高,在检测速度方面尤为明显。 img 图1 Faster RCNN基本结构(来自...
也就是说,之前R-CNN的处理流程是先提proposal,然后CNN提取特征,之后用SVM分类器,最后再做box regression,而在Fast R-CNN中,作者巧妙的把box regression放进了神经网络内部,与region分类和并成为了一个multi-task模型,实际实验也证明,这两个任务能够共享卷积特征,并相互促进。 所以,Fast-RCNN很重要的一个贡献是成...
R-CNN的简要步骤如下 (1) 输入测试图像 (2) 利用选择性搜索Selective Search算法在图像中从下到上提取2000个左右的可能包含物体的候选区域Region Proposal (3) 因为取出的区域大小各自不同,所以需要将每个Region Proposal缩放(warp)成统一的227×227的大小并输入到CNN,将CNN的fc7层的输出作为特征 (4) 将每个Regio...
Faster R-CNN解决平移不变的方法是:通过卷积核中心(用来生成region proposals的Anchor)进行不同尺度、宽高比的采样,使用3种尺度和3种比例来产生9种anchor。 平移不变:当Image中的object移动时,对应的proposal也会移动,系统能够使用相同的函数预测到在任何位置的proposal。这个特性就是移不变 ...
三、测试过程 四、计算mAP 寒假在家下载了Faster R-CNN的源码进行学习,于是使用自己的数据集对这个算法进行实验,下面介绍训练的全过程。 一、环境准备 我这里的环境是win10系统,pycharm + python3.7 二、训练过程 1、下载Faster R-CNN源码 https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3 ...
Faster R-CNN方法中最重要的是使用候选区域推荐网络获得准确的候选区域框,大大加快了目标检测速度,并且将选择区域框的过程嵌入卷积神经网络中,与网络共享卷积层的参数,从而提高网络的训练和测试速度,候选区域推荐网络的核心思想是使用卷积神经网络直接产生候选区域框,使用的方法本质上就是滑动窗口。
尽管R-CNN是物体检测的鼻祖,但其实最成熟投入使用的是faster-RCNN,而且在pytorch的torchvision内置了faster-RCNN模型,当然还内置了mask-RCNN,ssd等。既然已经内置了模型,而且考虑到代码的复杂度,我们也无需再重复制造轮子,但对模型本身还是需要了解一下其原理和过程。
./experiments/scripts/train_faster_rcnn.sh 0 pascal_voc vgg16 注意:因为我使用的是pascal_voc数据集,所以只需要更改对应数据集的ITERS的就行了,训练和测试的都要改,因为在train_faster_rcnn.sh的末尾会执行test_faster_rcnn.sh。 如果训练通过,不报错,则说明程序运行成功。
图为Faster R-CNN测试网络结构(网络模型文件为faster_rcnn_test.pt),可以清楚地看到图像在网络中的前向计算过程。 对于一幅任意大小P×Q的图像,首先缩放至固定大小M×N(源码中是要求长边不超过1000,短边不超过600) 然后将缩放后的图像输入至采用VGG16模型的Conv Layer中,最后一个feature map为...