还在手工标注数据集?快来试一试自动化多模型标注大模型-gui交互式标注(部署运行教程-高效生产力)

简介: 还在手工标注数据集?快来试一试自动化多模型标注大模型-gui交互式标注(部署运行教程-高效生产力)

快速入门指南

先看一下自动化标注的强大,简直医学图像处理的福音呀,不仅如此,任何区域都可以识别到,面对任意开集数据,都可以达到良好的效果。

运行模式

目前 X-AnyLabeling 支持两种运行方式,一种是下载源码直接运行,另一种是直接下载编译好的 GUI 版本运行。需要注意的时,为了保证用户能使用到最新的功能特性和最稳定的性能体验,强烈建议从源码运行。

源码运行

1.效果

完美展示识别效果

2.安装依赖

目前,X-AnyLabeling 针对不同的运行环境提供了多份依赖文件:

依赖文件 系统环境 运行环境 是否支持打包
requirements.txt Windows/Linux CPU
requirements-dev.txt Windows/Linux CPU
requirements-gpu.txt Windows/Linux GPU
requirements-gpu-dev.txt Windows/Linux GPU
requirements-macos.txt MacOS CPU
requirements-macos-dev.txt MacOS CPU

由于当前工具内置的模型推理后端为 OnnxRuntime,因此,如果您希望利用 GPU 进行模型推理加速,请务必确保本地 CUDA 版本与 onnxruntime-gpu 版本兼容,以确保顺利调用显卡。有关详细信息,请参考(https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html)。同时,请务必将…/…/anylabeling/app_info.py)配置文件中的__preferred_device__字段设置为GPU。


  1. 启动工具

X-AnyLabeling 工程目录下执行以下命令进行启动:

python anylabeling/app.py


设置当前工作环境变量可参考以下步骤:

  • Linux/MasOS
  • export PYTHONPATH=/path/to/X-AnyLabeling
  • Windows
  • set PYTHONPATH=C:\path\to\X-AnyLabeling

GUI 环境运行

在使用 X-AnyLabeling 自身提供的 GUI 环境运行时,相较于源码运行,最大的优势在于其方便快捷,用户无需深入关注底层实现细节,只需下载完成即可立即使用,省去了繁琐的环境配置和依赖安装步骤。然而,这种便捷方式也存在一些明显的弊端,主要包括:


  1. 不易排查问题: 当出现闪退或报错问题时,由于用户无法直接查看源码,难以快速定位具体原因,使问题排查变得相对困难。
  2. GPU加速限制: 对于希望通过调用GPU进行加速推理的用户,存在较大限制。当前提供的编译版本基于CUDA 11.6和onnxruntime 1.16.0版本进行打包编译,可能无法满足某些用户对于最新硬件或库版本的需求。
  3. 功能特性滞后: 由于无法及时更新编译版本,GUI环境运行可能无法享受到最新的功能特性,并且一些潜在的bug可能未能及时修复,影响了用户的整体体验。

为了在选择运行方式时能够更好地权衡利弊,建议用户根据具体需求和偏好,灵活选择源码运行或GUI环境运行,以达到最佳的使用体验。

文件导入

X-AnyLabeling 目前提供了三种便捷的导入方式,如下所示:

导入方式 快捷键
图像文件 Ctrl+I
图像目录 Ctrl+U
视频文件 Ctrl+O


需要注意的是,默认的标注文件保存路径为导入文件路径,如果需要存放到其它目录,可点击左上角 文件 -> 另存为,选择保存目录即可。


快速绘制

当前 X-AnyLabeling 中支持多边形、矩形框、旋转框、圆形、线段、多线段和点等多种标注样式,可供用户灵活地选取。部分绘制模式的快捷键设置如下:

标注样式 快捷键 应用场景
多边形 P 图像分割
矩形框 R 水平目标检测
旋转框 O 旋转目标检测
圆形 - 特定场景
线段 - 车道线检测
多线段 - 血管分割
- 关键点检测

X-AnyLabeling 交互模式目前主要有两种:

  • 编辑模式:此状态下用户可移动、复制、黏贴、修改对象等;
  • 绘制模式:此状态下仅支持绘制相应地标注样式;

目前在 矩形框旋转框圆形线段五种标注样式下,当图案绘制完成后,会自动切换到编辑模式。对于其它两种样式,用户可通过快捷键 Ctrl+J 完成快速切换。


辅助推理

对于想要使用 X-AnyLabeling 工具提供的 AI 算法功能库,可点击左侧菜单栏带 AI 字样的图标或直接按下快捷键 Ctrl+A 调出模型列表,点击下拉框选择自己需要的模型即可。如遇下载失败情况,请参考./custom_model.md)文档。


一键运行

X-AnyLabeling 工具中提供了实用的 一键运行 功能给予用户快速完成对当前批次任务的标注工作,用户可直接点击左侧菜单栏带 播放 图案的图标或直接按下快捷键 Ctrl+M 唤醒该功能,自动完成从当前图片到最后一张图片的标注。


需要注意的是,此项功能需要在给定模型被激活的状态下使用。此外一经开启便需要跑完整个任务,因此在启动之前笔者强烈建议先在小批量图片上进行测试,确保无误后再调用此功能。


打包编译

请注意,以下步骤是非必要的,本小节内容仅为可能需要自定义和编译软件以在特定环境中分发的用户提供的。如果您只是单纯使用本软件,请跳过这一步骤。


展开/折叠

为了方便用户在不同平台上运行 X-AnyLabeling,工具提供了打包编译的指令和相关注意事项。在执行以下打包指令之前,请根据您的环境和需求,修改 /…/anylabeling/app_info.py) 文件中的 __preferred_device__ 参数,以选择相应的 GPU 或 CPU 版本进行构建。


注意事项:


  1. 在编译前,请确保已经根据所需的 GPU/CPU 版本修改了 anylabeling/app_info.py 文件中的 __preferred_device__ 参数。
  2. 如果需要编译 GPU 版本,请先激活相应地 GPU 运行环境,执行 pip install | grep onnxruntime-gpu 确保被正确安装。
  3. 对于 Windows-GPU 版本的编译,需要手动修改 anylabeling-win-gpu.spec 文件中的 datas 列表参数,将本地的 onnxruntime-gpu 相关动态库 *.dll 添加进列表中。
  4. 对于 Linux-GPU 版本的编译,需要手动修改 anylabeling-linux-gpu.spec 文件中的 datas 列表参数,将本地的 onnxruntime-gpu 相关动态库 *.so 添加进列表中。此外,请注意根据您的 CUDA 版本下载匹配的 onnxruntime-gpu 包,详细匹配表可参考

参考指令:

# Windows-CPU
bash scripts/build_executable.sh win-cpu

# Windows-GPU
bash scripts/build_executable.sh win-gpu

# Linux-CPU
bash scripts/build_executable.sh linux-cpu

# Linux-GPU
#联系qq1309399183
bash scripts/build_executable.sh linux-gpu

注:如果您在 Windows 环境下执行以上指令出现权限问题的话,可在确保上述准备工作完成之后,直接根据需要执行以下指令:


pyinstaller --noconfirm anylabeling-win-cpu.spec

pyinstaller --noconfirm anylabeling-win-gpu.spec

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
1月前
|
Web App开发 Java 测试技术
《手把手教你》系列基础篇之(四)-java+ selenium自动化测试- 启动三大浏览器(下)基于Maven(详细教程)
【2月更文挑战第13天】《手把手教你》系列基础篇之(四)-java+ selenium自动化测试- 启动三大浏览器(下)基于Maven(详细教程) 上一篇文章,宏哥已经在搭建的java项目环境中实践了,今天就在基于maven项目的环境中给小伙伴们 或者童鞋们演示一下。
66 1
|
1月前
|
Web App开发 Java 测试技术
《手把手教你》系列基础篇之(三)-java+ selenium自动化测试- 启动三大浏览器(上)(详细教程)
【2月更文挑战第12天】《手把手教你》系列基础篇之(三)-java+ selenium自动化测试- 启动三大浏览器(上)(详细教程) 前边宏哥已经将环境搭建好了,今天就在Java项目搭建环境中简单地实践一下: 启动三大浏览器。按市场份额来说,全球前三大浏览器是:IE.Firefox.Chrome。因此宏哥这里主要介绍一下如何启动这三大浏览器即可,其他浏览器类似的方法,照猫画虎就可以了。
44 1
|
25天前
|
Web App开发 前端开发 Java
《手把手教你》系列技巧篇(九)-java+ selenium自动化测试-元素定位大法之By name(详细教程)
【4月更文挑战第1天】 这篇教程介绍了如何使用Selenium Webdriver通过name属性来定位网页元素,作为系列教程的一部分,之前讲解了id定位,后续还会有其他六种定位方法。文中以百度搜索为例,详细说明了定位搜索框(name="wd")并输入关键词“北京宏哥”的步骤,包括手动操作流程、编写自动化脚本以及代码实现。此外,还提供了查看和理解Selenium源码的方法,强调了`open implementation`选项用于查看方法的具体实现。整个过程旨在帮助读者学习Selenium的元素定位,并实践自动化测试。
43 0
|
1月前
|
Web App开发 存储 JavaScript
《手把手教你》系列技巧篇(八)-java+ selenium自动化测试-元素定位大法之By id(详细教程)
【2月更文挑战第17天】本文介绍了Web自动化测试的核心——元素定位。文章首先强调了定位元素的重要性,指出找不到元素则无法进行后续操作。Selenium提供八种定位方法,包括By id、name、class name等。其中,By id是最简单快捷的方式。文章还阐述了自动化测试的步骤:定位元素、操作元素、验证结果和记录测试结果。此外,讨论了如何选择定位方法,推荐优先使用简单稳定的方式,如id,其次考虑其他方法。最后,作者提供了Chrome浏览器的开发者工具作为定位元素的工具,并给出了通过id定位的代码示例。
52 0
|
20天前
|
前端开发 Java 测试技术
《手把手教你》系列技巧篇(十二)-java+ selenium自动化测试-元素定位大法之By link text(详细教程)
【4月更文挑战第4天】本文介绍了link text在自动化测试中的应用。Link text是指网页中链接的文字描述,点击可跳转至其他页面。文章列举了8种常用的定位方法,其中着重讲解了link text定位,并通过实例展示了如何使用Java代码实现点击百度首页的“奥运奖牌榜 最新排名”链接,进入相应页面。如果link text不准确,则无法定位到元素,这说明linkText是精准匹配,而非模糊匹配。文章还提到了partial link text作为link text的模糊匹配版本,将在后续内容中介绍。
37 4
|
19天前
|
XML 前端开发 Java
《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)
【4月更文挑战第6天】按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath。xpath 的定位方法, 非常强大。使用这种方法几乎可以定位到页面上的任意元素。xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们可以使用Xpath 的用法来定位页面元素。XPath 是XML 和Path的缩写,主要用于xml文档中选择文档中节点。基于XML树状文档结构,XPath语言可以用在整棵树中寻找指定的节点。
45 0
|
1月前
|
Web App开发 安全 Java
《手把手教你》系列技巧篇(七)-java+ selenium自动化测试-宏哥带你全方位吊打Chrome启动过程(详细教程)
【2月更文挑战第16天】本文介绍了如何通过查看源码理解Selenium启动Chrome浏览器的过程。首先,展示了启动Chrome的Java代码,包括设置系统属性、创建WebDriver实例、最大化窗口、设置隐性等待、打开网站、获取页面标题以及关闭浏览器。文章还讲解了包(package)、import导入、setProperty设置系统属性、WebDriver接口、driver实例、manage方法、get方法加载网页以及quit方法退出浏览器的基本概念和作用。适合没有Java基础的读者了解Selenium与Java的交互方式。
50 3
|
2天前
|
数据采集 前端开发 测试技术
《手把手教你》系列技巧篇(三十一)-java+ selenium自动化测试- Actions的相关操作-番外篇(详解教程)
【4月更文挑战第23天】本文介绍了网页中的滑动验证码的实现原理和自动化测试方法。作者首先提到了网站的反爬虫机制,并表示在本地创建一个没有该机制的网页,然后使用谷歌浏览器进行验证。接着,文章详细讲解了如何使用WebElement的click()方法以及Action类提供的API来模拟鼠标的各种操作,如右击、双击、悬停和拖动。
6 2
|
3天前
|
Web App开发 数据采集 Java
《手把手教你》系列技巧篇(三十)-java+ selenium自动化测试- Actions的相关操作下篇(详解教程)
【4月更文挑战第22天】本文介绍了在测试过程中可能会用到的两个功能:Actions类中的拖拽操作和划取字段操作。拖拽操作包括基本讲解、项目实战、代码设计和参考代码,涉及到鼠标按住元素并将其拖动到另一个元素上或指定位置。划取字段操作则介绍了如何在一段文字中随机选取一部分,包括项目实战、代码设计和参考代码。此外,文章还提到了滑动验证的实现,并提供了相关的代码示例。
32 2
|
8天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(二十五)-java+ selenium自动化测试-FluentWait(详细教程)
【4月更文挑战第17天】其实今天介绍也讲解的也是一种等待的方法,有些童鞋或者小伙伴们会问宏哥,这也是一种等待方法,为什么不在上一篇文章中竹筒倒豆子一股脑的全部说完,反而又在这里单独写了一篇。那是因为这个比较重要,所以宏哥专门为她量身定制了一篇。FluentWait是Selenium中功能强大的一种等待方式,翻译成中文是流畅等待的意思。在介绍FluentWait之前,我们来讨论下为什么需要设置等待,我们前面介绍了隐式等待和显式等待。
33 3

热门文章

最新文章