韓曉勇,段錦,董鎖芹
(長春理工大學(xué) 電子信息工程學(xué)院,長春 130022)
傳統(tǒng)的汽車零件尺寸主要通過專門定做的測量工具進(jìn)行測量,該方法測量的精度不高,測量的結(jié)果受人的主觀因素變化較大,測量耗費(fèi)時間多,測量方法繁瑣。在一些情況下,測量的工具硬性接觸被測零件,會對被測零件產(chǎn)生很大的磨損,甚至報廢。傳統(tǒng)的測量技術(shù)已遠(yuǎn)遠(yuǎn)不能滿足現(xiàn)代工業(yè)自動化智能控制的需求。
近年來,數(shù)字圖像處理技術(shù)的飛速發(fā)展推動了機(jī)器視覺技術(shù)的研究,機(jī)器視覺在測量技術(shù)中的應(yīng)用促進(jìn)了工業(yè)技術(shù)生產(chǎn)的智能化,已應(yīng)用于工業(yè)、軍事、農(nóng)業(yè)、醫(yī)藥等各個領(lǐng)域。方化攀[1]提出一種基于區(qū)間分割蛋黃圖像的方法,實現(xiàn)了對雞蛋表皮存在缺陷的精確檢測;劉貝[2]提出一種基于機(jī)器視覺的檢測方法,對石材磚的尺寸大小進(jìn)行精準(zhǔn)檢測;巢淵[3]提出一種基于機(jī)器視覺的檢測系統(tǒng),實現(xiàn)了對芯片表面的缺陷精確快速檢測。伍濟(jì)鋼[4]提出一種基于機(jī)器視覺的尺寸檢測方法,實現(xiàn)了計算機(jī)薄片尺寸的精確快速測量。
本文設(shè)計的基于機(jī)器視覺的汽車焊縫檢測系統(tǒng),實現(xiàn)對生產(chǎn)線上車輛焊縫工件尺寸的自動、精準(zhǔn)檢測。在硬件方案中,結(jié)合實際工業(yè)環(huán)境選擇合適的鏡頭、相機(jī)、光源和交換機(jī)等相關(guān)硬件。在軟件方案中,主要包括兩方面功能設(shè)計,一是對多個工業(yè)相機(jī)聯(lián)網(wǎng)采集顯示、系統(tǒng)參數(shù)初始化、相機(jī)參數(shù)設(shè)置以及當(dāng)前圖像焊縫檢測;二是為了快速、精確檢測焊縫尺寸,提出了標(biāo)定圓的橢圓檢測算法和焊縫檢測算法。
本文設(shè)計的基于機(jī)器視覺的汽車焊縫檢測系統(tǒng)主要通過對圖像采集、圖像處理、焊縫檢測等步驟,將測得的焊縫距離輸出到焊縫尺寸表格中。汽車焊縫檢測系統(tǒng)如圖1所示。
圖1 汽車焊縫檢測系統(tǒng)
為了更好地獲得汽車焊縫工件金屬表面的紋理特征,并且使光源具有明亮、穩(wěn)定和均勻的特性,選擇白色環(huán)形LED作為光源。
通過交換機(jī)建立局域網(wǎng),實現(xiàn)對多個工業(yè)相機(jī)在線操作,將工業(yè)相機(jī)采集的數(shù)字圖像信號通過交換機(jī)輸入到工業(yè)計算機(jī)的圖像處理系統(tǒng)中,實現(xiàn)對焊縫圖像的一系列預(yù)處理、焊縫尺寸檢測和結(jié)果保存。工業(yè)計算機(jī)的自動控制系統(tǒng)接受到圖像處理系統(tǒng)對特定焊縫點(diǎn)的處理消息請求后,通過PLC控制工作平臺上的相機(jī)運(yùn)動,獲取檢測點(diǎn)的焊縫圖像;通過顯示器將工業(yè)計算機(jī)處理的焊縫檢測結(jié)果進(jìn)行顯示。工作平臺包括汽車焊縫工件和固定在電動滑軌上的相機(jī)。系統(tǒng)中一個相機(jī)負(fù)責(zé)多個焊縫檢測點(diǎn)的測量,通過電動滑軌控制相機(jī)在檢測點(diǎn)之間運(yùn)動,多個相機(jī)可以完成對汽車所有焊縫點(diǎn)的測量。
如圖2(a)是工廠提供的待檢焊縫工件,圖2(b)是采集的工件中某點(diǎn)焊縫圖像。
圖2(b)中的標(biāo)定圓的直徑為5mm,其目的在于求出鏡頭對物像的放大倍數(shù),根據(jù)對圖像中已知物件尺寸求出圖像中的標(biāo)尺(每像素代表的實際距離),根據(jù)標(biāo)尺大小求出待檢焊縫的尺寸d=k×N,其中,k為檢測的標(biāo)尺大小,N為檢測到的焊縫間隔像素數(shù)。因為實際工件的焊縫距離不是完全平行的兩條直線,所以,為了提高檢測精度,焊縫距離計算是按照三線間距的平均值。即:在待檢焊縫點(diǎn)B上下相鄰一定像素數(shù)各取A,C一條直線,分別計算A,B,C三條焊縫的距離,取3條焊縫距離的平均值作為檢測B點(diǎn)的焊縫距離;檢測點(diǎn)相隔像素數(shù)根據(jù)檢測要求可在軟件系統(tǒng)參數(shù)設(shè)計界面進(jìn)行修改。
圖2 工件和采集的檢測點(diǎn)圖像
汽車焊縫檢測系統(tǒng)的工作流程如圖3所示。
圖3 汽車焊縫檢測系統(tǒng)流程
第一步,將安裝在支架上的相機(jī)固定在電動滑軌上,打開在線的工業(yè)相機(jī),滑軌上的相機(jī)自動運(yùn)行到待檢的工位點(diǎn),對焊縫圖像進(jìn)行采集和顯示;
第二步,調(diào)整相機(jī)參數(shù)焦距、曝光、增益等大小使圖像成像明亮清晰;調(diào)節(jié)光源系統(tǒng)照射角度和亮度使圖像對比度增強(qiáng)。進(jìn)行上述調(diào)節(jié)后,圖像清晰則將相機(jī)和光源固定,否則,重復(fù)進(jìn)行上述的調(diào)節(jié)步驟。將調(diào)整好的相機(jī)參數(shù)保存在系統(tǒng)配置文件中。在下一次打開相機(jī)時,調(diào)用對應(yīng)的系統(tǒng)配置文件;
第三步,對采集的焊縫圖像進(jìn)行標(biāo)尺檢測。當(dāng)相機(jī)不能垂直照射標(biāo)定圓時,圓變成橢圓,對采集的圖像進(jìn)行橢圓檢測,按檢測的橢圓長軸進(jìn)行標(biāo)尺計算;
第四步,進(jìn)行焊縫直線檢測。檢測的焊縫結(jié)果符合實際要求,則將檢測點(diǎn)的焊縫結(jié)果進(jìn)行保存。否則,重復(fù)進(jìn)行第二、三步進(jìn)行調(diào)節(jié),再進(jìn)行焊縫直線檢測。
如圖4所示,采集汽車焊縫點(diǎn)的圖像,對其進(jìn)行一系列預(yù)處理,將預(yù)處理后的圖像進(jìn)行標(biāo)定圓的橢圓檢測,確定圖像的標(biāo)尺大小;按照檢測的橢圓長軸對采集的整幅圖像進(jìn)行校正;并對焊縫線距離進(jìn)行檢測,將檢測的焊縫數(shù)據(jù)保存。汽車焊縫檢測算法中,最重要的是標(biāo)定圓的橢圓檢測和改進(jìn)的Hough變換算法。
圖4 汽車焊縫檢測算法流程圖
在采集圖像過程中,當(dāng)工件放置傾斜時,工業(yè)相機(jī)不能垂直照射被測物,采集的到圖像會發(fā)生形變,標(biāo)定圓變成橢圓,需要對采集的圖像進(jìn)行橢圓檢測。
采用中值濾波對采集的汽車焊縫圖像進(jìn)行處理,保留圖像的邊緣。運(yùn)用Canny邊緣檢測對圖像中的主要邊緣進(jìn)行提取處理,再對處理后的圖像進(jìn)行輪廓提取。輪廓就是提取圖像中的邊界,邊界分為外邊界和孔邊界,根據(jù)提取輪廓類型不同,得到的輪廓也不同。系統(tǒng)采用輪廓檢測算法來確定焊縫圖像的外邊界、孔邊界和它們的層次關(guān)系[5]。檢測結(jié)果如圖5所示。
使用最小二乘擬合方法對檢測出的焊縫圖像輪廓進(jìn)行橢圓擬合,橢圓曲線方程式如式(1)所示:
其中,F(xiàn)(xi,yj)是點(diǎn)(xi,yi)到F(x,y)的代數(shù)距離。
圖5 焊縫圖像輪廓提取
對檢測出的擬合橢圓按大小進(jìn)行篩選。根據(jù)光學(xué)成像原理,標(biāo)定圓到相機(jī)鏡頭的物距和相機(jī)靶面成像之間的光路近似為相似三角形。根據(jù)相似三角形原理,首先,計算采集圖像的橢圓長軸間隔像素數(shù),計算如公式(3);然后,根據(jù)計算的橢圓長軸像素數(shù),對(1)(2)式擬合橢圓長軸像素數(shù)進(jìn)行篩選;最后,將待檢測的橢圓長軸控制在一個合理范圍內(nèi)。這種算法剔除了誤檢的橢圓,準(zhǔn)確快速地檢測出標(biāo)定圓。檢測的結(jié)果如圖6所示,物距L可以在系統(tǒng)軟件的系統(tǒng)參數(shù)設(shè)置界面進(jìn)行輸入。
其中,N表示物體在相機(jī)靶面上成像的像素間隔數(shù),μ表示相機(jī)的像元尺寸大小,單位μm,f表示相機(jī)的焦距,單位為mm,D表示實際物體的大小,單位為mm。
圖6 標(biāo)定圓的橢圓檢測
將檢測橢圓的長軸和短軸,用十字的形式畫在焊縫圖像上,用檢測的橢圓長軸來標(biāo)定實際圓直徑,計算標(biāo)尺值,公式如式(4)所示:
其中,Scal表示圖像中的標(biāo)尺大小,單位為μm/pix,D表示標(biāo)定圓的實際直徑,單位為μm,ΔY表示在圖像中檢測到的橢圓長軸像素間隔,單位為像素(pix)。
一個具有實際應(yīng)用價值的汽車焊縫檢測系統(tǒng),在滿足快速檢測的基礎(chǔ)上,還需完成精確的檢測。Hough變換檢測算法是工業(yè)檢測的基本方法,隨著參數(shù)數(shù)量的增加,計算量會急劇增大;而且,由于工件邊緣粗糙和環(huán)境噪聲的影響,會出現(xiàn)偽直線和誤檢的問題,使檢測精度降低。
針對Hough變換的上述缺點(diǎn)。選擇焊縫檢測ROI區(qū)域,將其保存在系統(tǒng)文件中,進(jìn)行下一次焊縫檢測時,從系統(tǒng)文件中讀取對應(yīng)檢測點(diǎn)的ROI區(qū)域進(jìn)行焊縫檢測;采用8領(lǐng)域?qū)吘壪袼剡M(jìn)行分類[6],剔除偽直線和誤檢直線;對工件表面出現(xiàn)的斷線進(jìn)行延長、平行直線間隔過小的直線進(jìn)行合并和斜率異常的線進(jìn)行剔除。
圖7 檢測的焊縫結(jié)果
圖7(a)是使用傳統(tǒng)Hough變換的檢測結(jié)果,圖7(b)是使用改進(jìn)的Hough變換的檢測結(jié)果,圖7(c)是在檢測當(dāng)前焊縫點(diǎn)的距離。
在VS2010中的調(diào)試編寫代碼,生成軟件界面,經(jīng)過調(diào)試,軟件界面功能正確。主界面包括系統(tǒng)參數(shù)設(shè)置、檢測工位顯示和圖像文件處理功能。軟件界面實現(xiàn)如圖8所示。
圖8 軟件界面實現(xiàn)
打開檢測工位顯示界面,從系統(tǒng)配置文件中讀取系統(tǒng)的參數(shù)、相機(jī)參數(shù)進(jìn)行初始化,可對在線相機(jī)進(jìn)行實時采集、幀保存、批量保存、當(dāng)前圖像處理等操作。打開圖像文件處理界面,從系統(tǒng)配置文件中讀取系統(tǒng)參數(shù),對保存的圖像文件進(jìn)行標(biāo)尺檢測、焊縫檢測、結(jié)果保存等操作。
用游標(biāo)卡尺多次測量平均A點(diǎn)焊縫的間距為:2.990mm,多次測量平均B點(diǎn)的焊縫間距為3.655mm。用設(shè)計的系統(tǒng)軟件對A點(diǎn)、B點(diǎn)各測量10組數(shù)據(jù),測量結(jié)果如表1所示,測量數(shù)據(jù)分析如表2所示。
表1 測量結(jié)果 單位:mm
表2 測量結(jié)果誤差
由表2可得,A點(diǎn)平均誤差為0.008mm,方差為5.629E-05;C點(diǎn)的平均誤差為0.006mm,方差為3.909E-05。測量的精度可達(dá)到0.006mm,測量方差可達(dá)到3.909E-05,測量結(jié)果滿足實際工程要求,比實際人工測量結(jié)果更加穩(wěn)定和精確,并且沒有人工誤差的代入。
本文闡述了基于機(jī)器視覺的汽車焊縫檢測系統(tǒng)的實現(xiàn)流程和汽車焊縫檢測算法。系統(tǒng)可實現(xiàn)多個相機(jī)對焊縫點(diǎn)的自動測量,系統(tǒng)測量精度為0.006 mm,測量方差量級為10-5,提高了焊縫檢測的精度和實時性,避免人工帶來的誤差,可滿足實際工作環(huán)境下汽車焊縫的檢測需求。對于汽車焊縫的精準(zhǔn)自動化測量有一定的參考意義。