经过数十亿个参数训练的 AI 模型非常强大,但并不总是适合实时使用。但是,它们可以通过自动监督快速专用模型的标注来减少人力投入。
如果你曾经构建过计算机视觉模型,就就会知道监督需要大量工作——人类花时间(数小时或数天)绘制边界框并添加标签来注释训练图像。最终结果是快速的机器学习模型,可用于实时检测和自动化。
但是,随着收集更多数据,人工参与的要求不仅会减慢模型的初始训练速度,还会减慢模型的任何迭代微调或改进速度。
NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割
1、VLM 的兴起
在过去的一年里,我们看到了多模态 LLM(有时称为 VLM 或视觉语言模型)AI 模型的兴起,这些模型已经经过数十亿个参数的训练,并且能够以复杂的方式查看图像。
虽然传统的计算机视觉模型通常经过训练以识别“人”或“狗”等基类,但 VLM 可以利用其语言能力来特异性地识别“戴眼镜的人”或“毛茸茸的棕色狗”等事物,而无需额外训练。
但是,无论是使用 ChatGPT 等非常大的云 VLM,还是使用 Moondream 等更紧凑但功能更强大的本地 LLM,这些推理都需要几秒钟的时间,因此对于许多实时场景来说通常太慢了。
如果 VLM 目前“足够聪明”以执行复杂的视觉推理,但对于实时任务来说太慢,它们可以在其他方面提供帮助吗?我们现在看到答案是肯定的。这些速度较慢但功能更强大的模型可用于在监督标注任务中取代人类。
2、“两阶段”自动标记方法
零样本模型(如 Grounding DINO 和 Segment Anything)已被 autodistill 等项目所利用,因为它们可以识别许多常见类别进行标注,尽管它们本身相当慢。这使得创建快速自定义计算机视觉模型成为可能,而无需人工监督。然而,这些模型有一个权衡:虽然它们可以识别许多简单类别,但它们没有完整 VLM 执行完整上下文推理的能力。
假设我们想使用计算机视觉向电子标志上戴眼镜的人推销眼镜产品,而人们则在城市街道上行走。我们需要它实时响应,出于隐私原因,我们不能将图像发送到云端进行推理;它需要在设备上进行。因此,我们将训练一个快速的本地模型来区分戴眼镜的人和不戴眼镜的人。
将图像的特定区域与相应的短语关联起来,例如“人”和“眼镜”
使用像 Grounding DINO 这样的基础模型可以让我们实现部分目标:它使用一种称为短语基准(phrase grounding)的方法,该方法涉及将图像的特定区域与文本描述中的相应短语关联起来——这增加了计算负荷,使模型相对较慢。当被要求识别“戴眼镜的人”时,它正确地识别了“人”和“眼镜”。
我们可以考虑做一些计算来确定“眼镜”是否在与“人”相同的区域内被检测到,但这可能会变得复杂;特别是如果我们试图确定某人是否在脸上戴着眼镜(而不是在头顶脖子上戴眼镜)。
使用 VLM 作为短语基准模型之外的“第二阶段”可以更准确地确定一个人是否戴眼镜
相反,我们可以利用 VLM 作为“第二阶段”,因为它可以更准确地确定 Grounding Dino 检测到的“人”是否确实戴了眼镜。
如果我们的基准模型和 VLM 都确认有人戴眼镜,则可以使用此信息自动将带标注的图像添加到我们的数据集中。一旦我们为“戴眼镜的人”和“不戴眼镜的人”收集了足够的带标注的图像,人类就可以选择查看带标注的数据,然后就可以训练模型了。
基准模型与 VLM 结合使用的两阶段过程
许多可用的模型都是开源的,你可以构建自己的收集和训练管道,使用它们和你选择的编程语言尝试基于 VLM 的自动标注。还有像 Viam 这样的平台提供数据和 ML 解决方案来简化此过程。
例如,Viam 能够让你无需编码即可设置数据收集和过滤到基于云的数据集中,并且还提供云内模型训练功能。 Grounding Dino、ChatGPT 和 Moondream 等模型可以配置为服务,而名为“自动标签过滤器”的服务利用所选模型以上述“两个阶段”进行监督。 Roboflow 是另一个提供自动标签产品的平台,该产品使用基础模型来创建标注。
无论你选择如何实施这些技术,结果都将是一个完全自动化的训练管道,可大大减少你在机器学习训练任务上花费的时间。如果想立即开始,请查看这个包含所有必需功能的存储库 - 只需单击几下即可在你创建的 Viam 机器上免费使用它。
正确识别“戴眼镜的人”
原文连接:用VLM训练实时CV模型 - BimAnt