R-CNN、Fast R-CNN的原理

R-CNN通过SelectiveSearch获取候选区域,使用CNN提取特征,再通过SVM分类和回归修正,提高了目标检测的准确性。然而,其测试和训练速度较慢,存储需求大。FastR-CNN改进了这一情况,通过共享特征计算,结合ROI pooling层,实现训练和推理速度的显著提升,并且通过网络同时完成分类和回归任务,减少了额外的模型训练。FastR-CNN引入了分类损失和边界框回归损失,提高了检测效率。

目  录

1 R-CNN(Region with CNN feature)

1.1 R-CNN算法流程

1.2 R-CNN存在的问题

2 Fast R-CNN

2.1 Fast R-CNN算法流程

2.2 Fast R-CNN损失的计算


1 R-CNN(Region with CNN feature)

R-CNN的提出将目标检测领域的最高准确度至少提高了30%,在目标检测瓶颈期时,传统的目标检测算法正确率在30%左右。而R-CNN的出现使正确率到达50%多。


1.1 R-CNN算法流程

分为以下四个步骤:

①使用SS算法(Selective Search)在每一张图像上获取1000~2000个候选区域:

如图通过SS算法通过图像分割的方法得到一系列矩形框,每个矩形框中都可能包含我们要检测的目标。


②对每一个候选区域,使用深度网络(即为图片分类网络)提取特征:

将每一个候选框(假设共有2000个)都缩放(Resize)到227×227的大小,将候选区输入到事先训练好的图像分类网络(去掉全连接层)中,获得4096维的特征(假设展平处理之前的输出矩阵为64×64的),最终得到2000(行)×4096(列)维矩阵,每一行对应一个候选框的特征向量


③将特征送入每一类的SVM分类器,判断是否属于该类别:

步骤②得到的矩阵为2000×4096, 假设一共有20个类别,则一共有20个SVM分类器,则每一个分类器都有与输入矩阵对应4096个权值向量。将输入矩阵的第一行和SVM分类器的第一列(即第一个类别)相乘,得到的就是第一个候选框所属于第一个类别的概率,最终得到2000×20的矩阵;其中每行代表一个候选框归属于每个类别的概率每一列则表示每一个候选框所归属不同类别的概率


然后我们需要剔除每一类的重叠候选框,利用非极大值抑制(NMS)算法:

IoU(Intersection over Union)表示(A∩B)/(A∪B):

我们对每一个类别寻找概率最高的候选框,然后计算其他候选框与该候选框的IoU值,最后删除所有IoU值大于给定阈值的目标,将该候选框保留;然后再从剩下的候选框中寻找概率最高的候选框,再按照该流程计算,直到遍历了所有的候选框。经过该处理后,每一列(即每一类别)都会保留一些高质量的候选框。

比如以下例子:

找到A候选框的概率最高为98%,B候选框的概率为86%,经过计算IoU大于给定的阈值,则删除B候选框留下A候选框。


④使用回归器精细修正第③步剩余候选框位置:

一共有20个类别,采用20个回归器进行回归操作(根据第②步输出的特征向量),最终得到每个类别修正后得分最高的候选框。


综上,R-CNN的框架如下:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值