(二十五)深度学习目标检测:RCNN

RCNN

RCNN主要分为3个大部分
第一部分产生候选区域;
第二部分对每个候选区域使用CNN提取长度固定的特征;
第三个部分使用一系列的SVM进行分类;
第四个部分使用回归器精细修正候选框位置;
在这里插入图片描述
在这里插入图片描述

RCNN的检测流程:

(1)首先输入一张自然图像;
(2)使用Selective Search提取大约2000个候选区域(proposal);
(3)对每个候选区域的图像进行拉伸形变,使之成为固定大小的正方形图像;
(4)将步骤(3)得到的图像输入到CNN中提取特征;
(5)使用线性的SVM对提取的特征进行分类。
(6)使用根据特征图对先验框进行坐标回归(使用回归器精细修正候选框位置)。

第一部分产生候选区域

(1)首先输入一张自然图像;
(2)使用Selective Search提取大约2000个候选区域(proposal);
(3)对每个候选区域的图像进行拉伸形变,使之成为固定大小的正方形图像;
在这里插入图片描述

第二部分对每个候选区域使用CNN提取长度固定的特征;

在这里插入图片描述

第三个部分使用一系列的SVM进行分类;

在这里插入图片描述

第四个部分使用线性回归器精细修正候选框位置;

使用全连接进行回归,回归得到平移和缩放参数的结果为Px、Py、Pw、Ph
在这里插入图片描述

Bounding-box回归原理

作者在完成了前面提到的“生成候选区域——CNN提取特征——SVM进行分类”以后,为了进一步的提高定位效果,在文章的附录C中介绍了Bounding-box Regression的处理。Bounding-box Regression训练的过程中,输入数据为N个训练对{(Pi,Gi)},i=1,2,…,N,其中,Pi=(Pix,Piy,Piw,Pih)为proposal(先验框)的位置,前两个坐标表示proposal的中心坐标,后面两个坐标分别表示proposal的width和height,而 Gi=(Gix,Giy,Giw,Gih)表示groundtruth的位置,
regression的目标就是学会一种映射将P转换为G。

作者认为P到G的过程是通过平移变换和缩放变换得到的。设平移因子为dx(Pi),dy(Pi)缩放因子dw(Pi),dh(Pi)。在平移变换时添加一项平移系数Pw, Ph

Gix = Pw dx(Pi)+ Pix
Giy = Phdy(Pi)+ Piy
Giw = Pwexp(dw(Pi))
Gih = Phexp(dh(Pi))
Gi = (Gix,Giy,Giw ,Gih

在上面的公式中,我们唯一不知道的是 平移因子为dx(Pi),dy(Pi)缩放因子dw(Pi),dh(Pi)。因此我们要利用回归学习者四个参数。
在学习时,作者使用的是线性回归,假设学习出来的结果为d’x(Pi)、d’y(Pi)、d’w(Pi)、d’h(Pi),Φ(P)为第i个先验框的特征向量则

d’(Pi)={d’x(Pi),d’y(Pi),d’w(Pi),d’h(Pi)}=WTΦ(Pi

在学习时我们使用的标签是根据上面的平移变换和缩放变换公式得到的

dx(Pi) = (Gix- Pix)/Pw
dy(Pi) = (Giy- Piy)/Ph
dw(Pi) = log(Giw /Pw)
dh(Pi) = log(Gih/Ph)
d(Pi) ={dx(Pi),dy(Pi),dw(Pi),dh(Pi)}

因此回归损失可以写成:

loss = sumNi=1( (d(Pi) - WTΦ(Pi))2)

loss = sumNi=1( (d(Pi) - d’(Pi))2)

优化目标函数可以写成:

W*=argminw(loss+λ||W||2)

最后解释一下使用用线性回归的原因,作者认为当先验框与真实框很接近时(二者的IOU值>0.6)他们之间的变换可以近似为一个线性变换

目标检测最主要的就是Bounding-box回归,不同算法的Bounding-box回归原理都类似,只是先验框的选取与设置不同。

参考

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值