楊依忠, 馬 蘢, 徐逸琛, 張 強
(合肥工業(yè)大學 電子科學與應用物理學院,安徽 合肥 230009)
一種適用于多種場景的深度圖提取算法
楊依忠, 馬 蘢, 徐逸琛, 張 強
(合肥工業(yè)大學 電子科學與應用物理學院,安徽 合肥 230009)
文章提出了一種自動的深度圖提取算法。將圖片分為消失線型、上下結(jié)構(gòu)型和左右結(jié)構(gòu)型3類,采取不同的算法分別進行深度估計,為了使得圖像中同一物體的深度信息保持一致,運用K-means進行圖像分割,提出了一種新穎的估算每個像素點深度值的算法,使得深度信息的層次不再局限于K-means中K的取值;采用了雙邊濾波的方法對得到的深度圖進行去噪,在去噪的同時保證了圖像的邊緣輪廓。實驗結(jié)果表明,該算法適用性廣泛,在3D效果和耗時方面也表現(xiàn)出優(yōu)良的性能,適合于實時的2D視頻轉(zhuǎn)3D視頻。
2D視頻轉(zhuǎn)3D視頻;深度圖;分類;相對高度;K-means
3D圖像是一種能夠給人們提供立體視覺感的視頻圖像。隨著3D電影和3D電子消費終端產(chǎn)品的不斷發(fā)展,民用終端廠商也逐漸開始研發(fā)家用的3D電視。但是,限制3D產(chǎn)品發(fā)展的一個重要因素是3D視頻源的極度缺乏。
2D視頻的資源非常豐富,如果能實現(xiàn)2D到3D的轉(zhuǎn)變,那么對3D技術(shù)的應用至關(guān)重要。2D圖像和3D圖像的一個重要差別是3D圖像中包含了能夠表達圖像中遠近距離關(guān)系的深度信息。因此,深度信息對于2D轉(zhuǎn)3D技術(shù)來說至關(guān)重要。文獻[1]提出了運用2幅不同的圖像,從不同的視角來生成深度圖,但是這種方法需要立體式的專業(yè)攝像機同時在不同角度來拍攝視頻。為了降低成本和時間的消耗,許多算法(如圖像分類[2-4]、相對高度線性檢索[5]、消失線檢測[6]、K-means圖像分割[7-8]、運動檢測[9-10]以及半自動生成法[11-12]等)運用現(xiàn)有的2D圖像視頻源來生成深度信息,再轉(zhuǎn)化為3D圖像視頻。
圖像分類算法先把圖像分為擁有消失線和沒有消失線2種類型,這種算法對于特寫類型的圖像處理效果不好。相對高度線性檢索算法[5]提出了運用線性檢測的方法來分割圖像中不同的物體,并根據(jù)高度信息來估計其深度信息;然而這種算法對圖像中從左到右方向上的線性輪廓特性非常嚴苛,且對輪廓不分明的圖像處理得到的深度信息不夠準確。消失線檢測算法對于透視特性明顯的圖片一般能獲得較好的效果,而對于透視效果不明顯的圖片則不能使用該種算法。K-means圖像分割算法能將圖像分割為幾個不同的部分,文獻[7-8]中K的取值為2,即分割的結(jié)果為2類;該算法對于只分前、后景的圖像能獲得很好的效果,但對于場景豐富的圖像,僅僅分為2類是不符合實際的。運動檢測算法的核心思想是速度較慢的運動物體一般離攝像機遠,而速度較快的運動物體一般離攝像機較近,據(jù)此來模擬圖像的深度信息;這種算法依賴于運動的視頻圖像,需要比較前后幾幀圖像來得到結(jié)論,而且依賴運動速度來估計深度的算法也存在一定的誤差。半自動算法雖然其深度的準確度相對較高,但由于需要人為地對圖像的深度信息進行修飾,工作量巨大,需要很大的人力。
為了得到一種適用范圍更廣同時更簡潔的算法,本文提出了一種基于K-means圖像分割的深度圖提取方法。先根據(jù)K-means分割把屬于同一類型的像素點分為一類;然后,對于每個像素點的深度信息,根據(jù)其周圍的深度信息及其在圖像中的位置來估計和賦值。這樣就很好地解決了K-means分割后深度信息的種類只取決于K值的問題。
圖像的種類繁多,不同類別的圖像對應不同的深度圖特點。因此,本文根據(jù)圖像屬性判別其屬于哪種類型,然后運用K-means把圖像中屬于同一類的像素點分為一類,再根據(jù)K-means分類的結(jié)果,對每個像素點的深度進行賦值。
1.1 預處理
1.1.1 分類
通過對許多圖像數(shù)據(jù)以及文獻的分析發(fā)現(xiàn),大量的圖片都可以分為消失線型、上下結(jié)構(gòu)型和左右結(jié)構(gòu)型3類,任何一種情形圖像的深度信息特點都是不相同的。
因此,根據(jù)不同的圖像,先得到不同的初始深度圖像,再根據(jù)本文提出的算法來進一步估算其對應的深度圖。如果屬于混合型的圖片,消失線型圖片的優(yōu)先級別高,如果屬于消失線型,則按照消失線型類別進行處理。
(1) 消失線型。首先,應用sobel算子對圖像進行消失線以及消失點的檢測,sobel算子橫向和縱向的計算矩陣如圖1所示。
圖1 sobel算子橫向和縱向的計算矩陣
(1)
其中,Gx、Gy分別為橫向和縱向亮度差分近似值。
為了得到消失線以及消失點,應用以下算法來代替?zhèn)鹘y(tǒng)的Hough變換[13]。簡化的Hough變換算法為:
(2)
其中,x、y為圖像中像素點的坐標;ρ為對應的坐標點到原點的距離;θ為x軸與直線垂線的角度。通過(2)式把能檢測任意角度直線的傳統(tǒng)Hough變換,轉(zhuǎn)化為只檢測水平和豎直方向的直線。如果檢測到的消失點有多個,計算這幾個消失點的中心位置并作為最終的消失點。根據(jù)消失點的位置再逐步估計其他各像素點的深度值。消失線型初始化深度圖計算方法如圖2所示。
圖2 消失線型初始化深度圖計算方法
以0代表距離最遠的像素點(背景),255代表距離較近的像素點(前景),消失線型初始化深度圖像具體的計算公式[14]如下:
(3)
其中,x、y為圖像中各像素點的坐標;xVP、yVP為消失點的坐標;H、L分別為圖像的高和寬。
對于既有橫向直線又有豎向直線的情況,如果豎向直線偏向于左邊就把圖像左上部分設(shè)為最遠的部分,即深度值為0,如果偏向于右邊就把右上半部分設(shè)為0。
(2) 上下結(jié)構(gòu)型。對于上下型圖片,根據(jù)一般性規(guī)律可知,圖像下邊的物體對應的深度值大(物體距離比較近,前景),而圖像上邊的物體對應的深度值小(物體距離較遠,后景)。上下型圖片的初始化深度圖計算方法如圖3所示。對于該種圖像,其初始化深度圖像的計算公式為:
(4)
圖3 上下型圖片的初始化深度圖計算方法
(3) 左右結(jié)構(gòu)型。根據(jù)圖像的特點來估計圖像的初始化深度值。從左到右深度值逐漸變高的情況如圖4a所示,從右到左深度值逐漸變高的情況,如圖4b所示。2種情況的計算方法分別為:
initial depth(x,:)=255(x/H)
(5)
initial depth(x,:)=255[(H-x)/H]
(6)
圖4 左右型圖片的初始化深度圖計算方法
通過以上過程,得到各類不同圖像的初始化深度圖,再對其進行完整的深度圖估算。本文深度圖提取算法的流程如圖5所示。
圖5 本文深度圖提取算法流程
1.1.2 K-means 分割
對于深度信息豐富的圖像,利用K-means分割把圖像中的物體分為2類有很大的局限性,且易導致把實際深度差別很大的物體因灰度相近而被賦予相同深度值的錯誤。通過實驗發(fā)現(xiàn),K取4時可以得到相對較好的實驗結(jié)果,因此在K-means圖像分割時取K值為4。因為該算法在結(jié)合K-means圖像分割結(jié)果的基礎(chǔ)上還要參考像素點周圍的初始深度信息來得到最終的深度值,所以最終的深度信息種類不局限于4類。K-means圖像分割過程如下:
(1) 與傳統(tǒng)K-means分割隨機選取初始點不同,本文采用自設(shè)定初始點。先找到圖像灰度直方圖中所有的波峰點,然后把其中最大的4個波峰對應的灰度值記為G1、G2、G3、G4,并作為4個初始點。這樣設(shè)置是由于最終的聚類中心值與分布廣的灰度值相近,可以減少尋找最終聚類中心時的循環(huán)次數(shù)。
(2) 將其他與初始中心灰度差值最小的像素點和對應的初始聚類點分為一類,即
‖X(i)-uj‖
(7)
其中,Ci為分類的結(jié)果;X(i)為每個像素點的灰度值;uj為聚類中心點。
(3) 通過計算得到每個新的組的聚類中心點,將得到的結(jié)果替換原始聚類中心,作為新的聚類中心點,即
(8)
(4) 把其他像素點和新聚類中心的灰度值差值最小的像素點分為一類。重復步驟(3)和步驟(4),直到所得的新聚類中心不再變化為止。
與文獻[8]相比,本文采用了優(yōu)化初始聚類中心的K-means圖像分割,將K值從2變成4,同時對每個像素點的深度值賦值也有所改進。
1.2 深度圖的生成
基于3大類型的分類結(jié)果,從圖像的第2行第2列開始逐步計算各個像素點的深度值。
通過K-means分割后,一幅圖像的像素點被分為4個部分。首先判斷目標像素點以上相鄰的3個元素是否與目標元素屬于同一部分,如果成立,將計算該3個元素深度值的均值,并把結(jié)果賦予目標元素作為它的深度值。深度值的計算公式如下:
d(i,j)=[C1d(i-1,j-1)+C2d(i-1,j)+
C3d(i-1,j+1)]/(C1+C2+C3),
C1+C2+C3≠0
(9)
其中,C(i,j)為根據(jù)K-means分割后坐標點(i,j)處的分類結(jié)果;d(i,j)為圖像中各個像素點的深度值。
如果以上條件不滿足,將檢測目標元素左邊的像素點,若其和目標元素屬于同一部分,則目標元素的深度值和其左邊像素的深度值相等。其計算表達式為:
d(i,j)=d(i,j-1),C(i,j)=C(i,j-1)
(10)
如果以上2個條件均不滿足,但是目標元素及其右邊的元素是同一部分,繼續(xù)向右邊檢測10個像素點,直到遇到本行像素點正上方的元素和目標元素屬于同一部分,同時把上一行與目標元素屬于同一類的元素的深度值賦為目標元素。此步驟的示意圖如圖6a所示,其計算表達式如下:
d(i,j)=d(i-1,j+X),C(i,j)=C(i,j+1)=…=C(i,j+X)=C(i-1,j+X),x≤10
(11)
如果以上條件都不滿足,將檢測目標元素以下的3個像素點,并判斷其是否與目標元素屬于同一部分。如果成立,將繼續(xù)檢測其下面的像素點,直到所檢測的3個像素點都不與目標元素屬于同一部分為止,并把這3個像素點所在列記為I,然后把目標元素的深度值賦為255I/m;否則,把該位置的初始深度值賦給目標元素。此步驟的示意圖如圖6b所示。其計算表達式如下:
d(i,j)=255I/m,ni+1ni+2ni+3…nI=1;
(12)
如果以上條件都不滿足,即該像素點與周圍的像素點都不屬于一類,那么該處的像素點深度值賦值如下:
d(i,j)=initial depth(i,j)
(13)
圖6 深度圖提取示意圖
最后,應用以上方法并按照從左至右、從上至下的順序來計算所有像素點的深度值。至此完成深度圖的提取。
1.3 后處理
在生成深度圖后,本文算法將通過雙邊濾波[15]的方法來改善初始深度圖,加強邊緣信息。雙邊濾波是非線性濾波,能夠在保持其邊緣信息的基礎(chǔ)上消除噪聲。雙邊濾波類似高斯濾波,但是其不僅考慮了周圍像素點的空間位置關(guān)系,還考慮了灰度信息相似度的因素,以保持其良好的邊緣信息。
本文分別將K-means分割和相對高度線性檢索算法與本文算法的實驗結(jié)果進行對比。選擇People(278×432)、Statue(564×738)、Stone(562×670)3幅圖片,對應3種不同的類型進行驗證。所有的實驗都在同一環(huán)境和平臺下完成,3種算法得到的深度圖如圖7所示,基于該深度圖得到的3D效果圖如圖8所示。
由圖7可以看出,文獻[8]算法運用K-means圖像分割的方法只能分出前景和后景,其深度信息不準確,尤其是對于如Statue這樣場景豐富的圖片。文獻[5]的線性追蹤算法雖然得到的結(jié)果相對較好,但是因其對圖片的輪廓性要求很高,對于輪廓不明顯的圖片容易出現(xiàn)錯誤,如Statue的天空部分出現(xiàn)明顯的錯誤深度信息;同時,文獻[5]算法對于左右型圖片的處理效果也不理想,如Stone圖片左右深度值差別很大,而用線性檢測法得到的深度圖深度梯度差只表現(xiàn)在上下結(jié)構(gòu)上。
圖7 3種算法得到的深度圖圖8 3種算法得到的3D效果圖
圖8展示的最終3D立體圖像是通過DIBR[16](depth image based rendering)合成的。通過戴上紅藍3D眼睛,讓30位觀眾分別觀看3種算法得到的3D效果圖,并對其打分(0~10)。3種算法的3D效果評估以及所用時間見表1所列。由表1可以看出,本文算法所得到的結(jié)果得分最高,尤其相對于文獻[8]算法來說優(yōu)勢明顯;從需要時間上看,本文算法所需要的時間最少,只有文獻[5]算法的幾十分之一。
表1 3種算法的3D效果評估以及所用時間
本文提出了一種新穎的基于K-means圖像分割的深度信息估計算法。為了得到比較準確的結(jié)果,該算法先確定圖片的類型(消失線型、上下型、左右型),然后用K-means圖像分割算法把圖像進行分割,分割后再根據(jù)每個像素點周圍的深度值以及位置關(guān)系來確定最終的深度信息。該算法估計的深度信息比單純運用K-means算法的更為準確,得到的深度圖也相對更為準確,而且適用的場景更為廣泛,同時簡易、耗時少,適合于做實時的2D轉(zhuǎn)3D相關(guān)設(shè)備。
[1] 鄭華東,于瀛潔,程維明.三維立體顯示技術(shù)研究新進展[J].光學技術(shù),2008,34(3):426-430,434.
[2] BATTIATO S,CURTI S,CASCIA M L,et al.Depth map generation by image classification[J].Proceedings of SPIE:The International Society for Optical Engineering,2004,5302:95-104.
[3] BATTIATO S,CAPRA A,CURTI S,et al.3D stereoscopic image Pairs by depth-map generation[C]//Proceedings of the 3D Data Processing,Visualization,and Transmission,2nd International Symposium.[S.l.]:IEEE Computer Society,2004:124-131.
[4] GUAN Y D,YU B L,TI C L,et al.A 2D to 3D conversion method based on support vector machine and image classification[C]//2014 International Conference on Machine Learning and Cybernetics.[S.l.]:IEEE,2015:88-93.
[5] JUNG Y J,BAIK A,KIM J,et al.A novel 2D-to-3D conversion technique based on relative height-depth cue[C]//Proceedings of the SPIE.[S.l.]:International Society for Optics and Photonics,2009:72371U-72371U-8.
[6] CHIEN C A,CHANG C Y,LEE J S,et al.Low complexity 3D depth map generation for stereo applications[C]//International Conference on Consumer Electronics.[S.l.]:IEEE,2011:185-186.
[7] MENG S,JIANG H.A novel depth map generation method based onK-means clustering[C]//4th International Conference on Digital Home.[S.l.]:IEEE,2012:28-32.
[8] JIANG H,GUO S X,MENG S,et al.A novel depth map generation method based onK-means clustering and depth pattern recognition[C]//International Conference on Internet of Things and 4th International Conference on Cyber,Physical and Social Computing.[S.l.]:IEEE,2011:638-643.
[9] WANG H,YANG Y,ZHANG L,et al.2D-to-3D conversion based on depth-from-motion[C]//International Conference on Mechatronic Science,Electric Engineering and Computer.[S.l.]:IEEE,2011:1892-1895.
[10] 陳鍇.基于運動矢量提取二維視頻序列深度信息算法的研究[J].電子設(shè)計工程,2013,21(12):111-113.
[11] WU C,ER G,XIE X,et al.A novel method for semi-automatic 2D to 3D video conversion[C]//3DTV Conference:The True Vision-Capture,Transmission and Display of 3D Video.[S.l.]:IEEE,2008:65-68.
[12] GUTTMANN M,WOLF L,COHEN-OR D.Semi-automatic stereo extraction from video footage[C]//International Conference on Computer Vision.[S.l.]:IEEE,2009:136-142.
[13] SONG M,TAO D,CHEN C,et al.Color to gray:visual cue preservation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2010,32(9):1537-1552.
[14] LAI Y K,LAI Y F,CHEN Y C.An effective hybrid depth-generation algorithm for 2D-to-3D conversion in 3D displays[J].Journal of Display Technology,2013,9(3):154-161.
[15] 張海榮,檀結(jié)慶.改進的雙邊濾波算法[J].合肥工業(yè)大學學報(自然科學版),2014,37(9):1059-1062.
[16] FEHN C.Depth-image-based rendering (DIBR),compression,and transmission for a new approach on 3D-TV[C]//Proceedings of SPIE.[S.l.]:The International Society for Optical Engineering,2004:93-104.
A3Ddepthmapgenerationmethodformultiplescenes
YANG Yizhong, MA Long, XU Yichen, ZHANG Qiang
(School of Electronic Science and Applied Physics, Hefei University of Technology, Hefei 230009, China)
A 3D image depth map generation algorithm for automatic 2D-3D conversion is presented. The images are first classified into three types, including vanishing line type, top-down type and right-left type, and then the depth is calculated according to different methods. The proposed algorithm generates the depth information based on theK-means segmentation to make sure that the same object is with the same depth value. In addition, a novel method to calculate depth value of every pixel depending on the pixels around it is presented. So the depth information levels are not limited by theKvalue inK-means. After the depth map generation, a bilateral filter for depth map smoothing and noise removal is adopted. The image edges can be retained while denoising. The experimental result shows that the algorithm is suitable for many kinds of images and achieves a comparatively better effect with less execution time, which means that it is suitable for 2D-3D conversion in 3D displays.
2D-3D conversion; depth map; classification; relative height;K-means
2016-01-28;
2016-03-28
合肥工業(yè)大學科學研究發(fā)展基金資助項目(J2014HGXJ0083)
楊依忠(1975-),男,安徽合肥人,合肥工業(yè)大學副教授,碩士生導師.
10.3969/j.issn.1003-5060.2017.09.014
TP391.41
A
1003-5060(2017)09-1220-06
(責任編輯 胡亞敏)