如果你調過工業視覺檢測的參數,你一定經歷過這種下午:對著一張打光不均的影像,把二值化閾值從 127 調到 131,再調回 129;把形態學的 kernel 從 3×3 換成 5×5;輪廓面積篩選的下限改了八次。每一次調整都要重跑、看圖、再調。這些工作不難,但極度依賴「手感」——而手感沒辦法寫成文件交接。
去年開始,我有了一個念頭:這些手感,LLM 有沒有可能學得會?
不是叫 LLM「看圖說故事」——多模態模型看圖的能力還不足以做精密量測。而是反過來:讓 LLM 當那個「調參數的工程師」,它負責推理該用什麼演算法、參數怎麼調,實際的影像運算交給 OpenCV 執行,結果再回饋給它繼續判斷。LLM 出腦,OpenCV 出力。
30 天內,我會從零開始拆解一個我已經實際做出來的專案:DevTerminal——一個 Hyper Terminal 插件,把終端機變成 VS Code 式的開發者主控台,並且在上面長出一個「AI 機器視覺工作台」。核心架構長這樣:
Claude Code ──MCP (stdio)──▶ vision-sidecar.exe ──寫入──▶ state.json
(.NET 9 + OpenCV) │
▼
DevTerminal VisionPane ◀──chokidar 監看
(Hyper 插件,Electron renderer)
三個行程,各司其職:
state.json,即時把 AI 的每一步處理結果畫在終端機旁邊。中間還藏了一個有趣的協定問題:MCP 沒有 server push,那當 AI 需要人類「框一個 ROI 給我」時怎麼辦?我們用**檔案側信道(file side-channel)**實現了「工具呼叫中途暫停、等待使用者互動、再繼續」——這會是系列中段的重頭戲。
這不是一個「跟著做就會動」的教學系列——更像一份踩坑紀錄。很多設計(檔案側信道、capture-phase 事件監聽、prototype 分類器)都是撞牆之後的產物,我會連撞牆的過程一起寫。
明天從最底層開始:Hyper Terminal 的插件機制,以及為什麼我選它而不是自己刻一個 Electron app。
我們 Day 2 見。
| Day | 標題 |
|---|---|
| 1 | 為什麼要讓 LLM 當視覺工程師?——系列開賽與架構總覽 |
| 2 | Hyper Terminal 插件機制:在 Electron renderer 裡動手術 |
| 3 | 三欄式佈局:Sidebar / Editor / Terminal,與 inline style 的戰爭 |
| 4 | 檔案樹與輕量編輯器:textarea + highlight.js overlay 的取巧做法 |
| 5 | 與 PTY 對話:ipcRenderer 寫入路徑與 CWD 偵測(OSC 7) |
| 6 | xterm.js 吃掉了我的 onClick:capture-phase 事件監聽的救贖 |
| Day | 標題 |
|---|---|
| 7 | MCP 是什麼?Model Context Protocol 十分鐘入門 |
| 8 | 用 .NET 9 寫 MCP server:ModelContextProtocol SDK + OpenCvSharp |
| 9 | 三個行程的約定:VariableStore 與 state.json 檔案協定 |
| 10 | 第一批工具上線:load_image、灰階、濾波家族 |
| 11 | 閾值四天王:Otsu / Adaptive / Triangle / HSV Range |
| 12 | 形態學與邊緣偵測:erode、dilate、Canny、Sobel |
| 13 | 輪廓分析:find_contours 與面積/圓度/長寬比篩選 |
| 14 | 找東西的三種方法:模板比對、Hu 矩、ORB 特徵匹配 |
| Day | 標題 |
|---|---|
| 15 | VisionPane:用 chokidar 即時直播 AI 的每一步處理 |
| 16 | MCP 沒有 server push:互動式工具的協定難題 |
| 17 | 檔案側信道:correlationId、atomic write 與輪詢設計 |
| 18 | 讓 AI 請人類幫忙:ROI 框選與點選原語 |
| 19 | 滑桿即時預覽:live value channel 與 80ms throttle |
| 20 | Session 持久化:把整個工作狀態存起來再復原 |
| Day | 標題 |
|---|---|
| 21 | 環形碼是什麼?一個真實的工業字元辨識需求 |
| 22 | 原型餘弦分類器:不用梯度下降的「訓練」 |
| 23 | ONNX Runtime in C#:MobileNetV4 backbone 推論 |
| 24 | 用 MCP 收集訓練樣本:AI 主導的資料標註工作流 |
| 25 | GF(16) 有限體與同位驗證:環形碼的錯誤偵測 |
| 26 | 純 C# 微調:TorchSharp + ArcFace 訓練管線 |
| 27 | 驗收:validate_classifier、混淆矩陣與準確率 |
| Day | 標題 |
|---|---|
| 28 | 同一套架構接上 HALCON:商用視覺庫的 MCP sidecar |
| 29 | 完整實戰:讓 Claude Code 從零完成一次檢測任務(全程實錄) |
| 30 | 總結:給 LLM 用的工具該怎麼設計?30 天的心得與未來方向 |