石誠,程筱勝,崔海華,方舟,張逸,胡廣露
(南京航空航天大學 機電學院,江蘇 南京 210016)
近年來,隨著航空航天、汽車船舶、機電重工等大型裝備制造業(yè)蓬勃發(fā)展,攝影測量技術因其便攜、快速和高精度的優(yōu)點,正得到越來越多的應用[1]。為將攝影測量應用于大型裝備制造裝配變形分析,提出一種稀疏標志點數(shù)據(jù)的特征描述算法,用以匹配變形前后的標志點數(shù)據(jù)。
目前關于點云數(shù)據(jù)匹配的研究[2-3]大多針對點云密度較高的數(shù)據(jù),一般分為粗配準和精配準[4],通常采用“先粗后精”的思路。粗配準主要分為基于RANSAC[5]和基于特征的配準方法,其中基于特征匹配的方式,更具有效率和魯棒性[6]。RUSU R B等提出了視點特征直方圖[7](viewpoint feature histogram,VFH)特征量和快速點云直方圖[8](fast point feature histograms,F(xiàn)PFH)特征量作為描述子;劉劍等[9]將三角剖分與FPFH特征描述相結(jié)合,黃源等[10]利用局部幾何特征作為描述子,進行數(shù)據(jù)的匹配。這些描述特征點的思路被借鑒,用以解決稀疏標志點數(shù)據(jù)的匹配問題,翁金平等[11]使用能量法描述稀疏標志點,實現(xiàn)了標志點的特征匹配,但能量法局限于標志點數(shù)據(jù)不發(fā)生形變的情況,適用性不夠廣泛。
本文受點特征直方圖[12](point feature histograms,PFH)描述算法啟發(fā),利用稀疏標志點數(shù)據(jù)鄰域的拓撲信息,進行稀疏標志點數(shù)據(jù)的匹配。
假設攝影測量在初始狀態(tài)獲取的標志點數(shù)據(jù)集合為點集P,產(chǎn)生局部形變后獲取的數(shù)據(jù)集合為點集Q。P和Q在不同測量坐標系下且包含未發(fā)生形變的點對,稀疏標志點的描述算法根據(jù)點鄰域的拓撲信息,對P和Q中每個點做唯一描述,描述結(jié)果稱為描述子。通過描述子確定P和Q的對應點對,并篩選出其中幾乎未發(fā)生形變的點對,以完成稀疏標志點數(shù)據(jù)的匹配。
任選稀疏數(shù)據(jù)中一點Po,簡述描述子的建立過程:
1)利用KD樹檢索,查找距離Po最近的k個點,依據(jù)這些點與Po的歐氏距離di(i=1,2,…,k):
(1)
將這k個點由近及遠,構(gòu)成k鄰域點集Pk(圖1)。取k=3,展示了k鄰域點集Pk的建立思路。
圖1 建立k鄰域點集Pk
2)對于點集Pk內(nèi)一點Pi,在Po處建立圖2所示的局部坐標系(u,v,w) (U,V,W),其中no為點Po的法矢,建立過程如下:
U=no
(2)
(3)
W=U×V
(4)
圖2 定義局部坐標系
其中:坐標軸u、v、w的方向分別對應矢量U、V、W的方向。
3)基于局部坐標系(u,v,w),根據(jù)PFH特征值的計算方法,計算圖2中一組角度,來表示點Po法矢no和點Pi法矢ni的偏差:
α=V·ni
(5)
(6)
θ=arctan(W·ni,U·ni)
(7)
4)按照步驟2)、步驟3),分別計算Po與點集合Pk中各點的特征值α、φ、θ,則每對點Po和Pi可得到如下四維描述向量,記為Di:
Di=(di,αi,φi,θi)
(8)
5)按照k鄰域點集Pk中的順序,建立點Po的k×4描述矩陣D,D即為點Po的描述子:
D=(D1,D2,…,Dk)T
(9)
6)將描述矩陣D進一步變形為如下形式,則β為k維的向量,由各鄰域點到點Po的歐氏距離構(gòu)成,B為k×3的矩陣,由各鄰域點到點Po的角度特征構(gòu)成:
D=(βT,B)
(10)
將描述子D拆分,是因為β能夠更準確地判斷前后點之間的對應關系,而矩陣B更好地折射出形變大小。下文稱β為距離向量,稱B為角度矩陣。
利用上述算法計算出稀疏數(shù)據(jù)中每個點的描述子,點集P中所有點的描述子構(gòu)成集合FP={Dpi|1≤i≤nP,i∈N}, 點集Q中所有點的描述子構(gòu)成集合FQ={Dqj|1≤j≤nQ,j∈N}。其中nP和nQ分別為點集P和Q中點的總個數(shù),Dpi和Dqj分別為點集P中第i個點和點集Q中第j個點的描述子。
(11)
利用最近鄰匹配法(nearest neighbor)[13]和閾值法分析距離向量,初步獲取點集P和Q的對應點對。最近鄰匹配法即對P中一點Ps,取其對應的距離向量βps,然后搜索出點集Q中距離最近的向量βqt,將點Ps和點Qt視作一對對應點。為了防止誤匹配,再使用閾值法,設置閾值h1,若ρ(βpi,βqj)≤h1,則將這對點作為初步匹配結(jié)果。
初步獲取對應點對后,需篩選出其中幾乎沒有發(fā)生形變的點對,這就要利用角度矩陣。角度矩陣主要描述了查詢點與其周圍k個鄰域點之間的相對位置關系,因此假如該查詢點與其k個鄰域點的位置較為恒定,角度矩陣并沒有太大的變化;反之,角度矩陣則會有明顯變化。據(jù)此,利用F-范數(shù)來衡量角度矩陣的變化大小。以對應點對Ps和Qt為例:
BE=Bps-Bqt
(12)
實驗利用加拿大某公司的攝影測量設備獲取標志點,圖3(a)為初始狀態(tài)的標志點排布情況,圖3(b)模擬了局部形變和位移后,標志點的排布,圖中黑色圓內(nèi)的靶標是基準點,用于變形前后數(shù)據(jù)匹配,以驗證算法精度。實驗過程具體步驟如下:
1) 布設標志點,獲取標志點點集P;
2) 模擬局部位移和形變,變換測量坐標系,獲取標志點點集Q;
3) 通過基準靶標,利用奇異值分解[14](SVD)算法,匹配點集P和Q;
4) 輸出對應點的編號,并計算各點變形大??;
5) 利用本文提出的算法,篩選出幾乎不形變的對應點對,據(jù)此匹配點集P和Q;
6) 輸出對應點的編號,計算各點變形大小。
圖3 標志點排布情況
步驟4)所得結(jié)果作為本次實驗的標準值,將步驟6)結(jié)果與標準值對比,驗證本文算法的準確性和匹配精度。
兩次測量所獲取的點集分別為P和Q,它們的標志點編號分別如圖4(a)、圖4(b)所示。
圖4 標志點編號
使用本文的算法,得到對應點對的初步匹配關系如圖5所示,在獲取了初步對應點對匹配結(jié)果之后,繼續(xù)使用本文的算法,篩選出幾乎不發(fā)生形變的對應點對,這些點對記錄在表1。
圖5 對應點匹配結(jié)果
表1 用于匹配的對應點對
利用表1中的對應點對,計算轉(zhuǎn)換矩陣,匹配點集P和Q,并計算各點變形前后的誤差。利用基準點匹配所得的誤差如圖6所示,將作為誤差評判的標準。利用本文算法匹配所計算出的誤差如圖7。將本文算法和標準結(jié)果對比,偏差結(jié)果如圖8所示,最大偏差為-0.098mm,最小偏差為-0.017mm,絕對偏差的平均值為0.029mm。
圖6 各點標準誤差
圖7 本文算法所得各點誤差
圖8 本文算法與標準結(jié)果對比
在進行了大量實驗統(tǒng)計后,對應點對匹配的成功率接近100%,絕對平均誤差為平均值為0.029mm,最低僅為0.008mm。
為解決稀疏標志點的匹配問題,本文借助PFH的描述思想,提出了稀疏標志點的特征描述算法,并以此對各標志點進行唯一性描述。實驗證明,該算法具有極高的準確性,能夠精準地分析出基本不發(fā)生形變的對應點對。利
用這些點對求解轉(zhuǎn)換矩陣并完成匹配,平均偏差為0.029mm,足以滿足裝配周期較長的大尺寸裝配攝影測量變形檢測的需求。同時,本文的算法也能應用于其他需要標志點匹配的情形,例如基于標志點匹配的點云拼接。為保證匹配結(jié)果的準確性,本文對未發(fā)生形變的點對篩選過于嚴格,被篩選出的點在鄰域內(nèi)幾乎不發(fā)生形變,今后將進一步改進,以適應更多稀疏標志點匹配的應用場景。