韓進(jìn)宇,吳超群
(武漢理工大學(xué) 機(jī)電工程學(xué)院,湖北 武漢 430070)
在汽車卡鉗機(jī)器人自動(dòng)化打磨時(shí),為了能夠自動(dòng)規(guī)劃?rùn)C(jī)器人的打磨路徑,需要知道毛刺區(qū)域的輪廓信息和毛刺區(qū)域的位置信息。傳統(tǒng)毛刺信息檢測(cè)主要依靠測(cè)量工具進(jìn)行手動(dòng)測(cè)量,在對(duì)工件毛刺進(jìn)行測(cè)量時(shí)容易對(duì)毛刺和測(cè)量工具造成磨損,并且當(dāng)工件毛刺形狀比較復(fù)雜,毛刺數(shù)量比較多時(shí)測(cè)量效率不高。另外,汽車卡鉗屬于鑄造件,其毛刺的形狀和大小的一致性非常差,不同工件具有不同形狀和大小的毛刺,使得機(jī)器人離線編程難度加大。采用視覺對(duì)汽車卡鉗毛刺區(qū)域進(jìn)行檢測(cè)和定位,既可以提高效率,又不會(huì)對(duì)毛刺區(qū)域造成損壞。因此研究復(fù)雜環(huán)境下汽車卡鉗毛刺打磨區(qū)域檢測(cè)和定位的圖像處理算法,可以實(shí)現(xiàn)汽車卡鉗毛刺打磨區(qū)域的在線檢測(cè)[1-2]。
毛刺檢測(cè)和定位系統(tǒng)主要由工業(yè)CMOS相機(jī)、PC機(jī)、光源、工件臺(tái)、過(guò)渡工裝和CMOS安裝支架等構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 毛刺檢測(cè)和定位系統(tǒng)示意圖
由于CMOS相機(jī)本身存在不可避免的安裝誤差,采用多幅棋盤格圖像對(duì)相機(jī)的內(nèi)外參數(shù)進(jìn)行標(biāo)定。該方法運(yùn)用了針孔成像原理和9×6(每格20 mm)的棋盤格,介于自標(biāo)定和傳統(tǒng)標(biāo)定方法之間,既具有較好的魯棒性,又不需要制作昂貴的標(biāo)定板[3]。標(biāo)定實(shí)驗(yàn)完成后得到相機(jī)的內(nèi)參矩陣A和畸變矩陣B如式(1)和式(2)所示。結(jié)合內(nèi)參矩陣和畸變矩陣進(jìn)行仿射變換即可對(duì)圖像進(jìn)行畸變矯正。在相機(jī)標(biāo)定過(guò)程中總會(huì)存在一定問(wèn)題,因此矯正后的圖像并不一定非常標(biāo)準(zhǔn),只能優(yōu)化原有圖像,提高后續(xù)毛刺加工區(qū)域的定位精度。
(1)
B=[-0.117 00 0.770 00 -0.007 00
0.001 07 0.003 50]
(2)
完成圖像的畸變矯正后為了得到毛刺輪廓區(qū)域的位置信息,需要對(duì)檢測(cè)系統(tǒng)進(jìn)行線性標(biāo)定,建立卡鉗圖像像素點(diǎn)和工件毛刺區(qū)域?qū)嶋H位置尺寸的對(duì)應(yīng)關(guān)系。首先對(duì)采集的標(biāo)準(zhǔn)量塊的圖像進(jìn)行畸變矯正,然后對(duì)量塊圖像進(jìn)行相應(yīng)的圖像處理,計(jì)算出數(shù)字圖像中標(biāo)準(zhǔn)量塊的長(zhǎng)度值r(pixel),若標(biāo)準(zhǔn)量塊的實(shí)際物理尺寸為r1(mm),那么系統(tǒng)的線性標(biāo)定系數(shù)為k,如式(3)所示。
k=r1/r
(3)
為了降低標(biāo)定誤差,對(duì)標(biāo)準(zhǔn)量塊進(jìn)行多次人工測(cè)量和視覺測(cè)量,計(jì)算多個(gè)標(biāo)定系數(shù),然后對(duì)所有標(biāo)定系數(shù)取平均值得到最終的標(biāo)定系數(shù)為0.087 mm/pixel。
根據(jù)汽車卡鉗實(shí)際的物理尺寸,在已知圖像大小為(2 500,1 900)的條件下剪切出圖像目標(biāo)區(qū)域(region of interest,ROI),針對(duì)感興趣區(qū)域提取有效的圖像特征,最后對(duì)圖像特征進(jìn)行分析和識(shí)別,ROI區(qū)域如圖2所示。根據(jù)實(shí)際拍攝圖像的大小,選取對(duì)角坐標(biāo)為(1 000,900)和(1 450,1 530)的矩形區(qū)域?qū)ㄣQ中心矩形區(qū)域進(jìn)行剪切提取。
圖2 ROI區(qū)域
由于工廠環(huán)境和圖像采集儀器的影響,使得卡鉗圖像在采集和傳輸時(shí)會(huì)混入各種噪聲和失真。這些噪聲和失真會(huì)對(duì)圖像中的目標(biāo)區(qū)域的特征提取造成影響,因此需要先對(duì)圖像進(jìn)行降噪處理。
經(jīng)典的濾波方法有均值濾波、中值濾波、高斯濾波等,采用這些濾波方法對(duì)圖像進(jìn)行降噪處理時(shí)會(huì)對(duì)毛刺區(qū)域的邊緣造成破壞,不利于毛刺加工區(qū)域檢測(cè)。筆者采用基于圖像梯度信息的自適應(yīng)濾波對(duì)卡鉗圖像進(jìn)行濾波處理[4],該方法步驟如下:
(1)設(shè)定迭代次數(shù)K;
(4)
(3)計(jì)算濾波核的權(quán)系數(shù),如式(5)所示:
ω(k)(m,n)=
(5)
式中:h為恒定參數(shù),他確定了可保留下的邊緣幅度。
(4)對(duì)f(k+1)(m,n)進(jìn)行卷積運(yùn)算,計(jì)算公式如式(6)所示:
f(k+1)(m,n)=
(6)
(5)根據(jù)指定的迭代次數(shù)K進(jìn)行迭代,如果k=K,迭代結(jié)束,否則k++,轉(zhuǎn)步驟(2),自適應(yīng)濾波流程如圖3所示。
圖3 自適應(yīng)濾波流程
根據(jù)實(shí)驗(yàn)發(fā)現(xiàn)K=3,h=14時(shí)該算法對(duì)圖像的邊緣有一定的銳化效果,同時(shí)對(duì)輪廓內(nèi)部區(qū)域有很好的平滑效果,自適應(yīng)濾波結(jié)果如圖4所示。
圖4 自適應(yīng)濾波結(jié)果圖
在對(duì)卡鉗毛刺區(qū)域進(jìn)行提取和定位前,需要完成卡鉗圖像前景和背景的分割。全局閾值分割和局部閾值分割是常見的兩類閾值分割方法。全局閾值分割算法的計(jì)算效率高,但是對(duì)光照不均的圖像無(wú)法進(jìn)行正確的分割。汽車卡鉗圖像存在光照不均和反光等問(wèn)題,采用大津法(Otsu)等全局閾值分割法進(jìn)行工件圖像分割時(shí)會(huì)造成一些邊緣缺失[5],如圖5所示。
圖5 全局閾值二值化圖
針對(duì)全局閾值分割存在的問(wèn)題,筆者采用局部自適應(yīng)閾值法對(duì)圖像進(jìn)行二值化,該算法單獨(dú)計(jì)算每一個(gè)像素點(diǎn)k×k領(lǐng)域內(nèi)的灰度均值減去常數(shù)C的結(jié)果作為該點(diǎn)的閾值,使用局部自適應(yīng)閾值分割結(jié)果如圖6所示。
圖6 自適應(yīng)閾值二值圖
由于工件表面鍍鋅,采集的工件照片存在反光區(qū)域,在完成閾值分割后該區(qū)域和背景區(qū)域灰度值相同,無(wú)法進(jìn)行有效的區(qū)分,此時(shí)需要對(duì)二值圖像的反光區(qū)域進(jìn)行去除。采用一種具有拓?fù)浞治瞿芰Φ倪吔绺櫵惴▽⒁环祱D像轉(zhuǎn)換成邊界描述。由于提取的信息是兩種邊界的包圍關(guān)系,這兩種邊界是:外層邊界和孔洞邊界。既然外層邊界和1連通域(1-component)之間、孔洞邊界和0連通域(0-component)之間存在一對(duì)一的對(duì)應(yīng)關(guān)系,則給定二值圖像的拓?fù)浣Y(jié)構(gòu)是確定的[6]。根據(jù)這一原理調(diào)用Opencv中findcounter函數(shù)輸出檢測(cè)到的每一個(gè)連通區(qū)域輪廓點(diǎn)的集合vector〈vector〈point〉〉,然后調(diào)用drawContours()函數(shù)填充指定區(qū)域[7],得到去除反光區(qū)域的二值圖像,具體程序流程如圖7所示。
如圖8所示,分別對(duì)打磨好的模板工件圖像1和帶有未處理毛刺的工件圖像2進(jìn)行二值化操作,得到去除反光的二值化圖像1和圖像2,將圖像1減去圖像2即可得到毛刺區(qū)域的二值化圖像[8]。使用Opencv中findcounter()函數(shù)查找每一毛刺區(qū)域的輪廓,然后使用Moment()函數(shù)計(jì)算每個(gè)輪廓的中心矩,進(jìn)而計(jì)算出每個(gè)毛刺區(qū)域輪廓的質(zhì)心位置。
圖8 毛刺區(qū)域提取圖
累計(jì)概率霍夫變換(progressive probabilistic hough transform,PPHT)算法在對(duì)圖像中的直線進(jìn)行檢測(cè)時(shí),可以設(shè)定直線的最小長(zhǎng)度和該直線被擬合出來(lái)次數(shù)的累加值,只有當(dāng)累加值大于設(shè)定閾值的直線才會(huì)取出。對(duì)打磨好的工件模板圖像的ROI區(qū)域二值圖像進(jìn)行Canny邊緣檢測(cè)得到中心矩形的單邊緣圖像[9],然后使用累積概率霍夫變換檢測(cè)矩形四條邊的直線區(qū)域[10],根據(jù)檢測(cè)到的四條邊線的直線段區(qū)間求取矩形區(qū)域的4個(gè)頂點(diǎn)坐標(biāo)(1 046,933)、(1 393,933)、(1 046,1 470)、(1 393,1 470),由于系統(tǒng)硬件標(biāo)定精度為0.087 mm/pixel進(jìn)而求得矩形區(qū)域中心點(diǎn)的位置坐標(biāo)(106.1 mm,104.5 mm),實(shí)驗(yàn)結(jié)果如圖9所示。
圖9 矩形中心位置
根據(jù)上述方法對(duì)一批卡鉗毛刺進(jìn)行圖像處理,得到了每個(gè)毛刺區(qū)域輪廓的質(zhì)心相對(duì)定位矩形中心位置的像素坐標(biāo),根據(jù)標(biāo)定精度再將像素坐標(biāo)轉(zhuǎn)換成對(duì)應(yīng)的物理坐標(biāo),實(shí)驗(yàn)結(jié)果如表1所示。利用所得到的物理坐標(biāo)對(duì)毛刺區(qū)域進(jìn)行定位可為后續(xù)的毛刺打磨工序提供依據(jù)。
表1 毛刺檢測(cè)實(shí)驗(yàn)結(jié)果
研究汽車卡鉗毛刺檢測(cè)和定位的方法,針對(duì)傳統(tǒng)濾波算法容易使毛刺邊緣模糊的問(wèn)題,提出了一種基于梯度信息的自適應(yīng)濾波算法,針對(duì)工件圖像光照不均提出使用自使用閾值分割代替全局閾值分割,通過(guò)模板工件二值圖像和未打磨工件二值圖像相減獲得毛刺加工區(qū)域二值圖像,最后檢測(cè)定位矩形的中心位置對(duì)毛刺區(qū)域進(jìn)行定位。該檢測(cè)系統(tǒng)的毛刺區(qū)域定位精度可以達(dá)到0.087 mm/pixel。