• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ToF相機的三維重建技術(shù)

    2020-04-18 13:15:02賈佳璐應(yīng)忍冬潘光華郭維謙劉佩林
    計算機應(yīng)用與軟件 2020年4期
    關(guān)鍵詞:深度圖位姿三維重建

    賈佳璐 應(yīng)忍冬 潘光華 郭維謙 劉佩林

    (上海交通大學(xué)電子信息與電氣工程學(xué)院 上海 200240)

    0 引 言

    1963年,Roberts提出了從二維圖像中重建三維信息的算法[1],從二維圖像中提取出特征點,然后利用特征點進行多視圖匹配,實現(xiàn)三維場景的重建。二維圖像重建算法復(fù)雜度較高且真實感較低。隨著消費級深度相機的出現(xiàn),三維信息變得觸手可及,三維重建領(lǐng)域也實現(xiàn)了高速的發(fā)展。ToF相機是一種主動測距的3D相機,能夠直接獲取物體的深度信息和灰度信息?;谏疃刃畔⑦M行三維重建的算法計算復(fù)雜度明顯低于基于二維圖像的重建算法,同時重建的模型精度也更高,其中最有代表性的是微軟研究院在2012年提出的KinectFusion[2],其利用多幀深度圖像重建了三維場景。吳劍峰等[3]提出了一種快速的Kinect三維重建技術(shù),并將其與實際的3D打印結(jié)合,實現(xiàn)優(yōu)化。近年來,隨著神經(jīng)網(wǎng)絡(luò)的飛速發(fā)展,其除了在二維圖像的識別分割等方面,也已經(jīng)應(yīng)用到了三維重建領(lǐng)域,例如斯坦福大學(xué)提出的基于RGB-D圖像重建點云模型的PointNet網(wǎng)絡(luò)[4],江航等[5]也提出了對室內(nèi)場景CAD模型的重建網(wǎng)絡(luò)。但是,神經(jīng)網(wǎng)絡(luò)實現(xiàn)的重建主要用于對遮擋部分、背面部分的預(yù)測,目前精確的重建仍然需要依賴多視角圖像的精確匹配。KinectFusion最關(guān)鍵的算法步驟是基于ICP匹配結(jié)果利用TSDF進行點云融合重建物體表面,并且采用GPU并行計算使整個算法可以實時進行。但是我們發(fā)現(xiàn)該算法對于小物體的重建存在較大的偏差,重建精度受影響較大。為了匹配Smart-ToF相機的特性,本文提出了一個新的物體三維重建的流程,并提出了針對深度圖的多邊濾波算法,對深度圖進行預(yù)處理,將多邊濾波算法與雙邊濾波和中值濾波等算法對比,明顯提高了深度圖的精度。同時本文提出了彌補空洞的算法,能夠有效處理因為反光等原因造成的空洞,提高了重建的精度。

    1 三維重建原理

    KinectFusion重建算法主要流程包括數(shù)據(jù)的預(yù)處理、計算點云法向量并進行位姿估計、點云的融合和表面重建。數(shù)據(jù)的預(yù)處理主要包括深度圖濾波、深度圖轉(zhuǎn)換為三維點云,三維重建部分主要包括求解點云數(shù)據(jù)法向量,利用帶法向量的點云進行相機位姿估計,然后實現(xiàn)點云融合與表面重建。

    1.1 深度圖預(yù)處理

    預(yù)處理主要分為兩步:第一步是利用雙邊濾波器對深度圖進行去噪;第二步是將深度圖像轉(zhuǎn)換為以相機坐標(biāo)為原點的點云數(shù)據(jù)。雙邊濾波結(jié)合了圖像空間鄰近性和像素相似性兩部分,相比于高斯濾波、中值濾波等算法,能夠在去噪的同時保留圖像的邊緣細(xì)節(jié)。深度圖的前后景分界明顯,所以具有邊緣非常銳利的特性,雙邊濾波可以避免出現(xiàn)邊緣被模糊的現(xiàn)象。雙邊濾波應(yīng)用于深度圖像時,用濾波核內(nèi)的周圍像素深度值的加權(quán)平均表示中心像素的深度值,所用的加權(quán)平均基于高斯分布,權(quán)重系數(shù)包含像素的歐式空間距離和像素深度值的距離,差值越大所占權(quán)重越小。

    (1)

    E(q)=(i-k)2+(j-l)2

    (2)

    F(q)=‖f(i,j)-f(k,l)‖2

    (3)

    式中:f(i,j)是圖像在點(i,j)處的像素值;f(k,l)是圖像在模板窗口Ω的中心坐標(biāo)點(k,l)的像素值;Nσ(t)=exp(-t2σ-2)是高斯函數(shù);σs、σd是不同的高斯函數(shù)的標(biāo)準(zhǔn)差;Wp是歸一化系數(shù)。除了對于深度圖像的濾波,很多研究人員提出了對點云進行濾波的算法。廖昌粟等[6]提出了根據(jù)密度濾波和點法矢量進行三維點云的濾波,能夠在三維點云域?qū)崿F(xiàn)去噪光滑算法,我們在改進的三維重建算法中也加入了對點云的濾波。

    將深度圖投影變換成相機空間坐標(biāo)的3D點云需要利用相機的內(nèi)參進行。

    (4)

    式中:(u,v)是深度圖的點坐標(biāo),d是該點對應(yīng)的深度值,kx,ky,cx,cy是相機內(nèi)參,(x,y,z)是(u,v)對應(yīng)的點云坐標(biāo)。

    1.2 點云配準(zhǔn)與位姿估計

    位姿估計主要分為兩個過程:先計算點云的法向量,然后用帶法向量的點云利用ICP算法進行位姿估計。每個空間點云對應(yīng)的法向量可以利用像素坐標(biāo)的相鄰點進行計算。

    Nk(u)=v[(P(u+1,v)-P(u,v))×

    (P(u,v+1)-P(u,v))]

    (5)

    式中:v[x]=x/‖x‖,利用計算法向量的定義求得三點構(gòu)成的平面的法向量。

    基于深度相機的位姿估計主要利用稠密點云進行ICP匹配[7],ICP是迭代最近點匹配方法,可以利用相鄰兩幀的有向點云數(shù)據(jù)進行ICP匹配,稱為frame-to-frame算法,也可以利用當(dāng)前幀與匹配后的模型投影回上一幀位姿的點云數(shù)據(jù)進行ICP匹配,稱為frame-to-model算法。當(dāng)匹配的點云是通過全部點云投射到上一個相機平面的方式獲得時,這種方法獲得的點云比Kinect原始采集的數(shù)據(jù)噪聲會減少很多,所以frame-to-model算法得到的匹配結(jié)果會優(yōu)于frame-to-frame算法。ICP算法還可以利用K-D樹、精簡點云等算法進行加速,從而提高效率,例如黃潛等[8]提出的通過精簡點云的快速點云匹配算法。

    1.3 點云融合與表面重建

    點云融合與表面重建主要通過截斷符號距離場(Truncated Signed Distance Field,TSDF)算法實現(xiàn)[9]。TSDF算法對距離表面較近的幾層體素存儲其到重建表面的最小距離值,對較遠(yuǎn)的體素用固定數(shù)值表示,這樣可以減少內(nèi)存消耗和冗余點。當(dāng)體素在表面的前面時,TSDF取正值,當(dāng)體素在表面的后面時,TSDF取負(fù)值。新的一幀深度圖獲取后,更新點云的同時更新并融合TSDF的值。表面重建是指將離散點云連接成連續(xù)的可視等值面,移動立方體法將數(shù)據(jù)場中八個相鄰位置的數(shù)據(jù)分別存放在一個四面體體元的八個頂點處, 然后當(dāng)其中一個大于給定的常數(shù)T而另一個小于T時,這個棱上一定有一個等于T的位置。我們可以計算該體元中十二條棱和等值面的交叉點,構(gòu)建出三角面,再連接所有的三角面形成等值面,合并所有體素(立方體)的等值面即可重建出連續(xù)完整的表面。

    2 多邊濾波與補空洞算法

    2.1 深度圖的多邊濾波算法

    圖像濾波有很多種算法,雙邊濾波在深度圖的濾波中表現(xiàn)突出,去除噪聲的同時可以保持邊緣銳利性,但是雙邊濾波只利用了深度圖像素鄰域的相關(guān)性,然而ToF相機獲得深度圖的同時還可以獲得強度圖像。強度圖像與深度圖的數(shù)據(jù)具有一定的相關(guān)性,Victor等[10]進行實驗測試了被測物體的強度圖與深度誤差之間的相關(guān)性,結(jié)果如圖1所示。

    圖1 距離的噪聲方差與強度圖的關(guān)系

    可以看出,被測量物體的表面越亮,噪聲越小,所以我們將ToF相機采集得到的強度圖作為濾波的一個參考輸入,加入亮度差與亮度本身作為權(quán)重系數(shù),改進雙邊濾波算法。

    Nσd(‖f(i,j)-f(k,l)‖2)×

    Nσg1(‖g(i,j)-g(k,l)‖2)×

    Nσg2((-g(i,j))2)×Dm(q)]

    (6)

    式中:g(i,j)為強度圖像在(i,j)處的強度值;σg1和σg2分別為強度差和強度的高斯函數(shù)的標(biāo)準(zhǔn)差。

    2.2 補空洞算法

    受到物體材質(zhì)、拍攝角度等影響,我們獲得的深度圖會包含空洞,可以利用周圍像素值預(yù)測空洞處的深度值。ToF相機獲得的深度圖的空洞值一般用0或者一個測距范圍外的固定值表示,我們需要先判斷出空洞位置,然后以需要填補的空洞為中心向八個方向依次搜索,如圖2所示。

    圖2 補深度圖的空洞值搜索方向

    按照0-7的順序搜索,直到當(dāng)前方向搜到有效值后搜索下一個方向,每個方向都獲得有效值之后計算加權(quán)平均值作為空洞像素的深度值,權(quán)重系數(shù)為有效值距離空洞的歐式距離。計算空洞的深度值Dh(u)公式如下:

    (7)

    3 改進的重建算法

    在重建過程中,將物體擺在一個展臺上,首先利用深度信息的的梯度變化進行前后景分割,將物體與背景分離。將物體分割之后,無效點云數(shù)量將減少,點云匹配效率得到提高,同時沒有背景干擾,可以更高質(zhì)量的重建目標(biāo)物體。

    為了更好地重建物體完整表面,本文提出了一個新的三維重建算法的流程,主要包含五個步驟:

    1) 讀入深度圖之后,利用多邊濾波算法結(jié)合灰度圖對圖像進行去噪,提升圖像質(zhì)量,同時搜索周圍有效像素值,并加入距離權(quán)重補全空洞值;

    2) 將深度圖轉(zhuǎn)換為點云,同時對點云進行濾波,去除前后景邊緣產(chǎn)生的飛散點;

    3) 利用frame-to-model的方法進行點云的匹配,先提取關(guān)鍵點進行粗匹配,然后再進行精匹配,求解相機位姿,最后利用圖優(yōu)化進行后端優(yōu)化;

    4) 去除冗余點云,然后求解點云的法向量;

    5) 利用泊松重建算法將帶有法向量的點云模型重建得到表面。

    3.1 點云濾波

    由深度圖得到點云可以利用式(4)計算,經(jīng)過深度圖濾波的點云數(shù)據(jù)與原始點云數(shù)據(jù)相比,表面得到了很好的平滑,但是還有一類噪聲,在前后景的邊緣處仍會有一條過渡帶,還有一些離群點,我們統(tǒng)一稱這類噪聲為飛散點。在點云匹配前需要濾除飛散點從而為相機位姿與表面重建提供優(yōu)化后的數(shù)據(jù)。

    本文利用統(tǒng)計濾波去除飛散點。統(tǒng)計濾波的原理是對每個點Pc計算到它的臨近點們Pi的平均距離,得到一個高斯分布的結(jié)果,均值M和方差s2決定了高斯分布的形狀,平均距離在標(biāo)準(zhǔn)范圍之外的點判定為飛散點并在點云中刪除。

    (8)

    式中:Ωc是點Pc的鄰域區(qū)域。P0的空間坐標(biāo)為(0,0,0),即把距離大于閾值的點統(tǒng)一置為0,然后濾除。

    3.2 點云匹配與相機位姿估計

    利用點云的配準(zhǔn)結(jié)果估計相機位姿,包含三個步驟:先粗匹配,再精匹配,最后利用圖優(yōu)化進行全局優(yōu)化。

    粗匹配首先提取圖像的關(guān)鍵點,本文通過高斯差分算子提取深度圖像的角點作為匹配關(guān)鍵點,對深度圖在相同核大小和不同標(biāo)準(zhǔn)差下做高斯濾波,得到圖像Iσ1、Iσ2和Iσ3。然后計算相鄰兩個圖像的差分,得到DoG1、DoG2和DoG3三個差分圖像,遍歷DoG2,判斷DoG2(i,j)是否為三個差分圖像中m×m鄰域的極值點,如果是極值點則選擇為角點Pk(u)。

    Iσi=Dk(u)*Nσi(u)

    (9)

    DoGi=Iσi-Iσi-1

    (10)

    式中:Nσi(u)是標(biāo)準(zhǔn)差分別為σi高斯函數(shù)。利用選取的角點進行ICP匹配,實現(xiàn)粗匹配過程。ICP求解相機位姿的原理為:通過最小二乘求解,得到使誤差平方和最小的旋轉(zhuǎn)矩陣R0和平移矩陣t0。

    (11)

    精匹配利用所有有效點云求解R、t,利用R0、t0作為初始值,可以減少迭代次數(shù)從而降低計算量。ICP算法結(jié)合圖優(yōu)化可以全局優(yōu)化相機位姿,得到最終軌跡。

    (12)

    式中:s、j、k是點集的編號。得到的初始估計作為圖模型的輸入,然后利用Marquard的方法來解算圖模型[11]。

    3.3 重建表面

    我們重建表面前先計算點云的法向量N(u),然后通過泊松重建算法實現(xiàn)表面的重建,泊松重建實質(zhì)也是一種隱函數(shù)的重構(gòu)方式,融合了全局與局部的優(yōu)點。首先利用點云的法向量判斷表面的內(nèi)外,表面內(nèi)用1表示,表面外用0表示,定義指示函數(shù)χM(x)估計物體表面為:

    (13)

    式中:M表示表面內(nèi)部區(qū)域。利用向量空間V和指示函數(shù)χM(x)相等求解泊松表面:

    ▽χ=V

    (14)

    4 實驗結(jié)果與分析

    深度圖濾波與補空洞算法利用斯坦福大學(xué)開發(fā)的仿真數(shù)據(jù)集SUNCG[12]進行測試,隨機從仿真環(huán)境中采集500幅無噪聲的深度圖以及加入了Kinect仿真噪聲的深度圖。利用PSNR和SSIM評估濾波結(jié)果,PSNR可以評估去除噪聲的效果,SSIM可以評估結(jié)構(gòu)相似性。由于深度圖具有邊緣銳利的特性,所以濾波后邊緣保持的良好程度是重要指標(biāo),因此我們提出了計算PSNR時增加邊緣權(quán)重的評估方法:

    (15)

    SSIM=l(x,y)α·c(x,y)β·s(x,y)γ

    (16)

    式中:peak為該圖像的峰值即最遠(yuǎn)有效距離;Ni和Nj分別是圖像的像素寬度和高度;mij是(i,j)像素值在整幅圖的權(quán)重,所有權(quán)重加和結(jié)果為Ni×Nj;x是待評估的深度圖;y是無噪聲的深度圖作為真值;l、c、s分別衡量了亮度、對比度和結(jié)構(gòu)相似度。

    (17)

    (18)

    (19)

    式中:μx、μy為x和y的均值;σx、σy為標(biāo)準(zhǔn)差;σxy為協(xié)方差;c1、c2、c3都是為了避免除零的常數(shù)值。

    從SUNCG數(shù)據(jù)集當(dāng)中采集得到500幅深度圖,經(jīng)過各種濾波后的圖片利用PSNRv與SSIM評估,并計算500幅深度圖數(shù)據(jù)的平均值,結(jié)果如表1所示。計算過程中無效像素值不進行計算。

    表1 濾波結(jié)果對比

    選取出一組深度圖及各種算法濾波結(jié)果進行可視化對比,結(jié)果如圖3所示。中值濾波雖然在PSNRv方面低于雙邊濾波,但是具有填補小空洞的能力,多邊濾波與補空洞算法能夠得到更接近真值的結(jié)果。

    圖3 SUNCG深度圖濾波結(jié)果與補空洞結(jié)果

    利用ToF實際采集了實驗室各個場景的深度圖,對濾波與補空洞算法進行了實際測試,其中辦公桌場景測試結(jié)果如圖4所示,左上角電腦屏幕因為反光造成的空洞被準(zhǔn)確填補,同時平面也被很好的平滑。

    (a) 原始采集圖 (b) 濾波與補空洞之后的圖圖4 Smart-ToF 采集的深度圖濾波與補空洞結(jié)果

    對多個物體進行了重建,隨機選取一個物體的三維重建的模型結(jié)果,如圖5所示,KinectFusion重建結(jié)果部分表面出現(xiàn)明顯缺口,本文方法可以完整重建物體的表面,并且能夠很好地將物體與背景分離。

    (a) KinectFusion的重建結(jié)果 (b) 本文算法的重建結(jié)果圖5 重建結(jié)果對比

    5 結(jié) 語

    本文提出了結(jié)合強度圖的深度圖像多邊濾波算法以及補空洞算法,并提出了針對物體的三維重建改進算法。從峰值信噪比與結(jié)構(gòu)相似性等方面對濾波算法進行評估,結(jié)果表明本文算法各方面均優(yōu)于雙邊濾波等算法,但是補空洞對于邊緣處缺失的深度值的填補仍會出現(xiàn)部分模糊問題,后續(xù)研究將繼續(xù)改善。本文提出的重建算法能夠完整、精確地重建出物體的表面,比KinectFusion更加適合于單個物體的三維重建,可以應(yīng)用于文物掃描保存、商品展示等多個領(lǐng)域。

    猜你喜歡
    深度圖位姿三維重建
    基于Mimics的CT三維重建應(yīng)用分析
    軟件(2020年3期)2020-04-20 00:56:34
    基于深度圖的3D-HEVC魯棒視頻水印算法
    一種基于局部直方圖匹配的深度編碼濾波算法
    基于關(guān)系圖的無人機影像三維重建
    基于共面直線迭代加權(quán)最小二乘的相機位姿估計
    基于CAD模型的單目六自由度位姿測量
    三維重建結(jié)合3D打印技術(shù)在腔鏡甲狀腺手術(shù)中的臨床應(yīng)用
    疊加速度譜在鉆孔稀少地區(qū)資料解釋中的應(yīng)用
    科技視界(2016年2期)2016-03-30 11:17:03
    小型四旋翼飛行器位姿建模及其仿真
    多排螺旋CT三維重建在頜面部美容中的應(yīng)用
    绥江县| 基隆市| 甘谷县| 霍州市| 安福县| 厦门市| 大兴区| 静宁县| 大新县| 云龙县| 罗田县| 嘉义市| 元朗区| 陆丰市| 固原市| 育儿| 合江县| 石家庄市| 临猗县| 广宁县| 长泰县| 都昌县| 永平县| 贡山| 红河县| 岳阳县| 麟游县| 尚志市| 萨嘎县| 安塞县| 屯昌县| 孝义市| 玛曲县| 江山市| 稻城县| 鲁甸县| 大石桥市| 闽侯县| 墨玉县| 安化县| 琼结县|