PIoU Loss怎么实现复杂场景下的精确定向目标检测

发布时间:2021-12-18 14:02:54 作者:柒染
来源:亿速云 阅读:153

这篇文章给大家介绍PIoU Loss怎么实现复杂场景下的精确定向目标检测,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

摘要

使用定向包围框(oriented bounding box)进行目标检测可以通过减少与背景区域的重叠来更好地定位有旋转倾斜的目标。现有的OBB方法大多是在水平包围框检测器(horizontal bounding box)上通过引入额外的角度尺度(通过距离损失进行优化)构建的。 但是,由于距离损失只将OBB的角度误差优化至最小,而且与IoU的相关性较松散,因此它对具有高长宽比的目标不敏感。 因此,本文提出了一种新的损失,即Pixels-IoU(PIoU)损失,以利用角度和IoU实现更精确的OBB回归。 PIoU损失是从IoU指标以像素的形式导出的,形式简单但适用于水平和定向包围框。为了证明其有效性,本文评估了ancho-based和anchor-free框架下使用PIoU损失的效果。实验结果表明,PIoU损失可以显著提高OBB检测器的性能,特别是在具有高长宽比和复杂背景的目标检测上。此外,现有的评估数据集不含有大量高长宽比目标,因此引入了新的数据集Retail50K,以鼓励大家应用OBB检测器来处理更加复杂的环境。

OBB:oriented bounding box,定向目标框,指不限制倾斜角的目标框

PIoU Loss怎么实现复杂场景下的精确定向目标检测

HBB:Horizontal bounding box,水平目标框,默认倾斜角度是0

PIoU Loss怎么实现复杂场景下的精确定向目标检测

PIOU:Pixels-IoU loss:用像素累加的方法(而不是坐标)近似计算两box的交并集面积

解决的问题:非水平状态的box识别(对比普通的水平目标框),具有很大的长宽比的目标(对比下图和Retail50k数据集的例图),复杂背景下的OBB识别(对比下图中空旷简单的背景)

PIoU Loss怎么实现复杂场景下的精确定向目标检测

提出了一个数据集:Retail50K(超市零售货架数据集),兼具复杂背景(各色饮料瓶等)和HBB目标(非水平box,具备很大的长宽比)

PIoU Loss怎么实现复杂场景下的精确定向目标检测

Related work

  1. 基于SSD训练一个具有旋转不变性的检测器

  2. 基于Faster RCNN训练一个旋转检测器

  3. 设计RoI 变换器以学习从BB到OBB的旋转不变特征

  4. 利用生成式模型抽取OBB候选框,依靠局部最大似然确定选值

存在的问题:针对遥感航空图像,背景简单,且物体不是具有大长宽比的目标。

Pixels-IOU Loss:

和传统的loss相比,OBB(非水平box)多了一个倾斜角的维度,所以无法直接用常见的Loss计算。

从IoU出发,我们在计算IoU时,需要计算两个box的交集和并集,既然一张图像是由若干像素点构成的,那交并集的区域是不是也可以用其内部的像素点数量近似代替?

PIoU Loss怎么实现复杂场景下的精确定向目标检测

如上图,p(i,j)绿点是图像上的一个像素点,c是OBB框的中心点,t(i,j)是p到box中心线的垂线的交点,p到t的距离记为dh(i,j),c到t的距离记为dw(i,j)。

作者提出用一个二元约束关系来判断像素点p是否在OBB框中:

PIoU Loss怎么实现复杂场景下的精确定向目标检测

用距离dh和dw来判定p是否在box中

PIoU Loss怎么实现复杂场景下的精确定向目标检测

其中θ代表box的倾斜角,计算关系可见下图:

PIoU Loss怎么实现复杂场景下的精确定向目标检测

用累加像素点的方法计算两框的交集和并集

PIoU Loss怎么实现复杂场景下的精确定向目标检测

由于前述的二元约束关系是不连续不可导的,作者将其转换为两个核的乘积(核方法):

PIoU Loss怎么实现复杂场景下的精确定向目标检测

PIoU Loss怎么实现复杂场景下的精确定向目标检测

k是一个可调系数,控制对目标像素p的灵敏度

此时,上述的F函数是连续,可导的,同时也保持了正确的取值趋势。

PIoU Loss怎么实现复杂场景下的精确定向目标检测

如上所示,核函数在像素点p接近box中心c的时候趋向于1,在远离时趋向于0,基本近似反映了像素点相对box内部的概率分布。

此时,求两box的交并集的方法更新为:

PIoU Loss怎么实现复杂场景下的精确定向目标检测

为了减少计算量,可以用框的w,h关系简化上述计算:

PIoU Loss怎么实现复杂场景下的精确定向目标检测

最后,我们得到PIoU的计算形式:

PIoU Loss怎么实现复杂场景下的精确定向目标检测

记(b,b')为一对正结果,b为基于一个正anchor(当一个anchor以0.5+的IoU匹配到一个GTbox时,记为正)的预测框,b‘为匹配到的ground-truth框。M代表所有正样本对的数量。

则PIoU的Loss可以表示为:

PIoU Loss怎么实现复杂场景下的精确定向目标检测

数据集Retial50K

基于来自不同国家和地区的志愿拍摄的超市图像,唯一标注类型为货架层。

例图:

PIoU Loss怎么实现复杂场景下的精确定向目标检测

具备如下特点:

  1. 复杂的背景:货架层可能被价签或者促销条等遮挡。同时周围混杂了各色饮料、零食等。

  2. 极大的长宽比:货架层大部分都长度很长,宽度很小。

  3. 有实用价值:可用于货架零售标签检测,自动货架分层,货架层和图像偏角估计等等。

PIoU Loss怎么实现复杂场景下的精确定向目标检测

上图说明了数据集中,长宽比、倾斜角、实例数量的分布情况。

实验结果

对核函数中可调参数k的实验:

PIoU Loss怎么实现复杂场景下的精确定向目标检测

对DOTA数据集,对比PIoU Loss的效果实验:

(DOTA数据集是航拍的遥感数据集,地面物体,但有倾角)

PIoU Loss怎么实现复杂场景下的精确定向目标检测

其中HPIoU是使用w,h计算并集以简化计算的版本,精度略微下降,但节约了时间

PASCAL数据集上的测试结果:

PIoU Loss怎么实现复杂场景下的精确定向目标检测

PIoU在Retail50K数据集上的测试如下:

PIoU Loss怎么实现复杂场景下的精确定向目标检测

PIoU和SmoothL1损失的对比实验结果,下图红色框为PIoU,明显效果更好。

PIoU Loss怎么实现复杂场景下的精确定向目标检测

关于PIoU Loss怎么实现复杂场景下的精确定向目标检测就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. win10如何设置双屏显示
  2. win10如何开启NetBios网络协议

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:数码管显示电路的Verilog HDL实现是怎样的呢

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》