表面瑕疵、缺陷檢查品判別之光學外觀檢查機設計方法
1.概念
在發展、設計壹套高速外觀缺陷檢查站時,應用攝影機與個人電腦技術的機器視覺系統(Machine Vision)常扮演最重要的角色之一,主要的因素乃因為,比起人的眼睛檢視與判斷,電腦視覺系統可同時具備高精確性、重現性與高速度等諸多優點。換句話說,在講究提昇產品良率、降低生產成本的自動化製程中,機器視覺系統幾乎變成整個自動檢測設備裡,不可或缺的重要單元。底下,我們將說明如何結合最新線性攝影機的特殊進像方式,建立整合物件外觀瑕疵或缺陷的光學檢測系統。事實上,這類型的光學檢查機,在許多不同的產業或製程中,已經被普遍延伸、應用於品質的改善與良率的提高。
2.系統規劃
★ 影像取得:
擷取後之影像,必須包含足夠的資訊。通常,取像的基本裝置分別為適當的輔助光源、光學鏡頭、壹部或多部CCD攝影機及影像卡。取得之數位化影像,則儲存在特殊的高速的記憶體中(Multiported),又稱之為影像緩衝區(fame buffer)。
★ 雜訊去除:
採用必要的前處理作業,降低或補償上述圖像擷取進行中,所可能造成的失真。譬如鏡頭搭配攝影機產生的幾何失真,亦或者是輔助光源所引起的不均勻現像等不良的結果影像。
★ 影像加強:
利用適當的前處理方法,去除雜訊,同時強化某些重要資訊或影像的特徵。例如,使用垂直或水平方向的邊緣強化器(Enhancement),增加個別影像上特定邊緣的灰階強度(the magnitude of intensity),進而便於後續尋邊作業與位置偵測。
★ 特徵抓取:
具體的範例,包括缺陷的位置與大小面績的計測、邊綠的位置、物件的顏色及待測物的方向性。這項工作,也是影像處理(Imaging Processing)與視覺系統(Machine Vision)兩者之間最大的不同之處。一般而言,影像處理作業僅負責或進行到改變及加強影像的特徵,而機器視覺系統則更進一步,擷取或萃取必要的資料或數據(Data)。
★ 數值分類、統計:
將上述取得之諸多特徵值或數據,加以分類及統計分析。例如,區分從同一待測物件中所得到的多個邊緣,或者是經過最後的特數值分類與數據比較,再移除不必要的雜訊等。
★ 決策進行:
機器視覺系統偵測並計算得知待測物件的正確位置之後,再通知機械手臂移至該處或座標進行下一個動作。大多數的視覺機,則直接判別並回覆判讀結果—-良品或不良品。決策模式的建立,大致上可分二值化門檻(thresholds)、統計分類法及類神經法則(neural net)。
3.機器視覺的作業程序
數位化後之影像,必須經由特殊的數位計算機加以處理,亦或者,現階段,大多採用泛用型的處理器,例如個人電腦。底下我們介紹視覺系統中,兩種比較具體的作業程序。
首先,利用影像處理方法,將原始影像轉化成另一張清楚影像。在機器視覺應用裡,我們經常使用影像處理作業,來進行加強或萃取影像上某些特定的重要特徵(features),譬如物件的邊緣。所謂特徵,廣義的說法,是指待測件或影像上的組成要件或屬性,可能包括顏色(color)、灰階度或亮度(intensity)、表面紋理(texture)及邊緣等。
緊接著,藉由影像分析作業,進而從影像中得到各種量測值,例如物體尺寸大小與位置座標。譬如說,為了深入了解、解析空氣〝濾網〞的實際效率,或在個別工作環境,空氣中所存在顆粒種類,常常必須利用影像分析,加以判讀濾網上所擷取的粒體的尺寸大小與形狀等幾何參數。在許多製程或生產線上,經常應用機器視覺系統量測物件的外觀色澤、外形尺寸及兩個或多個邊緣之間的寬度,進行判定產品的好與壞,篩選不良的物品。
高速(speed)、精確性(precision)與重視性(reliability),是一般機器視覺系統的三個主要優點與特色。因此,期望或要求人能在1 秒以內,以眼睛觀察並對某個物件做出幾個測量分析,似乎比登天還難。反之,大多數的電腦視覺機器,卻能在1 秒以內,對同一個測物件瞬間進行並完成幾百個,甚至幾千個運算、量測及分析作業,做出正確的判斷與最後的決策。單憑藉〝眼睛〞人類的能力極限,並不足以對外在事物做出正確的測量,而必須借助於其它工具,如量規或制具,但是縱然如此,其計算的結果,仍舊比不上視覺系統所能達到的高精確度與重視性。更何況特別是針對從事重覆性的品管檢驗作業,一般人更容易產生疲倦感、怠工,以致漸漸失去工作興趣。另一方面,任何視覺系統機器或設備,不僅可以每天24 小時,每週7 天,1 年365 天持續工作,更不會對雇主產生抱怨。簡言之,若你的製程檢驗作業符合下列幾項條件時,考慮採用機器視覺設備加以改進速度、改善品質、提高產能應該是正確的解決途徑:
Ø 高速生產製程
Ø 定義清楚、目標明確(缺陷在那裡?如何區分好不好?)
Ø 精確度
Ø 重現性
4.系統規劃
建立或架設壹整套機器視覺系統,可能牽涉的幾個主要單元或作業,包括高速運算、模組化的視覺子系統(sub-system),並將之整合、結合其它可程式化,圖控式的工具軟體。為了更簡化這些系統整合工作,縮短開發時間,在正式進入計劃執行之前,我們必須先澄清兩個基本的疑問,亦即〝怎麼做?〞(What to do?)及〝如何做?(How to do?)。
★ 做什麼?(What to do?)
不可否認的一個事實,許多人一談到自動化製程便開始聯想到電腦視覺檢測方法與設備,或寄以無窮的期待與厚望,現實的情況當然與想像之中有不同程度的落差。也就是說當我們開始思考利用或整合開發壹套機器視覺設備,期求藉助它來提昇自動化製程的同時,首先面臨的問題,便是要能明確地指出到底你希望視覺系統能幫你做什麼?是應用它來進行量測作業嗎?如果是,那你需要的測量精度及重視性是多少?或者,你想透過這部視覺檢查機,能找尋產品外觀上某些污點或瑕疵?同樣地,你是否能清楚地定義出這些可能的污點及瑕疵的特徵與類別?雖然,參考或諮詢相關品管及線上品檢人員,平常如何以肉眼區分產品好與壞,或依照某種特定的檢驗流程,來做為建立壹套視覺系統的重要依據,或多或少都有助益及參考價值,但我們仍然不能寄望於電腦視覺機器,能如同人類一般具備高度智慧、累積經驗與相當彈性化的思維邏輯,甚至,有許多人類可能〝一眼看出〞的物件或某些重要特徵,卻是機器視覺系統或裝置,所視而不見的所在。
舉個實際的案例來說明上述的情況,幾年以前在某位客戶的委製之下,開發完成壹套專門檢查IC封裝的視覺系統。這部視覺檢查機的主要功能,乃是取代傳統式用人工方法檢視,所可能導致許多不良品流出市場的嚴重後果。
開始時,系統人員先行參考該公司內部所提供的品管手冊,做為著手進行客製化機器視覺系統開發〝做什麼?〞(What to do?)的依據與準則。手冊上,不止詳細了各種封裝之後,接著劑所可能造成的裂縫或缺陷情況,例如烙痕、缺損、彎腳、缺腳等檢驗項目,也說明每項缺失所能允許的最低門檻數值。
當系統完成實際上線測試後,其整體的表現,大致都符合客戶的要求與滿意度,直到該客戶手中拿出另一種未曾測試過的新產品,這種新推出的元件與原來的產品比較,在同一部視覺檢查機的取樣之下,完全具備截然不同的表面反射性與紋條,以致於系統失去準頭,誤判率大幅出現。但在相同情況裡,對擁有高度彈性化的品管作業員來說,卻完全不受影響,而仍然可以加以區隔或檢視之。
類似於上面所提及的個案,突然改換產品的型態,或是判別出出現機率僅及於幾百萬分之一的缺陷原因,例如油墨污點並不涵蓋在事前雙方所認知的檢驗規格內,因而事後,據此認定為機器視覺系統本身的缺失或功能不足之處,似乎不盡公平。相信不少人有這種看法,同樣的爭議與故事,似乎也在系統商與委製客戶之間,不斷地上演,然而,這樣的論述與觀點卻無法令人接受,甚至,也不盡然可以客觀且持平地,了解機器視覺系統的功能與全貌!
至少從這個案例及經驗中,我們可以記取兩個值得學習寶貴的的教訓,一者就是千萬不要誤認為凡是人類可以做到的,機器視覺系統皆可以取而代之。比起現今全世界最強、最完善的電腦視覺機器,〝人〞仍舊是具備更高彈性化與適應度的檢視〝設備〞,縱然這種〝設備〞的速度較慢,且又缺少精確度。所以,清楚定位,讓視覺系統從事它本身所最善長、專精的檢測工作,例如需求高速運轉的製程、要求高精確度的測量,以及反覆式的分析與檢測作業,至於,其它有賴於眼睛檢視或判別的複雜且多變的作業,就完全交給〝人〞去執行吧。
再來,你亦必須完全掌握知道到底要做什麼?同時,也讓你的客戶達成彼此的共識。在儘可能的情況下,了解有那些量測作業?目前所有甚至包括可能的將來,所要檢測的產品類別、缺失項目、出現缺陷的位置等重要訊息,如此一來,才能規劃並建立起壹套可以容許客製化製程的機器視覺系統,並成功地上線,達成預期的目標。否則光憑紙上談兵或存入太多假設空間,一旦〝意外〞發生時,不免會讓你大吃一驚!
在這裡探討與規劃的重點,是如何建立起整套的外觀視覺檢查機,用來檢視一般平面顯示裝置(FPDs),包括液晶螢幕面板(LCDs)及電漿顯示螢幕(PDPs),在製造過程中,所可能存在的污點、缺陷的尺寸大小及形狀等缺失項目。
★ 如何做?(How to Do It?)
當我們明確定義好視覺作業做那些工作之後,接下來就是將這項工作,再循序地分成幾個主要步驟或運算法則,最後,再尋求最適當的軟、硬體設備,將個別法則及步驟,加以具體化或執行。
首先要務,就是將人類感觀的參數,譬如好、壞、大、小、太亮或太暗及色彩形容詞,轉化成視覺系統所能認識,並據以進行分析與測量的數字或量化標準。也就是說,以往所謂〝顆粒或污點不能太大〞的說法必須加以量化,更精確地說法,應該是『每個顆粒或污點的大小不得超過2 ㎜的直徑』。有時候,尤於品管人員習慣於利用其它感觀方式來檢視某些缺失,或甚至難以表達缺陷的情況或程度,要作實際的量化處理就會面臨一定的困難度。
緊接著,選擇最佳且有效率的影像處理法則,以便正確地找出這些重要的特徵影像,供後續的測量、分析與判讀。通常,這些影像作業的主要目的,是被用來校正及加強影像的品質,進而處理並萃取其中的特徵資訊。譬如,在上述半導體的封裝案例中,若IC 外觀產生裂縫,其影像上則出現小的暗點,此刻,先行利用影像濾波前處理作業的運算,讓處理過後的結果影像僅呈現這些大小的暗點(實際為裂縫處),再來,視覺系統便可以輕易地量測出各個裂縫的大小直徑或位置所在。
面對不同的個案,要如何選擇適當的影像處理法則,程式設計者必須具備些許的專業知識與技巧。目前市場上,已經有許多很好的影像/視覺發展工具軟體供使用者練習,並從中學習了解不同的前處理工具及影像作業的特性與適用場合。
要絕對避免但卻是在視覺案例中,經常遇到的共同難題,就是嘗試從影像檔案或資料中,處理並找尋某些原本就不存在的資訊影像。毋論是機器視覺或數位影像處理技術,是不能〝無中生有〞或者是自行創造訊息。當你要分析或測量的資料,早已經不存在影像內部時,你是不可寄望或找到任何影像法則,可以兌現這些期待的。另一個比較棘手的問題是,你根本找不到可以適用或已知的運算法則。例如,眼前的臉型辨識技術,似乎也僅止於能讓你從正面,不同角度與方向,自動辨識某個人的身份與特徵。但若你希望利用這種辨識法則,從一群人中,找到你所認識的朋友之一,似乎是緣木求魚、遙不可及。
許多導致機器視覺系統失敗或誤判的原因,常常是因為缺乏足夠且必要的影像訊息,而之所以造成這種不良的因素,往往是事先沒有做好待測物件的定位、不佳的輔助光源、品質不合的鏡頭、選錯攝影機或未做好及時的控制、同步訊號等諸項原因。視覺系統的取像裝置,最主要的目地與功能就是必須能將物件的特徵,清晰地呈現在影像中。再一次用上面所舉的半導體IC 封裝檢查機為例子說明,其中所採用的光源與光學鏡頭配件,都必需經過精心的設計與不斷地實驗結果,確信可以提供最佳對比影像,並將欲檢視的缺失,包括裂縫或絡痕,清楚地表現在擷取後之影像視窗裡面。換句話說,這些週邊裝置,光源種類與擺設位置,選
用的攝影機及光學鏡頭的搭配,也可視為整套機器視覺系統的法刖的一部份。正確選擇各項週邊裝置,其重要性,絕不下於如何運用最佳的前處理影像作業及工具軟體,甚至有過之而無不及。
5.理論式的解決途徑
在這裡,我們再舉壹個代表性的例子,來說明完整地視覺系統法則,再加以探討這樣的方法是否適切。
在半導體製程中,晶圓(Wafer)上的積體電路(IC),必須經由探針測試檢測,其蝕刻後的線路好壞程度。為了提供足夠的解析力,清楚的影像一般採用1024×1024(1K×1K)的攝影輸入裝置。測試針的週期或速率為50ms,也就是每秒20 次,相當於每秒20Mbytes 的影像資料輸入速率。下圖所示,乃整個視覺處理步驟的方塊圖。
當完成待測物件(晶粒Die)之影像擷取後,立即進行影像的比對,找尋出晶粒的精確位置及座標。這項處理作業,大多數是透過視覺系統內部之DSP 運算執行,大約祇須花費5ms的時間。
再來,根據上面所計算出的偏移量,將整張待測影像與樣本影像做調整與對位,並進行影像相減運算(待測影像-樣本影像),結果〝差異影像〞便可明顯地呈現出待測物件上缺陷之所在,亦即兩者之間,凡是像素灰階值有相當程度地落差者,便可能是瑕疵點。在這裡,我們採用的影像作業,包括4×4(kernel size)的convolution 法則,總共約需花費18 百萬次的執行運算。
上面所運算結果的〝差異影像〞,再與預先設定的〝門檻影像〞相比較,計算出待測影像與樣本影像彼此之間的總差異量,最後,應用空間濾波的方法,卻除可能存在的雜訊,並分割及萃取所有的亮點(bright spots),也就是影像上潛伏的污點或瑕疵。同樣地,這些相關的運算式子或影像作業,總共需要1+9+73 百萬次執行運算。
最後,藉由〝特徵偵測器〞的處理,依照實際的顆料大小與座標位置,把上述的亮度,加以分類與量測。這樣的分析作業,大概需要進行4 百萬次的運算。綜合起來,整個檢測週期為45ms 內完成105 百萬次運算,或者相當於每秒2.3 億次運算。換句話說,一般300MHzCPU 的Pentium 電腦所能提供的處理速度,遠遠落後於實際檢測要求的速率,事實上還不到七分之一。
增加額外的CPU 處理器,乍看之下似乎是一種不錯的解決途徑,但卻也同時增加成本及系統的複雜度。而且,這樣的檢測作業,系統內部所牽涉的資料傳輸速率超出每秒320MB,更是標準的PCI 匯流排所無法承擔的重。類似於這種需求殷切應用案例,大都尋求特殊的視覺處理硬體,以便能提供高速運算能力,更高資料傳輸頻寬的匯流排,但又合乎經濟效益(合理價位)。以現有市場上的產品來看,應用高速及Pipelined 架構的視覺系統,正好可以迎合這一類的應用需求與目的。
6.具體可行的解決方案
★ 攝影機架設
本應用範例裡,我們使用兩台攝影機,在高速移動的web 待測物件上,擷取兩張不同視野(F.O.V. )的影像。在這裡,所採用的攝影機款式及規格,同樣是線型掃瞄式,解析度為512×1 line 像素。
★ 攝影機的時序
上述兩台攝影像的工作時脈,為20MHZ 的像素傳送速率,並且,之間必須進行同步時脈動作。如此一來,我們祇需要壹張Viper-Digital 影像卡來搭配兩台線型攝影機,做同步取像。
如下圖所示,當待測物體的起啟邊緣,開始經過第一台攝影機(CAM1)所預設之視野時(F.O.V. ),則產生一個觸發信號(trigger signal)。接下來,第一部與第二部攝影機(CAM1&CAM2)所抓取的個別影像(Object 1&Object2)的位置與實際長度,也藉由這個觸發信號,來取得連繫與建立相互關係。
另外,在移動Platform 的控制裝置內所配屬之編碼器(encoder)隨著Platform 的移動,連續送出line trigger 訊號,來同時啟動兩部線型攝影機,作水平線影像掃瞄。每一個line trigger 的訊號,可被用來控制攝影機的線型感測器曝光時間與影像擷取速率。
★Platform 的時序與控制
一旦啟動觸發訊號,待測物體之影像,立即出現在觀測視野範圍內。首先,進入第一台攝影機(CAM1),經過幾條預設的水平掃瞄線(offset)之後,再進入第二台攝影機(CAM2)的視野範圍裡。每一台攝影機,事前設定的待測影像大小為512×512 的ROI。
間隔每30msec 之後,另一個新待測影像便呈現在第一台攝影機(CAM1)中。同一時間,會產生另一組觸發訊號,以便繼續下一個取像動作。在第二台攝影機(CAM2)最後取像結束,及第一部攝影機正進行下一個待測影像掃瞄開始之間,確定不出現重疊現像。
★ 基本的處理作業
經過線型攝影機掃瞄,所取得之待測物件影像:Object1&Object2,大致上,將再做後續的影像處理作業,主要區分為二種步驟,即〝前處理〞(pre-processing)及〝特定區域處理〞(ROI processing)。
一、前處理(Pre-Processing)
. 避免輔助光源不均勻及鏡頭失真,所可能導致取像不良的因素,原始取得之8-位元,256 灰階之影像,必須做two-point’s FFC(flat-field correction)的校正。
. 校正後之影像再利用8 位元轉單位元的查照表作業(LUT),轉換成二值化影像。 緊接著,前面所輸出的二值化影像,經由客製化的3×3 鄰近作業處理後,影像上,個別像素將會得到4 種可能的數值。(依照不同應用需求或目的,客戶可考慮採用更大的鄰近作業運算式,例如5×5 或7×7)。其中,3×3 鄰近運算式的定義,說明如下:
假設,輸入影像處理,像素〝E〞為中心之鄰近像素之排列情形為
A B C
D E F
G H O
輸出數值:W,X,Y,Z(事前設定4 種不同運算結果所得到數值)
其輸入與輸出之關係式,規則如下:
若遮罩內,像素灰階值均為0,則輸出結果為=W
若遮罩內,像素灰階值均為1,則輸出結果為=X
若像素E 灰階值為1,亦或者其它像素灰階為0,則輸出結果=Y
若像素E 灰階值為0,同時,部份或全部,其它像素之灰階值為1,則輸出結果=Z
. 由兩部攝影機,所取得之兩個不同512×512 ROI 影像經過前處理後,即得到下面幾種資料:
1. 校正後的灰階影像(8 位元ROI)
2. 二值化影像(Binary ROI)
3. 3×3 鄰近運算後之結果(Operator ROI)
在事先已知待測物件的位置情況下,上述幾種ROI 的位置,也必將出現在攝影機所擷取影像視窗中的固定座標。
二、特定區域處理(ROI Processing)
經過上述前處理作業,所得到的影像資料,將進一步做後續處理。實際與明確的運算法則,在此不便詳述之,但比較重要的關鍵部份,我們大致說明如下:
. 每一個256 灰階的ROI 影像,將再做深入處理作業,隨之,在每張影像上,所預定之三個32×32 像素區域裡,再萃取出三個16×16 像素大小的特徵影像。藉助標準圖像辨識的技巧,從上面所提及之3 個特定區域中,個別計算求出特徵之所在位置。
. 根據這些特徵的座標值,再進一步計算出該物件相對於512×512 ROI 影像原點座標的(X,Y)位移量。方法是透過運算,比較特徵所在位置與3 個32×32 ROI 像素的個別中心點,最後,得到正確位移量。
.同樣地,利用上面所算出的特徵座標,設定另外6 個19×19 像素的ROI 影像,之後,再產生相同數目的16×16特徵影像。
. 藉由上面所得到的特徵位置座標,再計算出該物件在ROI 影像中的精確位移量(X,Y)。
. 這些運算的結果,所得出的數據及資料,將被用來做後續的處理與判讀。
經過這些ROI 處理作業後,我們可以知道每個物件的位移量(X,Y)同時,在前處理階段(Pre-Processing)所得到的Object1&Object2 相關ROI 等,建立壹個矩形的物件ROI,來表示該物件影像之所在區域。
後續的處理作業,將完全以這些物件ROI 影像為目標對象,處理的方法主要包含1~3 次的數學運算(AND、ADD、OR… 等),
最後的處理,將會得到兩個物體的8 位元ROI 影像,及從個別物件所屬的二值化ROI,亦或者是Operator ROI’s 影像中,處理後所求出的二組結果。
三、輸出資料至電腦,做後續處理
總數為4 的物件ROI’s 影像,將再傳送至電腦內部,做後處理分析與解讀作業。其中包括2 個灰階8 位元ROI’s 影像,以及上面處理後所得到的結果影像。