戴君潔 李汝恒
(大理大學(xué)工程學(xué)院 云南省大理市 671003)
工業(yè)齒輪是現(xiàn)代機(jī)電產(chǎn)品的重要基礎(chǔ)零件,而因?yàn)辇X輪機(jī)組在工業(yè)生產(chǎn)中具有轉(zhuǎn)動(dòng)速度快、傳送距離遠(yuǎn)等優(yōu)勢(shì),所以對(duì)齒輪檢測(cè)效果的好壞一定程度上影響著后續(xù)的工業(yè)任務(wù)[1]。在如今的工廠生產(chǎn)中,關(guān)于齒輪的檢測(cè)工作仍然主要是靠人為目測(cè),這樣不僅工作量大、效率不高,而且隨著工作時(shí)長(zhǎng)和工作量的積累,工人可能出現(xiàn)檢測(cè)誤差大或者直接漏檢的情況。
隨著機(jī)器視覺技術(shù)和應(yīng)用的迅速發(fā)展,還有近幾年我國(guó)戰(zhàn)略“中國(guó)制造2025”的深入實(shí)施,使得機(jī)器視覺技術(shù)在圖像處理、工業(yè)機(jī)器人等多個(gè)領(lǐng)域得到廣泛應(yīng)用[2]。不過(guò)現(xiàn)在基于機(jī)器視覺對(duì)工業(yè)齒輪的非接觸式檢測(cè)還處于起步階段,所以對(duì)于齒輪邊緣輪廓的檢測(cè)技術(shù)將會(huì)不斷發(fā)展。
數(shù)字圖像處理技術(shù)是機(jī)器視覺領(lǐng)域中最基本的技術(shù),其操作直接影響著目標(biāo)物體檢測(cè)效果的好壞,更影響著目標(biāo)物體后續(xù)任務(wù)的準(zhǔn)確性。圖像數(shù)據(jù)處理在1965年有了重大進(jìn)展,Robert 算法開始應(yīng)用于物體的邊緣檢測(cè),接著,Canny 和Sobel 等算法也被提出并加入邊緣檢測(cè)方法的行列[3]。不過(guò)經(jīng)長(zhǎng)時(shí)間不斷試驗(yàn)后,這類一階算子出現(xiàn)了抗干擾能力較差、抗噪聲效果不佳以及描述目標(biāo)邊緣能力不優(yōu)秀的問(wèn)題,可能導(dǎo)致目標(biāo)檢測(cè)漏檢的情況。當(dāng)采用 Sobel、Canny 等邊緣檢測(cè)的算法用于圖像邊緣檢測(cè)時(shí),其閾值選取不具備自適應(yīng)性,從而一定程度上影響了圖像分割的效果。
因?yàn)閭鹘y(tǒng)邊緣檢測(cè)算子逐漸難以適應(yīng)如今的工業(yè)目標(biāo)檢測(cè),許多科研工作者和技術(shù)人員都在這些傳統(tǒng)算子的基礎(chǔ)上不斷改進(jìn),也產(chǎn)生了相對(duì)較好的效果。Cesar Bustacara-Medina 等人[4]對(duì)傳統(tǒng)的Canny 算法進(jìn)行了改進(jìn),在非最大抑制步長(zhǎng)(NMS)中加入曲率信息,以獲得精確的邊緣識(shí)別。Xueqin Li 等人[5]為了解決深色低對(duì)比度磁磚圖像中邊緣的自動(dòng)檢測(cè)問(wèn)題,提出了一種非二次采樣輪廓波變換和勞氏紋理特征測(cè)量相結(jié)合的混合算法來(lái)消除磨削紋理的影響。范崢和劉剛[6]對(duì)鋼球表面圖像進(jìn)行圖像分割、平滑去噪和二值化預(yù)處理,并采用改進(jìn)的中值濾波算法去除噪聲,利用小波變換和多尺度形態(tài)學(xué)融合算法進(jìn)行鋼球的邊緣檢測(cè)。黎號(hào)、湯勃等人[7]針對(duì)帶鋼表面圖像光照不均而使得邊緣檢測(cè)困難的問(wèn)題,通過(guò) Otsu算法獲取自適應(yīng)的閾值改進(jìn)邊緣檢測(cè)算法。Saeedeh Abasi 等人[8]開發(fā)了一種基于使用Sobel 算子計(jì)算梯度大小,Canny 方法定位邊緣點(diǎn)的新算法,利用一些具有代表性的RGB 圖像,比較了新算法與Sobal 和Canny 方法的性能。
本文以VS2017 為開發(fā)平臺(tái),OpenCV3 為圖像處理方法,工業(yè)齒輪為研究對(duì)象,首先通過(guò)直方圖處理、雙邊濾波、局部可變閾值的圖像預(yù)處理方法增強(qiáng)齒輪主體邊緣的細(xì)節(jié),不使用傳統(tǒng)的邊緣檢測(cè)算子,而使用閉運(yùn)算方法提取齒輪的邊緣輪廓,最后使用描述子框定齒輪,以此完成對(duì)目標(biāo)齒輪的邊緣提取,以便更好的對(duì)目標(biāo)進(jìn)行檢測(cè)。本文方法框架如圖1。
圖1:齒輪邊緣檢測(cè)框架
圖2:工業(yè)齒輪原圖
圖3:直方圖
在對(duì)目標(biāo)齒輪邊緣檢測(cè)之前采取直方圖、雙邊濾波、局部可變閾值的圖像預(yù)處理技術(shù)增強(qiáng)工業(yè)齒輪的圖像細(xì)節(jié)。
彩色圖像考慮適應(yīng)多個(gè)分量是常態(tài),由于工業(yè)齒輪原圖(圖2)是彩色的,所以必然也是由多個(gè)分量組成的,另外也要適應(yīng)直方圖的灰度級(jí)技術(shù)。當(dāng)一幅圖像的直方圖可以表示一個(gè)離散函數(shù)h(rk)=nk,這個(gè)圖像的灰度級(jí)范圍就是[0,L-1],其中rk是第k 級(jí)灰度值,nk是圖像中灰度值為rk的像素個(gè)數(shù),即圖像的灰度直方圖表征的是該圖像的灰度分布。假設(shè)灰度圖像的維數(shù)是M×N,其表示圖像的像素總數(shù),則歸一化直方圖可以由(1)式給出:
圖4:雙邊濾波
圖5:閾值處理
圖6:閉運(yùn)算圖
7:描述子框定
p(rk)表示灰度級(jí)rk在圖像中出現(xiàn)概率的估計(jì),歸一化直方圖所有分量之和等于1。工業(yè)齒輪直方圖如圖3所示。
雙邊濾波(Bilateral filter)是一種可以保邊減噪的非線性濾波器,之所以既可以達(dá)到良好的圖像減噪效果,又可以較為完整地保存目標(biāo)物體邊緣,是因?yàn)殡p邊濾波器由兩個(gè)函數(shù)構(gòu)成。一個(gè)函數(shù)是由圖像像素點(diǎn)之間的距離決定濾波器系數(shù),另一個(gè)由像素差值決定濾波器系數(shù)。雙邊濾波的邊緣保持特性主要是通過(guò)在卷積的過(guò)程中組合空域函數(shù)和值域核函數(shù)來(lái)實(shí)現(xiàn)的。在雙邊濾波器中,輸出像素值依賴于鄰域像素值的加權(quán)值組合:
加權(quán)系數(shù) ω(i,j,k,l)取決于空域核和值域核的乘積核,(i,j)和(k,l)分別指兩個(gè)像素點(diǎn)的坐標(biāo)。其中空域核表示為:
(3)式表示根據(jù)像素距離選擇權(quán)重,距離越近權(quán)重越大。值域核表示為:
(3)式和(4)式相乘,就會(huì)產(chǎn)生雙邊濾波權(quán)重函數(shù):
(4)式是根據(jù)像素的差異來(lái)分配權(quán)值,表示即使兩個(gè)像素值相隔較遠(yuǎn),只要愈來(lái)愈接近,就比距離近但差異大的像素點(diǎn)權(quán)重大,這也是為什么雙邊濾波可以保留目標(biāo)物體邊緣的原因。齒輪雙邊濾波處理如圖4所示。
對(duì)于齒輪圖像的閾值處理方法,傳統(tǒng)的全局閾值和Ostu 閾值都是使用固定閾值去完成對(duì)整幅目標(biāo)圖像的閾值處理,如果遇到光照不佳或者場(chǎng)景環(huán)境較差的情況,很難準(zhǔn)確完善閾值處理。所以有效方法是計(jì)算一幅圖像中每一點(diǎn)(x,y)的閾值,這個(gè)閾值以一個(gè)或多個(gè)在(x,y)鄰域計(jì)算的特性為基礎(chǔ)的??梢杂靡环鶊D像中每個(gè)像素點(diǎn)的鄰域像素的標(biāo)準(zhǔn)差和均值來(lái)說(shuō)明局部閾值處理的有效性。
令σxy和mxy表示圖像中以坐標(biāo)(x,y)為中心的鄰域Sxy所包含的像素集合的標(biāo)準(zhǔn)差和均值,下式是局部可變閾值的通用形式:
a 和b 是非負(fù)數(shù),由(6)式可得:
mG是全局圖像均值,分割后的圖像計(jì)算:
其中,f(x,y)是輸入圖像,該式對(duì)圖像中的所有像素位置進(jìn)行求值,并在每個(gè)點(diǎn)(x,y)處使用鄰域Sxy中的像素計(jì)算不同的閾值。齒輪圖像閾值處理如圖5所示。
工業(yè)齒輪圖像經(jīng)過(guò)圖像預(yù)處理之后,再做閉運(yùn)算操作讓齒輪邊緣更明顯,最后使用描述子框定齒輪。
腐蝕和膨脹是形態(tài)學(xué)處理各項(xiàng)技術(shù)的基礎(chǔ),在腐蝕操作過(guò)程中,與背景像素成連通狀態(tài)的前景像素被消除,每進(jìn)行一次腐蝕,圖像中的物體就會(huì)被削減一層。在膨脹操作過(guò)程中,與前景物體成連通狀態(tài)的背景像素轉(zhuǎn)變?yōu)榍熬跋袼?,每進(jìn)行一次膨脹,圖像中的物體就增加一層。開運(yùn)算和閉運(yùn)算則會(huì)同時(shí)運(yùn)用這兩項(xiàng)基礎(chǔ)處理技術(shù),先腐蝕后膨脹稱為開運(yùn)算,先膨脹后腐蝕稱為閉運(yùn)算。
3.1.1 腐蝕
在二值圖像中,Z2表示二維整數(shù)空間,其中有圖像集合 A 和結(jié)構(gòu)元素B,表示為 A?B 的 B 對(duì)A 的腐蝕定義為:
該式指出 B 對(duì)A 的腐蝕是一個(gè)用z 平移的 B 包含在 A 中的所有的點(diǎn)z 的集合。腐蝕的作用在于它可以削減乃至消除圖像中不需要的物體信息。
3.1.2 膨脹
A 和B 是Z2中的集合,表示為 A ⊕B 的 B 對(duì)A 的膨脹定義:
此式以 B 關(guān)于它的原點(diǎn)映像,并且以z 對(duì)映像進(jìn)行平移為基礎(chǔ)。B 對(duì)A 的膨脹是所有位移z 的集合,這樣 和 A 至少有一個(gè)元素是重疊的。膨脹的作用就是使得圖像中想要的物體信息放大,看上去更明顯。
3.1.3 閉運(yùn)算
用 B 對(duì)集合 A 的閉運(yùn)算,表示為 A·B,其定義如下:
此式表明,B 對(duì) A 的閉運(yùn)算就是簡(jiǎn)單地用 B 對(duì) A 膨脹,緊接著用B 對(duì)結(jié)果進(jìn)行腐蝕。閉運(yùn)算操作可以填充齒輪內(nèi)細(xì)小的空洞,消除不需要的細(xì)縫,有連接邊緣鄰近物和平滑輪廓的作用。閉運(yùn)算操作如圖6所示。
在閉運(yùn)算操作之后,齒輪圖像中的特征非常明顯地顯示出來(lái),只需描述子框定即可。一個(gè)區(qū)域的面積定義為該區(qū)域中像素的數(shù)量,區(qū)域的周長(zhǎng)是其邊界的長(zhǎng)度,面積和周長(zhǎng)主要應(yīng)用于感興趣區(qū)域尺寸不變的情形。描述子框定齒輪如圖7所示。
本文方法對(duì)靜態(tài)環(huán)境下的工業(yè)齒輪邊緣提取效果較為理想,且算法的穩(wěn)定性較好,可以完成圖像后續(xù)的目標(biāo)檢測(cè)任務(wù)。不足之處是該方法沒有經(jīng)過(guò)實(shí)際工廠操作間的大樣本嘗試,所以在動(dòng)態(tài)環(huán)境下的檢測(cè)效果未知,可能會(huì)出現(xiàn)少數(shù)誤差,之后可針對(duì)動(dòng)態(tài)效率問(wèn)題繼續(xù)進(jìn)行研究。