王偉
(四川大學計算機學院,成都610065)
調查顯示,人們獲取的外界信息80%以上要靠視覺。由于肉眼對于高分辨率圖像的感知能力有限,人們的關注點逐漸從清晰度轉為了對場景立體感、互動感和沉浸感的追求。隨著社會生產力和科技的不斷發展,虛擬現實設備和準確的實時視點跟蹤傳感器使新型的沉浸式觀看體驗成為了可能,允許用戶從任意角度交互式觀察動態場景。從而造就了如自由視點視頻、全景視頻等新型視頻技術[1]。盡管通常在拍攝中會部署多相機系統,但用戶可能會選擇未安裝物理攝像機的視點,另外由于帶寬以及設備的限制,在這些情況下,需要對視圖進行合成。
基于深度圖像的渲染(Depth Image Based Rendering,DIBR)是廣泛用于視圖合成問題的一種方法[2]。標準DIBR 算法從參考視點對紋理和深度信息執行3D Warping 以合成新視圖,然后應用各種圖像修復技術來處理由于遮擋問題造成的新視圖中的空洞。這些丟失的像素在任何輸入圖像中都是不可見的,因此以視覺上可接受的方式恢復像素是一項很具有挑戰性的任務。
本文提出的算法流程圖如下,首先使用3D Warping 分別從兩幅參考視圖各分別生成一幅彩色中間圖像和深度中間圖像。為了解決偽影問題,處理在參考深度圖中處于顯著邊緣的像素。然后將左右中間結果合并在一起。使用一種基于凝聚式層次聚類的遮擋填充技術來填補合成過程中造成的空洞。對于每個被遮擋的區域,其相鄰像素根據深度分布被聚類為一個簇。每個簇均被視為一個深度平面。被遮擋的區域一般可認為是最遠深度平面的一部分,使用該平面中的有效像素進行像素值恢復。首先填充深度圖中的空洞,并以此來協助彩色圖像的修復。本文提出的算法在Middlebury 數據集上獲得了不錯的結果。
長期以來,虛擬視點合成一直是一個活躍的研究領域。文獻[3]是相關技術的全面綜述。一種常見的方法是使用基于模型的渲染[45],該方法通常需要使用多邊形網格來構建3D 場景模型。另一種主流方法是DIBR,它避免了顯式建模步驟并將其替換為3D Warping過程。Zinger 等人提出了一種標準的DIBR 流程[6]。McMillan 等人首次提出利用單視點的3D Warping 方程繪制虛擬視點圖像的方法[7],利用一個參考視點圖像所在位置的攝像機參數以及相對應的深度信息繪制虛擬視點圖像,極大地降低了繪制虛擬視點圖像的復雜。由于視點由一個參考視點變換到虛擬視點位置時,一部分場景在虛擬視點中可見而在參考視點中不可見,從而導致大量的像素信息缺失,使得這些空洞區域很難去填補。于是Domanski 等人提出從多個參考視點圖像獲得更多的虛擬視點信息[8],繪制同一虛擬視點的多個圖像,然后對多個圖像進行融合,空洞問題得到了改善。但是由于對于融合方式上的處理存在一定的問題,因此視覺效果還有待改善。在基于深度圖像的虛擬視點繪制過程中,深度信息的完整性和精度直接影響著虛擬視點圖像的繪制質量,而且在經過3D Warping 以后,深度圖像的尖銳部分也可能會產生空洞。因此,在繪制虛擬視點之前,應先預處理參考視點的深度圖像。目前深度圖像預處理方法多采用平滑深度圖像的方式。Fehn 提出采用高斯濾波器進行全圖像濾波[2],空洞問題得到了有效地解決,但繪制圖像會產生明顯失真。Daribo 等人[9]提出邊緣距離自適應的平滑濾波方法,該方法比直接濾波效果要高效,但也不能完全避免濾波帶來的弊端。基于人眼對水平方向上的失真更加敏感的考慮,Wang 等人在文獻[10]提出采用非對稱邊緣自適應濾波方法,這類方法既可以減少空洞數量,也可以去除圖像中的塊效應和噪聲,但由于改變了深度圖像中物體的深度,導致繪制的圖像存在不同程度上的幾何失真。汪敬媛在文獻[11]提出一種新的深度圖像預處理方法,該方法在處理深度圖像的同時很好地保留了深度圖像的邊緣信息,但是由于增加了大量的比較操作,提高了時間復雜度。Mori 等人[12]通過引入異步生成機制、邊界膨脹和空洞互補填充等技術使生成的虛擬視點圖像達到了較好的質量,成為DIBR 的參考方法。Ndjiki-Nya 等人[13]在Mori 算法的基礎上,通過引入先進的圖像修復技術使DIBR 的效果得到了進一步提高。Jain 等人[14]提出了一種效率為主的基于最小性能損失的實時繪制算法。
本文指出了DIBR 中的一些主要挑戰,例如處理不可靠的深度估計和遮擋填充。對于由不可靠的深度估計引起的偽影,文獻[15-16]使用分層表示來標記邊緣像素的可靠性,各個層分別變換,然后合并在一起,在[17]中提供了主流遮擋填充方法及其性能比較。文獻[18-19]使用深度信息來輔助遮擋修復過程。Tran 等人在文獻[20]中針對恢復不可靠和被遮擋的像素,利用晶格結構的條件隨機場和圖割最小優化對其進行了改進。
本文提出的算法包括4 個主要步驟:3D Warping、偽影去除、中間圖像融合、空洞填充。
文獻[21]提出了通用的3D Warping 公式,假定左右參考視圖經過校正,虛擬視點位置位于基線上。左和右攝像機分別沿著歸一化基線在位置0 和1 處,虛擬攝像機位于位置α,0<α<1。對于左視圖和右視圖,通過按α 或1-α 縮放的視差比例來水平移動參考視圖像素位置。針對X*Y 大小的參考視圖IL和IR,dL和dR為參考視圖對應視差圖。通過以下公式生成候選圖像TL和TR,DL和DR為TL和TR對應的合成的中間深度圖。圖1 為Middlebury 數據集中Moebius 彩色圖和對應的視差圖。

r 代表行數,n 代表列數。 fL、fR、b 別為左右相機焦距和基線長度。 針對非整數列映射點(r,n'),n'?Z,合成兩個位置降低裂縫效應。多個像素映射到同一個像素點時,保留深度最小,即視差最大的像素。

圖1 Moebius彩色圖和對應的視差圖
深度圖像中的邊緣通常比較尖銳,伴隨有突變,而彩色圖像中的對應部分會有過渡寬度。如果處理不當,深度為背景但被前景色污染的邊緣像素將導致偽影(見圖2)。對參考深度圖應用Canny 邊緣算子[16]來檢測兩個參考視圖中的顯著邊緣。利用形態學膨脹檢測到的邊緣,對膨脹后的該像素區域區分背景和前景。對TL和TR中從膨脹區域背景中的邊緣像素3D Warping 變換來的對應像素應用中值濾波。

圖2 未處理偽影的最終合成圖像
通過比較合成的視差圖來線性加權融合候選圖像TL和TR生成中間視圖It,Dt。TL和TR中均可見的像素,保留深度更小的。因為深度越小越接近相機,容易遮擋遠處物體。只存在于一個候選圖像中的像素,代表著像素在另一幅候選圖像中被遮擋。直接采用該像素值。兩幅候選圖像中都不可見的像素,使用后面的空洞填充算法解決。融合后的圖像可見圖3。

圖3 融合生成的中間圖像及空洞
It,Dt中的空洞可能是由兩個主要原因引起的。一是參考圖像中的采樣率不足,隨著視點的變化,與參考視點相比,物體占據的像素更多。另一個是遮擋,在新視圖中參考視圖中被遮擋的區域變為可見。空洞可能位于一個深度平面中間或多個深度平面的相交處。在第一種情況下,空洞為平面的一部分。在第二種情況下,該空洞很可能是被參考視點前景對象遮擋的背景的一部分。空洞可視為最遠的相鄰深度平面的一部分。
我們探索每個空洞周圍的相鄰像素的深度分布,以確定空洞周圍深度平面的數量。對于空洞Hi,我們基于深度值對其3 階相鄰像素(3 個像素)應用凝聚式層次聚類:如果兩個集群P,Q 滿足以下公式將被合并。

先合并最接近集群。當簇之間的相互距離都超過τd時,合并過程停止。每個簇被視為一個深度平面。
采用距Hi最遠的剩余簇C(Hi)中的像素填補空洞Hi。填充從選定像素的邊界處的像素開始,逐漸向空洞的其余區域傳播。對于空洞Hi中的像素x 使用中值濾波:


圖4 經深度圖空洞填充后的合成圖像空洞
彩色圖像空洞填充類似。代替中值濾波,使用雙邊濾波器[22]的變體來填補空洞。具體公式如下。

分母為歸一項。 ws是權重函數中的空間域高斯核,描述y 和x 之間的空間距離。

wi為權重函數中的像素值域高斯核,描述像素值域中的輻射差異(周圍像素與中心像素之間像素相似程度)。

wi能防止x 被通常代表其他對象的其他深度平面內的像素污染。針對填補的彩色圖像的邊緣中值濾波以平滑鋸齒狀偽影。圖5 顯示了最終的彩色輸出圖像。

圖5 最終彩色合成圖像
在Middlebury 立體數據集上評估了本文提出的算法。該數據集包含27 組多視圖圖像。每組都包括一對校正過的彩色圖像和視差圖。在表1 中,報告了提出的算法(α=0.5)和其他3 種最新算法在10 個測試圖上PSNR 和SSIM 得分。結果表明,提出的算法平均PSNR 為35.33dB,SSIM 為0.99。稍稍優于其他算法。
虛擬視圖合成是一種為自動立體多視圖顯示器生成內容的可行解決方案。對于某些應用程序以及包含更多視圖的未來顯示技術,合成視圖是必不可少的。另外在考慮多視圖圖像的數據傳輸時,從立體對中合成視圖也具有巨大優勢。本文提出了一個基于層次聚類的DIBR 算法框架,用于視圖合成任務中的最具挑戰性的遮擋填充問題。所提出的算法在Middlebury 數據集上進行了測試。評估結果表明算法取得了較好的結果。這項工作還有許多可能的擴展。當前,正在考慮增加視圖一致性約束。

表1 本文算法和三種最新方法的PSNR 和SSIM 比較表