邢雪亮, 甘文波, 蔣朝根
(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,四川成都611756)
目前,航空鉚釘檢測逐步由人工發(fā)展到用自動(dòng)化設(shè)備進(jìn)行智能化檢測。一架軍用飛機(jī)需要150~180萬個(gè)航空鉚釘[1],同時(shí),隨著航空產(chǎn)業(yè)的發(fā)展,高出勤率以及經(jīng)常性部件更換,航空鉚釘?shù)挠昧烤薮蟛⑷找嬖黾?。然而在?shí)際生產(chǎn)中,普遍仍以人工通過肉眼進(jìn)行檢測[2],用量需求與檢測方法存在客觀性的矛盾,使得航空具有潛在的事故風(fēng)險(xiǎn)。日航123號班機(jī)因機(jī)尾連接面板的鉚釘不及時(shí)維修致使520人遇難[3]??梢?,改善航空鉚釘?shù)陌踩珷顩r對于減少人員傷亡與財(cái)產(chǎn)損失,提高航空出行有著重要意義。
近年來航空鉚釘尺寸檢測技術(shù)引起了重視,影響航空鉚釘質(zhì)量的參數(shù)中,除了涉及表面光滑度、缺陷等之外,還包括航空鉚釘各部位尺寸等因素[4]。目前在航空鉚釘檢測的研究中,主要是優(yōu)化人工檢測設(shè)備[5],而人工檢測效率低并受檢測人員的主觀因素影響,導(dǎo)致尺寸檢測的誤差隨機(jī)性大。文獻(xiàn)[1,6]中提出了鉚釘檢測系統(tǒng)硬件結(jié)構(gòu),但缺少較優(yōu)檢測算法;文獻(xiàn)[7]提出了基于畸變補(bǔ)償尺寸檢測算法,但是檢測的精度不足,不能達(dá)到工業(yè)精密連接件的要求。
當(dāng)前,機(jī)器視覺技術(shù)廣泛應(yīng)用于檢測系統(tǒng)方面,如電子包裝領(lǐng)域的載帶檢測[8]、新型車牌檢測識別方法[9]等。在圖像處理方面,文獻(xiàn)[10]提出了一種基于方差和顯著性特征的圖像分割方法,但該方法只針對超聲圖像;文獻(xiàn)[11]提出了一種Contourlet變換和遺傳算法相結(jié)合的圖像增強(qiáng)方法。
航空鉚釘檢測作為一類安全苛求技術(shù),航空鉚釘?shù)某叽缙顚⒃黾雍娇帐鹿拾l(fā)生的可能性。本文采用CCD工業(yè)相機(jī)[12]進(jìn)行數(shù)據(jù)采集,獲取完全匹配的航空鉚釘表面數(shù)據(jù)。對傳統(tǒng)硬件在檢測方式方面進(jìn)行改進(jìn),并提出結(jié)合閾值分割算法和分水嶺算法[13]進(jìn)行圖像處理,同時(shí),通過采用Canny算子[14]作為邊緣檢測算子獲得較高的檢測精度和較大的信噪比[15]。實(shí)現(xiàn)了對航空鉚釘?shù)姆墙佑|式尺寸檢測。
研究采用IDS的uEye driver SDK 工業(yè)相機(jī),以垂直于航空鉚釘上表面進(jìn)行數(shù)據(jù)采集。最高分辨率為3 840×2 748像素,側(cè)面標(biāo)定后的單個(gè)像素精度為0.004 175 mm/pixel。
航空鉚釘檢測系統(tǒng)的光照起著至關(guān)重要的作用。本文使用Narovision公司的Naro-24-4-RS232型光源控制器作為驅(qū)動(dòng)LED光源的可編程數(shù)字控制器。檢測光源采用環(huán)形LED,將LED環(huán)形密集排列,光照從360°向中心部集中照射,搭配漫射板保障光照均勻[16],同時(shí),特設(shè)黑色亞克力板作為圖像采集背景以與金屬光澤航空鉚釘形成較高的對比度。
所用數(shù)據(jù)圖像采集地點(diǎn)為成都某飛機(jī)制造廠 ,實(shí)驗(yàn)選取3枚標(biāo)準(zhǔn)鉚釘樣品,型號為Q/611S97-4*10。依據(jù)Q/CACPS6401TY0154A《樣板檢測校準(zhǔn)方法》,經(jīng)成都飛機(jī)工業(yè)(集團(tuán))有限責(zé)任公司計(jì)量檢測中心檢測結(jié)果如表1。
表1 檢測結(jié)果Tab.1 Inspection & test results mm
本文所設(shè)計(jì)的航空鉚釘尺寸檢測系統(tǒng)由硬件部分和軟件部分組成。根據(jù)文獻(xiàn)[17],硬件部分包括計(jì)算機(jī)、工業(yè)相機(jī)和光源等部分,如圖1。軟件部分由圖像采集模塊、數(shù)字圖像處理模塊和操作界面等部分組成。
圖1 整體構(gòu)造圖Fig.1 Overall structure diagram
基于航空鉚釘產(chǎn)品規(guī)范,首先,未檢測航空鉚釘通過傳動(dòng)裝置以統(tǒng)一姿態(tài)被送入工業(yè)相機(jī)的拍攝范圍內(nèi),在傳送過程中4臺(tái)工業(yè)相機(jī)分別從4個(gè)不同方向?qū)ζ渖媳砻?、?cè)面和沉頭面進(jìn)行圖像采集,并標(biāo)記為待分類鉚釘。完成采集后,將所采集圖像轉(zhuǎn)換為數(shù)字圖像,再通過MSComm控件從串行端口發(fā)送到上位機(jī)。上位機(jī)將分析結(jié)果傳回下方。根據(jù)分析結(jié)果將合格的待分類鉚釘按照不同尺寸范圍從預(yù)訂出口吹出;不合格的待分類鉚釘統(tǒng)一從不合格出口吹出。流程如圖2所示。
圖2 檢測系統(tǒng)中的事件流程圖Fig.2 Events flow chart of detection system
在航空鉚釘運(yùn)輸過程中可能會(huì)出現(xiàn)不連續(xù)運(yùn)輸?shù)默F(xiàn)象,導(dǎo)致圖像采集時(shí)出現(xiàn)無航空鉚釘?shù)臒o效圖像。本文設(shè)計(jì)通過計(jì)算圖像中心一條垂直方向上所有像素點(diǎn)的灰度值來判定鉚釘是否存在。實(shí)驗(yàn)表明:當(dāng)鉚釘不存在時(shí),灰度值大于30的像素點(diǎn)數(shù)量小于100;當(dāng)鉚釘存在時(shí),灰度值大于30的像素點(diǎn)數(shù)量在500以上。因此,可判斷是否存在鉚釘。若存在,則進(jìn)行圖像處理,否則直接釋放內(nèi)存,提高檢測效率。
圖像采集所得圖像為3 840×2 748個(gè)像素點(diǎn),對整個(gè)圖像進(jìn)行的處理會(huì)產(chǎn)生巨大的時(shí)間冗余。由于圖像采集與鉚釘相對位置較固定,本文通過給定圖像左上角坐標(biāo),給定剪裁圖像寬度與長度進(jìn)行直接剪裁。
本節(jié)采用中值濾波[18]對圖像進(jìn)行處理,去除圖像采集過程中的細(xì)小噪聲,以及背景圖像中存在的少數(shù)噪點(diǎn)。
在圖像二值化過程中,閾值的選擇對邊緣檢測的效果有著極大程度的影響[19]:閾值過大,會(huì)導(dǎo)致邊緣檢測不完整;閾值過小,會(huì)導(dǎo)致非真實(shí)邊緣檢測干擾增加。為了分離背景與目標(biāo)區(qū)域,由于對比度較高,本文采用全局閾值的方式進(jìn)行景物分離。
設(shè)圖像f(i,j)的灰度值范圍為[α,β],全局閾值為T,α≤T≤β,則有式(1):
(1)
式中:g(i,j)為二值化后各像素點(diǎn)灰度值。
實(shí)驗(yàn)表明,黑色背景的灰度值接近0,目標(biāo)區(qū)域的灰度值大約在60。因此,全局閾值設(shè)定為40,對圖像進(jìn)行閾值分割。
利用形態(tài)學(xué)進(jìn)行邊緣檢測主要通過結(jié)構(gòu)元素對圖像進(jìn)行膨脹、腐蝕、開運(yùn)算和閉運(yùn)算[20]。令輸入圖像為f(i,j),結(jié)構(gòu)元素為B(i,j),其定義域分別為Df和DB。
膨脹的定義為:
(f⊕B)(i,j)=max{f(i-x,j-y)-B(x,y)}
(2)
腐蝕的定義為:
(f?B)(i,j)=min{f(i+x,j+y)-B(x,y)}
(3)
式中:(i-x,j-y)∈Df;(i+x,j+y)∈Df;(x,y)∈DB。
開運(yùn)算是用結(jié)構(gòu)元素B對灰度圖像先進(jìn)行腐蝕運(yùn)算再進(jìn)行膨脹運(yùn)算,即:
f°B=(f?B)⊕B
(4)
閉運(yùn)算是用結(jié)構(gòu)元素B對灰度圖像先進(jìn)行膨脹運(yùn)算再進(jìn)行腐蝕運(yùn)算,即:
f·B=(f⊕B)?B
(5)
本文采用開運(yùn)算對二值化圖像進(jìn)行處理。
為了解決檢測航空鉚釘尺寸誤差導(dǎo)致的問題,本文在對圖像進(jìn)行處理時(shí),采用基于數(shù)學(xué)形態(tài)學(xué)的分水嶺(watershed)算法。該算法最早由法國數(shù)學(xué)家Mathern G等提出。分水嶺算法[21]以像素代替雨滴來計(jì)算灰度數(shù)字圖像的分水嶺變換:首先,計(jì)算圖像的梯度值f(i,j),將梯度值較大的邊緣看做分水嶺,較小的邊緣看做積水盆地;然后往盆地中注水,隨著水平面上升,積水盆地最終匯聚成一個(gè)完整區(qū)域,梯度較大的分水嶺區(qū)域就得以保留。原理如圖3所示。
(6)
圖3 分水嶺算法原理Fig.3 Watershed algorithm principle
為了找到最大輪廓,目標(biāo)輪廓曲線反映了目標(biāo)的形狀特征[22]。通過邊緣檢測算法得到的邊界輪廓為離散點(diǎn),并沒有視為一個(gè)整體,本文利用內(nèi)存存儲(chǔ)器CV_RETR_CCOMP方式,即搜索所有輪廓并構(gòu)成兩層結(jié)構(gòu),最外層為外輪廓,外輪廓包括內(nèi)輪廓。搜索所有外輪廓,對所有外輪廓所含像素點(diǎn)數(shù)進(jìn)行判定。經(jīng)實(shí)驗(yàn)表明:輪廓像素點(diǎn)數(shù)小于2 000,則證明受到干擾噪聲影響,同時(shí)也達(dá)到了除噪效果;輪廓像素點(diǎn)數(shù)大于2 000,則為最大外輪廓。
得到輪廓后,分析其形狀,幾何特征是圖像目標(biāo)區(qū)域最顯著的特征。常見的幾何特征[23]有:
矩形度R:表示輪廓最小外邊界矩形寬度與長度的比值,定義為:
(7)
式中:W為最小外接矩形的寬度;L為最小外接矩形的長度。
重心C:表示缺陷像素點(diǎn)分布屬性,是像素平均值,當(dāng)目標(biāo)區(qū)域均勻時(shí)密度為1,則重心即為幾何圖形中心,重心橫縱坐標(biāo)iC和jC定義為:
(8)
式中:S為輸入圖像f的總像素點(diǎn)數(shù)。
圓形度D:表示輪廓最小邊界的圓度,當(dāng)D越接近1時(shí),輪廓越接近標(biāo)準(zhǔn)圓,定義為:
(9)
(10)
(11)
式中:M為重心到輪廓邊界點(diǎn)的距離均值;N為重心到輪廓邊界點(diǎn)的距離均值方差。
邊緣檢測是圖像檢測常用的檢測方式,標(biāo)識出數(shù)字圖像中亮度變化明顯的點(diǎn)。Canny邊緣檢測算子采用最優(yōu)化的思想,具有良好的信噪比、高精度以及較優(yōu)的定位性能[24]。
設(shè)二維高斯函數(shù)G(i,j)
(12)
在某一方向上G(i,j)的一階導(dǎo)數(shù)為:
(13)
式中:n=[cos ?,sin ?]T為單位方向矢量;G=[Gi,Gj]T為梯度矢量。
圖像f(i,j)和高斯函數(shù)G(i,j)進(jìn)行卷積運(yùn)算。改變n的方向,當(dāng)?(Gn*f(i,j))/?n=0時(shí),解得Gn*f(i,j) 取最大值時(shí)的n:
(14)
此時(shí)n正交于檢測邊緣,即在該方向上Gn*f(i,j)有最大輸出響應(yīng)。
|Gn*f(i,j)|=G*f(i,j)
(15)
同時(shí)設(shè)置2個(gè)梯度閾值,使用雙閾值處理邊緣連接,大于高閾值的點(diǎn)即為邊緣點(diǎn);介于2個(gè)閾值之間的點(diǎn),判定其相鄰像素點(diǎn)中有大于高閾值的點(diǎn),則為邊緣點(diǎn);否則即為非邊緣點(diǎn)。所有邊緣點(diǎn)構(gòu)成圖像的最終邊緣。
本文實(shí)測以Intel I7 4790四核八線程CPU、DDR3 1600 16GB的RPC-610為硬件平臺(tái);開發(fā)環(huán)境為VS2010環(huán)境下的MFC(Microsoft Foundation Classes微軟基礎(chǔ)類庫),以C++作為核心語言。
圖4為圖像處理結(jié)果,采集原圖見圖4(a),大小為3 840×2 748,鉚釘上表面與背景的對比度明顯,同時(shí)采集到下方運(yùn)輸轉(zhuǎn)盤。
對原圖圖4(a)進(jìn)行剪裁及平滑處理,效果見圖4(b),圖4(b)較圖4(a)的鉚釘占比提高,圖像像素點(diǎn)有明顯減少。圖4(c)為圖像二值化及形態(tài)學(xué)處理效果圖,可以看出鉚釘整體圖像清晰,邊界毛點(diǎn)較多,同時(shí)在右下角存在噪聲干擾;輪廓提取效果見圖4(d),右下角的噪聲已被清除,目標(biāo)邊緣已提取??梢?,本文算法可以很好地檢測出航空鉚釘邊緣,處理效果較為穩(wěn)定,對本文圖像有較好的處理效果。
對3枚樣品航空鉚釘?shù)念^部直徑分別進(jìn)行5次尺寸檢測,結(jié)果如表2。從表中可以看出,本文算法處理結(jié)果與實(shí)際尺寸在誤差精度的允許下已達(dá)到了所需的檢測效果。
表2 實(shí)驗(yàn)結(jié)果Tab.2 Experimental results mm
注:(1)檢測結(jié)果=∑每次檢測結(jié)果/檢測次數(shù);
(2)“實(shí)際尺寸”參照表1中“檢測結(jié)果”。
本文利用IDS工業(yè)相機(jī)自動(dòng)采集航空鉚釘上表面數(shù)據(jù),結(jié)合一系列算法對圖像進(jìn)行平滑、二值化和邊緣提取,實(shí)現(xiàn)對航空鉚釘頭部直徑的自動(dòng)識別與檢測。
圖4 圖像處理結(jié)果Fig.4 Image processing results
(1)針對傳統(tǒng)航空鉚釘尺寸檢測方法,從根本上進(jìn)行改進(jìn):從主觀人工檢測到基于機(jī)器視覺的自動(dòng)檢測,經(jīng)驗(yàn)證,在尺寸檢測時(shí),使用本文所提方法得到的檢測結(jié)果在精度±0.000 5 mm的要求下和實(shí)際尺寸的吻合度在90%以上。
(2)引入分水嶺算法結(jié)合全局閾值分割算法可以有效地檢測出目標(biāo)邊緣,大幅降低噪聲以及非真實(shí)邊緣干擾,實(shí)際測量效果較優(yōu)。通過各步驟圖像處理效果圖,表明該算法在邊緣連續(xù)性,抗噪聲干擾方面效果較好。
(3)提出基于機(jī)器視覺的航空鉚釘尺寸檢測方法,可推廣應(yīng)用于航空鉚釘頭部直徑、桿部直徑,以及沉頭面傾角的尺寸測量。