一種從視頻相近幀中生成視差圖的方法
2023-08-13 03:03:01
專利名稱:一種從視頻相近幀中生成視差圖的方法
技術領域:
本發明涉及一種從視頻相近幀中生成視差圖的方法,尤其是一種面向雙目及多視點立體應用的從視頻相近幀中生成視差圖的方法。
背景技術:
視差(Disparity)視差在人類進行立體感知中扮演著重要的角色。從歐幾裡德時期開始,人們就認識到,人類之所以能夠進行立體感知,主要是因為左右眼所看到的圖像有差異,對這種差異進行量化稱為視差。
視差圖(Disparity Image/Map)視差圖中的每個點的像素值代表著源圖上對應位置像素點的視差值。
深度(Depth)某物體的深度是指物體到攝像機成像平面的距離。深度與視差成反比,因此與視差在本質上是一致的,很多時候也經常混用,但深度不等於視差。
深度圖(Depth Image/Map)深度圖中的每個點的像素值代表著源圖上對應位置像素點的深度值。
視差空間圖像(Disparity Space Image,DSI)給定左右視點灰度圖像Il,Ir,假定它們均經過校正(Rectification),並且在不考慮遮擋的情況下兩圖像中像素一一對應。在只考慮水平視差的情況下,針對任意視差d,採用平方差(Square Difference,SD)或絕對差(Absolute Difference,AD)方法計算得到的左視點視差空間圖像DSIl如下 所述SD方法計算公式為DSIl(x,y,d)=||Il(x,y)-Ir(x-d,y)||2 所述AD方法計算公式為DSIl(x,y,d)=||Il(x,y)-Ir(x-d,y)|| 其中,d均為正整數,1<d<W,W為待處理視頻的寬度;Il(x,y)為左視點圖像(x,y)處像素的灰度值;Ir(x,y)為右視點圖像(x,y)處像素的灰度值;DSIl(x,y,d)為視差為d時左視點圖像對應的視差空間圖像(x,y)處像素的灰度值。
在雙目立體(Stereoscopic)及多視點立體(Multi-view auto-stereoscopic)應用中,為實現虛擬視點圖像繪製,除光場渲染(Light Field Rendering,LFR)技術以及基於模型的渲染(Model-based Rendering,MBR)技術等等之外,大部分需要以視差/深度圖(Disparity/Depth Image)為中介,如基於視差/深度圖像的渲染技術(Disparity/Depth Image Based Rendering,DIBR)、基於視頻的渲染技術(Video Based Rendering,VBR)等等。
現有的視差圖生成技術根據輸入的不同大致可以分為兩類 1.基於雙目或多視點圖像/視頻; 2.基於單幅圖像或單視點視頻。
其中第1類技術以N個視點(N≥2)同步採集的圖像/視頻為輸入,然後根據外極約束、一致性約束、順序約束等一系列約束來進行雙目立體匹配(Stereo Matching)或多視點立體重建(Multi-View Stereo Reconstruction)來得到稠密的視差圖(Dense Disparity Image)。該方法具有較好的理論基礎,可以得到較為準確的結果。然而,就目前而言,多視點圖像/視頻資源仍然相當缺乏;另一方面,現有的絕大部分圖像和視頻均是通過單個相機拍攝的。因此,該方法在實際應用中具有很大的局限性。
第2類技術以單幅圖像或者單個視頻為輸入,根據圖像或者視頻中的信息來恢復出場景的三維結構,也稱2D轉3D技術。由於場景三維信息的缺失,該問題實際上是一個病態問題,一般很難求出其精確解。
基於單幅圖像的視差圖生成技術由於信息有限,在不經過人工幹預的情況下一般很難得到精確的結果。現有的技術主要根據一些預先設定的條件來進行推理,如聚焦法(Depth from Focus)、散焦法(Depth from Defocus)、線性透視(Linear Perspective)等等。這些方法對預設條件依賴性較高,在不滿足預設條件的場合,性能急劇下降。而實際場景千變萬化,大部分情況下這些預設條件並不適用。以聚焦法為例,該方法通過分析圖像的模糊度來推測其視差,而實際中拍攝的圖像的模糊往往不是很明顯,該方法很難奏效。
基於單視點視頻的視差圖生成技術不僅含有單幅圖像的紋理信息和結構信息,還含有視頻中幀與幀之間的運動信息,因此具有更高的可行性。典型的方法如幀移位法(Frame delay)、運動法(Structure From Motion,SFM)等等。
幀移位法的主要思想是用源視頻序列的運動場(Motion Field,MF)圖像來替代視差圖。在實際操作中並不求出視差圖,而是直接將源視頻序列延時一定的幀數從而得到新的視頻序列,從而實現虛擬視點圖像繪製。這種方法簡單易行,但是由於它沒有對場景的三維結構進行嚴格分析,因而適用性較差,效果並不理想。
SFM法首先假設源視頻序列中的運動為剛體運動,然後根據該運動情況來分析場景的三維結構以及攝像機的運動情況。甚至攝像機的參數。這種方法較之幀位移法更有說服力,能夠得到更加準確的結果,缺點是算法複雜,計算上非常耗時。
綜上所述,基於多視點圖像/視頻的視差圖生成技術應用受限;基於單幅圖像的視差圖生成技術依賴於預設條件和具體場景;基於單視點視頻的視差圖生成技術能夠克服二者的缺點,但現有的方法要麼過於簡單,難以保證效果;要麼過於複雜,計算上極為耗時。因此,為推廣雙目和多視點立體應用,急需一種簡單有效,計算量適中的基於單視點視頻的視差圖生成方法。
發明內容
本發明的目的是克服現有技術中存在的不足,如應用受限、依賴具體場景、難以保證效果和計算複雜等等,提供一種從視頻相近幀中生成視差圖的方法,可以快速有效地從普通單視點視頻中生成視差圖,結合基於視差圖的渲染技術,可以快速生成虛擬視點圖像,從而將現有大量平面視頻高效地轉換為立體視頻,緩解當前立體視頻片源極度缺乏的現狀。
按照本發明提供的技術方案,一種從視頻相近幀中生成視差圖的方法包括如下步驟 (1)檢查待處理視頻經過解碼後的每一幅圖像是否為灰度圖像,否則對所述每一幅圖像進行灰度化預處理,獲取每一幅圖像對應的灰度圖像; (2)計算視差空間圖像 除第N-k,N-k+1,...N幅灰度圖像外,計算每一幅灰度圖像對應的視差空間圖像,其中N為待處理視頻中所含圖像數目; 針對第i,i+k幅灰度圖像Gi,Gi+k以及任意視差d,採用SD或者AD方法計算第i幀的視差空間圖像DSIi 所述SD方法計算公式為DSIi(x,y,d)=||Gi(x,y)-Gi+k(x-d,y)||2 所述AD方法計算公式為DSIi(x,y,d)=||Gi(x,y)-Gi+k(x-d,y)|| 其中,i,k,d均為正整數,1<i<N-k,1<k<N,1<d<W,W為待處理視頻的寬度; (3)計算二維高斯卷積模板 根據二維高斯濾波公式計算(2w+1)×(2h+1)大小的二維高斯卷積模板g(x,y) -w≤x≤w,-h≤y≤h 其中w,h分別決定濾波窗口的寬和高,σu,σv分別決定水平和垂直方向上的濾波強度; (4)使用得到的二維高斯卷積模板對所述視差空間圖像進行二維高斯平滑濾波 將所述二維高斯卷積模板與視差空間圖像進行卷積,設卷積之前第i幅視差空間圖像DSIi中(x,y)處的像素值為DSIi(x,y),那麼進行二維高斯濾波之後該像素的值為 其中,w,h均為正整數並且W,H分別為待處理視頻的寬度和高度;進行二維高斯平滑濾波後所得圖像即為所求的第i幅圖像對應的視差圖。
所述灰度化預處理的灰度轉換公式為 Y=0.299R+0.587G+0.114B或 其中,Y代表圖像每個像素轉換後的灰度值,R,G,B分別代表圖像每個像素轉換前的R,G,B分量值。
本發明通過計算視差空間圖像來抽取圖像的紋理結構信息和運動信息,通過二維高斯濾波來對視差空間圖像進行高斯平滑,其優點如下 1.同時抽取場景的紋理結構信息和運動信息,即使在靜止的場景下也同樣有效。
2.通過對視差空間圖像的二維高斯濾波,減少虛擬視點繪製時遮擋區域的失真。
3.無需攝像機參數及校準校正等操作,整個過程全自動生成,方便應用。
4.計算量小,尤其符合一些硬體配置較低或者對速度要求較高的場合。
圖1為本發明所述方法的流程圖。
圖2為實施案例的流程圖。
具體實施例方式 下面結合附圖和實施例對本發明作進一步說明。
如圖1所示,本發明主要包括三個步驟 1.對待處理視頻的每一幅圖像進行灰度化預處理 2.利用得到的視頻中距離相近的灰度圖像來計算視差空間圖像 3.對視差空間圖像進行二維高斯平滑濾波以得到所求的視差圖像。
實施案例中,輸入為一段經過壓縮的彩色視頻序列,輸出為與源視頻中圖像對應的視差圖像序列,如圖2所示。具體處理步驟如下 步驟1)視頻文件讀取與視頻解碼 讀取待處理視頻文件,並利用DirectShow來對視頻進行如下處理智能構建濾波圖(filter graph);同時調用ffdshow視頻解碼器對視頻進行解碼;最終將待處理視頻數據處理為壓縮前視頻數據。
步驟2)灰度化預處理 利用下面的灰度化轉換公式對原始視頻進行灰度化預處理,獲取與原始視頻序列對應的灰度圖像序列。
Y=0.299R+0.587G+0.114B 步驟3)計算視差空間圖像(Disparity Space Image,DSI) 除第N-k,N-k+1,...N幅灰度圖像外,計算每一幅灰度圖像對應的視差空間圖像,其中N為待處理視頻中所含圖像數目; 針對第i,i+k幅灰度圖像Gi,Gi+k以及任意視差d,採用SD或者AD方法計算第i幀的視差空間圖像DSIi 所述SD方法計算公式為DSIi(x,y,d)=||Gi(x,y)-Gi+k(x-d,y)||2 所述AD方法計算公式為DSIi(x,y,d)=||Gi(x,y)-Gi+k(x-d,y)|| 其中,i,k,d均為正整數,1≤i≤N-k,1≤k≤N-1,1≤d≤W-1,W為待處理視頻的寬度,i初始值為1;Gi(x,y)為第i幅灰度圖像(x,y)處像素的灰度值;Gi+1(x,y)為第i+1幅灰度圖像(x,y)處像素的灰度值;DSIi(x,y,d)為視差為d時第i幅灰度圖像對應視差空間圖像(x,y)處的像素值。在本實施案例中,k取值為4,d取值為15。
步驟4)計算二維高斯卷積模板 根據二維高斯濾波公式計算(2w+1)×(2h+1)大小的二維高斯卷積模板g(x,y) -w≤x≤w,-h≤y≤h 其中w,h分別決定濾波窗口的寬和高,σu,σv分別決定水平和垂直方向上的濾波強度;在本實施案例中,w取值為10,h取值為20,σu取值為5,σv取值為10。
步驟5)使用得到的二維高斯卷積模板對所述視差空間圖像進行二維高斯平滑濾波 將所述二維高斯卷積模板與視差空間圖像進行卷積,設卷積之前視差為d時,第i幅視差空間圖像DSIi中(x,y)處的像素值為DSIi(x,y,d),那麼進行二維高斯濾波之後該像素的值為 其中,w,h均為正整數並且W,H分別為待處理視頻的寬度和高度;進行二維高斯平滑濾波後所得圖像即為所求的第i幅圖像對應的視差圖。
步驟6)若i=N-k,處理結束,得到所需的視差圖序列;否則i加1,並轉到步驟3。
所述步驟4和5是對視差空間圖像進行二維高斯濾波。
權利要求
1、一種從視頻相近幀中生成視差圖的方法,其特徵是,所述方法包括如下步驟
(1)檢查待處理視頻經過解碼後的每一幅圖像是否為灰度圖像,否則對所述每一幅圖像進行灰度化預處理,獲取每一幅圖像對應的灰度圖像;
(2)計算視差空間圖像
除第N-k,N-k+1,...N幅灰度圖像外,計算每一幅灰度圖像對應的視差空間圖像,其中N為待處理視頻中所含圖像數目;
針對第i,i+k幅灰度圖像Gi,Gi+k以及任意視差d,採用SD或者AD方法計算第i幀的視差空間圖像DSIi
所述SD方法計算公式為DSIi(x,y,d)=||Gi(x,y)-Gi+k(x-d,y)||2
所述AD方法計算公式為DSIi(x,y,d)=||Gi(x,y)-Gi+k(x-d,y)||
其中,i,k,d均為正整數,1<i<N-k,1<k<N,1<d<W,W為待處理視頻的寬度;
(3)計算二維高斯卷積模板
根據二維高斯濾波公式計算(2w+1)×(2h+1)大小的二維高斯卷積模板g(x,y)
-w≤x≤w,-h≤y≤h
其中w,h分別決定濾波窗口的寬和高,σu,σv分別決定水平和垂直方向上的濾波強度;
(4)使用得到的二維高斯卷積模板對所述視差空間圖像進行二維高斯平滑濾波
將所述二維高斯卷積模板與視差空間圖像進行卷積,設卷積之前第i幅視差空間圖像DSIi中(x,y)處的像素值為DSIi(x,y),那麼進行二維高斯濾波之後該像素的值為
其中,w,h均為正整數並且W,H分別為待處理視頻的寬度和高度;進行二維高斯平滑濾波後所得圖像即為所求的第i幅圖像對應的視差圖。
2、如權利要求1所述的一種從視頻相近幀中生成視差圖的方法,其特徵是所述灰度化預處理的灰度轉換公式為
Y=0.299R+0.587G+0.114B或
其中,Y代表圖像每個像素轉換後的灰度值,R,G,B分別代表圖像每個像素轉換前的R,G,B分量值。
全文摘要
本發明涉及一種面向雙目及多視點立體應用的從視頻相近幀中生成視差圖的方法。首先,對待處理視頻的每一幅圖像進行灰度化預處理;然後利用得到的視頻中距離相近的灰度圖像來計算視差空間圖像;最後對視差空間圖像進行二維高斯平滑濾波得到所求的視差圖像。本發明可以快速有效地從普通單視點視頻中生成視差圖,結合基於視差圖的渲染技術,可以將現有大量平面視頻高效地轉換為立體視頻,從而緩解當前立體視頻片源極度缺乏的現狀。
文檔編號H04N13/00GK101557534SQ20091002771
公開日2009年10月14日 申請日期2009年5月19日 優先權日2009年5月19日
發明者徐秀兵 申請人:無錫景象數位技術有限公司