葛敏杰,嚴時進,戴家興,董晨浩,張瞳
(紹興文理學院 機械與電氣工程學院,浙江紹興,312000)
隨著現(xiàn)代化生產(chǎn)的高速發(fā)展,中國精密測試儀器行業(yè)實力已不容小覷,已經(jīng)初步建立了產(chǎn)品類別較為完整、具備相當制造規(guī)模與研發(fā)能力的工業(yè)系統(tǒng)[1]。而鏈輪作為機械設備的重要組成部分,是一種工業(yè)必需品,廣泛應用于化工、紡織等行業(yè)的機械傳動裝置。鏈輪的精度是影響一些工業(yè)產(chǎn)品好壞的決定性因素。所以,提高鏈輪內(nèi)徑的檢測精度對先進測量儀器發(fā)展進程有著十分重要的意義。
傳統(tǒng)的鏈輪內(nèi)徑測量采用游標卡尺測量法、內(nèi)徑千分尺測量法等,其中游標卡尺、內(nèi)徑千分尺以其輕便性,成本低等優(yōu)勢廣泛地在授課教學以及工業(yè)檢測中使用。但由于屬于接觸式測量,測量過程中容易對物體表面產(chǎn)生一定損傷,還存在著測量誤差大、測量器械使用門檻較高等缺陷。并且人工檢測存在效率低、可靠性差、易因工人疲勞而產(chǎn)生誤檢等弊端,難以滿足現(xiàn)在制造業(yè)強調(diào)的實時、快速、在線和非接觸檢測的特殊要求[2]。而隨著圖像處理水平的提高,機器視覺逐漸成為熱門的研究內(nèi)容,是取代傳統(tǒng)測量手段的理想方式之一。同時對于傳統(tǒng)的鏈輪內(nèi)徑圖像處理算法,因為有著較多的圖像噪聲等的干擾因素,其檢測精度已經(jīng)無法滿足當下工業(yè)生產(chǎn)要求,因此對鏈輪內(nèi)徑的視覺檢測的研究有著重要意義。
本文針對傳統(tǒng)檢測效率低以及傳統(tǒng)算法對鏈輪邊緣動態(tài)噪聲處理能力弱等不足,設計了一種基于機器視覺的鏈輪內(nèi)徑檢測系統(tǒng)。通過相機將拍攝到的鏈輪圖像轉(zhuǎn)化為數(shù)字信號,再通過圖像處理算法,過濾掉大部分噪聲,增強鏈輪內(nèi)徑圖像輪廓邊緣信息對比度,增加對鏈輪內(nèi)徑的測量精度。與傳統(tǒng)人工內(nèi)徑測量技術和傳統(tǒng)的鏈輪內(nèi)徑圖像增強檢測算法技術相比,該方法具有更高的精度與效率。
現(xiàn)實中存在各種干擾,例如電源接入的電磁干擾、環(huán)境亮度不夠均勻等。這些干擾會使圖像采集產(chǎn)生不同形式的噪聲,例如,拍攝環(huán)境亮度較暗或相機長期工作溫度較高時,容易產(chǎn)生高斯噪聲;又例如,相機傳輸信道,解碼處理等過程容易產(chǎn)生椒鹽噪聲。對于本文所涉及的系統(tǒng)而言,電源接入的電磁干擾是最大的影響,因此在圖像采集過程中,鏈輪邊緣處像素值不明確,存在明顯的動態(tài)噪聲,使得后續(xù)的圖像處理以及內(nèi)徑計算精度受到不少影響。因此對噪聲的過濾是圖像預處理過程中非常重要的一環(huán)。而傳統(tǒng)的濾波算法效果一般,往往噪點對輸出圖像有較大影響,無法較好地保護圖像細節(jié)。例如,均值濾波使用模板內(nèi)所有像素的平均值代替模板中心像素灰度值[3]。顯而易見,若圖像存在噪聲,模板內(nèi)噪點數(shù)值會進入均值計算,輸出像素值會受到干擾;又例如,中值濾波計算模板內(nèi)所有像素中的中值,并用所計算出來的中值代替模板中心像素的灰度值[4],該方法能夠簡單有效地過濾脈沖噪聲,但對于該系統(tǒng)拍攝的圖像,會導致圖像不連續(xù),不能有效地保留鏈輪邊緣細節(jié)。
本系統(tǒng)采用濾波能力相對較好的雙邊濾波。雙邊濾波算法 (Bilateral Filters)于 1998 年由 C Tomasi和 R Manduchi提出[5]。雙邊濾波同時考慮了像素的歐式距離和像素范圍域的輻射差異[7],即空域信息和灰度相似性,離模板中心的較遠的像素點賦予較小的權(quán)值,弱化噪聲影響。與過去用的傳統(tǒng)算法如維納濾波和高斯濾波對比,邊緣處理較好,不會過于模糊,對高頻細節(jié)的保護效果較好。雙邊濾波保護了圖像整體像素的細節(jié),同時起到了對圖像的降噪平滑、保持邊緣的效果。
公式(1)和(2)給出了雙邊濾波的操作。Iq為輸入圖像,為濾波后的圖像:
參數(shù)σs定義了用于過濾像素的空間鄰域的大小,σr控制了相鄰像素由于亮度差異而下降的程度,對權(quán)重的總和進行標準化。
雙邊濾波算法較好地濾除了圖像噪聲,但濾波會使得圖像趨于平滑,對比度降低。而對鏈輪而言,圖像信息主題主要為邊緣信息,濾波后會使其不明確區(qū)域增加,因此需要進行對比度增強的處理。本系統(tǒng)采用增強效果較好的小波變換算法。
小波變換(wavelet transform,WT)由 J Morlet首先提出。小波變換是進行信號時頻分析和處理的理想工具。其在高頻像素處對時間進行細化,低頻處對頻率進行拆分,進而可聚焦到圖像模板內(nèi)任意像素集合內(nèi)的任意信號細節(jié)使得處理過后的臨域內(nèi)的像素值波動較小,趨于完整[6]。在增強過程中,其利用小波函數(shù)系表示或逼近原始信號,分離出高頻成分與低頻成分[7]。再通過對高頻成分設定閾值函數(shù)過濾噪聲,通過乘以不同增強系數(shù)的方法在不同的尺度上對不同頻率范圍內(nèi)圖像的細節(jié)分量進行增強。這樣就能夠在突出圖像細節(jié)特征的同時,有效抑制圖像噪聲的影響,使圖像輪廓更加突出[8]。
小波函數(shù)系用小波函數(shù)ψ(x)和尺度函數(shù)ψ(x)來表示,定義為[9]:
式中,j0為任意一個起始的尺度,cj0(k)為尺度系數(shù),dj(k)為小波系數(shù)。
在實際測量環(huán)境中,環(huán)境亮度、鏈輪的位置對于圖像采集有一定影響。環(huán)境亮度過低時,采集到的圖像噪聲較多,會增加后續(xù)的處理難度。因此硬件上添加了可調(diào)光源,由于較小的亮度影響可以軟件處理,所以亮度要求不高。在系統(tǒng)使用前,使用MVS觀察相機采集圖像,手動調(diào)節(jié)可調(diào)光源至觀察到明顯鏈輪輪廓。而鏈輪位置的不同會導致拍攝圖像的畸變,對系統(tǒng)檢測精度影響較大,因此需要在硬件上添加自動調(diào)節(jié)系統(tǒng),以增加測量精度,減少人工擺正的環(huán)節(jié),減小一定的時間成本。所以該系統(tǒng)需要完成鏈輪位置控制與內(nèi)徑測量兩功能。
硬件整體設計框圖如圖1所示。
圖1 硬件設計框圖
其中,作為位置控制的反饋環(huán)節(jié)與內(nèi)徑測量的輸入裝置,相機的選擇是整個系統(tǒng)的關鍵。相機使用MV -CE200-10UM,該相機為2000萬像素1″CMOS USB3 0工業(yè)面陣相機,其像元尺寸為2 4μm×2 4μm,分辨率為5472×3648,信噪比為41 5dB。該工業(yè)相機具有較高的傳輸能力、圖像穩(wěn)定能力和抗干擾能力等,圖像獲取和傳輸損失較少,以此保證內(nèi)徑測量精度。
相機捕獲圖像信息后,將數(shù)據(jù)傳入上位機,若已完成鏈輪位置控制,上位機進行后續(xù)的圖像處理。若未完成,則通過HC-05藍牙模塊與單片機進行通訊,傳輸鏈輪位置偏差數(shù)據(jù)。該藍牙模塊是基于Bluetooth Specification V2 0帶EDR藍牙協(xié)議的數(shù)傳模塊??梢詫崿F(xiàn)10m距離通信。以此完成非接觸式測量的目標。
藍牙傳輸過程中,需要單片機獲取數(shù)據(jù)并在此之后,控制步進電機對鏈輪位置進行改變??紤]單片機的使用效率以及經(jīng)濟性,本系統(tǒng)的單片機選擇STM32F103C8T6。它是基于ARM Cortex-M 內(nèi)核的32位的微控制器,工作頻率為72MHz,能有效滿足本系統(tǒng)要求。
該設計由兩部分完成,一是鏈輪位置控制,二是鏈輪內(nèi)徑測量。
2.2.1 鏈輪位置控制
LabVIEW具有圖形化、多線程、程序編寫門檻低、設計效果美觀等特點。因此使用LabVIEW進行上位機設計。
圖2為LabVIEW前面板,選擇串口、波特率、停止位和數(shù)據(jù)位等信息后,點擊“啟動”,系統(tǒng)開始工作,進行鏈輪位置調(diào)節(jié)。當鏈輪位于相機正下方,進行內(nèi)徑測量,于“顯示窗口”中顯示當前時間、鏈輪序號和鏈輪內(nèi)徑數(shù)值,同時記錄于后臺表格。該程序在執(zhí)行一次后自動停止,等待下一鏈輪的放置以及啟動命令。點擊“關閉串口”可斷開與下位機的連接。點擊“清除窗口”可對“顯示窗口”的數(shù)據(jù)進行清除。
圖2 LabVIEW前面板
具體控制流程如圖3所示。
圖3 鏈輪位置控制流程圖
第一步,LabVIEW配置藍牙通訊參數(shù),通過通用異步收發(fā)傳輸器(UART)與單片機建立聯(lián)系;
第二步,界面點擊啟動按鍵,通過USB3 Vision協(xié)議與相機通訊,獲取相機數(shù)據(jù),并實時地記錄并覆蓋于本地;
第三步,由于該相機為黑白相機,像素值差異較大??梢酝ㄟ^遍歷法尋找圓心,即對圖片先進行行搜索,尋找每一行中像素數(shù)值變化最明顯的兩個點,以像素為單位記錄兩點距離。再對距離數(shù)組進行搜索,尋找最大值,記錄最大值所在行值。再對列進行上述操作,尋找最大值所在列值,以此確定鏈輪圓心。該數(shù)據(jù)與圖像中心點進行比對,估計橫縱位置差距。若圓心與圖像中心點重合,則跳過后續(xù)步驟,進行直徑測量程序;
第四步,LabVIEW通過藍牙與STM32進行通訊,于后臺實時發(fā)送鏈輪與圖像中心點的橫縱差距;
第五步,STM32控制由兩個步進電機組成的十字滑臺模組緩慢移動,改變鏈輪位置。
通過不斷循環(huán)步驟二至五,最終達到鏈輪中心位于相機正下方。
圖4為LabVIEW前面板運行圖,此時藍牙通訊串口選擇COM3接口,波特率設置為9600,停止位為1,數(shù)據(jù)位為8,無校驗位。按下“啟動”按鍵后,對同一鏈輪進行測試,結(jié)果顯示于“顯示窗口”。
圖4 LabVIEW前面板運行圖
2.2.2 鏈輪內(nèi)徑測量
測量算法由圖像獲取、圖像去噪、圖像增強和直徑測量四部分組成。
圖5 測量程序流程框圖
圖像獲取:LabVIEW通過USB3 Vision協(xié)議,與相機進行通訊獲取圖像數(shù)據(jù)。
圖像去噪:本系統(tǒng)使用雙邊濾波,即使用特定模板對圖像進行卷積。根據(jù)公式(1),該模板中,臨近權(quán)值接近1,對卷積結(jié)果起較大作用;邊緣權(quán)值接近0,對結(jié)果起較小作用。因此對原始圖像低頻區(qū)域進行卷積,可以起到高斯模糊的作用,對原始圖像高頻區(qū)域進行卷積,可以減小邊緣像素值對結(jié)果的影響,從而可保護圖像的細節(jié)信息。所以相比與其他算法,使用雙邊濾波不僅有效抑制噪聲,同時有效保留圖像大部分細節(jié),保證鏈輪邊緣不確定區(qū)域不會拉伸。
圖像增強:本系統(tǒng)進行Harr小波變換。對M*N大小的圖像,首先進行行分解,在第一行上取每一對的平均值,放前N/2處,再將每一對的第一個像素值與該平均值做差,放后N/2處。依次對原始圖像的每一行進行上述操作;再進行列分解,在第一列上取每一對的平均值,放在前M/2處,再將每一對的第一個像素值與該平均值做差,放后M/2處。依次對原始圖像的每一列進行上述操作。以此完成了Harr小波的一次分解。可以按照實際需要,圖像進行多次分解。分解后的圖像可以得到低頻與不同高頻分量,對其乘以不同增強系數(shù)。處理后再進行小波重構(gòu)得到增強后的圖像。
測量直徑:采用遍歷法,對鏈輪位置控制中獲取的最大值所對應的行值和列值進行平均,計算得直徑像素點數(shù),乘以映射系數(shù),求得實際直徑。其中映射系數(shù)跟相機高度有關,在硬件系統(tǒng)搭建后,對已知標稱n的鏈輪的直徑進行像素點計數(shù),計數(shù)值為m。則映射系數(shù)為n/m。
本文對直徑標稱2 5cm鏈輪進行實驗。游標卡尺10次測量平均結(jié)果為24 980mm。使用傳統(tǒng)的多尺度細節(jié)增強作為對照,經(jīng)處理后獲得如圖6的圖像。
圖6(a)為采集到的鏈輪原圖。圖6(b)為原始圖像某邊緣的圖像信息,從中可以看出,鏈輪邊緣像素值不明確,存在較寬的不確定帶,在相機連續(xù)拍攝過程中,該不確定帶中動態(tài)噪聲明顯,因此對若直接進行檢測,檢測結(jié)果有較大波動,而該波動會導致測量的誤差。測量結(jié)果為25 056mm。圖6(c)為多尺度細節(jié)增強處理后的圖像,該圖像鏈輪邊緣像素值仍舊不夠明確,其測量結(jié)果為24 948mm;圖6(d)為本文提出的測量方法,通過肉眼觀察法,其對比度增強效果最好,判斷出的邊緣信息更加明確,其測量結(jié)果為24 987mm。由以上數(shù)據(jù)可得,本系統(tǒng)測量精度較人工以及其他算法效果較好。
圖6 實驗結(jié)果圖
本文設計的系統(tǒng)通過藍牙連接上位機與下位機,實現(xiàn)了非接觸式測量,既避免了物體表面不受損壞,又保障了使用者的安全。同時使用MV-CE200-10UM相機,以像素為單位進行鏈輪內(nèi)徑計算,相比于人工游標卡尺測量與傳統(tǒng)的鏈輪內(nèi)徑圖像增強檢測算法等方法,其測量精度較高,能夠達到工業(yè)5絲的精度要求。
但本文提及的算法計算量大,對于計算設備要求高,還無法實現(xiàn)硬件獨立工作。因此接下來的工作中需要進行以下優(yōu)化,在算法方面上,需要對計算進一步優(yōu)化,減小計算量,提高執(zhí)行速度。在硬件方面,需要提高鏈輪中心點瞄準速度與精度,通過引入PID等控制理論,提高控制精度,實現(xiàn)控制的穩(wěn)準快。