赞
踩
资料汇总选自
B站大佬:霹雳吧啦Wz
csdn大佬:gentelyang 以及 小白的深度学习之路 以及 shenxiaolu1984 以及 嘟嘟_猪
注:本文为学习记录笔记,如表述错误或侵权,烦请提示指出;如果有不能理解的部分,可以前往以上博主的文章中查看更详细的说明,并且还有更详尽的视频讲解。
RCNN(Regin with CNN feature)由Ross Girshick提出,很大程度的提升了识别效率,是卷积神经网络应用于目标检测问题的一个里程碑的飞跃。具有良好的特征提取和分类性能,采用RegionProposal方法实现目标检测问题。
注意,上面的主要步骤将第三大步分为两小部分,分别为3. 和 4.
非极大值抑制
先了解 IoU(Intersection over Union)= (A ∩ B) / (A ∪ B)
非极大值抑制剔除重叠建议框过程:
Fast RCNN 由 Ross Girshick 在RCNN的基础上改进,提升了测试和训练速度。从框架上比较,将三大步骤提升为两步骤,有效解决了输入图片尺寸不一致,占用内存大等问题。注意,下面的主要步骤将第二大步分为两小部分。
3.1 ROI Pooling层
将候选区域分成m*n个快。针对每个快执行最大池化下采样操作,是的特征映射上不同大小的候选区域变为尺寸大小的特征向量,然后传入下一层。好处:不限制输入图像的特征,yyds
3.2 softmax loss分类器
输出N+1个类别的概率,1为背景部分,即有N+1个节点。
符合概率分布,和为1
3.3 bbox边界框回归器
输出对应N+1个类别的候选边界框回归参数,即框的真实坐标位置,共(N+1)x4个节点
3.4 Fast RCNN 损失函数-Multi-task loss
3.4.1 Fast RCNN分类损失函数
3.4.2 边界框回归损失
更多损失对比详细可见:《回归损失函数1:L1 loss, L2 loss以及Smooth L1 Loss的对比》
相比RCNN,主要有以下不同:
Faster RCNN是作者的升级版本,目标检测的四个基本步骤(候选区域生成,特征提取,分类,位置精修)终于被统一到一个整体,即深度网络框架之内。它同样使用VGG16作为网络主干,推理速度和准确率有了很大的提升,在当时各种竞赛中获得多个项目的第一名。
特点:
实现端对端的过程,将训练及预测一体。
3.1 候选区域/c窗口 anchor锚点
特征可以看做一个尺度51×39的256通道图像(基于ZF网络的backbone),对于该图像的每一个位置,考虑9个可能的候选窗口:三种面积{128x128,256x256,515x512} × 三种形状{1:1,1:2,2:1}。
下图表示出尺度为51×39个anchor中心,以及3×3=9种的anchor示例。
在整个faster RCNN算法中,有三种尺度。
原图尺度:原始输入的大小。不受任何限制,不影响性能。
归一化尺度:输入特征提取网络的大小,在测试时设置,源码中opts.test_scale=600。anchor在这个尺度上设定。这个参数和anchor的相对大小决定了想要检测的目标范围。
网络输入尺度:输入特征检测网络的大小,在训练时设置,源码中为224*224。
3.2 RPN(region proposal network)
RPN是全卷积神经网络,其内部与普通卷积神经网络不同之处在于是将CNN中的全连接层变成卷积层。
操作如下:
RPN的实现方式:在conv5-3的卷积feature map上用一个nn的滑窗(论文中作者选用了n=3,即33的滑窗)生成一个长度为256(对应于ZF网络)或512(对应于VGG网络)维长度的全连接特征。然后在这个256维或512维的特征后产生两个分支的全连接层:
全连接层本来就是特殊的卷积层,如果产生256或512维的fc特征,事实上可以用Num_out=256或512, kernel_size=3x3, stride=1的卷积层实现conv5-3到第一个全连接特征的映射.然后再用两个Num_out分别为2x9=18和4x9=36,kernel_size=1xx1,stride=1的卷积层实现上一层特征到两个分支cls层和reg层的特征映射。
这里2x9中的2指cls层的分类结果包括前后背景两类,4x9的4表示一个Proposal的中心点坐标x,y和宽高w,h四个参数.采用卷积的方式实现全连接处理并不会减少参数的数量,但是使得输入图像的尺寸可以更加灵活。在RPN网络中,我们需要重点理解其中的anchors概念,Loss fucntions计算方式和RPN层训练数据生成的具体细节。
3.3 损失函数
3.3.1 anchors的标点方法
正样本标定规则:
负样本标定规则:
剩下的既不是正样本也不是负样本,直接去除,不用于最终训练
3.3.2 RPN多任务损失函数(RPN Multi-task Loss)
RPN Multi-task Loss=classification loss (即softmax loss)+ regression loss (即L1 loss)
3.3.3 Fast R-CNN 多任务损失函数(Fast R-CNN Multi-task Loss)
这里的Fast R-CNN 多任务的分类损失和边界框回归损失已经讲过了,跟上面的是一致的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。