🧩 背景:为什么需要多模态标注工具?
在计算机视觉任务中,尤其是目标检测、语义分割、自动驾驶感知 等领域,我们常常不仅仅依赖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:
bashgit 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 友好,模块清晰 | 易上手,方便二次开发 |