本文翻译转载自:SegGPT: Segmenting everything in context [Explained]
【深度学习:SegGPT】在上下文中分割所有内容 [解释]
每年,CVPR 都会汇集来自计算机视觉和机器学习领域的一些最聪明的工程师、研究人员和学者。
上个月感觉越来越接近计算机视觉的 GPT-3 时刻——一些新的 CVPR 2023 提交似乎越来越接近
继上个月宣布“Painter”(在此处提交)之后,BAAI Vision 团队上周发布了他们的最新迭代“SegGPT:在上下文中分割一切”(在 Arxiv 中)。
在其中,由Xinlong Wang,Xiaosong Zhang,Tue Cao,温 Wang,Chunhua Shen和Tiejun Huang组成的BAAI团队展示了计算机视觉挑战难题的另一部分:一个通才模型,允许通过上下文推理解决图像和视频中的一系列分割任务。
在这篇博文中,您将:
- 了解 SegGPT 是什么以及为什么值得关注。
- 了解它与以前的型号相比如何。
- 了解 SegGPT 内部内容:其网络架构、设计和实现。
- 了解 SegGPT 在 AI 辅助标记中的潜在用途。
更新:是否要消除手动分段?了解如何使用 SegGPT 和 Meta 的 Segment Anything Model (SAM) 等基础模型来降低 Encord 的标签成本!阅读产品公告,了解如何微调 SAM 或直接开始使用!
SegGPT与以前的模型相比如何?
作为基础模型,SegGPT 能够解决各种大量分割任务,而专业分割模型可以解决非常具体的任务,例如前景、交互、语义、实例和全景分割。现有模型的问题在于,切换到新模式或分割视频而不是图像中的对象需要训练新模型。这对于许多分割任务来说是不可行的,并且需要昂贵的注释工作。
从论文和发布的演示来看,SegGPT 展示了强大的细分领域内和领域外目标的能力,无论是定性还是定量。与其他通才模型(如 Painter)和 Volumetric Aggregation with Transformer (VAT) 等专业网络相比,SegGPT 在单次和少次分割方面优于其他通才模型,平均交集并集 (mIoU) 得分更高。
研究人员用于定量训练、评估和比较性能的基准数据集是 COCO-20i 和 PASCAL-5i。
研究人员还在FSS-1000上测试了该模型,该模型尚未经过训练。它还能够在单次和少次分割任务上以更高的 mIoU 优于 Painter,并且性能更接近民主注意力网络 (DAN) 和超相关挤压网络 (HSNet) 等专业网络。
SegGPT 还提供了良好的上下文视频分割,并在 YouTube-VOS 2018、DAVIS 2017 和 MOSE 数据集上明显优于 AGAME 等特定任务方法和 Painter 等基础模型。
SegGPT在实践中是如何工作的?
SegGPT 建立在 Painter 框架之上。Painter 是一个通用模型,它将核心视觉任务的输出重新定义为图像,并将任务提示指定为图像。根据这篇论文,Painter 框架有两个亮点,使其成为上下文图像学习的工作解决方案:
- 图像在图像中说话:视觉任务的输出空间被重新定义为图像。这些图像充当感知的通用界面,允许模型通过少量提示和示例来适应各种以图像为中心的任务。
- “通才画家”:给定输入图像,预测是绘制所需但缺少的输出“图像”。
SegGPT 团队采用以下方法进行培训:
- 包括部分、语义、实例、全景、人物、医学图像、航拍图像以及与各种分割任务相关的其他数据类型。
- 设计一种不同于传统多任务学习、任务定义灵活、能够处理域外任务的通用训练方案。
SegGPT 可以通过将各种类型的视觉数据统一为通用格式来对它们进行分段。该模型通过在上下文中对这些部分进行着色来学习分段,使用随机配色方案,迫使它使用上下文信息而不是依赖特定颜色来提高其泛化能力。
这使得模型更加灵活,能够处理各种分割任务。训练过程类似于使用带有简单 smooth-ℓ1 损失函数的普通 ViT 模型。
SegGPT培训计划
为了提高通用性,SegGPT 网络架构遵循三种方法:
- 上下文着色;使用混合和匹配的随机着色方案,以便模型学习蒙版之间的关系,而不仅仅是颜色之间的关系。
- 上下文集成;使用集成方法来提高掩模的密封性。
- 上下文调整;优化用作模型输入上下文的可学习图像张量,以再次提高对不同分割任务的通用性。
上下文着色
该模型使用随机着色方案来实现输入图像的上下文颜色学习,以避免网络仅学习颜色而不了解分割对象之间的关系的问题。这是该网络在泛化性和边界框的紧密性方面优于 Painter 网络的原因之一。
研究人员还采用了“混合上下文”训练技术,使用各种样本来训练模型。这需要使用相同的颜色映射将多个图像拼接在一起。然后随机调整图像大小并裁剪图像以创建混合上下文训练样本。因此,模型能够通过关注图像的上下文信息而不是仅使用一组有限的颜色信息来确定任务。
上下文集成
为了提高准确性,该研究使用了两种上下文集成方法:
- 空间集成,用于连接网格中的多个示例并提取语义信息。
- 特征集成将批量维度中的示例与每个关注层之后的查询图像的平均特征结合起来。
这允许模型在推理过程中收集有关多个示例的信息并提供更准确的预测。
上下文调整
SegGPT 可以适应独特的用例,而无需更新模型参数。相反,可学习的图像张量被初始化为输入上下文并在训练期间更新,而其余部分保持不变。
学习到的图像张量可能是特定应用的关键。这样可以针对一组固定的对象类别进行定制提示,或者针对特定场景或角色优化提示图像,从而提供广泛的应用。
SegGPT 训练参数
在训练过程中,研究人员使用了具有 307M 参数的预训练 Vision Transformer 编码器 (ViT-L)。他们还使用了 AdamW 优化器、余弦学习率调度器,基本学习率为 1e-4,权重衰减为 0.05。批量大小设置为 2048,模型经过 9K 次迭代训练,预热期为 1.8K。该模型使用各种数据增强,例如随机调整大小裁剪、颜色抖动和随机水平翻转。输入图像大小为 448x448。
如何尝试 SegGPT?
您现在可以尝试的 SegGPT 演示托管在 Hugging Face 上。 SegGPT 的代码是开源的,并且与 Painter 包位于同一存储库中。
研究团队提供了一个带有 Gradio 的 UI,用于在本地运行演示。请按照以下步骤操作:
- 克隆项目存储库:https://github.com/baaivision/Painter/tree/main/SegGPT
- 运行
python app_gradio.py
使用哪些数据集来训练 SegGPT?
研究人员使用了多个分割数据集,例如部分、语义、实例、全景、人物、视网膜血管和航空图像。与以前需要手动合并标签的方法不同,该训练方法不需要额外的工作、调整数据集或修改模型架构。
BAAI 研究人员用于训练 SegGPT 的数据集包括以下内容:
- ADE20K共有25K张图像,包括20K训练图像、2K验证图像和3K测试图像,提供150个语义类别的分割标签。
- COCO 支持实例分割、语义分割和全景分割任务,使其成为流行的视觉感知数据集。它有 80 个“事物”和 53 个“东西”类别、118K 训练图像和 5K 验证。
- 帕斯卡VOC;他们使用增强分割版本,该版本为 10582 个训练图像上的 20 个类别提供注释。
- 城市景观:该数据集的主要关注点是场景和对街景的理解。
- LIP 专注于人们的语义理解。
- PACO 处理并使用了带有零件注释的 41807 个训练图像。
- CHASE DB1、DRIVE、HRF 和 STARE 均提供视网膜血管分割注释。他们通过随机裁剪增强了高分辨率原始图像。
iSAID 和 loveDA 专注于航拍图像的语义理解,分别针对 15 个和 6 个语义类别使用 23262 个和 2520 个训练图像。
SegGPT可以用于AI辅助标记吗?
与 Meta 的 Segment Anything Model (SAM) 和其他最近的突破性基础模型(例如 Grounding DINO)一样,您可以使用 SegGPT 进行 AI 辅助图像标记和注释。该模型可以很好地推广到许多任务,并且有可能减少团队的注释工作量。
除此之外,还有其他主要好处:
- 获得更快的注释:根据报告的结果,当您将 SegGPT 与良好的图像注释工具结合使用时,可以显着减少注释所需的标记时间。
- 获得更高质量的注释:如果注释者可以生成更精确和准确的标签,那么总体上可能会减少错误并提高注释质量。
- 获得一致的注释:当多个注释者在同一个项目上工作时,他们可以使用相同版本的SegGPT来确保注释的一致性。
您还可以设置 SegGPT,以便随着注释者完善和纠正其辅助标记,它会随着时间的推移进行学习和改进,从而随着时间的推移获得更好的性能并进一步简化注释过程。
使用 SegGPT 时需要注意的一件事是您想要用于注释的任务类型(语义、实例等)。 SegGPT 在所有基准测试中都没有优于现有的专业方法,因此了解它优于哪些任务非常重要。
结论
就这样,伙计们!
过去几周是计算机视觉过去十年中最激动人心的几周。但我们确信,我们会在几个月后回顾它们,并发现——从 Segment-Anything 到 SegGPT——我们仅仅触及了表面。