2026年告别手动标注,基于 SAM3 的智能图像标注系统,吊打 labelme、labelimg 工具,LuoHuaLabel智能标注系统,全部源码开源,全网首发

张开发
2026/4/11 2:40:08 15 分钟阅读

分享文章

2026年告别手动标注,基于 SAM3 的智能图像标注系统,吊打 labelme、labelimg 工具,LuoHuaLabel智能标注系统,全部源码开源,全网首发
LuoHuaLabel - 基于 SAM3 的智能图像标注系统前言用AI打败AIAI全自动开发效率翻10倍由于自己的项目需要标注数据集之前用过 labelme、labelimg工具于是自己想了想能不能结合 SAM3 自己开发一个智能标注工具研究了几天中间也发现了好多问题最终通过 AI 辅助编程完成一个属于自己的标注工具。吊打 labelme、labelimg 工具。源码地址https://github.com/luohuabuxiema/LuoHuaLabel系统简介系统基于 PySide6 构建集成了最新一代的Segment Anything Model 3 (SAM3)基于 SAM3 的点提示与提示词提示功能我于是开发了智能点选和提示词选取功能当系统开启了 SAM3 智能标注功能时候可以智能点选进行标注或者提示词自动分割除了点Point标注不可以使用 SAM3 智能标注剩下的➡️矩形HBB、多边形Polygon、 OBB 旋转框标注都支持开启智能标注标注完系统还➡️支持数据集转换和划分。功能界面演示多边形标注—点选多边形标注—点选结果obb标注—点选obb标注—点选结果目标检测—点选结果目标检测—提示词结果数据集处理系统注意点标注有待优化这个功能待测试✨ 核心功能特性 AI 智能辅助 (SAM3 驱动)支持鼠标悬停预览、单点极速提取轮廓、以及输入文本提示词Prompt实现全图目标的批量自动化打框。 全能标注模式支持 矩形 (Rect)、多边形 (Poly)、点 (Point) 以及原生 OBB 旋转框标注。 极致 OBB 交互独创的旋转框控制手柄支持 360° 无极顺滑旋转、独立拉伸并自带“贴墙滑动”的严格图像边界碰撞检测。️ 时光机机制自带最高 20 步的撤销/重做Undo/Redo状态栈随时纠正误操作。 多格式无缝切换支持原生保存与读取 JSON、YOLO (.txt, 自动归一化及反推)、XML (Pascal VOC) 格式。️ 内置数据集处理系统独立线程运行的数据集处理子系统支持一键划分训练/验证/测试集以及 JSON 到 U-Net Mask、JSON/XML 到 YOLO 的格式清洗与转换。️ 部署与运行环境1. 环境依赖推荐使用 Python 3.10。首先安装必要的 Python 依赖包单独安装 torch2.5.0之后使用下面命令安装所需的库pip install -r requirements.txt注如果你需要使用 SAM3 的智能辅助功能请确保你的环境中已经正确配置了sam3相关的库及其依赖。2. 模型下载与配置为了启用 AI 智能标注你需要下载 SAM3 模型权重文件sam3.pt。下载后请打开main.py在MainWindow的__init__方法中修改模型的绝对路径self.sam_client.load_model_async(r你的模型绝对路径/sam3.pt)3. 启动系统在终端或命令行中运行主程序Bashpython main.py 用户操作指南基本工作流打开目录点击左侧工具栏的“打开目录”选择包含图片的文件夹。选择格式在左侧下拉菜单中选择你需要的标注与保存格式JSON / YOLO / XML。开始标注手动标注在左侧选择对应工具快捷键 R/P/T/O在画板上拖拽或点击即可绘制。智能标注打开左下角的SAM 智能辅助开关。点选鼠标移入目标出现绿色预览框/多边形后左键点击确认。提示词在右下角输入目标英文单词如dog按回车即可全图批量打框。修改属性绘制完成后弹出类别选择框。可通过双击已有框或快捷键E重新修改标签。保存导出使用快捷键Ctrl S手动保存或在切换下一张图片时系统会自动保存。⌨️ 快捷键大全A / 左方向键上一张图片D / 右方向键下一张图片Ctrl S手动保存当前标注Q开启/关闭 SAM 智能辅助R / P / T / O分别切换至 矩形 / 多边形 / 点 / 旋转框标注Del / Backspace删除选中的标注框Ctrl Z撤销上一步操作支持 20 步Ctrl Y (或 Ctrl Shift Z)重做前进Z / X / C / VOBB 旋转框快捷微调角度⚠️ 注意事项与边界说明OBB 旋转框出界限制为了符合严格的模型训练标准系统在 OBB 的拖拽与旋转中加入了强物理碰撞检测。旋转框的四个角点无法被拖出或旋转出图片的实际边界外当触碰边界时框体会展现出“贴墙滑动”的阻尼感。SAM 初始化延迟软件启动后SAM3 模型会在后台独立线程ModelLoadWorker中加载。加载完成前你可以正常进行手动标注。如果在加载期间开启了 SAM 辅助系统会在加载完毕后自动为你补做特征提取。空画布保存逻辑如果在某张图片上删除了所有的标注框再次触发保存时系统会生成一份空文件覆盖原有文件。这是为了确保“彻底清除该图片标注”的操作能够正确落地到硬盘上。点标注的局限性在“点标注”模式下SAM 智能辅助与提示词提取会自动被禁用置灰以防止生成无意义的数据。 核心开发文档本系统的架构遵循高内聚、低耦合的设计原则前端 UI 与底层模型推理完全解耦。1. 模块结构main.py主控中心。负责 UI 事件绑定、状态快照引擎撤销/重做、快捷键路由、数据读取与反推解析。core/canvas.py(Canvas)核心画板。继承自QGraphicsScene负责接管鼠标事件、画板状态拦截、SAM 推理结果渲染与预览图层控制。core/shapes.py图形基类与派生类。包含所有可视化组件的重写逻辑RotatedRectShape旋转框及手柄体系。core/sam_client.pyAI 通信总线。包含SamInferenceWorker推理线程处理与 PyTorch 及 SAM3 模型的张量计算和特征提取。core/exporter.py数据序列化引擎。使用mapToScene提取全局坐标完成 JSON/YOLO/XML 的格式化导出。main_dataset_tool.py数据集处理子系统多进程独立运行防阻塞。2. 核心方法1. OBB 极坐标逆向计算与旋转拉伸传统 QGraphicsItem 旋转后会导致坐标系错乱。本系统废弃了默认的拖拽属性全面接管了底层的mouseMoveEvent。在handle_dragged中系统将鼠标全局坐标映射回框体的局部坐标 (mapFromScene)。拉伸上下左右胶囊时不仅改变box_w/box_h更利用mapToScene计算出中心点在拉伸后的真实世界偏移量scene_offset实现了完美的“锚点固定拉伸”。旋转则使用了极坐标系计算Pythonangle_deg math.degrees(math.atan2(dy, dx)) self.setRotation(angle_deg 90)2. 时光机状态快照引擎为了避免复杂的对象深拷贝系统采用了**“数据快照State Snapshotting”**模式。每当画布发生state_changed信号画完、删除、松开手柄系统会直接调用Exporter.extract_shapes将画布的物理状态榨取成纯粹的 Dict 数据存入栈中。并自带 JSON 字符串去重比对防止用户无意义的点击消耗堆栈内存。3. SAM 推理结果提取 OBB当 SAM 生成出不规则的多边形 Mask 后为了支持将 AI 预测转化为 OBB 格式系统在寻边findContours后除了计算标准的cv2.boundingRect同时调用了cv2.minAreaRect(largest_contour)。可以直接抛出带有倾斜角度的精准外接框极大地提升了遥感目标标注的效率。更多功能待更新。。。 存在不足LuoHuaLabel 目前作为一个由个人开发者主导的开源项目虽然核心的标注流、数据清洗以及 SAM3 智能引擎均已跑通并验证可行但受限于个人精力与测试环境系统仍存在一些不完善之处。潜在的边缘 Bug在极高频的快捷键切换、或极端形变的旋转框OBB物理碰撞测试中偶尔可能出现图层刷新延迟或极小概率的坐标精度溢出问题。大尺度图像性能瓶颈目前画板基于 PySide6 的QGraphicsScene构建。在载入超大分辨率图片如 4K 乃至 8K 无人机遥感图并叠加成百上千个多边形掩码时缩放和拖拽的帧率可能会有所下降。显存占用SAM3 模型作为重量级的视觉大模型对设备的 CUDA 显存有一定要求。在低显存设备上“提示词全图提取” 功能可能会因为算力不足而导致界面短暂假死。格式支持相对局限目前的导入导出主要针对常用的 YOLO (HBB/OBB)、LabelMe 风格 JSON 和 Pascal VOC XML 进行了深度适配暂时缺乏对 COCO 格式原生导出以及部分细分领域格式的直接支持。 欢迎二次开发非常欢迎且鼓励广大开发者对其进行 Fork 和二次开发系统的代码架构已经做好了高度的模块化解耦你可以非常轻松地在以下方向大展身手 接入更多大模型core/sam_client.py作为一个独立的 AI 通信总线你可以很方便地将 SAM3 替换为轻量级的 MobileSAM、FastSAM甚至是接入你自己的垂直领域检测模型来实现预标注。️ 丰富数据处理中心你可以在main_dataset_tool.py中编写更多的数据清洗脚本例如加入马赛克增强Mosaic、图像裁切、数据增强Data Augmentation等。 定制化 UI 与交互基于 Qt 强大的自绘能力你可以继续完善core/shapes.py为旋转框加入更多操作逻辑或是优化右侧的图层树管理。总结对于有帮助可以一键三连谢谢各位观众老爷。参考文章sam3本地部署引用misc{carion2025sam3segmentconcepts,title{SAM3: Segment Anything with Concepts},author{Nicolas Carion and Laura Gustafson and Yuan-Ting Hu and Shoubhik Debnath and Ronghang Hu and Didac Suris and Chaitanya Ryali and Kalyan Vasudev Alwala and Haitham Khedr and Andrew Huang and Jie Lei and Tengyu Ma and Baishan Guo and Arpit Kalla and Markus Marks and Joseph Greer and Meng Wang and Peize Sun and Roman Rädle and Triantafyllos Afouras and Effrosyni Mavroudi and Katherine Xu and Tsung-Han Wu and Yu Zhou and Liliane Momeni and Rishi Hazra and Shuangrui Ding and Sagar Vaze and Francois Porcher and Feng Li and Siyuan Li and Aishwarya Kamath and Ho Kei Cheng and Piotr Dollár and Nikhila Ravi and Kate Saenko and Pengchuan Zhang and Christoph Feichtenhofer},year{2025},eprint{2511.16719},archivePrefix{arXiv},primaryClass{cs.CV},url{https://arxiv.org/abs/2511.16719},}

更多文章