應用於立體顯示器之二維轉立體靜態影像技術

 

A Novel 2D to 3D Image Conversion Technique Applied on Stereo Display

 

 

 

指導教授: 林進燈 教授

研究生: 林峻永

 

  言

近年來立體影像越來越流行,不僅在專家研究方面,在娛樂市場裡也是如此。立體影像消費的市場並未被開發,其中一個原因是,立體影像的軟體還沒有充足提供。所以我們致力於這個二維轉立體靜態影像的技術。此轉換技術可以分為兩部分,第一部份將二維影像編碼出具有深度資訊的深度圖,第二個部分為將此深度圖解碼還原成模擬左、右雙眼觀測之立體影像。編碼部分又可以分為兩個步驟,第一步驟為基於3D立體影像特性的影像分割技術。利用3D立體影像的特性,經由去除反光效果的SSR(Single Scale Retinex)處理。同時也利用色調、飽和度、亮度為特徵,及使用傳統分類法FCM(Fuzzy C-means clustering method),再經由Size Filter 篩選區域大小。第二步驟為深度擷取,依據影像的深度線索及物件之間深度規則,推測出此物件所具有的單一或漸進深度。如此在3D顯示器能得到更真實且舒適之視覺效果。第二部分解碼亦分為兩個步驟。第一步驟為深度圖轉換成供左、右眼觀測之兩張影像,在此提出兩種方法,第一種方法為線性平移法,此為簡化之方法,能有效加快轉換的速度。第二種方法為模擬人眼視覺之平移法,此方法為依據人眼的特性為基礎所開發之技術。但由於影像經由平移運算後會遺失部分像素的資訊,故第二部分為破洞補償,依照破洞的特性,選擇平均或鏡射的方法填補破洞。經過編碼和解碼的過程,可以將單一2D影像自動產生可用於立體顯示器之立體影像。

 

研 究 目 的

 在一般平面螢幕的畫面中可以呈現出人物或景象的移動、旋轉等等不同的動態效果。但是不能給人們真實的立體效果,因為沒有考慮到深度這個因素。現在立體顯示器可以給觀察者左、右眼看到不同的影像,能给觀察者深度的感覺,因而產生立體效果。可是現在二維轉立體的靜態影像技術還不是很發達,如果可以將一張二維靜態影像全自動轉換成模擬左、右眼觀測之兩張影像,如此可以方便地在立體顯示器上看到具有立體效果的影像,而給觀察者更真實的感覺。

 

我們發展出一個全新的架構,全自動轉換一張平面影像到立體影像。這個架構由兩個部分組成。第一個部分是編碼成具有深度資訊的深度圖,而第二部份為解碼還原成模擬左、右眼觀測之兩張影像,流程圖如圖一所示。第一個部份包括兩個步驟,第一個步驟為影像分割技術,而第二個步驟為深度擷取。經由影像分割技術,我們可以得到更完整的物件。在深度擷取步驟,我們可以藉由深度資訊估測每個物件的深度。此外,我們能從一些規則推論出這個物件是水平或垂直分佈。如此,我們在立體顯示器上可以感覺更正確和舒服。經由第一個部份,我們可以得到深度圖,我們可以把平面影像編碼成具有深度資訊的深度圖。在我們得到深度圖之後,我們可以解碼深度圖,還原為模擬左、右眼兩張觀測之影像。我們提出兩種平移的方法,他們從兩種立體影像拍攝技巧所推論出來的。然而,由於平移影像會造成某些像素資訊遺失,故需要破洞補償。所以,我們提出一個破洞補償的方法,藉由水平平滑濾波器來填補破洞。

 

 

 

圖一、平面轉立體影像演算法的流程圖

 

(1)影像分割

影像分割是將一張影像分割成不同的區域。一般來說,顏色影像分割技巧可以分成下列種類:統計的方法,區域分離和合併,基於物理反射模型的方法,基於人類的顏色感知,和使用模糊集合的理論。

我們提出一個適用於3D效果影像的分割方法。此影像分割方法的流程圖如圖二所示。這個影像分割方法可以分為三個部份。第一個部份為前處理。由於影像是由CCD照相機獲得。所以在室內會受日光燈、戶外會受日光的影響。光源反射的影響會造成我們分類的錯誤,所以我們使用SSR (Single Scale Retinex)去除這個問題。SSR模擬人類視網膜的特性,去消除環境光源的影響。SSR可以將一張影像分解成光源和物體反射率的影像。經過SSR的處理,新影像可以去除光源而保留物體反射率的影像。

第二個部份為特徵擷取與分類法。HSI顏色系統為基於人類視覺系統。H (Hue)代表色調,S (Saturation)代表飽和度,I (Intensity)代表亮度。在HSI顏色系統中,我們可以獨立控制色調和亮度。至於分類法,我們使用傳統的分類法Fuzzy C-means (FCM)。 在經過FCM方法中,原始影像可以分為很多區域,每個區域都有一個標號。但是,會有少分類的情況發生,即不同的物件屬於同一個類別,因為並未加入空間資訊進去。所以我們使用connected component searching去解決這個問題。我們發現立體影像有一個特性,就是需要將較完整的物件分割出來,所以我們使用size filter,設定區域的大小,若區域小於某個臨界值,則被臨近的區域所合併。經過影像分割之後,我們可以得到更完整的物件。 

 

圖二、影像分割的流程圖

 

(2)深度擷取

經過影像分割之後,我們要估測物件的深度。根據人類視覺的特性,人們可以經由對焦的位置得到每個物件的深度關係。當人們觀看一個景物時,存在著一個平面,在那個平面上的物件,在左眼和右眼都呈現在同一個位置。這個平面,我們定義為zero-plane。我們計算每個像素的對比值,我們定義zero-plane為一張影像中對比值最高的地方。我們依據計算物件底線到zero-plane的距離而給與物件深度,比zero-plane遠的給與正值,比zero-plane近的給與負值。

另外一方面,我們估測這個物件是水平分佈還是垂直分佈。我們給予水平分佈的物件漸進的深度、垂直分佈的物件固定的深度。如此,觀察者在立體顯示器前可以感覺更正確。為了估測這些關係,我們設定了一些規則,我們可以經由物件上下左右的邊界來推測此兩個物件為垂直分佈還是水平分佈。如圖三所示,圖三(a)為兩個垂直分佈的物件。圖三(b)為一個為水平分佈,另一個為垂直分佈的物件。我們可以經由計算bottom-line到zero-plane的距離給與垂直分佈的物件深度,計算邊界和區域的面積給予水平分佈的物件深度。可是一張經過影像分割的影像通常不只有兩個物件,所以在一張影像中,每兩個物件就推論一次,直到所有物件都推論過。當我們得到物件的深度和推論此物件是水平或是垂直分佈的,我們可以重新給予物件深度並且得到深度圖。圖四為深度擷取的流程圖。

  

圖三、根據兩個物件的關係推論物件是水平或垂直分佈。(a)兩個垂直分佈的物件,(b)一個垂直分佈的物件在水平分佈的物件上

 

 

圖四、深度擷取的流程圖

 

(3)平移演算法

在獲得深度圖之後,我們要從深度圖中推論出模擬左、右眼觀測之兩張影像。我們提出了兩種平移的演算法。這兩種平移的演算法是從兩種立體影像拍攝的方法推論出來的。如圖五所示,圖五(a)為相機平移拍攝法,圖五(b)為相機中心拍攝法。

相機平移拍攝法為平移相機連續拍攝兩張照片,而相機中心拍攝法為左、右兩張影像對焦於某個物件的同一個位置。使用相機中心拍攝法可以減少視差並且讓觀察者感覺更舒服。

(a)

 

(b)

 

圖五、立體影像拍攝的方法。(a)相機平移拍攝法,(b)相機中心拍攝法

 

我們從相機平移拍攝法推論出線性平移法(Linear Shift Algorithm),相機中心拍攝法推論出雙眼視覺平移拍攝法(Binocular Vision Shift Algorithm)。

(a)線性平移法(Linear Shift Algorithm)

線性平移法為簡化之方法,可以簡化計算量。如果是右眼影像,則比zero-plane近的物件往左移,比zero-plane遠的物件往右移。而平移的大小則正比於物件到zero-plane深度距離的大小。若是左眼影像,則平移方向相反,比zero-plane近的物件往右移,比zero-plane遠的物件往左移。

(b)雙眼視覺平移法(Binocular Vision Shift Algorithm):

我們提出一個模擬人類視覺的 方法。我們將左右兩眼對焦在影像深度圖的中心,並且作投影的動作。在投影的過程中,如果不同深度的像素投影到同一個點,則在深度圖中越近的像素優先權越高,因為在立體視覺中,近的物體遮蔽遠的物體。而模擬左眼觀測之影像則是和模擬右眼觀測之影像的雙眼視覺平移法一樣,只是方向相反。利用雙眼視覺平移法(Binocular Vision Shift Algorithm)可以減少多餘的視差,而使觀察者感覺更舒服。

 

(4)破洞補償

模擬左、右眼觀測之影像經過平移之後,有些像素會遺失資訊,所以需要破洞補償。我們提出了一個適用於立體影像的破洞補償方法。首先,我們計算破洞在水平方向的大小,如果破洞大小等於1的話,則取這個像素左邊及右邊像素的平均值。若是此破洞大小大於1的話,則依據破洞的性質,決定要填補破洞左邊還是右邊。決定的方法是填補深度較近的那一邊,因為我們是使用bottom-line到zero-plane的深度距離給與物件深度值。之後再使用鏡射的方法填補。

 

我們呈現我們的實驗結果,圖六是戶外自然影像、圖七是室內人造景像,分別為使用我們提出之方法的實驗結果。圖六(c)、圖七(c)為影像分割和size filter的結果,圖六(d)、圖七(d)為深度擷取的結果我們可以看到圖六(d)中,雲的深度是漸層的,山的深度是固定的,在圖七(d)中,桌子的深度是漸層的,桌上物件的深度是固定的。所以我們可以看到山佇立在雲層中,桌上物件在桌子上。圖六(e)-(h)、圖七(e)-(h)是使用線性平移演算法(Linear Shift Algorithm)的結果。而圖六(i)-(l)、圖七(i)-(l)則是使用雙眼視覺平移演算法(Binocular Vision Shift Algorithm)的結果。我們可以看到使用雙眼視覺平移演算法有較少的視差,如此觀察者可以在立體顯示器前感覺更舒適,而且在水平分佈的物體上,我們可以看到深度漸進的改變,如此更符合雙眼視覺。

我們也實現CID (Computed Image Depth)演算法。我們首先計算每個區域的銳利和對比程度。再將這些程度分為遠、中、近三種程度,再用顏色做群化和位置補償的動作。當我們得到深度圖,我們可以產生模擬左、右眼觀測之影像。右眼影像較近的區域會往左移,較遠的區域會往右移。而左眼影像相反。而平移的大小根據距離遠近做線性的調整。最後我們使用平滑濾波器去補償這些破洞。

這些結果呈現在圖八及圖九。因為CID演算法使用區域的方式擷取深度,並沒有經過影像分割技巧,所以會得到破碎的物件。如此,在立體顯示器會感覺到不舒服。圖八(e)-(f)及圖九(e)-(f)為經過平移後的模擬左、右眼觀測之影像,圖八(g)-(h)及圖九(g)-(h)為經由CID演算法的最後結果。

我們提出了一個全新的平面轉立體影像轉換演算法,可依將一張二維影像全自動轉換成具有立體效果的影像。與CID演算法做比較,可以發現我們的演算法有以下的優點:

(1)結合了影像分割和深度擷取,所以我們可以感覺物件在立體顯示器上更完整。

(2)我們提出了一個適用於具有立體效果影像的影像分割技巧。這個技巧結合了SSR(Single Scale       Retinex)及Size filter。

(3)我們提出了一個可以推測這個物件是水平還是垂直分佈的物件深度估測技巧。為了從深度圖中 重建模擬左、右眼觀測之影像,我們模擬了雙眼視覺,如此使得觀察者感覺更舒適。

(4)在未來的工作,可以發展具有立體效果的影片,將我們演算法的輸入改成影片,影像分割改成影片的物件分割,再結合我們所提出來演算法的剩餘部份,我們可以產生具有立體效果的影片。我們也可以增加深度線索,使得我們可以將深度擷取更正確,做出更擬真的立體影像。

 

                       

                                                   (a)                          (b)                            (c)                          (d)

 

 

                       

                            (e)                         (f)                             (g)                          (h)  

 

 

                       

                                             (i)                           (j)                            (k)                           (l)  

 

圖六、將自然影像使用我們提出來的二維轉立體靜態影像演算法的過程。(a)原始影像,(b)經過影像分割,(c)經過size filter,(d)深度圖,(e)經過線性平移演算法的左眼影像,(f)經過線性平移演算法的右眼影像,(g)破洞補償後的左眼影像,(h)破洞補償後的右眼影像,(i)經過雙眼視覺平移演算法的左眼影像,(j)經過雙眼視覺平移演算法的右眼影像,(k)破洞補償後的左眼影像,(l)破洞補償後的右眼影像。

 

 

                       

                                             (a)                           (b)                           (c)                           (d)

 

 

                       

                                           (e)                           (f)                            (g)                           (h)  

 

 

                       

                                              (i)                            (j)                             (k)                           (l)  

 

圖七、將人造影像使用我們提出來的二維轉立體靜態影像演算法的過程。(a)原始影像,(b)經過影像分割,(c)經過size filter,(d)深度圖,(e)經過線性平移演算法的左眼影像,(f)經過線性平移演算法的右眼影像,(g)破洞補償後的左眼影像,(h)破洞補償後的右眼影像,(i)經過雙眼視覺平移演算法的左眼影像,(j)經過雙眼視覺平移演算法的右眼影像,(k)破洞補償後的左眼影像,(l)破洞補償後的右眼影像

 

 

 

                       

                                              (a)                           (b)                            (c)                           (d)

 

 

                       

                                            (e)                           (f)                             (g)                           (h)

 

圖八、將自然影像使用CID演算法的過程。(a)原始影像,(b)每個區塊的深度擷取,(c)顏色群化,(d)深度圖,(e)經過平移後的左眼影像,(f)經過平移後的右眼影像,(g)經過平滑濾波器的左眼影像,(h)經過平滑濾波器的右眼影像。

 

                       

                                              (a)                           (b)                            (c)                           (d)

 

 

                       

                                            (e)                           (f)                             (g)                           (h)

 

圖九、將自然影像使用CID演算法的過程。(a)原始影像,(b)每個區塊的深度擷取,(c)顏色群化,(d)深度圖,(e)經過平移後的左眼影像,(f)經過平移後的右眼影像,(g)經過平滑濾波器的左眼影像,(h)經過平滑濾波器的右眼影像