概述
两阶段算法总体特征:即先进行感兴趣区域RoI的生成,然后再把生成的区域分类:相比起其他一阶网络,两阶更为精准,尤其是针对高精度、多尺度以及小物体问题上,两阶网络优势更为明显。
1.基本的RCNN算法:
以Selective Search为代表,将图像进行分割,并将分割后的图像进行输出,归一化为相同的大小。
对输出的相同大小图像,约2000张,经cnn网络输出特征。
再对输出特征进行多任务处理,包含SVM二分类及对于边框的回归工作。并采用难样本挖掘来平衡正负样本的不平衡
2.实现端到端的Faster RCNN:
算法基于VGG16网络.
共享卷积:整幅图送入卷积网络,而不是先区域分割再逐一送入卷积网络。
RoI Pooling:使用特征池化,可以接受任意大小的图片输入。
ROI pooling具体操作如下:
根据输入image,将ROI映射到feature map对应位置;
将映射后的区域划分为相同大小的sections(sections数量与输出的维度相同);
对每个sections进行max pooling操作;
多任务损失:将分类与回归网络放到一起训练,并且为了避免SVM分类器带来的单独训练与速度慢的缺点,使用了Softmax函数进行分类。
3.Faster RCNN
提出了Region Proposal Network
利用Anchor机制将区域生成与卷积网络联系到一起:
将先验的Anchor与物体GT进行训练,调整Anchor的位置,大大降低了网络收敛难度。
步骤:
1.输入图像首先经过Backbone得到特征图。
2.Anchor生成:RPN对feature map上的每一个点都对应了9个Anchors,这9个Anchors大小宽高不同,对应到原图基本可以覆盖所有可能出现的物体
3.将预先生成的特征图上的anchor再次卷积得出是前景的概率,及回归的位置坐标,与标签对比计算loss进行计算。
特征图上每点预测9个Anchor:2X9及4X9
4.进一步选取一组较好的anchor,作为ROI(region of interest),经过ROI pooling操作,送入全连接网络,进行分类预测。
全流程图:
最后的RCNN全连接网络:(默认预测21类)
其损失函数包含分类损失及回归损失两部分:
其中分类损失使用交叉熵,回归损失使用特殊的smooth函数,总损失表示为:
最后
以上就是英俊铃铛为你收集整理的RCNN,FAST RCNN,FasterRCNN区别及发展史的全部内容,希望文章能够帮你解决RCNN,FAST RCNN,FasterRCNN区别及发展史所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复