本發(fā)明屬于計算機視覺與計算機圖形圖像處理領(lǐng)域,具體地說是一種基于深度圖像數(shù)據(jù)流的虛實遮擋處理方法,該方法可在輸入數(shù)據(jù)分辨率較低、深度數(shù)據(jù)存在空洞和噪聲的情況下,實時地估計相機姿態(tài)和重建三維場景的點云模型,并根據(jù)相機姿態(tài)實時處理虛擬物體與三維場景之間的遮擋關(guān)系,并將遮擋處理后的結(jié)果與彩色圖像融合,實現(xiàn)一種虛實融合的效果,對于三維重建系統(tǒng)和實時增強現(xiàn)實(ar)技術(shù)的研究有著重要意義。
背景技術(shù):
增強現(xiàn)實是將虛擬物體疊加到真實環(huán)境中從而實現(xiàn)虛實融合效果的一項技術(shù),近年來己經(jīng)成為計算機視覺、計算機圖形學等領(lǐng)域的一個研究熱點。虛實遮擋處理問題的研究對于增強現(xiàn)實系統(tǒng)的完善和實用化起到至關(guān)重要的作用,是增強現(xiàn)實應(yīng)用中迫切需要解決的關(guān)鍵問題。當融合圖像中存在錯誤的虛實遮擋關(guān)系時,觀察者就很難正確地判斷虛實物體之間的相對位置關(guān)系,難以得到逼真的虛實融合效果。隨著深度傳感器的普及和三維重建技術(shù)的發(fā)展,近年來基于深度數(shù)據(jù)的slam系統(tǒng)和三維模型重建的研究正在興起。與傳統(tǒng)基于圖像識別追蹤的ar系統(tǒng)相比,深度數(shù)據(jù)提供了場景的三維信息,極大地提高了相機位姿的估計的準確度,并為處理虛實遮擋問題提供了足夠的數(shù)據(jù)信息。在三維重建和虛實融合系統(tǒng)等相關(guān)應(yīng)用場景中起到了至關(guān)重要的作用。
目前在增強現(xiàn)實技術(shù)方法可以分為以下三大類:一是基于圖像識別追蹤,可使用光學攝像機對平面識別標識圖像的特征點提取,結(jié)合攝像頭標定參數(shù)及標識特征點位置計算疊加模型的3d空間變換矩陣,然后進行虛擬模型在視頻層上的疊加,但此技術(shù)對識別追蹤的速度、準確性、環(huán)境光的適應(yīng)能力以及對多識別標識同時追蹤的容錯能力有極高的要求;二是基于傳感器實現(xiàn)相機運動的追蹤和定位,這類方法通過實時的攝像機或者物體的姿態(tài)與位置的捕捉來準確計算出需要疊加的數(shù)字虛擬物體的相對空間位置。物體姿態(tài)的捕捉一般通過帶陀螺儀的姿態(tài)傳感器、電子羅盤、重力加速計等傳感器來實現(xiàn),但對硬件設(shè)備的需求較高;三是結(jié)合圖像識別追蹤與傳感器運動追蹤。在硬件條件允許的情況下,結(jié)合圖像識別與傳感器運動捕捉技術(shù),可以充分發(fā)揮兩種技術(shù)各自的優(yōu)勢,提高增強現(xiàn)實應(yīng)用的穩(wěn)定性與環(huán)境適應(yīng)性。
上述方法有的耗時較大,比如特征點的提取,能量方程的優(yōu)化等步驟,缺少真實場景的三維信息,難以處理虛擬物體和真實場景之間的遮擋關(guān)系,虛實融合缺乏真實感。
技術(shù)實現(xiàn)要素:
為克服上述缺點,本發(fā)明的目的在于根據(jù)深度圖像數(shù)據(jù)流的特點,結(jié)合真實場景實時三維重建的需求,提供一種基于深度圖像數(shù)據(jù)流的虛實遮擋處理方法,根據(jù)相機姿態(tài)實時處理虛擬物體與三維場景之間的遮擋關(guān)系,并將遮擋處理后的結(jié)果與彩色圖像融合,實現(xiàn)一種較為真實、具有遮擋關(guān)系的虛實融合效果。
為了達到上述目的,本發(fā)明提出了一種基于深度圖像數(shù)據(jù)流的虛實遮擋處理方法,包括以下步驟:
步驟(1)、對原始深度圖像數(shù)據(jù)作預(yù)處理操作,其中包括平滑處理、對深度圖像的空洞區(qū)域的修補和增強;若尚未進行虛擬物體的三位空間注冊,則對原始深度相機數(shù)據(jù)流中的彩色圖像進行orb特征檢測,用于匹配模板圖像的特征點;
步驟(2)、根據(jù)相機內(nèi)部參數(shù),將預(yù)處理后的深度數(shù)據(jù)中的每一個像素點的坐標和深度轉(zhuǎn)化為相機坐標系下的三維坐標;然后利用相鄰像素的三維坐標值計算每一個像素對應(yīng)的三維點云的法向量;由所述三維坐標和法向量構(gòu)成三維點云映射圖;
步驟(3)、根據(jù)上一幀的相機位姿,采用光線投影算法,計算三維模型的投影點云映射圖map1,采用最鄰近點迭代算法(icp),利用map1與步驟(2)計算得到的三維點云映射圖map2計算出相機的當前位姿;然后根據(jù)當前相機位姿,將當前幀的點云融合到三維模型中;根據(jù)當前幀相機位姿從模型投影得到當前相機視角下的點云,并且計算其法向量,用于對下一幀點云圖像配準;
步驟(4)、若尚未完成三維空間注冊,則將步驟(1)所得的彩色圖像orb特征點與模板圖像orb特征點進行knn匹配,通過計算單映射矩陣得到模板圖像在原始彩色圖像所對應(yīng)的區(qū)域,通過彩色圖像與步驟(2)三維點云映射圖的對應(yīng)關(guān)系,計算模板圖像在相機坐標系的三維空間坐標,再根據(jù)步驟(3)相機位姿,將該坐標變換到三維場景坐標系,完成三維空間注冊;
步驟(5)、根據(jù)步驟(3)得到的相機姿態(tài)和步驟(4)得到虛擬物體空間注冊位置,實時處理虛擬物體和三維場景的空間位置關(guān)系和遮擋關(guān)系,對處理后的虛擬物體采用渲染到紋理(rtt)技術(shù),并將渲染的圖像結(jié)果與彩色圖像融合,實現(xiàn)一種較為真實的、具有良好遮擋關(guān)系的虛實融合效果。
所述步驟(4)中,快速計算orb圖像特征,然后進行flann特征匹配,對匹配的結(jié)果采用knn篩選匹配點,其中knn的最鄰近匹配參數(shù)k為4。再通過單應(yīng)性變換矩陣進行目標定位。
所述步驟(5)中,先將opengl環(huán)境的顏色緩沖區(qū)設(shè)為黑色,作為融合時的掩碼,同時設(shè)置場景模型的材質(zhì)混合光顏色為透明,并開啟深度測試,采用rtt技術(shù)與彩色圖像融合。
通過深度圖像進行相機姿態(tài)的估計和場景的模型重建相結(jié)合的方式,解決了虛實遮擋問題。
本發(fā)明的原理在于:充分結(jié)合深度相機的深度圖像數(shù)據(jù)和彩色圖像數(shù)據(jù),通過建模的方法解決增強現(xiàn)實系統(tǒng)中的虛實遮擋問題。首先對深度圖像進行快速雙邊濾波,對帶有噪聲的深度數(shù)據(jù)進行濾波去噪。對預(yù)處理后的深度圖像,根據(jù)相機內(nèi)部參數(shù)計算每一個像素對應(yīng)的相機坐標系下的三維坐標,構(gòu)成初步的三維點云映射圖?;谙噜徬袼氐狞c云在三維坐標系下也相鄰的假設(shè),計算每一個像素對應(yīng)的點云法向量,構(gòu)造三維點云映射圖。再利用相機內(nèi)部參數(shù),將場景的三維點云模型投影到像素坐標系下,獲得上一幀三維點云映射圖中對應(yīng)像素坐標的數(shù)據(jù),根據(jù)點到平面的距離誤差函數(shù),采用最鄰近迭代算法,得到兩幀數(shù)據(jù)的相機變換矩陣,再將當前點云融合到真實場景的三維模型中。利用彩色圖像數(shù)據(jù)與模板圖像的匹配,解決三維空間的注冊問題,實時地計算相機姿態(tài)和更新融合場景的三維點云模型。
本發(fā)明中深入分析了增強現(xiàn)實系統(tǒng)(ar)在處理遮擋和真實感問題時,對相機位姿估計、場景三維重建和處理遮擋問題的需求,與一般現(xiàn)有的強現(xiàn)實系統(tǒng)的技術(shù)方法相比的優(yōu)點在于:
(1)利用深度相機提供的深度圖像數(shù)據(jù)進行相機姿態(tài)估計和實時三維重建,并結(jié)合彩色圖像進行三維空間注冊,提高了相機位姿估計的精確度和魯棒性。既實時獲得相機姿態(tài),也可獲得真實場景的三維信息,利用相機姿態(tài)、場景三維模型和虛擬物體三者的空間位置關(guān)系,可有效解決vr系統(tǒng)中的虛實遮擋問題。
(2)考慮增強現(xiàn)實(ar)系統(tǒng)的應(yīng)用場合,本方法能夠在現(xiàn)有的主流平臺下能夠?qū)崟r地進行相機姿態(tài)估計、模型重建和渲染任務(wù)。本發(fā)明所有步驟均可在gpu下加速執(zhí)行,能夠空出cpu資源用于其他功能模塊。經(jīng)過實驗,在主流平臺運行的幀率能夠達到20fps,基本達到實時要求。
附圖說明
圖1為本發(fā)明中基于深度圖像數(shù)據(jù)流的虛實遮擋處理方法的主要流程圖;
圖2為本發(fā)明中根據(jù)深度圖像進行三維場景重建的結(jié)果圖;
圖3為本發(fā)明中處理虛實遮擋后的虛實融合效果圖;
圖4為本發(fā)明中虛實融合后的效果圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明實施例進行詳細的描述。
如圖1所示,本發(fā)明的實施過程主要分成四個步驟:深度數(shù)據(jù)預(yù)處理、構(gòu)建場景三維點云模型、三維空間注冊、虛實融合渲染。
步驟一、深度數(shù)據(jù)預(yù)處理
其主要步驟為:
(11)對于給定的輸入rgbd(彩色+深度)數(shù)據(jù)流中的深度數(shù)據(jù),根據(jù)深度相機的誤差范圍設(shè)定閾值wmin,wmax,深度值在wmin與wmax之間的點視為可信值,只保留閾值范圍內(nèi)的深度數(shù)據(jù)i。
(12)對深度數(shù)據(jù)的每一個像素做快速雙邊濾波,具體如下:
其中pj為像素pi的鄰域內(nèi)的像素,s為鄰域內(nèi)有效像素的個數(shù),σ1與σ2為預(yù)設(shè)參數(shù),dpi為像素pi濾波后的深度值。
(13)對給定的輸入rgbd數(shù)據(jù)流中的rgb數(shù)據(jù)作維納濾波去模糊。
步驟二、構(gòu)建場景三維點云模型
其主要步驟為:
(21)根據(jù)相機內(nèi)部參數(shù),對濾波后的深度數(shù)據(jù)圖中的每一個像素,計算其在相機坐標系下的三維坐標:
p(x,y,z)=k-1*(u,v,d)t(2)
其中,p為映射后的三維點坐標,u,v為濾波后的深度數(shù)據(jù)圖中的像素坐標,d為對應(yīng)的深度值,k-1為深度相機的內(nèi)參矩陣的逆矩陣。
(22)根據(jù)相鄰像素的三維坐標,依次計算深度圖像中的每一個像素在相機坐標系下的法向量:
n(u,v)=normalize(cross(p(u+1,v)-p(u-1,v),p(u,v+1)-p(u,v-1)))(3)
其中,normalize為向量的歸一化,p(u,v)為像素坐標u,v處在相機坐標系中的三維坐標,cross為向量的叉乘運算。
最終的三維點云映射圖map1是一組二維數(shù)據(jù),每一個像素存儲對應(yīng)三維點云在相機坐標系下的三維點坐標p以及對應(yīng)的法向量n。
(23)根據(jù)三維模型的投影點云映射圖map1和三維點云映射圖map2,按照如下所述的方式計算三維坐標和法向量的差值篩選對應(yīng)點:
其中,ci為對應(yīng)像素的rgb值,cross為向量的叉乘運算。d_p表示對應(yīng)點三維坐標的距離,d_n表示對應(yīng)點法向量的夾角正弦值,dist_c表示對應(yīng)點顏色的差值。d_p、d_n、d_c均在一定閾值范圍內(nèi)的點對視為第i幀與第i-1幀的對應(yīng)點對。
(24)對每一組對應(yīng)點對,計算點到平面的距離平方和目標函數(shù),極小化該目標函數(shù):
以上目標函數(shù)對于未知6維位姿參數(shù)x=(rx,ry,rz,tx,ty,tz)求導(dǎo)并且令導(dǎo)數(shù)為0,得:
其中,r,t是待求解的位姿變換。pi,qi分別是點集原始點和目標點。
(25)利用一下公式對當前幀的點云映射圖融合到場景的三維模型中。并根據(jù)最新的相機姿態(tài),采用光線投影算法投影出當前視角下的點云,用于下一幀的匹配。
global_p(x1,y1,z1)=m-1*cam_p(x,y,z)(7)
其中,global_p為當前幀點云在三維場景坐標系的坐標,cam_p是在相機坐標系下的坐標,m為當前相機姿態(tài)。
步驟三、三維空間注冊
獲取相機當前幀的彩色圖像curimg,分別計算彩色圖像orb特征關(guān)鍵點keypoint1和模板圖像tempimg的orb特征關(guān)鍵點keypoint2,模板圖像的關(guān)鍵點只需要計算一次。
(31)根據(jù)keypoint1和keypoint2,采用flann最鄰近算法計算出兩者之間的匹配關(guān)系,然后通過knn最鄰近算法進行進一步優(yōu)化,去除偽匹配,得到兩幅圖像最終的匹配關(guān)系。然后計算出單應(yīng)性變換矩陣h,依次對tempimg的四個頂點的像素位置進行下列操作得到tempimg在curimg的位置區(qū)域:
bi=h*ait,ai=(x,y,1),bi=(x1,y1,1)(8)
其中,ai為tempimg的四個頂點的像素位置,bi為對應(yīng)i坐標在curimg的像素位置。
(32)根據(jù)上一步獲取的四個像素坐標點,以及當前幀的三維點云映射圖的像素和前幀的彩色圖像curimg的對應(yīng)關(guān)系,依次計算在三維點云映射圖中對應(yīng)的四個像素坐標在世界坐標系下的三維坐標和法向量。具體對每一個像素作如下操作:
其中,vi表示第i個像素坐標,k表示相機內(nèi)參,t表示第i幀數(shù)據(jù)估計的相機位姿,p_gi和n_gi分別為第i幀個相機坐標系下的三維點云映射圖對應(yīng)像素的三維坐標和法向量。
(33)由以上步驟獲取到模板圖像在世界坐標系下的場景三維模型的具體位置,將虛擬物體放置到有該四個點決定的平面區(qū)域,并計算平面法向量,用于旋轉(zhuǎn)虛擬物體至合適的角度。
步驟四、虛實融合渲染
其主要步驟為:
(41)每處理一幀圖像,渲染引擎獲取最新的相機姿態(tài),并實時更新渲染引擎攝像機的參數(shù),設(shè)置如下:
其中campos為攝像機在世界坐標系的三維坐標,camdir為攝像機的向前的朝向,camhead為攝像機正上方朝向。
(42)為了實現(xiàn)場景模型對虛擬物體的遮擋效果,先將opengl環(huán)境的顏色緩沖區(qū)設(shè)為黑色,同時設(shè)置場景模型的材質(zhì)混合光顏色為透明,并開啟深度測試,采用rtt技術(shù)與彩色圖像融合。
本發(fā)明與其他現(xiàn)有增強現(xiàn)實技術(shù)相比,能夠適應(yīng)輸入深度數(shù)據(jù)分辨率較低的場景,能夠適應(yīng)較大空間的應(yīng)用場合,相機姿態(tài)估計較為準確,能夠較好的處理虛擬物體和現(xiàn)實場景之間的遮擋關(guān)系,實現(xiàn)了一種較為真實、具有遮擋關(guān)系的虛實融合效果。