目标检测最少训练数据量及类别不平衡的实战研究

AI算法与图像处理

共 3084字,需浏览 7分钟

 ·

2022-03-16 08:38

点击下方AI算法与图像处理”,一起进步!

重磅干货,第一时间送达

作者:Changsin Lee
编辑:Happy
链接:Changsin Lee@Medium


导读

 

本文采用Yolov5进行测试,从实验中得出训练时所需图像数据的最少数据量,数据不平衡问题的解决方式,以及模型更新的最优方法。


不知你有没有想过:训练一个检测器至少需要多少图像?又该如何处理数据不平衡问题?
在这篇文章中,作者期望回答一下三个与目标检测训练数据相关的问题:
  • 达成最大性能增益的最小数据集是多大?
  • 如何处理类别不平衡问题?
  • 采用新数据更新预训练模型的最佳姿势是哪个?
第一个问题的重要性并未得到足够的重视。一般来讲,预处理(数据收集、数据清洗、数据标注)占据了一个AI算法的至少80%时间。因此,我们希望以最小的投入获取最大的回报
第二个问题对于任何实际AI项目来说都是一个常见问题:常见数据可以轻易得到一个好的性能,而不常见数据却很难得到好的性能。过采样与欠采样是解决类别不平衡常见的两种策略。
对与训练模型进行微调变得越来越重要,这是因为:一个AI模型无法满足所有应用场景,我们需要频繁的对其微调以适配新的数据(即跨域微调)。
接下来,作者将以YOLOv5+Korean Sidewalkd数据回答上述问题。

1YOLOv5

目标检测旨在对图像或视频中的实例进行定位与识别,即回答where与what这两个问题。在上图中,我们可以看到已标注bbox与label信息的行人、车辆、板凳。
为获得上述反馈,目标检测器需要定位目标在哪并识别它属于哪个类别,前者对应目标定位,后者对应目标分类。
为训练一个目标检测模型,我们需要准备一个包含图像以及对应目标位置+标签标注的数据集。然而,构建这样一个数据集非常耗时,幸运的是,已有许多公开数据集,COCO则是目标检测领域最常用数据集,它包含80个类别。
YOLO是目标检测领域应用最广泛的检测器(没有之一),YOLOv5更是因为高效率、易部署、易扩展等受到诸多从业人员的追捧。基于YOLOv5而引申出了不少知名的检测器,如YOLOv5-lite就是其中佼佼者。
在后续文章中,我们以YOLOv5s为基础,除batch(16)与epoch(100)外,其他超参均为默认参数。

2Korean Sidewalk

该数据集包含670000+带标注信息的图像,其中有约352810带有bbox标注信息,故我们采用这部分用于模型训练,下图给出了该部分数据的分布以及类别信息。注:我们仅采用了top15类用于训练与测试。
关于该数据集有几个比较重要的信息:
  • 类别不平衡:该数据集存在严重类别不平衡问题,top5占据了70%左右,top15占据了90+%,最常见的类别car在整个数据集中的比例高达24%(可参考上图)。
  • 同一图像存在多实例:在每个图像中,存在多个同类别目标。比如,每个图像中包含3-4个car目标(这个很容易理解,因为数据就是人行道拍摄图像)。
  • De-identified:人行道图像包含一些私人信息,如人脸、车牌。为保护信息,这个带有私人信息的图像在标注与发布之前进行了特殊处理,可参考下图的车牌。
该数据集的上述三个特性在实际AI算法研发过程中非常常见。因此,基于该数据集,让我们来对文章开头提到的几个问题进行探究吧。

3Minimum Dataset Size

按照《How many images do I need》一文所提到:影响模型性能的数据量的拐点在每个类别包含150-500张图像,即在该拐点之前,数据量的提升对模型性能影响非常显著,超过该拐点后性能增益趋于平稳。
为复现该实验并比较不同类别的性能增益,作者将数据集划分为以下三类:
  • Top5:car、person、tree、pole、bollard
  • Top10:traffic_sign、traffic_light、truck、moveable_ginage、potted_plant
  • Top15:motor_cycle、bicycle、bus、chair、bench
上图给出了上述三类与整体性能伴随数据量增加的性能曲线,从中可以看到:
  • Top5的性能拐点在300左右,这是因为每个图像中有多个实例;
  • 150-500看起来是影响检测性能的一个比较可靠的拐点;
  • Top15的性能同样服从类似的趋势,但因为存在低频目标导致拐点更出现的更晚。

4Countering the Class Imbalance

在上面的实验中,Top5迅速取得了非常的性能,但Top10与Top15紧随其后,但当每个类别的数量达到1000后期性能仍弱于Top5。显而易见,数据量少是主要原因。
前面也提到:过采样与欠采样是两种常见策略。由于该数据集存在严重不平衡,因此,我们同时进行低频目标数据进行过采样与高频目标数据欠采样。
上图给出了重采样前后数据量对比。由于数据的特性问题,完全平衡的数据集是不可获取的。比如,当对bus或motercycle进行采样时,我们不得不也对car进行处理。
上图给出了采样前后模型的性能对比。当然,性能增益不能只看数值。低频类别增多就意味着高频类别减少。可能低频类别的性能提升了,而高频类别的性能变差了很多。那么,我们该如何知道这是不是真的呢?
加权平均是一种非常好的技术,因此,我们对所得mAP进行加权平均。采样前后的性能对比见上图:很明显,重采样的性能增益仍有,但不会那么剧烈。
从该实验中,我们 可以学到:当进行模型训练时,你需要有一个合理的采样策略以及一个合理的度量准则。

5How to Update the Model

当把模型进行应用时,它可能面临不听的类别分布,甚至存在未训练的类别。为此,我们需要采用新数据集进行模型更新。在对模型进行更新时,有两种不同的策略:
  • 仅使用新数据;
  • 采用新+旧数据组合。
从上图可以看到:无论是随机采样还是重采样,组合数据均提供了更佳的结果
与此同时,我们需要回答另一个新问题:从头开始训练 与 迁移学习哪种的性能更佳呢?从上图可以看到:两种训练策略并无明显差异。仅有的区别在于迁移学习具有更好的早期收敛性能。因此,当新数据很少时,迁移学习可以节省更多时间。

6Conclusion

从上述实验中我们学到了以下三点:
  • 用于训练的最少图像数据量在150-500;
  • 采用过采样与欠采样补偿类别不平衡问题,但需要对重平衡的数据分布非常谨慎;
  • 模型的更新建议在新+旧组合数据集上进行迁移学习。
努力分享优质的计算机视觉相关内容,欢迎关注:

交流群


欢迎加入公众号读者群一起和同行交流,目前有美颜、三维视觉计算摄影、检测、分割、识别、NeRF、GAN算法竞赛等微信群


个人微信(如果没有备注不拉群!
请注明:地区+学校/企业+研究方向+昵称



下载1:何恺明顶会分享


AI算法与图像处理」公众号后台回复:何恺明,即可下载。总共有6份PDF,涉及 ResNet、Mask RCNN等经典工作的总结分析


下载2:终身受益的编程指南:Google编程风格指南


AI算法与图像处理」公众号后台回复:c++,即可下载。历经十年考验,最权威的编程规范!



下载3 CVPR2021

AI算法与图像处公众号后台回复:CVPR即可下载1467篇CVPR 2020论文 和 CVPR 2021 最新论文



浏览 32
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报