CSL基于圆形平滑标记的任意方向目标检测
- Abstract
- 1 Introduction
- 2 Related Work
- 3 Proposed Method
-
- 3.1 Regression-based Rotation Detection Method
- 3.2 Boundary Problem of Regression Method
- 3.3 Circular Smooth Label for Angular Classification
- 3.4 Loss Function
- 4 Experiments
-
- 4.1 Ablation Study
-
- 4.1.1 Comparison of four window functions
- 4.1.2 Suitable window radius
- 4.1.3 Classification is better than regression
- 4.1.4 CSL performance on other datasets
- 4.1.5 Visual analysis of angular features
- 4.2 Comparison with the State-of-the-Art
-
- 4.2.1 Results on DOTA
- 4.2.2 Results on HRSC2016
- 5 Conclusion
论文地址:https://arxiv.org/abs/2003.05597
开源代码:https://github.com/Thinklab-SJTU/CSL_RetinaNet_Tensorflow
作者解读:https://zhuanlan.zhihu.com/p/111493759
本文亮点:
- 将角度预测这个回归问题视为分类问题,同时结合了回归任务,提高了检测的性能。
- 提出CSL来解决边界不连续的问题。
Abstract
- 观察到基于回归的旋转检测器存在边界不连续的问题,设计了将回归任务的角度预测转变为分类任务。
- 提出了一种圆形平滑标签技术(CSL) 来处理角度的周期性问题,增加了对相邻角度的误差范围。
- 介绍了CSL中的四个窗口函数,并讨论不同窗口半径对检测性能的影响。
1 Introduction
- 角度周期性与角度序列的问题:
- 无论是五个参数还是八个参数的回归,都有存在边界不连续的问题。
- 基于回归方法的边界问题存在的根本原因是:
- 理想预测超出了定义的范围。
- 模型在边界处的损失剧增,使得模型不能以最简单和直接的方式得到预测结果。
- 微小的角度偏差会导致相交于联合IoU的下降,从而导致检测不准确。
- 基于边界问题,已有的工作成果:
- IoU-smooth L1损失增加了IoU因子。
- 模旋转损失增加了边界约束,用于消除边界损失的剧增,降低模型学习难度。
以下是本文贡献:
- 根据上述观察,提出的方法:
- 将目标的角度预测设置为一个精度很小的分类问题,用来更好地限制预测结果。具体步骤是,在旋转检测中设计了第一种基于高精度角度(小于1度)分类 的pipeline,与之前粗分类粒度(10度左右)的方法不同。
- 设计一种圆形平滑的标签(CSL),用来解决角度周期性,提高相邻角之间的误差容限。——同时可以在基于回归的方法中使用。
- 在DOTA和HRSC2016数据集中,通过大量实验结果验证了CSL的有效性。
2 Related Work
- Horizontal region object detection(水平区域目标检测):
- anchor-based检测方法:
R-CNN系列:Fast R-CNN, Faster R-CNN,and R-FCN。
FPN: 针对图像中的尺度变化,提出特征金字塔网络来处理不同尺度下的目标。
SSD,YOLO,RetinaNet: 典型的一阶段检测方法,一阶段使得网络具有更快的检测速度。 - anchor-free检测方法:
CornerNet, CenterNet, ExtremeNet: 使用预测对象的一些关键点,比如说角点或极值点,然后将这些点分组到边界框中。
- Arbitrary-oriented object detection(任意方向目标检测):
- 表示方法: 一般使用旋转bbox和四边形。
- ICN,ROI-Transformer,SCRDet,R3Det: 目前比较SOTA的检测器。
- Gliding Vertex ,RSDet: 使用四边形表示回归预测框。
- RRPN: 采用旋转的RPN生成旋转的proposals,然后使用旋转bbox回归。
- TextBoxes++: 在SSD上采用顶点回归。
- RRD: 通过对旋转不变和旋转敏感特征的解耦分类和bbox回归,进一步改进了TextBoxes++。
- Classification for orientation information(定位信息分类):
- 使用方向信息分类最早应用于具有任意rotation-in-plane(RIP)角度的多视点人脸识别。采用分而治之的方法,利用多个小神经网络分别处理小范围的人脸外观变化。
- PCN: 逐步校准每个候选人脸的撕裂方向,并在早期阶段将撕裂范围缩小一半。最后,PCN对每一个候选人脸进行精确的最终判定,确定是否是人脸,并预测出精确的撕裂角。
- 在其他领域, 有采用序数回归或者有效地未来运动进行分类;还有通过对四个侧面进行分类来获得船舶的方位信息。
3 Proposed Method
下图表示的是本文提出的旋转检测器的结构。
所提出的旋转检测器的体系结构(RetinaNet作为实施例)。 “C”和“T”分别表示物体和角度类别的数目。
图解:
- 上图表示的是本文提出的旋转检测器的结构,此图展示了一个多任务的pipeline(multi-task subnets),包括了基于回归的预测分支和基于CSL的预测分支。
- 这是基于RetinaNet进行改进的一阶段旋转检测器。
- 标红的 ”C" 和 “T” 分别表示目标和角度分类。
3.1 Regression-based Rotation Detection Method
笔者归纳:
这部分介绍了基于回归任务的旋转检测方法,包括定义和参数表示。
基于参数回归的旋转检测方法: 五参数回归法和八参数回归法。
图解:
- (a)角度范围为90°的五参数法: 参数分别是 (x,y,w,h,θ)(x,y,w,h,θ)(x,y,w,h,θ),θ∈[−90,0)θ∈[-90,0)θ∈[−90,0)。θθθ表示与x轴的锐角,无论是长边还是短边都称为width(宽度),该边与x轴的夹角θθθ都在[−90,0)[-90,0)[−90,0)。
- (b)角度范围为180°的五参数法: 这个与(a)不同指出在于,参数分别是 (x,y,h,w,θ)(x,y,h,w,θ)(x,y,h,w,θ),即h和w的位置是不一样的。θ∈[-90,90),θ表示的是矩形的长边(h)与x轴的夹角。
- (c)有序四边形的八参数法: 这是直接对目标的四个角点 (x1,y1,x2, y2, x3, y3, x4, y4) 进行回归,回归的关键是要先对四个角点排序,预测的是有序的四边形。如图(c),不是规则矩形也按照左上角、右上角、右下角、左下角的顺序对角点进行排序(按照顺时针的方向)。
3.2 Boundary Problem of Regression Method
笔者归纳:
这部分介绍回归方法的边界问题——即,边界不连续的问题。而导致回归方法的边界问题主要原因是理想预测超出了定义的范围。
下面介绍该问题的原因、结果、解决方法和对比实验。
- 成因: 3.1节中五参数法的角度周期性和八参数法的角度顺序是导致边界不连续的主要因素。
- 结果: 边界不连续会使得模型计算边界处损失值时突然增大,那么在计算损失时误差就会很大,检测结果也不准确。
作者根据回归方法的表现形式,把边界问题分成三类典型的回归方法(其中(a)(b)指的是五参数法,(c)指的是八参数法)。
图解:
- 红色实心箭头表示实际回归过程,红色虚线箭头表示理想回归过程。
- (a)90°回归法: 回归的理想形式是蓝框逆时针旋转到红框,由于角度周期性(PoA)和边的可交换性(EoE),使得这样回归损失很大。要解决这个问题,可以通过缩放w和h,蓝框顺时针旋转到灰色框。
具体计算损失可以通过3.4节介绍的公式(3)(4)(5)。
- (b)180°回归法: 该方法也存在由 角度周期性(PoA) 导致损失增大的问题。具体做法是: 顺时针旋转proposals,即从蓝框顺时针旋转到红框。
- (c)基于点的方法:
理想情况下(红色虚线,顺时针),八参数回归是{(a→b),(b→c),(c→d),(d→a)}。
实际上(红色实线,逆时针) ,从蓝框到绿色框的回归过程是{(a→a),(b→b),(c→c),(d→d)}。
总的来说,这种情况同样属于角度周期性(PoA)导致的问题,但是理想与实际回归是一致的。
之前提出的方法,但仍然没有从根本上解决问题:
- IoU-smooth L1损失引入IoU因子。
- 模旋转损失增加了边界约束,消除了边界损失的突然增加,从而降低模型学习的难度。
作者提出的方法:
- 用分类来替代回归角度预测。
下面是检测方法的对比实验:
(其中,H,R分别表示水平和旋转anchors,红色虚线框表示不好的例子)
图解:
- 上图是五种基于回归经典旋转方法的结果,分别是(a) RetinaNet-H,(b) RetinaNet-R,(c)FPN-H,(d)R3Det ,(e)IoU-Smooth L1。(上图看得不太清楚,看原文的图可以大概看到红色虚线圈出来的是没有能够正确回归的框,框并没有能够准确回归到正确位置上)。
- 上图是边界条件下,CSL回归的结果。
(f)180-CSL-脉冲函数
(g)180◦-CSL-矩形函数
(h)180◦-CSL-三角形函数
(i)180◦-CSL-高斯函数
(j) 90◦-CSL-高斯函数 - 图(f)-(i)显示了四个窗口函数的可视化。从图(i)和图(j)可以看出,基于180°的CSL方法具有更好的边界检测能力。原因是,90°CSL方法依然存在EoE问题。
- 可以从结果中看出,回归的框都基本正确。特别说明,下图(i)虽然回归的框都是竖着的矩形,但是角度却不一样,一个是90.0°,一个是-88.0°,这说明边界条件的预测是连续的。
3.3 Circular Smooth Label for Angular Classification
笔者归纳:
首先,这部分介绍了用于角度分类的圆形平滑标签。为了解决边界问题,将目标角度作为类别标签(分类问题),类别的数量与角度范围有关。其次,对两种分类标签进行介绍。
图解:
- 上图是两种分类标签,(a)是One-hot标签,(b)是圆形平滑标签(CSL)。FL表示的focal loss。
- (a)是One-hot标签:显示标准分类问题的标签设置。比如,角度范围是180°的五参数法,ω度表示为一个类别(默认是ω=1°)。
- (b)是圆形平滑标签,它是一个周期性的循环标签编码,并且指定的标签值是平滑的,具有一定的容差。
- 图中给出了四种窗口函数:脉冲函数、矩形函数、三角形函数和高斯函数。从图中可以看到标签值在边界处是连续的(比如,-90到89是连续的)。当窗口函数是脉冲函数或者窗口半径很小时,一个one-hot标签相当于CSL,如箭头所示。
One-hot标签:
-
损失计算:
计算 最大精度损失Max(loss) 和 预测精度损失E(loss) 公式如下:
最大精度损失是预测精度损失的两倍,即Max(loss)=2E(loss)Max(loss)=2E(loss)Max(loss)=2E(loss)。可以看出,旋转检测器的损失比较小。
比如:当宽高比为1:9的两个矩形相差0.25°和0.5°时(默认预期精度损失和最大精度损失),它们之间的交并比(IoU)仅减少0.02和0.05。 -
缺点:
(1) 当边界框基于90°回归法时,边的可交换性(EoE)依然存在。
此外,基于90°回归的方法有两种不同的边界情况(垂直和水平),而基于180°回归的方法只有垂直边界情况。
(2) 分类损失对预测标签和GT标签之间的角度距离不可知。
比如说,(a)当gt为0°,分类器的预测结果时1°和-90°时,它们的预测损失是相同的,但是从检测角度来看,应该允许接近gt的作为预测结果。
CSL标签:
该方法是不受边界条件(包括EoE和PoA)影响的,通过分类获得较好的角度预测。
- 周期性:g(x)=g(x+kT),k∈Ng(x)=g(x+kT),k∈Ng(x)=g(x+kT),k∈N。T=180/ωT=180/ωT=180/ω表示家都被分成的格数,默认值是180。
- 对称性: 0≤g(θ+ε)=g(θ−ε)≤1,∣ε∣<r0≤g(θ+ε)=g(θ-ε)≤1,|ε|<r0≤g(θ+ε)=g(θ−ε)≤1,∣ε∣<r。其中,θθθ是对称中心。
- 最大值:g(θ)=1g(θ)=1g(θ)=1。
- 单调性:0≤g(θ±ε)≤g(θ±ς)≤1,∣ς∣<∣ε∣<r0≤g(θ±ε)≤g(θ±ς)≤1,|ς|<|ε|<r0≤g(θ±ε)≤g(θ±ς)≤1,∣ς∣<∣ε∣<r。函数从中心点到两边呈现单调的非递增趋势。
3.4 Loss Function
笔者归纳:
这部分是图1的多任务的结构图的损失计算。首先是介绍边界框计算公式,其次是导出多任务子网络是如何计算损失的。
在多任务子网络中,包含了基于回归的预测分支和基于CSL预测分支,便于在同等条件下进行性能上的对比。
- x,y,w,h,θx,y,w,h,θx,y,w,h,θ分别表示框的坐标、宽、高和角度。
- x,xa,x′x,x_{a},x^{'}x,xa,x′分别表示gt框、anchor框和预测框(同理,y,w,h,θy,w,h,θy,w,h,θ)。
公式(5)是回归任务的损失函数:
该公式由 回归损失+CSL分类损失+类别损失 表示。
公式参数说明:
- N表示anchor的数量。
- objnobj_{n}objn表示是前景还是背景,是一个二进制的值(objn=1obj_{n=1}objn=1是前景,objn=0obj_{n}=0objn=0是背景,无回归表示背景)。
- v∗j′v_{*j}^{'}v∗j′表示预测偏移向量,v∗jv_{*j}v∗j表示真实的目标向量。
- θn,θn′θ_{n},θ_{n}^{'}θn,θn′分别表示角度的标签和预测。
- tnt_{n}tn表示目标的标签,pnp_{n}pn表示用Sigmoid函数计算各类概率分布。
- 超参数λ1,λ2,λ3λ_{1},λ_{2},λ_{3}λ1,λ2,λ3表示各个损失的权重,默认值是{1,0.5,1}。
- Lcls,LCSLL_{cls},L_{CSL}Lcls,LCSL使用的是focal loss或者sigmoid交叉熵损失,这取决于检测器。
- LregL_{reg}Lreg使用的是smooth L1损失。
4 Experiments
- backbone: ResNet50
- 数据集: DOTA(航拍数据集),ICDAR2015(文本数据集),ICDAR 2017 MLT(文本数据集), HRSC2016(遥感数据集)。
4.1 Ablation Study
4.1.1 Comparison of four window functions
- 5-mAP表示大纵横比的五类平均精度。
- mAP表示15个类别的平均精度。
- EoE表示边的可交换性问题,打勾表示该方法存在EoE问题。
- 所有的方法都不存在周期性的角度问题。
- 高斯函数表示最好,但是脉冲函数表现最差,因为它没有学习到任何方向和尺度信息。
4.1.2 Suitable window radius
窗口函数半径的影响:
- 当半径太小时,窗口函数趋于脉冲函数;
- 当半径太大时,所有可能的预测结果的分辨力都会变小。
- 使用RetinaNet-H和FPN-H,角度范围是180°,高斯窗口函数,窗口函数半径从0到8进行对比实验。
- 表格显示,半径在6时,达到最佳的性能。
- RetinaNet-H是单级检测器,对半径比较敏感;FPN-H是两级检测器,性能比单级检测器更强一些。
- 上图是基于RetinaNet-H-CSL,不同窗口半径下的可视化效果。红色框表示没有学习到方向和比例信息,绿色框是正确的检测结果。
- 当半径为0时,检测器无法学习任何方向和尺度信息,回归出来的框基本都是红色框,意味着没有回归正确。(在此情况下,可以等同于脉冲函数的性能)
- 随着窗口半径变大,检测器可以学习任何方向的角度。
4.1.3 Classification is better than regression
Table-3: 基于DOTA的CSL方法与基于回归的方法比较。
图解:
- 表中对比了三个选择检测器的两种分类方法的性能差异:RetinaNet-H、RetinaNet-R和FPN-H。
- CSL是为了解决边界问题的,因此mAP提升效果不如5-mAP那么明显。
- CSL对大纵横比和边界条件较多的目标具有更好地检测效果。
4.1.4 CSL performance on other datasets
为了进一步验证CSL的效果,对文本数据集(ICDAR2015、ICDAR 2017 MLT)、遥感数据集(HRSC2016)也同样进行了实验,这三类数据集的目标均具有大纵横比。
Table-4: 其他数据集对于CSL性能的对比实验。
图解:
- 如图所示,基于CSL的方法比传统的方法分别提高了1.21%、0.56%和1.29%(1.4%)。
- Hmean表示的是文本数据集检测的衡量标准。
4.1.5 Visual analysis of angular features
- 在DOTA数据集上,90-CSL-FPN检测器的角特征可视化结果。
- 首先,将整个角度范围分成几个bin,每个bin在不同的columns是不同的。这两行分别表示了脉冲和高斯函数的二维特征可视化。每个点代表测试集的一个RoI和所属的bin索引。
- 第一行表示脉冲窗口函数,可以看出RoI特征分布是相对随机的,并且一些角度的预测结果占了绝大多数。
- 第二行表示高斯窗口函数,很明显的看出特征分布呈现环状结构,而且相邻角的特征相互接近,有一定的重叠。
4.2 Comparison with the State-of-the-Art
4.2.1 Results on DOTA
Table-5: 在DOTA数据集上,与比较所有SOTA方法进行对比。
图解:
- 在DOTA数据集上对每个目标(AP)的检测精度和总体性能(mAP)。
- O2-DNet使用Hourglass104作为主干网络。其余都是用ResNet101、ResNeXt101或ResNet152。
- 训练和测试尺寸设置为 [400,600,720,800,1000,1100]。
- 基于FPN-CSL方法获得了76.17%的总体表现,在PL、BR、SBF、HC这四个类别表现较好,其他效果并没有那么好。
4.2.2 Results on HRSC2016
Table-6: 在HRSC2016数据集上,做对比实验。
图解:
- 实验结果表明,该模型达到了最新的性能,约为89.62%。
5 Conclusion
- 总结不同基于回归的旋转检测方法的边界问题。
- 将目标角度的预测作为一个精度很小的分类问题。
- 设计一种圆形平滑标签(CSL),用于解决边界不连续的问题。
- 讨论四种窗口函数,对不同窗口半径进行实验并讨论。