关注

VisioFirm:Cross-Platform AI-assisted Annotation Tool for Computer Vision——计算机视觉的跨平台人工智能辅助标注工具

这篇文章介绍了一个名为 VisioFirm 的开源、跨平台的人工智能辅助标注工具,旨在提高计算机视觉(CV)领域数据标注的效率和准确性。以下是文章的主要研究内容和关键点:

研究背景与动机

  • 数据标注的重要性:在计算机视觉领域,高质量的标注数据对于训练机器学习模型至关重要。然而,传统的数据标注方法通常劳动密集且耗时,限制了大规模数据集的标注效率。

  • 现有工具的局限性:现有的标注工具(如 VIA、LabelStudio、CVAT 等)虽然提供了一些自动化功能,但往往存在依赖云服务、需要订阅费用、缺乏对复杂任务的支持等问题。

VisioFirm 的核心功能

  • 混合标注方法:VisioFirm 结合了预训练检测模型(如 YOLOv10)和零样本模型(如 Grounding DINO),通过低置信度阈值生成初始标注,以最大化召回率。

  • 自动化与半自动化结合:VisioFirm 提供了自动化预标注和半自动化完善选项,用户可以根据需要选择完全信任预标注或进行实时过滤和手动调整。

  • 多边形分割与即时分割:支持多边形分割,并通过 Segment Anything Model(SAM)和 WebGPU 加速实现即时分割,提高标注效率。

  • 多种导出格式:支持多种标注格式(如 YOLO、COCO、Pascal VOC、CSV),方便与其他 CV 工具集成。

  • 离线运行能力:模型缓存后,VisioFirm 可以离线运行,增强了工具的可访问性。

技术实现

  • 后端与前端:VisioFirm 基于 Flask Python 构建后端逻辑,并使用 HTML-CSS-JavaScript 构建交互式前端。

  • 用户界面:提供用户认证、项目管理和大批次图像数据集处理功能,支持键盘快捷键、缩放/平移控件和多种标注模式。

  • 预标注器(VFPreAnnotator):核心自动化组件,使用混合检测流程生成高召回率的初始标注,通过 CLIP 进行语义验证,确保标注准确性。

  • 过滤与后处理:通过 IoU-Graph 连通分量聚类和 CLIP 验证去除冗余标注,优化标注质量。

性能与效率

  • 硬件加速:支持 CPU 和 GPU 加速,显著提高了标注效率。例如,YOLOv10 在 GPU 上的推理速度比 CPU 快 2.9 倍至 17 倍。

  • 动态评估:动态评估检测质量,对于复杂对象或纹理,自动切换到半自动化或手动模式,确保高标注准确性。

开源与互操作性

  • 开源框架:VisioFirm 在 MIT 许可下开源,代码托管在 GitHub 上,便于社区贡献和扩展。

  • 互操作性:支持导入部分标注的数据集,兼容 COCO JSON 和 YOLO TXT YAML 等格式,确保与其他标注工具的无缝集成。

未来发展方向

  • 扩展功能:计划整合更多模型(如 Detectron2),支持更多 CV 相关任务(如图像分类和字幕生成),并增加视频支持功能。

VisioFirm 通过结合预训练检测器和零样本模型,提供了一个高效、灵活且易于使用的标注工具,显著减少了手动标注的工作量,同时保持了高标注精度。它为计算机视觉领域的数据标注提供了一个强大的解决方案,特别是在处理大规模数据集时表现出色。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:

项目地址在这里,如下所示:

摘要

人工智能模型依赖于标注数据来学习模式并进行预测。标注通常是一个劳动密集型的步骤,需要将标签与从简单分类标签到更复杂任务(如目标检测、定向边界框估计和实例分割)相关联。传统工具通常需要大量的手动输入,限制了大型数据集的可扩展性。为了解决这一问题,我们推出了 VisioFirm,这是一个开源的网络应用程序,旨在通过人工智能辅助自动化来简化图像标注。VisioFirm 将最先进的基础模型集成到一个带有过滤管道的界面中,以减少人工操作的工作量。这种混合方法采用 CLIP 结合预训练检测器(如 Ultralytics 模型用于常见类别)和零样本模型(如 Grounding DINO 用于自定义标签),通过低置信度阈值生成初始标注,以最大化召回率。通过这个框架,在 COCO 类型的类别上进行测试时,初始预测已被证明大多是正确的,尽管用户可以通过支持边界框、定向边界框和多边形的交互式工具来完善这些标注。此外,VisioFirm 还具备通过 Segment Anything 通过 WebGPU 加速的即时分割功能,以提高浏览器端的效率。该工具支持多种导出格式(YOLO、COCO、Pascal VOC、CSV),并且在模型缓存后可以离线运行,增强了可访问性。VisioFirm 通过在多样化数据集上的基准测试,证明了它可以将手动工作量减少高达 90%,同时通过基于 CLIP 的聚类组件和 IoU 图来抑制冗余检测,保持高标注精度。VisioFirm 可以从 [链接] 访问。

1 引言

在计算机视觉(CV)领域,高质量的数据集对于训练在目标检测和实例分割等任务中表现稳健的机器学习(ML)模型至关重要。这些标注为监督学习算法提供了必要的真实情况,以便它们能够学习模式并在其他类似图像中进行泛化。然而,数据标注的过程仍然是 CV 流水线中最困难的阶段之一,通常消耗了项目资源(包括时间)的很大一部分。随着来自多样化来源(如自动驾驶车辆[9]、医学成像[6]、监控系统[2]和遥感[15])的图像数据的增长,对高效标注工具的需求也随之增加。数据标注存在几个挑战,阻碍了可扩展性和效率。当手动进行时,由于需要人工标注者准确地标记大量图像中的对象、边界和属性,这个过程可能会耗时且劳动密集。常见问题包括由于主观解释导致的标注错误、由于不一致的标注实践引入的数据偏差,以及在不产生过高成本的情况下扩展到大型数据集的困难[1]。此外,在处理敏感数据(如医学或监控应用[18])时,会出现安全和隐私问题。此外,传统的手动标注方法可能难以处理复杂任务,如具有复杂形状和纹理的对象、需要定向边界框的任务(如遥感中的小目标[17]),在这些任务中,精度很重要。手动性能可能会导致不准确或大量的主观性,这可能会在一定程度上破坏数据集的质量。一些现有的标注工具试图缓解这些问题,但在某些方面往往不尽如人意。例如,VIA(VGG 图像标注器)[5]等软件提供了矩形和多边形的基本手动标注功能,并有可能在视频的后续帧中跟踪一些边界框,但缺乏自动化功能,使其不适合大规模项目。一些更先进的平台,如 LabelStudio[14]、CVAT[13]和 Roboflow[3],可以整合人工智能辅助以加快流程。然而,其中一些可能需要云依赖、订阅费用、额外的依赖项或专门的硬件。

为了解决这些差距,我们推出了 VisioFirm,这是一个开源的跨平台网络应用程序,它整合了先进的 AI 模型,以实现计算机视觉任务中最佳的图像标注自动化。VisioFirm 专注于目标检测、定向目标检测和分割子领域。VisioFirm 使用一个过滤系统,结合预训练和零样本模型的低阈值推理器。这种混合系统结合了 CLIP[11]进行语义过滤,以及用于标准类别的检测器和通过 Grounding DINO 进行自定义类别的零样本能力。这种方法生成高召回率的预标注,可以通过几个后处理步骤自动完善,但用户可以通过支持边界框、定向边界框、多边形和使用 Segment Anything 模型(SAM)[12]进行即时分割的直观界面进一步完善,该模型通过 WebGPU 加速。该工具在初始模型下载后可以离线运行,支持多种导出格式,并且已经通过基准测试,证明可以在多样化数据集上将手动工作量减少高达 90%,同时保持标注精度。

本工作的贡献有三个方面:

  1. 一个用户友好的网络应用程序,平台无关且易于安装。

  2. 一种新颖的人工智能辅助标注流程,通过低阈值预标注和基于 CLIP 的过滤提高了效率。

  3. 一个易于访问的基于浏览器的工具,专门支持定向目标检测和分割。

2 VisioFirm

VisioFirm 基于 Flask Python 构建后端逻辑,并使用 HTML-CSS-JavaScript 前端进行交互式用户界面。该工具支持用户认证、项目管理和处理大型图像数据集的便利性。关键功能包括键盘快捷键以便快速导航、缩放/平移控件以及多种标注模式(矩形、多边形、用于分割的魔术棒)。标注可以以 YOLO、COCO、Pascal VOC 和 CSV 等标准格式导出,以便与其他 CV 工具集成。

VisioFirm 的整体工作流程如图 1 所示,它展示了结合自动化预标注与半自动化和手动完善选项的混合标注方法。从输入图像和目标类别标签开始,系统根据用户用例进行分支:

  • 对于与常见数据集(如 COCO)对齐的类别,VisioFirm 利用预训练检测模型生成初始边界框提议。应用低预测置信度阈值(例如 0.2),以优先考虑召回率,确保后续完善过程中尽可能多地捕获潜在对象。选择 Ultralytics 框架[7]是因为它易于集成到 ML 驱动的后端中。此外,它为多种模型以及自定义训练和部署提供了强大的支持。默认情况下,使用 YOLOv10[16](最大型号),因为它具有最先进的性能,无需进行非最大抑制(NMS),并且在准确性和延迟之间取得了有利的权衡。然而,YOLOv10 可以被其他与 Ultralytics 兼容的架构(RT-DETR、YOLOv5、YOLOv11 等等)或自定义训练模型替换,以适应特定数据集的需求。

  • 对于未被预训练模型涵盖的自定义或特定领域的类别,VisioFirm 采用 Grounding DINO[10]进行零样本检测。Grounding DINO 是一种基于 Transformer 的模型,通过基于基础的预训练得到增强,能够进行开放词汇表检测,在 COCO 零样本转移上报告的平均精度为 52.5,经过微调后可扩展到 63.0。它能够处理文本提示以识别对象,而无需重新训练,使其非常适合不寻常或用户定义的类别。该模型与 VisioFirm 的流程集成,以生成初始标注,然后验证其准确性,支持处理多样化标注的灵活性。

  • 当预训练和零样本模型遇到特定领域的或不寻常的对象时,尤其是那些在训练数据集中(如 COCO)中未被代表的具有复杂形状、纹理或遮挡的对象时,可能会表现不佳。最近的研究强调了模型在泛化方面的局限性,例如 YOLOv10 或作为零样本模型的 Grounding DINO 可能会对特定对象产生低置信度或错误的检测。VisioFirm 通过动态评估检测质量来解决这个问题,标记自动方法不足的情况,从而触发向人工智能辅助标注的转换。为此,我们使用 Web-gpu Segment Anything 2[12]模型进行单击操作。

  • 如果前三种选项都无法自动检索标签,VisioFirm 提供了手动标注的回退选项,用户可以选择。受现有工具(如 CVAT、VAT 和 LabelStudio)的启发,所有基本的手动标注功能都已设计得用户友好。

这些初始检测通过 IoU-Graph 连通分量聚类和 CLIP 验证进行过滤,以去除冗余并确保标签准确性。然后,用户可以选择应用内实时过滤(选项 1)或完全信任所有预标注(选项 2)。对于复杂场景,如不寻常的对象或纹理,流程会转向使用 WebGPU 加速的 SAM2 进行引导分割的半自动化模式,或者作为回退的完全手动标注。后处理包括多边形的轮廓简化和封装到边界框中。

2.1 图像标注

VisioFirm 中的图像标注模块提供了一个健壮的、交互式的画布,用于手动和半自动化的标注,基于 HTML5Canvas 并使用 JavaScript 处理器进行绘图、交互和状态管理。用户可以通过仪表板加载图像,在那里他们可以浏览数据集,如图 2 所示。标注工具包括:

  • 矩形模式:用于标准边界框,支持拖动和调整大小,并实时显示坐标。

  • 多边形模式:用于精确的分割边界,允许逐点绘制、自动闭合和编辑。

  • 定向边界框(OBB)模式:启用旋转矩形以表示对齐的对象,通过最小面积封装计算得出。

  • 魔术模式:集成 SAM2,用于点击引导的分割,通过 WebGPU 加速,以确保在浏览器中低延迟性能。此外,标注界面还提供快捷键以便快速高效地进行标注。

标注存储在本地的 SQLite 数据库中,以便持久化,并可以通过复制、删除和置信度调整等功能进行完善。对于半自动化工作流程,来自 VFPreAnnotator 的预标注会叠加显示,允许用户以最少的输入接受、修改或拒绝提议。

2.2 VisioFirm 预标注器

VFPreAnnotator 是 VisioFirm 的核心自动化组件,旨在使用混合检测流程生成高召回率的初始标注。它使用 Python 实现,并使用诸如 Ultralytics、Transformers 和 CLIP 等库,以批处理模式处理图像,查询项目数据库以获取类别和路径。图 3 是 VisioFirm 应用程序中提供的预标注选项的可视化。

最后,选择最佳标签为:

这种基于 CLIP 的验证确保了预测标签与原始图像裁剪内容之间的语义对齐。它纠正了初始检测器产生的假阳性,同时探索低阈值方法以实现广泛的覆盖。在预标注阶段结束时,候选标注将被总结并暂时存储,以便在应用程序中进行进一步的过滤和用户完善(例如,最小置信度设置、手动覆盖)。在分割模式下,我们的 SAM2 策略将经过验证的边界框作为初始化掩码,在后处理中进行细化。这种平衡模型在生成时优先考虑召回率,在验证时优先考虑精确度,这已在实验中证明可以节省人工劳动。

2.3 流程过滤和后处理

VisioFirm 流程采用过滤和后处理技术来完善预标注,去除冗余并提高质量。通过 IoU-Graph 连通分量聚类解决列出的预标注之间的冗余:构建一个图 G,其中节点代表检测,边连接 IoU 大于 0.9 的配对,计算公式为:

图 4 展示了过滤和后处理流程案例的示例。

对于分割任务,后处理包括通过形态闭包(最多 10 次迭代的迭代闭合,逐渐增加核大小)进行自适应孔填充,以及使用 Ramer-Douglas-Peucker 算法[4]进行轮廓简化,ϵ=0.002× 周长,减少多边形点数,同时保留形状(最少需要 3 个点)。有效的标注被插入到 SQL 数据库中,包括图像元数据、标签标识符和几何数据(矩形或多边形)。

如果自动预标注在不寻常的对象或复杂纹理上表现不佳,流程会动态评估可靠性,并触发 WebGPU 加速的 SAM2 进行引导标注或切换到 100% 手动模式,如图 1 所示。这确保了高标注准确性,同时尽量减少冗余。

2.4 图构建

3 网络应用设计

VisioFirm 的网络应用架构旨在优先考虑计算灵活性、性能优化以及以用户为中心的计算机视觉标注任务分析。该系统支持硬件无关的部署,允许用户在资源受限的环境中指定仅使用 CPU 执行,或者在可用时利用 GPU 加速(后端推理使用 CUDA,客户端分割使用 WebGPU)。这种可配置性通过 Flask 后端的运行时标志实现,确保了对不同硬件配置的适应性,同时保持一致的标注准确性。

为了定量评估硬件加速对流程效率的影响,我们在一个基准数据集上进行了一些实验,该数据集包含 COCO 验证集的 100 个子集图像,专注于 YOLOv10 推理的常见类别。实验针对分割最终任务,使用 Intel Core i9-12th-12900k CPU 和 NVIDIA RTX A6000 GPU(48GB VRAM)。关键指标包括在低(0%)和较高(50%)置信度阈值下,整个流程的每张图像和总推理延迟(包括后处理)。

YOLOv10(最大变体)的推理延迟:在 0% 阈值下,CPU 模式平均每张图像 7.43 秒(总计 12 分 23 秒),而 GPU 模式将此减少到每张图像 2.53 秒(总计 4 分 13 秒),速度提高了 2.9 倍。在 50% 阈值下,CPU 平均每张图像 2.38 秒(总计 3 分 58 秒),GPU 为每张图像 0.14 秒(总计 14 秒),速度提高了 17 倍。

Grounding DINO(Tiny 变体)的推理延迟:在 0% 阈值下,CPU 平均每张图像 29.86 秒(总计 49 分 46 秒),而 GPU 平均每张图像 5.28 秒(总计 8 分 48 秒),速度提高了 5.7 倍。在 50% 阈值下,CPU 平均每张图像 9.03 秒(总计 15 分 3 秒),GPU 为每张图像 2.18 秒(总计 3 分 38 秒),速度提高了 4.1 倍。

这些结果如图 5 所示,突出了 GPU 加速和更高阈值的显著加速,这减少了过滤阶段处理的检测数量。尽管这省略了许多标签提议,但对于特定领域的模型(如针对特定图像数据集的有限对象进行微调的 YOLO)来说,这可以非常高效。在标注精度([email protected])方面,尽管存在一些重复标签,尤其是在使用 GroundingDino Tiny 结合 SAM2 自动生成自动掩码标签时,标注精度相对保持一致。对于与 COCO 对齐的类别数据集,YOLOv10 比 Grounding DINO 快得多(例如,在低阈值下 GPU 上高达 15 倍),使其成为常见目标标注的首选,以优化效率而不损失召回率。另一方面,Grounding DINO 在生成不常见类别标签提议方面非常高效,尽管在完整数据集上计算需要更多时间。

VisioFirm 还支持互操作性,用户可以在项目创建期间导入部分标注的数据集,只要标注符合 COCO JSON[8] 或 YOLO TXT YAML 等标准化格式。导入的标注将被解析、处理并合并到项目的 SQLite 数据库中,并可视化以便完善,确保与其他标注工具(如 LabelStudio[14] 或 CVAT)的无缝集成。

此外,该应用还整合了一个动态进度监控模块,生成分析可视化图表,以指导标注策略。如图 6 所示,仪表板展示了以下内容:

  • 一个饼图,显示标注完成状态(例如,在 100 张图像中完成了 93% 的标注)。

  • 一个条形图,显示类别分布,揭示不平衡情况(例如,“摩托车”类别频率高,而“花瓶”类别稀少)。

  • 一个直方图,显示每张图像的标注数量,突出长尾分布(例如,模态值在 0-5 个标注之间,最大值超过)。

这些通过 Plotly.js 渲染的指标,使得数据驱动的决策成为可能,例如优先标注未充分标注的类别或图像,从而减少下游模型中的偏差。

这种设计框架增强了 VisioFirm 在科学和实际计算机视觉应用中的实用性,在计算效率和分析能力之间取得了平衡。

4 开源实现和依赖

VisioFirm 作为开源框架在 MIT 许可下分发,以促进计算机视觉标注方法的协作进步。完整的源代码,包括后端和前端组件,托管在 GitHub 上。

表 1:VisioFirm 的软件依赖项和版本摘要

组件版本描述
Python3.8+基于 Python 3.10 的核心应用程序
Flask2.0+用于路由、身份验证和 API 端点的 Web 框架
Ultralytics8.0+用于 YOLO 模型集成和目标检测推理的库
Transformers4.30+Hugging Face 库,用于 Grounding DINO 和零样本模型
OpenAI-CLIP最新用于标签验证和过滤的语义嵌入模型
Torch2.0+支持 CPU/GPU 的深度学习操作的 PyTorch 框架
NumPy1.24+后处理中数组操作的数值计算
OpenCV4.8+用于图像处理和轮廓处理的计算机视觉库
NetworkX3.0+用于基于 IoU 的聚类算法的图库
SQLite3标准用于本地标注存储和查询的嵌入式数据库

安装可以通过 pip install -U visiofirm 命令以完全自动化的方式执行,然后在终端中使用 visiofirm 命令行启动本地服务器。对于 GPU 加速部署,建议使用 CUDA 12.0+ 和兼容的驱动程序;否则,系统默认回退到 CPU 执行。通过拉取请求征求社区贡献,重点是扩展模型兼容性(例如,整合新兴检测器)和增强跨平台稳健性,目前已在 Windows、macOS 和 Linux 上验证。

5 结论和未来方向

在本工作中,我们介绍了 VisioFirm 标注工具,这是一个开源的跨平台网络应用,减轻了计算机视觉中劳动密集型数据标注的挑战。专注于目标检测、定向边界框估计和实例分割,VisioFirm 的核心在于其预标注流程,该流程结合了预训练检测器和零样本模型。这个框架采用低置信度阈值以最大化召回率,然后在裁剪区域上进行基于 CLIP 的语义验证。然后通过 IoU-Graph 连通分量聚类来减少冗余,将重叠检测(IoU > 0.9)分组并解决,确保最小化重复项,同时保持准确性。通过 WebGPU 在浏览器端为 SAM2 引导的分割加速,支持使用自适应 Ramer-Douglas-Peucker 轮廓简化的即时细化。

未来的方向旨在扩大 VisioFirm 的范围和兼容性。与 Detectron2 等框架的整合将启用高级实例分割工作流程。将纳入更多与 CV 相关的标注,如图像分类和字幕生成,以支持多模态任务。视频支持,包括帧提取和基于跟踪的标注,将把工具扩展到时间维度。

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/Together_CZ/article/details/151404194

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--