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