RR-CNN:针对船舶检测的基于旋转区域的CNN方法

📝论文下载地址

  [论文地址]

👨‍🎓论文作者

Zikun Liu,Jingao Hu,Lubin Weng,Yiping Yang

📦模型讲解

[背景介绍]

  在遥感图像目标检测领域,旋转定向框的检测方法是优于水平框的检测方法,但是必然带来更困难的回归。

  虽然已经存在很多旋转定向框的目标检测数据集,但是针对这种数据集的模型少之又少,下表展示了当时比较常用的目标检测网络的对比,网络是否采用旋转定向框进行检测、是否使用权值共享,是否端到端。

[论文解读]

  RR-CNN方法的backbone可以采用任何的特征提取方法,例如Alexnet和VGG-16。辅助结构包括三个关键组件:RRoI池化层,RBB回归模型和NMS多任务处理。

[RRoI池化层]

  准确提取船舶区域的特征非常重要。但是,Fast R-CNN和Faster R-CNN都基于边界框通过RoI池化层提取区域特征,水平框在舰船检测任务中始终会覆盖过多的噪声信息。R-CNN从卷积之前的图像中提取区域数据,这等同于在输入数据和第一个卷积层之间放置一个特殊的RoI池化层。SSD使用预选框代替RoI区域。当水平框中的密集船只停泊在一起时,分类器很难区分船只。某些论文中使用的像素级自由形式RoI池化可以准确地提取特征,但是它仍然从左到右,从上到下合并特征,从而导致缺乏鲁棒性。其他论文证明了旋转边界框(RBB)的边界方法在船舶上的优势。作者提出了基于RBB的旋转感兴趣区域(RRoI)池化层。

  RRoI池化层还通过最大池化从有效关注区域内的特征中获得了一个固定的H×W的特征图,就像RoI池化层一样。将每个RRoI定义为五元组 ( x , y , w , h , a ) (x,y,w,h,a) (x,y,w,h,a),指定RBB的中心位置 ( x , y ) (x,y) (x,y),宽高度 ( w , h ) (w,h) (w,h)和旋转角度 a a a(在-90
和90之间),其中长边作为水平线。 y m r j = max ⁡ i ∈ B ( m , r , j ) ( x i ) y_{mrj}=\max_{i\in B(m,r,j)}(x_i) ymrj=iB(m,r,j)max(xi)其中 m m m是第 m m m级的特征图, r r r是第 r r r个RBB区域, j j j个表示该RBB区域第 j j j个输出对应的空间范围。

[RBB回归层]

  RR-CNN输出RBB,RBB回归模型定义为: L l o c ( t u , v ) = ∑ i ∈ { x , y , w , h , a } smooth ⁡ L 1 ( t i u − v i ) smooth L 1 ( x ) = { 0.5 x 2  if  ∣ x ∣ < 1 ∣ x ∣ − 0.5 otherwise t x = ( cos ⁡ α ( G x − P x ) + sin ⁡ α ( G y − P y ) ) / P w t y = ( − sin ⁡ α ( G x − P x ) + cos ⁡ α ( G y − P y ) ) / P h t w = log ⁡ ( G w / P w ) t h = log ⁡ ( G h / P h ) t a = ( G a − P a ) / ( λ 180 ) \begin{array}{c} L_{l o c}\left(t^{u}, v\right)=\sum_{i \in\{x, y, w, h, a\}} \operatorname{smooth}_{L_{1}}\left(t_{i}^{u}-v_{i}\right) \\ \text {smooth}_{L_{1}}(x)=\left\{\begin{array}{cc} 0.5 x^{2} & \text { if }|x|<1 \\ |x|-0.5 & \text {otherwise} \end{array}\right. \\ t_{x}=\left(\cos \alpha\left(G_{x}-P_{x}\right)+\sin \alpha\left(G_{y}-P_{y}\right)\right) / P_{w} \\ t_{y}=\left(-\sin \alpha\left(G_{x}-P_{x}\right)+\cos \alpha\left(G_{y}-P_{y}\right)\right) / P_{h} \\ t_{w}=\log \left(G_{w} / P_{w}\right) \\ t_{h}=\log \left(G_{h} / P_{h}\right) \\ t_{a}=\left(G_{a}-P_{a}\right) /(\lambda 180) \end{array} Lloc(tu,v)=i{x,y,w,h,a}smoothL1(tiuvi)smoothL1(x)={0.5x2x0.5 if x<1otherwisetx=(cosα(GxPx)+sinα(GyPy))/Pwty=(sinα(GxPx)+cosα(GyPy))/Phtw=log(Gw/Pw)th=log(Gh/Ph)ta=(GaPa)/(λ180)
其中,训练过程中RRoI的标签类别为 v = ( v x , v y , v w , v h , v a ) v =(v_x,v_y,v_w,v_h,v_a) v=(vx,vy,vw,vh,va)是真实的RBB回归目标, t u = ( t x u , t y u , t w u , t h u , t a u ) t_u =(t^u_x,t^u_y,t^u_w,t^u_h,t^u_a) tu=(txu,tyu,twu,thu,tau)是对 v v v的预测结果, P = ( P x , P y , P w , P h , P a ) P =(P_x,P_y,P_w,P_h,P_a) P=(Px,Py,Pw,Ph,Pa)是RBB建议区域, α = P a \alpha=P_a α=Pa G = ( G x , G y , G w , G h , G a ) G =(G_x,G_y,G_w,G_h,G_a) G=(Gx,Gy,Gw,Gh,Ga)是真实的RBB。下图中展示了尺度不变的直观理解。

  测试时,网络的输出 t u = ( t x u , t y u , t w u , t h u , t a u ) t_u =(t^u_x,t^u_y,t^u_w,t^u_h,t^u_a) tu=(txu,tyu,twu,thu,tau)与测试结果 G ^ = ( G ^ x , G ^ y , G ^ w , G ^ h , G ^ a ) \hat G =(\hat G_x,\hat G_y,\hat G_w,\hat G_h,\hat G_a) G^=(G^x,G^y,G^w,G^h,G^a)满足以下公式: G ^ x = t x P w cos ⁡ α − t y P h sin ⁡ α + P x G ^ y = t x P w sin ⁡ α + t y P h cos ⁡ α + P y G ^ w = P w exp ⁡ ( t w ) G ^ h = P h exp ⁡ ( t h ) G ^ a = λ 180 t a + P a \begin{array}{c} \hat{G}_{x}=t_{x} P_{w} \cos \alpha-t_{y} P_{h} \sin \alpha+P_{x} \\ \hat{G}_{y}=t_{x} P_{w} \sin \alpha+t_{y} P_{h} \cos \alpha+P_{y} \\ \hat{G}_{w}=P_{w} \exp \left(t_{w}\right) \\ \hat{G}_{h}=P_{h} \exp \left(t_{h}\right) \\ \hat{G}_{a}=\lambda 180 t_{a}+P_{a} \end{array} G^x=txPwcosαtyPhsinα+PxG^y=txPwsinα+tyPhcosα+PyG^w=Pwexp(tw)G^h=Phexp(th)G^a=λ180ta+Pa

[多任务NMS]

  一般的HBB目标检测方法NMS时在类内保持抑制。如上图所示,在舰船检测任务的类别之间没有NMS导致很多误检。在本文中,作者添加了多任务损失以学习每个建议的NMS分数。作者将损失函数定义为: L ( p , u , t u , v , C ) = L c l s ( p , u , C ) + λ 1 [ u ≥ 1 ] L l o c ( t u , v ) + λ 2 [ C > 2 ] L n m s ( p , u ) \begin{array}{r} L\left(p, u, t^{u}, v, C\right)=L_{c l s}(p, u, C)+\lambda_{1}[u \geq 1] L_{l o c}\left(t^{u}, v\right) \\ +\lambda_{2}[C>2] L_{n m s}(p, u) \end{array} L(p,u,tu,v,C)=Lcls(p,u,C)+λ1[u1]Lloc(tu,v)+λ2[C>2]Lnms(p,u)
其中 p p p是由softmax计算的离散概率分布, C C C是包括背景类别的类编号, λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2是超参数, v v v t u t^u tu与上面相同, L c l s L_{cls} Lcls L l o c L_{loc} Lloc L n m s L_{nms} Lnms是分类任务,定位任务和NMS任务的损失函数。 L l o c L_{loc} Lloc在上节中定义, L n m s L_{nms} Lnms时定义为 C = 2 C = 2 C=2 L c l s L_{cls} Lcls。具体的计算与Fast RCNN相同。

[结果分析]

  作者实在HRSC2016数据集上进行测试,该数据集包含三个级别的任务,L1为1类舰船目标检测,L2为4类舰船目标检测,L3为19类舰船目标检测。

  其中RC1是使用RROI与RBB回归层,RC2是使用RROI、RBB回归层和多任务NMS。结果对比如下表:

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值