機器視覺系統(tǒng)由眾多部件組成,其中包括相機、圖像采集卡、照明單元、光學(xué)元件與鏡頭、處理器、軟件及顯示設(shè)備等。簡單的機器視覺系統(tǒng)可以識別2D或3D條形碼,更復(fù)雜的系統(tǒng)可以確保檢測的元件滿足特定的容差要求、組裝正確、沒有缺陷。
很多機器視覺系統(tǒng)配備了采用不同類型圖像傳感器的相機(如表1所示)。為了確定相機可獲得的分辨率,重要的是理解這些傳感器可以分辨的每毫米線對數(shù)(lp/mm) ,而不是有效的像素點數(shù)。
例如,在一個典型的2588×1958像素、500萬像素成像器中,大小為1.4μm2的像素可提供357lp/mm的分辨率;而一個640×480像素的VGA成像器,其像素大小為5.7μm2,可實現(xiàn)88lp/mm的分辨率。對于具有相同尺寸的成像器而言,像素越小,每毫米中就可分辨更多的線對數(shù)。
如果一個特殊的圖像傳感器包含3μm2的像素,那么根據(jù)尼奎斯特采樣定律,理論上圖像中可以被分辨的最小特性尺寸為6μm。然而實際應(yīng)用中,并不能達(dá)到這一最小尺寸值,因為每個鏡頭都會產(chǎn)生一定程度的像差。
灰度圖像通常會按每像素8比特存儲,從而提供256個不同的灰度漸變。圖像中的黑色特性對應(yīng)更低數(shù)值;更亮的像素對應(yīng)更高數(shù)值。這種方法很便捷,因為單一字節(jié)對應(yīng)著單一像素。
選擇相機
通常,機器視覺系統(tǒng)中使用的相機,可以通過USB3.0、以太網(wǎng)、FireWire、Camera Link及CoaXPress等接口將相機中捕捉到的圖像傳輸?shù)絇C系統(tǒng)中。
目前,集成機器視覺照明、圖像捕捉及處理等功能的智能相機,正在為閱讀條形碼或檢測部件是否存在等自動化視覺任務(wù)提供經(jīng)濟型解決方案。盡管智能相機的處理器性能或許足以滿足這些任務(wù)的需求,但是更復(fù)雜或要求更高速度的任務(wù)則需要額外的處理能力。
除了性能外,系統(tǒng)集成商還要決定采用何種支持軟件以及相機如何連接到外部設(shè)備。盡管很多檢測部件是否存在的應(yīng)用中都采用了智能相機,但是一些其他應(yīng)用可能需要將相機連接到顯示設(shè)備,用以顯示捕獲到的圖像和圖像分析的結(jié)果。
很多智能相機的處理器運行專用的操作系統(tǒng);也有一些智能相機運行Linux或Unix等商業(yè)操作系統(tǒng)。當(dāng)然,這些相機可以運行任何可在PC上運行的軟件包。
照明元件
通過配備正確的機器視覺照明系統(tǒng),能以高對比度重復(fù)捕捉圖像特征。如果照明的配備不正確,機器視覺系統(tǒng)的成功性、可靠性、可重復(fù)性和易用性都處于較大的風(fēng)險中。為了確保機器視覺系統(tǒng)配備正確的照明元件,設(shè)計師需要咨詢照明制造商,或借助圖像照明實驗室檢測不同的照明選項。
LED照明正在開始替代目前常用于機器視覺系統(tǒng)中的熒光燈、光纖鹵素?zé)艏半瘹忾W光燈光源,因為LED照明具有更高的一致性、更長的使用壽命和更好的穩(wěn)定性。LED照明可以提供各種各樣的色彩并能選通發(fā)光,這一特性在高速機器視覺應(yīng)用中非常有用。
除了照明類型,另一個決定圖像成像的重要因素是光照到待測物體上的角度。兩種最常用的為物體提供照明的方式是:暗場照明和亮場照明
暗場照明從較低的角度照明物體;亮場照明則從較高的角度照明物體。
Darkfield——暗場
Brightfield——亮場
Field of view——視場
暗場照明從較低角度照明物體,在一個非常平滑的如鏡面般的物體表面上,反射的光將超出相機的視野范圍。物體的表面將呈現(xiàn)為黑色,而通過相機捕捉到的物體表面發(fā)光的部分,就對應(yīng)著表面的缺陷或劃痕。
亮場照明與暗場照明相反,亮場照明是在成像物體的上方打光,因此物體反射的光將處于相機的視場范圍內(nèi)。亮場照明配置中,物體表面上任何不連續(xù)處反射的光均無法被相機接收而顯示黑色。因此,該技術(shù)被用于為漫發(fā)射的非反射性物體提供照明。
色彩效應(yīng)
如果某個應(yīng)用要求使用彩色相機,則需要白光照明待檢測的元件。如果需要區(qū)分待檢測元件的顏色,則白光需要在整個波長范圍內(nèi)產(chǎn)生平等光譜(equal spectrum),以便分析圖片中的顏色。
通過黑白單色相機也可以識別圖像中的顏色,這種方法需要選擇合適的燈光照明圖像(如下圖所示)。下圖中上面一行圖片是人眼觀察到的圖像效果,而下面一行的圖像則顯示了單色相機呈現(xiàn)出的圖像效果。
為機器視覺系統(tǒng)應(yīng)用找到顏色正確的照明光源,能對捕捉到的圖像產(chǎn)生重要影響。
As seen by the human eye:人眼看到的顏色
As seen by a B&W vision system:黑白視覺系統(tǒng)呈現(xiàn)出的顏色
Red:紅
White:白
Green:綠
為了照亮圖像,使用了三種不同顏色的光:600nm紅光(左側(cè))、白光(中間)和520nm綠光(右側(cè))。為了使該圖像呈現(xiàn)出最佳的對比度,最好的方式是使用綠色光,因為綠色是紅色的互補色。這種對比可以被單色相機輕松地識別出來。如果為了濾掉紅色,則最好采用紅色光照亮物體。如果圖片本身是五光十色的,并且不需要識別其中的任何一種顏色,那么白光照明則是更合適的選擇。
當(dāng)應(yīng)用算法處理圖像時,請考慮開發(fā)人員和終端用戶的技能及具體的視覺系統(tǒng)任務(wù)要求。
許多PC和智能相機供應(yīng)商提供了功能大體相似的圖像處理軟件包。很多商業(yè)軟件包提供了圖形化集成開發(fā)環(huán)境(IDE),使系統(tǒng)集成商可以從程序庫中拖取設(shè)計好的功能,根據(jù)自身需求實現(xiàn)定制化視覺算法。
多數(shù)商業(yè)軟件包要求為每個部署的視覺系統(tǒng)支付版權(quán)費,但是通過使用開源成像代碼如OpenCV或直接用C++、C、C#或.NET編寫應(yīng)用程序,可以省去這一成本。
但是,由于OpenCV是一個開源環(huán)境,沒有制造商為其提供擔(dān)?;蛑С?。相比之下,商業(yè)軟件用戶的圖像處理工具包將會得到開發(fā)商的支持。
在選擇軟件前,系統(tǒng)集成商需要仔細(xì)評估自身的能力。盡管選擇一個單一的基于PC的商業(yè)機器視覺軟件包,需要支付800~2500美元的版權(quán)費用,但是開發(fā)人員使用C語言從頭開始編程,也會很容易耗費掉大量時間和工程資源。
此外,系統(tǒng)集成商還要認(rèn)識到,通常一個開發(fā)環(huán)境并不能適用于所有的機器視覺系統(tǒng)。技術(shù)和經(jīng)濟壓力意味著要根據(jù)不同的應(yīng)用需求,采用不同的方法進(jìn)行軟件開發(fā)。
在初步確定哪種算法適用于執(zhí)行某個特定的視覺任務(wù)后,需要的系統(tǒng)數(shù)量、每個系統(tǒng)的成本和軟件開發(fā)者的技能,將決定選擇什么樣的編程環(huán)境。例如,用C或C++等高級語言編寫圖像處理代碼等相對更復(fù)雜更長的任務(wù),是工程師開發(fā)大量系統(tǒng)時的一個更佳選擇。
系統(tǒng)集成商可以根據(jù)軟件開發(fā)者的編程技能,選擇并決定視覺系統(tǒng)軟件的復(fù)雜度。
Drag and drop——拖放工具
Script programming and web interfacing——腳本編程及網(wǎng)頁接口
PC development tools such as MS Visual Studio——計算機開發(fā)工具,如微軟的Visual Studio
C/C++ dode development——C/C++代碼開發(fā)
Ease of development——開發(fā)簡易性
算法類別
圖像處理算法可以分為不同的類別,用于滿足不同的應(yīng)用需求。
通過圖像數(shù)據(jù)的預(yù)處理,可以提取出圖像的特性。圖像閾值是圖像分割算法中最簡單的方法之一,該方法可用于從灰度圖像中生成二進(jìn)制圖像,從而讓物體能夠從背景中分離出來。
其他的運算符,如圖像濾鏡可以令圖像銳化、降低圖像噪音;而直方圖均衡可以增強圖像的對比度。預(yù)處理同樣涉及圖像分割,以定位圖像中具有相似屬性的物體或物體邊界,如顏色、亮度或材質(zhì)等。
更復(fù)雜的算法可以實現(xiàn)特征提取、檢測物體邊緣或物體轉(zhuǎn)角,實現(xiàn)對圖像中物體的測量。連通性工具,如blob分析算法,則可以測量圖片內(nèi)分散物體的有某種共同關(guān)系的特性參數(shù)。
關(guān)聯(lián)性與幾何搜索是另外兩個強大的搜索算法,其可用于找到物體的某種特性,或在新的圖像中搜索同樣的特性,可提供相應(yīng)的位置、某些情況下的尺寸和規(guī)模、以及新圖像是如何實現(xiàn)傾斜或轉(zhuǎn)換的等信息。
最后要提及的是可以實現(xiàn)分類及圖像破譯的算法。其中,最簡單的是可以實現(xiàn)簡單模板匹配操作的算法,而更復(fù)雜的分類算法可能用到神經(jīng)網(wǎng)絡(luò)及SVM等更復(fù)雜的技術(shù)。
算法的應(yīng)用
在眾多視覺系統(tǒng)中,決定一個元件或元件的某個特性是否存在非常重要。尺寸、形狀或顏色等屬性可以用于識別元件。對比分析、blob分析、模型匹配或幾何搜索工具可以在圖像上識別元件。
為了將一個元件從其他元件中區(qū)分出來,可以使用相對簡單的功能,如邊緣檢測算子。如果需要精確地檢測出元件的位置,則需要執(zhí)行幾何搜索或blob分析。
為了高速檢測元件或web上的缺陷,需要用到對比分析或模型圖像匹配算子。如果需要將缺陷歸類并檢測,blob分析或邊緣分析可以測量缺陷參數(shù),并將其與已知的正常參數(shù)進(jìn)行比較。
在一些圖像處理應(yīng)用中,可以利用超過圖像標(biāo)準(zhǔn)像素分辨率的精度,測量圖像中的線、點或邊緣的位置,獲得子像素分辨率。這可以通過對比物體邊緣像素的灰度級別與物體每個邊上的像素灰度級別來實現(xiàn)。
在特殊的例子中,可以使用極坐標(biāo)抽取技術(shù)識別圓形物體的圖像,這種方法更易于實現(xiàn)。如圖5中間部分所示,blob分析被用于顯示藍(lán)色物體的參數(shù)細(xì)節(jié)。使用此類算子,可以更容易地檢測尺寸、邊界框及物體的中心。
很多視覺系統(tǒng)工具箱中的圖像處理算法可以用于解決各種各樣的任務(wù),如邊緣檢測(右上)、光學(xué)特性識別(上圖中間)及幾何模式匹配(右下)。
在圖5右上圖中,通過分析圖片中的灰度值,邊緣檢測算法可以檢測物體邊緣、位置、形態(tài)或者角度。左下方的直方圖顯示了某個特殊圖像的灰度像素值,該值將被進(jìn)一步分析,以強化圖像中獲得的某些特性。
中間的圖像有兩組光學(xué)特性需要檢測,上面的特性被輕微減弱。在這個示例中,通過驗證可以了解特性的衰減方式。此外,光學(xué)特性識別(OCR)軟件可以用于讀取衰減特性。
在上圖右下角,搜索算法從圖像中鎖定一個目標(biāo)對象,并存儲為模板或幾何模型,之后在其他圖像中尋找類似的目標(biāo)圖像,這就是一個可以識別特定特性的精確工具。
策劃、決定及執(zhí)行
在著手研發(fā)任何機器視覺檢測系統(tǒng)前,需要仔細(xì)評估是公司內(nèi)部開發(fā)還是將其外包。在策劃階段有時會發(fā)現(xiàn),機器視覺系統(tǒng)可能并非必要的,或者并不可行。
如果確定機器視覺系統(tǒng)可行,則具體檢測過程的所有特性都需仔細(xì)記錄。需要對元件待檢測的物理及幾何屬性,包括顏色、表面拋光及反射屬性等進(jìn)行歸類。開始,必須要定義特征用以區(qū)別待檢測的元件是好是壞。只有了解元件或裝配件的屬性,系統(tǒng)集成商才能確定哪個圖像解決方案是最理想的。
整個生產(chǎn)過程都需要進(jìn)行分析,使系統(tǒng)集成商了解元件是如何被生產(chǎn)的、以及在檢測過程中發(fā)生了什么變化。借助分析,甚至還可以確定是否應(yīng)該在生產(chǎn)流程的初級階段就采用視覺檢測。
當(dāng)策劃階段完成后,機器視覺組件,包括相機、軟件、照明元件、光學(xué)元件及鏡頭等都要確定下來。這一階段將確定在生產(chǎn)環(huán)境中,是否有足夠的分辨率或充分的照明及光學(xué)條件,以確保產(chǎn)生所需要的結(jié)果。這些因素最好在編寫系統(tǒng)說明時完成,而不要等到實現(xiàn)系統(tǒng)時再考慮。
在系統(tǒng)明確階段,應(yīng)該提供一份報告,詳細(xì)列出使用的硬件及軟件、系統(tǒng)必須要運行的檢測功能、需要滿足的容差及系統(tǒng)的吞吐量等。此外,該階段還要考慮系統(tǒng)如何與生產(chǎn)廠房中可能存在的其他自動化系統(tǒng)連接,這些都要記錄下來。
在決定是自行研發(fā)、還是與外部系統(tǒng)供應(yīng)商合作開發(fā)時,還需要考慮幾個關(guān)鍵的業(yè)務(wù)問題。從項目一開始,系統(tǒng)集成商就要確定公司內(nèi)部是否具備支持項目所需要的技術(shù)實力。
如果公司內(nèi)部擁有這樣的技術(shù)實力,管理層還要確定具體負(fù)責(zé)該工作的個人是否有足夠的時間和資源支持這一項目、是否會遇到意想不