图像标注神器 X-AnyLabeling v2.5.0 重磅发布 | 通用视觉任务全新升级,交互式视觉-文本提示功能全面上线!

0. 导读

X-AnyLabeling 是一款集众多主流深度学习算法模型和丰富功能特性于一体的强大图像标注软件,其专注于解决实际应用。该软件能够显著提升标注效率和精度,为学术界和工业界提供高效的一站式解决方案,可快速且准确地完成多种复杂任务的标注。

X-AnyLabeling

1. 特性

在这里插入图片描述

1.1 多样化的标注样式

作为一款主打视觉标定的应用,X-AnyLabeling 不仅支持图像级的标注功能外,还特别引入了对视频文件的一键解析和自动标注功能。同时,为满足多样化的标注需求,X-AnyLabeling 提供了七种常用标注样式,全面适配不同的AI训练场景:

标注样式描述适用场景
矩形框快速框选目标对象,简单高效目标检测、物体跟踪等基础任务
多边形绘制不规则形状,实现精确标注图像分割、显著性检测等复杂任务
旋转框描述物体的方向和姿态,更加灵活旋转目标检测
标记图像中的特定关键点姿态估计、关键点检测等任务
线段用于直线关系的标注需求道路标线、简单图形边界等
折线段绘制连续折线,适配弯曲线条标注车道线检测等任务
圆形提供便捷的圆形目标标注方式车辆轮胎、瞳孔等圆形目标标注场景

此外,X-AnyLabeling 还提供以下支持:

  • 图像级与对象级标签分类和描述,广泛适用于以下子任务:
    • 图像分类(Image Classification)
    • 图像描述(Image Captioning)
    • 图像标签 (Image Tagging)
  • KIE 场景的 SER 和 RE 标注功能,为结构化信息抽取任务提供高效解决方案,详情请参阅后续的 OCR 任务章节

1.2 多格式数据转换

X-AnyLabeling 支持主流深度学习框架的数据格式导入导出,如 YOLO、OpenMMLab 和 PaddlePaddle 等。这极大地简化了数据集准备流程,让您能够更专注于模型开发本身。
在这里插入图片描述

1.3 多硬件环境与跨平台应用

X-AnyLabeling 具备强大的硬件环境适应性,不仅支持常规的 CPU 推理,更引入了 GPU 加速推理能力。当前,软件后端的默认推理引擎为 OnnxRunTime,用户只需将训练模型导出为统一的 ONNX 文件,即可轻松集成至工具中。此外,您也可灵活集成 Pytorch、OpenVINO 或 TensorRT 等后端。
在这里插入图片描述
X-AnyLabeling 还拥有卓越的跨平台兼容性,可在 Windows、Linux 和 MacOS 等多种操作系统下流畅运行。更值得一提的是,平台提供一键编译脚本,用户可根据自身需求自主编译系统,实现应用的随时随地轻松分发,从而获得更灵活的定制和部署体验,并进一步简化工具安装流程。

1.4 目标筛查功能

本次 X-AnyLabeling v2.5.0 版本针对小目标场景提供了循环遍历子图的筛查功能,可以帮助用户在完成初始标注后,更加高效地复核和修正小目标标注。用户在标注完成后,可以通过快捷键快速调用该功能,系统会循环切换到每一个已标注目标所在的区域,并自动局部放大该目标对象所处的子图。
在这里插入图片描述
该功能有效地解决了小目标在全局视图下难以精细调整的难题,提高了标注质量和效率。同时,循环切换机制也保证了用户不会遗漏任何已标注的小目标,方便后续的检查和修正工作。
在这里插入图片描述
此外,GUI 界面也提供了统计总览保存子图功能,帮助用户快速了解当前标注目标数量等信息和根据目标框将对应子图截取并保存下来,方便用户后续的分析和复盘,进一步提升了标注工作的可追溯性。

更多特性介绍,欢迎移步至官方项目主页查看。

2. 算法

2.1 基于视觉-文本提示的交互式迭代检测和分割标注

在最新发布的 X-AnyLabeling v2.5.0 版本中,我们隆重推出全新算法 Open Vision。它巧妙融合了 Visual-Text Grounding 和 Segment-Anything 的优势,实现了基于多提示融合的交互式检测与分割。

Open Vision 有效地克服了 YOLO 等主流传统闭集检测模型类别受限的缺点,也解决了 GroundingDINO 在处理复杂、模糊或具有歧义的文本提示时的局限性,为您带来前所未有的标注体验!

https://www.bilibili.com/video/BV1jyqrYyE74

🌟 核心优势:

  • 文本-视觉提示融合: 该功能将自然语言提示与视觉输入无缝结合,实现更智能、更直观的任务处理,显著提升交互性和效率。
  • 通用视觉任务支持: 从目标检测到实例分割,该功能展现出卓越的多功能性和鲁棒性,可广泛应用于多种视觉任务。

🚧 潜在局限:

  • 训练数据依赖: 该模型基于 FSC-147 数据集训练,在分布外的对象上可能表现不佳,需注意其泛化能力。
  • 资源密集型推理: 为确保识别精度,采用了两阶段推理管道,导致模型推理需要较多的计算资源和时间,更适用于密集场景标注。
  • 相似物体区分挑战: 当前模型在区分相似物体方面仍存在一定挑战,可能会导致个别误检情况。

📚 教程:https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/detection/hbb/README.md

2.2 基于 Florence 2 算法的多模态智能标注

Florence 2 是微软研究院(Microsoft Research)推出的一系列多模态基础模型,它旨在实现更强大的视觉和语言理解能力,并为各种多模态任务提供统一的解决方案。

Florence 2 采用统一的架构来处理多种多模态任务,例如图像分类、图像描述、视觉问答、文本到图像生成、视觉文本推理等。这种统一的架构简化了模型训练和部署过程。

在最新的 X-AnyLabeling v2.5.0 版本中,我们支持了基于 Florence2 算法的如下功能:

🍊 图像描述

图像级描述任务包含以下三个子任务:

  • 简洁描述(Caption): 为图像生成一句简明扼要的描述。
  • 详细描述(Detailed caption): 为图像生成一段较为详细的描述。
  • 更详细描述(More detailed caption): 为图像生成一段更为详尽的描述。

在这里插入图片描述
🍇 目标检测
在这里插入图片描述
🍉 区域候选
在这里插入图片描述
🍋 密集区域描述
在这里插入图片描述
🍌 视觉提示

基于视觉提示的任务包含以下三个子任务:

  • 区域分类(Region to category): 为指定区域分配一个类别标签。
  • 区域描述(Region to description): 为指定区域生成一段描述性文本。
  • 区域分割(Region to segmentation): 为指定区域生成一个分割掩码。

在这里插入图片描述
🍎 文本提示

基于文本提示的任务包含以下三个子任务:
Caption to Parse Grounding
Referring Expression Segmentation
Open Vocabulary Detection
🍍 光学字符识别

基于光学字符识别的任务包含以下两个子任务:
OCR
OCR with Region

📚 教程:https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/vision_language/florence2/README.md

2.3 基于 Segment Anything 2 的交互式视频检测与分割标注

Segment Anything 2
演示视频:https://www.bilibili.com/video/BV1kMpwedE8M/

📚 教程:https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/interactive_video_object_segmentation/README.md

3. 任务

除了上述新算法功能,X-AnyLabeling 还支持多样化的算法模型,以满足各项任务需求并扩展应用场景。

3.1 图像分类

图像分类,作为计算机视觉领域的“Hello World”任务,其核心目标是将整幅图像准确地归类至预定义的标签或类别。此任务通常细分为以下两个关键子类别:
Image Classification
多类别分类(Multiclass Classification):此任务中,每张图像被严格限定归属于一个且仅一个预先设定的类别。这些类别之间彼此互斥,例如,图像的内容可能被限定为“猫”、“狗”、“汽车”等互不重叠的选项。模型在此类任务中的目标是找出图像最可能对应的单一类别。举例来说,在动物识别任务中,一张图片仅能被分类为“猫”、“狗”或“鸟”中的一种。

多标签分类(Multilabel Classification):与多类别分类不同,多标签分类允许一张图像同时关联多个类别。这意味着图像内容可能涉及多种元素,而这些元素之间并不相互排斥。例如,一张图片中同时出现猫和狗,那么这张图片就应该同时被标记为“猫”和“狗”。多标签分类模型需要辨识图像中所有相关的元素,并为每个元素分配其对应的标签。
Multi-class Classification
在 X-AnyLabeling 中内置了以下图像分类模型用于预打标:

除了图像级的分类任务外,也支持实例级的分类任务。
Multi-label Classification
此外,X-AnyLabeling 还支持更为复杂的 多任务分类(Multitask classification),这意味着你可以基于 X-AnyLabeling 为不同的对象轻松构建多种属性。
Multi-task Classification
目前,X-AnyLabeling 中适配了 PaddlePaddle 开源的 PULC 车辆属性(Vehicle Attribute)和行人属性(Person Attribute)模型。整体的用户界面(UI)设计也参照 CVAT 的标注范式,为用户提供更加一致和友好的体验。

📚 教程:https://github.com/CVHub520/X-AnyLabeling/tree/main/examples/classification

3.2 目标检测

src: https://blog.roboflow.com/guide-to-yolo-models/
目标检测是计算机视觉领域的核心技术之一,其目标是在图像或视频中识别并精确定位各种物体,同时为每个被检测到的物体绘制边界框并给出其所属的类别。
HBB Detection
目前,X-AnyLabeling 集成了多种主流的目标检测器,包括:

OBB Detection
同时也支持旋转框的标定,并包括 YOLOv5-OBBYOLOv8-OBB 等旋转目标检测模型,以更好的适配旋转目标检测任务。
SAHI
此外,针对小目标检测的挑战,X-AnyLabeling 整合了 SAHI 工具,提供了 YOLOv5-SAHIYOLOv8-SAHI 并支持切片推理,有效提升了小目标场景下的检测召回率,如上图所示。

除了闭集目标检测,X-AnyLabeling 中还适配了基于开集的目标检测算法 Grounding-DINO,该模型允许用户通过文本提示的方式进行交互,从而实现零样本检测能力。

值得一提的是,X-AnyLabeling v2.5.0+ 版本中还引入了全新的 UPN 算法,该模型采用双粒度提示调优策略,在实例和部件级别生成全面的对象提议。
Universal Proposal Network
具体而言,UPN模型包含两种提示模式:

细粒度提示(fine_grained_prompt): 用于检测详细的对象部件以及相似对象之间的细微差别。此模式擅长识别面部特征等特定细节,或区分相似物种。

粗粒度提示(coarse_grained_prompt): 用于检测广泛的对象类别和主要场景元素。此模式侧重于识别诸如人、车辆或建筑物等通用对象,而无需进行详细的子分类。

详情请参考以下教程:

水平目标检测: https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/detection/hbb/README.md
旋转目标检测: https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/detection/obb/README.md

3.3 图像分割

Image Segmentation
图像分割是计算机视觉领域三大经典任务之一,其目标是为图像中的每个像素分配标签,确保具有相同标签的像素展现出共同的特征。该领域主要分为以下三种类型:

  • 语义分割(Semantic Segmentation):在这种分割方式中,每个像素都被分配一个类别标签,但不区分不同的实例。例如,在一张街道图片中,所有的人像素可能都被标记为“人”,而不区分个体。

Sementic Segmentation

  • 实例分割(Instance Segmentation):实例分割不仅对每个像素进行分类,还区分同一类别中的不同实例。在同样的街道图片中,不同的行人会被分配不同的颜色或标签,以区分彼此。

Instance Segmentation

  • 全景分割(Panoptic Segmentation):全景分割结合了语义分割和实例分割的特点,旨在为图像中的每个像素分配一个标签,同时区分不同的实例和背景。这种方法能够提供全面的场景理解,包括对单个物体的识别和整个场景的描述。

在 X-AnyLabeling 中,你可以使用内置的 YOLOv5-SegYOLOv8-Seg 或是自定义的语义分割模型(如 U-Net)轻松完成以上任务的标注。
Segment-Anything
此外,我们还额外提供了包括:

在内的基于 Segment-Anything 系列的模型支持,并配备了多种不同的型号,以便用户能够根据自己的具体需求、设备性能和场景应用来选择最合适的模型。

值得一提的是,对于 v2.5.0+ 的版本,已全面适配了最新的 SAM2.1 模型。
SAM-Med2D
更进一步地,针对医学图像场景,X-AnyLabeling 中同样提供了多种基于 SAM 微调的高精度模型,包括:

  • SAM-Med2D:通用医疗图像分割一切模型;
  • LVM-Med SAM
    • ISIC: 皮肤病灶分割一切模型;
    • BUID SAM:超声乳腺癌分割一切模型;
    • Kvasir SAM:结直肠息肉分割一切模型;

LVM-Med

📚 教程:https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/segmentation/README.md

3.4 姿态估计

姿态估计,又称关键点检测,旨在识别图像中特定点的位置,这些点被称为关键点。这些关键点通常代表了对象的特定部分,如人体的关节、物体的地标或其它显著的特征点。通过检测这些关键点,可以更好地理解图像中对象的姿态、形状和结构。

关键点检测部分主要包括两个关键领域:

  • 人脸关键点回归(Facial Landmark Detection)
  • 全身人体姿态估计(Pose Estimation)。
    在这方面,FLD 的一期规划已经植入了美团的 YOLOv6lite-face 模型。

YOLOv6lite-face

此外,对于全身人体姿态估计任务,X-AnyLabeling 中内置了包括 YOLOv8-PoseYOLOX-DWPose 以及 RTMO-DWPose 在内的三款主流姿态估计模型供用户选择。

YOLOv8-Pose

📚 教程:https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/estimation/pose_estimation/README.md

3.5 多目标跟踪

多目标跟踪(MOT)技术用于在视频序列中同时识别和跟踪多个目标,涉及在不同帧之间关联目标。在 X-AnyLabeling 中,我们提供了基于 ByteTrackBotSort 的目标跟踪器,同时支持以下四大任务的跟踪。

Tracking by OBB
在这里插入图片描述
Tracking by Segmentation
Tracking by HPE

📚 教程:https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/multiple_object_tracking/README.md

3.6 深度估计

Depth Estimation

深度估计是一项关键技术,其目的是预测图像中每个像素的深度信息,即确定从相机到场景中每个点的距离。这项技术的应用至关重要,它有助于我们理解场景的三维结构,并且在增强现实(AR)、机器人导航以及自动驾驶汽车等众多领域中发挥着重要作用。通过准确的深度估计,系统能够更好地与三维世界互动,从而提高任务的执行效率和安全性。
Depth-Anything
在 X-AnyLabeling 平台中,包含了深度估计功能,目前提供了以下两大模型:

  • Depth-Anything V1 是一种实用的解决方案,用于稳健的单目深度估计,它通过在 150 万张带标签的图像和 6200 万张以上无标签的图像上进行训练而实现。
  • Depth-Anything V2 在细粒度细节和鲁棒性方面显著优于其前身 V1。与基于 Stable Diffusion(指 StyleGAN 或类似架构)的模型相比,V2 具有更快的推理速度、更少的参数数量以及更高的深度估计精度。

📚 教程:https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/estimation/depth_estimation/README.md

3.7 图像标记

图像分析可以返回图像中出现的数千个可识别物体、生物、风景和动作的内容标签。标记不仅限于主要主题(例如前景中的人),还包括设置(室内或室外)、家具、工具、植物、动物、配件、小工具等。标签不是按分类组织起来的,也没有继承层次结构。

Recognize Anything

其中,以 Recognize Anything 为代表,这是一个专用于图像标记的识别一切模型。与 SAM 类似,作为基础模型,它具备卓越的识别能力,在准确性和识别种类方面均超越了 BLIP 等当前领先的模型。特别地,在最新版本的 X-AnyLabeling 中,我们还额外引入了 RAM++ 模型,相比于 RAM 模型,它能够提供更加出色的图标标记能力。

📚 教程:https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/description/tagging/README.md

3.8 光学字符识别

光学字符识别(Optical Character Recognition, OCR)是一种技术,它通过运用机器学习和模式识别等手段,自动识别图像中的文字并将其转换为可编辑的文本,从而便于后续的处理、搜索和编辑工作。

其中,文本标注是众多标注任务中一个非常频繁出现的任务,对于当前的多模态大型语言模型来说,这也是一个极其重要的子任务。然而,遗憾的是,目前市场上主流的标注工具要么不支持这一功能,要么提供的服务不够完善。即便是相对较为接近的 PPOCRLabel,也因为长时间缺乏维护而存在诸多问题。
PPOCR-v4
针对这一痛点,X-AnyLabeling 工具完美地支持了这一新功能。为了提高标注效率,工具内置了基于 PaddlePaddle 最新开源的 PP-OCRv4 轻量化模型,支持中日英等多种语言的文本检测和识别。

Key Information Extraction

此外,还额外支持了关键信息提取(Key Information Extraction, KIE),用于从文本或者图像中抽取出关键信息。具体地,其包含两个子任务:

  • 语义实体识别(Semantic Entity Recognition, SER):在图像中识别并分类文本。
  • 关系抽取(Relation Extraction, RE):对检测到的文本进行分类(例如,区分问题与答案)并识别它们之间的关系,比如将问题与其对应的答案进行匹配。
    DocLayout-YOLO

文档布局分析对于现实世界的文档理解系统至关重要。在最新的 v2.5.0 版本中,我们为大家引入了全新的文档版面分析方法 DocLayout-YOLO,其通过在预训练和模型设计中进行特定于文档的优化,在保持速度优势的同时提高准确性。

详情请参考以下链接:

OCR: https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/optical_character_recognition/text_recognition/README.md
KIE: https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/optical_character_recognition/key_information_extraction/README.md
DocLayout: https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/optical_character_recognition/document_layout_analysis/README.md

3.9 车道线检测

CLRNet-Tusimple

基于 Line 模式,X-AnyLabeling 中集成了 CLRNet-Tusimple (CVPR 2022) 模型,方便用户对车道线进行快速的预标定。

3.10 联合视觉任务

如上所述,X-AnyLabeling 中集成了多个领域不同方向的主流算法模型。通过这些内置的深度学习模型,搭配 X-AnyLabeling 应用中提供的丰富功能组件,我们可以构建出更为强大和有趣的工作流,以解决更为复杂的任务。

下面简单介绍一些案例,我们也鼓励用户根据自己的场景来构建更为有趣且丰富的 Pipeline。

  • Grounding-DINO + SAM
    Grounding + SAM

我们知道,给定一个文本提示和一张图片,Grounding-DINO 可以返回与给定提示最相关的边界框。同时,给定一个边界框提示和一张图片,SAM 可以返回边界框内的分割掩码。

现在,在 X-AnyLabeling 中,你可以轻松地将这两部分组合在一起,从而实现给定一个基于图像和文本提示来自动完成基于文本提示的分割结果!

  • SAM + CLIP
    SAM + CLIP

众所周知,CLIP 模型能够很好地理解图像和文本之间的关联,而 SAM 则能够根据提示生成精确的分割掩码。通过将两者结合,我们便可以轻松地进行万物检测

如下所示,用户只需提前在配置文件中添加你需要识别的任意类别名称(支持中英文):

type: sam
name: segment_anything
display_name: Segment Anything
# SAM
encoder_model_path: sam_encoder.onnx
decoder_model_path: sam_decoder.onnx
# Clip
model_type: clip
model_arch: ViT-B-16
...
classes: ["猫", "狗"]

便可以在 X-AnyLabeling 中通过类似于 SAM 的交互方式轻松高效地完成任意类别的检测与识别!

这种组合极大地简化了交互过程,使得基于提示的检测与分割任务变得更加直观和高效。

  • YOLO + X

YOLO + ResNet
上述我们简单介绍了基于图像级别的分类和标记功能。这里,我们可以借助 YOLO 等目标检测器构建二阶段的级联任务,实现对象级别的分类和标记功能,从而提供更细粒度的识别结果!

以检测+分类的级联模型为例,可以将原本是鸟的大类别进一步判断为山雀的细粒度类别:

这意味着整个系统不仅能够在整体上描述图像,还能够深入到图像中的各个对象层面,为用户提供更为细致和全面的信息。


同样地,你还可以:

  • 将 SAM 作为 YOLO 等检测器的后处理环节来改善分割细节;
  • 将 Detector、OCR 和 Tracker 三者结合起来完成视频字幕的自动生成;

限于篇幅,今天我们先介绍到这里,非常鼓励您亲身体验,发掘更多惊喜🎁!

结语

随着人工智能技术的飞速发展,X-AnyLabeling 作为一款集多功能于一体的图像标注软件,致力于为用户提供更高效、更智能的标注解决方案。笔者深知,在实际应用中,用户面临着多样化的标注需求和复杂的数据处理挑战。因此,笔者将力争在有限的资源不断开发、探索和整合最新的算法模型,并优化工作流,以期帮助用户简化标定流程,提升标定效率。

X-AnyLabeling 从项目启动至今,始终秉承开放和合作的精神,并欢迎来自各地的开发者和用户共同参与到项目的建设中来。无论是功能建议、代码贡献还是使用反馈,每一份力量都是项目不断前进的动力。笔者相信,通过社区的共同努力,X-AnyLabeling 能够成为业界领先的图像标注工具,为计算机视觉和人工智能领域的发展贡献自己的微薄之力。

在未来,笔者将继续关注最新的技术动态,不断优化和扩展 X-AnyLabeling 的功能,以满足用户日益增长的需求。期待与您一起,探索人工智能的无限可能,共同开启智能标注的新篇章。

感谢您选择 X-AnyLabeling,让我们一起迎接更加智能化的未来!

—— Jack | Project Owner

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CVHub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值