RCNN目标检测算法内容详解(依托论文讲解)

简介: RCNN目标检测算法内容详解(依托论文讲解)

作为目标检测的开山鼻祖,对于RCNN的学习一定是有里程碑的意义的,RCNN的横空出世让我们对神经网络有了更深的认识,在CNN识别盛行的年代开创了先河,因此了解RCNN对于我们学习目标检测算法有非常重大的意义。


image.png


我在学习目标检测算法的时候,发现有些概念总是模糊不清,因为我是直接学习yolo系列的,但是学了好几遍总感觉差点什么,对于一些大佬给我的建议是要重头撸一遍目标检测算法,RCNN作为目标检测的第一个算法,他的出现影响了后续一大堆目标检测算法,因此我打算从RCNN开始将经典的目标检测算法都学习一下,同时也会写下随笔博客,对于文中不对的地方欢迎大家批评指正。


这里有个很有意思的论文翻译,对于阅读英文论文有困难的同学,可以看一下


R-CNN论文详解(论文翻译)_目标检测_v1_vivian-DevPress官方社区


RCNN算法结构:

RCNN算法总的分为如下四步:如下图所示


image.png


1、使用Selective Search(选择性搜索)算法,将图片生成1K-2K个Region propsals:

可以理解成就是根据SS算法的方法将图片分成2000个可能含有目标的候选框


2、对于每个生成的Region propsals,使用深度网络提取feature:

       我们将图像切割成了2000个区域,那就相当于产生了2000个小图片,然后我们将这2000个小图片打入神经网络进行训练,就是所谓的用CNN提取这2000个小图片的特征。


       RCNN这里使用的CNN神经网络是Alexnet神经网络,然而这里出现了一个问题就是Alexnet网络的输入均为277*277大小的图片,但是我们切割的2000个候选区域不一定是刚好符合这个大小的,因此作者在这里对着2000个图片进行了resize,即将所有的候选区域小图片均调整为了277*277,然后再在候选区域周围加上了16的padding,再进行异性缩放,作者在文中指出这种方法使得RCNN的mAp提高了3到5个百分点。


      另外在这里需要解释一下,我们使用的Alexnet卷积神经网络是迁移学习过的,因为如果从头开始训练一个网络的话,数据量太小效果会很差,因此我们使用迁移学习的方法训练我们的网络。


3、将feature送入每一类对应的SVM支持向量机:

    如果bounding box 没包含到车辆部分叫正样本;如果bounding box 没有包含到车辆的某部分,我们称它为负样本。接触过目标检测的同学们都知道,正负样本的区分是需要阈值划分的,划分的基础是IOU(IOU不知道是啥的自行百度),作者测试了IoU阈值的多个值, 0.1, 0.2, 0.3, 0.4, 0.5 。最后通过测试发现,IOU阈值为0.3效果最好(选择为0精度下降了4个百分点,选择0.5精度下降了5个百分点),即当重叠度小于0.3的时候,我们就把它标注为负样本。



    到这里我们的RCNN已经在经过Alexnet神经网络之后提取到了我们想要的特征,因为作者在Alexnet最后一层中去掉了全连接层,因此我们这个特征即为2000*4096-D的向量(D为物体的种类+背景),然后我们将这D类的特征向量送入D个SVM进行训练,(这里解释一下,因为SVM只能做二分类,因此我们需要建立D个SVM分类器对特征向量进行打分),注意这个打分很重要,这D个SVM的打分又会组成一个新的特征向量,同时SVM训练过程是将打分和真实的label进行比较,计算出loss然后再对SVM进行反复训练。


    另外在这里需要解释一下,RCNN在这里用到了一个比较特别的算法叫做hard negative mining方法(因为刚开始训练的时候,很多情况下负样本远远高于正样本,这样会导致训练的优化过程很慢,hard negative mining算法是将经过一轮训练后得分最高,即最容易被误判的负样本加入新的样本训练集,进行再次训练,重复上述步骤,直到算法收敛)。hard negative mining方法的作用就是去掉负样本中对优化作用影响很小的负样本,保留最接近阈值(最接近正样本容易分辨错误的负样本)。


4、最后使用回归算法对候选框进行微调,然后进行NMS(非极大值抑制选出最合适的候选框):

image.png


Selective search算法会生成1K~2K的候选区域,这些候选区域存在这种那种的问题,因此我们需要在最后一步对候选框进行微调。在RCNN中,作者使用线性回归器对候选框位置进行微调,得到更加准确的候选框。训练样本:判定为本类的候选框中和真值重叠面积大于0.6 的候选框。


NMS(非极大值抑制的过程)首先我们需要先计算出每一个bounding box的面积,然后根据它的score进行排序,把score最大的bounding box作为我们选定的框,然后计算其余bounding box与我们上述最大score与box的IoU,删除IoU大于设定的阈值的bounding box。反复进行上述过程,直至所有bounding box用完,然后再删除score小于一定阈值的选定框。


这就是RCNN的全部过程了,后续会更新其他系列的RCNN的文章,欢迎关注


相关文章
|
12天前
|
机器学习/深度学习 存储 算法
【博士每天一篇论文-算法】Continual Learning Through Synaptic Intelligence,SI算法
本文介绍了一种名为"Synaptic Intelligence"(SI)的持续学习方法,通过模拟生物神经网络的智能突触机制,解决了人工神经网络在学习新任务时的灾难性遗忘问题,并保持了计算效率。
23 1
【博士每天一篇论文-算法】Continual Learning Through Synaptic Intelligence,SI算法
|
5天前
|
机器学习/深度学习 监控 算法
目标检测算法技术
8月更文挑战第11天
|
8天前
|
数据采集 机器学习/深度学习 算法
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
|
10天前
|
机器学习/深度学习 监控 算法
目标检测算法
8月更文挑战第8天
|
12天前
|
机器学习/深度学习 算法 物联网
【博士每天一篇论文-算法】Overview of Echo State Networks using Different Reservoirs and Activation Functions
本文研究了在物联网网络中应用回声状态网络(ESN)进行交通预测的不同拓扑结构,通过与SARIMA、CNN和LSTM等传统算法的比较,发现特定配置的ESN在数据速率和数据包速率预测方面表现更佳,证明了ESN在网络流量预测中的有效性。
11 4
|
12天前
|
机器学习/深度学习 存储 算法
【博士每天一篇论文-算法】Optimal modularity and memory capacity of neural reservoirs
本文研究了神经网络的模块化与记忆性能之间的关系,发现存在一个最佳模块化程度,能够在局部凝聚性和全局连接性之间实现平衡,从而显著提高神经网络的预测性能和记忆能力,并为设计神经网络和理解大脑的模块化组织提供了新的见解。
8 0
【博士每天一篇论文-算法】Optimal modularity and memory capacity of neural reservoirs
|
12天前
|
机器学习/深度学习 算法 数据挖掘
【博士每天一篇文论文-算法】A small-world topology enhances the echo state property and signal propagationlun
本文研究了小世界拓扑结构在回声状态网络(ESN)中的作用,发现具有层级和模块化组织的神经网络展现出高聚类系数和小世界特性,这有助于提高学习性能和促进信号传播,为理解神经信息处理和构建高效循环神经网络提供了新的视角。
18 0
【博士每天一篇文论文-算法】A small-world topology enhances the echo state property and signal propagationlun
|
8天前
|
算法 Python
【python】python基于 Q-learning 算法的迷宫游戏(源码+论文)【独一无二】
【python】python基于 Q-learning 算法的迷宫游戏(源码+论文)【独一无二】
|
24天前
|
机器学习/深度学习 计算机视觉 异构计算
【YOLOv8改进 - Backbone主干】ShuffleNet V2:卷积神经网络(CNN)架构
【YOLOv8改进 - Backbone主干】ShuffleNet V2:卷积神经网络(CNN)架构
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
卷积神经网络(CNN):视觉识别的革命先锋
卷积神经网络(CNN)作为人工智能领域的一颗璀璨明珠,在计算机视觉中发挥着核心作用。CNN的发展历程展现了从生物学灵感到技术创新的转变,历经LeNet-5至AlexNet、VGGNet、ResNet等里程碑式的进步。其独特结构包括卷积层、池化层及全连接层,能够层层递进地提取特征并作出决策。CNN不仅在图像分类、目标检测等领域表现卓越,还在人脸识别、医学影像分析等方面展现出巨大潜力。尽管存在局限性,如对序列数据处理能力有限及解释性问题,但通过引入注意力机制、自监督学习等方法,CNN将持续演进,引领人工智能技术走向更加精彩的未来。
28 2

热门文章

最新文章