摘 要:360度全景圖是一種低成本的虛擬現(xiàn)實(shí)技術(shù),能夠增強(qiáng)與用戶(hù)交互,并且其以圖像拼接技術(shù)為手段,能夠強(qiáng)化場(chǎng)景的渲染效果。全景技術(shù)是虛擬現(xiàn)實(shí)最直觀(guān)、低廉的實(shí)現(xiàn)方法,在感官上實(shí)現(xiàn)的一種偽3D效果。本文通過(guò)分析360度全景拼接中存在的問(wèn)題,提出了以下優(yōu)化措施,以期能夠?qū)崿F(xiàn)高清圖像的快速拼接。
關(guān)鍵詞:390度;全景拼接;虛擬現(xiàn)實(shí);全景圖
360度全景圖是一種對(duì)所拍攝場(chǎng)對(duì)象進(jìn)行幾何關(guān)系映射的平面圖,展示了360度球型模型或立方模型內(nèi)的所有場(chǎng)景,具有369度水平視角和180度垂直視角的圖像,通過(guò)拖動(dòng)鼠標(biāo)左鍵,經(jīng)過(guò)全景播放器的校正處理后,才能形成一種偽3D的視覺(jué)特征。
1 360度全景拼接中的圖像校正
1.1 多次拼接帶來(lái)的問(wèn)題及優(yōu)化措施
在拼接的時(shí)候,首先要計(jì)算出圖像的變換模型,用兩張圖像的特征點(diǎn)進(jìn)行匹配,然后為了得到一張全景圖,用該模型變換待拼接的圖像,最后才能拼合和融合圖像。但是經(jīng)過(guò)多次積累后,會(huì)使圖像拼接后產(chǎn)生大面積的形變。所拼接的圖像,一張是“待拼接圖像”,一張是“參考圖像”。在拼接的過(guò)程中,如果只是對(duì)“待拼接圖像”進(jìn)行圖像變換,那么部分場(chǎng)景將發(fā)生一定程度的形變。為了盡可能降低場(chǎng)景發(fā)生形變的概率,保證場(chǎng)景不出現(xiàn)大的形變,本文提出了兩個(gè)點(diǎn)優(yōu)化措施:
(1)在圖像大小方面,保持“待拼接圖像”和“參考圖像”二者相近。如果我們有4張圖像,為了取得更好的效果,將其編為①、②、③、④,然后我們采用以下拼接步驟:
首先將①和②進(jìn)行拼接,然后將組合的結(jié)果標(biāo)記為“①②”;然后將③和④進(jìn)行拼接,同時(shí)將組合的結(jié)果標(biāo)記為“③④”;最后進(jìn)行“①②”和“③④”的拼接,并將其拼合的結(jié)果標(biāo)記為“①②③④”。
(2)將“待拼接圖像”和“參考圖像”輪流設(shè)置成為“待拼接圖像”。此方法可以使這種形變不會(huì)全部集中于一個(gè)方向上。如果有四張圖像,我們現(xiàn)在依次將它們進(jìn)行編號(hào),分別為a、b、c、d,如果想要拼接后的圖像大小不變,可以根據(jù)以下步驟進(jìn)行拼合:
首先我們將a設(shè)為參考圖像,將b設(shè)為待拼接圖像,然后將a和b進(jìn)行拼合,將b進(jìn)行圖像變換,并將其拼合后的圖像記為“ab”;然后我們將c設(shè)為參考圖像,將拼合后的“ab”設(shè)為待拼接圖像,拼合后的圖像記為“abc”;最后將d設(shè)為待拼接圖像,將拼合后的“abc”設(shè)為參考圖像,將d進(jìn)行圖像變換,并將其拼合后的圖像記為“abcd”。
使用上述兩種方法進(jìn)行拼接就能最大限度地減少大面積形變。
1.2 對(duì)全景圖進(jìn)行整體校正
在經(jīng)過(guò)多次拼接之后,圖像會(huì)在一定程度上產(chǎn)生形變。而在水平方向上,每一列像素點(diǎn)的個(gè)數(shù)基本一樣,導(dǎo)致圖像呈現(xiàn)出“彎曲”的狀態(tài),因此,我們需要將每列的像素點(diǎn)“移動(dòng)”到同一水平線(xiàn)上,這樣便能將圖像“拉直”。但是,如果我們只是簡(jiǎn)單地移動(dòng)像素,也不能有效地阻止部分圖像的場(chǎng)景進(jìn)行形變。因此,為了校正圖像中場(chǎng)景的形變,可以采用以下解決算法:
第一,對(duì)每列中心位置進(jìn)行計(jì)算,并及時(shí)在數(shù)組center中進(jìn)行保存;
第二,在數(shù)組center中查找落在[centerpoint-1, centerpoint+1]中最多的區(qū)域,選擇centerpoint為所有列期望的中心點(diǎn),讓其最終形成一條直線(xiàn);
第三,為了構(gòu)造出兩個(gè)矩陣M和N,分別在真實(shí)中心位置和期望中心位置的上、下選取3對(duì)偏移值;
第四,為了得到圖像變換模型,利用多項(xiàng)式變換公式:
(1)
將矩陣M和N作為控制點(diǎn)加以圖像變換,那么,變換后的圖像正是校正后的圖像。
這種算法能夠?qū)⒃紙D像中的發(fā)生形變的場(chǎng)景還原到較真實(shí)的場(chǎng)景,能夠?qū)ⅰ皬澢钡膱D像“拉直”。
2 360度全景拼接中的首尾相接問(wèn)題及優(yōu)化措施
2.1 圖像首尾的確定
首先,在拼接和生成全景圖之前,我們擁有的是一組單獨(dú)的圖像,這一組圖像中的各種場(chǎng)景是拼接后的全景圖像的最重要的構(gòu)成元素。但是,究竟哪張圖像應(yīng)該成為全景圖像的終點(diǎn)呢?哪張圖像可以作為拼接起點(diǎn)呢?假設(shè)圖像的首尾都是純白色的背景,那么他們的拼合一定是無(wú)縫的;但是圖像的首尾部分都是紋理細(xì)膩的場(chǎng)景,為了保證無(wú)縫的拼接,就必須要精確的縫合。因此,應(yīng)該盡量根據(jù)圖像的紋理特征熵值,在實(shí)現(xiàn)的過(guò)程中,我們來(lái)選取較為“簡(jiǎn)單的”區(qū)域作為圖像的首尾,進(jìn)行判斷。那么我們可以用熵值來(lái)對(duì)圖像中的紋理信息進(jìn)行量化,熵值大,圖像中包含的紋理信息大,熵值小,圖像中的紋理少。熵值的定義以下面公式所示:
(2)
其中P(i,j)表示灰度共生矩陣在第i行、第j元素的值,L則表示灰度級(jí)的數(shù)目。
為了找出熵值最小的圖像,在具體的實(shí)現(xiàn)中,我們要計(jì)算圖像中部分區(qū)域的熵值(一般取圖像中心區(qū)域)。這樣不僅能夠提高計(jì)算的精準(zhǔn)度,同時(shí)也能進(jìn)一步加快計(jì)算的速度。
其次,在處理首尾相接光線(xiàn)自然過(guò)渡的問(wèn)題上,我們可以通過(guò)計(jì)算圖像局部區(qū)域的紋理特征,將圖像分成兩部分分別作為全景圖像的首、尾,滿(mǎn)足一下公式(2)中的關(guān)系,找出熵值最小的圖像。
2.2 首尾相接
在全景圖的呈現(xiàn)過(guò)程中,應(yīng)當(dāng)盡量避免圖像的首尾被用戶(hù)看到。因此,本文引入了偏移值和圖像斜率的定義,來(lái)保證圖像首尾場(chǎng)景的無(wú)縫拼接。如果圖像首尾的上、下端偏移值相等、圖像斜率為0,那么,該圖像是首尾相接的。事實(shí)上,如果我們只是將圖像首尾附近的強(qiáng)行進(jìn)行變換,圖像也會(huì)產(chǎn)生嚴(yán)重的失真。為了解決這個(gè)問(wèn)題,可以采用基于全局坐標(biāo)約束的算法,通過(guò)圖像變換,保持場(chǎng)景的真實(shí)性。并且為了實(shí)現(xiàn)圖像的首尾相接,可以采用全局坐標(biāo)變換約束,將場(chǎng)景區(qū)域的四個(gè)端點(diǎn)對(duì)應(yīng)的坐標(biāo)變換到目標(biāo)圖像的四個(gè)端點(diǎn)坐標(biāo),即圖像中的每一塊區(qū)域都參與圖像的變換。
3 360度全景拼接中高清圖像的拼接方案及拼接順序的確定
在圖像的拼合過(guò)程中,只有提高全景圖的拼接速度,才能提高整體步驟的速度。在特征點(diǎn)的提取算法中,可近似看成與圖像中像素點(diǎn)的總數(shù)成線(xiàn)性,關(guān)系圖像的分辨率和算法的執(zhí)行時(shí)間成正比。如果此時(shí)的圖像分辨率較高,那么將耗費(fèi)相當(dāng)長(zhǎng)的時(shí)間來(lái)提取特征點(diǎn)。此外,拼合十張左右的圖像才能拼接成一幅360度全景圖,這樣算下來(lái),最終會(huì)耗掉更多時(shí)間。因此,我們?cè)谄唇拥倪^(guò)程中既要努力提高拼接的速度,同時(shí)又不能降低全景圖的質(zhì)量,這就要對(duì)“待拼接圖像”進(jìn)行采樣,同時(shí)記錄下采樣的尺度,同時(shí)對(duì)采樣的圖像進(jìn)行特征提取。在對(duì)圖像的特征進(jìn)行提取和認(rèn)真匹配之后,再把特征點(diǎn)的位置乘以采樣尺度,這樣就將特征點(diǎn)的位置還原成為大圖的位置。
如何從圖像中找出與該圖像有重疊部分的圖像呢?在不引入其他信息下,當(dāng)前需要找出與之“相鄰”的圖像,才能使該圖像與所有圖像進(jìn)行特征匹配,這樣會(huì)使算法的復(fù)雜性進(jìn)一步增加,效率非常低下。因此,可以采用基于文件名命名規(guī)則的圖像拼接序列自動(dòng)感知算法。首先,按照文件名的大小,將待拼接的這組圖像做升序排列,然后取前兩張圖像進(jìn)行特征匹配。如果沒(méi)有找到匹配區(qū)域,我們要先按照降序?qū)M文件名進(jìn)行排序,然后再進(jìn)行特征匹配,匹配時(shí)取出排序后的前兩張圖像,如果找到了匹配,再按照該序列順序進(jìn)行拼接。
參考文獻(xiàn):
[1] 吳輝.全景影像的優(yōu)化生成及其并行處理方法[D].南京:南京師范大學(xué),2014.
[2] 趙衛(wèi)林,陳繼華,李勇.基于圖像的經(jīng)緯儀測(cè)量目標(biāo)快速瞄準(zhǔn)技術(shù)[J].宇航計(jì)測(cè)技術(shù),2014,34(3).
作者簡(jiǎn)介:孫昊琛(1985—),男,山東聊城人,山西傳媒學(xué)院制作系講師,研究方向:影視攝影與制作。