当前位置:网站首页>目标检测系列——开山之作RCNN原理详解
目标检测系列——开山之作RCNN原理详解
2022-06-22 07:28:00 【秃头小苏】
作者简介:秃头小苏,致力于用最通俗的语言描述问题
往期回顾:ubuntu使用指南 阿里云对象存储oss+picgo+typora实现步骤及无法上传图片解决方案
近期目标:拥有10000粉丝
支持小苏:点赞、收藏、留言
RCNN原理
写在前面
RCNN是目标检测领域的开山之作,作者是Ross Girshick ,我们称之为RGB大神 可以在google学术中看看这位大牛都写了哪些文章,看看这引用次数,只能惊呼!!!
接下来将详细介绍介绍RCNN的原理,先来看看论文中这张经典的图片。这张图片展示了RCNN的实现过程,其主要有四步,下面分别对每步进行讲解。

候选区域生成
候选区域生成在RCNN中采用的是selective search 【简称SS算法】,这个算法的原理大致是通过颜色、大小、形状等一些特征对图像进行聚类,算法的结果是在一张图片中生成一系列的候选框,RCNN中让每张图像都生成2000个候选框。这些候选框有着大量的重叠部分,因此我们后面需要将这些重叠的候选框去除,得到相对准确的候选框。【注:这里不对SS算法做详细的讲解,感兴趣的可以自己查阅了解】下图展示了SS算法得到的大致结果,可见一个目标会有多个候选框生成。【注:RCNN中SS算法每幅图像生成的候选框个数为2000】

神经网络提取特征
上一步我们由SS算法从一张图片中得到了2000个候选框,接下来需要对这些候选框进行特征提取,即分别将2000个候选框区域喂入ALexNet网络进行训练,提取特征。【注:有关ALexNet的网络结构我前文有介绍,不清楚的点击*了解详情】为方便大家阅读,我把ALexNet的网络结构也贴出供大家参考,如下图所示:

需要注意的是,在RCNN中,我们不需要最后的softmax层,只需要经过最后两次全连接层,利用其提取到的特征即可。此外由于全连接层的存在,需要对输出图片的尺寸进行限制,即需要图片分辨率为227*227。论文中所采用的方法为无论候选区域的大小或纵横比如何,先将其周围扩展16个邻近像素,然后将所有像素强制缩放至227*227尺寸。【注:可见此方案会使原图像发生畸变,如人物变矮变胖等】相关缩放方案如下图所示:

SVM分类器分类
上一步我们已经通过ALexNet网络提取到特征,每一个候选框区域都会生成4096维的特征向量,如下图所示:

上图展示的是一个候选框提取到的特征,我们采用SS算法会从一幅图片中生成2000个候选框,将所有候选框输入网络,就会得到2000*4096维的特征矩阵。将2000*4096维的特征矩阵与20个SVM组成的权值矩阵4096*20相乘,会得到2000*20维的概率矩阵,其中每一行代表一个候选框属于各个目标类别的概率。【注意:若采用的是VOC数据集,那么类别是应该有21类,包括一个背景类】

为让大家更容易理解,对于上图的结构①做更详细的解释,如下图所示:

从上图可以看出,2000*20维矩阵的每一列表示2000个候选框分别对某一类的预测概率,如第一列则表示2000个候选框分别对狗的预测概率。我们对每一列即每一类进行非极大值抑制(NMS)用于剔除重叠候选框,得到该列中得分最高的的建议框。具体NMS过程如下:

关于这一部分开始可能会有点迷惑,为什么要删除IOU大的目标呢?我之前也产生过这个疑问,其实这还是我们对这个流程不是很清楚。首先我们会在某一列中找出得分最高的目标,然后会计算其它目标和这个得分最高目标的IOU【注意不是计算与Ground Truth的IOU】,这个IOU大表示什么含义呢?这个值越大表示这两个候选框重叠的部分越多,则表示这两个候选框很可能表示的是同一个物体,那么删除得分低的候选框就很容易理解了。下图展示了相关过程:

回归器修正候选框位置
上一步骤中我们剔除了许多候选框,接下来我们需要对剩余的候选框进一步筛选,即分别用20个回归器对上述20个类别中剩余的候选框进行回归操作,最终得到每个类别修正后的得分最高的bounding box。
那么我们怎么由候选框得到最后的预测框呢?我们依旧会由ALexNet输出的特征向量来得到回归器的预测结果,其结果为 ( d x ( P ) , d y ( P ) , d w ( P ) , d h ( P ) ) (d_x(P),d_y(P),d_w(P),d_h(P)) (dx(P),dy(P),dw(P),dh(P)) ,其表示中心点坐标偏移和宽度和候选框高度偏移的缩放因子。其预测的结果 G i ∧ {\mathop {\rm{G_i}}\limits^ \wedge} Gi∧的表达式如下所示:

我们由上式反解出 ( d x ( P ) , d y ( P ) , d w ( P ) , d h ( P ) ) (d_x(P),d_y(P),d_w(P),d_h(P)) (dx(P),dy(P),dw(P),dh(P)) 的表达式,现用 ( t x , t y , t w , t h ) (t_x,t_y,t_w,t_h) (tx,ty,tw,th) 表示,因为标注框参数和候选框参数都是给定的,因此 ( t x , t y , t w , t h ) (t_x,t_y,t_w,t_h) (tx,ty,tw,th) 也是可直接计算得到的,为真实值。

接下来就用 ( d x ( P ) , d y ( P ) , d w ( P ) , d h ( P ) ) (d_x(P),d_y(P),d_w(P),d_h(P)) (dx(P),dy(P),dw(P),dh(P))值去拟合 ( t x , t y , t w , t h ) (t_x,t_y,t_w,t_h) (tx,ty,tw,th)值,使损失函数最小,损失函数如下:

小结
RCNN的原理部分就介绍到这里了,希望可以对大家有所帮助。后续会持续更新fast_RCNN和Faster_RCNN的内容以及相关代码讲解,一起加油吧!!!
参考链接
如若文章对你有所帮助,那就
咻咻咻咻~~duang~~点个赞呗
边栏推荐
- Examples of Algebra: understanding of normal subgroups and quotient groups
- Reasons and solutions for Taobao's baby's prompt "sales attribute is required and parameter format is wrong"
- CONDA installation method of deepmd kit and the solution of slow speed
- Vue failed to connect to MySQL database
- A training summary of Intranet penetration test
- Antd - a-upload-dragger drag upload component - Basic accumulation
- Pytorch idea and implementation of keras code conversion for CNN image classification
- Does it matter if you delete the pictures in the picture space after uploading to the store
- Bad slam resolution
- 微信小程序服务商下子商户支付下单接口
猜你喜欢

Taobao store backup one store upload to multiple stores precautions

RT-Thread临界段的保护

Matlab用深度学习循环神经网络RNN长短期记忆LSTM进行波形时间序列数据预测

JS implementation of random generation of 16 bit key -- Basic accumulation

Coursera self driving car Part4 motion planning finalproject principle and key code analysis

How to upload Taobao tmall products with one click

The mountains and rivers are heavy, and there is no doubt that there is no way out. There is another village where the willows are dark and the flowers are bright.

js实现随机生成16位的密钥——基础积累

记一次内网渗透测试实训总结

Vue failed to connect to MySQL database
随机推荐
微信小程序服务商下子商户支付下单接口
如何解决‘WebDriver‘ object has no attribute ‘switch_to_window‘
Realization of median filter with MATLAB
[standard version 4.3] marketing activities (group bargaining second kill) error reporting under orders
Canoe learning notes (1) illustration of new project and channel configuration steps
The pit on the school recruitment Road
Wechat games (I)
Time string to timestamp
微信小程序伪装页面(定时改变页面内容)
A simple examination system based on C language
《百度搜索引擎网页质量白皮书》指导网站建设及优化
What if the finder fails to respond continuously? Finder unresponsive solution tutorial
Summary of methods for calculating the number of solutions of indefinite equations
4、 Button component
Coursera self driving car Part4 motion planning finalproject principle and key code analysis
Kuangshi brain++ Tianyuan platform megstudio
The solution of word document being locked and unable to edit
Open source open source version - pintuan
Reasons and solutions for Taobao's baby's prompt "sales attribute is required and parameter format is wrong"
How to view cookies in Chrome browser