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

news2024/12/23 18:35:33

目录

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

简介

在这里插入图片描述

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.coloradmin.cn/o/622822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Abp Vnext 搭建 ELK日志记录

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana 安装 Elasticsearch Kibana 的方法我前面文章有写 Abp中加入Logstash Serilog.AspNetCore Serilog.Formatting.Elasticsearch Serilog.Sinks.Async Serilog.Sinks.Elasticsearchp…

算法与数据结构(四)

一、哈希表 1、哈希表在使用层面上可以理解为一种集合结构 2、如果只有key,没有伴随数据value,可以使用HashSet结构(C中叫UnOrderedSet) 3、如果既有key,又有伴随数据value,可以使用HashMap结构(C中叫UnOrderedMap) 4、有无伴随数…

【C++】4.多媒体库:SFML库入门

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍SFML库使用。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习知识,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路&#…

新能源车加速内卷,下一程拼什么

近日,一则长城汽车举报比亚迪的消息,瞬间刷爆了整个汽车圈,行业外对于这个事情多少有点懵,但业内对此却并不感到意外。如果说去年前年国内新能源汽车的“较量”,还是争夺入选资格的话,如今这种级别的“较量…

TensorFlow2进行CIFAR-10数据集动物识别,保存模型并且进行外部下载图片测试

首先,你已经安装好anaconda3、创建好环境、下载好TensorFlow2模块并且下载好jupyter了,那么我们就直接打开jupyter开始进行CIFAR10数据集的训练。 第一步:下载CIFAR10数据集 下载网址:http://www.cs.toronto.edu/~kriz/cifar-10…

【Vue.js】对Vue-element-admin做代理网关转发proxy配置

文章目录 环境配置配置vue.config.js演示为啥要这么做呢? 环境配置 .env.development # 开发环境 .env.production # 生产环境我们需要在两个环境变量文件中配置 VUE_APP_BASE_API /dev # 这里配置全局的API前置标识 开发环境我使用的/dev 生产环境用的是/prod V…

Word控件Spire.Doc 【其他】教程(8):在 Word 中嵌入多媒体文件

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

物联网开发中常用的几款传感器

传感器是物联网中的关键部件,在物联网开发中发挥着重要作用。目前,市场上的传感器种类繁多,它们有许多用途。有些传感器可能主要用于测量温度、压力、流量等物理量,有些则用于测量位置、距离、速度和加速度等物理量,还…

干货第一弹!多组学联合分析之代谢组FAQ

代谢组是对生物体内代谢产物全谱分析的一种研究手段,代谢产物包括核酸、蛋白质、脂类生物大分子以及其他小分子物质,目前主要是检测1000Da以下的物质。代谢组研究具有高通量的检测能力、高灵敏度和准确度、非侵入性、非破坏性、全面性、数据资源整合等特…

DIY制作隔离信号注入变压器

最近在学习模电知识,接触到了测量运放环路增益,需要使用合适的注入变压器,查找资料发现商用信号注入变压器价格昂贵,不适合个人学习使用。看到LOTO使用普通音频变压器做测试,也跟技术群友做了交流,尝试使用…

企业构建高性能Web应用的重要组件

目 录 01 出现背景 ‍‍‍‍‍‍‍ 02 PrimetonLB、PrimetonMemDB在高性能Web应用中的作用 03 与PAS的集成‍‍ 04 优势体现 05 总结 01 出现背景‍ 随着互联网的快速发展和普及,各类Web应用已成为人们日常生活的重要组成,人们对Web应用的要求从过去的…

使用QMenu和mousePressEvent制作右键弹出菜单

我需要实现一个在QTextBrowser上邮件弹出菜单的效果,如下所示: 创建QTextBrowser的子类MyTextBrowser 首先创建一个QTextBrowser的子类,MyTextBrowser,如下所示:并定义一个QMenu指针 #ifndef MYTEXTBROWSER_H #defin…

webpack打包处理字体图标、map4、map3、avi资源

一、字体图标资源的下载(阿里巴巴图标库) iconfont官网:https://www.iconfont.cn/ 这里你可以搜索你想要的字体图标,或者选择官方的图标库中查找,我这里就以官方的图标库为例: 选择几个加入购物车 点…

关于libc++_shared.so 与libstdc++、libc++的链接关系

问题点1: -lstdc 与libc_shared.so的关联; 当在makefile中引入-lstdc时,其意味着调用动态库libstdc.so, Note:动态库libstdc.so 所对应的静态库是libstdc.a; Note:当前测试libstdc.so来自于Android12的./prebuilts/gcc/linux-x86/host/x8…

图数据库实践 - 如何将图数据库应用于供应链管理

导读 当前,随着全球化的加速和供应链的复杂性增加,供应链风险管理已经成为企业日常运营中不可忽视的重要方面。由于自然灾害、贸易保护、供应商更迭等因素的影响,供应链中的任何一个环节出现问题都可能导致生产中断、物流延误、成本增加&…

结构型设计模式06-桥接模式

🧑‍💻作者:猫十二懿 ❤️‍🔥账号:CSDN 、掘金 、个人博客 、Github 🎉公众号:猫十二懿 桥接模式 1、桥接模式模式介绍 桥接模式(Bridge Pattern)是一种结构型模式之一…

ssm+java+mysql在线捐赠系统

本系统实现一个在线捐赠系统,分为用户和管理员两种用户。具体功能描述如下: 后台管理员模块包括: 1. 系统用户管理:此功能为超级管理员所有,普通管理员没有此权限,实现超级管理员可以对普通管理员信息的…

如和使用matlab进行求导 ,入门级教程

文章目录 问题如图所示运行结果如图代码分析完整代码完结撒花 问题如图所示 运行结果如图 代码分析 % 定义样本数量 n 500;这行代码定义了一个变量 n,它代表样本数量。这个变量在后面的代码中会被用到。 % 将 s 和 z 取值范围分成子区间的个数 num_intervals 40…

MySQL数据库迁移到ORACLE(持续更新)

1. 使用Oracle SQL Developer 官方 SQL Developer 23.1下载 选择Windows 64-bit with JDK 11 included安装 2.下载后解压,选择exe执行启动,启动后见图 3. 创建连接 默认支持创建Oracle连接(见下图),第三方连接需导入…

企业微信自建应用 挂载网页步骤

打开企业微信网页端,并登录 企业微信 https://work.weixin.qq.com/wework_admin/frame#index 点击应用管理 再次点击 应用,划到自建版块,点击创建应用 依次添加应用信息 点击创建应用, 添加指定网页信息