陳宇艦
【摘 ?要】針對機械檢測汽車齒輪表面缺陷與尺寸參數(shù)存在成本高、工作量大、檢測速度慢且產(chǎn)品一致性差等問題,利用機器視覺技術進行研究。首先對齒輪的位置進行精確定位,其次,對齒輪的圖像進行預處理,采用去噪技術對齒輪圖像進行去噪,為精確邊緣檢測提供基礎。最后,采用改進的canny邊緣檢測算法對齒輪的邊緣進行提取。通過實驗得出,該算法不僅定位準確,而且齒輪邊緣的完整性能夠清晰的提取出來,降低亮斑對齒輪圖像檢測的誤差,為機械自動化一體設備完成自動檢測提供了前期技術支持。
【關鍵詞】機器視覺;圖像預處理;邊緣檢測;canny邊緣檢測算法;機械自動化
引言
如今,隨著圖像處理、光學成像、傳感器、處理器等技術的快速崛起與發(fā)展,機器視覺在人們生產(chǎn)和生活中的應用越來越廣泛,從工業(yè)生產(chǎn)到金融、安防以及交通領域,其正在推動包括制造業(yè)在內的眾多行業(yè)快速轉型。
由于國際市場已經(jīng)步入成熟,而我國市場正走向成長,兩者之間的發(fā)展差距和進程快慢有了明顯的變化。在市場方面依然是日美等企業(yè)居于主導地位,擁有技術、人才和產(chǎn)品上的絕對優(yōu)勢,占據(jù)全球市場的大頭份額,但在增長速度和市場規(guī)模等數(shù)據(jù)上,我國正在奮起直追且效果顯著,眼下已成為全球第三大機器視覺市場。機械生產(chǎn)同樣,與機器視覺的連接也原來越緊密。本文通過機器視覺代替人工檢測機械上應用的齒輪,人力物力的同時,增加機械的檢測精度。
1齒輪圖像的定位
自動化機器視覺的檢測,首先要定位待檢測目標物體的位置,我們采用機器視覺,首先要對當前圖片中的齒輪位置進行定位。
采用幀差法對齒輪的位置進行定位。
1.1幀差法的算法原理:
幀差法是背景減圖法中的一種,只不過是幀差法不需要建模,因為它的背景模型就是上一幀的圖片,所以該算法處理速度非??欤?guī)罘▽徛儞Q的光照不敏感,提高了機器自動化檢測設備的抗光感性。
2齒輪圖像的預處理
定位完齒輪的位置后,我們要對齒輪圖像進行預處理,去除采集設備產(chǎn)生的工頻噪聲,以及設備之間產(chǎn)生的高頻噪聲,提高圖像的清晰度,和對比度,為后續(xù)的齒輪的邊緣檢測做準備。
2.1中值去噪
中值濾波算法可以有效的去除高頻噪聲,也就是具有低通性,可以有效去除一定頻段的高頻噪聲。對中值濾波的實現(xiàn)原理是把數(shù)字圖像中一點的值用該點的一個區(qū)域的各個點的值的中值代替。我們將一個點的特定長度或形狀的鄰域稱為窗口,那么對于二維圖像的中值濾波,一般采用3*3或5*5的窗口進行濾波。
以3*3的窗口為例,我們對定位后的齒輪圖像進行灰度轉換,得到其灰度圖像,有輸入和輸出兩個矩陣。從bmp_in[1][1]開始算起,通過該像素點領域內的8個像素再加上該像素本身共9個像素計算出中值并映射到輸出矩陣bmp_out[1][1]。接著整個窗口右移到以步長為的速度進行遍歷,遍歷完整張圖片后得到所有中心像素的8個鄰域內的中值,濾除原始像素中的較大像素值,從而達到去除高頻噪聲的作用。但是,在去高頻噪聲的同時也使得齒輪邊緣模糊了,所以舍棄該算法。
2.2均值去噪
在解決中值濾波存在的去除高頻噪聲的同時也改變圖像低像素點的缺陷問題,提出采用平滑線性空間濾波器,也就是均值濾波器。均值濾波器也是低通濾波器,均值濾波器很容易理解,即把鄰域內的平均值賦給中心元素。
均值濾波器用來降低噪聲,均值濾波器的主要應用是去除圖像中的不相關細節(jié),同時盡可能多的保留邊緣細節(jié)。不相關是指與濾波器的模板相比較小的像素區(qū)域。模糊圖片以便得到感興趣物體的粗略描述,因此那些較小的物體的灰度就會與背景混合在一起,較大的物體則變的像斑點而易于檢測。模板的大小由那些即將融入背景中的物體尺寸決定,本文仍然采用3*3的模板。
2.3 高斯濾波算法
高斯濾波是一種線性濾波。就是對整幅圖像進行加權平均的過程,每個像素點的值都由其本身和鄰域內的其它像素值經(jīng)過加權平均后得到。高斯平滑濾波器對于仰制服從正態(tài)分布的噪聲非常有效。
既然是線性濾波,那么就會存在低通性,那么為什么還要使用這種濾波方法呢?實際上我們知道如果取模板中心的系數(shù)比較大,而模板周圍的系數(shù)比較小,則可以在保持圖像原有信息特征的情況下消除部分噪聲,而高斯濾波的模板恰恰符合這個條件。還有一個問題,如果我們直接通過計算得到高斯模板,會存在大量浮點數(shù)的運算,故還需要進行取整變換使得模板周圍的最小系數(shù)為1,中心點系數(shù)取最大值。
采用高斯濾波不僅可以有效地去除噪聲點,而且能夠保留圖像原有的邊緣點信息。
3齒輪的邊緣檢測
將彩色圖像進行去噪后,就要對齒輪的邊緣進行檢測。本文在傳統(tǒng)的canny邊緣檢測算法基礎上,對其進行改進,提出改進的canny算法。
3.1 傳統(tǒng)的canny算法
3.3 改進的canny 算法
我們在計算完梯度后,加入中心像素點的其他四個像素位置,既考慮每個中心像素的八個鄰域值,然后遵從傳統(tǒng)的canny算法,即分別計算每個中心像素與其相鄰的八個像素分別計算矢量梯度距離,并取最大值設為max_dis,最小值設為min_dis,并規(guī)定,高閾值為(max_dis+min_dis)/2,低閾值(max_dis-min_dis)/2,將每個中心像素與鄰域像素的梯度距離分別進行比較,大于低閾值,小于高閾值的自動判別為該像素點的鄰域,否則不認為是鄰域點。通過這種改進的算法,不僅去除大量偽鄰域點,還檢測出的更多真實的鄰域點,從而達到齒輪邊緣更連續(xù)的效果。
結論
本文首先對齒輪的圖片進行預處理,采用去噪效果較好的高斯去噪算法,然后對齒輪的圖像進行邊緣檢測,并提出一種新算法,通過增加相關鄰的像素點求其梯度值,并與高低閾值進行比較,剔除偽邊緣點,增強真是齒輪的邊緣信息。
(作者單位:沈陽維特自動化設備有限公司)