亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于迭代的虛擬視圖合成算法實(shí)現(xiàn)

        2021-05-13 07:16:32劉偉民
        現(xiàn)代計算機(jī) 2021年8期
        關(guān)鍵詞:不動點(diǎn)視點(diǎn)空洞

        劉偉民

        (四川大學(xué)計算機(jī)學(xué)院,成都610065)

        0 引言

        近年來,隨著人們生活水平的不斷提高,對視頻播放系統(tǒng)的需求也在不斷增加。傳統(tǒng)的視頻播放系統(tǒng)僅能夠播放固定視點(diǎn)下單一視線方向捕獲的畫面,導(dǎo)致用戶觀看場景的自由度不高,體驗(yàn)感下降。為了提升用戶的體驗(yàn),許多學(xué)者對此進(jìn)行了大量研究。在虛擬現(xiàn)實(shí)領(lǐng)域,可以通過VR 眼鏡實(shí)現(xiàn)360°的場景觀看,并支持用戶移動等交互。但是由于硬件計算性能的限制,目前無法實(shí)時渲染高質(zhì)量的畫面。NVDIA 推出了VR 視頻解碼框架,通過實(shí)時解碼全景高清視頻,能夠支持用戶360°的自由觀看場景。然而,該方案限制了用戶的移動,僅能夠在固定視點(diǎn)觀看周圍場景。為了允許用戶自由觀看場景并且達(dá)到實(shí)時渲染的目的,F(xiàn)ujii T 等人[1]提出了自由視點(diǎn)電視系統(tǒng)(Free Viewpoint Television,F(xiàn)TV)概念,使得這一需求成為可能。

        FTV 系統(tǒng)主要采用基于深度圖像的渲染技術(shù)(Depth Image Based Render,DIBR)[2],將周圍已經(jīng)捕獲的圖像信息映射到虛擬視點(diǎn)處,得到虛擬視點(diǎn)的圖像信息。DIBR 技術(shù)無需進(jìn)行場景的幾何建模,也無需計算復(fù)雜的光照信息,能夠滿足實(shí)時渲染的需求[3]。

        然而,基于深度的圖像渲染技術(shù)中存在很多問題,例如空洞、偽影、重疊等[4],影響合成圖像的質(zhì)量。空洞問題主要分為兩類:采樣不足造成的細(xì)小空洞以及信息缺失導(dǎo)致的空洞。細(xì)小空洞又稱為裂紋,如圖1(a)所示。造成該現(xiàn)象的主要原因是映射過程中,像素映射到非整數(shù)像素上,需要進(jìn)行取整操作,從而造成舍入誤差,采樣率不足[5]。較大的空洞如圖1(b)所示,主要由于虛擬視點(diǎn)視角發(fā)生變化,導(dǎo)致參考圖像中前景物體后的背景物體重新暴露在虛擬視點(diǎn)下,而參考圖像無法提供對應(yīng)的背景信息。偽影現(xiàn)象如圖1(c)所示,背景物體上出現(xiàn)前景物體的部分信息,造成圖像失真。造成偽影的主要原因是物體輪廓處的深度值與顏色值不匹配造成的,通常采用深度圖邊緣預(yù)處理解決[6]。在進(jìn)行視圖合成時,參考圖像的多個像素可能映射到虛擬視點(diǎn)的同一像素位置上,造成如圖1(d)所示的前景顏色被背景顏色覆蓋的情況,這種現(xiàn)象稱為重疊現(xiàn)象[7]。Fehn 等人[8]利用控制繪制順序的方式解決重疊問題,但是該方案不適用于GPU 并行框架,Greene 等人[9]提出Z-buffer 策略,利用深度過濾掉背景物體,可以很好地支持并行計算結(jié)構(gòu)。

        為了解決空洞問題,本文提出一種基于GPU 加速的逆向映射算法。該算法基于不動點(diǎn)迭代的思想,利用移動向量構(gòu)建不動點(diǎn)迭代關(guān)系式,能夠很好地避免細(xì)小空洞的產(chǎn)生。同時利用兩幅參考圖像合成虛擬視圖,能夠有效地減少空洞的產(chǎn)生。最后針對存在的空洞,采用基于深度引導(dǎo)的空洞修復(fù)方式進(jìn)行填充。本文使用OpenGL 的計算著色器實(shí)現(xiàn)并行計算,并驗(yàn)證了算法的有效性。

        圖1 DIBR技術(shù)中存在的問題

        1 虛擬視圖合成算法概述

        1.1 像素映射方式

        在視圖合成算法中,根據(jù)像素映射方式不同,可以將DIBR 技術(shù)分為前向映射方式與逆向映射方式。前向映射方式如圖2(a)所示,使用3D-Warping 方程將參考圖像的每一個像素映射到虛擬視圖上。其中(x',y')可能存在浮點(diǎn)數(shù)情況,需要進(jìn)行像素取整或者采用Splatting 算法[10]進(jìn)行處理。像素取整會造成虛擬視圖中出現(xiàn)大量“裂紋”,而Splatting 算法需要對映射的點(diǎn)做加權(quán)計算,不利于并行計算。逆向映射方式如圖2(b)所示,利用逆向映射函數(shù)T-1( )x,y將虛擬視圖上的每一個像素映射到參考圖像上,通過雙線性插值或者三線性插值等方式采樣圖像,可以得到虛擬視點(diǎn)的圖像信息。相較于前向映射方式,逆向映射方式能夠更好地支持GPU 并行計算,而且可以避免“裂紋”現(xiàn)象的出現(xiàn),但是需要找到對應(yīng)的逆向映射關(guān)系。

        1.2 基于原子的逆向DIBR算法

        當(dāng)多個參考圖像上的像素點(diǎn)同時投影到虛擬視圖的同一位置上時,會出現(xiàn)寫入數(shù)據(jù)競爭的問題,為了解決這個問題,可以采用原子寫入的思想?;谠拥哪嫦駾IBR 算法首先通過前向映射方式將像素點(diǎn)投影到虛擬視圖上,通過舍入取整得到要寫入的像素位置,然后利用深度信息進(jìn)行原子最小寫入,即將深度最小的點(diǎn)寫入到GPU 內(nèi)存中。此時會得到帶有裂紋的深度圖,對深度圖進(jìn)行濾波處理能夠得到虛擬相機(jī)的粗略深度圖。之后根據(jù)虛擬相機(jī)的深度圖進(jìn)行重投影,利用投影到參考相機(jī)的點(diǎn)進(jìn)行采樣,最終能夠得到虛擬視圖的信息。

        基于原子的DIBR 算法能夠適用并行計算框架,可以快速得到虛擬視點(diǎn)的圖像信息。但是,對帶有裂紋的深度圖進(jìn)行濾波可能會造成圖像失真現(xiàn)象,影響合成的圖像質(zhì)量。本文提出一種基于迭代的DIBR 算法,無需對深度圖進(jìn)行濾波,可以得到高質(zhì)量的虛擬視圖,接下來對基于迭代的DIBR 算法進(jìn)行詳細(xì)的闡述。

        圖2 前向映射與逆向映射示意圖

        2 基于迭代的DIBR算法

        2.1 不動點(diǎn)迭代思想

        本文采用的基本思想是不動點(diǎn)迭代思想。不動點(diǎn)迭代是求解復(fù)雜方程f(x)=0 的重要方法。如圖3 所示,假設(shè)要求解方程f(x)=x-g(x),不動點(diǎn)迭代思想會將函數(shù)f(x)分解成兩個函數(shù)y=x與y=g(x)。其中兩個函數(shù)的交點(diǎn)x*就稱作不動點(diǎn),也是函數(shù)f(x)的零點(diǎn)。任取一點(diǎn)x0,根據(jù)公式(1)進(jìn)行迭代計算,若迭代序列收斂到g(x)的不動點(diǎn),即,則不動點(diǎn)迭代收斂,否則不動點(diǎn)迭代發(fā)散。

        2.2 二維圖像的不動點(diǎn)迭代

        對于二維圖像而言,虛擬視圖上的點(diǎn)p與參考圖像上的點(diǎn)q存在如公式(2)所示的對應(yīng)關(guān)系:

        其中,V(q)表示q點(diǎn)移動到p點(diǎn)的移動向量。

        在基于DIBR 的視圖合成算法中,移動向量可以根據(jù)深度快速計算得到。已知參考相機(jī)的內(nèi)外參矩陣Mr以及虛擬相機(jī)的內(nèi)外參矩陣Mv,可通過公式(3)計算得到參考圖像的點(diǎn)q投影到虛擬圖像上點(diǎn)p' 的對應(yīng)位置:

        然后利用公式(4)得到每個像素映射的移動向量,得到一張移動向量圖。

        根據(jù)公式(2)的對應(yīng)關(guān)系,我們可以構(gòu)建不動點(diǎn)迭代關(guān)系式:

        其中,在逆向映射過程中,p為已知信息,表示虛擬視圖的每個像素位置。V(qi)為qi位置處對應(yīng)的移動向量。w(qi)表示一次迭代后的結(jié)果,將該結(jié)果賦值給qi+1進(jìn)行進(jìn)一步的迭代。

        圖像迭代過程中,前一次迭代結(jié)果qi-1與當(dāng)前迭代結(jié)果qi之間的距離小于一個像素大小時,迭代可看作收斂。當(dāng)?shù)諗繒r,可通過得到的迭代結(jié)果采樣得到對應(yīng)的顏色值。

        圖3 不動點(diǎn)迭代示意圖

        2.3 局部包圍盒策略

        在進(jìn)行虛擬視圖合成時,會出現(xiàn)重疊現(xiàn)象,即在本文算法中,公式(5)可能存在多個迭代收斂的結(jié)果。引起該問題的主要因素是初始點(diǎn)的選擇。針對此問題,本文采取選擇多個初始點(diǎn)進(jìn)行迭代的策略:當(dāng)多個初始點(diǎn)進(jìn)行迭代時,若存在多個收斂結(jié)果,則對比每個迭代收斂結(jié)果的深度,選擇深度最小的點(diǎn)作為最終的采樣結(jié)果,從而避免重疊現(xiàn)象。

        當(dāng)增加選擇的初始點(diǎn)數(shù)目時,圖像質(zhì)量提升,但是同時增加了計算開銷,導(dǎo)致性能降低。為了降低開銷,增加系統(tǒng)的運(yùn)行效率,本文采用局部包圍盒策略對初始點(diǎn)的選擇范圍做了進(jìn)一步縮小,能夠在保證收斂的情況下,減少初始點(diǎn)的選擇數(shù)目。

        局部包圍盒策略采用的主要思想是利用移動向量在局部的最大值,構(gòu)成矩形包圍盒,由于采用的是最大值,所以在該包圍盒中一定存在收斂的點(diǎn),從而保證了迭代收斂。如圖4 所示,具體步驟如下:當(dāng)計算移動向量時,同時計算該移動向量沿著圖像坐標(biāo)系X-Y 的分量。若當(dāng)前分量大于局部區(qū)域存儲的最大分量,則將其進(jìn)行替換。最終劃分的每個區(qū)域都會存儲最大的局部包圍盒,在該包圍盒下進(jìn)行初始點(diǎn)的選擇,能夠減少計算開銷。

        圖4 局部包圍盒示意圖

        3 算法流程

        本文算法通過C++與OpenGL 進(jìn)行計算與繪制。算法流程如圖5 所示,首先通過計算著色器將參考圖像的每個像素根據(jù)深度重投影到虛擬視圖上,計算像素的移動向量以及對應(yīng)的局部包圍盒,并通過可寫入的Image2D 圖像紋理進(jìn)行存儲。之后再利用計算著色器進(jìn)行第二遍并行計算,讀取局部包圍盒的數(shù)據(jù),隨機(jī)初始化N個點(diǎn),進(jìn)行迭代計算,當(dāng)?shù)螖?shù)大于規(guī)定次數(shù)時,迭代不收斂,舍棄結(jié)果。當(dāng)?shù)諗繒r,將其存入到候選點(diǎn)集中,最后通過對投影的深度進(jìn)行排序,選擇最小的深度作為最終的采樣坐標(biāo)進(jìn)行采樣。通過前兩遍的計算著色器已經(jīng)能夠得到最終合成的圖像了,第三遍為繪制渲染,通過渲染屏幕大小的一張二維網(wǎng)格并對其著色,最終呈現(xiàn)出合成的圖像。由于本文采用的是兩個參考視點(diǎn)進(jìn)行虛擬視點(diǎn)的合成,最終合成的圖像空洞信息較少,但是依然不能避免空洞的出現(xiàn)。本文在渲染繪制遍時對這些較少的空洞進(jìn)行修復(fù),主要利用已知的深度信息進(jìn)行前景與背景物體的識別,利用背景物體的顏色進(jìn)行填充能夠得到較好的結(jié)果。

        圖5 算法流程圖

        4 實(shí)驗(yàn)結(jié)果

        本節(jié)的實(shí)驗(yàn)設(shè)備信息如表1 所示。

        表1 實(shí)驗(yàn)設(shè)備信息表

        圖6 展示了本次算法輸入的兩張參考圖像以及對應(yīng)的深度圖像。

        圖6 輸入的左右參考圖像與深度圖像

        圖7展示了基于原子的DIBR 算法、本文基于迭代的DIBR 算法以及Ground Truth 參照圖,其中基于原子的DIBR 算法出現(xiàn)了明顯的失真情況,造成該失真情況的主要原因是投影時取整造成的裂紋被背景物體填充。本文利用峰值信噪比PSNR 以及結(jié)構(gòu)相似性SSIM進(jìn)行測試,結(jié)果如表2 所示。

        圖7 實(shí)驗(yàn)結(jié)果對比

        表2 實(shí)驗(yàn)設(shè)備信息表

        5 結(jié)語

        本文給出了基于迭代的DIBR 算法的基本思想,并利用C++與OpenGL 實(shí)現(xiàn)并行計算架構(gòu)。該算法比基于原子的DIBR 算法在PSNR 和SSIM 上有一定提升。但是本文算法需要進(jìn)行額外的移動向量計算以及多個初始化迭代點(diǎn)的選擇,當(dāng)?shù)c(diǎn)數(shù)目增多時需要的時間代價十分昂貴。在后續(xù)的研究中,會針對初始點(diǎn)的選擇進(jìn)行進(jìn)一步優(yōu)化,減少初始點(diǎn)的選擇數(shù)目以提升算法的運(yùn)行效率。

        猜你喜歡
        不動點(diǎn)視點(diǎn)空洞
        一類抽象二元非線性算子的不動點(diǎn)的存在性與唯一性
        活用“不動點(diǎn)”解決幾類數(shù)學(xué)問題
        空洞的眼神
        視點(diǎn)
        河南電力(2016年5期)2016-02-06 02:11:24
        用事實(shí)說話勝過空洞的說教——以教育類報道為例
        新聞傳播(2015年20期)2015-07-18 11:06:46
        讓你每天一元錢,物超所值——《今日視點(diǎn)—2014精萃》序
        新聞前哨(2015年2期)2015-03-11 19:29:22
        不動點(diǎn)集HP1(2m)∪HP2(2m)∪HP(2n+1) 的對合
        兩會視點(diǎn)
        中國水利(2015年5期)2015-02-28 15:12:40
        一類非錐映射減算子的不動點(diǎn)定理及應(yīng)用
        臭氧層空洞也是幫兇
        中文字幕色av一区二区三区| 一级午夜理论片日本中文在线| 国产精品一区二区久久蜜桃| 日韩人妻熟女中文字幕a美景之屋| 婷婷中文字幕综合在线| 亚洲国产午夜精品乱码| 精品女同一区二区三区免费播放| 中文字幕亚洲乱码熟女1区| 亚洲人成77777在线播放网站 | 欧洲女人性开放免费网站| 精品国产群3p在线观看| 日本高清二区视频久二区| 日本高清一级二级三级| 无码av无码天堂资源网| 亚洲VA不卡一区| 亚洲五码av在线观看| 国产精品国产三级国产av剧情| 不卡高清av手机在线观看| 99re6久精品国产首页| 成人自拍偷拍视频在线观看| av国产传媒精品免费| 久久国产精品久久精品国产| 国产人成视频免费在线观看| 人妻少妇精品视频一区二区三区l| 国产网红主播无码精品| 国产亚洲欧美日韩综合综合二区 | 国产91在线精品观看| 亚洲国产成人av毛片大全| 永久亚洲成a人片777777| 免费做爰猛烈吃奶摸视频在线观看| 太大太粗太爽免费视频| 亚洲国产精品区在线观看| 国产女人水真多18毛片18精品| 免费在线视频一区| 人妻露脸国语对白字幕| 国产aⅴ无码专区亚洲av| 国产精品免费久久久久影院| 人妻丝袜中文字幕久久| 国产农村妇女精品一区| 又白又嫩毛又多15p| 亚洲国产精品综合福利专区|