【ECCV2020】目标检测论文解读(一):PIoU Loss

文章来源 | 极链AI云(性价比最高的共享算力平台,助力你的技术成长~首次注册可获免费100小时GPU使用时长!官网地址:https://cloud.videojj.com/

作者 | Chaser【极链AI云技术原创奖励计划】千元云币券获得者

原文地址 | 目标检测论文解读(一):PIoU Loss ( 官网论坛)

 

PIoU Loss: Towards Accurate Oriented Object Detection in Complex Environments

发表于ECCV2020的一篇论文,地址入口

 

MOTIVATION

解决的是旋转目标检测的问题。旋转目标采用OBB对齐GT,但是loss往往采用的是smoothL1,这会导致很多问题。
如下图:
【ECCV2020】目标检测论文解读(一):PIoU Loss
可以看到两组框的xywh而言gt和rbox基本相近,只有角度不同,角度的偏差也是相同的,这就导致smooth loss一样。然而视觉效果而言显然宽高比越大越不好。所以将角度一视同仁地和其信息优化并不理想。

 

METHOD

提出的方法非常简朴,公式整得挺复杂,其实没什么复杂的思想。这张图很直观说明了这一点:
【ECCV2020】目标检测论文解读(一):PIoU Loss
没错,就是像素近似计算IoU。其实让你手动实现skewiou,大部分人都会想到遍历像素点的方法,只是计算复杂度较高(作者也用cuda写的),所以更多的是采用复杂的三角分割方法。
具体而言如下,这几组公式就是用来判断像素是否在rbox内:
【ECCV2020】目标检测论文解读(一):PIoU Loss
但是有个很大的问题:binary mask无法求导,将导致其无法用于loss计算。
于是作者用核函数近似了一下:
【ECCV2020】目标检测论文解读(一):PIoU Loss
从而可以求导,最后用逻辑运算的方式得到skewiou:
【ECCV2020】目标检测论文解读(一):PIoU Loss

 

EXPERIMENT

【ECCV2020】目标检测论文解读(一):PIoU Loss
这个效果而言让人有点诧异,HRSC2016能上89是不错的水平了,但是DOTA上面只有60??不得不说是审稿人应该不搞遥感检测或者没听过DOTA数据集,否则就这个baselien都能给他拒了。而且涨点的话,hrsc还比较能看有2左右,dota上1.4也够看。但是不跑高的baseline确实很让人怀疑是不是跑不上去。

 

RETHINK

一点自己的看法不一定正确,欢迎指出问题和共同讨论:
skewiou一直没有被用作loss,因为其不可导。但是不代表就不能做,只是思路上和方式上有待商榷。而这里的数像素点就是一种很质朴的想法,cuda加速后也能看,最关键的是这个核函数使之可微。其中还有能挖掘的地方,比如,三角分割势必导致不可微,那么有没有其他的替代算法?或者从标注层面进行解决?

 

想要认识更多深度学习小伙伴,交流更多技术问题,欢迎关注公众号“极链AI云”(为你提供性价比最高的共享算力平台,官网地址:https://cloud.videojj.com/