毛東宸,孔令云,李博,李明科
(1.西京學(xué)院 電子信息學(xué)院,陜西西安,710123;2.河南省??C(jī)器人制造有限公司,河南新鄉(xiāng),453000)
近年來,機(jī)器視覺技術(shù)的快速發(fā)展為焊縫缺陷檢測提供了新的思路和工具。利用機(jī)器視覺技術(shù),可以在不需要人工干預(yù)的情況下,高效地進(jìn)行焊縫缺陷檢測,提高生產(chǎn)效率和產(chǎn)品質(zhì)量。李超等作者提出了一種基于混合高斯模型的改進(jìn)背景減法提取焊縫缺陷區(qū)域的方法,該方法能夠?qū)缚p缺陷進(jìn)行識別和分類,準(zhǔn)確率超過95%[3]。谷靜等作者提出了一種基于深度學(xué)習(xí)改進(jìn)Faster RCNN 模型的焊縫缺陷檢測算法,通過多尺度特征圖并充分利用底層特征取得缺陷檢測結(jié)果,可以對小目標(biāo)物體的檢測有較高的檢測精度[4]。王巖等人提出了一種提取具有多個閾值的X 射線圖像特征的方法,使用SVM 技術(shù)進(jìn)行缺陷分類并進(jìn)行定位,該方法在低對比度X 射線圖像中分割和定位缺陷是有效可行的[5]。蔡述庭等人則基于Halcon 軟件利用圖像處理對美標(biāo)電源線進(jìn)行缺陷檢測,對該電源線的檢測具有較好的檢測效果[6]。
本文將基于Halcon 軟件對相機(jī)進(jìn)行標(biāo)定并對焊縫缺陷進(jìn)行檢測和分析,進(jìn)一步探索機(jī)器視覺技術(shù)在焊接領(lǐng)域應(yīng)用的方法和途徑。通過與前人研究的比較和驗(yàn)證,本文的成果可以更加準(zhǔn)確、高效地完成焊縫缺陷檢測任務(wù),具有重要的理論和實(shí)際價值。
本文采用KinectV2 相機(jī)對焊縫進(jìn)行檢測,使用相機(jī)檢測的圖像如圖1 所示。
圖1 Kinect v2 相機(jī)
由于相機(jī)采集圖像時往往會產(chǎn)生畸變,所以需要先對相機(jī)進(jìn)行標(biāo)定來消除畸變,之后再對圖像進(jìn)行一定程度上的處理,主要包括:去噪、閾值分割、形態(tài)學(xué)運(yùn)算等操作,最后對處理后的圖像進(jìn)行缺陷檢測工作,流程圖如圖2 所示。
圖2 焊縫識別流程圖
機(jī)器視覺的核心在于通過圖像采集獲取三維世界信息。在這個過程中,我們需要解決兩個問題:如何將相機(jī)坐標(biāo)系中的坐標(biāo)與世界坐標(biāo)系中的坐標(biāo)進(jìn)行轉(zhuǎn)換,以及如何校正相機(jī)帶來的畸變,相機(jī)產(chǎn)生的畸變?nèi)鐖D3 所示。解決這兩個問題的方法就是相機(jī)標(biāo)定,獲取相機(jī)的內(nèi)參和外參,使相機(jī)坐標(biāo)系與世界坐標(biāo)系建立起聯(lián)系,就能消除圖像的畸變。
圖3 相機(jī)產(chǎn)生的畸變類型
不同于傳統(tǒng)的張正友標(biāo)定法,本文采用Halcon 軟件的相機(jī)標(biāo)定助手進(jìn)行標(biāo)定,可以更快速獲得相機(jī)的內(nèi)部參數(shù),對圖像進(jìn)行畸變校正,以獲得精確的圖像信息。
Halcon 相機(jī)標(biāo)定分為如下幾個步驟:生成標(biāo)定板、使用助手進(jìn)行標(biāo)定、使用laplace_of_gauss 算子對圖像進(jìn)行校正。
在標(biāo)定過程中,標(biāo)定板的選擇是非常重要的,因?yàn)楹线m的標(biāo)定板能夠保證成像清晰度和標(biāo)定精度。下面介紹適用于本文中焊縫檢測的標(biāo)定板生成方法:在程序窗口中輸入算子gen_caltab(9,9,0.004,0.5,'C∶/Users/57812/Pictures/caltab.descr','C∶/Users/57812/Pictures/caltab.ps'),并運(yùn)行。這會在指定的文件夾中生成名為“caltab.descr”描述文件,如圖4 所示,其中生成標(biāo)定板的行和列標(biāo)記點(diǎn)數(shù)為9,標(biāo)記點(diǎn)之間的距離為0.015,標(biāo)定點(diǎn)的直徑為0.5。
圖4 相機(jī)參數(shù)標(biāo)定板
標(biāo)定過程包括選擇標(biāo)定板類型、采集圖像、搜索標(biāo)記點(diǎn)以及進(jìn)行標(biāo)定計算。只要正確選擇算子并根據(jù)需要進(jìn)行參數(shù)設(shè)置,就可以完成相機(jī)的標(biāo)定。標(biāo)定流程如圖5 所示。
圖5 相機(jī)標(biāo)定流程圖
進(jìn)行相機(jī)標(biāo)定時,標(biāo)定圖片的數(shù)量應(yīng)該在15~30 張左右,可以將圖片旋轉(zhuǎn)和傾斜,角度在45 度內(nèi),以保證所有標(biāo)定點(diǎn)都能完整地呈現(xiàn)在標(biāo)定圖中。本案例采樣了24 張標(biāo)定板圖像,如圖6 所示。
圖6 相機(jī)標(biāo)定圖
在標(biāo)定過程中,應(yīng)保持標(biāo)定板干凈,并且在拍攝時要保證清晰對焦,避免噪聲對標(biāo)定精度造成影響。但是這些干擾依舊不可避免,因此我們首先對采集的標(biāo)定板圖像進(jìn)行去噪。為此,我們使用LOG 算法,它是由高斯濾波算法和拉普拉斯濾波算法組合而成,其公式如下:
其中,f(x,y)是二維離散信號,G(a,b)是二維高斯函數(shù),L(a,b)是二維拉普拉斯函數(shù)。在程序中輸入算子laplace_of_gauss(Image,LaplaceImage,2.0,5,'mirrored'),生成圖7 中的圖片,可以明顯看出通過LOG 算法處理之后,最終得到標(biāo)定板的邊緣信息,且表現(xiàn)出很好的邊緣檢測能力。
圖7 laplace_of_gauss 邊緣檢測
對于經(jīng)過標(biāo)定的相機(jī)采集的圖像,圖像的質(zhì)量有所提高,但仍可能存在一些缺陷,如噪聲大、清晰度不高等問題。因此,為了準(zhǔn)確識別焊縫缺陷,須進(jìn)行圖像預(yù)處理。常見的圖像預(yù)處理方法包括去噪、增強(qiáng)、分割和形態(tài)學(xué)處理等,可以根據(jù)需求和實(shí)際情況選擇不同的技術(shù)進(jìn)行組合使用,從而得到最佳的圖像預(yù)處理效果。本文采用的工作流程如圖8所示。
圖8 圖像預(yù)處理流程圖
對于數(shù)字圖像預(yù)處理而言,平滑和去噪是其的基本操作。平滑的目的是消除圖像中的高頻成分,強(qiáng)化低頻部分,去噪是消除圖像噪聲的一種處理。在圖像處理的過程中,有多種方法可供選擇,例如均值濾波、高斯濾波和中值濾波等。本文主要采用高斯濾波和小波變換的組合方式對采集到的圖片進(jìn)行去噪。其中高斯濾波是通過對像素點(diǎn)周圍的鄰居像素進(jìn)行權(quán)值平均,來計算出該像素點(diǎn)的新值。而小波變換是基于小波分析和閾值處理技術(shù),將一幅圖像通過DWT 拆分成多個子帶,并對每個子帶進(jìn)行不同的閾值處理。
但由于在某些情況下二者都不能完全消除噪聲,故本文采用兩者結(jié)合的方法高斯小波濾波方法對圖像進(jìn)行濾波去噪處理,其公式為:
式中fdenoised(t)表示去噪后的信號,wj,k表示小波系數(shù)的權(quán)值,可以通過高斯濾波器計算得到。
如圖9(a)所示,圖片的表面帶有噪音,經(jīng)過高斯小波濾波處理之后達(dá)到了圖9(b)的效果。
圖9
圖像灰度變換是數(shù)字圖像處理中常用的預(yù)處理技術(shù),用于調(diào)整圖像的亮度和對比度以獲得更好的可視化效果。由于成像系統(tǒng)的限制,圖像有時可能具有低對比度或較窄的動態(tài)范圍,因此灰度變換成為重要的一步?;叶茸儞Q使用數(shù)學(xué)公式修改每個像素的灰度值,以達(dá)到最佳的視覺效果,用Gray 表示灰度值,R、G、B 表示紅、綠、藍(lán)三個通道的灰度值,其公式如下:
常見的灰度變換方法包括對比度拉伸、伽瑪校正和閾值。本文采用伽瑪校正方法進(jìn)行非線性灰度變換,調(diào)整每個像素的灰度值以提高圖像對比度和亮度。其公式如下:
其中,r 是原始圖像的像素值(范圍通常為0~255),s 是增強(qiáng)后的像素值,c 是增益因子,γ 是伽馬值。γ 直接決定了輸出像素灰度值變化的強(qiáng)度:當(dāng)γ>1 時,輸出像素的變化會緩慢,圖像的整體亮度和對比度會較低;當(dāng)γ=1 時,輸出像素的變化與輸入像素的變化相似,圖像不會發(fā)生明顯變化;當(dāng)γ<1 時,圖像的強(qiáng)光部分會被壓縮,而陰影部分的細(xì)節(jié)得到增強(qiáng),從而提高圖像的整體對比度和細(xì)節(jié)。
在對工件圖像進(jìn)行高斯小波濾波處理后,需要將其轉(zhuǎn)換為灰度圖像,并進(jìn)行伽馬校正來修正圖像的亮度。使用函數(shù)rgb1_to_gray(GaussWavelet,GrayImage)將圖像轉(zhuǎn)換為灰度圖像。經(jīng)過伽馬校正后,工件灰度圖像的效果如圖10 所示。
圖10 工件灰度圖像
圖像閾值分割二值化是焊縫識別中常用的方法。在焊接過程中,焊縫邊緣與背景的對比度較大,顏色不同。因此,可以使用下面的公式將焊縫圖像二值化,使背景與焊縫分離,從而實(shí)現(xiàn)焊縫的自動檢測。
其中,f(x,y)表示原始圖像在(x,y)處的像素值,T 為OTSU 算法自適應(yīng)選擇出來的閾值。根據(jù)OTSU 算法的定義,T 被選取為使類間方差最大的閾值。
在實(shí)際作業(yè)中,可以使用一些閾值分割算法,如固定閾值二值化、自適應(yīng)閾值二值化和OTSU 二值化等。本文采用OTSU 二值化算法調(diào)用算子threshold,設(shè)定閾值在80~149 的范圍,在范圍之內(nèi)的所有像素被選中,從而將工件從背景中分割開來,從而獲得最佳的二值化結(jié)果如圖11所示。
圖11
形態(tài)學(xué)運(yùn)算是數(shù)字圖像處理中一種基本的圖像處理技術(shù)。形態(tài)學(xué)運(yùn)算的目的是根據(jù)結(jié)構(gòu)元素對原始圖像進(jìn)行像素級別的操作,從而改變圖像的形狀、大小或提取出感興趣的區(qū)域,常用于圖像預(yù)處理、圖像分割、輪廓提取、形狀分析等方面。
通過在二值圖像中進(jìn)行膨脹運(yùn)算,可以使焊縫區(qū)域邊界更加清晰,便于后續(xù)的分割和形態(tài)學(xué)特征提取。運(yùn)用腐蝕運(yùn)算可以消除對后續(xù)處理過程產(chǎn)生的干擾,增強(qiáng)焊縫的連續(xù)性和穩(wěn)定性,提高檢測精度。但是由于膨脹和腐蝕運(yùn)算都是局部操作,對全局特征的處理效果有限,可能會導(dǎo)致邊緣模糊、物體形態(tài)變化等問題。所以需要涉及其他的形態(tài)學(xué)運(yùn)算,如開運(yùn)算、閉運(yùn)算、梯度運(yùn)算、頂帽運(yùn)算和底帽運(yùn)算等。它們都是以膨脹和腐蝕為基礎(chǔ),通過組合、加權(quán)等方式進(jìn)行的一些高級運(yùn)算,可以更加精細(xì)地提取出圖像中的區(qū)域。
本文在焊縫缺陷檢測中使用開運(yùn)算、閉運(yùn)算和頂帽運(yùn)算的組合。在焊縫缺陷檢測中應(yīng)用開運(yùn)算可以消除噪點(diǎn)和小氣孔等缺陷,使后續(xù)檢測更加準(zhǔn)確可靠,其公式如下:
在焊縫缺陷檢測中可以采用閉運(yùn)算來填補(bǔ)小孔和斷裂,提高焊縫的連續(xù)性和完整性,其公式如下:
其中,A 表示原始二值化圖像,SE 表示結(jié)構(gòu)元素,⊕表示形態(tài)學(xué)膨脹運(yùn)算,?表示形態(tài)學(xué)腐蝕運(yùn)算,B 表示開運(yùn)算后的二值化圖像,C 表示閉運(yùn)算后的二值化圖像。
則組合運(yùn)算的公式如下所示:
其中,A 表示原始灰度圖像,B 表示結(jié)構(gòu)元素,?表示形態(tài)學(xué)腐蝕運(yùn)算,⊕表示形態(tài)學(xué)膨脹運(yùn)算,+表示圖像相加運(yùn)算,-表示圖像相減運(yùn)算。該組合方法可以去除低灰度雜質(zhì),并增強(qiáng)圖像的亮度和對比度。
在Halcon 中使用opening_circle 算子執(zhí)行開運(yùn)算,在程序窗口輸入opening_circle(Rectangle,ImageOpening,Radius),生成圖12,但是由于光源的影響,圖像的呈現(xiàn)并不完整。
圖12 閾值分割后的焊縫
采用closingcircle(ImageOpening,ImageClosing,Radius)和OpeningCircle(ImageClosing_Image,Image_background,RadiusB)算子以此執(zhí)行閉運(yùn)算和頂帽運(yùn)算結(jié)果如圖13 所示。
圖13
經(jīng)過上述的所有處理之后,我們就可以識別出來焊縫的缺陷,然后可以使用Halcon 中的dev_display 函數(shù)在原始圖像上標(biāo)注出來,并通過鏤空顯示或顏色變化等方式實(shí)現(xiàn),如圖14 所示。
圖14 顯示顏色變化
這篇文章是基于一定場地條件下,對工件圖像進(jìn)行檢測,實(shí)驗(yàn)最終結(jié)果以及直方圖分布分別如圖15 所示。
圖15
本文提出了一種基于Halcon 的焊縫缺陷檢測方法。通過對相機(jī)標(biāo)定使用laplace_of_gauss 算子,并對圖像使用適合的處理方法,結(jié)果表明該方法能夠準(zhǔn)確地檢測出焊縫缺陷區(qū)域并且精準(zhǔn)地定位缺陷位置。然而,該方法處理的時間較長,并且當(dāng)光線強(qiáng)度不均或過強(qiáng)時,會導(dǎo)致工件難以分割,對識別造成了一定的困難。盡管如此,在大多數(shù)情況下,該方法依然能夠?qū)崿F(xiàn),并且具有極高的實(shí)用性。