一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法
【專利摘要】本發(fā)明公開了一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法。將高精度長方體擺在地面上,用Kinect深度相機(jī)拍攝;由多幀圖像深度數(shù)據(jù),生成相同幀數(shù)的法向圖;劃分標(biāo)定物體的平面,得到平面深度數(shù)據(jù);再通過透視投影逆過程得到三維點(diǎn)集;進(jìn)行最小二乘擬合方法,獲取對應(yīng)的平面;計(jì)算被標(biāo)記的平面與平面之間的夾角與距離;實(shí)際測量高精度長方體的角度和距離并比較,構(gòu)造以差值最小為目的的優(yōu)化目標(biāo)函數(shù),對Kinect深度相機(jī)的內(nèi)參進(jìn)行優(yōu)化,使得目標(biāo)函數(shù)最小化,完成對Kinect深度相機(jī)的標(biāo)定。本發(fā)明方法僅使用深度信息,可廣泛適用于一系列深度相機(jī)和應(yīng)用場景;所標(biāo)定的相機(jī)內(nèi)參可用于三維重建,較現(xiàn)有標(biāo)定方法提升了精度。
【專利說明】一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種相機(jī)標(biāo)定方法,尤其是涉及計(jì)算機(jī)視覺領(lǐng)域的一種基于長方體的 Kinect深度相機(jī)的內(nèi)參標(biāo)定方法。
【背景技術(shù)】
[0002] 微軟公司于2010年末發(fā)售的用于Xbox360游戲機(jī)的附屬體感交互設(shè)備Kinect 受到了計(jì)算機(jī)研究工作者的關(guān)注。Kinect包含一顆普通光學(xué)相機(jī)以及由一顆紅外相機(jī)和一 顆紅外投影組成的深度相機(jī),能夠根據(jù)其深度檢測方法以每秒30幀的速率實(shí)時返回拍攝 場景的深度信息。該設(shè)備作為一種消費(fèi)級的深度相機(jī)相比傳統(tǒng)的深度相機(jī)具有較大的價(jià)格 優(yōu)勢,因而受到了研究者的歡迎,在人體姿態(tài)識別,機(jī)器人應(yīng)用,物體識別,3D測量等領(lǐng)域都 出現(xiàn)了相應(yīng)的研究工作。近年來隨著3D打印技術(shù)的崛起,出現(xiàn)了使用Kinect深度相機(jī)對場 景或者物體進(jìn)行實(shí)時三維重建的工作,其中較著名的工作為2012年微軟的KinectFusion 工作,該技術(shù)利用Kinect作為深度掃描設(shè)備,結(jié)合GPU的并行處理能力,可以實(shí)時重建掃描 場景的三維模型。
[0003] 標(biāo)定對于相機(jī)應(yīng)用有非常重要的意義。在3D視覺中,我們需要了解物體在三維空 間中的坐標(biāo)與成像平面坐標(biāo)的關(guān)系。使用深度信息進(jìn)行三維重建過程主要包括從深度信息 到三維空間的投影,而深度相機(jī)的內(nèi)參直接參與了投影計(jì)算,因而內(nèi)參直接影響投影重建 精度。相機(jī)的標(biāo)定過程即為求取相機(jī)模型中用于建模投影的參數(shù)的過程。不同的應(yīng)用場景 對相機(jī)標(biāo)定的要求存在差異,Kinect設(shè)備在出場時,廠商會對設(shè)備進(jìn)行一次標(biāo)定,并且將標(biāo) 定的結(jié)果寫入設(shè)備的固件之中,這組相機(jī)參數(shù)稱為廠商標(biāo)定內(nèi)參。廠商標(biāo)定內(nèi)參能夠滿足 Kinect的日常娛樂應(yīng)用,但用于三維重建這樣的測量性應(yīng)用,廠商的標(biāo)定參數(shù)則不能很好 的滿足精確度要求,因而需要再次對Kinect深度相機(jī)進(jìn)行標(biāo)定,以求得相對更加精確的深 度相機(jī)內(nèi)參,提高三維重建的精確度。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是針對現(xiàn)有技術(shù)的不足,提供一種基于長方體的Kinect深度相機(jī) 的內(nèi)參標(biāo)定方法,利用三維物體進(jìn)行深度相機(jī)參數(shù)標(biāo)定,針對Kinect深度相機(jī),進(jìn)行精確 內(nèi)參標(biāo)定。
[0005] 本發(fā)明的目的是通過以下方法的技術(shù)方案來是實(shí)現(xiàn)的:
[0006] 1)將已知尺寸的至少三個高精度長方體組成長方體組擺在地面上,并用Kinect 深度相機(jī)在多個不同的角度進(jìn)行拍攝;所述高精度長方體各個表面的平面度達(dá)到〇. 1mm, 高精度長方體的表面能夠反射Kinect深度相機(jī)所發(fā)射的紅外光;
[0007] 2)根據(jù)步驟1)中拍攝得到的深度圖像中的多幀深度數(shù)據(jù),通過透視投影逆過程 生成回投至相機(jī)局部坐標(biāo)系下的三維空間中,生成相同幀數(shù)的法向圖;
[0008] 3)并在法向圖上劃分標(biāo)定物體的平面,得到平面深度數(shù)據(jù);
[0009]4)將步驟3)中得到的平面深度數(shù)據(jù),通過透視投影逆過程回投至相機(jī)局部坐標(biāo) 系下的三維空間中,得到各個平面對應(yīng)的三維點(diǎn)集Q;
[0010] 5)對步驟4)得到的每個三維點(diǎn)集Q進(jìn)行最小二乘擬合方法,獲取三維點(diǎn)集Q對應(yīng) 的平面;
[0011] 6)根據(jù)步驟5)得到的平面計(jì)算被標(biāo)記的平面與平面之間的夾角與距離;
[0012] 7)實(shí)際測量高精度長方體的被標(biāo)記的平面與平面之間的角度和距離,并與步驟 6)得到的夾角與距離比較,構(gòu)造以差值最小為目的的優(yōu)化目標(biāo)函數(shù),通過該優(yōu)化目標(biāo)函數(shù) 使用非線性迭代優(yōu)化方法,重復(fù)進(jìn)行步驟4)到步驟6),對Kinect深度相機(jī)的內(nèi)參進(jìn)行優(yōu) 化,使得目標(biāo)函數(shù)最小化,完成對Kinect深度相機(jī)的內(nèi)參標(biāo)定。
[0013] 所述步驟1)中至少三個高精度長方體擺在地面上的排列使得Kinect深度相機(jī)能 拍攝到由具有公共頂點(diǎn)的三個相鄰面組成的公共頂點(diǎn)面組和由兩個相互平行的面組成的 平行面組,公共頂點(diǎn)面組至少有一組,平行面組至少兩組。
[0014] 所述步驟1)中Kinect深度相機(jī)相對于長方體組的中心旋轉(zhuǎn)多個不同的角度拍 攝,每次旋轉(zhuǎn)的角度至少為9度。
[0015] 所述步驟1)中,在每個角度拍攝時,設(shè)定多個不同的Kinect深度相機(jī)到長方體組 中心之間的距離范圍,并從各個距離范圍中隨機(jī)地選取一拍攝距離進(jìn)行拍攝。
[0016] 所述步驟2)中由拍攝得到的深度圖像生成相同幀數(shù)的法向圖的具體過程為: 2. 1)對每個深度圖像I中的每個像素,取以其為中心的一個窗口作為計(jì)方法向的窗口W,窗 口寬度為r;
[0017] 2.2)根據(jù)由生產(chǎn)廠商設(shè)定的內(nèi)參經(jīng)驗(yàn)值將窗口內(nèi)的每個深度點(diǎn)q'通過透視投 影逆過程回投至相機(jī)局部坐標(biāo)系下的三維空間中,得到包含r2個點(diǎn)的三維點(diǎn)集Q={qiIi =1,2,· · ·,r2},且q=(X,y,z),其中每個深度點(diǎn)表示為V=(u,V,d(u,V)),(u,v)表 示一個像素點(diǎn)在深度圖像中的坐標(biāo),d(u,V)表示像素(u,V)在深度圖中的深度值;
[0018] 2. 3)根據(jù)三維點(diǎn)集Q,用最小二乘擬合法得到一個平面,其法向量為三維向量η= (a,b,c),平移量是m ;
[0019] 2. 4)將三維向量η的三個分量a、b、c分別采用以下公式映射到RGB空間中的紅、 綠、藍(lán)三個值上,得到窗口W中心像素的RGB顏色值:
【權(quán)利要求】
1. 一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法,其特征在于包含以下步驟: 1) 將已知尺寸的至少三個高精度長方體組成長方體組擺在地面上,并用Kinect深度 相機(jī)在多個不同的角度進(jìn)行拍攝;所述高精度長方體各個表面的平面度達(dá)到0. 1mm,高精 度長方體的表面能夠反射Kinect深度相機(jī)所發(fā)射的紅外光; 2) 根據(jù)步驟1)中拍攝得到的深度圖像中的多幀深度數(shù)據(jù),通過透視投影逆過程生成 回投至相機(jī)局部坐標(biāo)系下的三維空間中,生成相同幀數(shù)的法向圖; 3) 并在法向圖上劃分標(biāo)定物體的平面,得到平面深度數(shù)據(jù); 4) 將步驟3)中得到的平面深度數(shù)據(jù),通過透視投影逆過程回投至相機(jī)局部坐標(biāo)系下 的三維空間中,得到各個平面對應(yīng)的三維點(diǎn)集Q ; 5) 對步驟4)得到的每個三維點(diǎn)集Q進(jìn)行最小二乘擬合方法,獲取三維點(diǎn)集Q對應(yīng)的平 面; 6) 根據(jù)步驟5)得到的平面計(jì)算被標(biāo)記的平面與平面之間的夾角與距離; 7) 實(shí)際測量高精度長方體的被標(biāo)記的平面與平面之間的角度和距離,并與步驟6)得 到的夾角與距離比較,構(gòu)造以差值最小為目的的優(yōu)化目標(biāo)函數(shù),通過該優(yōu)化目標(biāo)函數(shù)使用 非線性迭代優(yōu)化方法,重復(fù)進(jìn)行步驟4)到步驟6),對Kinect深度相機(jī)的內(nèi)參進(jìn)行優(yōu)化,使 得目標(biāo)函數(shù)最小化,完成對Kinect深度相機(jī)的內(nèi)參標(biāo)定。
2. 根據(jù)權(quán)利要求1所述的一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法,其特征 在于:所述步驟1)中至少三個高精度長方體擺在地面上的排列使得Kinect深度相機(jī)能拍 攝到由具有公共頂點(diǎn)的三個相鄰面組成的公共頂點(diǎn)面組和由兩個相互平行的面組成的平 行面組,公共頂點(diǎn)面組至少有一組,平行面組至少兩組。
3. 根據(jù)權(quán)利要求1所述的一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法,其特征 在于:所述步驟1)中Kinect深度相機(jī)相對于長方體組的中心旋轉(zhuǎn)多個不同的角度拍攝,每 次旋轉(zhuǎn)的角度至少為9度。
4. 根據(jù)權(quán)利要求1所述的一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法,其特征 在于:所述步驟1)中,在每個角度拍攝時,設(shè)定多個不同的Kinect深度相機(jī)到長方體組中 心之間的距離范圍,并從各個距離范圍中隨機(jī)地選取一拍攝距離進(jìn)行拍攝。
5. 根據(jù)權(quán)利要求1所述的一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法,其特征 在于:所述步驟2)中由拍攝得到的深度圖像生成相同幀數(shù)的法向圖的具體過程為: 2. 1)對每個深度圖像I中的每個像素,取以其為中心的一個窗口作為計(jì)方法向的窗口 W,窗口寬度為r ; 2. 2)根據(jù)由生產(chǎn)廠商設(shè)定的內(nèi)參經(jīng)驗(yàn)值將窗口內(nèi)的每個深度點(diǎn)q'通過透視投影逆過 程回投至相機(jī)局部坐標(biāo)系下的三維空間中,得到包含r 2個點(diǎn)的三維點(diǎn)集Q= {qi|i = 1, 2, · · ·,r2},且q = (X,y,z),其中每個深度點(diǎn)表示為q' = (u,V,d(u,V)),(u,v)表示一個 像素點(diǎn)在深度圖像中的坐標(biāo),d(u,V)表示像素(u,V)在深度圖中的深度值; 2.3)根據(jù)三維點(diǎn)集Q,用最小二乘擬合法得到一個平面,其法向量為三維向量n= (a, b,c),平移量是m ; 2. 4)將三維向量η的三個分量a、b、c分別采用以下公式映射到RGB空間中的紅、綠、 藍(lán)三個值上,得到窗口 W中心像素的RGB顏色值: R = 125.5(a/W -I /)2 +r2 +1) 0 = 125.5(/;/ ^a2+Ir+c2 +1) B = 125.5(c/ yja2 +b2 +C1 +1) 2. 5)對深度圖像I內(nèi)每一個像素點(diǎn)重復(fù)步驟2. I)?2. 4),即可為I中的每個像素生 成一組RGB顏色值,進(jìn)而得到一張彩色圖像作為該深度圖像I的法向圖N。
6. 根據(jù)權(quán)利要求1所述的一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法,其特征 在于:所述步驟3)中在法向圖上劃分標(biāo)定物體的平面具體為: 3. 1)在長方體組合中,選擇至少一組公共頂點(diǎn)面組和至少兩組平行面組,對其中所有 面用阿拉伯?dāng)?shù)字進(jìn)行標(biāo)記; 3.2) 在步驟2)中生成的每個法向圖上,在每個被標(biāo)記過的面上繪制一個用于表示該 面上有效深度像素區(qū)域輪廓的多邊形; 3.3) 將多邊形映射回法向圖各自對應(yīng)的深度圖,得到各個多邊形對應(yīng)的平面深度數(shù) 據(jù)。
7. 根據(jù)權(quán)利要求1所述的一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法,其特征 在于:所述步驟2)中的通過透視投影逆過程與步驟4)中的通過透視投影逆過程相同,具體 過程為:根據(jù)由初始設(shè)定的內(nèi)參經(jīng)驗(yàn)值將窗口內(nèi)的每個深度點(diǎn)q'通過以下公式回投至相 機(jī)局部坐標(biāo)系下的三維空間中,得到包含:T 2個點(diǎn)的三維點(diǎn)集Q = Iqi I i = 1,2, . . . , r2}:
其中,D為二維矩陣,二維矩陣D中的行數(shù)和列數(shù)分別與深度圖像I的縱向和橫向的像 素?cái)?shù)量相同,D(u,V)是D中的一個元素值,fx,fy分別表示Kinect深度相機(jī)在X軸和y軸 方向上的兩個焦距,c x,Cy分別表示Kinect深度相機(jī)的光心在成像面上的橫、縱坐標(biāo),Y。, Y i分別是Kinect深度相機(jī)的第一、第二深度轉(zhuǎn)換參數(shù),α μ a i,D分別是Kinect深度相機(jī) 的第一、第二和第三畸變矯正參數(shù)。
8. 根據(jù)權(quán)利要求1所述的一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法,其特征 在于:所述步驟6)中被標(biāo)記的平面與平面之間的夾角與距離具體為:被標(biāo)記的公共頂點(diǎn)面 組中各個平面的夾角與被標(biāo)記的平行面組中兩個平面的距離,夾角和距離分別由以下兩式 得到:
其中,θ i,j,k是指平面F*i,k和Pj,k之間的夾角,3 i,j,k是指平面Pi,k和Pj,k之間的距尚, k是深度圖的索引,Qi, k和Qj, k是第k幀深度圖的任意兩個三維點(diǎn)集,q是一個三維點(diǎn),爾是 三維點(diǎn)q的齊次坐標(biāo),叫』=(ai>k, bi,k, Ci,k)且 nj,k= (ajwbjwCj.k)分別是與%』和Qj,k對應(yīng)的平面法向量, Pi, k - (ai, k,k,ci, k,'i, k)和 Pj, k - (ai, k,4, k,Ci, k,'i, k)分力?Ι是與 Qi, k 和 Qj, k 對應(yīng) 的平面參數(shù)四維向量,Pi,k和P^t各自對應(yīng)的平面一般方程分別是 ai, kX+bi, ky+Ci, kZ - mi, k 和 aj, kX+bj, kY+Cj, kZ - mj, k,ai, k、k、Ci, k 和 'i, k 分力1J 為與 Qi, k 對應(yīng)的平面一般方程的第一、第二、第三和第四參數(shù),a^、\k、和-!^k分別為與Qy對 應(yīng)的平面一般方程的第一、第二、第三和第四參數(shù)。
9. 根據(jù)權(quán)利要求1所述的一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法,其特征 在于:所述步驟7)中實(shí)際測量高精度長方體的被標(biāo)記的平面與平面之間的角度和距離通 過以下方式測量:用量角器量出上述被標(biāo)記的公共頂點(diǎn)面組中各個平面之間的夾角,用游 標(biāo)卡尺量出上述被標(biāo)記的平行面組中平面之間的距離。
10. 根據(jù)權(quán)利要求1所述的一種基于長方體的Kinect深度相機(jī)的內(nèi)參標(biāo)定方法,其特 征在于:所述步驟7)中的目標(biāo)函數(shù)為:
上式中,S為數(shù)量歸一化參數(shù),S = V.;1___________________i 〇viM是拍攝的深度圖索引k的集合, K^av:ew , 〇 是計(jì)算角度所用表面的阿拉伯?dāng)?shù)字標(biāo)記組合,〇 dist_是計(jì)算距離所用表面的阿拉伯 數(shù)字標(biāo)記組合,λ表示角度差異權(quán)重,λ e [〇,1],1/和4./分別表示角度和距離的測量 值。
【文檔編號】G06T7/00GK104376558SQ201410642053
【公開日】2015年2月25日 申請日期:2014年11月13日 優(yōu)先權(quán)日:2014年11月13日
【發(fā)明者】耿衛(wèi)東, 金秉文, 雷昊 申請人:浙江大學(xué)