专栏首页晓飞的算法工程笔记PIoU Loss:倾斜目标检测专用损失函数,公开数据集Retail50K | ECCV 2020 Spotlight
原创

PIoU Loss:倾斜目标检测专用损失函数,公开数据集Retail50K | ECCV 2020 Spotlight

论文提出从IoU指标延伸来的PIoU损失函数,能够有效地提高倾斜目标检测场景下的旋转角度预测和IoU效果,对anchor-based方法和anchor-free方法均适用。另外论文提供了Retail50K数据集,能够很好地用于评估倾斜目标检测算法的性能undefined 

来源:晓飞的算法工程笔记 公众号

论文: PIoU Loss: Towards Accurate Oriented Object Detection in Complex Environments

Introduction

***

  当前的目标检测方法由于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检测算法的研究。

  论文的贡献如下:

  • 提出新的损失函数PIoU损失,能够提升倾斜目标的检测效果。
  • 提供新的数据集Retail50K,可以更好的进行OBB-based算法的评估。
  • 通过实验证明PIoU损失的有效性,能够运用于anchor-based和anchor-free方法。

Pixels-IoU (PIoU) Loss

***

  对于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{b\cap b^{'}}$除以$S{b\cup b^{'}}$计算IoU,但公式1并不是连续可微函数,导致不能进行反向传播训练。为了解决这个问题,将公式1转换为两个核的乘积$F(p_{i,j}|b)$:

  其中$k$用于控制对目标像素$p{i,j}$的敏感程度,由于公式9使用了相对位置信息(图a的点距离和三角形的角度),所以$S{b\cap b^{'}}$和$S_{b\cup 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场景中。

Retail50K Dataset

***

  之前的大多数OBB数据集都是航空图片,少部分数据集对MSCOCO等数据集进行重新标注。据统计,航空图片数据集中大多数OBB的长宽比都在1:4内,而主流数据集则集中在1:1,不能够很好地评价OBB-based方法的性能。为此,论文提供了Retail50K数据集,由47000张不同的超市图片构成,标注对象为货架的层架边。数据集包含复杂的背景和高长宽比目标,并且具有实际使用意义。

Experiments

***

  不同$k$下对比实验。

  对比其它损失函数在OBB场景下的性能。

  对比其它损失函数在BB场景下的性能。

  Retail50K数据集上的性能对比。

  HRSC2016数据上的性能对比。

  DOTA数据上的性能对比。

  结果可视化对比。

Conclustion

***

  论文提出从IoU指标延伸来的PIoU损失函数,能够有效地提高倾斜目标检测场景下的旋转角度预测和IoU效果,对anchor-based方法和anchor-free方法均适用。从结果来看,PIoU损失的效果还是十分明显的。另外论文提供了Retail50K数据集,能够很好地用于评估倾斜目标检测算法的性能。

如果本文对你有帮助,麻烦点个赞或在看呗~undefined更多内容请关注 微信公众号【晓飞的算法工程笔记】

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 简单的特征值梯度剪枝,CPU和ARM上带来4-5倍的训练加速 | ECCV 2020

    **论文: Accelerating CNN Training by Pruning

    VincentLee
  • 实用,小物体检测的有监督特征级超分辨方法 | ICCV 2019

    **论文: Better to Follow, Follow to Be Better: Towards Precise Supervision of Feat...

    VincentLee
  • Gradient Centralization: 一行代码加速训练并提升泛化能力 | ECCV 2020 Oral

    论文: Gradient Centralization: A New Optimization Technique for Deep Neural Networ...

    VincentLee
  • 矩阵分析笔记(三)基与坐标

    设V是\mathbb{F}上的线性空间,若有正整数n及V中的向量组\alpha_1,\alpha_2,...,\alpha_n使得

    mathor
  • C++ 动态捕获整型数列

    假设有这样一个要求,输入两列数字,第一行是数组中数字的个数,第二行数数组中的数字,中间以空格隔开,我们可以写出这样的一段代码: int num; ...

    chaibubble
  • CentOS6.5默认Python版本升级

    ### CentOS6.5系统自带版本是python2.6.6,升级至python2.7.5操作如下:

    py3study
  • Leetcode 405. Convert a Number to Hexadecimal

    版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.cs...

    Tyan
  • Winsock协议目录

    SPI提供3种协议: 1 分层协议     在基础协议的上层,依靠底层基础协议实现更高级的通信服务。 2 基础协议     能够独立安全地,和远程断电实现数...

    用户1154259
  • Linux下批量ping某个网段ip的脚本

    洗尽了浮华
  • java开发操作系统:启动任意多控制台窗口

    望月从良

扫码关注云+社区

领取腾讯云代金券