大模型时代下的视觉识别任务
引言
识别,是计算机视觉(Computer Vision, CV)领域研究最多、应用最广泛的视觉任务,其技术成熟、工具完善,在项目落地中扮演着重要角色。
从左至右分别为:
• 图像级理解——分类
• 目标级理解——检测
• 像素级理解——分割
在货拉拉的业务场景中,检测与分割任务尤其重要。在货运安全防控、车辆车贴识别、OCR、移动端算法等算法应用场景中,检测与分割都是最重要的算法环节之一。
尽管传统检测与分割算法在实际生产落地中有模型轻量、需要计算资源少等诸多优势,但它们仍然存在一些局限性,例如:
1. 算法模型效果依赖数据质量与数量
2. 在特定场景下生产的算法模型需要微调才能应用到其它场景
3. 算法模型应用于新任务需要重新训练
随着大模型的快速发展,结合文本、视觉双模态派生出了如开放词汇目标检测、万物分割等有趣的新视觉任务与对应算法,成为传统检测分割算法的有力补充。
本篇内容针对检测和分割任务,为大家简单回顾传统视觉任务,及其在大模型时代的演进与对应的新算法,并在最后简要介绍货拉拉在项目落地中对这些新技术的实践应用。
检测
闭集检测、开集检测
传统闭集检测(Close-Set Object Detection)的训练集和测试集囊括的目标类别相同,训练好的模型只能检测训练集中预先定义标注的类别,如下图(a)所示。
闭集检测技术成熟,其检测精度高,推理计算量小,易于轻量化,可部署在IoT摄像头等小算力设备,是应用最广泛的目标检测技术,已被应用于货拉拉的各个自动化流程中。
传统开集检测(Open-Set Object Detection)在闭集检测的基础上,需要检测所有前景物体,对于训练集中没有定义的类别,推理时只需确定位置不需要确定类别,统一预测为未知类别,如下图(b)所示。
开放词汇检测
短语定位(Phrase Grounding)是经典的视觉文本多模态任务。给定图像和对应文本,它的任务目标是定位文本中所有名词类别在图像上的位置,如下图所示:
GLIP
2021年12月,微软发表了GLIP(Grounded Language-Image Pre-training)预训练模型与训练方法,首次将目标检测和短语定位统一成一个视觉任务。模型结构方面,GLIP利用文本编码器(Text Encoder)和视觉编码器(Visual Encoder)分别编码文本与图像,并在两个编码器的多个层级间增加融合(Fusion)模块,最后对齐检测框特征与文本特征实现短语定位(Phase Grounding),其结构如下:
数据方面,GLIP使用人工标注的图像-文本对数据训练短语定位(Phase Grounding)教师模型(Teacher Model),再用教师模型自动标注数据,进而获取了极大规模的语义丰富的数据集,并从中学习到目标级的、语义丰富的、文本感知的鲁棒表示。
GLIP预训练模型具备高效的Few-shot下游任务迁移能力,并支持Prompt-tuning微调方式,仅需几张样本就可迁移到新的检测类别或优化特定检测类别。下图横坐标表示微调样本量,纵坐标表示mAP,紫色为完整GLIP模型,其Prompt-tuning与全模型微调同样高效:
Grounding DINO
2023年3月,IDEA联合清华等高校发表了Grounding DINO模型,在GLIP基础上进一步增强模态间融合成为新的SOTA模型,其特征增强模块如图:
Grounding DINO首次明确大模型时代下开集检测的含义。其检测效果如下图所示,其中图(a)为传统闭集检测,图(b)为其实现的开集检测,图(c)为结合开集检测和生成模型实现的目标级替换:
Grounding DINO具备极佳的Zero-shot检测能力,并且与GLIP一样具备高效的Few-shot下游任务迁移能力。在公开数据集上,Grounding DINO的Zero-shot表现与SOTA闭集检测模型相当,微调后领先SOTA闭集检测模型,在COCO数据集的mAP如下图(括号中指标对应图像大尺寸增强结果):
与传统开集检测不同,大模型时代下的开放词汇检测不严格要求预训练使用的训练集和测试集类别不重叠。GLIP强调学习语义丰富的表示和高效的Few-shot下游任务迁移能力,Grounding DINO强调强大的Zero-shot检测能力。
和大语言模型一样,开放词汇检测同样在大规模数据集上做训练,实现Zero-shot形式的推理或Few-shot形式的任务迁移。但是其模型大小、推理速度、所需的计算资源相较传统闭集检测模型没有量级上的差异,其“大”更主要的体现在数据集规模上。
分割
语义分割、实例分割、全景分割
图像分割中应用最广泛的是如下三个基础分割任务。语义分割为每个像素赋予一个语义类别,不需区分个体。实例分割只关注前景物体,区分同类别的不同个体。全景分割可看作前两者的结合,关注前景与背景,并区分前景个体。如下图所示,从左至右分别为原图、语义分割、实例分割、全景分割:
引用分割、交互分割、二元分割
除了基础分割任务,近年来涌现出了如引用分割、交互分割、二元分割等新颖的分割任务。
语义无关万物分割
语义无关万物分割(Semantic-agnostic Segment Anything)希望通过单个“基础模型”,实现任意场景下对任意区域的分割,不关心所分割区域的语义类别。代表性的语义无关万物分割模型包括SAM[3]及其轻量化模型。
SAM
SAM与交互分割使用相同的交互方式,使用者给定任意点、框作为prompt,模型分割出对应的区域。相较交互分割,SAM可分割任意内容,并且不局限于目标级分割,具备更细粒度的分割能力,其分割效果如图:
轻量化SAM
SAM强大的通用性和分割细粒度吸引了大量从业人员对其展开探索,轻量化是其中代表性的优化方向。FastSAM[4]、MobileSAM[5] 先后成为代表性工作。
尽管受限于模型参数量,MobileSAM实际分割能力仍有待业界验证,但其使得通用交互分割部署到移动平台成为可能。
语义相关万物分割
SAM虽然提供了细粒度的通用分割能力,但是其分割的区域不具备语义类别信息,限制了更广泛的实际应用。为了给分割得到的区域添加语义类别信息,研究人员提出了不同的解决思路,最具代表性的包括SSA[6]、Semantic-SAM[7]、Grounded-SAM[8] ,既要分割任意区域又要输出区域语义类别,即语义相关万物分割(Semantic Segment Anything)。
SSA
SSA(Semantic Segment Anything)结合已有的语义分割模型和SAM,使用模型并联的解决方案,其算法流程如图:
算法流程包括两个分支,语义分支(Semantic branch)使用语义分割模型预测各像素语义类别,掩膜分支(Mask branch)使用SAM预测精细的分割轮廓,最后语义投票模块(Semantic Voting module)以每个轮廓范围内出现概率最高的像素语义类别作为整个分割区域的语义类别。
SSA巧妙的将语义分割模型和SAM互补,解决了前者分割边界模糊和后者缺少语义信息的问题。
Semantic-SAM
2023年7月,微软、IDEA联合HKUST等高校提出了Semantic-SAM,旨在可以在任意粒度下分割并识别任意内容。其关键结构如图:
Grounded-SAM
Grounded-SAM是另一个代表性工作,其原理简单清晰。通过串联Grounding DINO和SAM,由Grounding DINO的开集检测能力提供语义对应的粗粒度检测框,再由SAM进一步完成分割。
实践
在货拉拉的司机证件识别、搬家打包审核、车贴审核等业务场景中,我们结合开放词汇检测、万物分割等新算法,弥补了传统视觉算法局限性,探索了更简洁高效的自动化算法流程,在数据安全与模型生产效率方面带来提升,下面分别进行说明。
司机证件识别
保护司机与用户数据安全是货拉拉开展业务的首要前提。在司机认证等业务场景中,自动化算法流程首先需要实时检测司机证件。为了保证算法效果,传统模型生产流程需要大量人工对卡证数据进行标注,过程消耗标注人力,且对司机数据安全带来隐患。
开放词汇检测模型虽然具备强大的Zero-shot检测能力,但是其不能区分不同类别卡证间的细节差异,且无法同时保证检测的精度(Precision)和召回(Recall),不满足直接应用的条件。
我们首先将开放词汇检测模型作为教师模型,对每类卡证分别以高置信度的阈值对卡证位置进行高精度地检测,以获取定位标注。然后经过严格的筛选规则,自动滤除舍弃定位不准的标注结果与样例,并为各类卡证生成类别标注。最后,利用完整自动标注了定位与类别信息的样例,蒸馏训练移动端轻量模型。
在该流程下训练得到的轻量模型同时具备高精度和高召回,计算资源需求低,可在移动端高效完成实时卡证检测任务。整个流程中避免了人工标注环节,减少了数据泄漏风险,提高了生产效率。
搬家打包审核
搬家业务中,用户的家具、电器先经搬家小哥打包,再由审核人员确认打包是否规范,以此来保证用户产品安全。在打包审核自动化流程里,检测算法首先检测打包物体,再由后续算法判断打包合规性。家具、电器的品类与样式繁多,规范打包样式标准复杂,环境背景多变,给打包审核自动化提出了挑战:
开放词汇检测模型具备强大的Few-shot任务迁移能力,通过少量样本微调可以大幅度提高模型检测能力,同时也能弥补Zero-shot失效的场景。
我们首先将打包规范对应的文本描述和样例图像作为样本对,对开放词汇检测模型进行Prompt-tuning,使模型将特定的打包样式与对应的文本prompt关联起来,例如以“完整黑色打包”作为prompt,微调模型能够高精度检测相应的打包物体。然后用微调后的开放词汇检测模型蒸馏训练传统闭集检测模型,以满足精度和召回要求,减少计算资源需求。
该流程使模型能高效扩展到更多类目与打包样式,而无需增添新的算法模型。
车贴审核
车贴是货拉拉建立品牌认知的重要工具,我们定期对车辆车贴进行审核以保证车贴完整不受损坏。车贴审核任务不同于传统视觉重识别(ReID)和检索(retrieval)任务,它不关注学习可区分不同个体的表示,进而检索特征最相近的样本,而强调学习用于区分细节差异的表示,以确认车贴细节是否一致。同时车贴样式繁多、细节丰富、拍摄角度多变,并不断有新样式车贴出现,使得设计鲁棒的自动化车贴审核流程充满挑战:
但是不同时间的车贴图像经常来自不同的相机模型,不同的镜头畸变使车身产生不同程度变形,同时车辆可能发生磕碰刮擦,这些问题会严重影响自动审核的结果。在比对模型前分割出车贴区域,并只比对该区域,是解决上述问题的一种方案。
我们使用万物分割模型作为比对前的分割模型,将特征匹配获取的特征点对作为输入万物分割模型的prompt,进而获取精确的车贴区域而无需考虑变化的车贴样式,流程如下:
总结展望
参考文献
[1]Li, Liunian Harold, et al. "Grounded language-image pre-training." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.
[2]Liu, Shilong, et al. "Grounding dino: Marrying dino with grounded pre-training for open-set object detection." arXiv preprint arXiv:2303.05499 (2023).
[3]Kirillov, Alexander, et al. "Segment anything." arXiv preprint arXiv:2304.02643 (2023).
[4]Zhao, Xu, et al. "Fast Segment Anything." arXiv preprint arXiv:2306.12156 (2023).
[5]Zhang, Chaoning, et al. "Faster Segment Anything: Towards Lightweight SAM for Mobile Applications." arXiv preprint arXiv:2306.14289 (2023).
[6]Fudan-Zvg/Semantic-Segment-Anything. 2023. Fudan Zhang Vision Group, 22 Nov. 2023. GitHub, https://github.com/fudan-zvg/Semantic-Segment-Anything.
[7]Li, Feng, et al. "Semantic-sam: Segment and recognize anything at any granularity." arXiv preprint arXiv:2307.04767 (2023).
[8]Grounded-SAM
Contributors. Grounded-Segment-Anything. 2023. Apr. 2023. GitHub,
https://github.com/IDEA-Research/Grounded-Segment-Anything.
作者简介
李佳翰,货拉拉技术中心智能运营部高级算法工程师