你好,请问我论文里面引用的句子,查重为什么显示的都是红色,我插入脚注了呀?
872
2022-05-29
论文结构
摘要核心
候选区域提取是已有检测方法实时性低的主要瓶颈
提出了候选区域网络,通过共享特征,提取候选区域,极大提升了计算效率,可以进行端到端训练
FastRCNN和VGG通过迭代优化可以实现特征共享
FasterRCNN是一个实用系统,在单GPU上达5fps
在Pascal VOC2012上达到4% mAP
网络细节
Faster RCNN主要有4个重要部分:
共享卷积层:用于提取feature maps被共享用于后续RPN层和全连接层。
Region Proposal Network(RPN):生成region proposals
RoI Pooling:收集feature maps和proposals,提取proposal feature maps后送入全连接层判定目标类别。
Classification:利用proposal feature maps计算proposal的类别,同时再次bbox回归获得精确位置。
抽象网络结构
具体网络结果
共享卷积层
Conv layers(VGG网络)共有13个conv层,13个relu层,4个pooling层。
在FasterRCNN的Conv layers中对所有的卷积都做了扩边处理(pad=1,即填充一圈0),导致原图变为(M+2)x(N+2)大小,再做3x3卷积后输出MxN。
pooling层kernel_size=2,stride=2。这样每个经过pooling层的MxN矩阵,都会变为(M/2)x(N/2)大小。
一个MxN大小的矩阵经过Convlayers固定变为(M/16)x(N/16)
Anchors
假设原图800x600 下采样16倍,feature map每个点设置9个Anchor
所以:ceil(800/16) x ceil(600/16) x 9 = 50 *38 * 9 = 17100 个框。
区分前景与背景Anchor,标记标签(1正例,0负例,-1忽略)
正例:对于每一gtbox,交并比最大的anchor以及与任一gtbox交并比超过一定阈值(0.7)
负例:与所有gtboxes交并比小于一定阈值(0.3)其他忽略
对每一前景anchor,根据对应的gtbox计算回归值。
Region Proposal Networks
目的:判定哪些anchors有可能包含物体
输入:
提取的特征
原图信息(缩放比例,以及resize后尺寸)
输出:
rpn_box 偏移量(hh*ww*9,4)
rpn_score(hh*ww*9,2)
rois(2000,4)
RPN具体网络结构
上面一条用softmax分类anchors获得positive和negative
下面一条用于计算对于anchors的bounding box regression偏移量
最后的proposal进一步剔除太小和超出边界的proposal,并综合变换量和positive anchors,计算出精准的proposal。
目标:寻找一种关系使得输入原始的anchor A 经过映射得到一个跟真实窗口G更接近的回归窗口G’。
其中绿色为GroundTruth,红色为positive anchor。
Positive anchor 与ground truth之间的平移计算方法:
先平移:
再缩放:
通过观察上面4个公式可知,需要学习的是dx(A), dy(A), dw(A), dh(A)这四个变换。当anchorA 与GT相差较小时,可认为这是一种线性变换。
如何通过线性回归获得dx(A), dy(A), dw(A), dh(A)?
线性回归就是给定输入特征向量X,学习一组参数W,使得经过线性回归后的值跟真实值Y非常接近。即Y=WX。对于该问题,输入X是feature map定义为φ;同时还有训练传入A与GT之间的变换量即(tx,ty,tw,th),输出是dx(A), dy(A), dw(A), dh(A)这四个变换那么目标函数可以表示为:
在FasterRCNN中 foreground anchor与ground truth之间的平移量(tx, ty)与尺度缩放因子(tw,th)关系如下:
对于每张图片,利用它的feature map,计算(H/16)x(W/16)x9(大概20000)个anchor属于前景的概率,然后从中选取概率较大的12000张,利用位置回归参数,修正这大约12000个anchor的位置, 利用非极大值抑制,选出大约2000个ROIS以及对应的位置参数。
输入:anchors分类结果,对应的bbox变换量和缩放信息
处理流程:
依据变换量对所有的anchors做bbox regression回归。
根据fg anchor scores由大到小排序anchors,提取前pre_nms_topN(e.g.
12000)个anchors。
限定超出图像边界的positive anchors为图像边界,防止后续roipooling时proposal超出图像边界。
剔除尺寸非常小的positive anchors。
对剩余的positive anchors进行NMS。
之后输出proposal=[x1,y1,x2,y2],对应的是MxN的图像尺度。
即如下流程:
生成anchors->softmax分类器提取foreground anchors->bbox 回归positive anchors->Proposal Layer生成proposals
ROIPooling
输入:
原始的feature maps
RPN输出的proposal boxes
由于目前的proposals还没有具体的物体信息,因此需要从已有的bounding boxes中提取特征。
不同于CNN 网络中的池化层,这里通过分块池化的方法得到固定尺寸的输出。
假设ROI Pooling层的输出大小为w2*h2,输入候选区域的大小为 w*h,ROI Pooling的过程如下:
1) 把输入候选区域划分为 w2*h2,大小的子网格窗口,每个窗口的大小为(w/w2)*(h/h2)
2) 对每个子网格窗口取最大元素作为输出,从而得到大小为w2*h2的输出。
如上图所示,假设Feature Map大小为4x4,候选ROI区域大小为3x3,通过2x2的ROI Pooling Layer得到2x2的归一化输出。4个划分后子窗口分别为1、2、3、5(5最大),3、7(7最大),9、10(10最大),11(11最大),然后对每个子窗口做Max Pooling。
这其实来自于更早提出的SPP Net,RPN网络提取出的proposal大小是会变化的,而分类用的全连接层输入必须固定长度,所以必须有个从可变尺寸变换成固定尺寸输入的过程。在较早的R-CNN和Fast R-CNN结构中都通过对proposal进行拉升(warp)或裁减(crop)到固定尺寸来实现,拉升、裁减的副作用就是原始的输入发生变形或信息量丢失(图7),以致分类不准确。而ROI Pooling就完全规避掉了这个问题,proposal能完整的pooling成全连接的输入,而且没有变形,长度也固定。
执行流程:
由于proposal对应的尺寸为MxN,所以首先使用spatial_scale参数将其映射回(M/16)x(N/16)大小的feature map。
再将每个proposal对应的feature map分为 pooled_w x pooled_h的网络;
对网格的每一份都进行max pooling处理,以保证结果都是pooled_w x pooled_h固定大小。
分类Classification
通过全连接和softmax对proposals进行分类
再次对proposals进行bounding box regression,获取更高精度的bbox
Loss
论文总结
关键点:
候选区域提取——RPN
特征共享计算——RPN和FastRCNN共享骨干网络特征
创新点:
多尺度与纵横比Anchor解决目标多尺度问题
RPN提取候选区域,实现端到端检测
多任务损失函数
两阶段目标检测,提高检测精度
启发点:
Anchor定义是否在不同数据集及不同场景下是否应有所变化
是否有必要在整幅图中均匀分布Anchor
Anchor定义的多尺度是否能够满足实际物体尺度变化要求
Faster RCNN代码复现
代码地址:
https://github.com/chenyuntc/simple-faster-rcnn-pytorch
博客《逐字理解目标检测simple-faster-rcnn-pytorch-master代码》地址:
https://blog.csdn.net/qq_32678471/article/details/84776144
https://blog.csdn.net/qq_32678471/article/details/84792307
https://blog.csdn.net/qq_32678471/article/details/84882277?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-6&spm=1001.2101.3001.4242
https://blog.csdn.net/qq_32678471/article/details/85678921
注:该博客虽然有很多理解不对或不到位的地方,但注释比较详细,能帮助新手快速理解每个模块的具体含义。
机器学习 神经网络
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。