论文: PIoU Loss: Towards Accurate Oriented Object Detection in Complex Environments
当前的目标检测方法由于BB(bounding boxes)的特性,对倾斜和密集物体的检测存在一定的局限性。为了解决这个问题,研究者扩展出了带旋转参数的OBB(oriented bounding boxes),即从BB((c_x,c_y,w,h))扩展为OBB((c_x,c_y,w,h,theta)),其中(theta)旋转角度,这样OBB就能更紧凑地包围目标,可以更好地检测旋转和密集的物体。
目前的OBB-based方法大多数在anchor-based架构上采用距离损失来优化上述的5个参数,并且在航空图片的目标检测上已经有一些应用。但其检测性能在更复杂的场景中依然存在局限性,主要原因在于距离损失更多地是优化旋转角度误差,而不是优化全局IoU,特别是对长条形物体很不敏感。如图a所示,两个IoU相差很大的情景下,距离损失的结果却是一样的。
为了解决这个问题,论文提出PIoU(Pixels-IOU)损失来同时提高旋转角度和IoU的准确率。如图b所示,PIoU损失能直接反映物体间的IoU,但由于OBB间的相交区域可能是多边形,OBB的IoU比BB的IoU要难算得多,所以PIoU损失以逐像素判断的方式进行IoU计算并且是连续可微的。另外论文还提供了包含高长宽比倾斜目标的检测数据集Retail50K,方便OBB-based检测算法的研究。
论文的贡献如下:
对于OBB (b)((c_x, c_y, w,h,theta)),理想的损失函数能够引导网络最大化IoU,降低(b)的错误率。为了到达这个目的,需要准确且高效地计算OBB间的IoU,论文采用了像素计数的方式来计算IoU。
对于点(p_{ij})和OBB (b),根据其到中线的距离(d^h_{i,j})和中线交点到中点的距离(d^w_{i,j})来判断点是否在OBB内:
定义(B_{b,b^{'}})为包围(b)和(b^{'})的最小正方形,可以通过判断(B_{b,b^{'}})中的所有像素来计算(b)和(b^{'})间的交集区域和并集区域:
最后通过(S_{bcap b^{'}})除以(S_{bcup b^{'}})计算IoU,但公式1并不是连续可微函数,导致不能进行反向传播训练。为了解决这个问题,将公式1转换为两个核的乘积(F(p_{i,j}|b)):
其中(k)用于控制对目标像素(p_{i,j})的敏感程度,由于公式9使用了相对位置信息(图a的点距离和三角形的角度),所以(S_{bcap b^{'}})和(S_{bcup b^{'}})均是对OBB的旋转角度和大小敏感的。
如图b所示,(F(p_{i,j}|b))是连续可微的,且与公式1类似。当(p_{i,j})在(b)内时,(F(p_{i,j}|b))接近于1,反之则接近于0。为此,(b)和(b^{'})的交并集区域计算变为:
为了降低公式11的计算量,简化为:
基于公式10和公式12,PIoU的计算为:
定义(M)为所有正样本对,PIoU损失的计算为:
PIoU损失也可用于无交集的OBB,因为PIoU始终大于零,梯度依然可以计算,另外PIoU损失也可以用于正常的BB场景中。
之前的大多数OBB数据集都是航空图片,少部分数据集对MSCOCO等数据集进行重新标注。据统计,航空图片数据集中大多数OBB的长宽比都在1:4内,而主流数据集则集中在1:1,不能够很好地评价OBB-based方法的性能。为此,论文提供了Retail50K数据集,由47000张不同的超市图片构成,标注对象为货架的层架边。数据集包含复杂的背景和高长宽比目标,并且具有实际使用意义。
不同(k)下对比实验。
对比其它损失函数在OBB场景下的性能。
对比其它损失函数在BB场景下的性能。
Retail50K数据集上的性能对比。
HRSC2016数据上的性能对比。
DOTA数据上的性能对比。
结果可视化对比。
论文提出从IoU指标延伸来的PIoU损失函数,能够有效地提高倾斜目标检测场景下的旋转角度预测和IoU效果,对anchor-based方法和anchor-free方法均适用。从结果来看,PIoU损失的效果还是十分明显的。另外论文提供了Retail50K数据集,能够很好地用于评估倾斜目标检测算法的性能。
本文链接:http://task.lmcjl.com/news/5944.html