闲话少说,我们直接开始吧!
使用这些新的大模型的一个切实想法是保留我们的之前标准训练流程框架,举个栗子,通常在检测领域我们使用的 Yolo 检测器中,我们可以通过生成新的训练图像或生成新的标注来改进我们的训练数据集。具体流程如下:
如上图所示:
标准数据集由一组人工标注好的训练集和验证集组成
数据集扩充将使用强大的通用大模型来添加自动化标注:
生成式的数据集将由生成的图像及其对应的标注组成。当你构建了一个由图像或文本组成的语义提示后,可以用以生成成千上万个图像及其对应的标注。我们可以直接使用大模型的API生成这些带标注的图像(与人工收集和人工标注相比,成本应该很小)
当我们需要验证训练好的模型在人工标注的数据集上的实际性能时,将验证集与生成或扩充的数据集分开是至关重要的。这意味着,在实践中,即使我们选择了新的生成技术或基础模型,我们仍然需要对真实图像进行一些人工手动标注。
Annotation Tool using SAM
Anylabeling
更多细节可以访问附录里的相关链接。
● 不使用基础大模型,而是使用简单的渲染pipeline,例如合成数据集生成示例,通常做法是使用 python 脚本对感兴趣的对象进行裁剪,之后进行随机缩放、旋转并添加到背景中;对应的标注文件也是使用同一处理流程进行创建。在这种方法下,我们创建的图像不完全是真实的照片,但这些图像上的对象和背景是 100% 真实的。
● 许多人使用类似3D 渲染来生成数据,例如如下流程:
基于图像渲染仿真系统,将 3D 模型作为输入,并生成一组训练图像作为输出,通过给定多个渲染参数 θ,该系统将使用3D模型生成多个图像,从所有可能的视角、不同尺寸大小、不同照明条件、不同遮挡量和不同背景等角度来对输出进行建模。相关示例如下:
● 使用人工来进行图像收集和标注既费时又费力。相比之下,合成数据集可以使用生成式模型(例如,DALL-E、Stable Diffusion)免费获得。在本文中,我们展示了可以自动获得由预训练的稳定扩散生成式模型来生成图像的准确语义掩码,该稳定扩散模型在训练过程中仅使用文本-图像对。
上述方法称之为 DiffuMask,它利用了文本和图像之间交叉注意力映射的潜力,这是自然和无缝的,可以将文本驱动的图像合成技术扩展到语义掩码生成。DiffuMask 使用文本引导的交叉注意力信息来定位特定类别的区域,并将其与实用技术相结合,以创建一种新颖的高分辨率像素掩码。这些方法显然有助于降低数据收集和人工标注成本。
使用纯生成式模型来生成数据集的成功例子(DeepDetectionModels)还不多,但考虑到最近图像生成式 AI模型的渲染质量和可操纵性,这只是时间的问题。从现有的分割或轮廓开始,可以使用ControlNet来生成我们已经有标签的新图片,但目前尚不清楚它是否适用于分布外的类别(即不是标准的COCO类),或者成像质量是否足够好。
论文(Segmentation-ControlNet)提出了一个类似的想法,即修改现有的标记图片,以生成共享分割掩码的新图片,从而实现超强的语义数据增强。
论文DeepDetectionModels 提出了一个通过微调预训练的稳定扩散模型来生成合成数据集的框架,然后对合成数据集进行手动注释,并用于训练各种目标检测模型。图示如下:
尽管如此,即使是小规模推理和低算力资源上的开发,我们也会利用大型基础模型来作为辅助,要么通过使用 API/本地推理直接调用这些模型,要么使用其中一些模型学到的先验知识。今天介绍的主要是通过数据标注来展开,其实也可以通过其他知识转移的方式——例如通过蒸馏或 LoRA。对于检测或分割任务,没有标准流程或广泛的首选方法来从这些大型或生成式模型中转移这些知识,但它可能会在 2024 年普及!
您学废了嘛?