模型评估中目标检测模型的目标框面积敏感度分析以及相关的解决方法

举报
talking_cv 发表于 2020/08/13 14:48:47 2020/08/13
【摘要】 在目标检测任务中,一张图片的的不同目标框的大小是不一样的,有的数据集小物体比较多,有的数据集大物体比较多,那么如何来衡量数据集的这种特性呢,以及有什么方法辅助模型针对这种特征进行更好的训练,本博客将进行详细的介绍和分析。

一、 问题描述

   在目标检测任务中,一张图片的的不同目标框的大小是不一样的,有的数据集小物体比较多,二另外一些数据集大物体比较多,目标框面积敏感度就是描述这种现象的指标,目标框的面积占比,即目标框面积占这个图片面积大小的比例,值越大表示物体在图片中的占比越大。下图显示的就是图片中的标记框小物体占比比较大的情况。

图1 小物体占比比较多的场景

检测模型对于具有不同面积占比数据集的检测效果是不一样的,那么如果降低模型对于目标框面积的敏感程度呢,下面对相关的技术进行介绍。

二、解决方法

        目标检测在实际的训练过程中还是一种多任务的task,在准确的识别类的同时,还需要对类别实例的位置进行精确的定位。模型训练的loss包括class loss以及bbox loss,而对于bbox loss来说,最常见的是Smooth L1 loss,具体计算如下所示:

图2 Smooth L1 loss对应曲线

        balanced loss最早是在Libra R-CNN中提出的,相比于传统的Smooth L1loss,balanced loss具有更加平滑的曲线和收敛特征,具体的计算公式以及求导公式如下所示:

        从下面的图可以看出,在inliers的边界位置,相比于Smooth L1 loss,balanced loss具有稍微大一些的梯度,越小,增加的幅度约明显,这样可以增加模型反向梯度的更新的时候识别正样本的概率。

图3 Balanced L1 loss和Smooth L1 loss对比曲线,其中,(a)表示倒数关系,(b)表示loss关系(引用自Libra R-CNN

三、实验验证

   在开源数据集Canine Coccidiosis Parasite上面进行实验,该数据集只有一个类别,使用balanced loss之前,对模型训练完之后,在模型评估阶段,模型对目标框面积敏感度如下所示:

图4 使用Balanced L1 loss之前,模型的目标框面积敏感度评估

使用balanced loss之后,重新对检测模型进行训练,在模型评估阶段,模型对于目标框面积敏感度分析如下:

图5 使用Balanced L1 loss之后,模型的目标框面积敏感度评估

可以看到,使用balanced loss之后,类别对目标框的面积敏感度从原来的0.1546降低到0.0912,即降低了对于数据目标框面积的敏感度。

四、用户建议

在模型推理结果中,如果检测出来的类别对于目标框面积的敏感程度比较大,推荐在训练的时候,使用balanced loss进行模型优化和加强。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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