前言¶
在 DSH 里做杂草或田间作物的视觉数据集,常见两条路:用独立标注工具把「怎么标」写死在界面里,换物种或换拍摄条件就要改配置甚至改代码;要么全靠对话让模型逐张描述,难以落成可追溯的 Pascal VOC 目录结构。DeepSeek Harness 的插件机制允许把数据契约、存储、可视复核和导出固化在 Host 侧,而把经典 CV、检测器、多模态模型或手工策略留给对话里的 Agent。
下面介绍社区工作流类插件 dsh-weed-annotation-assistant(维护者 destinywalker2025-design):插件只管协议与存档,怎么标注由 Agent 现场决定;侧栏负责看和挑错,不能自行发起标注。
这是什么¶
dsh-weed-annotation-assistant 是面向 DSH 的杂草图像标注协作协议实现:插件持有数据契约、review.json / flags.json 真源、侧栏复核与 anno_export 导出;对话中的 Agent 通过 anno_* 工具建项目、分批出稿、根据人工标记返工。插件不内置任何检测/分割模型,也不内置物种类别——类别完全来自你本地的参考图目录与标签说明文档。
与「又一个全功能标注桌面软件」的区别在于职责拆分:人通过复核面板标记四类错误;AI 读取标记后 anno_commit 修正;干净标签与问题原图在导出时自动分离,避免错标混入训练集。
核心功能¶
输入与输出¶
插件只认本地三样输入(路径由你在对话里指定,anno_open 会校验缺项并报错):
images\ 待标注图片,jpg / png / bmp / webp(必需,平铺在目录下)
refs\ 每个杂草种类一个子文件夹 + 各标签英文名的说明文档(必需)
labeled\ 已有手工标注,Pascal VOC(可选)
导出侧为 Pascal VOC 布局,并附带统计报告:
<导出目录>\
├─ Annotations\ 未被判错的标注(每株杂草一个多边形 + 英文类别名)
├─ JPEGImages\ 全部原图
├─ flagged\ 被人工标错的图(对应 XML 不导出)
└─ report.json 总数、各类数量、错因清单
标注几何与训练注意¶
输出中的几何是 <polygon> 多边形,不是检测框架默认读取的 <bndbox> 矩形框。若直接把 XML 交给只认外接矩形的 YOLOv5/v8 等流程,可能整批被当成背景图且不一定报错。训练前需在训练侧自行转换(例如多边形取外接矩形,或转成分割格式)。这是刻意设计:多边形更贴合叶片轮廓,复核界面也依赖多边形展示。
Agent 工具与唯一写入口¶
| 工具 | 作用摘要 |
|---|---|
anno_open |
校验输入、建项目、确定类别 |
anno_worklist |
按条件取待处理文件 |
anno_commit |
唯一写入口:写入或修正标注 |
anno_review |
进度、类别分布、人工标记聚合 |
anno_export |
三目录导出 + report.json |
anno_baseline |
可选经典 CV 初稿(需 Python 与 opencv) |
anno_commit 单条结果可含 polygon 或 bbox、class、empty、confidence、method 等字段;项目内部以 <out>/review.json 为真源,Annotations/*.xml 由真源派生并可重建。
复核侧栏¶
安装并重启 DSH 后,侧栏出现「标注复核」。该面板不能自己发起标注;须先在对话中让 Agent 建项目并提交标注,存在 review.json 后界面才正常显示缩略图与多边形。控件包括刷新、返工(整理标记供粘贴回对话)、导出,以及四类错误码(类别错、框偏移、漏标、该空)与筛选能力。Agent 提交后界面约在 3 秒内自动刷新。
安装与启用¶
插件面向 DSH 0.2.x(README 记载桌面端 0.2.1 实测、CLI 0.1.0-rc.6 可安装)。需要 Node.js ≥ 20。许可证为 MIT。npm 包当前版本为 1.1.0(见仓库 package.json);安装后依赖记为 ^1.x,补丁版本会自动跟上。插件市场尚未收录,请用命令行安装。
命令行(推荐):
dsh plugin --profile <你的profile> add dsh-weed-annotation-assistant
桌面客户端的 profile 固定为 desktop:
dsh plugin --profile desktop add dsh-weed-annotation-assistant
装完重启 DSH。离线安装可从 GitHub Releases 下载 dsh-weed-annotation-assistant-1.0.1.tgz,再执行:
dsh plugin --profile desktop add <tgz 的绝对路径>
DSH 插件在本机以当前 DSH 进程权限运行,安装前应自行查看仓库源码与许可证,确认符合你的环境与合规要求。
典型用法¶
准备目录¶
示例布局(盘符与路径按本机修改):
D:\data\
├─ images\ 待标注图片
├─ refs\
│ ├─ 稗草1\ 该类样例图
│ ├─ 马齿苋\
│ └─ labels.md 子文件夹与英文标签映射(格式任意,由 Agent 读取)
└─ labeled\ 可选,已有 VOC
标签文档示例:
稗草1 → barnyard_grass
马齿苋 → purslane
Agent 读取后把 {子文件夹: 英文名} 作为 classMap 传给插件。
对话与工具顺序¶
README 给出的协作顺序如下:
你:帮我标注这批图,图片在 D:\data\images,参考图在 D:\data\refs,输出到 D:\data\out
AI:anno_open(images=..., refs=..., out=..., classMap={...})
→ 校验输入、建项目、返回类别与待标数量
AI:anno_worklist(out, filter="unlabeled")
→ 分批取文件(可调 anno_baseline 先出一版初稿)
AI:anno_commit(out, items=[{file, class, polygon, method:"ai"}])
→ 唯一写入口
你:侧栏「标注复核」翻一遍,把错的标红
AI:anno_review(out) → 按四类拿到标记 → anno_commit 修正
你:刷新 → 红框消失
AI:anno_export(out) → 三个目录
典型规模参考(来自 README):单批约 1000~2000 张、每张 1~5 株杂草;参考图每类 3~20 张即可,仅用于 Agent 认类,不参与训练导出。
适用场景与注意¶
适合谁:已在 DSH 中以 Agent 驱动数据准备的团队;需要可换标注算法(基线 CV、检测器、多模态或人工)但希望 VOC 目录、复核与导出规则统一;类别随 refs 更换、不希望改插件代码。
应当知晓的限制:
- 复核页不含多边形绘制工具,漏标等问题需 Agent 重新定位;仍无法解决时,原图留在
flagged/交回人工。 - 插件不提高单张标注精度,只保证流程可追溯、错误可回流、导出时隔离错标。
- 可选
anno_baseline需要 Python 3.10+ 与opencv-python、numpy;不安装也可直接anno_commit。 - 需要 DSH 提供
tools、webServer等服务能力。
结尾¶
dsh-weed-annotation-assistant 把杂草图像标注拆成「Agent 决定怎么标 + 插件守住数据契约与交付形态」,适合在 DSH 工作流里迭代田间视觉数据集。更多说明见仓库 README 与 docs/SPEC.md。
- 社区目录页:https://www.skillhub.cn/plugins/destinywalker2025-design/dsh-weed-annotation-assistant
- 源码与文档:https://github.com/destinywalker2025-design/dsh-weed-annotation-assistant