PIoU Loss: Towards Accurate Oriented Object Detection in Complex Environments论文阅读翻译 - 2020ECCV
PIoU Loss: Towards Accurate Oriented Object Detection in Complex Environments论文阅读翻译
文章目录
论文下载地址: 点击此链接跳转.
这是博主自己在github整理的目标检测方向论文的合集,应该算比较全,目前2020ECCV持续更新中,欢迎下载…
惭愧噢 下次一定更完ECCV 最近杂事太多了
一、Abstract
使用定向边界框(OBB)来做目标检测可以减少预测框与背景区域的重叠,从而更好地定位旋转目标。现有的OBB方法大多是在水平边界框检测器上引入一个额外的角度维度来做优化(通过距离loss来进行优化)。但是由于距离loss仅仅是去减少OBB的角度误差,并且与IoU的相关性不高,对高纵横比的目标不敏感。因此作者提出了一种Pixels-loU(PIoU)损失,利用角度和IoU去做精确的OBB回归。 PIoU loss是从loU度量中衍生得到的,适用于水平和定向的边界框。为证明其有效性,作者评估了anchor-based和anchor-free框架的PloU loss。实验结果表明,PIoU loss可以显著提升OBB检测器的性能,特别是在具有高长宽比和复杂背景的物体上。此外,以前的数据集中没有高长宽比的目标,因此作者还提出了一个新的数据集Retail50K来促进OBB检测器适应更复杂的环境。
二、Introduction
现有的目标检测器虽然性能已经很好了,但它们对旋转和密集的目标仍存在着固有的限制。比如旋转目标的边框中通常会包含大量可能误导分类器的背景,当边界框之间的重叠区域较高时会很难去区分这些密集目标。由于这些限制,研究人员们以定向边界框(OBB)对现有检测器做了进一步的扩充。BB一般表示为(cx, cy, w, h),而OBB表示为(cx, cy, w, h, θ),OBB可以将目标更加紧密地封装起来,从而更好地对旋转的密集目标进行检测和分类。
现有的OBB方法大多都建立在基于anchor的框架上,通过在参数元组上引入一个由距离损失优化的角度维度。在较复杂的近距离环境中,这种OBB方法的检测性能会受限,其中一个原因就是这些方法使用的距离损失,如平滑l1损失,其主要目标是最小化角度误差,但是忽略了全局IoU,因此对高长宽比的目标并不敏感。一个直观的解释是目标的一部分会远离中心,即使角度距离偏差很小,最后包围框可能也不是很恰当。例如有的方法会通过一个回归分支来提取旋转敏感特征,从而可以通过transformer来建模OBB的角度误差,但是如下图a所示,当loss相同的情况下,各预测框和GT之间的IOU可能会有很大的不同。
为解决上述问题,作者引入了一个新的损失函数,名为Pixels-IoU(PIoU)损失,去提高OBB回归的角度和IoU的精度。如上图b所示,PIOU loss能够直接反映IOU及其局部最优性,这是因为IOU loss通常会比距离损失有更好的性能。但是计算OBB的iou会比BB的iou更复杂一些,这是因为相交的OBB的形状可以是任意的少于八条边的多边形。因此,PIOU loss这个连续可导的函数能够用于联合优化OBB的五个参数来看边界框内部或外部位置和每个像素的贡献。PIOU loss可以通过累积内部重叠的像素的贡献来计算,为验证其有效性作者分别在anchor-free和anchor-based检测器上进行了实验。
为克服现有的基于OBB方法的局限性,作者想激励社区去实现更健壮的OBB检测器,从传统的航空图像转移至更复杂的领域,作者提出一个新的数据集Retail50K,来反映面向高长宽比,严重遮挡和复杂背景的目标检测挑战。作者的实验显示结合PIOU loss后的框架能够在航拍图像及Retail50K上有较好的表现。
Contributions
1)提出了PIOU loss,来改进具有高挑战性的条件下如高长宽比和复杂背景的有向目标检测的检测性能。
2)提出了Retail50K,一个新的数据集,激励CV界对现有OBB检测器进行创新和调整以应对更复杂的环境。
3)PIOU loss能对anchor-free和anchor-based检测器带来有效提升。
三、Pixels-IoU (PIoU) Loss
对于一个给定的OBB b一般编码为(cx, cy, w, h, θ),一个理想的损失函数应该能够有效地引导网络去最大化IOU,从而使b的误差最小化。因此,作者先诠释了IOU方法,一般来说,一个IOU函数应该能够精确计算OBB的面积以及它与另一个边界框的交集,由于OBB和其相交区域是由图像空间中的像素构成,它们的面积近似内部像素的数量。如下图a所示,ti,j是垂直中线和像素pij的垂线的交点,这两个点和OBB的中心点c组成了一个三角形,三角形的边长表示为
d
i
,
j
w
d^w_{i,j}
di,jw,
d
i
,
j
h
d^h_{i,j}
di,jh和di,j。为了判断pi,j和b之间的相对位置(在内或外),作者定义了一个二元约束如下式:
dij表示像素(i, j)和OBB中心(cx, cy)之间的l2归一化距离,dw和dh分别表示距离d在水平和垂直方向的距离。
以Bb,b’表示包含b和b’的最小水平边界框,通过统计Bb,b’中的像素能够计算两个OBB 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敏感度的可调因子,上上式的关键idea是去使用上式核函数去获取像素pi,j的贡献。由于所用的核是根据pi,j和b的相对位置来进行的计算(图三a中的三角形的距离和角度),Sb∩b’和Sb∪b’对于OBB的旋转和尺寸有内在的敏感性。在图三b中可以看到F(pi,j|b)是连续可微的,并且它的作用近似于1式,当pi,j在内部时F(pi,j|b)接近于1,其余情况接近0,根据上上式,Sb∩b’和Sb∪b’可近似为:
并且为降低上式的计算复杂度,Sb∪b’可近似为一种更简单的形式:
这样PIOU由下式计算得到:
b表示预测框,b’表示GT。如果预测框b是来自一个正anchor,那我们可将一对(b,b’)视为positive,b’是与b匹配的GT框(如果anchor与GT框之间的IoU大于0.5,则anchor与GT框匹配)。作者用M表示所有正对的集合,目标是去最大化 b和b’之间的PIoU,提出的PIoU loss计算为:
理论上若b和b‘没有交集的时候上式也能正常工作,这是因为PIOU>0, 在这种情况下梯度仍然存在,此外PIOU对于水平边界框也是适用的,可设置θ=0来打到这个目的。
ps:剩下的数据集和实验部分就没看了,大家自己看看吧,这篇文章主要还是提出了PIOU loss,当然数据集对社区的贡献还是有的,PIOU loss的理解应该也不是很难。