劉三毛,朱文球,孫文靜,王業(yè)祥
?。ê瞎I(yè)大學 計算機學院,湖南 株洲 412007)
摘要:針對室內(nèi)環(huán)境單目視覺的室內(nèi)場景三維重建速度慢的問題,采用華碩Xtion單目視覺傳感器獲取的室內(nèi)場景彩色圖像和深度圖像進行快速三維重建。在圖像特征提取上使用ORB特征檢測算法,并對比了幾種經(jīng)典特征檢測算法在圖像匹配中的效率,在圖像匹配融合中采用Ransac算法和ICP算法進行點云融合。實現(xiàn)了一種室內(nèi)簡單、小規(guī)模的靜態(tài)環(huán)境快速三維重建方法,通過實驗驗證了該方法有較好的精確性、魯棒性、實時性和靈活性。
關(guān)鍵詞:單目視覺;點云;三維重建
中圖分類號:TP391文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.01.014
引用格式:劉三毛,朱文球,孫文靜,等.基于RGBD單目視覺的室內(nèi)場景三維重建[J].微型機與應用,2017,36(1):44-47.
0引言
三維重建(3D Reconstruction)是指利用計算機、傳感器,通過對場景的紋理、深度等數(shù)據(jù)進行分析和處理后構(gòu)建適合計算機表示和處理的數(shù)學模型。隨著工業(yè)信息技術(shù)的發(fā)展三維重建得到了廣泛應用,如在移動機器人自主導航、SLAM、虛擬現(xiàn)實和3D打印等諸多方面都發(fā)揮著十分重要的作用[1]。
1965年ROBERT L提出了使用計算機視覺方法從二維圖像獲取物體三維信息的可能性。FAUGRAS M A和Hartley[23]于1992年開創(chuàng)性地提出了基于圖像系列的三維重建理論,在他們的論文中,把三維重建總結(jié)為3個步驟:基礎(chǔ)矩陣的估計、攝像機的標定以及計算投影矩陣和相應的三維空間坐標。即輸入二維圖像,通過求解對應攝像機運動參數(shù)及幾何結(jié)構(gòu),生成圖像場景的三維模型。隨著RGBD相機的成熟,它可提供彩色深度圖像和稠密深度圖像視頻流,這使得結(jié)合三維深度感測的視覺功能優(yōu)勢來快速、準確地創(chuàng)建大場景的三維場景信息[45]成為現(xiàn)實。
采用RGBD相機獲取彩色圖像和深度圖像,使用深度圖像信息結(jié)合稀疏特征點創(chuàng)建三維場景模型。首先提取每幀圖像的特征點,通過特征匹配找到兩幀圖像之間的對應特征點,由深度圖像信息計算出對應點對的空間坐標(Xw,Yw,Zw)。針對圖像特征點誤匹配導致位姿估計的精度低的問題,采用隨機采樣一致性算法(Random Sample Consensus,RANSAC)[6]剔除誤匹配點,其次在點云融合上,結(jié)合迭代最近算法(Iterative Closest Point,ICP)[7] 進行點云配準以進一步改善位姿精度,減少相機位姿漂移造成的誤差。
12D到3D坐標轉(zhuǎn)換
設三維空間中任意一點P的坐標為(Xw,Yw,Zw),該點對應的相機坐標系坐標為(Yc,Zc),(x,y)、(u,v)分別是二維圖像中的物理坐標和像素坐標。根據(jù)針孔相機模型,相機坐標系與世界坐標系關(guān)系如圖1所示。
對空間任意一點P(Xw,Yw,Zw)進行剛體變換,映射到相機坐標系中點P(Xc,Yc,Zc),如式(1):
其中T是三維空間平移向量,R是3×3的正交旋轉(zhuǎn)矩陣。得到相機坐標系坐標后通過透射投影得到物理系坐標P(x,y),考慮到相機畸變因子,得到P(x,y)為:
其中k1、k2、p1、p2為畸變系數(shù),是相機外部參數(shù)矩陣M2,由物理坐標轉(zhuǎn)換為像素坐標P(u,v)關(guān)系如下:
其中,fx、fy指相機在x、y軸上的焦距,cx、cy指相機的光圈中心點坐標,fx、fy、cx、cy這4個參數(shù)為相機的內(nèi)參矩陣M1,給定相機內(nèi)參之后,每個點的空間位置與像素坐標就可以用矩陣模型表示:
其中,R和T是相機的姿態(tài)。R代表旋轉(zhuǎn)矩陣,T代表位移矢量,s是深度距離與實際距離的比例因子。由上述結(jié)果進行齊次變換后得到三維空間點P與二維圖像像素坐標的映射關(guān)系:
s·p=M1M2P(5)
其中,M1、M2為相機的內(nèi)參和外參,由標定結(jié)果得到。P=(X,Y,Z)為空間點齊次坐標,p=(u,v,l)為二維圖像像素齊次坐標。
2點云融合
2.1特征檢測
圖像的特征提取與匹配是實現(xiàn)三維重建的基礎(chǔ),現(xiàn)在常用的特征檢測算法為1999年David Lowe提出的SIFT(Scale Invariant Feature Transform)算法,并于2004年進行了深入的發(fā)展和完善[8]。SIFT算法最大的優(yōu)點是具有尺度不變性,圖像之間發(fā)生了平移、旋轉(zhuǎn)、仿射變換的情況下仍可以進行特性匹配。SIFT算法提取到的特征點豐富,適合圖像精準匹配,但時間復雜度高,實時性差。BAY H等人于2006年改進了SIFT算法,提出了SURF[9](Speeded Up Robust Features)算法,SURF算法繼承了SIFT算法尺度不變的優(yōu)點,且大大提高了執(zhí)行效率。ROSTEN E和DRUMMOND T于2006年提出了FAST[10]算法,該算法通過檢查圖像塊中是否存在角點來判斷特征點,算法簡單,避免了求解二階導數(shù),因此運算速度上快于SURF和SIFT算法。
RUBLEE E等人于2011年提出了ORB[11]算法,該算法采用視覺信息特征點檢測與描述方法,結(jié)合了FAST算法特征點檢測速度快的優(yōu)勢,加入FAST特征的方向信息,改進了FAST算法不具備檢測特征點方向性的問題。特征點描述部分則是利用基于像素點二進制位比較的BRIEF[12]特征描述子,并改進了 BRIEF描述子對圖像噪聲敏感和不具備旋轉(zhuǎn)不變性的缺點。準確、快速的特征提取與匹配算法是實時三維重建的重要前提,本文在特征匹配中比較了這幾種常用的特征檢測算法。
2.2基于ORB的特征匹配
由于同一場景的RGB圖像和深度圖像數(shù)據(jù)一一對應關(guān)系,通過二維圖像坐標與三維坐標的映射關(guān)系可以得到場景的三維點云圖像。相機的廣度不能獲取室內(nèi)場景的全局圖像,所以需要對連續(xù)幀進行融合獲取大場景的圖像。假設相機水平旋轉(zhuǎn)獲取的兩幀相鄰場景圖像為K1、K2,使用ORB特征點匹配得到結(jié)果如圖2所示。
可以看出兩幀圖像的特征匹配存在誤匹配特征點,對匹配特征點進行篩選可以提高匹配的準確性和效率。由于相機是水平旋轉(zhuǎn)的,首先剔除水平距離過大的匹配點,然后采用RANSAC(隨機采樣一致性)算法[6]剔除誤匹配,進一步提高匹配的準確性。通過特征匹配得到兩幅圖像的特征點均為800個,匹配特征點為788個,篩選后得到的匹配個數(shù)為72個,結(jié)果如圖3。
本文實驗環(huán)境為Liunx平臺下基于Opencv采用C++語言實現(xiàn),運行硬件環(huán)境為Intel Pentium 3.0 GHz CPU,運行內(nèi)存4 GB。
SIFT、SURF、FAST、ORB 4種角點檢測算法在特征提取和幀間匹配中的比較結(jié)果如表1。
2.3點云拼接
相機緩慢移動獲得連續(xù)的圖像幀序列,要進行圖像的匹配融合首先要知道連續(xù)圖像的運動關(guān)系,設相機運動如圖4所示,其旋轉(zhuǎn)矩陣為R、位移矩陣為T。
提取相鄰幀K1、K2間的特征點匹配對,描述為K1={p1,p2,…,pN},K2={q1,q2,…,qN},其中p、q都是三維坐標的點,于是有:
i,pi=Rqi+T+Ni(6)
其中Ni代表噪聲。根據(jù)最優(yōu)化理論,求解旋轉(zhuǎn)矩陣R和平移矩陣T,需要滿足下式最?。?/p>
通過求解最小誤差可求得R和T,采用經(jīng)典的ICP[7]算法求解。該算法是一種非線性迭代方法,通過不斷迭代最近的匹配點求解變換矩陣,實現(xiàn)局部點云到整體點云的融合。
3基于ICP算法的三維重建框架
3.1算法框架
實驗采用華碩公司的Xtion深度相機緩慢轉(zhuǎn)動獲取連續(xù)的數(shù)據(jù)幀,先將起始幀圖像集合(RGB圖像和深度圖像)轉(zhuǎn)換成點云,實現(xiàn)局部圖像的二維到三維的轉(zhuǎn)換,當相機采集到下一幀圖像集合時,通過提取兩幀圖像的特征進行匹配,并計算相機的平移和旋轉(zhuǎn)向量進行點云融合。通過相機移動形成完整的三維模型。算法流程如圖5所示。
主要步驟有:
?。?)相機標定,獲取RGB圖像和深度圖像;
?。?)對彩色圖像進行特征提取,結(jié)合特征點的深度信息實現(xiàn)2D到3D的轉(zhuǎn)換,生成局部點云圖;
?。?)相機跟蹤,將當前幀3D 點云和由現(xiàn)有模型生成的預測的3D 點云進行ICP 匹配,計算得到當前幀相機的位姿;
(4)點云融合,根據(jù)所計算出的當前相機位姿,將當前幀的3D 點云融合到現(xiàn)有模型中。
3.2相機標定
相機標定的目的是建立有效的成像模型,并確定相機內(nèi)外部屬性參數(shù),以便建立空間與平面像素點之間的對應關(guān)系。相機是物體空間(三維空間)到2D圖像之間的一種映射,而這種映射由相機成像的幾何模型決定,幾何模型的參數(shù)就是相機的參數(shù),由這些參數(shù)可以推導三維空間坐標與二維圖像坐標之間的變換關(guān)系。
實驗使用張正友棋盤標定算法[13],通過MATLAB工具箱(Camera Calibration Toolbox)中提供的方法進行相機標定。使用A4紙自制7×9方格標定模板,正方形小方格邊長為27.8 mm,選取相機不同位姿拍攝的20幅標定模板圖像對相機進行標定。
通過華碩Xtion深度相機獲取同一場景的RGB圖像和中值濾波后的深度圖像如圖6所示,圖(a)為RGB圖像,圖(b)為深度圖像。
3.3實驗結(jié)果
華碩(Xtion pro live)深度相機的深度有效距離約0.2~5 m,彩色圖像和深度圖像的分辨率都為640×480。由于相機的廣度有限不能獲取室內(nèi)場景的全局圖像,需要對獲取的連續(xù)幀進行點云融合來獲取大場景的圖像。實驗通過手持Xtion相機掃描室內(nèi)場景,獲取連續(xù)的數(shù)據(jù)幀,實現(xiàn)室內(nèi)場景的實時三維重建,相機移動軌跡如圖7所示。
相機在室內(nèi)移動采集數(shù)據(jù)幀,相鄰幀之間可進行特征匹配,計算出相機運動的R和T矩陣,結(jié)合特征點的深度信息得到三維匹配關(guān)系, 基于ICP算法迭代相鄰點云圖像,不斷融合新信息形成由局部三維點云場景到整個室內(nèi)場景的三維重建。如圖8所示,圖(a)為局部三維場景點云圖,圖(b)為整體三維場景點云圖。
4結(jié)論
本文實現(xiàn)了基于RGB-D相機的室內(nèi)場景三維重建方法,通過華碩(Xtion pro live)深度相機在室內(nèi)環(huán)境中能夠得到準確、稠密的三維模型,在特征提取上采用了ORB算法,特征匹配和點云拼接采用RANSAC和ICP算法。該方法在室內(nèi)靜態(tài)環(huán)境中有很強的實時性、準確性和魯棒性,且大大提高了三維重建的效率。隨著深度相機的價格不斷下降,尤其是室內(nèi)機器人自主導航的研究和發(fā)展,基于RGB-D的三維重建系統(tǒng)將會對人們的日常生活產(chǎn)生巨大的影響。
參考文獻
[1] THOMAS D, SUGIMOTO A. A flexible scene representation for 3D reconstruction using an RGBD camera[C]. IEEE International Conference on Computer Vision, IEEE Computer Society, 2013:2800-2807.
?。?] HARTLEY R I. Estimation of relative camera positions for uncalibrated cameras[C]. European Conference on Computer Vision, SpringerVerlag, 1992:579-587.
?。?] FISCHLER M A, BOLLES R C. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography[M]. Readings in Computer Vision: Issues, Problems, Principles, and Paradigms. Morgan Kaufmann Publishers Inc. 1987:726-740.
?。?] LEE K R, NGUYEN T. Realistic surface geometry reconstruction using a handheld RGBD camera[J]. Machine Vision & Applications, 2016,27(3):377-385.
?。?] KERL C, STURM J, CREMERS D. Dense visual SLAM for RGBD cameras[C]. Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, 2013:2100-2106.
[6] SCHNABEL R, WAHL R, KLEIN R. Efficient RANSAC for pointcloud shape detection[J]. Computer Graphics Forum, 2007, 26(2):214-226.
?。?] BESL P J, MCKAY N D. Method for registration of 3D shapes[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 1992, 14(3):239-256.
?。?] LOWE D G. Distinctive image features from scaleinvariant keypoints[J]. International Journal of Computer Vision, 2004, 60(60):91-110.
[9] BAY H, TUYTELAARS T, GOOL L V. SURF: speeded up robust features[J]. Computer Vision & Image Understanding, 2006, 110(3):404-417.
?。?0] ROSTEN E, DRUMMOND T. Machine learning for highspeed corner detection[C]. European Conference on Computer Vision, SpringerVerlag, 2006:430-443.
[11] RUBLEE E, RABAUD V, KONOLIGE K, et al. ORB: an efficient alternative to SIFT or SURF[C]. In International Conference of Computer Vision(ICCV),2011: 2564-2571.
?。?2] CALONDER′ M, LEPETIT V, STRECHA C, et al. Brief: binary robust independent elementary features[C]. In European Conference on Computer Vision,2010:778-792.
[13] Zhang Zhengyou. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2000,22(11):1330-1334.