張函力,李海偉,于國棟,申 霖,張新喜,紀 俐,3,4
(1. 沈陽航空航天大學,沈陽 110136;2. 航空工業(yè)沈陽飛機工業(yè)(集團)有限公司,沈陽 110850;3. 沈陽工業(yè)大學,沈陽 110870;4. 華晨汽車集團控股有限公司,沈陽 110141)
隨著現(xiàn)代航空技術(shù)的發(fā)展,飛機裝配技術(shù)正逐步進入智能化、數(shù)字化的新階段[1]。鉚釘連接作為飛機蒙皮上的主要連接形式,鉚釘孔的加工質(zhì)量與效率直接影響蒙皮甚至飛機整機結(jié)構(gòu)的性能[2]。許多企業(yè)采用自動出釘?shù)你T釘機進行人工鉚接,在鉚接時對鉚釘進行不斷敲擊,鉚釘便會產(chǎn)生一定程度的變形,以此來保證將兩個連接面緊密貼合在一起,但人工鉚接效率不高。為保證制孔效率,彌補鉚釘在加工與裝配過程中產(chǎn)生的形變,很多創(chuàng)新型企業(yè)紛紛引進基于機器人的在線加工方式完成制孔加工,這樣的制造工藝使生產(chǎn)效率得到了保證,鉚接工藝迎來了機器視覺時代的曙光。但隨之而來的便是制孔后鉚釘?shù)馁|(zhì)量檢測問題。近年來,航空鉚釘尺寸檢測技術(shù)受到重視,然而在國內(nèi)的生產(chǎn)中,普遍仍以人工通過肉眼進行檢測[3],導致了鉚釘尺寸的檢測效率很難滿足航空工業(yè)的需求,使得航空具有潛在的事故風險[4]。
圖像邊緣是重要的視覺感知信息,也是圖像最基本的特征之一。邊緣檢測作為圓孔視覺測量過程的核心技術(shù)[5],隨著實際應用中對檢測精度要求的不斷提高,傳統(tǒng)的像素級邊緣檢測算法包括Sobel、Prewitt、Laplace算子等,已經(jīng)無法滿足實際需求。因此,人們提出了“亞像素”的概念,針對亞像素級算法的研究也受到越來越多的關(guān)注[6]。Zernike矩作為一種特殊的基于Zernike多項式的正交函數(shù)的復矩,雖然計算較為復雜,但其具有旋轉(zhuǎn)不變性,在表達能力和噪聲敏感性方面具有強大的優(yōu)勢,在目標識別領(lǐng)域得到了廣泛的應用[7]。Julier等[8]首次提出了利用Zernike正交矩來檢測圖像的亞像素邊緣,建立了理想的階躍灰度模型,推導了亞像素坐標的公式。但在實際中由于非理想的離散采樣和光學系統(tǒng)衍射效應的限制[9],往往可能會導致檢測邊緣附近出現(xiàn)過渡區(qū)。
綜上,本研究以3D激光輪廓傳感器作為圖像采集模塊,設(shè)計出鉚接孔徑檢測系統(tǒng)的整體機械結(jié)構(gòu),提出了一種改進的基于Zernike矩算法的鉚接孔徑亞像素檢測方法,實現(xiàn)了對锪窩孔外圓孔徑的高精度、高效率的檢測。
本檢測系統(tǒng)主要由軟件和硬件兩部分組成。軟件部分在相機已有的Demo文件以及客戶端軟件3DMVS的圖像檢測SDK文件開發(fā)包的基礎(chǔ)上,進行二次開發(fā),并集成Halcon圖像深度學習識別算法,利用算法庫對采集到的圖像進行坐標系統(tǒng)一與數(shù)據(jù)拼合重構(gòu),最終得到鉚釘孔徑的形貌。硬件部分采用??低曅吞枮镸V–DP2305–01H的3D激光輪廓傳感器,將傳感器裝配在同步傳送裝置上,驅(qū)動傳送裝置便可帶動光柵尺觸發(fā)脈沖,使相機在Y方向做直線運動。擬合傳感器自身獲得的X、Z方向的數(shù)據(jù),結(jié)合高幀率芯片和激光精準的時序控制,實時輸出高精度三維點云數(shù)據(jù)。采集數(shù)據(jù)通過千兆網(wǎng)卡傳輸?shù)接嬎銠C上,在客戶端軟件上設(shè)置參數(shù)后便可進行測量。測量系統(tǒng)結(jié)構(gòu)框如圖1所示。
圖1 測量系統(tǒng)結(jié)構(gòu)框圖Fig.1 Structure block diagram of measurement system
根據(jù)采集鉚接孔徑圖像的特點,制定相應的圖像處理流程,如圖2所示。首先,通過3D激光輪廓傳感器獲取鉚釘孔圖像,并對所采集的鉚接孔徑圖進行圖像增強處理,然后采用Canny算子邊緣檢測對锪窩孔內(nèi)外圓進行邊緣識別,利用改進的Zernike矩進行亞像素級的邊緣精確檢測,提取出锪窩孔外圓的圓環(huán)區(qū)域,最后結(jié)合RANSAC算法進行圓擬合,產(chǎn)生圓輪廓并獲取半徑,完成測量。
圖2 圖像處理流程Fig.2 Flow chart of image processing
圖像增強是有目的性地強調(diào)圖像的整體或局部特性,擴大圖像中不同特征之間的差別,抑制不感興趣的特征,使處理結(jié)果更適用于機器識別系統(tǒng)。但增強處理并不能增加原始圖像信息,只能對某些信息的辨識能力進行提升,滿足某些特殊分析的需要。
2.2.1 直方圖均衡化法
在數(shù)字圖像處理中,直方圖是一種簡單而又實用的工具,它能夠描述出圖像的概貌,并反映出圖像中每一灰度級與其出現(xiàn)像素頻率間的統(tǒng)計關(guān)系。綜合對比增強效果后,選用空間域處理法中的直方圖均衡化法。
直方圖均衡化法通過對原圖像的灰度直方圖進行某種變換,可以修正原圖像中具有相近灰度值且占有大量像素點的區(qū)域,使其灰度范圍變寬并均勻分布,以達到增強圖像整體對比的效果。
假定r和s分別表示已完成歸一化的變換前后的圖像灰度,T(r)為變換函數(shù),則二者變換關(guān)系為
若想保證灰度變換前后灰度級由黑到白的次序不變,像素灰度值仍在變換前所允許動態(tài)范圍,則需滿足當0≤r≤1時,T(r)為單調(diào)遞增函數(shù),且0≤T(r)≤1(0代表黑色,1代表白色)。
對于灰度級為離散的數(shù)字圖像,用頻率來代替概率,則灰度級rk出現(xiàn)的頻率為
式中,nk表示第k個像素級像素個數(shù),n表示總像素個數(shù)。
若設(shè)L為灰度級的個數(shù),那么原圖像的灰度級為[0,L–1],為了保證變換前后的灰度值和灰度范圍一致,則均衡變換函數(shù)T(rk)采用求和方式可表示為
式中,nj表示第j個像素級像素個數(shù)。
利用直方圖均衡化法對所采集的鉚接孔徑圖進行增強處理后的效果如圖3所示。
圖3(a)為相機采集的原始成像圖,整體顏色偏暗,且各部分顏色不均衡且不分明;圖3(b)為灰度化后的圖像,相對于圖3(a),锪窩孔外圓輪廓更加明顯,但內(nèi)孔輪廓不清晰;圖3(c)為使用直方圖均衡化后的圖像,與圖3(a)和(b)兩圖對比不難看出,圖3(c)邊緣輪廓處的像素值變化更加明顯,且锪窩孔外圓輪廓和內(nèi)孔輪廓清晰。
圖3 圖像增強效果圖Fig.3 Sketch of image enhancement
2.2.2 圖像平滑
為了抑制噪聲,使圖像亮度趨于平緩,減小突變梯度,改善圖像質(zhì)量,對圖像進行圖像平滑處理。均值濾波法雖然算法簡單,計算速度快,但經(jīng)過其處理過的圖像在平滑過程中會導致圖像邊緣模糊化。因此,選用中值濾波法進行平滑處理。
中值濾波是對鄰域內(nèi)的像素灰度值進行排序,用其中值代替中心點像素的灰度值的濾波方法,是一種非線性信號平滑處理技術(shù),能有效消除孤立點和線段的干擾,可以減弱或消除傅立葉空間的高頻分量。假設(shè)f(x,y)為原始圖像,g(x,y)為中值濾波處理后的圖像,則中值濾波可以表達為
式中,f(x,y)為二維圖像數(shù)據(jù)序列;g(x,y)為中值濾波后的數(shù)據(jù);S是以點(x,y)鄰域為中心的鄰域集合。利用中值濾波法進行平滑處理后的效果如圖4所示。
圖4 圖像平滑效果圖Fig.4 Sketch of image smoothing
2.2.3 圖像銳化
經(jīng)過降噪后的圖像在圖像形成和傳輸過程中,由于成像系統(tǒng)聚焦不好或者信道的帶寬過窄,圖像邊緣和圖像輪廓模糊、細節(jié)不清晰。因此,采用圖像銳化技術(shù)來減少這類不利效果的影響,使圖像的邊緣輪廓清晰。
Sobel算子結(jié)合了高斯平滑和微分求導,采用卷積核對圖像中的像素點做卷積運算,擁有x、y兩個方向的卷積核,是常用的微分算子。
若將圖像經(jīng)過兩個算子的濾波,便可獲得增強后的圖像灰度值,即
式中,Gx和Gy分別表示圖像對應像素中心點的像素在x、y兩個方向上的梯度。銳化后的圖像如圖5所示。
圖5 圖像銳化效果圖Fig.5 Sketch of image sharpening
圖像分割本質(zhì)上是對圖像中具有相同特征的區(qū)域進行標記的過程,可以進一步對經(jīng)預處理后的圖像進行簡化圖像分析,根據(jù)灰度、形狀、顏色等參數(shù)的差異,將圖像劃分為多個不同的子區(qū)域,并使這些參數(shù)在同一區(qū)域內(nèi)呈現(xiàn)相似性,而在不同區(qū)域之間呈現(xiàn)明顯的差異性。
2.3.1 基于直方圖谷底法的自動閾值分割
為了適應在采集過程中的環(huán)境變化,并消除人工設(shè)定閾值的主觀性,可以運用自動閾值分割方法。自動閾值分割方法是基于圖像的灰度直方圖來確定灰度閾值,其原理是以灰度直方圖中出現(xiàn)的谷底為分割點,對灰度直方圖的波峰進行分割。
在HALCON中常用Auto threshold算子進行自動值分割處理,該算子可以對單通道圖像進行多重閾值處理,其原理是以直方圖出現(xiàn)的谷底為分割點,對灰度直方圖的波峰進行處理,效果如圖6所示。
圖6 直方圖法自動閾值分割Fig.6 Automatic threshold segmentation in histogram
但該方法存在兩個難點: (1)在圖像分割前,無法確定圖像分割生成區(qū)域的數(shù)目; (2)因為閾值的選擇直接影響分割的精度及分割后的圖像進行描述分析的正確性,可能會導致閾值分割不準確??梢钥闯?,該方法對鉚接孔內(nèi)外圓環(huán)分割不完整。
2.3.2 Prewitt算子邊緣提取
Prewitt算子是利用像素鄰點之間的灰度差,在邊緣處達到極值的方法,從而檢測出圖形邊緣。因此,其對噪聲具有一定的抑制能力,但不能完全排除檢測結(jié)果中出現(xiàn)的虛假邊緣,處理后的效果如圖7所示。
圖7 Prewitt算子邊緣提取Fig.7 Edge extraction in Prewitt
Prewitt算子對噪聲具有抑制作用,因此對于噪聲較多、灰度漸變的圖像處理得較好。當某些噪聲點的灰度值很大,而對于那些幅值較小的邊緣點,其可能會造成邊緣點的誤判。
2.3.3 Kirsch算子邊緣提取
Kirsch算法是一種非線性的邊緣檢測器,由8個方向的模板決定,將這8個模板的元素與圖像上的每一個元素進行卷積求導數(shù),然后篩選出其中的最大值作為中央像素的邊緣強度,處理后的效果如圖8所示。
圖8 Kirsch算子邊緣提取Fig.8 Edge extraction in Kirsch
這種方法比較容易得到平滑的邊緣,但是由于其方向模板比較有限,對稱性可能會減半。因此,很難檢測出圖像所有的邊緣方向。
在綜合分析多種邊緣檢測方法的基礎(chǔ)上,本文提出了一種基于改進Zernike矩的亞像素鉚接孔徑檢測方法,采用Canny邊緣提取進行像素級的粗定位,并利用改進的Zernike矩算法進行亞像素級的精定位。
2.4.1 Canny邊緣提取粗定位
Canny算子是一種多階段的優(yōu)化算子,利用高斯函數(shù)的一階微分性質(zhì),把邊緣檢測問題轉(zhuǎn)換為檢測準則函數(shù)極大值的問題,能在噪聲抑制和邊緣檢測之間取得較好的折中,提取的邊緣也相對完整,能夠檢測出圖像較細的邊緣部分[10]。
Canny邊緣檢測的基本思想是首先對圖像選擇一定的高斯濾波器進行平滑濾波,并計算出平滑后圖像G各點處的梯度幅值和梯度方向,獲得相應的梯度幅值圖像H和梯度方向圖像R[11]。則此時點(i,j)處的梯度幅值為
梯度方向為
邊緣提取后的效果如圖9所示。
圖9 Canny邊緣提取分割Fig.9 Edge extraction and segmentation in Canny
2.4.2 改進的Zernike矩算法的亞像素級精定位
在傳統(tǒng)方法中,圖像整體采用一個不變的閾值qt,這就導致邊緣的檢測效果不理想。較為理想的qt值所應該達到的效果是能夠根據(jù)qt值將像素區(qū)分為目標和背景,即讓目標和背景的類間方差最大[12]。
假設(shè)f(x,y)為一幅圖像,Apq為p階q次的Zernike矩,則當圖像為離散形式時,Zernike矩可表示為
式中,Wp*q(ρ,θ)表示在極坐標系下,共軛的單位圓內(nèi)的正交p階q次Zernike多項式[13]。
由于Zernike矩本身是積分形算子,這就使其擁有對噪聲不敏感的特性。因此,采用Zernike矩進行亞像素級別的邊緣檢測。理想的階躍邊緣模型如圖10所示[14]。其中,m為背景灰度;l為圓心到邊緣的垂直距離;φ為邊緣關(guān)于x軸所成的角度;n為階躍高度。
圖10 理想階躍模型[14]Fig.10 Ideal step edge model[14]
如果把邊緣旋轉(zhuǎn)角度–φ,則邊緣將與y軸平行。此時,有
式中,f′(x,y)是旋轉(zhuǎn)后得到的圖像邊緣函數(shù)。
但若僅考慮理想情況下的階躍模型,便會導致檢測出的孔徑邊緣比較模糊。因此,這里提出對鉚釘孔徑邊緣附近的每一個像素都采用Zernike矩計算其邊緣參數(shù)的方法。當Zernike模板為N×N時,其亞像素邊緣檢測公式為
結(jié)合鉚釘?shù)膶嶋H情況,這里設(shè)定相對灰度閾值α和強度閾值β,在鉚釘孔徑邊緣附近搜索灰度值低于相對灰度閾值α的區(qū)域,并沿著這個梯度方向,找出強度值大于強度閾值β的點,記下其坐標。設(shè)像素級邊緣點集為{V},按照式(10)進行計算,生成亞像素點集。
根據(jù)橢圓的一般方程建立優(yōu)化目標函數(shù)。
在實際計算過程中,首先利用Canny邊緣檢測確定鉚釘孔徑圖像的像素級邊緣,再利用上述改進的Zernike矩進行亞像素級定位。不僅避免了繁雜的計算,而且能夠提取到精確的邊緣信息。最終完成了對鉚接孔外圓亞像素級的邊緣提取,如圖11所示。與之前的邊緣檢測方法相比,該算法檢測出的圓孔邊緣輪廓信息相對完整,實現(xiàn)了亞像素級的邊緣檢測。
圖11 亞像素級的邊緣提取Fig.11 Edge extraction in sub-pixel
隨機抽樣一致(RANSAC)算法是一種魯棒性強,且適用于大比例外點的參數(shù)估計算法[15],最早在1981年由Raguram等[16]提出。該算法的基本假設(shè)是樣本中包含正確數(shù)據(jù),即內(nèi)點(可以被模型描述的數(shù)據(jù));也包含異常數(shù)據(jù),即外點(偏離正常范圍很遠、無法適應數(shù)學模型的數(shù)據(jù))。
RANSAC算法的關(guān)鍵是計算出模板圖像的特征點與待匹配圖像的相應特征點之間的坐標轉(zhuǎn)換關(guān)系,即變換矩陣M,變換矩陣和特征點之間關(guān)系如式(13)所示[17]。
RANSAC算法采用迭代的方式從一組包含局外點的數(shù)據(jù)中估算出數(shù)學模型的參數(shù)。經(jīng)過一定次數(shù)的迭代后,選取接近合理解概率最大的樣本集,得到最合理解[18]。置信度L與迭代次數(shù)K關(guān)系式為
RANSAC算法擬合過程排除了局外點的干擾,并估計出高精度的模型參數(shù),擬合結(jié)果如圖12所示。
圖12 RANSAC擬合圓Fig.12 Circle fitting in RANSAC
開始檢測前,分別設(shè)置锪窩外圓孔徑的基準值為7190 μm和極限偏差值為50 μm,即孔徑在(7190±50) μm范圍內(nèi),均為合格孔,否則為不合格孔,如圖13所示。
圖13 極限偏差設(shè)置Fig.13 Limit deviation setting
人工利用內(nèi)卡規(guī)進行測量時,把卡規(guī)插入鉚接孔中,使測頭接觸內(nèi)孔表面,盡量保持測頭連線與孔軸線垂直,測頭沿孔壁圓周方向擺動,卡規(guī)指示最大值即為測量值(直徑)。人工檢測進行3次測量取其均值,并將其作為參考,檢驗機器視覺檢測結(jié)果正確性。為了使檢測結(jié)果真實準確,選取鉚接板上的5行6列共30個鉚接位置進行3次重復檢測,記錄每個位置的鉚接孔徑尺寸信息,并對測量出的數(shù)據(jù)進行統(tǒng)計分析,檢測結(jié)果如圖14所示。
圖14 檢測結(jié)果Fig.14 Test results
將3組機器視覺檢測的鉚接孔徑的均值與人工檢測的均值數(shù)據(jù)進行對比,如圖15所示??梢钥闯觯瑑山M檢測數(shù)據(jù)的變化趨于一致,而且兩條折線在各個節(jié)點處相差不超過10 μm。
圖15 機器和人工檢測孔徑均值對比圖Fig.15 Comparison diagram of mean value of aperture detected by machine and manual
將3次機器視覺檢測的鉚接孔徑數(shù)據(jù)進行對比,如圖16所示。可以看出,3者整體變化趨勢基本相同,說明這些位置的3次檢測結(jié)果大致相同。折線波動部分的檢測結(jié)果相差不超過10 μm,即鉚接孔徑的重復測量精度可達到10 μm。
圖16 機器視覺3次孔徑檢測對比圖Fig.16 Comparison diagram of cubic aperture detection in machine vision
將機器視覺檢測的3次鉚接孔徑分別與人工測量的均值數(shù)據(jù)作差,求出各個鉚接孔徑的差值,并將3組差值進行對比,如圖17所示。可以看出,每點相差值均在10 μm以內(nèi),說明檢測系統(tǒng)具有較高的穩(wěn)定性。
圖17 人工和機器視覺測量偏差圖Fig.17 Deviation diagram of manual and machine vision measurement
為了更加直觀地對比機器視覺檢測與人工檢測的鉚接孔徑數(shù)據(jù),將二者檢測數(shù)據(jù)的均值做成箱線圖,如圖18所示??梢钥闯觯?(1)箱體在豎直方向的高度反映了數(shù)值范圍,藍色箱體整體在紅色箱體上方,說明機器視覺檢測孔徑數(shù)值整體偏大; (2)黃色線的位置基本相同,即人工檢測和機器視覺檢測鉚接孔徑的中心趨勢基本相同; (3)小方塊表示異常值,人工與機器視覺檢測孔徑時,各出現(xiàn)1個異常點,說明二者都具有良好的檢測穩(wěn)定性; (4)紫色線為非異常范圍內(nèi)的最大值和最小值,即機器視覺檢測鉚接孔徑極差更?。?(5)箱體的寬度反映了數(shù)據(jù)的散布情況,說明二者檢測孔徑分布情況基本相同。
圖18 人工和機器視覺測量箱線圖Fig.18 Box diagram of manual and machine vision measurement
(1)針對飛機鉚接孔徑的檢測問題,本研究提出了一種改進的基于Zernike矩算法的亞像素級邊緣檢測方法。該方法檢測出的圓孔邊緣輪廓信息相對完整,實現(xiàn)了亞像素級的邊緣檢測。
(2)設(shè)計了锪窩孔外圓直徑檢測系統(tǒng),在對30個位置的鉚接孔徑進行重復檢測,并與人工檢測結(jié)果對比后,證明該系統(tǒng)檢測結(jié)果的偏差值在±10 μm范圍內(nèi),重復測量精度可達到10 μm。
(3)該檢測系統(tǒng)可以同時測量多個位置的孔徑,實現(xiàn)了對鉚接孔徑的高精度、高效率測量。