一种倾斜矩形范围框标注方式及遥感目标检测应用分析

2021-03-31 09:25宋文龙刘宏洁
关键词:顶点像素向量

宋文龙,唐 锐,杨 昆,刘宏洁

(1.中国水利水电科学研究院 水利部防洪抗旱减灾工程技术研究中心,北京 100038;2.北京天地智绘科技有限公司, 北京 100192)

1 研究背景

卷积神经网络方法(CNN)使得目标检测工作取得巨大进展[1-5],但是早期提出的基于正框(指边平行于图像像素行和列的矩形范围框)的模型在检测朝向各异、密集排布的目标时效果退化严重[6-9]。其主要原因是用正框圈定倾斜目标时不同实例间的交并比大,对训练时正例的选取以及检测结果的极大值抑制产生了消极影响。朝向各异、密集排布目标在遥感影像上非常普遍,解决此类目标检测问题具有重要意义,发展出了多种不同的倾斜范围框(斜框)标注方式及CNN模型。

最常用的斜框标注方式是在正框的基础上加一个旋转角度θ,其代数表示为(xc,yc,w,h,θ) ,其中(xc,yc)表示范围框中心点坐标,(w,h)表示范围框的宽和高[1-4]。对于该标注方式,如果将w和h的值互换,再将θ加上或者减去2kπ+π 2,就能够表示同一个范围框。由于同一个范围框有多种不同的数值表示,会导致近似范围框之间的数值差异有大大小小多种情况[10]。如果近似范围框之间的数值差异大,对于基于监督分类的方法来说,就是损失函数的取值异常[10-15],不利于模型训练。此标注方式还有一种变形,标注正框时不是记录宽和高,而是记录中心点到四边的距离[11],但同样会有损失异常的问题。

记录四个顶点的坐标也可以用于标注斜框。武大夏桂松和华科白翔团队制作的DOTA[6]数据集以及中国科学院大学模式识别与智能系统开发实验室标注的UCAS-AOD[11]数据集就采用了这种标注方式。由于可以从四个顶点中的任意一个开始记录,此标注方式导致同一个范围框有多种不同的数值表示,进而会导致损失异常,增加回归难度,不利于模型训练。避免损失异常的现行方式是按照坐标值排序顶点,然后计算对应坐标点之间的差异,这种处理方式存在的问题是对坐标值排序会改变数值维度间的对应关系[15-16],在某次损失计算过程中预测向量的第一维对应真值向量的第二维,在另外一次损失计算过程中第一维可能对应第三维,这种对应关系的随机性同样不利于模型训练。记录四个顶点坐标的好处是可以表示任意四边形,但是在表示矩形时会有三个冗余量。一种去除冗余的方式是按顺时针顺序记录矩形四个顶点中的前两个和第二个顶点到第三个顶点的距离[13],但是同样会出现一个范围框有多种不同的数值表示。

还有一种斜框标注方式是记录斜框的外接正框以及斜框四个顶点与正框四个顶点顺时针方向的偏移量[17]。该标注方式同样可以表示任意四边形,如果只记录斜框两个顶点与正框两个顶点顺时针方向的偏移量就只能表示矩形框[18]。目前没有用该标注方式标注样本的,而是用于先预测正框再进一步预测真实的斜框,在预测正框时将锚点框向斜框的外接正框回归。但是要想斜框预测得准确就要求正框也得预测准确,增加了预测目标数量,也就增加了回归难度,同样不利于模型训练。

本文提出一种新的矩形斜框标注方式,可以用作样本标注和模型的回归目标。该标注方式没有冗余量,同一个范围框只有一种数值表示,作为回归目标时不会出现损失异常,有利于模型训练。将此标注方式与多种其他倾斜范围框标注方式在遥感影像目标检测任务上进行效果对比,分析在朝向任意、密集排布的目标检测工作中的适用性。

2 一种倾斜矩形范围框标注方式的提出

2.1 标注方式 本文提出的斜框标注方式用于标注的量有“中心点C的坐标、中心点到任意一个顶点D的向量、C到D的一个相邻顶点E的向量上的投影向量与 CD的比例系数”,代数表示为(xc,yc,u,v,ρ),其中(xc,yc)为中心点C的坐标,(u ,v )为向量的坐标, ρ为向量的比例系数。

图1中黑实线表示倾斜范围框,X表示图像行方向上的坐标轴,Y表示图像列方向上的坐标轴,C表示范围框的中心点,D、E为范围框的某两个顶点,P为上的投影点。

图1 用于标注范围框的量

如此一来,同一个范围框只有两种数值表示。也就是说,将向量CD取反,但保持其它值不变,仍然表示同一个范围框。由于同一个范围框的两种表示之间只有向量是相反的,可以引入一个量s表示的两个分量是同正负的还是一正一负的(后文将称之为同号或异号,可见s只有两种取值),那么可以用(| u |,|v |,s) 表 示和。同号时,分别为(|u |,|v | )和(- |u|,-|v | );异号时,和分别为(- |u|,|v|)和(| u |,-|v | )。此时就可以将同一个范围框的数值表示减少到一个,其代数表示为(xc,yc, |u|,|v|,s,ρ)。

2.2 求解顶点坐标和边长 在给定标注数值(xc,yc, |u|,|v |,s,ρ)时,向量 CD就是已知的,向量可以表示为。那么要获得范围框四个顶点的坐标,将引入的外部约束用方程进行表示,通过求解以下方程组的实现。

式中:wb是范围框的短边长度;hb是范围框的长边长度。

2.3 损失函数 当从特征向量直接预测目标框时,xc,yc,|u|,|v|,ρ的损失可以采用回归的方式计算,也就是直接计算数值之间的差异,如Smooth L1、L2等。s的损失可以采用分类的方式计算,让模型为s输出两个值,分别表示取同号和异号的可能性,代表同号的值大就是同号,否则就是异号,具体的损失值则可以用Corss Entropy、L2等。

当用特征向量预测锚点框到目标框的回归参数时,可以直接人为规定同号的锚点框向同号的目标框回归,异号的锚点框向异号的目标框回归。那么就不用计算s的损失。从锚点框到目标框的回归参数可以用如下公式定义。回归参数的损失可以用Smooth L1、L2等。

2.4 正方形范围框 在范围框是正方形时,即使满足前述约束条件,仍然有两种数值表示。取任意一个顶点作为参考向量,中心点到其顺时针或逆时针方向的相邻顶点的向量在上的投影总是0。如果 ρ的取值不允许为0,就不能表示正方形范围框。

2.5 s的损失平滑 图2中实线和虚线范围框的s值不同,但是它们却是非常近似的范围框。因此s值的差异不能真实体现范围框之间的差异。容易看出,与坐标轴的夹角越小,s的差异越是不能真实体现范围框之间的差异。

图2 s值差异大的两个近似范围框

其中|u|,|v |分别是 CD的两个分量的模。可见diff的取值范围为[0 , 1],当|u|,|v|相等时取零,当其中一个为0时取1。在式(4)中采用了平方函数,实际应用中,为了加快计算速度推荐使用求绝对值函数。然后将diff代入反Sigmoid函数求出s损失的权重。

3 遥感影像目标检测实验与效果分析

3.1 实验设计 提出的新的倾斜矩形范围框标注方式的主要特点在于同一个范围框只有一种数值表示,在作为回归目标时不会出现损失异常,有利于模型训练。实验的目的在于验证本斜框标注方式相较于其他斜框标注方式作为回归目标时的优势。

当前提出的斜框标注方式有“正框+倾斜角”式、四点式、“外接正框+偏移量”式,“正框+倾斜角”式、四点式各有一个变种。范围框最广泛的应用场景在于目标检测,因此在目标检测任务当中对比这几种斜框标注方式作为回归目标的有效性。

当前召回率较高的目标检测方法,都采用了从锚点框向目标框回归的方式预测范围框。其为特征图的每一个像素都预设一些锚点框,然后让网络预测锚点框到目标框的回归参数以及回归之后的锚点框存在目标的可能性值(得分)。之所以这么做有效,是因为普通图像的景深大,在镜头主光轴方向上会出现较多目标堆叠在一起的情况。堆叠在一起的目标经过卷积操作之后,其中心点很可能落在特征图同一个像素上。而用特征图上包含目标中心点的像素预测目标的范围更加准确。

对于遥感影像上的目标检测,卫星影像或者无人机航拍影像,其景深相对于物距来说很小。影像上主要被关注的目标如飞机、轮船、汽车、体育场等很少存在相互压盖的情况,所以从锚点框回归目标框不是必要的。也为了不给对比实验带来过多干扰,设计了一种简单的无锚点框的目标检测网络,并将目标检测网络输出向量的范围框部分设置为上述六种标注方式分别进行训练和验证。

对比 DOTA-v1.5(https://captain-whu.github.io/DOAI2019/dataset.html)和 UCAS-AOD (http://www.ucassdl.cn/resource.asp)这两个常用的斜框目标检测数据集,前者包含16个类别,近40万个标注的实例,2806张图像,后者仅含汽车和飞机两种类别,14596个标注的实例,1510张图像,因此DOTA-v1.5包含的类别数量、图像数量、标注的对象数量都远超后者,应用该数据集执行验证实验。该数据集为光学遥感影像,主要来自于Google Earth、吉林1号、高分2号等数据源。

3.2 目标检测网络 为了尽量让大小目标都能够被检测出来,在ResNet[19]作为骨干网络的基础上采用了特征金字塔网络(FPN)[20]。

将目标分配给特征金字塔的机制是该目标检测网络的关键,因为在这个目标检测网络中实现无锚点框结构的方式是通过让特征图上的一个像素只负责预测一个目标。所以需要保证每一个目标都能对应特征图上的不同像素。为了达到这个要求,规定特征图只负责识别短边长大于其网格对角线长度的目标。

图3中的虚线网格代表特征图上的像素,红色矩形框表示背景图像中的目标范围框。当目标短边长度大于特征图网格对角线长度时,密集排布目标的中心也会落在不同的特征图像素上。

图3 范围框及特征图像素网格

又因为让特征图去识别远超其网格宽度的目标时会出现特征不足的问题,所以还应该为特征图负责识别的目标边长设置一个上限。通过感受野(直接或者间接参与计算得出特征图像素值的输入图像像素的范围)分析和实验发现,可以让特征图负责识别的目标短边长处于[1 . 5wg,4.5wg]中,目标长边长度则不予限定。但是当长宽比过大时,不宜使用预测目标范围框的方式识别目标。

在实际检测任务中,统计出所有样本的短边长度范围,然后规划特征金字塔的层数和图像缩放比例使得每层特征图负责识别的目标短边长度满足要求。

由于特征图上的一个像素只预测一个目标,从而可以按照图4所示的方式确定网络最终输出向量的结构。图4中xc,yc,|u|,|v|,ρ为范围框的数值部分;s-为异号的可能性;s+为同号的可能性;score为本范围框中有目标的可能性;n clases为本范围框内是n个类别中每一个的可能性。该输出的维度为5+2+1+n。如果只需要检测一个类别,就可以不要n classes部分,此时输出的维度是5+2+1。在验证其他倾斜范围框时直接替换输出向量中范围框部分即可。

图4 最终输出向量中类别和范围框的分布

设特征图每一个像素对应原图上的网格宽度为wg,那么最终输出向量中的中心点坐标可以用下式确定[2]:

此式可以将范围框中心点限制在特征向量对应的网格范围内,避免了预测范围框全图跑的问题,并且的取值范围为[0 , 1)。将|u|,|v|按照图像宽高进行归一化后,最终输出的取值范围都在[0 , 1],子结构的最后一层可以采用Sigmoid作为激活函数。

3.3 检测大图幅遥感影像 针对遥感影像的较大图幅,需要对样本图像进行切块,检测时也要分块。

假设特征金字塔有三层,特征图网格宽度分别为wg,2wg,4wg,那么可以检测的目标短边长度范围分别为[1 . 5wg,4.5wg]、[3 wg,9wg]、[6 wg,18wg]。如果最小短边长度小于1.5wg,说明应该用更高分辨率的图像检测这些目标。通常情况下,可以保证目标的最小短边长度略大于或等于1.5wg。如果目标短边长度最大值wbmax超过了18wg,可以在特征金字塔顶部再增加一层特征图,或者让某些目标在缩小后的图像上检测[21]。

如果不增加特征金字塔的层数,需要确定切块样本时图像的缩小比例。首先将图像宽高缩小scale倍,然后判断wbmax/scale是否小于18wg,如果不小于则还需继续缩小,直到wbmax/scalen小于18wg。为了不遗漏范围框,要求scale<(1 8 wg1.5wg)。最终切块时需要的缩小倍率有1、20scale、21scale等。如果处理的是带有空间分辨率的遥感影像,则在空间单位下进行上述计算和切块。所切图像块的边长(像素)应大于各缩小倍率下目标长边长度(像素)的最大值Hbmax。

在对大图幅图像进行检测时也应该按照和训练图块相同的尺寸和缩放比率进行分块。为了避免目标被切分到不同图块且每个图块中的部分都无法支持目标被检出,则所分图块必须具有一定的重叠度(overlap)。

假设训练图像切块时,目标范围框处在图像块内的部分达到α时这个目标就保留,那么所分图块的重叠度由下式确定。

式中Hbmax是以像素为单位的各缩小倍率下目标长边长度的最大值。如图5所示,某个目标在切线1左侧的部分占,如果让该目标在切线2的右侧也占,就能保证至少一个切块可能检测出该目标。

图5 分块重叠,实框表示目标范围框

可见,如果图块的边长只是稍微大于Hbmax,会导致大量重复检测,进而拖慢检测速度。另外由于有效感受野的原因,长宽接近图块边长的目标的检测效果会变差。因此在内存和显存允许的条件下图像块的边长越大越好。

在各个缩小倍率下切块检测完毕后,将所有得分符合条件的范围框一起进行NMS得到最终检测结果。

3.4 实验参数配置 实验用的目标检测网络相当于为yolov1[3]加上了FPN。由于遥感影像上目标的尺寸范围很大,如果直接用yolov1验证范围框标注方式的有效性,就必须为图像建立金字塔并在图像金字塔的各层上进行检测,相当消耗时间。又因为有FPN,必须要有将目标分配给FPN的机制。因此没有执行消融实验来验证网络各组件有效性的需求。

实验中目标检测网络的骨干网络采用ResNet50,特征金字塔有3层,特征图的网格宽度分别是8、16、32。从而可以检测的目标短边长度至少为12个像素,小目标检测不是本网络的目标,因此直接将短边长小于12个像素的目标排除。样本图像裁剪和分块检测时,对原始图像的缩小倍率有1、9、18。类别和范围框预测子结构用3个1×1的卷积层。训练和检测时将图像块边长设定为608个像素。

3.5 实验结果分析 如表1所示,在最终输出向量中采用本文提出的新的标注方式的目标检测实验在验证集上得到的平均准确率为0.7752,优于在最终输出向量中采用其它斜框标注方式的结果。

表1 使用六种标注方式的目标检测精度结果

4 结论

(1)在对比分析现有正框及斜框标注方式及其优劣特征基础上,提出了一种新的倾斜矩形范围框标注方式,即采用“倾斜范围框中心点C的坐标、中心点到任意一个顶点D的向量、C到D的一个相邻顶点E的向量在上的投影向量与的比例系数”来标注倾斜范围框。

(2)倾斜矩形范围框与正框相比能够更准确的定位目标范围,尤其是朝向任意且狭长的目标,新提出的倾斜矩形范围框标注方式在给定约束下实现了一个范围框只有一种数值表示的特性,避免了数值表示的多义性,解决了机器学习类目标检测算法中范围框多义性导致的损失异常问题,有利于实现模型回归训练。

(3)基于DOTA-v1.5光学遥感影像公共数据集,对新提出的标注方式及多种其他倾斜范围框标注方式做了目标检测效果验证实验与对比分析,结果表明正框+倾斜角1、四点式、外接正框+偏移量、正框+倾斜角2、四点式2、文中新提出的标注方式在验证集上得到的平均准确率分别为0.7237、0.5595、0.6614、0.7209、0.5644和0.7752,该斜矩形范围框标注方式对于朝向任意、密集排布的目标检测更具优势。在基于遥感影像的朝向任意、密集排布的目标检测时具有应用价值。

猜你喜欢
顶点像素向量
像素前线之“幻影”2000
向量的分解
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
聚焦“向量与三角”创新题
“像素”仙人掌
关于顶点染色的一个猜想
ÉVOLUTIONDIGAE Style de vie tactile
向量垂直在解析几何中的应用
高像素不是全部
向量五种“变身” 玩转圆锥曲线