機器視覺與圖像分析技術(shù)詳解
一、要點
1.與視覺相關(guān)的項目并非全都需要咨詢專家的服務(wù);在硬件供應(yīng)商和開發(fā)工具供應(yīng)商的幫助下,缺乏視覺系統(tǒng)開發(fā)經(jīng)驗的開發(fā)者通常也可以完成大部分(即使不是全部)開發(fā)工作,并且為他們的公司節(jié)省費用。
2.在開始視覺系統(tǒng)開發(fā)之前,你必須回答大約五六個問題;你的答案將基本決定系統(tǒng)的硬件成本。
3.你只要選擇能夠在菜單驅(qū)動環(huán)境中能使你開始設(shè)備開發(fā)工作,然后通過圖形編程或語法編程來完善程序,就可大大提高效率。
4.習(xí)慣于視覺系統(tǒng)在安裝之后需要悉心呵護的觀念;你常常無法預(yù)見在系統(tǒng)運行一段時間之后可能有必要調(diào)整算法的各種理由。
成功地開發(fā)一種基于視覺的設(shè)備可能需要很多專業(yè)知識,以致許多打算這樣做的開發(fā)者都不愿意嘗試這種任務(wù),而轉(zhuǎn)向求助于那些通過掌握技術(shù)的方方面面細微差別建立自己職業(yè)生涯的咨詢專家。通常,一位咨詢專家不僅可以為你節(jié)省數(shù)倍咨詢費的費用,而且還可以節(jié)省大量寶貴的時間。即使這樣,有些適用于基于視覺的系統(tǒng)開發(fā)的緊縮包裹型軟件包卻使那些沒有機器視覺或圖像分析經(jīng)驗的人能泰然承擔(dān)的項目數(shù)量不斷增加。
如果你缺乏適當(dāng)?shù)慕?jīng)驗,則要走好的第一步是設(shè)法確定哪些任務(wù)需要外界幫助,哪些任務(wù)是你有可能用預(yù)包裝軟件自己迅速完成的。提供開發(fā)工具和硬件的廠商通??梢詭椭阕龀鲞@種判斷。在很多情況下,這些廠商的網(wǎng)站都有幫助做出這種決定的工具。給一個這樣的廠商打個電話,你通常就可以與一位能搜集有關(guān)你設(shè)備信息的應(yīng)用工程師取得聯(lián)系。在適當(dāng)?shù)臅r候,大多數(shù)廠商會向你推薦他們熟悉其工作情況的咨詢專家。通常,最經(jīng)濟的辦法就是,某個項目中僅僅某些部分使用咨詢幫助,例如照明部分。
圖像分析和機器視覺是相關(guān)而又不同的兩個領(lǐng)域。從某種意義上說,圖像分析是機器視覺的一部分。然而,從另一種意義上說,圖像分析是一門更廣的學(xué)科。實際上,這兩領(lǐng)域的分界線常常是模糊不清的。
機器視覺應(yīng)用通常具有商業(yè)味道。例如,機器視覺是許多制造過程的關(guān)鍵部分。另一方面,"圖像分析"--按多數(shù)人的理解--更可能應(yīng)用于科學(xué)研究實驗室。一些專家說,圖像分析常常處理的操作不及機器視覺處理的操作明確。對未知物體,例如學(xué)術(shù)實驗室中(圖1)或者甚至臨床病理學(xué)實驗室中的動物組織細胞的圖像進行表征或分類就是一例。
圖1冷泉港(紐約)實驗室霍華德休斯醫(yī)學(xué)院的一個研究小組利用Matlab及其圖像捕獲和圖像處理工具箱來研究哺乳動物的大腦如何運作。利用圖像捕獲工具箱,研究人員就可將顯微鏡圖像從攝像機直接流式傳輸?shù)組atlab,并可利用圖像處理工具箱功能來分析一段時間內(nèi)的圖像。為了一按按鈕就能進行捕獲和分析,研究人員在Matlab中創(chuàng)造了生動的圖形用戶界面。
在機器視覺中,你通常對照相機或圖像傳感器所觀察的物體有一般的了解,但你需要獲得更具體的信息。產(chǎn)品檢測設(shè)備屬于機器視覺這一類。例如,你知道一幅圖像描繪的是哪種印制電路板模型,但是你必須確定所有元件的類型是否正確以及位置是否得當(dāng)。確定元件是否正確和位置是否適合當(dāng)然要涉及到圖像分析,但是這種分析比臨床實驗室中的那種分析更為直觀。
二、機器視覺任務(wù)的分類
幾位專家將主要機器視覺任務(wù)分為以下幾類:
1.對諸如墊圈、螺母和螺栓等元件進行計數(shù),并從噪聲背景中提取可視信息。
2.測量 (也稱為測定) 角度、尺寸以及相關(guān)位置。
3.讀出,包括諸如從條形碼中獲取信息、對蝕刻在半導(dǎo)體芯片上的字符的OCR(光學(xué)字符識別)以及讀出二維DataMatrix碼等操作。
4.對物體進行比較,例如,將生產(chǎn)線上的單元與同樣類型的KGU(已知優(yōu)質(zhì)單元)進行比較,找出諸如缺少元件或標(biāo)簽等的制造缺陷。這種比較可能是簡單的圖樣相減,也可能涉及到幾何或矢量圖形匹配算法。如果被比較物體的尺寸或方向各不相同的話,就必須采用后者。比較的類型包括檢測物體的有無、匹配色彩和比較印刷質(zhì)量。被檢查的物體可能與阿司匹林藥片一樣簡單,其正確標(biāo)記需在包裝之前加以驗證。
上述列表由于很具體,所以可能意味著你可以利用菜單驅(qū)動的基于圖形的開發(fā)工具來創(chuàng)建機器視覺設(shè)備,而不是使用如C++這樣的基于文本的語言來編寫代碼。盡管具有長期用基于文本的語言對機器視覺設(shè)備進行編程的開發(fā)者通常更愿意堅持使用他們多年來成功運用的工具,但你的確可以使用多種菜單驅(qū)動的圖形化應(yīng)用開發(fā)軟件包之一。雖然業(yè)界中的一些人對這種不愿改變的傾向頗有微詞,但要問一問自己,如果你聘請來處理某種設(shè)備的咨詢專家第一次嘗試使用新軟件包來完成你的工作的話,你的感受如何呢?
即使在各種基于圖形的工具當(dāng)中,供應(yīng)商們也把那些真正提供可編程能力的和那些僅允許用戶配置設(shè)備的區(qū)分開來。這種可配置的方法能讓你更快捷地使設(shè)備運行,并能提供許多開發(fā)者所需的靈活性。編程功能可為開發(fā)者提供更大的靈活性,但卻會延長開發(fā)時間-特別是對于那些第一次使用一種工具的人來說更是如此。在某些情況下,可配置的方法和可編程的方法都以同樣的語言產(chǎn)生輸出,從而使你能利用編程功能來修改或提高你用可配置的方法創(chuàng)建的設(shè)備(圖2)。這樣的靈活性的潛在好處是巨大的:你可以使用更強大的工具來完善某種設(shè)備,并可借助基本的工具,迅速使之在原始級工作。這種方法可降低在完善方法上浪費時間的可能性,而你后來發(fā)現(xiàn)這些方法存在根本缺陷。
圖2利用Data Translation公司的Vision Foundry進行設(shè)備開發(fā)的主要替代技術(shù)例證了工具箱的優(yōu)越性,工具箱使你可以利用可配置的基于菜單的交互式工具快速驗證概念,然后再通過編程功能改進其設(shè)備。在Vision Foundry中,你可以通過編寫直觀的腳本來完成大部分編程任務(wù)。
三、正在發(fā)生的調(diào)整
也許更重要的是如何利用兩種方法的輕松互換使用來簡化許多機器視覺設(shè)備中正在進行的不可避免的調(diào)整。例如,在AOI (自動光學(xué)檢驗)中,你或許希望剔除任何與KGU不同的UUT (被測單元)。唉,如果采用這種策略,檢驗過程大概會剔除你生產(chǎn)的大部分單元,即使其中大多數(shù)單元具有可以接受的性能。說明由于次要差別而導(dǎo)致AOI系統(tǒng)剔除一個優(yōu)質(zhì)部件的簡單例子就是UUT使用的某個元件的日期代碼與KGU上的等效元件的日期代碼不同。
此時,你可在設(shè)備的設(shè)計期間預(yù)見到數(shù)據(jù)代碼問題,并確保系統(tǒng)忽略包含日期代碼的區(qū)域內(nèi)的圖像差別。遺憾的是,盡管如此,其它次要差別更難預(yù)料,你必須預(yù)計到你發(fā)現(xiàn)這些次要差別時需要修改設(shè)備。實際上,一些AOI系統(tǒng)的軟件幾乎能自動地進行這樣的修改;如果你告知系統(tǒng)它剔除了優(yōu)質(zhì)單元,則軟件就會將單元的圖像與原始KGU進行比較,并在有差別的區(qū)域內(nèi)不再對隨后的單元進行檢驗。
不過,這樣的方法有時候會產(chǎn)生并不令人滿意的結(jié)果。假設(shè)檢驗系統(tǒng)安裝在一間有外部光線可以從窗戶進入的房間內(nèi),從而使UUT的照度發(fā)生變化。雖然檢查員可以不假思索地適應(yīng)這種變化,但是這樣的變化會導(dǎo)致視覺系統(tǒng)將相同物體的圖像分為不同物體的圖像,從而引起不可預(yù)料的檢驗失敗。盡管遮住窗戶可以防止外部光線進入,但是調(diào)整測試程序使KGU在各種照明極端情況下都能通過也許更加經(jīng)濟合算。
即使如此,這個例子也指出了照明在機器視覺和圖像分析中的重要性。照明本身就是一門科學(xué)或藝術(shù)。各種各樣的照明技術(shù)具有不同的優(yōu)點和弱點,而對UUT的照明方法可以解決或改進普通的機器視覺問題(參考文獻1)。
四、項目成本及時間期限
機器視覺項目的成本相差很大。有幾個這樣的項目的成本不超過5000美元,其中包括硬件、預(yù)包裝軟件開發(fā)工具以及設(shè)備開發(fā)者的工時成本。不過,如此低廉的項目成本很可能不包括為了達到滿意性能而對設(shè)備進行調(diào)整和調(diào)試的成本。在成本范圍的另一端,項目成本超過一百萬美元。這類項目中最常見的可能就是在汽車和航空工業(yè)中對自動生產(chǎn)線的重大改進。根據(jù)一些供應(yīng)商說,最常見的項目成本通常從數(shù)萬美元到略
評論