faster-rcnn学习笔记
代码源码:https://github.com/chenyuntc/simple-faster-rcnn-pytorch
重要概念
ROI (Region Of Interest) : 从目标图像中识别出的候选识别区域。
ROI pooling :一个简化的spp池化,将原始图像的ROI变为固定的特征。
RPN(Region Proposal Network): 区域生成网络 。它的作用是根据原图片卷积产生的feature map得到一系列的proposal(候选框)。
anchor boxes : 给定大小的框,在原图上生成。每一个确定的中心点会产生9个anchor
(3面积*3比例)。 anchor 会经过变换调整成proposal(候选框)。
Bounding-Box regression :将给定的框调整到 Ground Truth上。
Ground Truth :经过标注的框。
iou: 交并比
原理学习笔记
整个算法流程可分为三个部分:
1 将图像输入网络得到相应的特征图。
2 使用RPN生成候选框,将候选框投影到特征图上得到特征矩阵。
3 将特征矩阵通过ROI pooling层缩放到7*7,接着将特征图全连接得到预测结果。
整个网络可以理解为RPN 与 Fast R-CNN的结合。RPN主要替代Fast R-CNN的边界框的生成。
fast -rcnn
算法流程分为三个部分:
1 使用ss算法生成候选区域
2 图像输入网络得到特征图,将Selective Search算法生成的候选框投影到特征图上获得相应的特征矩阵。
3 特征矩阵通过ROI pooling 缩放到 7*7的特征图,接着将特征图展平通过一系列全连接层得到预测结果。
相比较RCNN,Fast-RCNN将整张图送入网络,候选区域的重复特征不需要计算。
刚开始算法生成的初始框大概有2000多个,但只取大概64个用来训练,且分为正样本(有目标),负样本(没有目标),用来训练。
任意尺寸的候选区域经过ROI Pooling Layer变为统一尺寸。
经过ROI Pooling 之后的特征矩阵经过全连接后并联两个部分。sofamax(分类器)和 bbox_pred(边界框回归器)。
分类器的输出结果为 N+1 个类别的概率(N个检测目标+背景)共 N+1个节点。
边界框回归器输出N+1个类别的候选边界框回归参数( d x , d y , d w , d h d_{x},d_{y},d_{w},d_{h} dx,dy,d