【增强版】X-AnyLabeling:支持多模态图像对比标注 + YOLO标签自动导入/修改(高效标注工具)
## 🧩 背景:为什么需要多模态标注工具?
>项目地址:[https://github.com/xy200303/X-AnyLabeling](https://github.com/xy200303/X-AnyLabeling)
在计算机视觉任务中,尤其是**目标检测、语义分割、自动驾驶感知**等领域,我们常常不仅仅依赖**RGB 图像**,还需要结合其他模态的信息,比如:
- 🌡️ **红外图像(Infrared)**
- 🛰️ **深度图(Depth)**
- 📡 **雷达点云投影图**
- 📷 **多光谱图像**
- 🧠 **AI 模型生成的注意力热图、分割建议图**
然而,**官方 X-AnyLabeling 工具原生只支持单模态图像(通常是 RGB)的加载与标注**。当你的任务需要结合多个模态进行综合判断时,比如:
> “这个目标在可见光下不明显,但在红外图像中非常清晰,我希望能同时查看并对照标注”
就会变得十分不便:你可能需要在不同窗口、软件之间反复切换,手动对齐图像,严重影响标注效率和准确性。
---
## ✨ 我们的增强目标
为了解决这一痛点,我 **fork 了官方 X-AnyLabeling 项目**,并在其基础上开发了以下两大实用功能:
---
## 🆕 功能一:多模态图像拖动对比显示

### 🎯 核心能力
我们新增了一个 **多模态图像对比模块**,允许用户在标注界面中:
- **同时加载原始图像 + 另一模态图像(如红外、深度图等)**
- 通过一个**可拖动的滑动条**,左右实时切换或对比两种模态
- **直观地对照不同模态下的目标外观**,辅助更精准的标注
### 🛠 实现细节
- 支持拖动条控制两张图像的显示权重或直接切换
- 图像对齐机制确保两张模态图像空间一致(如对齐像素、FOV 等)
- 用户可通过 UI 拖动对比条,实时查看某一区域在不同模态下的表现
- 支持常见格式:PNG、JPG、TIFF 等
### 🧠 使用场景举例
| 场景 | 说明 |
|------|------|
| 红外 + 可见光 | 夜间或低照度环境下,目标在红外中清晰可见,但在 RGB 中难以辨认 |
| 深度图 + RGB | 自动驾驶中,结合深度信息辅助判断障碍物距离与形状 |
| 多光谱 | 农业、环保领域,通过不同波段图像识别植被、污染等 |
### ✅ 带来的优势
- **提升标注精度**:结合多模态信息,更准确地判断目标边界与类别
- **提高效率**:无需频繁切换窗口,在同一工具内完成多模态分析
- **更智能的标注体验**:为后续 AI 模型训练提供更丰富、对齐良好的数据
---

## 🆕 功能二:YOLO 标签自动导入(支持目录批量处理)
### 🎯 核心能力
原版 X-AnyLabeling 对 YOLO 格式的标签(通常是 `labels/*.txt`)支持有限,且**只能逐个图像手动导入**,效率极低。
我们新增了:
- **一键批量导入 YOLO 标签功能**
- 自动扫描 `labels/` 目录,**根据图像文件名自动匹配对应的 `.txt` 标签**
- 支持 **YOLO 格式(Class_id, x_center, y_center, width, height)**
- 自动转换为 X-AnyLabeling 内部使用的 **JSON 标注格式**
- 支持 **HBB(矩形)、SEG(分割)、OBB(旋转框)** 等常见 YOLO 模式自动识别
### 🛠 实现细节
- 自动递归搜索多级目录,匹配图像与标签文件
- 智能构建文件名映射(如 `img001.jpg` ↔ `img001.txt`)
- 提供导入进度条与结果统计(成功/失败数量)
- 支持中断恢复与错误提示
### 🧠 使用场景举例
| 场景 | 说明 |
|------|------|
| 批量预标注数据导入 | 快速将已有 YOLO 格式数据集导入 X-AnyLabeling 进行可视化修正与增强标注 |
| 多人协作标注 | 团队统一使用 YOLO 标注格式,快速导入统一平台进行精细调整 |
| 模型预测结果回溯 | 将 YOLO 模型预测的标签快速加载,辅助人工校正 |
### ✅ 带来的优势
- **节省大量重复劳动**:告别逐张导入标签的繁琐操作
- **标准化流程**:与主流 YOLO 工具链无缝衔接(如 YOLOv5/YOLOv8 输出)
- **提升数据流转效率**:从模型输出 → 可视化 → 人工修正,一气呵成
---
## 🧩 技术架构简要
| 模块 | 文件/组件 | 功能 |
|------|-----------|------|
| 多模态图像显示 | `canvas.py` 等 UI 核心模块 | 控制拖动条、图像叠加渲染、对比模式切换 |
| YOLO 标签导入 | `upload.py` | 批量读取 `labels/*.txt`,自动转 JSON,支持多级目录 |
| 渲染优化 | `paintEvent` 与事件处理 | 控制分层绘制顺序,确保标注、控件、对比图像层次清晰 |
| 用户交互 | 拖动条 UI、模式切换按钮 | 提供直观的交互方式,适配不同工作流 |
---
## 📦 安装与使用
### 1. 获取增强版代码
你可以通过以下方式获取我们的增强版 X-AnyLabeling:
- **GitHub Fork 地址**:https://github.com/xy200303/X-AnyLabeling
- 直接 Clone:
```bash
git clone https://github.com/xy200303/X-AnyLabeling.git
cd X-AnyLabeling
```
### 2. 安装依赖
建议使用 **Python 3.8+** 与 **虚拟环境**:
```bash
python -m venv venv
.\venv\Scripts\activate # Windows
# 或 source venv/bin/activate # Linux/Mac
pip install -r requirements.txt
pip install pyinstaller # 如需打包
```
### 3. 运行软件
```bash
python anylabeling/app.py
```
或直接启动主程序(根据项目入口调整)。
### 4. 使用多模态功能
- 在菜单中选择「打开多模态图像」或类似选项
- 加载主图像与辅助模态图像(如红外图)
- 使用拖动条实时对比
### 5. 批量导入 YOLO 标签
- 将你的图像与 `labels/*.txt` 放入对应目录
- 在软件中选择「导入 YOLO 标签」或启动时自动加载
- 标签将自动转换为软件内可编辑的格式
---
## 🎯 适用人群
- **自动驾驶感知工程师**:需要结合红外/深度等模态标注障碍物
- **AI 数据标注团队**:希望提升多模态数据标注效率与一致性
- **计算机视觉研究员**:需要精细控制标注过程,结合多源信息
- **科研机构 / 实验室**:多模态数据采集与标注流程标准化
---
## 🤝 开源与未来计划
本项目为 **非官方增强版**,基于 https://github.com/xy200303/X-AnyLabeling fork 并扩展,**代码开源,欢迎贡献与反馈!**
未来我们计划支持:
- 🧠 更多模态类型(如点云、雷达、多光谱融合)
- 🤖 与 YOLOv8 / Segment Anything 模型深度集成
- 🌐 多人协作标注与版本管理
- 📊 标注质量评估与自动化辅助
---
## 📌 总结
| 功能 | 说明 | 价值 |
|------|------|------|
| ✅ 多模态图像拖动对比 | 同屏加载并对比不同模态图像,支持拖动控制 | 提升多模态标注精度与效率 |
| ✅ YOLO 标签批量导入 | 自动扫描并转换 `labels/*.txt` 为软件内格式 | 大幅节省数据预处理时间 |
| 🧩 易于使用 & 扩展 | 基于成熟 X-AnyLabeling 架构,UI 友好,模块清晰 | 易上手,方便二次开发 |
---
- 点赞
- 收藏
- 关注作者
评论(0)