当前位置:   article > 正文

目标检测之RCNN系列(一)RCNN_rcnn要求每个输入的候选框都需要缩放到固定的大小

rcnn要求每个输入的候选框都需要缩放到固定的大小

主流的目标检测算法分为两个系列:RCNN系列和YOLO系列。
R-CNN,即Region-based Convolutional Neural Networks,是一种结合区域提名(Region Proposal) 和卷积神经网络(CNN)的目标检测方法。YOLO系列是将这两步结合,执行效率上更高效,几乎可以做到实时。

RCNN系列根据发展顺序分为:R-CNN、Fast R-CNN、Faster R-CNN
在这里插入图片描述
在这里插入图片描述
本文先介绍R-CNN,整体过程分为4个步骤:
在这里插入图片描述
a)selective search找出2000个候选框;
CNN对输入图片的大小是固定的,因此对于每个输入的候选框都需要缩放到固定的大小;
用IOU为2000个bounding box打标签,以便下一步CNN训练使用。IoU大于0.5,那么我们就把这个候选框标注成物体类别,否则我们就把它当做背景类别。

b)利用CNN提取特征向量,特征维度为4096;
网络架构我们有两个可选方案:第一选择经典的Alexnet;第二选择VGG16。
精度比较:Alexnet精度为58.5%,VGG16精度为66%。
计算量比较:VGG这个模型的特点是选择比较小的卷积核、选择较小的跨步,这个网络的精度高,不过计算量是Alexnet的7倍。
为了简单起见,我们就直接选用Alexnet,经过F7层输出4096维特征。

(1)预训练:目标检测的一个难点在于,物体标签训练数据少。需要先进行预训练把参数初始化了,然后再进行有监督的参数微调。
(2)继续对上面预训练的cnn模型进行fine-tuning训练。假设要检测的物体类别有N类,那么就需要把上面预训练阶段的CNN模型的最后一层给替换掉,替换成N+1个输出的神经元(加1是因为还有一个背景),然后这一层直接采用参数随机初始化的方法,其它网络层的参数不变,继续SGD训练。SGD学习率选择0.001,在每次训练的时候,batch size大小选择128,其中32个是正样本、96个为负样本。

c)利用SVM进行特征向量分类。
选择合适的IOU确认正负样本。通过训练发现,选择IOU阈值为0.3效果最好(选择为0精度下降了4个百分点,选择0.5精度下降了5个百分点),即当重叠度小于0.3的时候,我们就把它标注为负样本。
一旦CNN f7层特征被提取出来,那么我们将为每个物体训练一个svm分类器。当我们用CNN提取2000个候选框,可以得到20004096这样的特征向量矩阵,然后我们只需要把这样的一个矩阵与svm权值矩阵4096N点乘(N为分类类别数目,因为我们训练的N个svm,每个svm包好了4096个W),就可以得到结果了。
20004096 . 4096N =2000N
得到2000
N的矩阵,即2000个类别分别是否属于第N类。

d)训练boundingbox回归
边框回归(Bouding Box Regression):是对RegionProposal进行纠正的线性回归算法,目的是为了让Region Proposal提取到的窗口与目标窗口(Ground Truth)更加吻合。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/114029
推荐阅读
相关标签
  

闽ICP备14008679号