作者 | Herschel 编辑 | 汽车人
原文链接:https://zhuanlan.zhihu.com/p/572297576
点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
后台回复【ECCV2022】获取ECCV2022所有自动驾驶方向论文!
论文题目:PseCo: Pseudo Labeling and Consistency Training for Semi-Supervised Object Detection
ECCV 2022
论文地址:https://arxiv.org/abs/2203.16317
代码地址:https://github.com/ligang-cs/PseCo
本文研究了半监督目标检测(SSOD)中的两个关键技术,即pseudo labeling和consistency training。我们观察到,这两种技术目前忽略了目标检测的一些重要属性,阻碍了对未标记数据的有效学习。具体而言,对于伪标签,现有的工作只关注分类分数,无法保证伪盒的定位精度; 在一致性训练方面,广泛采用的随机调整大小训练只考虑label-level 一致性而忽略了feature-level 一致性,其对保证尺度不变性也有重要作用。针对包含噪声的伪标签带来的问题,我们设计了有噪伪标签边界框学习(NPL),包括预测引导的标签分配(PLA)和正样本一致性投票(PCV)。PLA依赖于模型预测来分配标签,并使其即使对粗糙的伪标签边界框也具有鲁棒性;而PCV利用正样本的回归一致性来反映伪标签边界框的定位质量。此外,在一致性训练中,我们提出了包括标签级和特征级一致性机制的多视图尺度不变学习(MSL),其中特征一致性是通过在内容相同但尺度不同的两幅图像之间对齐移位的特征金字塔来实现的。在COCO上,我们的方法称为伪标签和一致性训练(PseCo),在1%、5%和10%的有标比率下,分别比SOTA(soft teacher)高出2.0%、1.8%、2.0%。它还显著提高了SSOD的学习效率,例如,PseCo将SOTA方法的训练时间减半,但获得了更好的性能。
从本文的标题可以看出,文章重点是对pseudo labeling和consistency training这两种半监督学习中的常用方法中进行改进。
本文认为现有的很多半监督目标检测方法直接将用于半监督分类中的方法迁移到检测任务中,对性能影响较大。性能不佳的原因,一方面在于相较于分类任务,检测任务的伪标签包含的信息更为复杂(分类和定位信息),另一方面在于,检测任务需要模型拥有更强的捕捉尺度不变性的能力(为提出的FPN多尺度对齐模块做铺垫)。
首先是针对pseudo labeling方法进行的改进,主要集中处理目标检测中pseudo label的定位准确度的问题。目标检测任务标签包含分类标签和定位标签,已有方法已经证明,分类置信度与边界框定位的精准度并不是强相关的。Fig.1 (a)可视化不同IoU阈值设定下,pseudo boxes对应定位标签准确度的变化,其试图说明的情况是,定位信息的伪标签实际上是充满噪声的,使用这些充满噪声的伪标签来训练,会阻碍其模型对无标数据的有效学习。Fig.1 (b)中举例的情况,是为了可视化说明不精确的定位信息会直接导致正负样本的误分,导致模型学习到错误的信息。
本文核心面对的问题,就是不精确的pseudo定位信息对于检测任务两个分支会造成的影响,已经针对其造成的影响提出的改进。
对于分类分支,有噪的伪标签会导致正负样本的错误分配(如Fig.1 (c)中的情况),针对这个问题,本文提出了prediction-guided label assignment strategy for unlabeled data,一种新的正负样本分配策略,来缓解noisy pseudo box造成的影响。
对于回归分支,伪标签定位的精确度是十分重要的,所需的是一种能够评估伪标签定位精确度的方法。本文提出了Positive-proposal Consistency Voting策略,利用正样本的回归一致性(其实是计算每个gt & pseudo label对应的一组positive proposals和此gt & pseudo label计算IoU的均值)能够反映出pseudo label定位精确度的现象,来衡量pseudo label中定位信息的准确度。
针对consistency training,本文想以此处理的是检测中目标尺度变化的问题。本文认为,在半监督学习有标数据量较少的场景下,对模型的尺度不变学习的能力有着更高的要求。本文认为现有利用一致性监督做尺度不变性学习,都是基于label-level进行的(比如对input按照一定比例进行缩放,然后使用同样缩放过的标签对模型进行监督),本文提出基于feature-level的一致性监督,**Multi-view Scale-invariant Learning (MSL)**。该模块通过对FPN的不同level上的特征进行错位对齐来实现,从而同时实现label和feature-level的一致性监督。
本文模型结构如图所示,主要创新点在于处理unlabeled data中的Noisy Pseudo box Learning (NPL)和Multi-view Scale-invariant Learning (MSL)。
模型使用teacher-student的结构,teacher模型的参数通过student每个iteration参数EMA更新得到。对于有标数据,采用常规的分类和边界框回归损失进行监督。
对于unlabeled data,进行weak augmentation后输入teacher来获得预测标签,NMS之后通过得分阈值来筛选出pseudo label。注意,这里通过阈值已经确定出了pseudo labels,之后的NPL是对positive proposals的筛选,这里的筛选是基于这些pseudo labels作为GT进行的;对pseudo label定位信息准确性的排序,也只是削弱不精确pseudo box对于损失的贡献值,不是再对pseudo label进行筛选。
获得pseudo label后,对unlabeled data进行strong augmentation,输入student中。检测任务中本身就存在前景背景不均衡的问题,只保留高置信度的作为pseudo label进一步加剧了不均衡的问题,所以本文中,对于unlabeled data中cls分支,将原有的CELoss替换为Focal loss来缓解这种不均衡问题。
当前basic framework中的无监督损失只包含上文的focal loss分类损失,不对unlabeled data的边界框回归损失进行监督。
当前的总损失即有标损失+无标损失构成,文中模型的实现是基于Faster R-CNN完成。
NPL主要是解决pseudo learning中定位信息不精确所导致的问题,提出了Prediction-guided Label Assignment和Positive-proposal Consistency Voting这两个模块,从而分别从样本分配和定位精确度两个方面解决问题。
标准的Faster R-CNN中,正负样本匹配只由proposal和gt之间的IoU来决定,大于高阈值的被分配为正样本,小于低阈值的被匹配为负样本。这种分配方式的前提是gt一定是准确的,然而在半监督检测任务中,pseudo label的定位信息的准确度显然是不能得到保证的,很可能会出现如Fig. 1 (c)中,不精确的pseudo box定位信息导致proposal的正负样本匹配错误。
PLA模块的目的是利用teacher的dense prediction(进行NMS之前的prediction)作为辅助信息来进行正负样本分配。原文介绍PLA模块中,有一句话感觉在表达上有些模糊:
这里作者想表达的意思其实就是,直接使用teacher RPN生成的proposals来训练student的R-CNN模块,虽然student自己的RPN也会生成proposals,但并不用于student自身的训练。这个问题论文作者在issue中已经进行了解释:
为了缓解传统正负样本匹配机制中对于IoU的强依赖与半监督检测任务中pseudo label的定位信息并不准确的冲突,PLA设计了新的度量标准来衡量teacher所提供给student的proposals中的proposal quality (q):
其中s表示proposal在teacher R-CNN上最终的cls得分,u表示proposal和gt(对于unlabeled data就是pseudo label)的IoU值, 用来控制s和u对最终计算得到的q的贡献值。这里计算q时,使用的是teacher的RPN生成的proposals,使用R-CNN获得cls和reg预测结果进行decode得到的最终预测box进行计算的。
对于unlabeled data,模型首先会用传统的基于IoU分配的方法来为每个gt(pseudo label)构建proposal候选集(teacher RPN生成的proposals),然后对每个候选集中的proposals按q进行排序,最终选取top-N个为正样本,其余为负样本。N的数值是使用OTA中的dynamic k estimation strategy得到的通过这些正样本与其对应的gt的IoU值,求和得到的:比如一个gt对应的4个正样本的IoU分别为[0.9, 0.8, 0.7, 0.6],那么N的值即为这四个数值求和后进行下取整为3.
PCV的目的是使用新的度量方式来衡量pseudo label的定位准确度。本文中用每个gt对应的所有正样本,与该gt计算IoU的均值,作为衡量标准,命名为回归一致性因子 regression consistency
得到的一致性因子用来调节,每个gt对计算unlabeled data中的regression损失的贡献程度。拥有较低的一致性因子说明该gt(pseudo label)的定位信息可能并不准确,说明需要降低其对损失计算的贡献值,反之亦然。
该模块是对使用consistency learning处理尺度变化的问题的当前方法进行改进,目的就是让模型从unlabeled data中学习到尺度不变的表达。本文认为现有的方法只是在label-level进行一致性监督,而忽视了多尺度学习中对feature-level的一致性监督。
如上图所示,V0表示teacher的输入image。V1是对V0随机选出一个缩放比例,缩放后得到的视图。V2则是对V1进行/2下采样获得的视图。当前的label-level consistency如左图所示,对于缩放后的视图,使用同样缩放后的pseudo label进行监督。本文新提出的feature-level consistency监督如右图所示,经过2倍下采样后的image同样输入student中后,在FPN neck中,其P2-P6的feature shape与P3-P7的feature shape是完全相同的,此时对于每一层feature,都使用相同的指定尺度范围内的pseudo box进行监督,就是实现了feature-level consistency training。
使用COCO 2017进行实验
Effect of individual component
Analysis of Multi-view Scale-invariant Learning
Effect of Focal Loss
PseCo分别对半监督目标检测中的两大方法pseudo labeling和consistency training进行改进。针对pseudo labeling中定位信息不准确的问题,提出了PLA正负样本分配策略,以及使用pseudo box对应的所有proposal来衡量当前pseudo box定位准确度的PCV模块。针对consistency training中模型尺度不变性学习,缺乏feature-level的一致性监督问题,使用FPN模型实现特征的错位对齐,从而提升模型的尺度不变性学习能力。
往期回顾
2022最新综述 | 面向大规模场景的小目标检测:综述和 benchmark
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;
加入我们:自动驾驶之心技术交流群汇总!
自动驾驶之心【知识星球】
想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!