近日,中科院自动化所图像与视频分析组针对大规模长尾目标检测任务提出了一种新颖的动态类别抑制(Adaptive Class Suppression Loss,简写为ACSL)方法。
该方法通过大规模多级多卡分布式训练框架LargeDet来进行模型训练,彻底摆脱了对于数据集类别分布的依赖,无需显示划分头部类别和尾部类别,有效避免了人为分组带来的训练不一致和训练不充分的问题,真正实现数据集无缝地迁移,而不需要进行数据集的统计分布以及超参数调整,同时性能上取得了显著提升。
ACSL在经典的长尾目标检测数据集LVIS上取得了显著的性能提升 (+5.18% mAP),检测器在尾部类别的精度 (+14.34% APr)。此外,在大规模检测数据集Open Images上也取得了大幅度的性能提升 (+5.2% AP),并且支持多标签学习以及类别嵌套学习。
在目标检测识别任务中,随着类别数目的不断增加,类别的长尾分布是大规模数据集中普遍存在的一个问题,在现实世界中,不同类别的物体出现的频率也有很大的差别。一般头部类别通常包含数十万甚至上百万个训练样本,而尾部类别只包含数个至数十个训练样本。如在日常生活中不同类别的物体出现的频率相差极大:既包括日常生活中常见的猫、狗、汽车,也包括难得一见的东北虎和大熊猫。
这种现象反映到数据集上就是各个类别呈现一个长尾分布的态势,极少数的类别拥有大量的训练样本(头部类别),但是大量的类别样本数却非常的稀少(尾部类别)。随着数据集规模的扩大,类别数的增多,长尾分布的问题也就愈发地明显。
现有经典的解决长尾问题的方法(比如EQL和BAGS)主要通过类别分组的方式来解决。他们首先统计各个类别的样本数量,并且将样本数量相近的类别分到同一组中。
在训练过程中,由于头部类别和尾部类别被分到了不同的组别,头部类别并不直接对尾部类别产生抑制,从而保护了尾部类别的充分学习。但是这些分组的方法存在两个弊端:(1)在分组边界两端的类别训练不一致。(2)网络对于不同组之间的易混淆的类别缺乏判别力。除此之外,分组方法依赖于具体数据集的类别分布先验。
当应用于不同的数据集时,此类方法需要重新对数据集的类别分布进行统计,并且需要进行实验调参来确定最优的分组策略,从而限制了此类方法的通用性和可迁移性。
结合上述分析,我们认为对于长尾数据集来说,一个通用有效的方法应该具有如下的性质:不依赖于具体数据集的类别分布,可以自适应地对所有类别进行充分学习,从而避免训练不一致及迁移性差的问题;样本数量少的类别在训练过程中应该得到保护,以避免被大量的头部样本进行过度地抑制。同时,相似类别之间的梯度抑制应该保留,以保证网络的判别性学习。
基于上面的两个原则,团队设计了一种新型动态类别抑制损失ACSL,无需统计各个类别的样本数量,将所有类别均视为尾部类别,依据网络对每个类别每个样本的学习状态动态地产生抑制梯度。ACSL的设计源于如下的设计思路:属于某个类别的样本会默认地对其他类别产生抑制梯度使其输出较低的得分。
对于属于类别A的样本,如果网络已经能够很好地区分类别A和类别B,那该样本无需对类别B产生抑制梯度,以避免类别B接收到过度的抑制梯度。如果网络在类别A和B之间产生混淆,我们便需要施加对类别B的抑制梯度以维持网络的判别力。
中科院自动化所图像与视频分析课题组多年来深入研究计算机视觉技术及其落地应用,尤其在目标检测与识别、大规模分布式优化方法、模型压缩与剪枝等方面积累了丰富的研究经验,展开了一系列有特色的实践。
基于本文提出的长尾分布动态抑制算法,课题组开发了手机端多物体图像检测技术,在面对百万甚至千万级大规模数据的情况下,显著改善模型对少样本的精度,并支持常见的1000余种物体的检测与识别,支持模型的多标签学习与类别嵌套识别,如可以同时识别人、男人、女人、小孩、老人等。
此外,通过模型的动态压缩剪枝技术,成功将模型参数量压缩80%,精度下降保持在1%以内,并在搭载Kirin820、Kirin985、Kirin990的华为手机端进行了部署,可应用于拍照识别、智能相册、智能搜图以及电子商务等场景。