王榮華 張華 徐鋒
摘要:針對3D掃描測量領域自動化水平不高,測量不穩(wěn)定,測量誤差較大的現(xiàn)狀,在雙目結(jié)構(gòu)光測量系統(tǒng)基于空間點相對距離不變性的多視拼接中,提出了一種基于三角約束和全局優(yōu)化的多視拼接方法。該方法包括:匹配標記點時對由點距約束求得的可能匹配點加入三角約束,去除誤匹配點;初次拼接后,根據(jù)求得的重心用最小二乘法進行全局優(yōu)化,得到優(yōu)化后的拼接矩。通過VC++,OpenCV等工具的算法實現(xiàn)表明:該方法能夠較好地抑制累積誤差,拼接方法穩(wěn)定、快速,能實現(xiàn)自動化拼接。
關鍵詞:雙目結(jié)構(gòu)光測量;點距不變性;多視拼接;三角約束;全局優(yōu)化
中圖分類號:TP274.5 文獻標識碼:A 文章編號:1009-3044(2015)09-0245-04
Abstract:The measurement technology of 3D scanning in automation level is low, its measurement process is not stable, and the measurement error is large. After the principle of binocular structured light measurement was analyzed, match the marked point to multi-view registration based on the relative distance of any two marked point in space is unchanged. A multi-view registration is proposed using triangle constraint and global optimization. The method includes: remove the false matching points in possible matching points by joining triple constraint; after the first registration, use the center of marking points to global optimization though least squares principle method. The algorithm is written by VC++ and OpenCV, and the algorithm is carried out by experiments test. The measurement results show that this method has advantage of restrain the accumulation error, keep up the process stable, fast and automatic.
Key words: binocular structured light measurement; relative distance unchanged; multi-view registration; triangle constraint; global optimization
3D掃描測量可獲得真實場景的高精度3D數(shù)據(jù),多視數(shù)據(jù)的自動匹配[1]和拼接[2]是其關鍵環(huán)節(jié),其中的精準性、實時性、穩(wěn)定可靠性是難點。
早期的多視拼接方法基于輔助硬件設備來完成,最著名方法為利用旋轉(zhuǎn)平臺[3-4]來獲取物體的旋轉(zhuǎn)和平移向量[5-6]。該類方法雖然有較高的精度,但其對于機械加工的要求較高,測量系統(tǒng)結(jié)構(gòu)復雜,系統(tǒng)成本高,不利于應用推廣。后來的多視拼接方法基本通過軟件算法來實現(xiàn),主要方法有特征拼接[7-8]和標記點拼接[9-10]。特征拼接通過獲得的圖像數(shù)據(jù)提取出具有一定特征的細節(jié)來對應匹配,該方法對于特征豐富的被測物較有效,對于特征信息不明顯的被測物則適用性不足。標記點拼接通過測量前在被測物體表面上或被測物周圍粘貼標記點[11],通過這些標記點來實現(xiàn)多視拼接。該方法成本小,方便簡捷,處理過程的自動化程度高,
能夠保證拼接的精度。針對該方法,徐曉棟等[12]提出基于任意兩點間的相對距離不變的特征,引入“不太可能發(fā)生的小概率事件”方式進行多視拼合,其方法在點距出現(xiàn)等邊三角形和等腰三角形時,會出現(xiàn)標記點匹配錯誤,需人工改正,影響處理效率。周波等[13]應用搜索標記點同構(gòu)子圖的方法進行多視拼合,該方法存在累積誤差影響點云拼接質(zhì)量。
本文利用三角約束和全局優(yōu)化的方法進行多視拼合,由單次測量獲得的標記點集得到距離矩陣,以標記點的距離空間不變量為依據(jù)篩選出可能的匹配點對,再由三角約束對可能的匹配點對進行篩選,去除誤匹配點對。對不同視圖中的標記點正確匹配后,通過四元素法解算多視間的坐標轉(zhuǎn)換矩陣以完成初次多視拼合。最后對拼合的多視數(shù)據(jù)進行全局優(yōu)化,消除累積誤差。
1雙目結(jié)構(gòu)光測量系統(tǒng)
雙目結(jié)構(gòu)光測量系統(tǒng)由雙目立體視覺測量系統(tǒng)與結(jié)構(gòu)光測量系統(tǒng)組合而成,其中雙目立體視覺基于視差原理,由左右相機采集的圖像獲取被測物體的三維幾何信息。結(jié)構(gòu)光投射設備把事先準備好的編碼相移光柵投射到被測物表面,左右相機采集到相移圖片進行解相匹配,實現(xiàn)基于像素的點匹配。最后結(jié)合雙目視覺系統(tǒng)重建出物體表面的三維稠密點云數(shù)據(jù)。雙目結(jié)構(gòu)光測量系統(tǒng)結(jié)構(gòu)如圖1所示。
掃描測量時,左右相機先采集貼有標記點的圖像,進行標記點提取、定位和重建,然后投射結(jié)構(gòu)光柵并采集光柵圖像重建稠密點云數(shù)據(jù)。對多視標記點進行匹配后解算多視轉(zhuǎn)換關系。再用求得的轉(zhuǎn)換關系對獲得的多視稠密點云進行拼接,最終得到被測物的完整點云模型。
2標記點多視拼接
得到一個視角下的三維標記點,然后把被測物體移動一定角度再次得到三維標記點。保證每次重建的標記點與上一次測量有大于等于3個的公共標記點。標記點多視拼接是求每兩次測量之間的公共標記點,對其正確匹配,依據(jù)匹配的標記點計算兩次測量之間的坐標變換關系,得到多視的轉(zhuǎn)換關系實現(xiàn)稠密點云的拼接。
2.1 標記點三角約束匹配
假設第一次的測量為視A得到的n個標記點為點集PA,第二次的測量為視B得到的m個標記點為點集PB。尋找兩次測量的公共標記點就轉(zhuǎn)換為在PA和PB中求取對應的標記點,即找到PA和PB中公共標記點,并實現(xiàn)一一對應。
令[PA={a1,a2,a3,...,ai...,an};]i=1,2,…,n。
其中[ai=xiyiziT],xi,yi,zi為PA中數(shù)據(jù)點的三維坐標。同理[PB={b1,b2,b3,...,bj...,bm};] i=1,2, … ,m。
標記點三角匹配如下:
1)求距離矩陣DA和DB,即分別求點集PA和PB中的每一個點到其余點的歐式距離,并用矩陣來表示;
2)對距離矩陣DA中的每一行i,尋找其在DB中相同數(shù)目最多的一組j(相同數(shù)目必須要大于等于2),然后將(i,j)保存到可能的匹配點集,并找到(i,j)中哪些距離相同的點InA,InB。如圖2,圖中“[]”表示可能是同一點兩視角獲得的被測物上的同一個標記點;
3)對InA,InB中的點再次求距離矩陣,循環(huán)執(zhí)行步驟2,直到只剩下2個以下的點。如圖2、3,為進行第二次,第三次比對找到的可能匹配點;
4)每次都將(i,j)保存,當保存的數(shù)目大于等于3的時候,結(jié)束循環(huán)求解。則步驟2中保存的(i,j)是可能的匹配點對;
5)通過以上步驟得到的匹配點是由點距約束求得,因此匹配點集中存在一對多的情況。依據(jù)唯一性原則,用三角約束去除誤匹配點后得到正確的匹配點對。
2.2 拼接矩陣求解
2.3 全局優(yōu)化
經(jīng)過上面的步驟,可以把不同視角下的標記點拼接成一個整體。但求解旋轉(zhuǎn)與平移矩陣時,是根據(jù)兩視間的匹配標記點求解,所以多視角拼接時存在累積誤差的問題,即兩兩誤差最小并不等同于全局誤差最小。這就導致點云拼接時出現(xiàn)斷層、拼飛等現(xiàn)象。對此,我們對拼接的多視標記點進行全局優(yōu)化以消除累積誤差。
假設一次測量進行了M個視角的數(shù)據(jù)獲取,最終獲得N個標記點,每個視角建立一個N*3的向量Di,記錄第i次掃描視角下獲得標記點。因每個視角下不可能完全看到N個標記點,所以將該視角下不可見的標記點置為0。假設各視角的最優(yōu)旋轉(zhuǎn)、平移矩陣分別為Ri和Ti,則標記點全局優(yōu)化的誤差準則為:
首先求出所有標記點在每個視角下的重心:[C=1Mi=1MDi∧],用每個標記點的重心點作為拼接后的點。然后把單次測量的點集到模型點集做優(yōu)化求解,優(yōu)化的目標函數(shù)就可以表示為:[i=1MDi∧-C→min]。其步驟為:
1)計算每個標記點在所有視角下的重心;
2)求取每個視角下標記點到該視角下重心坐標的變換;
3)重復步驟(1),(2)直到收斂。
3 實驗及分析
實驗用兩臺大恒相機,分辨率1280*1024,鏡頭焦距16mm,結(jié)構(gòu)光投射器選用三星投影儀PM410,用張正友平面標定法進行相機標定。實驗設備如圖5所示:
用DELL電腦,CPU為Intel(R) i5-2310,主頻2.9GHz,內(nèi)存4G,windows7操作系統(tǒng)。通過Visual C++, OpenCV等工具的算法實驗效果如下所示,對貼有標記點的水杯模型做掃描檢測,水杯底部直徑60mm,頂部直徑80mm,高75mm。如圖6、7所示即為第一次掃描和第二次掃描的左右相機獲得的貼有標記點的水杯原始圖片。
提取圖片上的標記點,用極線匹配進行單次的左右標記點匹配,依據(jù)雙目視差重建標記點的三維點坐標,并對標記點進行排序編號。圖8為第一次掃描時提取的左右匹配的標記點圖像。
把水杯旋轉(zhuǎn)一定角度重復以上操作,并與第一次重建的標記點用2.1節(jié)所述的算法進行標記點匹配,找出一一對應點。如圖9、10所示,圖上編號的點表示第二次提出的標記點,其中黑色框里顯示的標記點表示第二次掃描時與第一次掃描時提取的點的匹配點(水杯上相同的標記點)。圖9是沒有加入三角約束的匹配結(jié)果,由圖可知,藍色橢圓內(nèi)的點因與6、7、8號點的距離相等,因此簡單的根據(jù)點距約束不能確定出匹配點,圖10為加入三角約束后的示意圖。
依據(jù)匹配的標記點,就可以采用2.2節(jié)所提的算法,獲得第一次掃描與第二次掃描的旋轉(zhuǎn)和平移矩陣。就可以實現(xiàn)兩次的三維點云的拼接。如圖11、12、13,即為第一次,第二次的點云和拼接后的點云拼接示意圖。
重復上述操作,直到獲得整個水杯的所有標記點,使用2.3所提的優(yōu)化算法對拼接后的標記點進行全局優(yōu)化。本測試共在水杯上貼37個標記點,進行11個視角掃描測量。優(yōu)化前后,拼接后的標記點的誤差如表1所示。
全局優(yōu)化后,用優(yōu)化后的各視角之間旋轉(zhuǎn)和平移矩陣進行點云拼接,得到整個水杯點云模型如圖14所示:
通從上述實驗示例可以看出,相對于點距約束進行的標記點匹配,加入三角約束后能夠準確的去除因點距構(gòu)成等腰三角形或等邊三角形時的錯誤匹配點,提高了匹配的穩(wěn)定性和準確性。并對拼接后的標記點進行全局優(yōu)化,拼接精度提高了0.0179mm,具體參數(shù)如表1所示,使得稠密點云拼接得到的3D模型更加精確。整個拼接過程完全實現(xiàn)了自動化操作,耗時較短,雙目相機標定后,在線對物體的掃描測量能夠在5分鐘之內(nèi)獲得完整點云模型數(shù)據(jù),離線操作時,實現(xiàn)整個模型的11次拼接用時15秒。
4 結(jié)束語
在3D掃描測量領域,多視點云的拼接一直是一個重要的研究課題和難點。本文介紹了一種基于標記點的多視拼接方法,不同于其它依據(jù)標記點空間點距不變性實現(xiàn)多視點云的匹配拼接,該方法用點距實現(xiàn)公共標記點匹配時加入三角約束,這使得匹配更加穩(wěn)定、準確,去除僅靠點距約束求得的誤匹配點。得到正確的匹配點后用四元素法解兩視角之間的轉(zhuǎn)換矩以實現(xiàn)兩視角拼接,依次拼接得到所有視角下的標記點。求每個標記點在所有視角下的重心用最小二乘法進行全局優(yōu)化,得到優(yōu)化后多視角間的拼接矩實現(xiàn)多視點云精確拼合。多視點云拼合的旋轉(zhuǎn)與平移矩陣求解是依據(jù)被測物上或周圍的標記點完成,點云數(shù)據(jù)的多少對拼合效率影響較小。通過實例可以看出本文方法在多視拼和中較好地抑制累積誤差,拼接方法穩(wěn)定、快速,能實現(xiàn)自動拼接,具有較強的實用價值。
參考文獻:
[1] SOON-YONG PARK, MURALI SUBBARARAO. A multiview 3D modeling system based on stereo vision techniques[J]. Machine Vision and Applications, 2005, 16(3): 148-156.
[2] SONG Zhang. Recent progresses on real-time 3D shape measurement using digital fringe projection techniques[J]. Optics and Lasers in Engineering, 2009, 48(2): 149-158.
[3] MAHMOOD N, OMAR C, TARDI T. Multiviews reconstruction for prosthetic design[J]. The International Arab Journal of Information Technology, 2012, 9(1): 49-54.
[4] 周朗明, 鄭順義, 黃榮永. 旋轉(zhuǎn)平臺點云數(shù)據(jù)的配準方法[J]. 測繪學報, 2013, 42(1): 73-79.
[5] SHAO Wei, MENG Lin, QIN Haohua, et al. Error analysis of the motion estimation based on SVD theory[C]// Proceedings of the 33th Chinese Control Conference, 2014: 915-921.
[6] GHOUTI, L. Robust perceptual color image hashing using quaternion singular value decomposition[C]// 2014 IEEE International Conference on Acoustics, Speech and Signal Process, 2014: 3794-3798.
[7] 黃戈, 李曉峰. 基于CEGI和Fourier變換的全自動點云配準算法[J]. 四川大學學報: 工程科學版, 2014, 46(5): 104-109.
[8] 陳勇, 劉文宋, 劉善偉, 等. 一種基于Harris與RANSAC算法的圖像拼接軟件研發(fā)[J]. 測繪與空間地理信息, 2014, 37(9): 97-100.
[9] 楊帆, 權(quán)巍, 白寶興, 等. 基于標志點的三維點云自動拼接技術[J]. 計算機工程與設計, 2014, 35(9): 3321-3325.)
[10] 張廣軍. 機器視覺[M]. 北京: 科學出版社, 2005.
[11] 解則曉, 高翔, 崔健. 移動式三維測量用圓形標記點提取算法[J]. 中國激光, 2012, 40(12):1-6.
[12] 許曉棟, 趙毅,李從心. 結(jié)構(gòu)光測量中多視拼合技術與算法實現(xiàn)[J]. 機床與液壓, 2005(10): 137-141.
[13] 周波, 陳新河, 謝雪冬. 多視點云數(shù)據(jù)自動拼合算法[J]. 自動化與儀器儀表, 2007(1): 11-13.