当前位置: 首页 > news >正文

使用X-AnyLabeling自动标注数据集(以yolov10模型为例,多图详细介绍)

一、X-AnyLabeling简介

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

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

二、安装方式

X-AnyLabeling安装方式有两种:下载官方发布的可执行程序文件,直接打开使用;从官网clone代码后在终端运行使用。

1,可执行程序

下载地址

https://github.com/CVHub520/X-AnyLabeling/releases

最新的稳定版本是X-AnyLabeling v2.3.6

根据自己的电脑OS类型,以及是否具备英伟达GPU显卡,下载不同的安装包。

笔者这里下载了几种不同的安装包做测试用。

2,运行代码

首先下载项目代码

git clone https://github.com/CVHub520/X-AnyLabeling.git

接着使用Anaconda创建python虚拟环境

conda create --name x-anylabeling python==3.8
conda activate x-anylabeling
#gpu
pip install -r requirements-gpu-dev.txt

创建

激活

cd到x-anylabeling项目代码根目录,然后执行下面命令(指定清华镜像源,下载速度会更快)

pip install -r requirements-gpu-dev.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

安装成功

手动修改app_info.py文件,可选择指定启用GPU或CPU方式。

在终端使用下边命令,运行程序

python anylabeling/app.py

三、手工标注数据

x-anylabeling可以使用自己训练后的模型,自动生成标注数据,但是第一次的话还是需要自己标注数据。

首次打开,选择语言,切换为中文。

打开需要标注数据的文件夹

点击矩形框或者使用快捷键R

标记并自己定义类

快捷键D,标注下张图片

快捷键一览

导出数据,保存的文件类型是json,你可以自己选择导出的类型。

json数据默认与图片在一个文件夹

导出的VOC格式数据

四、自动标注数据

模型的选择可参考docs/zh_cn/model_zoo.md文件,下边以yolov10s.onnx模型为例,介绍如何使用x-anylabeling自动标注数据。当然也可以使用自己训练好的模型,自动标注数据,流程是类似的。

X-AnyLabeling项目代码根目录创建models文件夹,放置训练模型。

yolov10s.onnx可以在官网下载获取,提前下载好,放到本地。

Releases · THU-MIG/yolov10 · GitHub

 

修改yolov10s.yaml文件

文件目录

./X-AnyLabeling/anylabeling/configs/auto_labeling/

默认配置如下

修改其中的model_path,改成yolov10s.onnx的路径,其它字段不用修改。

自动标注配置

自动标注过程

自动标注完成后,已默认生成json数据,导出VOC格式即可接下来的训练工作。

注意:经笔者自测,自动标注准确率还有待提升。不过可以手工编辑对象和标签,对结果进行修正。

五、参考

使用自己训练好的模型YOLOv8进行X-AnyLabeling自动标注_x-anylabeling自动标注v8教程-CSDN博客

yolov8数据标注、模型训练到模型部署全过程_yolov8 标注-CSDN博客

YOLOV8数据集制作,X-Anylabeling标注数据集,以及模型训练-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【商城源码开发要多久】
  • 时间记录内核模块
  • 【AI/算法类】OPPO 2025届秋招笔试题(B卷)
  • OpenCV的编译(MinGW)
  • 大模型是如何升级的呢?技术?应用?
  • 微信小程序开发:基础架构与配置文件
  • opencv 控制鼠标键盘实现功能setMouseCallback
  • 江科大/江协科技 STM32学习笔记P24
  • 北京城市图书馆-非遗文献馆:OLED透明拼接屏的璀璨应用
  • 探索Witin-NN Tools量化开源项目:模拟神经网络映射映射到存内芯片的计算过程
  • phpmailer如何配置SSL以发送安全电子邮件?
  • Qt表格设置列宽
  • 阿贝云免费虚拟主机和免费云服务器评测
  • 【Leetcode 884 】 两句话中的不常见单词 —— 更简洁的手法
  • redis I/O复用机制
  • go语言学习初探(一)
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • iOS | NSProxy
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Javascript设计模式学习之Observer(观察者)模式
  • JS+CSS实现数字滚动
  • Laravel Telescope:优雅的应用调试工具
  • Vue 动态创建 component
  • Vue2.x学习三:事件处理生命周期钩子
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Yii源码解读-服务定位器(Service Locator)
  • 测试如何在敏捷团队中工作?
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 在weex里面使用chart图表
  • #### go map 底层结构 ####
  • $().each和$.each的区别
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (4)Elastix图像配准:3D图像
  • (4)logging(日志模块)
  • (C++17) std算法之执行策略 execution
  • (day 12)JavaScript学习笔记(数组3)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (离散数学)逻辑连接词
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)大型网站的系统架构
  • (转)原始图像数据和PDF中的图像数据
  • (转载)深入super,看Python如何解决钻石继承难题
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET 指南:抽象化实现的基类
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .net生成的类,跨工程调用显示注释
  • .vue文件怎么使用_vue调试工具vue-devtools的安装