基于機器視覺的零件圖像采集及識別的研究
0 引言
機器視覺是通過光學的裝置和非接觸的傳感器自動地接受和處理一個真實物體的圖像,以獲得所需信息或用于控制機器動作的裝置。機器視覺借助于計算機軟件對圖像進行定量的分析,其處理的速度與被處理圖像的復雜程度有關。它具有快速、可靠、一致性高的優(yōu)點,對于大批量的生產(chǎn)有很好的經(jīng)濟效益。本課題采用先進的圖像采集系統(tǒng)對零件的輪廓進行采集,通過vc++.net作為開發(fā)平臺,結合圖像處理相關的算法,對零件的輪廓邊緣特征進行識別提取。
本文首先通過wat-902黑白ccd(電荷耦合器件)和t2314fics-3工業(yè)自動化鏡頭對平臺正下方方形零件拍攝,由mv-20圖像采集卡將模擬信號轉化為數(shù)字信號,將其送入計算機進行圖像二值化處理、區(qū)域分割、邊緣檢測及跟蹤、簡單背景下的物體目標與背景的分離以及特征提取等處理,最后融合特征數(shù)據(jù)建立判別函數(shù),實現(xiàn)了對零件圖像的自動識別,本文主要介紹灰度變換,二值化處理和邊緣檢測的算法及其應用。
1 灰度變換
灰度變換是圖像增強的重要手段,它可使圖像動態(tài)范圍加大,使圖像對比度擴展,圖像更加清晰,特征更加明顯。
本課題采用灰度線性變換方法中的分段變換法進行可灰度的拉伸試驗、分段線性變換[1]就是將圖像的灰度區(qū)間分成兩段乃至多段分別進行線性變換,它的優(yōu)點是可以根據(jù)用戶的需要,拉伸特征物體的灰度細節(jié),相對抑制不敢興趣的灰度級。
分段線性變換遵循以下原則:
如果|a-c|>|a-c|,|c-d|<|c-d|,|d-b|=|d-b|,則是擴展第1區(qū)間[a,c],壓縮第2區(qū)間[c,d],維持第3區(qū)間[d,b],得到低灰度級被增強的圖像。如果|d-b|<|d-b|,則可得高灰度級被增強的圖像。
圖1是基于vc開發(fā)出的用于分段線性變換設置方法,圖中利用點(50,30)和點(200,220)將灰度空間分成3段,通過調(diào)整這兩點的坐標位置進行灰度變換。
2 圖像的二值化
為了進行圖像識別,需要將經(jīng)過拍攝到的圖像二值化,因為ccd攝取的圖像f(x,y)為灰階圖像,圖像上的任一像素(x,y)處的灰度級l范圍為0≤1≤l。當l=0,像素顏色為黑色;當l=1,像素顏色為白色;當0≤1≤l,像素顏色為白色,像素顯示黑與白之間的中間色。所謂圖像的二值化,就是使灰度級l只能取0或l,則圖中像素的顏色或者為白,或者為黑,此時圖像被稱為二值圖像(黑白圖像),為了使矩陣運算較為簡單,通常取l=1(規(guī)格化)。
圖像二值化的目的是為了從原始圖像中檢測出對象物,即將圖像分成對象物和背景兩個區(qū)域,通常的辦法是設定一個閾值θ,取原始圖像中灰度級大于θ的像素群為對象物,小于θ的像素群為背景區(qū)域,例如設原始圖像為f(x,y),二值化后圖像為g(x,y),則
二值化的關鍵和難點是閾值選擇。在數(shù)字圖像中,無用的背景數(shù)據(jù)以及各種噪聲的數(shù)據(jù)和對象物常常混在一起,閾值的選擇方法很多,這里采用最大方差閾值法[2,3]對零件的圖像進行處理。
最大方差閾值法是把待處理圖像的直方圖在某一閾值處分割成兩組,當被分割成兩組間方差為最大時,決定閾值。
設灰度圖像f(x,y)的灰度級為0-l,灰度級i的像素數(shù)為ni,則圖1中,總像素數(shù)為: 將灰度級分為兩組:c0=0~k,c1=k+1~l,則c0產(chǎn)生的概率為:
圖2為二值化前后的直方圖。
3 邊緣檢測
在對圖像進行特征提取之前,一般都需要進行邊緣檢測,然后進行二值化處理,邊緣檢測將突出圖像的邊緣,邊緣以外的圖像區(qū)域通常被削弱甚至被完全去掉。處理后邊界的亮度與原圖中邊緣周圍的亮度變化率成正比。邊緣一般分為階躍性邊緣和屋頂狀邊緣。
在本課題中,零件圖像和背景圖像的灰度值有著顯著的不同,屬于階躍性邊緣,這種邊緣的檢測通常借助空域微分算子進行,通過將其模板與圖像卷積來完成,其實質(zhì)是采用某種算法提取出圖像與背景間的交界線,用圖像灰度分布的梯度來反映,因此可以用局部圖像微分技術來獲得邊緣檢測算子。以下是對幾種經(jīng)典的邊緣檢測算子進行理論分析,并對各自的性能特點做出了比較和評價。
以這些理論為依據(jù),這里采用了幾種常用的邊緣檢測方法:roberts邊緣檢測算子、sobel邊緣檢測算子、prewitt邊緣檢測算子、laplace邊緣檢測算子。
3.1 roberts邊緣檢測算子[4,5]
roberts邊緣檢測算子是一種利用局部差分方法尋找邊緣的算子,它根據(jù)任意一對互相垂直方向的差分可用來計算梯度的原理,才能采用對角線方向相鄰兩像素之差,即
適當選取門限th并做如下判斷:屬于r(i,j)>th,則(i,j)為階躍狀邊緣點,{r(i,j)}為邊緣圖像。如圖3所示。
3.2 sobel 邊緣檢測算子[4,5]
sobel邊緣檢測算子采用兩個卷積核:
圖像中每個點都要這兩個核進行卷積,前一個核對水平邊緣響應最大,后一個核對垂直邊緣響應最大,兩個模板各司其職。最后把兩個卷積結果的最大值作為該點的輸出值。對數(shù)字圖像{f(i,j)}的每個像素,考察它上下左右鄰點灰度的加權差,與其接近的鄰點的值大。
算子如下:
s(i,j)=|δxf|+|δyf|=|(f(i-1,j-1)+2f(i-1,j)+f(i-1,j+1))-(f(i+1,j-1)+2f(i+1,j)+f(i+1,j+1))1+|(f(i-1,j-1)+2f(i,j-1)+f(i+1,j-1))-(f(i-1,j+1)+2f(i,j+1)+f(i+1,j+1))|
sobel算子檢測到的邊緣如圖4所示。
對比兩種算子得到的圖像可以簡單地得出以下結論:roberts算子檢測水平和垂直的效果好于斜向邊緣,定位精度高,但對噪聲敏感;sobel邊緣檢測算子則對灰度漸變和噪聲較多的圖像處理得較好。
4 結束語
在該項目的研究過程中,本文所論述的灰度變換中的分段線性變換法、圖像二值化中的最大方差閾值法及邊緣檢測中的roberts邊緣檢測算子、sobel邊緣檢測算子、prewitt邊緣檢測算子、laplace邊緣檢測算子都在vc++.net中實現(xiàn),并已經(jīng)運用于整個采集識別過程,實驗表明,灰度變換和二值化能很大地提高對灰度圖像的識別精度,噪聲較低的環(huán)境下,利用roberts算子檢測邊緣定位精度較高,識別出的圖像精度能達到0.05mm。在此基礎上已開發(fā)出一套完整的零件位姿圖像采集識別系統(tǒng)。
評論