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