應用案例
用AI訓練模型+AOI視覺系統,辨識飲料罐身瑕疵(下)
Feb 06th, 2023
返回列表

這個事例的上一篇文章,我們介紹了Sherlock如何收集影像數據,這篇將介紹AI軟體Astrocyte如何訓練AI模型。

訓練AI模型:用Astrocyte快速設定模型參數

Astrocyte是一個深度學習的軟體介面,讓使用者不寫程式也能訓練AI模型。它支持最常見的模型架構,並允許使用者調整模型訓練的過程,包括調整訓練影像的尺寸、超參數、以及在訓練時套用資料增強。模型訓練是一個反覆試誤的過程,可能受到影像特徵、缺陷分類、GPU硬件參數等各種因素影響。調整參數沒有明確的規則可循。

★設定參數的小訣竅

■  最大限度利用GPU記憶體;比如選擇最大的影像尺寸和批次,以充分運用GPU。
■  善用資料增強技術。如果影像可以自由旋轉,不妨設定正負180度的隨機旋轉產生影像。
■  開始訓練時,先設定較低的學習率。
■  F1分數是AI學習用於分類模型的評估指標。訓練期的F1分數能夠呈現一個模型的最大準確度,但在實際生產中準確度可能會下降。如果訓練期的F1分數低於產線要求的精確度,就表示實際部署之前需要持續優化、訓練模型。 

資料來源 : Teledyne DALSA_Application Note_AI Classification of Beverage Cans 

在這個案例中,我們使用Nvidia A1000 GPU和4GB顯示記憶體的PC進行demo。我們先把數據集的解析度設定為1600x1600,但由於GPU內存限制,導致無法以完整的影像檔案進行訓練。經過實驗後,512x512的影像尺寸能夠在合理的訓練時間內,取得準確度跟性能的最佳平衡。這些能夠在Astrocyte中調整的設定與參數,就是模型的超參數。

工作模型使用的是resnet18架構搭配Adam優化器。一組最佳化的超參數大約需時半天進行實驗和訓練,每個訓練週期設定為20分鐘左右。 




資料來源 : Teledyne DALSA_Application Note_AI Classification of Beverage Cans 

測試AI模型

Astrocyte可在不同的數據集上測試AI模型。我們以獨立的驗證數據集測試,以確認模型有沒有跟訓練數據集過度擬合(overfit)、能否應用到新影像上。

它可以輸出一個混淆矩陣,顯示出已測試的樣本數,以及和標記的正確數據相比,AI模型正確預測了多少樣本。我們使用驗證集測試AI模型,雖然它有達到訓練準確性、f1、精準度和召回率的要求(100%),但在測試剛開始時,卻無法呈現應有的準確度。




資料來源 : Teledyne DALSA_Application Note_AI Classification of Beverage Cans 

經過幾次調整超參數跟重新訓練之後,模型在驗證集上運行良好。接著我們把它輸出到一個.MOD文件,讓Sherlock使用這個模型進行推理。 



資料來源 : Teledyne DALSA_Application Note_AI Classification of Beverage Cans 

使用Sherlock部署模型

Sherlock有一個外掛程式,能讓我們以Astrocyte開發的模型運行 AI 模型推理。我們用這個外掛做了一個簡單的程式擷取影像、進行推理並輸出結果。這個程式以MODBUS(一種常見的工業協議)把結果傳送給PLC,讓PLC在罐頭進入填充站之前,就能判斷是否讓罐頭通過、或從產線上移除。




資料來源 : Teledyne DALSA_Application Note_AI Classification of Beverage Cans 

當相機影像被傳送到AI模型時,不用另外把影像尺寸重新調整成訓練時的大小(512x512),Sherlock會自動處理影像。我們已經在罐頭周圍創建了一個感興趣的區域(ROI),並加入AI分類演算法,接著只要把算法指向.MOD 模型文件的目錄,Sherlock 就會自動初始化並運行模型。




資料來源 : Teledyne DALSA_Application Note_AI Classification of Beverage Cans 

在初始化和warmup訓練後,以中階GPU硬體規格跑模型的推理時間約為 10-12 毫秒,演算法會輸出類別和可信度分數。接著,利用Sherlock內建的容錯功能加入程式,就能把模型輸出的數據轉譯為檢驗結果「通過-未通過」。




資料來源 : Teledyne DALSA_Application Note_AI Classification of Beverage Cans 

我們把Sherlock的判讀結果與負責剔除產線瑕疵品的Modbus PLC連接,讓檢測結果直接寫入PLC。Sherlock可以輕鬆加入Modbus Master或Slave連接,定義連接屬性,並且加入程式運行判定完成後的下一步動作。

資料來源 : Teledyne DALSA_Application Note_AI Classification of Beverage Cans 

現在,用AI分類演算法運作的罐頭檢測站已可投入產線。不管罐頭是否潮濕或乾燥,都能準確被歸類到正常或瑕疵類別。這個模型在產線運行也非常穩定,即使相機位置、焦點和照明發生微小變化,仍可保持準確度。使用AI讓我們能快速解決傳統視覺工具無法解決的視覺挑戰。

資料來源 : Teledyne DALSA_Application Note_AI Classification of Beverage Cans 

看完上集和下集從Sherlock如何收集影像數據,到AI軟體Astrocyte如何訓練AI模型的詳盡介紹,是否對整體AI系統運作有著更具體的想像了呢,如欲初步評估及測試自家產品是否適合導入AI系統,歡迎諮詢霖思科技。