Skip to content

TM AI+ Classification應用範例 – 電控箱檢測

此文章之範例適用於下列條件:

硬體需求 :

  • Advantech AIR 300 Training server
  • TM Robot (HW 3.0 and above version)
  • 電控箱
  • 偏光片
  • 適當的工作環境
  • 校正板

軟體需求 :

  • Dongle with TM AI license

版本要求:

  • TMflow 軟體版本: 1.88.2200(若是使用以上之版本,需對應相關版本的TM AI+ Training Server )
  • TM AI+ Training Server 2.12.2200(若是使用以上版本,需對應相關的TMflow 軟體版本)

 


電控箱檢測任務說明 #

檢測流程 : #

以電控箱顯示面板進行Pattern matching定位,並將手臂移至檢測區域,依序檢測下列項目

1.電源線上是否裝置濾波磁環

2.線頭是否確實插進插槽

3.螺絲孔是否有螺絲

4.排線方式是否正確


拍攝畫面調整 #

放置電控箱於工作平面中 #

確定工作環境為固定的,將電控箱置於工作平面上,調整拍攝角度,並將光源打開,可換上偏光片,避免反光導致圖像不清楚


移動手臂選取拍攝範圍 #

將手臂移至欲拍攝位置,使用控制器控制手臂移動,並透過Vision觀察欲檢測物是否在可視範圍內


拍攝畫面及參數調整 #

確定要檢測的視野範圍,放置一塊校正版,開啟光源(建議使用偏光片,避免反光導至拍攝不清楚),調整相機參數


如何選取ROI與收圖 #

收圖說明 #

進行AI Classification時,並非將整個畫面均收圖,必須針對欲偵測範圍內的特徵進行選取,以下分別示範下列檢測內容如何選取ROI及選擇應收取的圖片

  • 是否有裝設電磁環
    • 有裝設電磁環為OK
    • 無裝設電磁環為NG
  • 插件是否確實插入
    • 有確實插入為OK
    • 無確實插入或是未插入為NG
  • 螺絲孔是否有鎖附螺絲
    • 鎖附螺絲為OK
    • 未鎖附螺絲為NG
  • 排線有沒有接通正確
    • 排線接通且正確為OK
    • 排線未接通為NG
    • 排線交錯接通為CROSS

收圖說明-是否有裝設電磁環 #

先將電池環附上,由於電磁環附於電源線上,會有一定的移動範圍,針對電磁環進行框選框選時,必須盡可能考量電磁環的移動可能,參考如下圖


收集OK的情況時,必須考量電磁環移動的各種可能性,所以可以試著多移動電磁環,以製造電磁環出現的各種可能,為了確保有足夠的資訊,建議收取30張左右的圖片,示範如下


收集NG的情況時,必須考量電源線的各種可能性,所以可以試著多製造電源線出現的各種可能,為了確保有足夠的資訊,建議收取30張左右的圖片,示範如下


收圖說明-插件是否確實插入 #

由於插件位置固定,插件畫面須於ROI畫面中佔絕大部分,以此避免受到背景因素而影響AI判斷


收集OK的情形時,由於插件變化不大,可以試著改變線頭的角度,建議收取30張左右的圖片,或是改變環境光源以適應各種環境變化,如若要改變環境光源,建議多收取一些圖片以增加資訊給AI學習


收集NG的情形時,須多收取未完全插入的可能性,以防止AI將幾乎插進去與完全插進去的可能搞混,同時完全沒有插入的可能也要考量進去,建議收取30張左右的圖片

 


收圖說明-螺絲孔是否有螺絲_上拍電控箱 #

框選螺絲孔時,孔位也須於ROI中佔一半以上,考量到拍攝螺絲有多種角度或是光線問題,框選範圍也不能過於狹窄,才能應付不同的情形


由於螺絲鎖附螺絲的狀態不會有太多的變化,加上背景多為金屬版面,所以我們可以製造額外的光源,以此增加各種環境變化的資訊

 


以下示範收取OK的情形,建議收取30張左右的圖,可以發現每張圖均受不同的光影響

 


收取NG時,同樣可以參考與收取OK情形的方式,也同樣建議收取30張左右的圖片,並且考量不同光源影響


收圖說明-螺絲孔是否有螺絲_側拍電控箱 #

拍完上方螺絲後,我們接著移動手臂至電控箱側面,檢測側面電控箱螺絲是否鎖附,由於側面拍攝會有各式各樣的變化,一樣可以額外製造光源來模擬變化情形


螺絲孔一樣需要佔ROI範圍的一半以上,且螺絲孔盡量在ROI中間,以防反光導至AI資訊誤判


同樣在收取OK的情形,可以考量不同的光源,為了使得AI能夠判斷更多螺絲孔是否鎖附螺絲,可以將上拍電控箱的情形加入此情況一起進行訓練,建議收取30張左右的圖,配合上電控箱的情形,以此應對各種情形


而在收取NG的情形,一樣可以將上拍電控箱的情形加入此情況一起進行訓練,建議收取30張左右的圖,配合上電控箱的情形,以此應對各種情形


收圖說明排線有沒有接通正確 #

此次任務目的為確認排線是否確實插入以及插入正確位置,不能有錯插或是未插入的情形,整個排線也須佔ROI的絕大部分範圍,盡量不要有多餘的背景,而影響AI判斷,我們將排線分成三種情形進行收圖

  • 一一對應,線交疊也接受,視為OK
  • 線頭確實插入,但是插錯洞,視為CROSS
  • 線頭未確實插入,視為NG

 


收圖說明排線有沒有接通正確_OK情形

一一對應,線交疊也接受,確定線頭確實插入,製造一些開闔的情形,也製造線頭交疊,約收集30張左右,以下均視為OK的情形


收圖說明排線有沒有接通正確_CROSS情形

線頭確實插入,但是插錯洞,收取兩條線交錯,三條線交錯,四條線交錯的情形,盡可能考量所有排列組合,上述情形均收取2至3張圖,所以總共約收取30張左右


收圖說明排線有沒有接通正確_NG情形

線頭未確實插入,收取可能有四條未插,三條未插,兩條未插,甚至全部未插的情形,收取約30張左右的圖

 


收圖說明-存圖方式 #

存取圖片分兩大項(詳細存圖說明可以參閱說明書)

  1. 在AI Classification儲存ROI圖
    • TM AI+ Training Server Dataset
    • TM SSD外部硬碟2
  2. 用Vision Job 執行時儲存Source圖
    • TM SSD 外部硬碟
    • Network Service
    • Save Image Component

當選擇第二項方式儲存Source圖,可於2.12 Training Server 的Dataset中Crop ROI


開啟Source圖片


Crop ROI,Crop後的ROI會被標記為unlabeled


TM AI+訓練模型並將AI模型匯入手臂測試 #

TM AI+操作 #

分別將上述檢測流程之圖片存成一個為OK的資料集,另一個為NG的資料集,示意如下

 


TM AI+ 建立於公司內部服務器上。 任何可以連接到公司內網的設備都可以透過瀏覽器使用TM AI+,對於操作的系統沒有任何限制,本篇文章使用TM AI+ Training Server 2.12.2200作為示範


這是Dataset的管理畫面,可以在此匯入我們的資料集


建立Classification的資料集


點擊編輯,建立資料集


建立Label及上傳對應的資料集


這是Project的管理畫面,可以在此建立我們的專案


新增Project,命名並選擇Classification


依照任務情境選擇適合的模型以及資料集


調整完參數後,開始訓練模型


訓練完成後,可以透過summary查看訓練模型的效果,並透過Heatmap進行分析,判斷AI所學習到的資訊,是否為我們所要比較的特徵,接著本文會分別分析各個檢測結果並進行分析


TM AI+-是否有裝設電磁環 #

觀察Training Progress,其每次訓練的Accuracy幾乎都在百分之百,表示檢測電磁環的模型是比較穩定的


藉由Heatmap可以發現AI都有偵測到線上的電磁環,表示AI學習的特徵為合理的特徵,將此模型匯入手臂進行測試,測試下來均能穩定判別點磁環的有無

之後切換到另一台手臂及環境測試,也均能穩定判別,模型無須更動


TM AI+-插件是否確實插入 #

觀察training progress,其多次訓練的Accuracy在百分之百,表示檢測插件是否確實插入的模型是比較穩定的


藉由Heatmap發現AI學習的特徵聚焦在上方的小黑孔上,若是未確實插入,上方的黑孔會特別明顯,而被判定為NG,其結果如我們預期,NG情形的Heatmap也關注在上方的黑孔是否過於明顯,或是插件完全脫落,將模型匯入手臂後,也能順利運行各種情況

 


之後切換到另一台手臂及環境測試,發現完全脫落的情形容易被判定為OK,猜測為光源的變化導致接線拍攝不明顯,誤將線頭平放在插座上方的情形誤判,所以在此環境下,又增加了20張左右的NG情形,同時也增加20張左右的OK情形適應環境變化


TM AI+-螺絲孔是否有螺絲_上拍電控箱 #

觀察training progress,其訓練的Accuracy多為在百分之百,表示上拍電控箱情形下檢測螺絲孔是否有螺絲的模型是穩定的


藉由Heatmap可以發現無論在何種光源下,AI都能學習到孔洞上是否有螺絲這個特徵,將模型匯入手臂後,測試也很穩定

之後切換到另一台手臂及環境測試,也均能穩定判別,模型無須更動


TM AI+-螺絲孔是否有螺絲_側拍電控箱 #

觀察training progress,其訓練的Accuracy也多為在百分之百,表示側拍電控箱情形下檢測螺絲孔是否有螺絲的模型也算是穩定的


 

  • 觀察Heatmap,AI所關注的特徵也確實有在螺絲孔是否有螺絲上,但是將模型其匯入手臂進行測試時,有些角度的螺絲孔容易受框選的ROI影響而辨識錯誤,表示此模型不夠穩定,資料量也不夠多
  • 建議將上拍螺絲的圖一起考慮進去,進行訓練,以此獲得相對穩定的模型,也可以結合以往關於螺絲鎖附的資料,就能訓練出比較穩健的模型,如此一來,此模型就能運用在此電控箱上的多數螺絲孔位上
  • 考量較多資料所訓練出來的模型,在切換手臂及環境後,也能穩定的判斷螺絲孔是否有螺絲

TM AI+-排線有沒有接通正確 #

以上述收圖方式進行第一次訓練,training progress較前面的幾種情形不穩定一些


觀察Heatmap,無法確定OK有交疊之情形與CROSS的情形是否有被AI學習出來,需要匯入手臂進行實際的測試


1.匯入手臂進行測試之後,可以發現CROSS下的兩條線交錯容易判定為OK,三條線及四條線交錯的則沒有問題

2.而NG情形下,線並排未插入也容易被判定為NG

3.OK情形下,若是存在交疊也容易判為CROSS


將誤判的情形進行收圖約20張左右,重新訓練後,依舊未能改善問題,甚至未能收斂出較正確的結果


所以我們將模型選擇由Regular改為Ultra進行訓練,進行資料增量,以及些微的參數調整,使其考量更多的變化


1.Epochs由30加到100,使其有機會找到收斂的結果

2.Batch Size由設定的小一些,使其同時不會看太多可能性,而導致無法收斂

3.Learning Rate微調低一些,使其較有機會走到較低的Loss


調整後的training progress有找到較低的Loss,也出現一些百分之百的Accuracy,但是還不能確定訓練出來的模型為合理的


再將此模型匯入手臂測試,改善了以下問題

  • NG的情形不會再誤判為OK
  • CROSS的情形不會再誤判為OK

OK情形下,若是帶有交疊的問題,依舊無法辨識出來

建議將OK若是有交疊的情形當作是CROSS,當檢測出來為CROSS依舊需要檢驗人員進行調整

因此將問題改分類為下列情形 :

  • 一一對應,線需要條條分明,視為OK
  • 線頭確實插入,但是交錯或是出現節點視為CROSS
  • 線頭未確實插入,視為NG

重新調整分類的情形後,進行模型訓練,並觀察Heatmap,發現AI能正確學習出線與線交錯所導致的節點,以及未確實插入而露出洞口的情形

最後匯入手臂以及改變環境進行測試,均能穩定運行

 


Tip #

  • 收圖時可以先收30張左右進行訓練,接著匯入手臂測試,如遇判定錯誤之情形,可將錯誤情形再收取20張進行測試
  • 模型訓練結果不理想,可以改用Ultra模型進行訓練,並適當調整augmentation,考量物體可能有對稱,或是縮放的情形
  • 模型訓練不穩定,可以將Epoch增加至50至100,使其有機會找到收斂的結果,Learning可以調降至0.00008左右,使其有機會找到較低的Loss

Powered by BetterDocs