楊 鐸,劉菲菲
(大連大學(xué) 機(jī)械工程學(xué)院,遼寧 大連 116622)
3D打印技術(shù)是制造行業(yè)里的新興技術(shù),其模型獲取的方法也是研究熱點之一,有模型的正向設(shè)計和逆向重建兩種方式。特別是三維逆向重構(gòu)的算法與理論逐漸成熟,可應(yīng)用到實際加工中。
基于圖像的三維重構(gòu)方法可分為兩種:單目視覺和立體視覺[1]。與單目視覺法相比,立體視覺法重構(gòu)精度普遍較高、重構(gòu)時間長、設(shè)備復(fù)雜。隨著不斷研究和發(fā)展,單目視覺法的重建精度在逐漸提高,再加上其本身具有的簡單便捷等優(yōu)點,具有研究價值。相比單目視覺中其他方法如陰影法、紋理法、輪廓法、調(diào)焦法等,運動法對圖像要求較低,最具魯棒性,可實現(xiàn)完全自動化,在計算機(jī)視覺、虛擬現(xiàn)實、逆向工程等多個領(lǐng)域都具有實用性[2],國內(nèi)外已有相關(guān)研究。SNAVELY等人[3]提出將SIFT特征提取算法運用到了運動法中,并展示了重構(gòu)效果,但是運算量大、效率低;為了解決這個問題,BAY等人[4]提出了SURF特征提取和匹配算法,進(jìn)一步提高了運算效率。近年來,出現(xiàn)了對基本矩陣求解方法和對誤檢測點篩選算法的研究[5-6]。張帆[7]改進(jìn)了基于直線特征的三維重構(gòu)方法,利用無人機(jī)采集了人造建筑的圖片集,基于線段特征進(jìn)行了圖像的特征提取與匹配,直線重構(gòu)后的精度高,且抗干擾能力強(qiáng),然而其整個重建過程的自動化程度較低,數(shù)據(jù)量大。
針對上述問題,本研究提出優(yōu)化采集序列圖像的方法及算法流程,以葉輪零件為例,進(jìn)行三維重構(gòu)實驗;在VC++平臺結(jié)合OpenGL實現(xiàn),并驗證該方法的精度和魯棒性。
筆者提出的算法流程如圖1所示。
圖1 算法流程
圖1中,首先采集圖像數(shù)據(jù),進(jìn)行圖像去噪和增強(qiáng)等預(yù)處理,提取并匹配其中的關(guān)鍵信息,計算本質(zhì)矩陣和基本矩陣,最后代入自標(biāo)定計算出的相機(jī)內(nèi)外參數(shù),重建三維模型。
為降低高像素圖片需要處理的數(shù)據(jù)量,筆者首先對獲取的圖像進(jìn)行濾波處理。中值濾波是常用的非線性的平滑濾波方式之一。把數(shù)字圖像中一點的像素值用該點相鄰各點的中值來取代,A為濾波窗口,中值濾波可表示為:
(x,y)=Med{f(x,y),(x,y)A}
(1)
為了改善由色調(diào)相近、拍攝時抖動等引起的模糊成像,更容易檢測圖像中的關(guān)鍵特征,筆者用Matlab將普通圖像轉(zhuǎn)化成灰度圖像,再進(jìn)行直方圖均衡化處理。
采用改進(jìn)的SIFT算法,分為以下幾個步驟:
(1)檢測尺度空間極值點;
(2)精確定位極值點;
(3)為每個關(guān)鍵點指定方向參數(shù);
(4)生成關(guān)鍵點描述算子。
圖像的高斯尺度空間,由圖像和不同的高斯卷積得到,不同尺度的圖像空間表示為:
L(x,y,σ)=G(x,y,σ)*I(x,y)
(2)
式中:I—圖像像素坐標(biāo);G(x,y,σ)—二維高斯核函數(shù)。
二維高斯核函數(shù)表達(dá)式為:
(3)
式中:σ—尺度空間因子。
將局部極值檢測作為高斯差分空間(DoG)中的關(guān)鍵點。DoG算子的定義是兩種不同尺度的高斯核的差異[8],即:
D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))I(x,y)=L(x,y,kσ)-L(x,y,σ)
(4)
建立高斯差分(DoG)金字塔如圖2所示。
圖2 高斯差分(DoG)金字塔
創(chuàng)建圖像的高斯金字塔以確定要素點的位置和穿梭尺寸。第一段的第一層是原始像素的兩倍,且同次序上層比例因子與低層比例因子成比例,為其k倍。對第一次序的第三層采樣,得到第二次序的第一層,第二次序的另一層與第一段構(gòu)造方法相同;第三階及其余各階各層同理。一般金字塔的構(gòu)造選擇4階和5層。
DoG空間極值檢測如圖3所示。
圖3 DoG空間極值檢測
當(dāng)檢測到極值時,筆者將每個像素(除了DoG空間的底部和最頂部像素之外)與其所有鄰居進(jìn)行比較,判斷其大于或小于它的圖像域和比例域的相鄰點[9]。圖3中,需要將黑色十字標(biāo)記的像素與相同比例的周圍26個像素作比較,具體包括鄰域的8個像素和對應(yīng)于相鄰比例的周圍鄰域中的18個像素,確保檢測到的像素在比例空間和二維圖形空間中都是局部極值。
筆者通過擬合三維二次函數(shù),確定特征點的位置和比例(實現(xiàn)子像素精度)。依據(jù)特征點的鄰像素梯度矢量分布結(jié)構(gòu),將方向參數(shù)分配給每個關(guān)鍵點,算子最終具有旋轉(zhuǎn)不變性。設(shè)(x,y)為某以關(guān)鍵點鄰域像素,則(x,y)像素m處的梯度模值m(x,y)滿足:
m(x,y)=
(5)
以及方向θ(x,y)計算式:
(6)
式中:a—最大幅值;L—關(guān)鍵點的尺度。
為實現(xiàn)建模過程自動化,需采用直接從圖像序列中自動標(biāo)定。早期直接求解KRUPPA方程的方法,幾乎不能統(tǒng)一所有圖像到一個映射框架中,精度較低;基于本質(zhì)矩陣的自標(biāo)定方法同樣達(dá)不到理想精度[10]。對于序列圖像的自標(biāo)定,基于絕對對偶二次曲面的方法是首選,該算法標(biāo)定出的精確度可達(dá)1像素,其基本思想如下:
(7)
式中:ω*—絕對對偶二次曲線;Pi—攝影相機(jī)矩陣;Q*—絕對對偶二次曲面;λi—常數(shù)因子。
通過(已知)Pi可以把ω*上的約束轉(zhuǎn)移為Q*的約束。消去λi常數(shù)(式7兩邊矩陣對應(yīng)項作叉乘),即:
(8)
式中:[*]kl—矩陣第k行第l列元素;Ki—特定相機(jī)內(nèi)參數(shù)矩陣。
然后由Ki的約束來確定Q*,最后用式(7)計算出ω*。
每張圖像最多只能列出5個獨立的歐氏矩陣,其公式為:
Pi≌K1[R1|0]≌[K1|0]
(9)
特征點需要用種點標(biāo)記出來,即生成特征點描述算子,其過程如圖4所示。
圖4 生成特征點描述算子過程
首先,旋轉(zhuǎn)其坐標(biāo)軸系,匹配特征點正方向(即主方向),選擇以特征點為中心的窗口[11]。圖4箭頭代表矢量;矢量方向為每個像素的梯度方向;長度表示梯度的模數(shù);并有高斯加權(quán)的圓圈。在方格中,共可得出8向的梯度直方圖,并繪制各個梯度方向上的累計值。最終形成的每個種點含有8向的矢量信息,每個特征點由4個種點組成。
本研究通過SIFT初始匹配的8點法計算基本矩陣,發(fā)現(xiàn)從兩幅圖中找到的n對點集數(shù)大于8,所以采用最小二乘法求解基本矩陣[12-13],即:
E=t×R=[t]×R
(10)
式(8)為本質(zhì)矩陣的表達(dá)式,對基本矩陣進(jìn)行奇異值分解,可得和兩幅圖相關(guān)的攝像機(jī)矩陣P和P′,從而推導(dǎo)出攝像機(jī)的外參數(shù)(旋轉(zhuǎn)矩陣R和平移向量t),計算離散特征點的空間三維坐標(biāo)。
實驗基于單目視覺原理,采用三維重建方法,建立模型重構(gòu)系統(tǒng)。
實驗裝置如圖5所示。
圖5 圖像采集裝置示意圖
葉輪在柔光棚內(nèi)拍攝,并噴有顯像粉,去除反光的同時增強(qiáng)表面特征。實驗相機(jī)為佳能500D,35 mm定焦鏡頭。根據(jù)實踐經(jīng)驗調(diào)整攝像機(jī)參數(shù)。在手動模式下設(shè)置感光度400,光圈F5.0,快門1/320 s。需要從多個視角拍攝葉輪,保證每張圖像有超過60%的重疊[14]。
相機(jī)拍攝角度布局如圖6所示。
圖6 拍攝角度布局圖
相機(jī)以3個高度俯視拍攝物體。轉(zhuǎn)動轉(zhuǎn)臺一圈,可獲得3組俯視圖。由于待測物體為剛性物體,倒置后不會變形,可將物體上下翻轉(zhuǎn)后重復(fù)拍攝,獲得仰視的3組圖像。物體通過高精度轉(zhuǎn)臺每次轉(zhuǎn)10°,即重構(gòu)對象相對于相機(jī)轉(zhuǎn)動,轉(zhuǎn)臺的轉(zhuǎn)動由計算機(jī)控制。36張為一圈,共216張照片。
合成的葉輪網(wǎng)格模型與實物模型對比如圖7所示。
圖7 網(wǎng)格模型與實物模型對比
由圖7可見,零件的結(jié)構(gòu)特征能夠良好展示。
鑒于激光掃描儀比傳統(tǒng)圖像重構(gòu)法模型精度高,其所得點可用做參考坐標(biāo)。本研究采用吳清超[15]的精度檢測方法驗證重建精度。在葉輪的一個葉片上設(shè)置4個圓形靶標(biāo),用激光掃描系統(tǒng);6個設(shè)置的圖形靶標(biāo),用本文模塊??刂泣c為激光掃描的4個圓靶標(biāo),將本文模塊生成的點云數(shù)據(jù)坐標(biāo)系轉(zhuǎn)換至激光掃描儀器坐標(biāo)系下;其余6個圖形靶標(biāo)的點位數(shù)據(jù)作為檢核點。與激光掃描儀實測坐標(biāo)相比較。
二者對比結(jié)果如表1所示。
表1 校驗點三維坐標(biāo)
表1中,坐標(biāo)平均誤差為0.19,滿足檢驗標(biāo)準(zhǔn)。標(biāo)準(zhǔn)差為0.101 6,具備魯棒性。本文算法精度接近激光掃描儀,而激光掃描儀的重建精度高于傳統(tǒng)圖像建模,說明文中算法比傳統(tǒng)圖像建模精度高。
本研究采用優(yōu)化的序列圖像獲取方式,進(jìn)行了葉輪的三維重構(gòu)實驗,結(jié)果表明:重構(gòu)模型坐標(biāo)平均誤差為0.19;按一定角度來擺放相機(jī)拍攝圖像,配合去噪算法,以減少運算量;采用改進(jìn)的SIFT算法能夠準(zhǔn)確匹配特征點;需要絕對對偶二次曲面法標(biāo)定相機(jī)實現(xiàn)自動化;利用靶標(biāo)法驗證重建精度,計算出坐標(biāo)誤差的標(biāo)準(zhǔn)差為0.101 6。
同激光掃描儀相比,基于單目視覺的圖像三維重構(gòu)的方法具有設(shè)備成本低等優(yōu)點,適應(yīng)性較好。該研究可為3D打印模型獲取提供一種方法。