论文地址:PIoU Loss: Towards Accurate Oriented Object Detection in Complex Environments
目标检测使用定向边界框(OBB)可以通过减少背景的重叠区域更好的检测到旋转物体。现存的定向边界框(OBB)大多数建立在横向边界框基础上,通过增加一个距离损失来做角度回归。然而基于距离损失的角度回归只能最小化角度距离,对于iou却很不敏感,它对高长宽比的对象不敏感。因此,一个新颖的损失函数Pixels-IoU (PIoU) Loss,就是设计成利用角度和IoU来进行精确的OBB回归。PIoU损失是由像素方向的IoU度量得到的,一个简单的并且适合定向边界框和横向边界框的方法。为了验证它的有效性,我们在anchor-base方法和anchor-free方法上验证了piou loss。实验的结果显示piou loss可以显著的提高定向边界框,特别是那些具有高长宽比和复杂背景的目标。除此之外,以前的评估数据集不包括对象具有高纵横比的场景,因此使用了新的数据集,Retail50K是为了鼓励社区采用OBB检测器以适应更复杂的环境。
目标检测是计算机视觉中的一个基本任务,近年提出了很多的采用卷积神经网络的检测器。尽管这些探测器具有最先进的性能,但它们对旋转和密集的物体有固有的限制。比如说,带有方向或者透视变换的边界框通常带有大量显著的背景信息可以误导分类。当边界框有大量的重叠区域的时候,很难把密集的物体分开。因为这些限制,研究者们提出了定向边界框(OBB)。特别的是,与 (cx,cy,w,h)的边界框相比,OBB是由(cx,cy,w,h,θ)组成,cx,cy,w,h,θ分别是是中心点,大小,定向边界框的旋转角度。这样,obb可以将目标对象紧密地封装起来,从而更好地检测和分类旋转和密集的对象。 现存的OBB方法大部分都基于anchor-base框架,通过增加一个基于距离损失回归的角度优化。而OBB主要用于航空图像中简单的旋转目标检测,检测效果在更复杂和一些特殊的环境不太好。其中一个原因就是这些方法中的距离损失,比如SmoothL1 Loss,主要优化的目的在于最小化角度,而忽略了全局iou。所以,它对高长宽比的对象不敏感。直观的解释就是目标当中与中心点距离较远的部分没有适当的封闭即使角度距离很小。比如说,[19,6]采用回归分支提取旋转敏感特征,从而可以通过使用一个transformer建立OBB的角度误差模型。然而,在图1(a)中,在损失相同的情况下,预测框(绿色)和标签框(红色)的iou差异很大。 为了解决上述问题,我们介绍了一个新颖的损失函数PixelsIoU(PIoU) Loss,提高OBB回归的角度和IoU的精度。特别的,如图1(b)显示的,与标准距离损失相比,PIoU损失直接反映了iou损失及其局部最优性,这背后的理由是,IoU损失通常取得更好的性能比距离损失 [45,35]。然而,计算OBBs之间的iou比计算BBs的iou要更复杂,因为相交的obb的形状可以是任何少于8条边的多边形。因为这个原因,一个连续可导的函数Piou,将OBB的五个参数联合在一起,用于检查位置(内部或外部的iou)和每个像素的贡献。PIOU可以通过累积内部重叠像素的贡献很简单的计算出来。为了验证他的有效性,实验中分别在anchor-base的和anchor-free的框架上评估了PIoU损失。 为了客服现存的基于OBB方法的局限性,我们鼓励社区采用更强大的OBB探测器,从传统的航空图像转向更复杂的领域。我们收集了一个新的基准数据集,Retail50K,以反映面向高长宽比,严重的遮挡,复杂的背景的目标检测的挑战。实验展示了已经提出的框架配合着piou loss不仅在航拍图像上有很好的应用前景,而且能有效地应对Retail50K的新挑战。 本工作的贡献总结如下:
我们提出了一个新颖的损失函数,piou loss,来提高面向对象检测在高纵横比、复杂背景等高挑战性条件下的性能我们介绍了一个新的数据集,Retail50K,来激励计算机视觉界对现有OBB检测器进行创新和调整,以应对更复杂的环境。我们的实验验证了我们提出的piou loss能够有效的提高anchor-base和anchor-free的OBB检测器在不同数据集的表现。现有的方向对象检测器大多是在一般的水平边界框检测器的基础上,增加了角度维数。例如, [24] 基于one-stage的SSD提出了一个旋转不变的检测器,[18]基于two-stage的Faster RCNN引入了一个旋转检测器。[6]设计了一种ROI transformer来学习BB到OBB的转换,然后提取旋转不变特征。 [12]制定了一个生成概率模型来提取OBB方案。对于每一个方法,通过搜索局部最大似然来确定位置、大小和方向。其他可能的提取OBB的方法包括,拟合检测masks [3,10] ,用anchor-free模型回归OBB[49],这是两个新概念。这些方法在航拍图像上有很好的应用前景,但它们不适用于具有高长宽比和复杂环境的定向目标。因此,我们假设一种新的损失是必要的,在挑战性的条件下以获得改善。为了进行比较评估,我们在实验中实现了anchor-base的和anchor-free的框架作为基线。稍后,我们将展示这些模型在配备PIoU损失后,在Retail50K和航空数据集上都可以表现的更好。
对于边界框的回归,用的比较活跃的函数就是均方误差(MSE, L2 loss),平均绝对误差(MAE, L1 loss), 分位损失[2](MAE的变种,预测一个区间,而不是仅仅预测点), Huber Loss [13](基本上是绝对误差,当误差很小的时候,它就变成了二次方程), LogCosh Loss[30](双曲余弦的对数预测误差),在实践中, [32,25,34]检测器通常使用的损失都是基于前面的损失的扩展。但是,我们不能直接使用它们,因为OBB描述符中包含了额外的角度维数。
除了基本函数之外, 关于横向边界框iou损失的介绍,已经有几个相关工作。比如, [45]提出了一个将预测框的四个边界回归为一个整体单位的iou损失,[35]扩展这个思想,引入了一个最大外接框的面积作为loss的一部分(giou loss),GIoU的主要目的是消除两个多边形不相交的情况。[37]引入了一种新的基于IoU上界集的边界盒回归损失。然而,当使用OBB的时候,这些方法变得更加复杂,因此很难实现,而所提出的PIoU损耗更简单,同时适用于水平边界框和方向框。应该注意的是PIoU loss和 [48]的基于轴对齐与多边形相交计算的iou不同,我们的方法更加简单,即通过累积内部重叠像素的贡献来直接计算IoU。而且,提出的PIoU loss也和Mask RCNN中的 Mask loss不同。Mask loss 是平均交叉熵损失计算所得。与之不同的是,我们提出的损失是基于真实的iou来计算的,以保留两个框之间的交集和联合区域。在每个区域中,根据像素的空间信息对其贡献进行建模和积累。因此,PIoU损失更普遍,对OBB重叠更敏感。
在这个章节,我们详细说明了piou loss的细节,对于一个编码为(cx,cy,w,h,θ)的OBB b,一个理想的损失函数应该有效地引导网络使IoU最大化,从而使b的误差最小化。朝着这个目标前进,我们首先解释iou方法。一般而言,IoU函数应该准确计算OBB的面积以及它与另一个方框的交集。由于OBB和相交区域是由图像空间中的像素构成的,它们的区域近似于内部像素的数量。 特别的,如图3(a)所示,ti,j(紫色的点)是垂直中线和像素pi,j(绿点)的垂线的交点,结果,这两个点和OBB的中心点c组成了一个三角形。三角形的边长用di.jw,di.jh,和di.j表示。判断pi,j, 和b之间的相对位置(内或外),我们定义二进制的约束: di,j表示像素(i,j)和OBB中心点(cx, cy)的距离,dw和dh分别为水平方向和垂直方向的距离d: 让Bb,b’表示包含b和b’的最小的水平边界框。我们然后可以通过统计Bb,b’中所有像素来计算两个定向边界框b和b’的交集区域Sb∩b’和并集Sb∪b’: 最后b和b’的iou可以通过Sb∩b’除以Sb∪b’来计算,然而,我们发现方程式(1)不是一个连续可微的函数。因此,反向传播不能利用一个基于iou的损失来训练。为了解决这个问题,我们将方程式(1)近似为F(pi.j|b)取两个核的积: 核方程K(d, s)的公式如下: 其中k是一个可调因子,用于控制目标像素pi,j的灵敏度。方程式8的关键思想是利用方程式 9中的核函数得到像素pi,j的贡献。由于所使用的核是由pi,j和b之间的相对位置(图3(a)中的三角形的距离和角度)计算的,交集区域Sb∩b’和并集Sb∪b’对OBB旋转和尺寸都有内在的敏感性。在图3(b)中,我们发现F(pi.j|b)是连续可微的。更重要的是,他的作用和方程式1是相似的,当pi,j在内部的时候,F(pi.j|b)接近1,否则F(pi.j|b)靠近0。根据方程式8,b和b’的交集区域Sb∩b’和并集Sb∪b’近似为: 实际上,为了减少方程11的计算复杂度,Sb∪b’可以用更简单的近似为: (w, h)和 (w’, h’)分别是定向边界框b和b’的大小。我们在章节5.2的实验显示方程式12可以很有效的减少方程式10的复杂度,同时保持整体的检测性能。有了这些条件之后,我们提出的piou loss 可以被如下公式计算: b代表预测框,b’表示标签框。如果框b是positive anchor,b’是匹配的标签框(如果一个标签框和anchor的iou大于0.5,则认为是匹配的标签框),一对(b, b’)被认为是positive。我们使用M来代表所有的positive对。以在b和b’之间使PIoU最大化为目标,提出的PIoU损失计算为: 理论上,如果b和b’没有交集,方程式14也能正常工作。这是因为PIoU(b, b’) > 0 (基于方程式9),在这种情况下梯度也还是存在。此外,我们提出的piou对于水平边界框也是适用的。特别的是,我们可以在方程式5中简单的设置θ = 0来达到这个目的。在章节5,我们实验验证了piou在水平边界框中的可用性。
多年来OBB检测器的研究一直很活跃,已经提出了几个具有此类注释的数据集[39,1,23,26,31,50,18,12]。如表1所显示,大部分这些数据集都是专注于航空的图片 (图 4 (a),(b)),而一些是注释基于现有的数据集,如MSCOCO [22], PASCAL VOC[7]和ImageNet[5]。这些数据集对于评估简单背景和低纵横比的检测性能非常重要。例如,航拍图像通常是灰色和无纹理的,[39]的统计显示航空图像的大部分数据集有很宽的长宽比,但是有大约90%的长宽比分布在1:1到1:4之间,很少有图像包含宽高比大于1:5的OBB。而且,在数据集PASCAL VOC中的OBBs的长宽比大部分都等于(1:1)。因此,利用现有的数据集很难评估探测器对高纵横比和复杂背景物体的能力。出于这个动机,我们引入了一个新的数据集,叫做Retail50K,推进复杂环境下旋转物体检测的研究。我们打算将其公开提供给社区(https://github.com/clobotics/piou)。 图4©显示了一个Retail50K的例图。Retail50K收集了来自不同超市的4.7万张图片。这些图片上的标注是货架、冰箱和显示器的边缘。我们关注这样的零售环境有三个原因:
复杂的背景:货架和冰箱里塞满了各种不同颜色和质地的物品。更多的是,层的边缘通常被价格标签和销售标签所遮挡。基于我们的统计,平均遮挡大约在37.5%。更具挑战的是不同超市的价格标签也是不同的。高长宽比: 长宽比是anchor-base模型的关键因素之一, Retail50K数据集中的边界框不仅有在角度方向上变化很大,而且长宽比的范围广泛。特别的,Retail50K中的大多数标签具有高长宽比。因此,这个数据集代表了我们在复杂的零售环境中所发现的挑战的一个很好的组合。在实际当中很有用: 基于Retail50K数据集训练的模型有很多应用场景,比如零售场景,如货架零售标签检测,货架自动划分,货架层和图像偏航角估计等。值得一提的是SKU-110K数据集[9]也是由零售环境(比如超市货架)当中组成的,这个数据集中的标签是货架上的产品的水平边界框(HBB),因为它主要关注密集场景中的目标检测。当中的HBB的长宽比分布在1:1-1:3,所以它没有迎合我们想要解决的问题。 图片和类别: Retail50K数据集当中的图片是从20个中国和美国的超市收集的。数十名志愿者通过自己的手机摄像头获取数据。为了增加数据的多样性,图片是通过不同的志愿者从不同的城市收集的。图片质量和视图设置是不受控制的,所以手机的图片表现出不同的尺度,视角,光照条件,噪声等级,还有其他的其他变异多样性来源。我们也记录了原始图片的元数据,比如拍摄时间,志愿者名字,超市名字和MD5[40]校验以过滤掉重复的图像。不像现存的数据集包括很多类别,我们的数据集只有一种类别。为了更好地比较数据集,在我们的实验中,还是用了DOTA(15个类别)[39]和HRSC2016(对象的纵横比介于Retail50K和DOTA之间)[26],如图四所示: 标签和属性:在Retail50K数据集中,边界框标签由5名熟练的标注人员提供。为了提升他们的效率,在培训过程中提供了一本标签规则手册。候选图像根据元数据被分成165个标记任务,以便应用同行评审。最后,考虑到背景的复杂性和层边缘的不同方向,我们使用任意的四边形边框 (AQBB)来执行标注,简单地说,AQBB用边界多边形的顶点按顺时针顺序表示。由于高效率和经验上的成功,AQBB被广泛应用于许多基准测试中,如文本检测 [15],航空图片的目标检测等。基于AQBB,我们可以简单的计算我们所需的OBB格式(cx, cy, w, h, θ)。 因为图片是由私人的电话收集的,原图有不同的分辨率,然后在标注之前他们被一致的resize到600x800。图5展示了一些Retail50K的统计数据。我们看到该数据集包括广泛范围的长宽比和方向(F图 5(a) 和 (b))。特别的是,与现有的数据集相比,Retail50K更具挑战性[23,39,18],因为它包含丰富的注释,具有极高的纵横比(高于1:10)。与一些更原生态的图片数据集(ImageNet(平均2个),MSCOCO(平均7.7个))相似,我们数据集中的大部分图片包含大约2-6个有着复杂背景的实例(图5©)。为了实验,我们选取一半的原始图像作为训练集,1/6作为验证集,1/3作为测试集。我们在不同参数和不同骨干网络的anchor-based和anchor-free的OBB检测器评估了piou loss。我们也在不同的基准数据集(DOTA [39], HRSC2016 [26], PASCAL VOC [7])和我们提出的Retail50K数据集比较了其他SOTA的OBB检测器方法。训练和测试任务是在Intel® Core™ i7-6850K CPU@ 3.60GHzs, 64 GB内存, GeForce GTX 1080TI GPU (11 GB),和Ubuntu 16.04 LTS的台式机上完成。在这台机器上,batch size在训练时设置为8,测试时为1。 Anchor-based OBB Detector: 对于anchor-based目标检测,我们训练了RefineDet(loss替换成了我们提出的piou loss)。自从检测器是分别通过回归和分类进行优化,我们可以简单的替换回归损失为piou loss,并保持原本的softmax巡视做分类。我们采用 ResNet [11] 和 VGG [36]作为模型的骨干网络。有方向的anchor由水平的anchor经过kπ/6( 0 ≤ k < 6)旋转生成。我们采用了[25]介绍的数据增强策略(除了裁剪),同时包含旋转(即旋转图像以一个随机的角度进行采样[0,π /6])。在训练的时候,输入图片被resize成512x512,我们采用了两块GPU且每个GPU 8张图片的小批次训练。采用动量为0.9和权重衰减为0.0005的SGD作为优化器。所有评估的模型都是训练了120个轮次,初始学习率为0.001,然后在60和90epoch再除以10。其他的实验设置都是相同的,与[46]一样。 Anchor-free OBB Detector: 为了扩展OBB检测器的anchor-free框架,我们改进了CenterNet[49],在其整体训练目标中加入了一个由L1损失回归的角度维数作为我们的实验基准。为了评估我们提出的损失函数,类似于anchor-based的方法,我们替换了回归损失为piou loss,并且保持分类损失的不变。需要注意的是,CenterNet使用热图来定位物体的中心,因此,在计算PIoU损失时,我们不向后传播物体中心的梯度。我们使用 DLA[44] and ResNet [11]作为骨干网络。数据增强策略也和之前的RefineDet-OBB一样。在训练的部分,输入图片resize成512x512。我们采用了两块GPU且每个GPU 16张图片的小批次训练。使用adam优化器优化模型。所有评估的模型都是训练了120个轮次,初始学习率为0.0005,然后在60和90epoch再除以10。其他的实验设置都是相同的,与[49]一样。
在这个章节,我们调查了我们的设计设置所提出的方法的影响,并对DOTA[39]和PASCAL VOC[7]数据集进行了几个控制实验。 不同参数的比较: 在方程式9中,k是一个可以调整的系数来调整对于每个像素的敏感度。为了评估他的影响并为剩下的实验提高一个适当的值,我们基于 DOTA [39]数据集和anchor-based框架设置了一组实验来验证k的值。为了简化讨论,k=5,10,15的结果详细的展示在表2,同时他们的分布可视化在图3(b)。我们在剩下的实验中最终选择k=10以获得最好的精度。
定向边界框的比较: 基于 DOTA [39] 数据集,我们将所提出的PIoU损失与常用的L1损失、平滑L1损失、L2损失进行了比较。为了公平的比较,我们固定骨干网络为VGGNet[36]然后基于网络构建了FPN[20],表3详细的展示了比较,我们可以很清楚的看到我们提出的piou loss提升了大约3.5%的表现。HPIoU (Hard PIoU) loss 是使用方程式12简化版的piou loss。它的性能相比于piou有轻微的下降,但还是与piou相当。并且,HPIoU损失在实际应用中是一种可行的选择,因为它具有较低的计算复杂度。我们也发现,相比于其他三种损失piou loss花费了15%~20%更多的时间,这表明它在实践中仍然是可以接受的。我们也发现了HPIoU 比piou 花费更少的训练时间。这样的观察验证了方程式12的理论分析和可用性。
水平边界框的比较: 另外,我们也在PASCAL VOC 数据集上的水平边界框比较了SmoothL1 loss、GIoU loss 和piou loss。在表4,我们发现piou loss在水平边界框的回归还是比SmoothL1 loss 和 GIoU loss 好,特别是那些基于高iou预支的AP指标。请注意,GIoU损失仅设计用于水平边界框,而我们提出的PIoU损失更具有健壮性,并且非常适合水平和定向边界框。与表3的结果一起,我们观察到所提出的PIoU loss具有很强的泛化能力和有效性。
Retail50K: 我们实验两个OBB检测器(OBB版本的RefineDet [46]和CenterNet [49])在Retail50K数据集上评估我们的piou loss。实验结果展示在表5。我们发现,两个模型加了piou loss之后都有明显的提升(RefineDet-OBB提升了7% ,CenterNet-OBB提升了6%)。一个获得显著的提升的原因就是相比于传统的回归loss,piou loss更加适合定向边界框的识别。更多的是,piou loss在Retail50K的提升比DOTA数据集(表3)的提升更明显,表示piou loss对于高长宽比和复杂环境中的物体更有用。验证了该方法的有效性。
HRSC2016: HRSC2016数据集包含来自两种情况包括海上船只和近海船只的1070张图片。我们在不同骨干网络的centernet上验证了提出的piou loss,并与其他SOTA检测器做了比较,实验结果展示在表6。可以看到 CenterNet-OBB+PIoU比其他任何模型效果都要好除了R3Det-800 (800×800)。另外,我们的检测器保持了一个合理的竞争性的检测性能,但有更好的效率(55 fps v.s 12 fps)。这说明了piou loss在OBB检测器上的力量。 DOTA: DOTA数据集[39]包含来自不同传感器和平台的2806幅航拍图像。每一张图片的大小都是4000x4000的像素,并且包含了不同尺度、角度和形状的目标。注意DOTA中的图片太大了以至于不能够作为CNN检测器的输入,因此,和[39]中的策略一样,我们设置步长为256从原图中裁剪出一系列patch。对于测试,从DOTA评估服务器获得检测结果。每个类别的详细性能将被报告,以便进行更深入的观察。我们使用与[41]中现有方法相同的短名称、基准和表单来评估PIoU丢 loss对该数据集的有效性。最终的结果展示在表7。我们发现不同类别的性能改进有所不同,然而,有趣的是,我们发现这种改进对于某些具有高纵横比的类别更为合理。比如说,海港(HA)、地面田径场(GTF)、足球场(SBF)和篮球场(BC)自然都有较大的纵横比,而且他们似乎受益于PIoU的加入。这些观察结果证实了PIoU可以有效地提高OBB检测器的性能,特别是在一些具有高长宽比的物体上。这些再次验证了所提出的PIoU loss在OBB检测器上的有效性。 我们还发现我们的基线比一些最先进的性能相对较低。我们推测主要原因是我们使用了比其他方法小得多的输入大小(DOTA上的512 vs 1024)。然而,注意现在表6中HRSC2016的结果 (89.2 mAP)已经实现了SOTA的级别表现,并且仅仅使用了512x512的输入大小。因此,提出的损失函数可以在这个强基线中带来收益。 为了可视化验证这些表现上的提升,我们采用anchor-based的模型RefineDet[46],并使用PIoU和SmoothL1损失进行了两个独立的实验。这个实验在三个数据集(Retail50K, DOTA [39], HRSC2016 [26])上进行,所选的可视化结果在图6。我们可以看到在三个数据集上,相比于使用SmoothL1 loss的检测器(黄色框),使用了piou loss的 OBB检测器(红色的框)都有着更健壮和准确的检测结果,特别是在Retail50K数据集,证明了它在高纵横比定向目标的明显作用。在这里,我们也采用了与PIOU相同的配置评估了提出的HPIoU loss。在我们的实验中,HPIoU loss的性能略低于PIoU loss的性能(分别在DOTA, Retail50K 和 HRSC2016上有着0.87, 1.41 和 0.18的mAP),但是还是比SmoothL1 loss好,并且训练比piou loss快。总的来说,HPIoU在三个数据集上的性能是一致的。
我们介绍了一种简单但有效的损失函数,PIOU,利用角度和iou同时来进行准确的OBB回归。PIoU loss由像素方向的IoU度量得到,该度量方法简单,适用于水平和定向边界框。为了证明他的有效性,我们在anchor-based和anchor-free框架上评估了piou loss。实验结果显示piou loss可以很明显的提高OBB检测器的准确率,特别是一些具有高长宽比的物体。我们也介绍了一个新的有挑战性的数据集,Retail50K,为了探讨现有OBB检测器的局限性,并在使用PIoU loss后验证其性能。在未来,我们会扩展piou到3D的定向物体检测。我们的初步结果显示piou 可以将PointPillars [16]在KITTI验证集上分别将中等水平的汽车、行人和骑自行车的人提高到0.65,0.64和2.0 AP。