聶鵬,王家明,郭勇翼,單春富,紀(jì)俐,李正強(qiáng)
1沈陽航空航天大學(xué)機(jī)電工程學(xué)院;2沈陽百祥機(jī)械加工有限公司
飛機(jī)結(jié)構(gòu)件的連接是飛機(jī)裝配中重要的一環(huán),目前主要以機(jī)械連接為主,最常用的形式為鉚釘連接和螺紋連接。飛機(jī)上有多達(dá)數(shù)百萬連接,而75%~80%的機(jī)體疲勞破壞發(fā)生在機(jī)身連接孔處,可見連接質(zhì)量對飛機(jī)整體質(zhì)量影響之大[1]。
锪窩深度對孔質(zhì)量和連接強(qiáng)度有很大的影響,窩深不一將導(dǎo)致鉚釘突出飛機(jī)蒙皮或凹陷到蒙皮內(nèi),必然影響飛機(jī)的疲勞強(qiáng)度[2]。如果锪窩孔太深,蒙皮受力后鉚釘松動,使連接強(qiáng)度降低;如果锪窩孔的深度不夠,則會影響壁板平齊度[3]。因此對飛機(jī)锪窩深度的檢測具有重要意義。
由于圓錐形锪窩孔沒有可以直接測量的基準(zhǔn)面,所以通用卡尺無法直接測得锪窩深度,需要借助一些特殊的測量工具[4]。目前,對于锪窩深度的檢測主要靠人工抽檢完成,工作人員使用套筒、鋼球和千分尺間接測量出深度值。由于工作人員的視覺疲勞等客觀生理因素以及存在的個體差異容易造成漏檢、誤檢情況的發(fā)生,使得檢測結(jié)果出現(xiàn)差異,不能滿足現(xiàn)代工業(yè)快速、精密、準(zhǔn)確的檢測和測量要求[5]。對此,基于工業(yè)相機(jī)的視覺檢測目前在智能制造生產(chǎn)中得到了廣泛的應(yīng)用和普及,這種非接觸檢測方法具有精確度高、速度快及穩(wěn)定性高等特點[6]。因此,本研究以3D激光輪廓傳感器為基礎(chǔ)搭建檢測裝置,并綜合運(yùn)用圖像處理算法實現(xiàn)了對锪窩深度實時、在線的高精度、高效率檢測。
待測锪窩孔結(jié)構(gòu)如圖1所示,其底部與孔徑結(jié)合處沒有可以直接測量的基準(zhǔn)面,因此不能通過測量上表面與窩底的高度差來確定锪窩深度。
圖1 锪窩孔及其剖視圖
圖2為測量原理。采用推論法間接求解锪窩深度H,已知量為锪窩鉆角度α,制孔鉆直徑D。上表面锪窩孔外圓半徑R可由圖像處理算法測得。
根據(jù)圖2中的測量原理,可得锪窩深度的計算公式為
(1)
圖2 測量原理
锪窩深度檢測硬件系統(tǒng)由Y軸步進(jìn)電機(jī)、同步帶傳動機(jī)構(gòu)、雙波位移光柵尺、激光導(dǎo)向器、3D激光輪廓傳感器和手持式支撐機(jī)構(gòu)等組成。軟件系統(tǒng)基于3DMVS的圖像檢測SDK文件開發(fā)包開發(fā)設(shè)計,同時集成Halcon圖像深度學(xué)習(xí)識別算法。
搭建的實驗系統(tǒng)結(jié)構(gòu)如圖3所示,3D激光輪廓傳感器固定在同步傳送裝置上,當(dāng)驅(qū)動傳送裝置后,帶動雙波位移光柵尺觸發(fā)脈沖,使相機(jī)在Y方向做直線運(yùn)動,并連續(xù)掃描。擬合掃描儀獲得的X、Z方向的數(shù)據(jù),完成三維數(shù)據(jù)采集。數(shù)據(jù)通過千兆網(wǎng)卡傳輸至計算機(jī)進(jìn)行圖像處理。
圖3 實驗系統(tǒng)搭建
圖4為檢測系統(tǒng)采集到的锪窩孔亮度,圖5為锪窩孔邊緣局部放大。圖像的锪窩孔部分與工件上表面有明顯邊界,需要用圖像處理算法提取出锪窩孔的亞像素外圓輪廓,以獲取外圓半徑R。锪窩孔局部放大圖中每個像素是圖片里最小的面積單位,宏觀上可將兩個像素看成連通的,但是在微觀上它們之間還存在著無限更小的亞像素,可通過軟件近似地將其計算出來[7]。利用圖像處理算法實現(xiàn)亞像素檢測,提高測量精度。
圖4 锪窩孔掃描成像
圖5 局部放大
如圖6所示,根據(jù)上述對锪窩孔的圖像分析制定圖像處理流程。先用圖像處理算法做亞像素邊緣提取前的粗定位,在粗定位的邊緣采用卡尺工具法提取锪窩孔亞像素輪廓的邊緣點,采用擬合圓算法得到圓輪廓,獲取外圓半徑R。
圖6 圖像處理流程
采集的锪窩孔圖像由淺色背景和深色锪窩孔組成,兩部分區(qū)域具有不同的灰度級。其灰度直方圖如圖7所示,有兩個不同灰度級范圍的尖峰[8]:第一個尖峰灰度值小,為深色圓孔部分;第二個尖峰部分為工件表面。故可選擇一個門限T對圖像進(jìn)行分割以獲取锪窩孔部分。
圖7 灰度直方圖
假設(shè)圖像為I,則其中每個像素點的灰度值為G(x,y),經(jīng)過閾值分割后的圖像為I′,灰度值為G′(x,y),則
(2)
式中,(x,y)為像素點的位置。
經(jīng)過多次對比分割結(jié)果發(fā)現(xiàn),取T=100時分割效果最好,如圖8所示。
圖8 閾值分割
數(shù)學(xué)形態(tài)學(xué)是研究數(shù)字圖像形態(tài)結(jié)構(gòu)特征的理論,通過對目標(biāo)圖像形態(tài)變換實現(xiàn)結(jié)構(gòu)分析和特征提取。腐蝕和膨脹是兩種最基本的形態(tài)學(xué)運(yùn)算,腐蝕可以使圖像前景色面積減少;膨脹則相反,使前景色面積得到擴(kuò)展[9]。
集合A被集合B膨脹,定義為
(3)
使用集合B對集合A進(jìn)行腐蝕,定義為
(4)
腐蝕與膨脹是一對對偶運(yùn)算,膨脹與腐蝕運(yùn)算同時進(jìn)行便構(gòu)成了開運(yùn)算與閉運(yùn)算。對圖像先膨脹后腐蝕的運(yùn)算稱為閉運(yùn)算[10],可表示為
A·B=(A⊕B)?B
(5)
分析圖8中閾值分割后圖像的特點,锪窩孔內(nèi)仍有許多白色細(xì)小空洞,利用閉運(yùn)算可以在保持锪窩孔原有形狀的基礎(chǔ)上填充圓內(nèi)的細(xì)小空洞。使用半徑為3的圓形元素對圖像進(jìn)行閉運(yùn)算后再通過函數(shù)shape_trans()將圖像進(jìn)行凸包處理,填充凹陷部分。采用最小外接圓算子獲取圓輪廓,完成對锪窩孔外圓的粗定位。處理過程如圖9所示。
圖9 形態(tài)學(xué)處理過程
在粗定位的圓輪廓上等距產(chǎn)生卡尺工具,采用卡尺工具法進(jìn)行邊緣點檢測。通常情況下,亞像素邊緣點存在于圖像逐漸發(fā)生過渡變化的區(qū)域??ǔ吖ぞ呖梢栽谝?guī)定范圍內(nèi)檢測出圖像灰度值變化幅度較大的點,而圖像邊緣輪廓處就是灰度值變化幅度最大的地方??ǔ吖ぞ叩臏y量精度高,常通過檢測物體的兩個邊緣點來測量物體的寬度。卡尺工具的大小決定能否檢測到邊緣點,卡尺工具的個數(shù)決定了待擬合邊緣點的個數(shù)。圓輪廓上卡尺工具的個數(shù)越多,則擬合結(jié)果越精確,但檢測時間也會相對增加[11]。
實驗選用的卡尺工具的長度、寬度和數(shù)量分別為50、15和45,檢測過程如圖10所示。圖中粗定位輪廓上的小矩形即為卡尺工具,可以檢測得到各邊緣點及其坐標(biāo),檢測結(jié)果如圖11所示。將檢測到的邊緣點進(jìn)行圓擬合,產(chǎn)生圓輪廓并獲取半徑。采用這種算法得到的輪廓是亞像素邊緣,可以達(dá)到高精度的要求。
圖10 檢測過程
圖11 檢測結(jié)果
最小二乘法是最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配,廣泛應(yīng)用于數(shù)據(jù)辨識領(lǐng)域[12]。從卡尺工具法檢測的結(jié)果看,檢測到的點除圓輪廓上的點外,還存在部分局外點,這些局外點會對圓擬合造成干擾。最小二乘法擬合圓是在確定函數(shù)類?span{φ0(x),φ1(x),…,φn(x)}中求一個擬合已知數(shù)據(jù)(Xi,Yi)(i=0,1,2,3…n)的函數(shù)Ψ(x),使得公式取得最小值,可表示為
(6)
將卡尺工具檢測到的點用最小二乘法擬合圓輪廓,擬合結(jié)果如圖12所示。采用最小二乘擬合得到的是針對所有數(shù)據(jù)的全局最優(yōu),但由于數(shù)據(jù)點中存在部分干擾點,而最小二乘法擬合的平方項對離群點非常敏感,所以受這些干擾點影響,擬合得到的圓明顯外偏,造成了較大的誤差。因此不可采用最小二乘法進(jìn)行圓輪廓擬合。
圖12 最小二乘法擬合圓
隨機(jī)抽樣一致(RANSAC)算法采用迭代方式從一組包含局外點的數(shù)據(jù)中估算出數(shù)學(xué)模型參數(shù),相比于最小二乘方法,其融合了剔除不合格數(shù)據(jù)的思想,因此對于有錯誤數(shù)據(jù)的樣本能夠更快更準(zhǔn)地給出辨識結(jié)果[13]。
對圖像中的點集進(jìn)行初始化,并在其中隨機(jī)抽取3個數(shù)據(jù)點進(jìn)行曲線擬合,判斷其它點到曲線的距離,若距離大于設(shè)定閾值,則為無效點,返回第一步繼續(xù)抽取點;若距離在設(shè)定范圍之內(nèi),則將其列入有效點集行列,迭代次數(shù)累計加1。判斷有效點數(shù)是否大于設(shè)定數(shù)值n,若不大于n,則再次回到第一步,重新選擇4個數(shù)據(jù)點;如大于n,則將得到的所有有效點擬合,記錄最佳擬合結(jié)果,直到達(dá)設(shè)定的迭代次數(shù)完成擬合。
RANSAC算法擬合結(jié)果如圖13所示。擬合過程已排除局外點的干擾,魯棒地估計出高精度的模型參數(shù),擬合效果優(yōu)于最小二乘擬合法。獲取圓半徑后代入式(1)即可得到锪窩深度。
圖13 RANSAC擬合圓
卡尺工具法結(jié)合RANSAC擬合的亞像素算法精度能達(dá)到0.1~0.5個像素,精度相當(dāng)于提高了2~10倍,實現(xiàn)了高精度檢測。RANSAC擬合的亞像素邊界與像素邊界精度對比如圖14所示。
圖14 亞像素與像素邊界精度對比
實驗中,對鉚接板上的6行7列共42個鉚接位置進(jìn)行了多次重復(fù)檢測,記錄每個位置锪窩孔的深度(見表1),并對測量結(jié)果進(jìn)行分析。
表1 機(jī)器視覺锪窩深度檢測均值 (μm)
锪窩深度檢測系統(tǒng)的運(yùn)行結(jié)果如圖15所示,可以看到各個位置的锪窩深度。使用此方法可以一次性同時檢測出多個結(jié)果,測量速度比人工檢測高,實現(xiàn)了高效率檢測。
圖15 锪窩深度檢測結(jié)果
對42個位置的锪窩深度重復(fù)檢測3次,得到3次锪窩深度對比結(jié)果(見圖16)??梢钥闯?,三條折線有很多部分基本重合,說明這些位置的3次高度差檢測結(jié)果大致相同,且折線波動部分的檢測結(jié)果相差不超過20μm,滿足高精度要求。
圖16 三次锪窩深度對比
將3次檢測結(jié)果分別與檢測均值作差,求出偏差值,得到如圖17所示機(jī)器視覺測量偏差??梢钥闯?,3次測量偏差值都在±15μm內(nèi),檢測系統(tǒng)的重復(fù)測量精度達(dá)到了20μm。
圖17 視覺測量偏差對比
如圖18所示,將檢測系統(tǒng)三次測量的锪窩深度均值與人工測量的原始數(shù)據(jù)(見表2)結(jié)果進(jìn)行對比??梢钥闯觯瑑煞N測量結(jié)果趨勢大致一致,且兩條折線在各個節(jié)點處的偏差均在15μm內(nèi),相差均值為5.6μm,在檢測精度要求范圍之內(nèi)。因此該測量方法實現(xiàn)了高精度檢測。
圖18 锪窩深度檢測對比
表2 人工锪窩深度檢測數(shù)值 (μm)
誤差的主要來源分為系統(tǒng)誤差與偶然誤差。系統(tǒng)誤差中有3D激光輪廓傳感器安裝誤差和使用過程中出現(xiàn)傾斜造成的誤差,可以通過系統(tǒng)標(biāo)定矯正此類安裝誤差;還有被測工件的反射面傾斜以及表面粗糙度的不同而產(chǎn)生的測量誤差,由于不同環(huán)境下的锪窩孔表面有差別,也會導(dǎo)致檢測出的輪廓與實際邊緣有微小差別,軟件上可能會因為算子的參數(shù)設(shè)置不當(dāng)以及圖像上沒有完全濾除的噪聲而產(chǎn)生誤差。偶然誤差有設(shè)備使用時的對中、瞄準(zhǔn)偏差以及使用中不能保持完全靜止不抖動而產(chǎn)生的測量誤差。
以3D激光輪廓傳感器為基礎(chǔ)設(shè)計了锪窩深度檢測系統(tǒng),提出了基于機(jī)器視覺的锪窩深度檢測方法,實現(xiàn)了對锪窩孔的非接觸檢測,并對42個位置的高度差進(jìn)行重復(fù)檢測。
(1)檢測系統(tǒng)一次掃描可以檢測多個位置的锪窩深度,速度快,效率高。
(2)機(jī)器視覺檢測結(jié)果的偏差值在±15μm范圍內(nèi),重復(fù)測量精度達(dá)到20μm。
(3)相同條件下對比機(jī)器視覺和人工檢測數(shù)據(jù)發(fā)現(xiàn),其結(jié)果基本一致。每組數(shù)據(jù)平均相差5.6μm,因此在檢測精度要求范圍內(nèi)實現(xiàn)了高精度檢測。