Fast R-CNN

算法过程

  • 使用SS算法将一张图像生成1k~2k个候选区域
  • 将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵
  • 将每个特征矩阵通过RoI pooling层缩放到7*7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果
    算法流程

1、使用SS算法将一张图像生成1k~2k个候选区域

这一部分和R-CNN算法一样。

2、将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵

Fast-RCNN将整张图像送入网络,紧接着从 特征图像上提取相应的候选区域。这些候选 区域的特征不需要再重复计算。
在这里插入图片描述

3、将每个特征矩阵通过RoI pooling层缩放到7*7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果

RoI Pooling层就是将特征矩阵划分为7x7的小块,然后对每个小块进行MaxPooling或者AveragePooling等操作,就会得到7x7的特征图。这样就可以不限制输入图像的尺寸了。如下图所示
在这里插入图片描述

分类器

  • 两个FC全连接层并联,其中一个分类器进行目标概率预测,另一个用来边界框回归参数的预测
目标概率预测分类器

输出N+1个类别的概率(N为检测目标的种类,1为背景)共N+1个节点

边界框回归器

输出对应N+1个类别的候选边界框回归参数 ( d x , d y , d w , d h ) (d_x,d_y,d_w,d_h) (dx,dy,dw,dh)(N+1)*4个节点。然后会根
据这些节点进行候选边界框的调整,公式如下:
G ^ ( x ) = P w d x ( P ) + P x \widehat{G}(x)= P_{w}d_{x}(P)+P_{x} G (x)=Pwdx(P)+Px
G ^ ( y ) = P h d y ( P ) + P y \widehat{G}(y)= P_{h}d_{y}(P)+P_{y} G (y)=Phdy(P)+Py
G ^ ( w ) = P w e x p ( d w ( P ) ) \widehat{G}(w)= P_{w}exp(d_{w}(P)) G (w)=Pwexp(dw(P))
G ^ ( h ) = P h e x p ( d h ( P ) ) \widehat{G}(h)= P_{h}exp(d_{h}(P)) G (h)=Phexp(dh(P))
其中 P x P_{x} Px P y P_{y} Py P w P_{w} Pw P h P_{h} Ph分别为候选框的中心x,y坐标和宽高
G ^ ( x ) \widehat{G}(x) G (x) G ^ ( y ) \widehat{G}(y) G (y) G ^ ( w ) \widehat{G}(w) G (w) G ^ ( h ) \widehat{G}(h) G (h)分别是最终预测的边界框中心x,y坐标以及宽高。

损失函数

L ( p , u , t u , v ) = L c l s ( p , u ) + λ [ u ≥ 1 ] L l o c ( t u , v ) L(p,u,t^u,v)=L_{cls}(p,u)+\lambda[u\geq1]L_{loc}(t^u,v) L(p,u,tu,v)=Lcls(p,u)+λ[u1]Lloc(tu,v)

分类损失

用的是Softmax交叉熵损失函数

  • 多分类问题 H = − ∑ i o i ∗ l o g ( o i ) H=-\sum_io_i^*log(o_i) H=ioilog(oi)
  • 二分类问题 H = − 1 N ∑ i = 1 N [ o i ∗ l o g o i + ( 1 − o i ∗ ) l o g ( 1 − o i ) ] H=-\frac{1}{N}\sum_{i=1}^N[o_i^*logo_i+(1-o_i^*)log(1-o_i)] H=N1i=1N[oilogoi+(1oi)log(1oi)]

其中 o i ∗ o_i^* oi为真实标签, o i o_i oi为预测值,默认log以e为底等于ln

边界框回归损失

L l o c ( t u , v ) = ∑ i ∈ { x , y , w , h } s m o o t h L 1 ( t i u − v i ) L_{loc}(t^u,v)=\sum_{i \in\left \{ x,y,w,h \right \}}smooth_{L_1}(t_i^u-v_i) Lloc(tu,v)=i{x,y,w,h}smoothL1(tiuvi)
s m o o t h L 1 ( x ) = { ∣ x ∣ − 0.5 , o t h e r s 0.5 x 2 , i f ∣ x ∣ < 1 smooth_{L_1}(x)=\left \{^{0.5x^2,{if\left | x \right |<1}}_{\left | x \right |-0.5,others}\right. smoothL1(x)={x0.5,others0.5x2,ifx<1

  • t u t^u tu对应边界框回归器预测的对应类别 u u u的回归参数 ( t x u , t y u , t w u , t h u ) (t_x^u,t_y^u,t_w^u,t_h^u) (txu,tyu,twu,thu)

  • v v v对应真实目标的边界框回归参数 ( v x , v y , v w , v h ) (v_x,v_y,v_w,v_h) (vx,vy,vw,vh)

注意:在训练过程中并不需要把SS算法选定的候选区域全部进行训练,只训练64个RoI;此外这64个训练数据还将分为正负样本。

  • 正样本:候选框与真实边界框的IoU大于0.5
  • 负样本:与真实边界框的IoU取值范围在[0.1, 0.5]

参考大佬B站视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值