Key Metrics
  • 推論延遲低於 10ms,滿足每秒 120 幀的高速產線即時檢測需求
  • 瑕疵檢測準確率達 99.2%,誤報率控制在 0.3% 以下,優於資深品管人員表現
  • 模型壓縮至 198KB,成功部署於 ARM Cortex-M7 微控制器(512KB Flash / 256KB SRAM)
  • 單一產線年度品質成本降低約 NT$1,200 萬,投資回收期 4.5 個月

一、挑戰:產線品質管控的即時性需求

在高速自動化產線中,品質檢測的核心矛盾在於「速度」與「精度」的兩難。傳統的機器視覺系統——基於規則的影像處理演算法——雖然速度夠快,但面對複雜的瑕疵類型(表面刮痕、色差異常、微觀裂紋)時準確率往往不足。而基於深度學習的瑕疵檢測模型雖然準確率高,卻通常需要 GPU 級的運算資源,導致推論延遲過高、單位部署成本過大,難以在每個檢測站點普及。

我們的客戶是一家精密電子元件製造商,其產線速度為每秒 120 件產品通過檢測站。這意味著每件產品的檢測時間窗口僅有 8.3ms。既有的人工目檢覆蓋率僅達 15%(抽檢),且受限於人員疲勞,漏檢率在輪班後期明顯攀升。客戶曾評估將 GPU 伺服器架設於產線旁,但單一檢測站的硬體成本即超過 NT$50 萬,加上散熱與維護需求,無法在全廠 40 個檢測站點全面部署。

客戶的需求極為明確:在不超過 NT$3,000 的硬體成本限制下,實現每件產品 100% 全檢,推論延遲低於 10ms,且準確率至少達到 99%。這將檢測模型的部署目標鎖定在 ARM Cortex-M 系列微控制器上——一個記憶體僅數百 KB 的極端受限環境。

二、技術方案:TinyML 瑕疵偵測架構

將深度學習模型部署於微控制器——即所謂的 TinyML——是近年來邊緣 AI 領域最具挑戰性的研究方向之一。Lin 等人在 NeurIPS 2020 發表的 MCUNet[1]開創性地展示了在記憶體僅 256KB 的微控制器上運行 ImageNet 級別神經網路的可能性,其核心創新在於同時搜尋最佳的網路架構與推論排程。

2.1 資料集建構與標註策略

高品質的瑕疵檢測始於高品質的訓練資料。Bergmann 等人發表的 MVTec AD 資料集[6]是工業瑕疵檢測領域的標準基準,涵蓋了 15 種不同類別的工業產品與對應的瑕疵樣本。我們以此為方法論參考,為客戶建構了專屬的產品瑕疵資料集。

在為期三週的資料採集階段,我們在客戶產線上安裝了高速工業相機,以每秒 200 幀的速率連續拍攝了超過 500 萬張產品影像。透過與品管團隊的密切合作,我們定義了 12 種瑕疵類型,並建立了三層標註流程:初級標註員標記疑似瑕疵區域、資深品管人員確認瑕疵分類、演算法工程師驗證標註品質。最終有效資料集包含 42,000 張標註影像,其中瑕疵樣本佔比約 8%。

2.2 基礎模型選型

針對微控制器的極端記憶體限制,我們以 Howard 等人提出的 MobileNet 架構[3]為基礎起點。MobileNet 的深度可分離卷積(depthwise separable convolution)設計,將標準卷積的計算量降低了 8-9 倍,是目前最適合資源受限環境的卷積架構之一。

然而,標準 MobileNet V1 的最小版本(寬度乘數 0.25)在 ImageNet 上的分類準確率約為 50%,對於工業瑕疵檢測的 99% 準確率要求而言遠遠不夠。因此,我們並非直接使用現有架構,而是結合 MCUNet 的架構搜尋思路,在客戶的瑕疵分類任務上進行了針對性的網路架構搜尋(NAS),搜尋空間約束在目標硬體的記憶體與算力預算之內。

三、模型壓縮流程:從 PyTorch 到 ARM Cortex-M

即使經過架構搜尋,得到的最優模型仍然超出目標硬體的記憶體預算。Han 等人在 ICLR 2016 發表的 Deep Compression[2]提出了「剪枝—量化—霍夫曼編碼」三階段壓縮流水線,為我們提供了系統性的壓縮方法論。

3.1 結構化剪枝

我們首先對訓練完成的模型進行結構化剪枝。與非結構化剪枝(將個別權重歸零)不同,結構化剪枝直接移除整個卷積核或通道,使剪枝後的模型仍然是一個標準的密集神經網路,無需特殊的稀疏計算硬體支援。我們採用基於梯度的重要性評估方法,逐步剪除對最終分類貢獻最小的通道,在模型大小縮減 60% 的情況下,準確率僅降低 0.4%。

3.2 訓練後量化

剪枝後的模型仍使用 32 位元浮點數表示權重與啟動值。Sze 等人在 Proceedings of the IEEE 的綜述中[5]深入分析了各種量化策略對模型效能與硬體效率的影響。我們採用了 INT8 對稱量化策略,將每個權重與啟動值從 32 位元壓縮至 8 位元,模型大小再縮減 4 倍。

量化過程中的關鍵挑戰是校準(calibration)——如何確定每一層的量化範圍(scale 與 zero-point),使量化誤差最小化。我們使用了約 1,000 張代表性影像作為校準資料集,涵蓋所有瑕疵類型與正常產品。經過量化後,模型在驗證集上的準確率損失僅為 0.2%,遠在可接受範圍內。

3.3 部署至 TensorFlow Lite Micro

David 等人在 MLSys 2021 發表的 TensorFlow Lite Micro(TFLM)[7]提供了一個專為微控制器設計的輕量級推論引擎。TFLM 的核心設計原則是零動態記憶體分配——所有推論過程中需要的記憶體在編譯時期即完全確定,這對於沒有作業系統的裸機環境至關重要。

我們將量化後的模型轉換為 TensorFlow Lite FlatBuffer 格式,並整合至客戶的韌體開發環境。最終部署的模型大小為 198KB(含模型權重與推論引擎程式碼),峰值記憶體使用量為 187KB,完全在 ARM Cortex-M7(512KB Flash / 256KB SRAM)的資源預算之內。

四、部署結果

系統在客戶產線上經過為期兩個月的並行測試(AI 檢測結果與人工目檢結果同時記錄、交叉比對)後正式上線。Banbury 等人提出的 MLPerf Tiny 基準測試[4]為我們提供了標準化的效能量測方法論,以下是在生產環境中的實測結果:

五、規模化部署與持續學習機制

5.1 全廠部署策略

基於試點站點的驗證結果,客戶決定在全廠 40 個檢測站點全面部署。我們設計了一套標準化的部署工具鏈:透過 OTA(Over-The-Air)韌體更新機制,可在 15 分鐘內完成單一站點的模型部署或更新,且不影響產線運作。全廠部署在兩週內完成。

5.2 持續學習與模型迭代

工業環境中的瑕疵類型並非一成不變——新的原物料批次、製程參數調整、環境條件變化都可能產生新型態的瑕疵。我們建立了一套「邊緣採集—雲端訓練—邊緣部署」的持續學習閉環:

  1. 邊緣採集:每個檢測站點自動收集低信心度(模型輸出機率介於 0.3-0.7 之間)的影像,標記為待審核樣本。
  2. 雲端標註與再訓練:每週將待審核樣本上傳至雲端平台,由品管人員標註後加入訓練資料集。模型每兩週進行一次增量訓練與壓縮。
  3. OTA 模型更新:經過離線驗證(準確率不低於現有版本)後,透過 OTA 機制將新模型推送至所有站點。

上線六個月以來,模型已經歷 12 次迭代更新,瑕疵類型覆蓋從初始的 12 種擴展至 19 種,準確率從 99.2% 微幅提升至 99.4%。

5.3 經濟效益

全廠部署後的年度效益評估顯示:品質相關成本(含漏檢產品的客訴處理、退貨損失與品管人力)從年度 NT$2,400 萬降至 NT$1,200 萬,降幅 50%。全廠 40 個站點的總硬體投資為 NT$112,000,加上開發與整合費用,整體投資回收期約 4.5 個月。

更重要的是,100% 全檢能力讓客戶得以向其終端客戶提供更嚴格的品質承諾,直接推動了兩筆大型訂單的簽約,合約價值遠超品質系統本身的投資。