走廊上傳來「您未戴口罩」的聲音,轉頭一看,聲音來自一台測溫攝影機,這是生活中常見的機器,在疫情之前,像這樣的機器視覺對很多人可能還很陌生,因為疫情,機器視覺產品成為各單位必備品。
在製造業,機器視覺已經有越來越多廠商用在製程中。在過去一排排作業員檢查產品、整個產線密密麻麻都是員工的畫面,已經越來越不復見,在以滿足終端消費者的個別需求趨勢之下,從大量客製化走向少量多樣的生產,即便是少量生產都要能獲利,而品檢是產線中的重要環節,從過去使用人力檢查,到現在使用機器代替人眼,使用人工智慧代替人腦,且AI/AOI能在各種不同環境下維持相同品質、24小時不停運作,而這樣的投資效益也高且立即可見成效,使用機器視覺來做瑕疵檢測,成為許多製造業者的選擇。
機器視覺的定義
機器視覺(Machine Vision)使用感測視覺儀器進行檢測,是目前製造智慧化發展最快的領域。機器視覺在製造業的應用包括量測、辨識、定位、檢查,這4大項目中又以檢查的應用最高,也就是AOI(Automated Optical Inspection;自動光學檢測)。
維基百科指出,AOI應用層面包括國防、民生、醫療、環保、電力、科技、製造等領域之研發、製造品管,可用以改良傳統上靠人力來進行檢測的缺點,利用光學儀器取得成品的表面狀態,再以電腦影像處理技術來檢出異物或圖案異常等瑕疵,以非接觸式檢查來進行品檢。
機器視覺發展技術演進
最早產品出廠前的品質檢測,完全仰仗人檢,每個人看的標準不同,認定判斷不同,速度也慢,品檢人員也會隨著工作時間增加產生疲勞的問題,容易出錯,更別提當有經驗的老師傅離開後,新人要上手需要一段時間,以及經驗不容易具體表達出來,難以傳承。
聰明的人類開始思索以機器取代人力的方式,在AOI的領域開始發展至今已經有幾十年的時間。1960年起機器視覺開始被定義,1970年起處理影像的技術開始出現,1990年代開始蓬勃發展,朝向3維做視覺處理,自2000年已漸臻成熟,進入影片處理的年代,而現今AOI已經能結合AI,應用在工業製程上。
當視覺檢測的設備出現時,透過動線管理與自動化流程管理,可以以機器取代部分人力來進行檢測。檢測設備搭配傳統的rule based Algorithms做瑕疵檢測,但瑕疵有很多種樣貌,一種演算法不一定適用每一種瑕疵,每一種瑕疵又都各自需要一種特定的演算法,在這情況下,會拉長開發時間,而瑕疵的種類也很有可能會因為進料的不同又產生不同瑕疵,因此原有的演算法也不一定可以套用到新發生的瑕疵中。一旦Rule-based的演算法增加了之後,相對的運算處理速度也會變慢。
此外,AI開發需要從零開始、需要能軟硬體皆懂的優秀的工程師,做大量coding的函示庫,而培養一個自動化控制的工程師也需要很長一段時間,少則五年,多則十年才會成熟,因為要了解機械所有設備,並會做程式運算,且了解機械視覺等等,因此成本相對較高,且開發速度很慢。並且最大的缺點是要到開發完才知道是成功還是失敗,著實不容易。
而相較於傳統視覺,視覺辨識加入深度學習後,軟體跟工具的架構更完整,從檢查、定位、量測、到分類、辨識與OCR的應用,逐漸整合到同一個平台。已經有一些軟體商研發出模組化的AI開發軟體,建立一個評估型的開發環境(如Vision pro),先把圖取像,來做流程的POC,流程OK後再做coding,時間主要是花在介面的整合而非演算;最近幾年更演進成圖像式的流程開發,用圖像來做專案開發,透過不同模組選用來取資源,整合視覺或robot/database/IO/AI,提供更寬廣的架構。
模組化軟體結合工業用相機,也就是將「嵌入式視覺+演算法+影像處理軟體」整合入AI模組相機,軟體(如Vision pro等)提供開發者快速的視覺流程評估概念,從影像進來到視覺結果的產出,提供可視化結果操作介面。因著這樣模組化的方式,現今機器視覺的處理速度比先前更快速。
同時,硬體技術的發展,也是機器視覺能取代人眼辨識的功臣。工業相機在機器視覺跟AOI領域中扮演的角色是最前端的眼睛,需要在最穩定的狀況下,擷取並提供最佳品質的影像,給後方的軟體(大腦的角色)來做分析。
相機的主要功能和核心技術包含:影像擷取、影像傳輸,除了相機的硬體之外,軟體開發工具包SDK也是一個很重要的因素,一個充足的SDK,可以幫助軟體工程師大幅縮減開發的時間,相機在擷取影像後,必須把影像穩定的傳輸到PC,所謂的穩定包括了高速、不掉張、不失真、不被外部影響的傳輸,一般都是在PC上做影像預處理的功能,但有些相機廠商也會在相機上做影像預處理,讓PC端可以有效能去處理其他的功能。
比人工智慧重要的工人智慧 - AI 影像視覺的基礎
- 並非所有機器視覺的檢測皆須要使用到人工智慧,需要視產品瑕疵樣態、產線狀況、經費等因素來考量,目前機器視覺檢測結合人工智慧有幾種方式:
- 半自動測試機台,在放料上去做檢測的這一段,換成設備結合AI功能來取代人力
- 已經有AOI設備,可以外掛一個AI功能,讓既有的設備運作更強大
直接用AI演算法來做,不同的瑕疵可以用同一個模型做判斷,只要良品圖與不良品圖的數量夠多的話,準確度可以比AOI高,速度也更快。可以使用已開發完成的AI模組,只需要透用模組軟體與設備,降低設備門檻、人才門檻,也可以快速上線,降低部署成本。
但使用人工智慧AI要達到較高的成功率,有一些前提須要具備。首先,要了解要檢測甚麼東西、甚麼瑕疵、希望達到的準確率是甚麼。例如金屬表面檢測,在使用傳統視覺應用時,是抓取標拔時做pattern-matching,Pattern-marching可能有塑膠覆蓋、放大縮小、顏色不對、取像模糊等問題,透過演算法來解決,讓產線不停機,追求產能最佳化。但是如果檢測的項目很基本,如在成品中只要出現黃色就是瑕疵,其他地方都是綠色的,是正常的,那在這種情況下只需要用AOI即可進行辨識,並不需要用到AI。
第二,需要考量是否有產品圖庫。如果連圖庫都沒有,那就得先做取像,第一步先架設取像設備如相機,再者調整打光、取向的角度,有些瑕疵可能用肉眼可以判斷,因為人會用手轉不同角度來觀看,但是透過相機卻找不出來,這跟光線與拍攝角度有關,許多要檢測的物品通常都不是平面的,當光進去時如果跟瑕疵同一個角度,無法讓光反射出來,很可能就會看不到瑕疵,需要測試與調整找出一個適合拍攝的角度、正確的打光,才能正確擷取瑕疵的圖像。這也是很多AOI設備目前判斷率低的原因之一,就是打光與取像角度,不一定能適合相機照出可供判斷的圖片。
再者把檢測的東西取像下來後,取像的圖片品質如何、瑕疵是否清楚,是否用一般鏡頭就可以看出來、還是要用顯微鏡才能看出來也需要做判斷。圖像取好後,要把瑕疵做分類與標註,有些產業的成品是缺陷、異色的樣品很多,需要花上很長時間討論樣品缺陷規格、做標記(Label),這部分就用到大量的工人智慧。
人工智慧之前要有工人智慧,要有人做資料前處理、要有人去標記、要有人標記轉換成演算法可以讀的格式,需要做資料分類清洗,才能餵給AI做訓練,很多時後在做POC驗證時會發現結果不好,很有可能是分類沒有做完整。
取像完之後,透過AI訓練,當瑕疵檢測準確度達到一定的標準之後,就可以把模型導入上線,就像是人去學習模型一樣,用新的圖片實際測試它學的結果,AI的上線為inference推論,把訓練好的模型跟AI推論引擎搭配,來做運算。
圖說:AI與AOI傳統程式的運算流程
準確率低往往跟缺陷定義不明、標記定義有問題以及缺陷樣品量不夠大有關。缺陷定義不明與標記定義有問題完完全全取決於工人的智慧,資料的品質不夠好、有人為錯誤或雜訊時、或有太多不相關特徵,資料的規則就不容易找得到,可能無法有好的訓練結果,這時 domain know-how 顯得異常重要。以台灣一家金屬家具製品廠做的品質特徵AI模型來說,蒐集來的參數有超過五十種,但經過判斷之後,最後只需要5種就能訓練出相當好的模型,這就是工人智慧的重要。
此外,雖然說理論上資料越多,訓練的深度學習的模型越準,但餵資料給AI時要求的是平衡,建議要有正常的資料跟瑕疵資料,不能在某種特定類型比較多,這樣訓練出來的結果就會有偏差;另外也需要具有代表性的訓練資料,關鍵的資料如果沒有進去,模型就會有偏差,需要減少取樣偏差。因此資料前處理是成功的關鍵。
而最難解決的就是缺陷樣品不夠多的問題。
當不良品圖庫不夠多時…
很多產業現今自動化與精實管理做得很好,良率都超過九成,導致缺陷樣品過少,很難提供給AI足夠的量來做訓練,以致於訓練出來的AI模型精準度不高。
聰明的資料科學家想出新的做法,反向思考: 如果不良品的數量太少,能不能用良品來做為數據呢?
資料科學家與AI工程師們,先利用良品的照片、即便只有50張都可以先做小型的POC,利用非監督式學習中的anomaly detection異常檢測來訓練模型,告訴程式這些是正常資料,當進行檢測時,提供的的檢測樣品與正常資料不同時,即可判斷出異常,或怪異處,先分類出正常與異常的大類。這時的異常可能還不夠精準,因此再利用這些異常來做標記。
原本做樣品資料的標記是需要花費不少的時間由人力來做,透過利用良品的數據、這種非監督式的學習註,可以進行初步的資料標記,作為標記的自動化工具,判斷正常與異常,再由人力核對,可以省掉80%標記的時間,快速達到AI優化,也可以訓練出非監督式學習的好的模型,做物件檢測之後,可以再來做缺陷分類。
另外,也資料科學家與AI工程師們利用「資料擴增」的技術,將少量的不良品照片,以不同的角度或顏色等方式,複製成更多的不良品資料,創造出更多的數據。
當我們有夠多的不良品的取向數據之後,再使用監督式學習註用以做不良品的物件偵測(object detection),交叉使用這兩種學習模式來互補,非監督式學習找出檢測品怪怪的地方,然後把怪怪問題加以標記與分類後,再用監督式學習來做瑕疵檢測,就可以解決一開始瑕疵照片數據不足的問題,也能加快學習的進程。
當持續餵更多數據進入AI模型之後,不但準確度可以提升,而且當出現新的瑕疵狀況時,可以防漏掉過去沒找到的缺陷樣式,更進一步加入小樣本學習的AI運算(Few-shot learning),或是遷移學習(transfer learning)的演算法來用既有的變數為基礎來做訓練,面對全新的類別,不需要變動已有的模型,就可以完成分類,不需要重頭來過一次瑕疵檢測的整個流程,就能進行訓練,監控因不同製程產生新的瑕疵,快速達成新增的瑕疵檢測。
(備註:非監督式學習無須有被標記的數據,可用於分群分類,找出擁有相同特徵的資料群,判斷是否異常或尋找既定模式,而監督式學習需要有被標記的數據,來用於做更細緻的分類與數值的預測等。)
AOI非AI不可嗎?-可行性評估的重要
AI並非神話,也不需要把AI神化,AI並非萬能,並不需要所有的方案都導入AI。
如果是需要精準定位、精準測量、讀碼等重複精度要求高的檢測項目,或是檢測成品僅需單純判別單一顏色、或單一瑕疵時,或瑕疵不複雜時,使用傳統的AOI + rule based(邏輯學機制) 的演算法就可以達到效果。再者,如果瑕疵檢測工段以高速運行時,就不適用AI。
AI需要另外加裝硬體,需要支出一筆設備費用。也有可能因為持續大量的運算導致設備過熱,得額外購置降溫的器材如冷氣。此外,演算時需要大量影像數據的搬移,硬體如果沒有調適好,速度會變慢。同時,如同我們前面提到的,工人智慧非常重要,需要花費時間進行特徵的標記,因此時間成本與人力成本也得考量進來。
但如果瑕疵檢測的項目是在複雜背景下無規則異類檢查、畸變型態的物體定位、變形字體的OCR時,就可以使用AI來做檢查。而實務上可以使用幾個不同的演算法,沒有哪一個演算法是能解決所有問題的。
其實使用AI的價值在於從AOI蒐集到的數據進行分析歸納後,透過資料傳連傳輸工具,將資料拋到MES或EAP系統,以查出物料、製程等與瑕疵的關聯,找出不良的原因,透過數據回饋來優化整體製程,以增加效能與產能、產品與服務的創新。
|
AOI自動光學檢測 |
AOI+AI人工智慧光學辨識 |
目的性 |
用以收集瑕疵資料 |
用以做資料分析與推論 |
適用性 |
適合尺寸量測、平準化、單一的瑕疵偵測 |
適合多樣性瑕疵檢測、不易判斷之瑕疵,可將資料回饋於製程中進行優化 |
校準/調校時間 |
較短 |
較長,需有來回調整資料的準備心態 |
適用前提 |
適量資料即可進行 |
需有足夠樣本、大量Domain資料與數據提供,需有小規模POC |
準確性 |
不準確率較高 |
準確率較高 |
上線速度 |
3個月起 |
6個月到1年起 |
成本 |
較低 |
較高 |
設備 |
較不受太多空間限制 |
需有適當置放空間,且設備較多、建議需有空調 |
表1: AOI與AI的比較
在現今少量多樣、客製化的生產趨勢下,使用AOI+AI 技術運用在產品生產較為複雜或辨識品質瑕疵的狀況下,能減少人力 /作業負擔、提升出貨品質或縮短出貨速度,並將問題分析之肇因回饋到製程當中進行調整,得以提高良率。
若經評估投資報酬率(ROI)有所效益,茲為一解決瑕疵檢測問題、讓產業有更美麗前景的解決好方案;但使用AI卻也增加了不少費用成本,是否為了跟上潮流、為了AI而AI,或是能減少人力倚賴與提高檢測準確率而用AI,是企業主需要思考的哀愁。
【參考資料】
- 國網中心課程,AI數位學習平台
- 維基百科, 自動光學檢查
- Digitimes, 解決現場導入困境 AI與視覺檢測整合發展潛力無窮
- 康耐視, 運用 AI、機器學習及深度學習進行工業自動化檢測,各有何差異呢?
- CTIMES,AI與機器視覺走向整合 產線品質改善效益明顯
- ITREAD ,表面缺陷檢測:機器視覺檢測技術