参考网址:https://blog.csdn.net/qq_27825451/article/details/88843333

针对一张图片,需要获得的输出有:

(1) 边界框(bounding boxes)列表,即一幅图像有多少个候选框(region proposal),比如有2000个;

(2) 每个边界框的类别标签,比如候选框里面是猫?狗?等等

(3) 每个边界框和类别标签的概率

网络的大概过程如下

(1) 首先,输入图片经过预训练CNN模型的处理,得到卷积特征图(conv feature map). 即将CNN作为特征提取器,送入下一个部分。

(2) RPN(Region Propose Network)对提取的卷积特征图进行处理,RPN用于寻找可能包含objects的预定义数量的区域(regions,边界框),每张图给出大概2000个候选框,此处是核心

基于深度学习的目标检测中,可能最难的问题就是生成长度不定(variable-length)的边界框列表,在RPN中,通过采用anchors来解决边界框列表长度不定的问题,即,在原始图像中统一放置固定大小的参考边界框,不同于直接检测objects的位置,这里将问题转化为2部分:

对每一个anchor而言,

anchor 是否包含相关的object?

如何调整anchor以更好的拟合相关的object?

(3)当获得了可能的相关objects和其在原始图像中的对应位置之后,问题就比较直接了,采用CNN提取的特征和包含相关objects的边界框,采用ROI pooling处理,并提取相关obgect的特征,得到一个新的向量。

最后,基于R-CNN模块,得到:

对边界框内的内容进行分类,(或丢弃边界框,采用background作为一个label)

调整边界框坐标,以更好的实用object.

区域推荐网络RPN详解

1. 边框的位置到底用什么表示?

目标检测之所以难,是因为每一个物体的区域大小是不一样的,每一个区域框有着不同的大小size(也称之为scale)和不同的长度比(aspect ratios)

假设我们已经知道图片中有两个objects, 首先想到的是,训练一个网络,输出8个值:两队元组(xmin,ymin,xmax,ymax),(xmin,ymin,xmax,ymax)分别定义了每个object的边界框,这种方法存在一些基本问题,例如,

(1) 当图片的尺寸和长宽比不一致时,良好训练模型来预测,会非常复杂;(这里不是很理解)

(2) 无效预测:预测xmin和xmax时,需要保证xmin<xmax

事实上,有一种更加简单的方法来预测objects的边界框,即,学习相对于参考boxes的偏移量。假设参考box的位置由以下确定:(xcenter,ycenter,width, height),则需要预测量为:(xcenter,ycenter,width, height),它们的取值一般都是很小的值。

RPN的核心概念------anchor

有一些参考文献说Anchor 是大小和尺寸固定的候选框,这种说法有一定道理,但不准确。在回答什么是anchor之前,先看一下RPN网络的一个第一步运算,RPN的第一步运算实际上就是一个3*3*256的卷积运算,我们称3*3为一个滑动窗口(sliding window),假设RPN的输入是13*13*256的特征图,然后使用3*3*256的卷积核进行卷积运算,最后依然会得到一个a*a*256的特征图,这里的a与卷积的步长有关。

在原始论文中,作者选定了3种不同scale,3种不同宽高比(aspect ratios)的矩形框作为“基本候选框”,

三种scale/size是{128,256,512}

三种比例{1:1, 1:2, 2:1}

故而一共是3x3=9种,很明显,这9种基本候选框的长宽远远大于特征图的长宽,所以这9个指的应该是原始图像。

Anchor锚点的本质

    应该是特征图的某一个像素与对应在原始图像的某一个像素,即它本质上指的是特征图上当前滑窗的中心在原像素空间的映射点称为anchor,即anchor是在原始图像上的。然后以这个锚点为中心,配上规定的9个基本候选框,这就争取了,所以在原始图像上的图像大致如下

这样子的设计可行吗?

仍然以上面的例子进行说明,假定输出特征图为13*13*256,然后在该特征图上进行3*3*256的卷积,默认进行了边界填充,那么每一个特征图上一共有13*13=169个像素点,由于采用了边界填充,所以在进行3*3卷积的时候,每一个像素点都可以做一次3*3卷积核的中心点,那么整个卷积下来相当于是有169个卷积中心,这169个卷积中心在原始图像上会有169个对应的锚点,然后每个锚点会有9个默认大小的基本候选框,这样相当于原始图像中一共有169*9=1521个候选框,这1521个候选框有9种不同的尺度,中心又到处都分布,所以足以覆盖了整个原始图像上所有的区域,甚至还有大量的重复区域。

RPN的输入与输出----

输入:RPN是接在feature map之后的,因此它的输入时feature map;

输出:我希望得到的是候选区域,因此输出是候选区域,这样说没错,但是在网络中其实流动的都是数据啊,这一个框怎么表示呢?当然也是通过数据的形式来表示了,还有一点就是这个框框里面有目标还是没有目标,这也是通过数据来表示的。

补充

关于特征图和原始图像的映射关系,这里有一点需要补充,假定原始的图像长宽分别是

region proposal相关推荐

  1. 目标检测方法简介:RPN(Region Proposal Network) and SSD(Single Shot MultiBox Detector)

    原文引用:http://lufo.me/2016/10/detection/ 最近几年深度学习在计算机视觉领域取得了巨大的成功,而在目标检测这一计算机视觉的经典问题上直到去年(2015)才有了完全使用 ...

  2. Faster RCNN原理分析(二):Region Proposal Networks详解

    Region Proposal Networks是Faster RCNN出新提出来的proposal生成网络.其替代了之前RCNN和Fast RCNN中的selective search方法,将所有内 ...

  3. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通过区域提议网络实现实时)

    原文出处 感谢作者~ Faster R-CNN: Towards Real-Time Object Detection with Region ProposalNetworks Shaoqing Re ...

  4. Region proposal学习笔记

    Region Proposal(候选区域),就是预先找出图中目标可能出现的位置,通过利用图像中的纹理.边缘.颜色等信息,保证在选取较少窗口(几千个甚至几百个)的情况下保持较高的召回率.

  5. High Performance Visual Tracking with Siamese Region Proposal Network全文翻译

    摘要   近年来,视觉对象跟踪一直是一个基本主题,许多基于深度学习的跟踪器在多个基准测试中取得了最先进的性能.然而,这些跟踪器中的大多数很难以实时速度获得最佳性能.在本文中,我们提出了 Siamese ...

  6. High Performance Visual Tracking with Siamese Region Proposal Network 论文学习

    文章目录 论文阅读总结 Translation Abstract 1 Introduction 2 Related Works 2.1 Trackers based on Siamese networ ...

  7. 走进VOT--《High Performance Visual Tracking with Siamese Region Proposal Network》阅读翻译

    前言:siamRPN是Siamfc之后的又一突破.SiamFC的缺点: Siamese的方法只能得到目标的中心位置,但是得不到目标的尺寸,所以只能采取简单的多尺度加回归,这即增加了计算量,同时也不够精 ...

  8. 深度学习论文阅读目标检测篇(三):Faster R-CNN《 Towards Real-Time Object Detection with Region Proposal Networks》

    深度学习论文阅读目标检测篇(三):Faster R-CNN< Towards Real-Time Object Detection with Region Proposal Networks&g ...

  9. 目标检测经典论文——Faster R-CNN论文翻译:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Net

    Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks Faster R-CNN:通过Region ...

  10. 论文精读:Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks

    Faster R_CNN代码实现详解参见:faster-rcnn源码详解_樱花的浪漫的博客-CSDN博客_faster rcnn源码 Faster-rcnn详细注释版源码地址:faster_rcnn源 ...

最新文章

  1. 抢跑直播电商双11,快手电商帝国雏形初显
  2. php 时间操作归类
  3. Java_IO流(精讲)包含练习题及答案
  4. 学习C#从哪些方面去学习,才能全面掌握基础知识
  5. Flask--读取配置参数的方式
  6. Java图片压缩 BufferedImage Linux 下代码阻塞不工作
  7. Markdown引用图片,且不使用网上链接的解决方法
  8. Oracle 12C -- temporal validity
  9. abb机器人goto指令用法_ABB机器人程序指令解读,建议收藏
  10. UNR2 黎明前的巧克力
  11. 华为云服务器数据库连接失败
  12. 解决Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
  13. php artisan dumpautoload,artisan 命令使用总结
  14. 谷歌浏览器直接启动打印不预览解决方案
  15. android系统firefox,Android平台Firefox——Fennec编译手记
  16. 如何学习数据分析(总结自网易及B站up主)
  17. 蓝桥杯 算法训练 Cowboys 递推 动态规划
  18. 魔百盒M301A免拆机线刷固件-九联代工-S905L2(附教程)
  19. 如何去选择高防服务器
  20. python注销一段代码_请写出一段Python代码实现删除一个list里面的重复元素?

热门文章

  1. 《枯野抄》--奇妙的人性窥视抄
  2. Android开发什么该做、什么不该做,你真的知道吗?
  3. 在VS2017中添加WTL窗口
  4. 生命也如同平常到化入夏风里的蝉鸣
  5. 网页占满整个屏幕_css设置网页占满屏幕
  6. 在线购物系统分析类图
  7. UI-平面构成-ai-快捷键-1
  8. 1,标准差的计算 2,标准分数z-score
  9. Number of Triplets
  10. 页面浏览量和点击量_如何计算页面浏览量