蔡文龍,趙 振*,李文忠
(1. 北華航天工業(yè)學(xué)院電子與控制工程學(xué)院,河北 廊坊 065000;2. 河北科技大學(xué),河北 石家莊 050054)
航空插頭是航天工業(yè)領(lǐng)域中聯(lián)系集成控制和器械驅(qū)動(dòng)網(wǎng)絡(luò)的重要精密元件,隨著航天事業(yè)的快速發(fā)展,航空插頭在航天工業(yè)領(lǐng)域中的應(yīng)用非常廣泛。航天飛行器在太空復(fù)雜環(huán)境下作業(yè)時(shí),航空插頭焊接的可靠性與穩(wěn)定性影響著整個(gè)航天飛行系統(tǒng)的安全性。當(dāng)下航空插頭焊接作業(yè)主要遵循人力焊接的焊接模式,這種焊接方式焊接精度不高,誤差大且錯(cuò)誤率較高。隨著人工智能技術(shù)的迅速發(fā)展,航空插頭的自動(dòng)焊接技術(shù)成為航天焊接領(lǐng)域的重要研究方向,其中自動(dòng)焊接的關(guān)鍵是航空插頭焊杯的準(zhǔn)確定位。
航空插頭的型號(hào)眾多,焊杯點(diǎn)位較多且位置排列不規(guī)則,采用人工測(cè)量輸入的方法耗時(shí)耗力且效率低下。隨著人工機(jī)器識(shí)別、模式識(shí)別及數(shù)字圖像處理等圖像處理技術(shù)的高速發(fā)展,前沿算法不斷成熟,各類機(jī)器視覺(jué)檢測(cè)算法和新型設(shè)備在各類工業(yè)領(lǐng)域的用途愈發(fā)廣泛。應(yīng)用攝像頭等圖像獲取設(shè)備模擬人眼進(jìn)行圖像處理和狀態(tài)判別的機(jī)器視覺(jué)技術(shù)以其具有抗環(huán)境因素強(qiáng),矯正處理質(zhì)量?jī)?yōu)良,接受圖像質(zhì)量和時(shí)效性強(qiáng)等優(yōu)點(diǎn)被廣泛應(yīng)用于工業(yè)生產(chǎn)控制領(lǐng)域。本文使用機(jī)器視覺(jué)對(duì)航空插頭焊杯進(jìn)行識(shí)別定位。使用OpenCV對(duì)采集的圖像進(jìn)行預(yù)處理后進(jìn)行焊杯點(diǎn)位的識(shí)別,最后使用加權(quán)灰度質(zhì)心法獲取焊杯的坐標(biāo),實(shí)現(xiàn)焊杯定位。
本文設(shè)計(jì)的航空插頭焊杯定位流程主要由環(huán)境搭建、相機(jī)標(biāo)定、圖像采集、圖像預(yù)處理、焊杯圖像識(shí)別及其焊杯坐標(biāo)定位等多項(xiàng)工作組成,全局流程如圖1所示。
圖1 航空插頭焊杯定位流程圖
首先選擇實(shí)驗(yàn)需要的工業(yè)相機(jī)、鏡頭和光源,根據(jù)視覺(jué)硬件參數(shù)計(jì)算機(jī)械結(jié)構(gòu)的尺寸,結(jié)合航空插頭的位置,搭建合適的環(huán)境。由于本文主要研究的是航空插頭的焊杯定位問(wèn)題,因此,需要確認(rèn)相機(jī)的基準(zhǔn)標(biāo)定原點(diǎn),通過(guò)原點(diǎn)矯正等操作得到攝像頭內(nèi)部參數(shù)和外部參數(shù),進(jìn)而對(duì)攝像頭采集到主機(jī)的圖像進(jìn)行畸變判斷,若發(fā)生畸變則需要及時(shí)更新位置信息對(duì)圖像進(jìn)行位置校正。為了提高焊杯定位的準(zhǔn)確率,所采集圖像質(zhì)量的好壞對(duì)后續(xù)的處理有較大的影響,為此,間隔采集兩幅圖像,當(dāng)兩幅圖像完全一致時(shí)采用后一幅圖像作為待處理的圖像,對(duì)采集的圖像進(jìn)行預(yù)處理,然后進(jìn)行航空插頭焊杯的識(shí)別,準(zhǔn)確識(shí)別出焊杯之后根據(jù)焊杯信息尋找焊杯輪廓,根據(jù)輪廓信息實(shí)現(xiàn)焊杯定位。
在圖像測(cè)量時(shí)首先需要對(duì)相機(jī)進(jìn)行標(biāo)定,因?yàn)椴杉瘓D像的相機(jī)可能因?yàn)橘|(zhì)量等原因會(huì)出現(xiàn)不同程度的畸變,這會(huì)影響測(cè)量的精準(zhǔn)度。本文的相機(jī)校準(zhǔn)采用張正友標(biāo)定法,校準(zhǔn)過(guò)程如下:
1)使用Python代碼編寫一個(gè)8行8列、大小為10 mm*10 mm的黑白棋盤,打印并貼在亞克力板上;
2)通過(guò)移動(dòng)平臺(tái)或相機(jī)從不同角度拍攝15張圖片;
3)獲取所有圖片的角點(diǎn);
4)計(jì)算出相機(jī)的內(nèi)部參數(shù)和外部參數(shù);
5)根據(jù)參數(shù)分析圖像畸變情況,從而校正圖像。
相機(jī)的內(nèi)部參數(shù)矩陣為
(1)
使用攝像頭采集到的圖像原像精度低,可辨識(shí)性差,不具備利用機(jī)器視覺(jué)進(jìn)行識(shí)別的條件,需要進(jìn)行圖像預(yù)處理以提高圖像處理的速度和精度。本文對(duì)航空插頭圖像進(jìn)行預(yù)處理的工作包括灰度化、噪聲去除以及背景去除等過(guò)程。
2.3.1 灰度化
攝像頭采集的圖像原像都是RGB的彩色圖像,包含的信息量非常大,直接處理計(jì)算量會(huì)變大,耗費(fèi)更多時(shí)間,對(duì)識(shí)別的精度產(chǎn)生不利影響,而航空插頭焊杯定位的過(guò)程中不需要冗余色彩信息,因此,采用將圖像轉(zhuǎn)換為灰度圖像的處理方法以降低圖像識(shí)別的處理量,縮短計(jì)算時(shí)間,提高識(shí)別精度。
將采集的圖像像素點(diǎn)的紅、綠、藍(lán)各個(gè)色區(qū)的色域分量進(jìn)行加權(quán)值平均計(jì)算,得到圖像灰度處理后對(duì)應(yīng)的該像素點(diǎn)的像素值。
f
(i
,j
)=0.
299R
(i
,j
)+0.
587G
(i
,j
)+0.
114B
(i
,j
)(2)
2.3.2 圖像濾波
在采集航空插頭圖像時(shí),可能會(huì)出現(xiàn)不同類型的噪聲。為了提高焊杯定位的精準(zhǔn)度,得到高質(zhì)量的圖像,需要通過(guò)濾波的方式去除噪聲。
通過(guò)研究發(fā)現(xiàn),均值、高斯以及中值濾波,雖然能夠?yàn)V除這些噪聲但發(fā)現(xiàn)圖像出現(xiàn)了一定的模糊,這會(huì)對(duì)焊杯的精準(zhǔn)定位產(chǎn)生影響。而本文選用的雙邊濾波方法既達(dá)到了濾波的效果又保護(hù)了航空插頭焊杯圖像的完整性,為后續(xù)焊杯識(shí)別及定位提供了基礎(chǔ)。
2.3.3 背景去除
采集的航空插頭圖像中不僅包含需要處理的焊杯,還包含方形外殼和金色圓圈等干擾信息,極大地提高了焊杯定位的操作難度。需要進(jìn)行圖像背景去除以排除焊杯之外的其它信息對(duì)識(shí)別的干擾。
由于待檢測(cè)焊杯按圓形排列且焊杯外表面有一個(gè)圓形墊圈,可以使用Hough圓得到ROI區(qū)域。算法如下:
1)使用np.zeros()函數(shù)創(chuàng)建一個(gè)與原始圖像各項(xiàng)參數(shù)值相符的新圖。
2)對(duì)濾波后的圖像進(jìn)行Canny邊緣檢測(cè),然后使用函數(shù)HoughCircles()獲取航空插頭圓形輪廓的圓心和半徑,為了避免同心圓的干擾,把參數(shù)圓心間的最小距離設(shè)置為200。
地質(zhì)工程中,由于節(jié)理和地質(zhì)分割等構(gòu)成了結(jié)構(gòu)面,這使得地質(zhì)項(xiàng)目工程的風(fēng)險(xiǎn)具有較為明顯的多變性和復(fù)雜性。另外,該風(fēng)險(xiǎn)不僅與地質(zhì)本身有著十分密切的聯(lián)系,也與人為的不規(guī)范操作有關(guān)。同時(shí),外部因素也會(huì)對(duì)項(xiàng)目工程產(chǎn)生負(fù)面影響,進(jìn)而阻礙工程建設(shè)的正常進(jìn)行。
3)使用得到的圓心和半徑在步驟1)中創(chuàng)建的圖像上繪制圓,獲取ROI區(qū)域,為了去除焊杯外的所有干擾信息,在繪制圓時(shí)對(duì)半徑減去20個(gè)像素,通過(guò)填充的方式把ROI區(qū)域變?yōu)槿咨?/p>
4)把ROI區(qū)域圖像與濾波后的圖像進(jìn)行操作,便可得到一個(gè)去除背景的航空插頭圖像。圖2為去除背景后的圖像。
圖2 圖像背景去除
2.3.4 圖像增強(qiáng)
本文使用P48K6Q系列航空插頭作為研究對(duì)象,其底板均為黑色,在完成去除背景之后,圖像整體變暗,不利于焊杯插頭的定位,因此,需要對(duì)陰影孔徑進(jìn)行亮度補(bǔ)光處理,以提升對(duì)應(yīng)焊杯孔的色彩對(duì)比度和清晰度。
g
(i
,j
)=α
*f
′(i
,j
)+β
(3)
其中,f
′(i
,j
)為經(jīng)背景剔除后的圖像像素,g
(i
,j
)為經(jīng)算法處理補(bǔ)光后的圖像像素,參數(shù)α
和β
通常稱為增益和偏差參數(shù),用于控制對(duì)比度和亮度。圖3為經(jīng)過(guò)增強(qiáng)處理后的圖像。圖3 圖像增強(qiáng)
焊杯的識(shí)別是焊杯定位成功的關(guān)鍵,只有正確識(shí)別出所有焊杯,才可以較好地定位出每個(gè)焊杯。圖像前景與圖像背景的分離識(shí)別需要由灰度閾值來(lái)切割,從而得到焊杯焊點(diǎn)圖像,本文采用閾值分割法實(shí)現(xiàn)焊杯的分割。
2.
4.
1 閾值分割閾值分割法因其劃分圖像色域明晰、分割速度快、算法實(shí)現(xiàn)容易等特點(diǎn)使其成為圖像分割的首選方法,很多圖像通過(guò)單次閾值化就能完成分割。
(4)
其中,F
(i
,j
)是(i
,j
)點(diǎn)閾值分割后的像素值,Thd
是閾值。閾值分割首先需要計(jì)算Thd
,最大類間方差法和最大熵閾值法是最常用的方法,本文通過(guò)對(duì)比兩種方法在光照變化時(shí)的穩(wěn)定性進(jìn)行選取。最大類間方差法的主要思想是基于待分割部分的對(duì)立特征對(duì)圖像進(jìn)行分割,為通過(guò)類方差法求得分割圖像,要將圖像分為前景與背景兩個(gè)區(qū)域,這依賴于采集圖像的灰度特征。若所用于對(duì)比并使用的灰度圖像具有良好的二值效果,則通過(guò)類方差算法得到的分割效果越好,對(duì)兩區(qū)域的循環(huán)計(jì)算所設(shè)定分割條件下的最大方差,以逐次尋優(yōu)的方案尋找最優(yōu)化閾值,便可以實(shí)現(xiàn)對(duì)圖像的分割。最大熵閾值法也是同樣的分割思想,只是需要計(jì)算兩部分的熵,然后通過(guò)熵的最大值來(lái)計(jì)算Thd
。在光照較暗、光照正常以及光照較強(qiáng)三種情況下,使用兩種方法進(jìn)行焊杯分割,最大類間方差法在三種光照條件下都能較好地完成分割,而最大熵閾值法在照明改變時(shí),分割效果并不太理想,并且使用了log函數(shù),使得計(jì)算時(shí)間較長(zhǎng),所以選擇最大類間方差法計(jì)算Thd。
2.4.2 形態(tài)學(xué)處理
在光照較強(qiáng)時(shí)發(fā)現(xiàn)最大類間方法分割的圖像中個(gè)別焊杯會(huì)出現(xiàn)毛刺,這個(gè)毛刺在輪廓尋找時(shí)會(huì)被當(dāng)作輪廓信息,從而影響焊杯定位??梢酝ㄟ^(guò)形態(tài)學(xué)的腐蝕操作去除毛刺,但為了保持圖像形狀大小不發(fā)生變化,還需要使用同樣大小的kerenl進(jìn)行膨脹操作,本文選取3x3的kerenl進(jìn)行形態(tài)學(xué)操作。
利用Opencv采集輪廓信息來(lái)獲取焊杯坐標(biāo),焊杯識(shí)別后的圖像分割出了所有的焊杯,通過(guò)輪廓尋找以獲取每個(gè)焊杯的輪廓信息,根據(jù)輪廓信息便可完成對(duì)焊杯的定位。
閾值分割后的航空插頭圖像,只剩下焊杯的信息,使用Opencv提供的findContours()對(duì)其進(jìn)行輪廓查找便可獲得焊杯的輪廓信息,然后通過(guò)輪廓繪制函數(shù)drawContours()繪制出焊杯基本的輪廓。焊杯的輪廓信息是以列表形式存放各個(gè)焊杯輪廓的坐標(biāo)點(diǎn),根據(jù)這些坐標(biāo)點(diǎn),使用加權(quán)灰度質(zhì)心法便可得到焊杯的圓心坐標(biāo),實(shí)現(xiàn)焊杯定位。圖4為焊杯的輪廓圖。
圖4 焊杯的輪廓圖
本文選取航空插頭的1號(hào)、5號(hào)、10號(hào)、15號(hào)及20號(hào)焊杯,在三種不同燈光下獲取焊杯定位的最大偏差值,結(jié)果如表1所示。
表1 焊杯定位偏差值
根據(jù)表1可知,在光照條件發(fā)生改變時(shí),本文方法的焊杯定位偏差值始終低于1個(gè)像素,偏差值較低,說(shuō)明本文方法實(shí)現(xiàn)了較高精度的焊杯定位。這是由于該方法在航空插頭圖像預(yù)處理中,通過(guò)灰度化、噪聲去除以及背景去除等操作,降低了干擾因素對(duì)圖像處理結(jié)果的影響,進(jìn)而提升了定位精度。
為了進(jìn)一步驗(yàn)證本文方法的有效性,在圖像處理中選取一張?jiān)紙D像,對(duì)其進(jìn)行處理,獲取處理后的圖像,并與原始圖像進(jìn)行對(duì)比,結(jié)果如圖5所示。
圖5 圖像處理結(jié)果
通過(guò)對(duì)比圖5中的兩幅圖像可知,處理后的圖像并沒(méi)有發(fā)生較大的畸變情況,可以保持圖像的細(xì)節(jié)信息,說(shuō)明圖像處理效果較好。
在航空插頭的自動(dòng)焊接技術(shù)中,使用機(jī)器視覺(jué)實(shí)現(xiàn)焊杯的準(zhǔn)確定位是焊接成功的關(guān)鍵,本文使用Opencv結(jié)合python編程語(yǔ)言編寫并實(shí)現(xiàn)圖像采集和處理,成功得到待采集航空插頭焊杯全覆蓋坐標(biāo)信息,分析每一步輸出的圖像以及最后的焊杯坐標(biāo),并得到定位結(jié)果。實(shí)驗(yàn)結(jié)果表明,本文方法是定位結(jié)果精度較高,能夠滿足自動(dòng)焊接的要求。雖然本文方法取得了一定的進(jìn)步,但是沒(méi)有對(duì)定位效率進(jìn)行深入研究,為了進(jìn)一步提升定位方法的應(yīng)用價(jià)值,接下來(lái)將以提升定位效率為重點(diǎn)進(jìn)行深度研究。