1.摘要核心
候选区域提取是已有检测方法实时性低的主要瓶颈;提出了候选区域网络,通过共享特征,提取候选区域,极大提升了计算效率,可以进行端到端训练;Fast RCNN和VGG通过迭代优化可以实现特征共享;Faster RCNN是一个实时系统。
2.数据流:
3.两个关键点:
RPN
ROI pooling
- 产生大量的region proposals 会导致performance problems,很难达到实时目标检测。
- 在处理速度方面是suboptimal。
- 无法做到end-to-end training。
这就是ROI pooling提出的根本原因,ROI pooling层能实现training和testing的显著加速,并提高检测accuracy。该层有两个输入:
- 从具有多个卷积核池化的深度网络中获得的固定大小的feature maps;
- 一个表示所有ROI的N*5的矩阵,其中N表示ROI的数目。第一列表示图像index,其余四列表示其余的左上角和右下角坐标;
ROI pooling具体操作如下:
- 根据输入image,将ROI映射到feature map对应位置;
- 将映射后的区域划分为相同大小的sections(sections数量与输出的维度相同);
- 对每个sections进行max pooling操作;
这样我们就可以从不同大小的方框得到固定大小的相应的feature maps。值得一提的是,输出的feature maps的大小不取决于ROI和卷积feature maps大小。ROI pooling 最大的好处就在于极大地提高了处理速度。
ROI Pooling 就是将大小不同的feature map 池化成大小相同的feature map,利于输出到下一层网络中。
作业内容:
【思考题】理解Anchors在faster RCNN是如何设置的?
anchors 指的是在原图上生成的所有候选框。由于一张图中需要检测到的目标可能大小不同、位置不同,所以我们需要位置、大小和长宽比各不相同的anchors 在原图上选出候选区域,再判断这些候选区域是否为物体,以及与真值框(真实坐标)的偏移量。anchor生成的比例为1:1,1:2,2:1,面积分别设置为1282,2562,5122.一共九个。
【代码实现】参考notebook代码,了解怎么调用在feature map上生成anchors。
【总结】总结RPN的关键技术以及如何代码实现。
参考:(23条消息) ROI Pooling原理及实现_Elag的专栏-CSDN博客
(23条消息) 【目标检测】Faster R-CNN原理详解_梁瑛平的博客-CSDN博客
(64条消息) 逐字理解目标检测simple-faster-rcnn-pytorch-master代码(一)_Chan_Zeng的博客-CSDN博客