李 治
1珠海市測繪院,廣東 珠海,519015
在工業(yè)、工程檢測和逆向工程中,曲面擬合是經(jīng)常遇到的問題。一般實(shí)物在空間的模型都有著嚴(yán)格的數(shù)學(xué)公式表達(dá),通過掃描獲取實(shí)物表面點(diǎn)的三維坐標(biāo),可以擬合出實(shí)物表面在空間坐標(biāo)系中的幾何方程[1,2],這對于發(fā)現(xiàn)實(shí)物的整體形變以及生成模型設(shè)計(jì)CAD圖紙是至關(guān)重要的。谷川等[3,4]提出了采用遺傳算法進(jìn)行曲面擬合,并且通過工程實(shí)例說明了該算法的有效性,但是對于柱面這一類的空間曲面進(jìn)行坐標(biāo)平移旋轉(zhuǎn)以及標(biāo)準(zhǔn)曲面表達(dá)參數(shù)的求取存在一定的困難。張益澤等[5]利用圓柱的幾何原理列誤差方程,并對其做平方變換,相較于谷川的方法較為簡單,但要加兩個(gè)限制條件,而且要迭代兩次。田曉等[6]利用坐標(biāo)轉(zhuǎn)換的方法達(dá)到減少了參數(shù)的目的,但也僅僅是對圓柱面進(jìn)行了擬合。王解先[7,8]針對工業(yè)測量中的二次曲面擬合提出了按特征值、旋轉(zhuǎn)角和平移量為參數(shù)擬合二次曲面,其對于旋轉(zhuǎn)矩陣是分別求3個(gè)旋轉(zhuǎn)角的3個(gè)旋轉(zhuǎn)矩陣的乘積,不能直接得到旋轉(zhuǎn)矩陣。據(jù)此,本文提出了基于豪斯霍爾德變換的三維空間柱面擬合法,豪斯霍爾德變換可以直接得到旋轉(zhuǎn)矩陣,將提高擬合的效率,通過豪斯霍爾德變換將柱面的軸向轉(zhuǎn)換到與測量坐標(biāo)系Z軸平行,點(diǎn)云投影到二維平面,再擬合投影的曲線,最后拓展到三維空間達(dá)到柱面擬合,為后面點(diǎn)云三維建模中一般柱面的建模提供一種新的方法,并結(jié)合實(shí)例說明該方法可行且精度可靠。
常見的三維空間柱面包括圓柱面、橢圓柱面、拋物柱面和雙曲柱面[9]。這些柱面在一個(gè)測站的數(shù)據(jù)在二維平面都可以用式(1)來表達(dá)。
一般地,在Rn中,將向量x映射為關(guān)于“與單位向量u正交的n-1維子空間”對稱的向量y的鏡像變換定義如下:設(shè)單位向量ω∈Rn,稱R=E-2ωωT為豪斯霍爾德矩陣(初等反射矩陣),由豪斯霍爾德矩陣確定的線性變換成為豪斯霍爾德變換(初等反射變換、鏡像變換或反射變換)[10]。空間中的三維柱面的姿態(tài)都是隨機(jī)的,將柱面的軸向利用豪斯霍爾德變換至與測量坐標(biāo)系中的Z軸平行,就可以將柱面投影至XOY平面,利用點(diǎn)的X、Y坐標(biāo)擬合曲線。最終表達(dá)一個(gè)柱面模型的參數(shù)分別是(α,β,a0,a1,a2…an),其中α、β分別是柱面軸向與X、Y軸 的 夾 角,a0、a1、a2…an是 二 維 曲 線 表 達(dá) 式 的系數(shù)。
對于求解法向量的方法有很多,本文采用主成分分析法(principal component analysis,PCA),該方法利用搜索查詢點(diǎn)的k(k≥3)鄰域構(gòu)造協(xié)方差矩陣,協(xié)方差矩陣反映了該鄰域局部曲面的變化規(guī)律,由此可以求解該矩陣特征值和特征向量來估計(jì)查詢點(diǎn)的法向量。
查詢點(diǎn)pi的協(xié)方差矩陣C為:
利用雅克比方法求協(xié)方差矩陣C,其特征值為λ1、λ2、λ3(λ1≤λ2≤λ3),其對應(yīng)的特征向量為n1、n2、n3。3個(gè)向量中最小特征值對應(yīng)的特征向量n1就是查詢點(diǎn)的法向量。為了方便,對于所有的法向量都標(biāo)準(zhǔn)化處理。
利用柱面軸向與柱面點(diǎn)的法向量都垂直的特點(diǎn)求取柱面軸向向量l=(n,m,t),利用克拉默法則求取l,對 于 兩 個(gè) 不 共 線 上 向 量a=(x1,y1,z1),b=(x2,y2,z2)。
式中,R為旋轉(zhuǎn)矩陣,由豪斯霍爾德變換求得R.
在得到旋轉(zhuǎn)矩陣R后,將點(diǎn)云通過旋轉(zhuǎn)調(diào)整至與x、y軸平面垂直的姿態(tài)。此時(shí)柱面物體在x、y軸平面的投影就是一條曲線。由點(diǎn)云的x,y坐標(biāo)通過最小二乘求多項(xiàng)式系數(shù)就能把柱狀物體的大小確定下來了。
本文采用Riegl VZ-1000對某建筑物傾斜圓柱體進(jìn)行掃描,Riegl VZ-1000是脈沖式掃描,標(biāo)稱作業(yè)距離為1 400 m,單次掃描精度為5 mm/100 m,本次數(shù)據(jù)采集的距離小于100 m,故點(diǎn)云的精度在5 mm以內(nèi)。在掃描得到的點(diǎn)云數(shù)據(jù)中裁剪出研究對象點(diǎn)云,利用統(tǒng)計(jì)分析技術(shù)剔除點(diǎn)云數(shù)據(jù)中的離群點(diǎn),計(jì)算每個(gè)點(diǎn)到它所有鄰域內(nèi)點(diǎn)的平均距離,假設(shè)得到的結(jié)果是一個(gè)高斯分布,其形狀由均值和標(biāo)準(zhǔn)差定義,平均距離在標(biāo)準(zhǔn)范圍(有全局距離平均值和方差定義)之外的點(diǎn),可被定義為離群點(diǎn)并剔除,最終采用體素格網(wǎng)化法進(jìn)行下采樣后點(diǎn)云如圖1所示,計(jì)算點(diǎn)云的法向量之后得到軸向量為(0.418,0.114,0.485),經(jīng)過豪斯霍爾德轉(zhuǎn)換得到旋轉(zhuǎn)矩陣R。
圖1 原始圓柱點(diǎn)云Fig.1 Original Cylindrical Point Cloud
通過坐標(biāo)轉(zhuǎn)換將傾斜圓柱點(diǎn)云數(shù)據(jù)轉(zhuǎn)換值與xoy平面垂直如圖2所示,將點(diǎn)云數(shù)據(jù)投影至xoy平面,利用最小二乘算法求取圓的圓心和半徑,得到圓的表達(dá)式為:(X+456.828)2+(Y-214.149)2=29.8152,最終圓柱面擬合如圖3所示。
圖2 旋轉(zhuǎn)后圓柱點(diǎn)云Fig.2 Cylindrical Point Cloud After Rotation
圖3 擬合圓柱面Fig.3 Fitting a Cylindrical Surface
對擬合后的圓柱面利用旋轉(zhuǎn)矩陣進(jìn)行姿態(tài)調(diào)整,旋轉(zhuǎn)回初始姿態(tài),利用初始點(diǎn)云數(shù)據(jù)與擬合后旋轉(zhuǎn)柱面參數(shù)進(jìn)行誤差分析,計(jì)算每個(gè)點(diǎn)至圓柱面的距離,如圖4所示,除少部分噪聲點(diǎn)影響,大部分的誤差控制在0.05 cm以內(nèi)。
圖4 擬合殘差Fig.4 Fitting Residuals
本文采用Riegl VZ-1000對某大學(xué)行政樓掃描的部分?jǐn)?shù)據(jù)進(jìn)行驗(yàn)證,如圖5所示,部分點(diǎn)云數(shù)據(jù)如表1所示(已經(jīng)過重心化處理)。計(jì)算點(diǎn)云的法向量之后得到軸向量為(-0.443,-0.110,-0.512),經(jīng)過豪斯霍爾德轉(zhuǎn)換得到旋轉(zhuǎn)矩陣R。
圖5 行政樓影像圖Fig.5 Image of the Administrative Building
表1 部分點(diǎn)云數(shù)據(jù)Tab.1 Some Point Cloud Data
由 此 得 到α=arccos0.985=9.93°,β=arccos0.761=40.45°。通過坐標(biāo)轉(zhuǎn)換以后利用X、Y坐標(biāo)擬合曲線,采用5階至10階多項(xiàng)式對坐標(biāo)轉(zhuǎn)換后投影至xoy平面點(diǎn)云數(shù)據(jù)進(jìn)行擬合,經(jīng)過實(shí)驗(yàn)采用10階多項(xiàng)式擬合效果最好,各項(xiàng)系數(shù)(見表2)如下:a0=-1.034×10-6,a1=3.18×10-7,a2=5.98×10-5,a3=-0.000 1,a4=-0.000 9,a5=0.002,a6=0.007,a7=-0.03,a8=0.046,a9=0.01,a10=1.582,旋轉(zhuǎn)后點(diǎn)云如圖6所示,其中擬合的曲線如圖7所示。
圖6 旋轉(zhuǎn)后點(diǎn)云Fig.6 Point Cloud After Rotation
圖7 擬合曲線Fig.7 Fitting Curve
表2 多項(xiàng)式系數(shù)Tab.2 Polynomial Coefficients
最終擬合的曲面如圖8所示。最后根據(jù)擬合點(diǎn)云到擬合曲面的距離評定擬合精度,空間距離投影到xoy平面上就是點(diǎn)到曲線的距離,最后得到的距離殘差圖如圖9所示,絕大部分點(diǎn)云偏離曲面都在0.03 cm以內(nèi)。擬合的精度滿足一般的工程曲面擬合精度。
圖8 擬合曲面Fig.8 Fitting Surface
圖9 擬合殘差Fig.9 Fitting Residuals
針對空間中任意姿態(tài)一般的柱面,提出了先計(jì)算其軸向向量,通過豪斯霍爾德變換進(jìn)行投影,降維處理來達(dá)到擬合一般曲面的曲線公式,在從二維擴(kuò)展到三維空間。并以實(shí)例進(jìn)行驗(yàn)證,取得了較好的效果。在曲線擬合的時(shí)候?qū)τ诓煌那嫘枰C合考慮曲線的階數(shù),以達(dá)到最佳效果。