【AI工具】 一款多SOTA模型集成的高精度自动标注工具(直接安装使用,附源码)

news/2024/11/8 1:34:28/

目录

  • 高精度自动标注工具简介及其特性
  • 标注工具的安装
  • 开启自动标注

简介

在这里插入图片描述

X-AnyLabeling 是一款全新的交互式自动标注工具,其基于AnyLabeling进行构建和二次开发,在此基础上扩展并支持了许多的模型和功能,并借助Segment Anything和YOLO等主流模型提供强大的 AI 支持。无须任何复杂配置,下载即用,支持自定义模型,极大提升用户标注效率!

AnyLabeling = LabelImg + Labelme + Improved UI + Auto-labeling

特性

目前第一版提供以下功能,后期计划加入多模态大模型,满足更广泛的需求:

  1. 支持多边形、矩形、圆形、直线和点的图像标注。
  2. 支持文本检测、识别和KIE(关键信息提取)标注。
  3. 支持检测-分类级联模型进行细粒度分类。 支持一键人脸和关键点检测功能。
  4. 支持PaddlePaddle、OpenMMLab、Pytorch-TIMM等主流深度学习框架。
  5. 支持转换成标准的COCO-JSON、VOC-XML以及YOLOv5-TXT文件格式。
  6. 提供先进的检测器,包括YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOX以及DETR系列模型。
    在这里插入图片描述
    在这里插入图片描述

安装

下载和运行可执行文件

整个安装及使用教程都很简单,目前已在Windows系统上编译成可执行软件,可直接在release页面直接下载使用。其他平台可根据以下指令自行打包即可:

  1. 安装 PyInstaller
pip install -r requirements-dev.txt
  1. 构建
bash build_executable.sh

请注意,在运行之前,请根据本地conda环境在anylabeling.spec文件中替换’pathex’。

  1. 移步至目录 dist/ 下检查输出。源码编译安装依赖包
pip install -r requirements.txt
// 生成资源
pyrcc5 -o anylabeling/resources/resources.py anylabeling/resources/resources.qrc
// 运行应用程序
python anylabeling/app.py

SAM的使用

SAM 是 Meta 的新细分模型。使用 11M 图像和 1B 分割掩码进行训练,它可以在不针对特定对象进行训练的情况下分割图像中的对象。出于这个原因,Segment Anything 是自动标记的一个很好的候选框,即使是从未见过的新对象。

使用步骤

  • 选择左侧的Brain按钮以激活自动标记。
  • 从下拉菜单Model中选择Segment Anything Models类型的模型。模型精度和速度因模型而异。其中,Segment Anything Model (ViT-B)是最快的但精度不高。Segment Anything Model (ViT-H)是最慢和最准确的。Quant表示量化过的模型。
  • 使用自动分割标记工具标记对象。
    – +Point:添加一个属于对象的点。
    – -Point:移除一个你想从对象中排除的点。
    – +Rect:绘制一个包含对象的矩形。Segment Anything 将自动分割对象。
    – 清除:清除所有自动分段标记。
    – 完成对象(f):当完成当前标记后,我们可以及时按下快捷键f,输入标签名称并保存对象。

注意事项

– X-AnyLabeling 在第一次运行任何模型时,需要从服务器下载模型。因此,可能需要一段时间,这具体取决于本地的网络速度。
– 第一次 AI 推理也需要时间。请耐心等待。
后台任务正在运行以缓存 Segment Anything 模型的“编码器”。因此,在接下来的图像中自动分割工作需要时间会缩短,无须担心。

第一个版本支持以下标签工具:

  • 图像文本标签
    用户可以切换到编辑模式并更新图像的文本——可以是图像名称或图像描述。

  • 文本检测标签
    当用户创建新对象并切换到编辑模式时,可以更新对象的文本。

  • 文本分组
    想象一下,当使用 KIE(键信息提取)时,需要将文本分组到不同的字段中,包含标题和值。在这种情况下,你可以使用文本分组功能。当创建一个新对象时,我们同样可以通过选择它们并按G将其与其他对象组合在一起。分组的对象将用相同的颜色标记。当然,也可以按快捷键U取消组合。

  • 检测分类模型
    这一块相比比较简单。我们主要讲解下如何加载自定义模型,这将使你能够使用自己的模型进行自动标记。如果你有一个已根据自己的数据训练过的自定义模型并希望将其用于自动标记,这将非常有用。此外,还可以创建一个标签 - 训练循环来逐步改进私有模型。通常来说,笔者建议在项目初期阶段可以基于 SAM 利用点或矩阵提示快速完成数据标注,等后期达到一定数据量训练完一个初版模型后再基于检测或检测+分类模型进行一键自动标注。

  • 准备模型文件
    通常来说,我们首先需要将训练好的模型统一转换成onnx文件格式,以下是第一版支持的版本分支:

yolov5-v6.0+
yolov6-v0.4.0
yolov6Face-v0.4.0
yolov7-main
yolov8-main
yolox-main

如果你是基于以上分支训练并转换得到的onnx文件,可以直接进行后续步骤,否则可能需要修改源码以进行相应的适配。

开启自动标注

  1. 新建一个文件夹,将上述转换好的onnx权重和对应的配置文件存放到同一目录下。(非必须,但方便管理)
    2、 将 yaml 文件中 model_path 字段设置为 onnx 模型所在的绝对路径。

  2. 在自动标记模式下,从自动下拉列表中选择加载自定义模型,如图所示:
    在这里插入图片描述

  3. 选择相应的配置文件。

  4. 点击“运行”或按下快捷键i是实现一键标注功能。
    在这里插入图片描述

源码链接:https://github.com/CVHub520/X-AnyLabeling


http://www.ppmy.cn/news/273867.html

相关文章

LeetCode32. 最长有效括号

给你一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例 1: 输入:s "(()" 输出:2 解释:最长有效括号子串是 "()" 示例 2: 输入…

物联网开发项目中具备哪些特点?

物联网开发是一项由设备、传感器、系统和应用程序组成的复杂技术。许多公司已经制定了计划,准备将物联网技术整合到他们的系统中,以帮助提高效率和生产力。在许多方面,物联网都是一项技术投资,但与其他投资相比,它可以…

开始使用Vue 3时应避免的10个错误

本文首发于微信公众号:大迁世界, 我的微信:qq449245884,我会第一时间和你分享前端行业趋势,学习途径等等。 更多开源作品请看 GitHub https://github.com/qq449245884/xiaozhi ,包含一线大厂面试完整考点、资料以及我的…

继承类的方法

1 问题 定义一个父类,用子类去继承父类所拥有的方法、定义属性,然后使用测试文件实现子类输出父类的方法信息,属性等。 2 方法 2.1 定义一个名为Person的父类: 2.2 定义一个名为Student的子类,并令其继承父类&#xff…

八字诀 · 十年之约

* * * 原创:刘教链 * * * 号外:今天在“刘教链Pro”发表了两篇文章,《一视同仁,SEC起诉Coinbase》和《SEC起诉币安的官方新闻稿》,欢迎关注“刘教链Pro”并阅读。 * * * 隔夜比特币奋力反弹,重新回升至27k…

关于ASO优化的搜索指数

搜索指数指数可以看出该关键词的热度,每一个关键词都对应着相应的指数,它代表着有多少人在搜索这个词。同一个词搜索的人越多,该关键词的热度指数就越高。 在应用商店内每天都会有用户去搜索应用,那么关键词的热度值至少是100。热…