VisionMind Agent 图像标注

VisionMind:一个 Agent 图像标注软件

友情提示:个人开发可能不完善,欢迎体验:https://github.com/li554/VisionMind


第一部分:智能化 ------ 让 Agent 替我们操作软件

1.1 用说话代替点菜单

我做了一个对话式 Agent 侧栏,可以直接下指令,比如:

"加载 demo 项目,把 defect 类别里还没标过的图列出来。"

"把当前这张图里面积小于 200 像素的标注删掉。"

"导出一个 YOLO 格式的版本,然后读一下导出结果,确认结构对不对。"

它不是只聊天,而是真的去调软件里的动作:切界面、加载项目、设筛选、改标注、跑导出。侧栏里能看到每次工具调用的过程------调了哪个动作、什么参数、返回了什么。

1.2 意图分析:先给建议,人再决定

自然语言天然含糊。所以除了直接执行,我还加了一层意图分析:把你的话翻译成几条可执行的操作建议,用卡片摆出来,你觉得对就点一下,不对就改一句再说。顶栏常驻一个小悬浮球,提示当前状态和一些快捷入口。

这套做法的思路是"先别让它自己拍板":熟练的人可以直接下指令,不熟的人看着卡片一步步走。

1.3 顺手把 187 个动作都变成了工具

动作体系基于 @action 装饰器:目前整个软件注册了 187 个可调用动作,其中 92 个(scope=agent 的那些)会自动转成 LLM 的工具 schema 暴露出去。

这样做的直接好处是:不用为 Agent 单独维护一套接口。一个功能按规范注册成 action,就同时能被界面调用、被测试脚本调用、被 Agent 调用。写插件的人不用专门考虑"怎么让 AI 用上我"。

1.4 让它读图的方式多几种

只给模型一段文字,它基本靠猜。所以我给了三种读图模式:原图ROI 裁剪 (只看关心的区域,省 token 也少干扰)、标注叠加(把现有标注画上去,问它"这里是不是漏了或标错了")。也支持手动附加图片或文件当上下文。

1.5 有些事让它算,别让它估

"这个缺陷大概多大""这批框是不是偏细长"这类问题,让模型目测不太靠谱。所以配了一个受限环境下的 Python 执行 ,可以用 cv2 / numpy 对当前图片实际算一遍。

从"看起来差不多"变成"算出来是多少",结果的可信度会好一些。

1.6 工具给太多,它反而会瞎找

这是踩过坑才意识到的:把 92 个工具一股脑塞给模型,它常常在工具列表里翻来翻去,决策变慢、token 涨、还容易挑错工具。

后来我改成按需裁剪工具面:按当前所在界面、按指令里的关键词命中的分类、按工具跟指令的相关性排序,先把最可能用上的那十几个摆出来;被裁掉的不是消失------还能被检索、被激活,下一轮再回到台面上。

1.7 AI 辅助标注:示例、文本、模型三条路

这可能是"智能化"里最实用的一块。三种模式,都可以对当前图或全部图片批量执行:

  • 基于示例 :在当前图上把某个已保存的标注设为示例 ,它就进了这个项目的示例库(放在项目内的 support_sets 目录,跟着项目走)。之后让模型照着示例把其余的图标一遍,人只做审核和修边。
  • 基于文本:SAM3 短语描述要找的目标,存进项目级提示词库,下个批次复用。
  • 基于模型:YOLOv8 / YOLOE 这类检测模型直接推理;训练好的权重丢进来就能注册成可用模型,不用改代码。

外面再挂一层规则过滤:最大保留数量、置信度阈值、面积上下限。模型可以多吐,规则负责把明显不合理的挡在入库之前,少产生一点脏数据。


第二部分:痛点优化 ------ 那些每天都碰到的小麻烦

智能化决定它"有多聪明",这部分决定它"用起来顺不顺"。出发点特别朴素:我自己用的时候,哪里烦就改哪里。

2.1 自动聚焦

一张图上百个目标,标注列表也一百多行。以前改一条的流程是:看列表 → 猜位置 → 缩放滚动找 → 没找到 → 再猜。

现在按 ↑ / ↓ 在标注之间跳,画布会自动放大 4 倍并居中到那个对象;改完按一下就是下一个;按 V 键退出聚焦回到全图。

人工审核的时候,对于一些有很多小目标的图片,"找图、找框"花的时间远远比"纠正"多,自动聚焦极大解决了我的痛点。

另外做了一些缩小范围的东西:筛选 (类别、预设尺寸、面积、宽高比、标注状态)和搜图(文件名关键词、支持通配符,搜索结果会叠加当前筛选)。

2.2 副标注对比

这是审核时最实在的一个心结:新模型看着更准,但它万一把原来标好的弄坏了呢?

于是有了副标注 :把另一套标注(新模型跑出来的,或者另一个版本导出的)作为"副标注"加载进来,系统会把它和当前主标注逐条匹配。然后:

  • 匹配上的能直接看差异,采纳到指定的那条主标注 ,或者把副标注追加为主标注
  • 匹配不上的,说明模型多标了、或者人漏标了,一眼能看到;
  • 觉得不对就清掉副标注,主标注完全没动。

它想解决两个场景:模型迭代后的回归对比 ,和人机标注的差异定位


最后提一嘴

这个软件目前还谈不上成熟,一开始可能就没想过做Agent,本来只是想做一个符合我手感的标注软件,让我打标能轻松一点。Agent是后来加的,它不是每次都稳,也不是什么都能做,对于这种工具数量较大的上下文工程我尝试了很多策略。前后推翻重做的设计也不在少数,但仍然有待改进。还有很多想法,受限于软件开发经验不好推进,希望这个软件能更加系统化、规范化,然后自由拓展!!

项目地址https://github.com/li554/VisionMind(PySide6 + QFluentWidgets,SAM / SAM2 / SAM3 / HQ-SAM、YOLOv8 / YOLOE,GPL-3.0)

相关推荐
许我半盏清茶1 小时前
Agent一大痛点:上下文空间不够了怎么办?
agent
weixin_435208162 小时前
pi agent 扩展与 hook 机制浅析
人工智能·agent
是Guava不是瓜娃3 小时前
开源 AI Agent 中台 AgentOne(灵一)---私有部署、数据不出域的企业级 AI 助手
ai·agent·ai agent·skill·agentscope·agent 中台
Flynt4 小时前
Astra 自主跑了 35 小时烧掉 40 亿 token,产出为零:我给 Agent 加了三道闸
python·aigc·agent
山间小僧9 小时前
「AI学习笔记」Agent Memory(二)跨会话记忆:从聊天记录到可演化的长期记忆
aigc·agent·vibecoding
dong_junshuai16 小时前
每天一个开源项目#99 OpenResearch:2.2K星的本地研究Agent工作台
开源·github·agent
花椒技术16 小时前
把 AI 视频接进直播:提前生成、按次生成、持续生成怎么选?
agent·音视频开发
用户80825986668716 小时前
用 LangGraph 重写自己手写的 Agent:框架替你解决了什么,什么它不管
agent
能不能静下心来看16 小时前
从 RAG 到 Agent:跑通两个 Demo 后,我终于分清了这两个词
agent