前言¶
在 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