X-AnyLabeling使用和安装

本文介绍了开源工具X-AnyLabeling的源码运行和GUI版本的使用方法,涉及依赖管理、GPU支持、启动步骤、文件导入、标注工具、AI功能和打包编译等内容,为用户提供便利和不同运行环境下的选择建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码地址:

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

快速入门指南

运行模式

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

源码运行

  1. 下载源码
git clone https://github.com/CVHub520/X-AnyLabeling.git
  1. 安装依赖

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

依赖文件系统环境运行环境是否支持打包
requirements.txtWindows/LinuxCPU
requirements-dev.txtWindows/LinuxCPU
requirements-gpu.txtWindows/LinuxGPU
requirements-gpu-dev.txtWindows/LinuxGPU
requirements-macos.txtMacOSCPU
requirements-macos-dev.txtMacOSCPU

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

  1. 启动工具

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

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

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

python anylabeling/app.py

可选参数:

  • filename: 图像或标签文件名;如果传入目录路径,则会自动加载该文件夹

  • --help,-h: 显示帮助消息并退出

  • --reset-config: 重置 Qt 配置,清除所有设置。
  • --logger-level: 设置日志级别,可选值包括 "debug", "info", "warning", "fatal", "error"。
  • --output-O-o: 指定输出文件或目录。如果以 .json 结尾,则被识别为文件,否则被识别为目录。
  • --config: 指定配置文件或者以 YAML 格式提供配置信息的字符串 默认为 ~/.anylabelingrc(Linux) C:\Users\{user}\.anylabelingrc(Windows)。
  • --nodata: 停止将图像数据存储到 JSON 文件中。
  • --autosave: 自动保存标注数据。
  • --nosortlabels: 停止对标签进行排序。
  • --flags: 逗号分隔的标志列表或包含标志的文件。
  • --labelflags: 包含标签特定标志的 YAML 字符串或包含 JSON 字符串的文件。
  • --labels: 逗号分隔的标签列表或包含标签的文件。
  • --validatelabel: 标签验证类型。
  • --keep-prev: 保留前一帧的注释。
  • --epsilon: 在画布上找到最近顶点的 epsilon。

GUI 环境运行

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

  1. 不易排查问题: 当出现闪退或报错问题时,由于用户无法直接查看源码,难以快速定位具体原因,使问题排查变得相对困难。

  2. GPU加速限制: 对于希望通过调用GPU进行加速推理的用户,存在较大限制。当前提供的编译版本基于CUDA 11.6和onnxruntime 1.16.0版本进行打包编译,可能无法满足某些用户对于最新硬件或库版本的需求。

  3. 功能特性滞后: 由于无法及时更新编译版本,GUI环境运行可能无法享受到最新的功能特性,并且一些潜在的bug可能未能及时修复,影响了用户的整体体验。

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

下载链接:Release | 百度网盘

文件导入

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,工具提供了打包编译的指令和相关注意事项。在执行以下打包指令之前,请根据您的环境和需求,修改 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
bash scripts/build_executable.sh linux-gpu

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

pyinstaller --noconfirm anylabeling-win-cpu.spec
pyinstaller --noconfirm anylabeling-win-gpu.spec

X-AnyLabeling/docs/zh_cn/get_started.md at main · CVHub520/X-AnyLabeling · GitHub

### AnyLabeling 工具中旋转框标注的使用方法 在 AnyLabeling 中,旋转框标注是一种用于对象检测的重要功能,尤其适用于需要精确描述倾斜物体的应用场景。以下是关于如何使用旋转框进行标注的具体说明: #### 启动与加载图片 首先,在搜索引擎中找到所需的航拍图或其他适用图像,并将其下载到本地存储位置[^1]。随后启动 **x-anylabeling** 软件。 #### 创建旋转框 进入软件后,选择要处理的目标图片。按下快捷键 `O` 可以创建一个新的旋转矩形框。此操作会在当前视图中生成一个初始状态下的旋转框。 #### 编辑旋转框 为了调整已经创建好的旋转框至合适的位置方向,可以切换至编辑模式。具体来说,可以通过按住组合键 `Ctrl+J` 进入编辑模式并点击选取对应的旋转框。之后利用键盘上的特定按键来微调其角度: - 键盘输入字母 `z` 实现较大程度的逆时针转动; - 输入 `x` 则完成较小幅度的逆时针转向; - 对于顺时针的小范围调节可采用 `c` 键; - 若需大幅度顺时针改变则应选用 `v` 键。 #### 设置标签名称 当完成了旋转框大小及方位的确立以后,系统通常会弹出对话窗口请求指定该标记项所属类别即为其赋予恰当的名字作为识别依据[^2]。这一步骤对于后续的数据分析至关重要,因此务必准确无误地定义每一个被标注物象的身份特征。 #### 自动化辅助(可选) 除了上述的手工精细设定外,any labeling还提供了智能化解决方案——自动标注服务。用户只需激活界面上方靠近底部左侧角落处名为“Ai”的按钮接着挑选“Auto Label”项目即可尝试借助预训练模型快速实现大批量样本的一次性分类与定位工作[^3]。不过需要注意的是,这种便利方式依赖良好的互联网连接状况以及提前准备好合适的机器学习算法支持文件才能发挥最大效能。 ```python # 示例代码展示如何通过Python脚本控制X-AnyLabeling的部分基础交互逻辑(假设存在相应API接口) import any_labeling_api as ala def create_rotated_box(image_path, box_coordinates): app = ala.Application() window = app.main_window # 加载图片 window.load_image(image_path) # 开启新旋转框绘制命令模拟触发 'O' 键事件 window.simulate_key_press('O') # 假设我们已经有了坐标数据列表形式表示四个顶点顺序依次为左上右上下左右下 points = [(box_coordinates[i], box_coordinates[i+1]) for i in range(0,len(box_coordinates),2)] # 绘制多边形近似代替实际旋转矩形构建过程 polygon_id = window.draw_polygon(points) return polygon_id if __name__ == "__main__": img_file = "/path/to/your/image.jpg" coords = [50, 70, 90, 80, 100, 60, 60, 50] created_poly = create_rotated_box(img_file, coords) print(f"Created Polygon ID:{created_poly}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FL1623863129

你的打赏是我写文章最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值