本發(fā)明涉及一種實(shí)時(shí)彩色及深度全景圖像拼接方法,可對以kinect為代表的視場角較小的rgbd(red-green-blue-depth)傳感器陣列生成的圖像序列進(jìn)行高效快速拼接,同時(shí)生成彩色全景圖和深度全景圖。
背景技術(shù):
隨著計(jì)算機(jī)視覺的發(fā)展,傳統(tǒng)的基于二維彩色圖像處理的計(jì)算機(jī)視覺技術(shù)已經(jīng)無法滿足人們將計(jì)算機(jī)視覺應(yīng)用于三維物理世界中的要求。深度圖像作為一種可以直接反映物體距離信息的圖像,受到越來越多的關(guān)注。深度圖像是將從圖像傳感器到場景中各點(diǎn)的距離作為像素值的圖像。與彩色圖像相比,其不會受到環(huán)境中光照變化的影響。近年來,隨著以microsoftkinect為代表的能同時(shí)獲取彩色和深度信息的傳感器的推出,人們可以以較低的成本實(shí)時(shí)獲取較高分辨率的深度圖像,這大大推動了深度圖像在計(jì)算機(jī)視覺技術(shù)中的應(yīng)用。在物體的檢測、分割、追蹤和識別,三維重建,slam等領(lǐng)域,深度圖像都有十分重要的作用。
傳統(tǒng)上深度圖像的獲取方法有:激光雷達(dá)深度成像技術(shù)、結(jié)構(gòu)光技術(shù)、立體視覺技術(shù)等。激光雷達(dá)雖然可以獲得高精度的深度圖像,但其價(jià)格昂貴;結(jié)構(gòu)光技術(shù)只能用于測量靜止物體的三維深度數(shù)據(jù);立體視覺技術(shù)獲得的深度信息較為粗糙。因此很長世間以來,人們很難以較為低廉的成本,獲得較高分辨率的深度圖像,這在很大程度上限制了深度圖像在計(jì)算機(jī)視覺領(lǐng)域中的應(yīng)用。這種局面被微軟于2010年發(fā)布的革命性產(chǎn)品kinect所打破。kinect通過匹配編碼光模板來獲得場景的深度圖像,并能提供30fps的分辨率為640×480的深度圖像。此后也出現(xiàn)了各種同類型的深度相機(jī),諸如asus的xtion、intel的realsense、microsoft的二代kinect,它們的出現(xiàn)大大推動了深度圖像在計(jì)算機(jī)視覺領(lǐng)域中的應(yīng)用。
然而與傳統(tǒng)激光雷達(dá)的360°深度圖相比,以kinect為代表的消費(fèi)級深度相機(jī)的視場相對狹小,一代kinect的視場角僅為57°,單個(gè)深度相機(jī)狹小的場景覆蓋范圍極大地限制了其在諸如物體檢測追蹤、三維重建、slam等計(jì)算機(jī)視覺領(lǐng)域中的應(yīng)用。目前拓展相機(jī)視場角的方法主要有兩種:一種是利用單個(gè)相機(jī)拍攝的序列圖像,然后將其拼接成全景圖像;另一種是通過相機(jī)陣列同時(shí)拍攝,生成多幅同一場景的具有一定交疊區(qū)域的圖像序列,拼接后生成全景圖像。后一種方法雖然需要使用的相機(jī)較多,但其可以實(shí)時(shí)獲得360°空間的多幅圖像,更符合實(shí)際應(yīng)用中的需要,因而被廣泛采用。
在經(jīng)典的圖像拼接算法中,不同視角拍攝的圖片需要根據(jù)對應(yīng)的特征點(diǎn)的匹配信息來計(jì)算變換矩陣,從而將圖像序列變化至同一坐標(biāo)系下進(jìn)行拼接。然而,目前由圖像序列生成全景圖像的拼接算法只適用于彩色圖像的拼接。因?yàn)槠唇铀惴ㄋ蕾嚨膱D像配準(zhǔn)技術(shù)需要通過匹配相鄰序列圖像重疊區(qū)域中的特征點(diǎn)來完成圖像序列的配準(zhǔn),從而創(chuàng)建一幅無錯位的全景圖。深度信息缺乏有效的特征點(diǎn)信息,因此現(xiàn)有的拼接算法無法直接拼接深度圖像。經(jīng)典的全景拼接流程包括圖像預(yù)處理、圖像配準(zhǔn)和圖像融合。其算法耗時(shí)長,無法滿足實(shí)時(shí)處理的需求。因此,找到一種有效的,能滿足實(shí)時(shí)圖像處理要求的深度圖像拼接技術(shù),從而拓展以kinect為代表的低成本rgbd傳感器的視場角,對于提升深度圖像在計(jì)算機(jī)領(lǐng)域中應(yīng)用的深度和廣度具有重要意義。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對現(xiàn)有技術(shù)存在的問題,提出一種實(shí)時(shí)彩色及深度全景圖像拼接方法,能實(shí)現(xiàn)實(shí)時(shí)彩色及深度全景圖拼接。
為了達(dá)到上述目的,本發(fā)明的構(gòu)思如下:
針對深度圖缺少特征點(diǎn),無法應(yīng)用彩色圖像的拼接方法的缺陷,本發(fā)明先將每一個(gè)kinect的深度圖像和彩色圖像對齊,再利用彩色圖像的配準(zhǔn)信息來對深度圖像進(jìn)行配準(zhǔn),進(jìn)而完成深度圖像的拼接;圖像拼接過程中的圖像配準(zhǔn)步驟十分耗時(shí),為了實(shí)現(xiàn)全景圖的實(shí)時(shí)拼接,本發(fā)明對圖像拼接流程進(jìn)行優(yōu)化:在同一場景下,相對位置關(guān)系相同的kinect間的配準(zhǔn)參數(shù)只進(jìn)行一次估計(jì)優(yōu)選,后續(xù)圖像直接利用此配準(zhǔn)參數(shù)進(jìn)行變換和融合。
根據(jù)上述發(fā)明構(gòu)思,本發(fā)明所采用的技術(shù)方案是:
一種實(shí)時(shí)彩色及深度全景圖像拼接方法,包括如下步驟:
1)將每個(gè)kinect捕獲的彩色圖和深度圖對齊;
2)對任意一組x型kinect組的彩色圖進(jìn)行拼接,根據(jù)平均結(jié)構(gòu)相似度(meanstructuralsimilarityindex,mssim)優(yōu)選x型kinect組的配準(zhǔn)參數(shù);
3)根據(jù)步驟2)所選的配準(zhǔn)參數(shù),對其余所有x型kinect組獲得的彩色圖像和深度圖像進(jìn)行圖像變換、圖像融合,得到彩色廣角圖和深度廣角圖;
4)對任意一組v型kinect組所對應(yīng)的彩色廣角圖進(jìn)行拼接,根據(jù)平均結(jié)構(gòu)相似度優(yōu)選v型kinect組的配準(zhǔn)參數(shù);
5)根據(jù)步驟4)所選的配準(zhǔn)參數(shù),對其余所有v型kinect組所對應(yīng)的彩色廣角圖和深度廣角圖進(jìn)行圖像變換、圖像融合,得到彩色全景圖和深度全景圖。
所述步驟1)中的深度圖和彩色圖對齊方法,具體為:
a)經(jīng)推導(dǎo),得到kinect的深度相機(jī)坐標(biāo)系到彩色相機(jī)坐標(biāo)系之間的轉(zhuǎn)換關(guān)系如下式所示:
r=rcolorr-1depth
t=tcolor-rtdepth
其中,r為旋轉(zhuǎn)矩陣,t為平移矩陣,h為相機(jī)內(nèi)參矩陣,p為空間點(diǎn)在二維圖像平面的投影點(diǎn)坐標(biāo),z為圖像在p點(diǎn)處的像素值,參數(shù)下標(biāo)color和depth分別標(biāo)識該參數(shù)是和彩色相機(jī)坐標(biāo)相關(guān),還是和深度相機(jī)坐標(biāo)相關(guān);r和t是聯(lián)系kinect彩色相機(jī)和深度相機(jī)的外參,即旋轉(zhuǎn)矩陣和平移矩陣。
b)分別對kinect的彩色相機(jī)和深度相機(jī)進(jìn)行標(biāo)定,獲取彩色相機(jī)的內(nèi)參矩陣hcolor,深度相機(jī)的內(nèi)參矩陣hdepth。
c)對同一個(gè)kinect的深度相機(jī)和彩色相機(jī)進(jìn)行雙目標(biāo)定,獲取彩色相機(jī)的旋轉(zhuǎn)矩陣rcolor、平移矩陣tcolor和深度相機(jī)的旋轉(zhuǎn)矩陣rdepth、平移矩陣tdepth,進(jìn)而獲得旋轉(zhuǎn)矩陣r和平移矩陣t,將相機(jī)參數(shù)和未對齊的深度圖zdepthpdepth代入上述公式,得到的zcolorpcolor即為所需的與彩色圖配準(zhǔn)后的深度圖像,實(shí)現(xiàn)kinect深度圖與彩色圖的對齊。
所述步驟2)和步驟4)中的基于平均結(jié)構(gòu)相似度的配準(zhǔn)參數(shù)優(yōu)選方法,具體為:
結(jié)構(gòu)相似度(structuralsimilarityindex,ssim)分別從亮度、對比度、結(jié)構(gòu)這三個(gè)方面來衡量圖像的相似性,假設(shè)x、y是要進(jìn)行相似度評判的兩幅圖像,則它們之間的亮度、對比度、結(jié)構(gòu)這三個(gè)方面的相似性表達(dá)式如下:
其中,μx和μy分別表示圖像x和y的均值,σx和σy分別表示圖像x和y的方差,σxy表示圖像x和y的協(xié)方差。c1、c2、c3為常數(shù),為避免分母為0的情況,通常取c1=(k1×l)2,c2=(k2×l)2,c3=c2/2,一般取k1=0.01,k2=0.03,l=255,則:
ssim(x,y)=l(x,y)×c(x,y)×s(x,y)
ssim取值范圍為[0,1],取值越大,則圖像間的失真越小,相似度越高;在實(shí)際應(yīng)用中利用滑動窗口將圖像分為n塊,考慮到窗口形狀對分塊的影響,采用高斯加權(quán)計(jì)算每一窗口的均值、方差和協(xié)方差,然后再計(jì)算ssim,最后取平均值作為兩圖像結(jié)構(gòu)相似性的度量,即mssim:
在計(jì)算mssim的過程中,利用配準(zhǔn)參數(shù)變換后的圖像和原始圖像的大小會存在差異,因此需要先將原始圖像的大小變換至對應(yīng)的變換后的圖像的大小;對于彩色圖,將所有圖像通路bgr三個(gè)通道的mssim的均值作為最終的評價(jià)結(jié)果;當(dāng)拼接算法在初始化拼接參數(shù)的時(shí)候會產(chǎn)生多組拼接參數(shù),利用mssim的評價(jià)標(biāo)準(zhǔn)取得mssim估值最大的一組拼接參數(shù)作為配準(zhǔn)參數(shù)。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下突出的實(shí)質(zhì)性特點(diǎn)和顯著的進(jìn)步:
1)與直接依靠深度傳感器之間的集合關(guān)系進(jìn)行深度圖像拼接的方法相比,本發(fā)明拼接的深度全景圖畸變更小,拼接方法的靈活性更大,且可以同時(shí)完成彩色全景圖和深度全景圖的生成。
2)本發(fā)明優(yōu)化了圖像拼接的流程,同一場景下,相對位置關(guān)系相同的kinect間的配準(zhǔn)參數(shù)只進(jìn)行一次估計(jì)優(yōu)選,后續(xù)圖像直接利用此配準(zhǔn)參數(shù)進(jìn)行變換和融合,這樣做大大削減了圖像拼接時(shí)間,實(shí)現(xiàn)了全景圖像拼接的實(shí)時(shí)性。
3)本發(fā)明提出了基于平均結(jié)構(gòu)相似度的評價(jià)標(biāo)準(zhǔn),對生成的拼接圖的幾何質(zhì)量和光度質(zhì)量進(jìn)行評價(jià),使系統(tǒng)能夠始終以最優(yōu)的拼接參數(shù)進(jìn)行拼接,圖像拼接的質(zhì)量更高。
附圖說明
圖1為本發(fā)明的實(shí)時(shí)彩色及深度全景圖像拼接算法的流程圖。
圖2(a)為x型kinect組的放置示意圖,兩個(gè)kinect交疊放置,其所夾的銳角為50°;圖2(b)為v型kinect組的放置示意圖,兩個(gè)kinect相鄰放置,其所夾的鈍角為140°;圖2(c)為kinect環(huán)形全景拍攝陣列的擺放示意圖。
具體實(shí)施方式
為了使本發(fā)明的技術(shù)方案和要點(diǎn)更加明晰,下面結(jié)合附圖,對本發(fā)明的實(shí)施步驟做詳細(xì)說明:
如圖2所示,采用8個(gè)kinect:兩個(gè)上下交疊放置的kinect,構(gòu)成x型kinect組;兩個(gè)相鄰放置的成鈍角的kinect,構(gòu)成v型kinect組。分別進(jìn)行x型kinect組內(nèi)圖像拼接生成廣角圖,v型kinect組內(nèi)的廣角圖拼接生成全景圖,最終同時(shí)生成深度全景圖和彩色全景圖。
如圖1所示,一種實(shí)時(shí)彩色及深度全景圖像拼接方法,包括如下步驟:
1)如圖2(c)所示,分別獲得kinect1-8號捕獲的彩色圖和深度圖。
2)分別對kinect1的深度相機(jī)和彩色相機(jī)進(jìn)行標(biāo)定,獲取彩色相機(jī)的內(nèi)參矩陣hcolor,深度相機(jī)的內(nèi)參矩陣hdepth。
3)對kinect1的深度相機(jī)和彩色相機(jī)進(jìn)行雙目標(biāo)定,獲取彩色相機(jī)的旋轉(zhuǎn)矩陣rcolor、平移矩陣tcolor和深度相機(jī)的旋轉(zhuǎn)矩陣rdepth、平移矩陣tdepth,進(jìn)而獲得旋轉(zhuǎn)矩陣r和平移矩陣t,將相機(jī)參數(shù)和未對齊的深度圖zdepthpdepth代入下述公式,得到的zcolorpcolor即為所需的與彩色圖配準(zhǔn)后的深度圖像:
4)對kinect2-8重復(fù)步驟2)、3),完成所有kinect的深度圖與彩色圖的對齊。
5)對kinect1和kinect2組成的x型kinect組獲得的彩色圖進(jìn)行拼接,在拼接初始化時(shí)會得到多組拼接參數(shù),進(jìn)而得到多幅彩色廣角圖。
6)利用前述mssim評估方法,對由不同拼接參數(shù)得到的多幅彩色廣角圖和原始彩色圖之間的相似性進(jìn)行評估,選取mssim評估值最大的一組拼接參數(shù)作為全局最優(yōu)x型kinect組拼接參數(shù)。
7)利用步驟6)所得的最優(yōu)拼接參數(shù),對kinect1和kinect2組成的x型kinect組獲得的深度圖進(jìn)行圖像變換和圖像融合,得到深度廣角圖。
8)利用步驟6)所得的最優(yōu)拼接參數(shù),完成其余所有x型kinect組的彩色廣角圖和深度廣角圖的生成。
9)對于kinect2和kinect3組成的v型kinect組,將kinect2所在的x型kinect組生成的彩色廣角圖,和kinect3所在的x型kinect組生成的彩色廣角圖進(jìn)行拼接,在拼接初始化時(shí)會得到多組拼接參數(shù),進(jìn)而得到多幅彩色廣角圖拼接結(jié)果。
10)利用前述mssim評估方法,對由不同拼接參數(shù)得到的多幅彩色廣角圖拼接結(jié)果和原始的彩色廣角圖之間的相似性進(jìn)行評估,選取mssim評估值最大的一組拼接參數(shù)作為全局最優(yōu)v型kinect組拼接參數(shù)。
11)利用步驟10)所得的最優(yōu)拼接參數(shù),對kinect2所在的x型kinect組生成的深度廣角圖,和kinect3所在的x型kinect組生成的深度廣角圖進(jìn)行圖像變換和圖像融合,得到深度廣角圖拼接結(jié)果。
12)利用步驟10)所得的最優(yōu)拼接參數(shù),對于其余所有v型kinect組所涉及的彩色廣角圖和深度廣角圖進(jìn)行圖像變換和圖像融合,最終得到彩色全景圖和深度全景圖。