模型评估中目标检测模型的位置误差分析以及相关的解决方法

举报
talking_cv 发表于 2020/08/12 20:52:32 2020/08/12
【摘要】 在目标检测的模型评估阶段,目标检测的假阳性(误检分析)以及假阴性(漏检分析)是比较重要的一环,那么如何降低误检和漏检情况下的位置偏差呢,本博客将详细介绍相关的技术细节

一、问题描述

在目标检测的模型评估阶段,目标检测的假阳性(误检分析)以及假阴性(漏检分析)是比较重要的一环,在假阳性分析方面,位置误差主要表现在位置误检概率,在假阴性分析方面,位置误差主要表现在位置漏检概率,ModelArts中对应的模型评估结果展示为:

图1 ModelArts模型评估结果

上图展示的是对检测的推理结果进行的分析举例,其中图a表示的是假阳性(误检方面)的位置偏差,类别误检以及背景误检的分析,图b表示的是假阴性(漏检方面)的位置偏差,类别漏检以及背景漏检的分析,可以看出在误检以及漏检分析方面,位置误差占比比较大,那么有什么办法可以降低位置误差的概率,提升模型推理的准确度呢,下面对相关的算法和技术进行说明。

二、解决方法

1、GIoU loss

GIoU loss最早由斯坦福大学提出,针对IoU loss以下缺点进行改进:

(1)当预测框A和目标框B不相交时,计算两者的IoU(A,B)=0,无法准确反映出两者的位置以及距离关系,此时损失函数不可导,IoU Loss 无法优化两个框不相交的情况。

(2)假设预测框和目标框的大小都确定,只要两个框的相交值是确定的,其IoU值是相同时,IoU值不能反映两个框是如何相交的,下图所示的相同的两个预测框和目标框之前相交的三种情况,IoU值是相同的,但是位置关系差别较大。

图2 相同IoU下的预测框和目标框之间的位置关系图

计算GIoU的公式如下,其中A代表预测框,B代表目标框,C代表A和B最小的公共面积区域。


图3 GIoU计算示意图

相应的GIoU loss表示为:


2、DIoU loss

DIoU顾名思义就是代表Distance IoU,将目标框与anchor之间的距离,重叠率以及尺度都整合在一起,使得检测模型在训练的时候,目标回归变得更加的稳定,主要有以下两个优点:

(1) 更加直接的回归最小化anchor框与目标框之间的归一化距离,使得收敛速度快;

(2)在GIoU loss不能回归的场景,例如目标框包含预测框的情况(下图所示),也能快速的回归bbox。

图4 绿色代表目标框,红色代表预测框

计算DIoU的公式如下:

相关的字符意义如下所示:

图5 绿色表示预测框,黑色表示目标框,d表示两个框中心点之间的欧式距离,c表示最小公共区域对角线的长度

相应的DIoU loss表示如下

 

三、实验验证

在交通信号灯的数据集上面进行验证,该数据集主要检测十字路口处的交通信号灯,只有一个类别,使用DIoU loss之前和之后在误检分析(假阳性)的对比情况,可以看出,使用DIoU loss之后,位置偏差得到比较大的改善。

图6 误检情况 下,使用DIoU  loss之前和之后的位置偏差对比图

使用DIoU loss之前和之后在漏检分析(假阴性)的对比情况,可以看出,使用DIoU loss之后,位置偏差得到比较大的改善。

图7 漏检情况 下,使用DIoU  loss之前和之后的位置偏差对比图

四、用户建议

在模型推理结果中,如果位置误差占比比较大,推荐在训练的时候,使用GIoU loss和DIoU loss进行模型优化和加强。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。