Oriented R-CNN for Object Detection
Rating: ⭐⭐-⭐⭐⭐
comment: 跟S2ANet很相似
本文算是工程上的很大提升,基本上刷到了DOTAv1.0的前几个,HRSC2016也是很靠前。其中6元数描述检测框的方式挺巧妙的。本文从结构和调参上看,应该基本是从S2ANet的one-stage改到了two-stage的方式,提高了精度。作者的repo也很全面,而且在持续更新,可以关注下。还有一点是对初学者比较友好,作者在文中有些地方很详细地解释了步骤。
Abstract
Abstract部分总结工作分为两部分:(1)ORPN:以很小的代价产生高质量的oriented proposals(anchors) (2)oriented R-CNN head,对(1)产生的proposals做refine(应该是回归)并给出类别。然后提及了DOTA和HRSC2016的结果,包括mAP和FPS,可以说工程上的效果很好。
Intro
Intro部分对两阶段的旋转目标检测算法做了回顾,从RPN到RoI Tranformer(不是nlp出来的),再到本文的Oriented RPN。作者提出了本文的网络结构,并对比了Rotated RPN,RoI Transformer的参数量。
归功于一个交midpoint offset representation的新概念,作者得以降低了oRPN的参数。第二个阶段和传统RCNN类似。
然后基本上把abstract的结果部分又念了一遍,有点重复感觉。
Related Work
我完部分参数就先去看了Related Work中有没有提到S2ANet的事,果然,[12]就是。可以说S2ANet影响了很多后续的工作,mmdet功不可没。但本文的工程OBBDetection用mmdet v2.2,应该是和S2ANet不同,需要帮作者澄清下。
ORCNN Details
oRPN
从骨干网络输出P2-P6五个特征层,进入FPN的结构中。这时,每一个网格的中心有3个不同retios的水平anchors。之后说明了regression branch的输出为一个六维度的offset(即上面的midpoint offset representation)
δ
\delta
δ=(
δ
x
,
δ
y
,
δ
w
,
δ
h
,
δ
α
,
δ
β
\delta_x,\delta_y,\delta_w,\delta_h,\delta_\alpha,\delta_\beta
δx,δy,δw,δh,δα,δβ),即每个proposal相对于初始anchor的offset。解码过程:
∗
Δ
α
*Δα
∗Δα and
Δ
β
Δβ
Δβare the offsets relative to the midpoints of the top and right sides of the external rectangle.*
上面这一句话的理解看这个图:算是对传统水平框的一个“内接”,这个我认为还是比较巧妙的。可以直接用前人的方法,只要注意
Δ
α
\Delta\alpha
Δα和
Δ
β
\Delta\beta
Δβ的收敛效果就行。注意这个图有一定的误导性,就是内部未必是一个矩形。
在做label assignment的过程中(具体什么是label assignment可以详细看下我之前的DAL的论文阅读,DAL算是让我恶补了下label assign的其他方法),需要注意:作者计算的是GT框和外面包围的蓝色线条框(external bbox)的IoU。由此计算了Loss:
这里的N是batch size(作者取的256)。cls为CE loss,reg为smooth L1。
在回归的过程中,使用到了affine transformation(仿射变换)。具体公式如下:
这部分的作用具体没有看的很懂,代码见!
oRCNN Head
Head部分一般是不同算法差别很大的地方所在。输入为P2-P5共4个特征层以及第一阶段的proposals。通过rotated RoIalign来提取特征。下图是用来解释这一过程的:
由于第一阶段产生的proposals一般都不是矩形(蓝色框),所以需要这一过程来调整。由此得到
(
x
,
y
,
w
,
h
,
θ
)
(x,y,w,h,\theta)
(x,y,w,h,θ),这就接近S2ANet了。但是这里作者的theta取的
[
−
π
2
,
π
2
]
[-\frac{\pi}{2},\frac{\pi}{2}]
[−2π,2π]。需要注意的是,在S2ANet的Issue中,明确了theta范围是
[
−
π
4
,
3
π
4
]
[-\frac{\pi}{4},\frac{3\pi}{4}]
[−4π,43π]的原因(一部分是
t
a
n
(
θ
)
tan(\theta)
tan(θ)在边界取正负无穷。)。再投影到F上,根据一个s步长得到
(
x
r
,
y
r
,
w
r
,
h
r
,
θ
)
(x_r,y_r,w_r,h_r,\theta)
(xr,yr,wr,hr,θ),操作为:
Implementation Details
第一阶段保留了2000个proposals,用了NMS。然后预测地时候去了top 1000。
其余部分都是对比结果,有个问题是没做什么消融实验,有一点点离谱啊。