• 沒有找到結果。

中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學"

Copied!
66
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

基於線段比對之快速深度估測法

A Fast Depth Estimation Method Based on Line Segment Matching

系 所 別:資訊工程學系碩士班 學號姓名:M09802025 郭子豪 指導教授:鄭芳炫 教授

中 華 民 國 101 年 8 月

(2)

i

摘要

這篇研究主要是利用線段比對方式來找出一對左右眼的影像中物件的視差,由此 獲得深度資訊。我們線段比對的方法分為三個步驟,第一步驟先偵測左影像的邊界,

由此可得到影像中的每個線段,第二步驟計算左右影像中每個像素點顏色的差值當成 本,第三步驟是利用第二步驟的成本以及線段比對的方式來找出左影像中在右影像的 對應線段,便可得知每個像素點的視差,由此視差便可轉換為深度影像。

不過只以線段比對的方法會造成被遮蔽區域的大量錯誤。而我們用了三個偵測的 方法來偵測遮蔽區域的錯誤,並且加以改善。第一個改善方法主要偵測的區域為視差 差異劇烈的區域,此區域因為前景與背景的視差差異大,所以被遮蔽的區域大,所以 錯誤率會比較高。第二個偵測的方法利用九個區塊來過濾出一些可能錯誤的像素點。

第三個主要偵測的區域為視差差異平緩的區域,此區域前景與背景差異小,被遮蔽的 區域小,但仍然會有錯誤的可能。找出錯誤的區域後我們找出錯誤點附近顏色相近的 像素點,統計出顏色相近的像素點視差值,看哪個視差值的像素點多,我們便將此視 差值取代錯誤像素點的視差值。由實驗可以看出我們改善的方法可以大量的改善被遮 蔽區域的錯誤,以及由實驗中證實我們的方法可以即時且準確的評估深度資訊。

關鍵字:深度圖,立體影像,立體比對,線段

(3)

ii

ABSTRACT

This paper proposes a line segment method to estimate the depth information from a pair of rectified images. This method can achieve real-time and high quality stereo-matching. The first step uses a simple edge detection to find out the line segments in the reference image. The second step is to calculate the color difference of each pixel from a pair of rectified images, and the difference is saved to a cost matrix. The last step is to find out the minimum difference of each line segment as the corresponding line from the cost matrix. After finding the corresponding line, it can discover the disparity of each line, and use the disparity to convert depth.

Unfortunately the line segments matching method is susceptible to cause error in occluded areas, so we propose three methods to refine the depth map. The first step is to detect areas with large variation of disparity value; the difference between the foreground and background disparity values is large in occluded area. The larger the occluded region is, the higher the error rate. The second step is to use nine blocks to find the possible pixels with wrong depth. The last step is to detect areas with mild variation of disparity value.

The difference between the foreground and background disparity value is small in these area, but there may still occur errors in these occluded area. We find out these error areas, and then count the disparity values of the similar color pixels around these area. The disparity value that has the most pixels replaces the wrong disparity values. From the experiments, it is proved that the proposed three refined methods can successfully correct errors in occluded areas and can accurately estimate the depth information in real-time.

Keywords: depth map, stereoscopic image, stereo matching, line segments

(4)

iii

致謝

在本論文研究的過程中,首先必須特別感謝鄭芳炫教授悉心的指導及寶貴的建 議,讓我學習到許多影像處理的相關知識,也協助我解決了很多在論文實作上的難 關,才能夠完成這一份論文。讓我自己學到了不少理論與實作的寶貴知識,增進了自 己在職場上的競爭力。以及感謝辛錫進教授與謝君偉教授在口試給予許多寶貴意見,

謹此致上最誠摯的謝意。

同時也要感謝實驗室的學長姐、同學們以及學弟妹們,給了我很多寶貴的建議,

提供我不少的意見及參考的方向。感謝實驗室的大家給我了一個很溫馨、很完善的研 究環境,讓我可以專心致力在論文的研究上,完成這份論文與程式。

最後要感謝我的家人,是他們的支持與鼓勵,讓我在研究所的過程中無後顧之 憂地專心研究我的論文。是他們的關心、精神上的支持,讓我論文順利完成,感謝我 的家人。

(5)

iv

目錄

摘要 ... i

ABSTRACT ... ii

致謝 ... iii

目錄 ... iv

表目錄 ... v

圖目錄 ... vi

第一章 序論 ... 1

1.1 立體顯示設備 ... 1

1.2 立體眼鏡的原理 ... 2

1.3 裸眼的方式 ... 3

1.4 3D 影像拍攝 ... 4

第二章 相關研究 ... 7

2.1 深度資訊取得方法 ... 7

2.2 動態規劃方法 ... 10

2.3 其他比對方法 ... 12

第三章 提出的方法 ... 14

3.1 利用邊緣偵測找出線段 ... 16

3.2.計算成本矩陣 ... 18

3.3.找出對應點 ... 19

第四章 偵測遮蔽區域並且改善 ... 27

4.1 偵測被遮蔽區域視差差異劇烈的地方 ... 27

4.2 改善的方法 ... 33

4.3 偵測一些少數的錯誤視差值 ... 33

4.4 偵測被遮蔽區域視差差異較平緩的區域 ... 40

第五章 實驗結果 ... 45

第六章 結論與未來方向 ... 55

(6)

v

表目錄

表一. 改善前的錯誤率 ... 53

表二. 改善後的錯誤率 ... 53

表三. 將 RGB 色彩空間轉換到 YCrCb 色彩空間後估測的結果 ... 54

表四. 跟別人的方法做比較 ... 54

(7)

vi

圖目錄

圖 1.1 紅藍眼鏡,快門式眼鏡 ... 2

圖 1.2 紅藍影像 ... 3

圖 1.3 視差屏障的設計 ... 4

圖 1.4 柱狀透鏡的設計 ... 4

圖 1.5 左為陣列式攝影,右為深度攝影機 ... 5

圖 1.6 2D 影像轉換成 3D 影像的過程 ... 6

圖 2.1 深度感應器 ... 7

圖 2.2 正視差、零視差、及負視差示意圖 ... 8

圖 2.3 Middlebury 網站 ... 9

圖 2.4 說明負視差的情況 ... 10

圖 2.5 動態規劃的範例 ... 11

圖 2.6 動態規劃方法做出的深度圖,會有斑紋狀的錯誤效果 ... 12

圖 2.7 由於雙眼不同視角,因此使得兩張影像上方的光源不同 ... 13

圖 3.1 流程圖 ... 16

圖 3.2 圖中咖啡色的屋簷有傾斜的情況 ... 17

圖 3.3 左圖為原始影像,右圖為偵測後的結果圖,白色像素點為邊緣 ... 17

圖 3.4 左圖為原始影像,右圖為偵測後的結果圖,白色像素點為邊緣 ... 18

圖 3.5 從邊緣影像找出線段的說明 ... 18

圖 3.6 此圖描述成本矩陣的如何產生 ... 19

圖 3.7 比對方法的由來 ... 22

圖 3.8 Tsukuba 使用 11*1 的區塊累加以及使用 Esmooth的結果 ... 233

圖 3.9 Venus 使用 11*1 的區塊累加以及使用 Esmooth的結果 ... 24

圖 3.10 Teddy 使用 11*1 的區塊累加以及使用 Esmooth的結果 ... 25

圖 3.11 Cones 使用 11*1 的區塊累加以及使用 Esmooth的結果 ... 26

圖 4.1 說明被遮蔽的情況 ... 28

圖 4.2 被偵測為遮蔽線段的示意圖 ... 29

圖 4.3 Tsukuba 第一個方法改善的結果圖 ... 29

圖 4.4 Venus 第一個方法改善的結果圖 ... 30

圖 4.5 Teddy 第一個方法改善的結果圖 ... 31

圖 4.6 Cones 第一個方法改善的結果圖 ... 32

圖 4.7 將左影像分成 16 個等分 ... 34

圖 4.8 使用九個區塊的示意圖 ... 35

圖 4.9 Tsukuba 第二個方法改善的結果圖 ... 36

圖 4.10 Venus 第二個方法改善的結果圖 ... 37

圖 4.11 Teddy 第二個方法改善的結果圖 ... 38

(8)

vii

圖 4.12 Cones 第二個方法改善的結果圖 ... 39

圖 4.13 被偵測為遮蔽線段的示意圖 ... 41

圖 4.14 Tsukuba 第三個方法改善的結果圖 ... 41

圖 4.15 Venus 第三個方法改善的結果圖 ... 42

圖 4.16 Teddy 第三個方法改善的結果圖 ... 43

圖 4.17 Cones 第三個方法改善的結果圖 ... 44

圖 5.1 Tsukuba 實驗結果圖 ... 48

圖 5.2 Venus 實驗結果圖 ... 49

圖 5.3 Teddy 實驗結果圖 ... 50

圖 5.4 Cones 實驗結果圖 ... 51

圖 5.5 將 RGB 色彩空間轉換到 YCrCb 色彩空間後估測出的深度圖 ... 52

(9)

1

第一章 序論

在阿凡達 3D 電影造成全球的風潮後,2010 年已正是成為 3D 元年,3D 電影已成 為主流。除了電影之外也看到許多 3D 影像的產品,像是 3D 視訊會議的應用和手機及 相機也有 3D 顯示的功能以及電玩方面也有 3D 功能,平面影像已經漸漸不符合大眾所 需求的。人類之所以能看出立體的效果主要是因為我們在觀看一個物體時,由於人類 的眼睛兩眼的相距六公分左右,所以此物體在左右眼中會有一些位移,此位移就稱之 為視差。也因為雙眼的視差,讓我們產生了立體深度的感覺。

1.1 立體顯示設備

當我們觀看 3D 電影時,都需要配戴眼鏡,事實上在沒有戴立體眼鏡之前,立體 電影之所以會顯得模糊不清,是因為立體電影實際上是由兩張影像所疊合而成的,這 兩張影像模擬人眼的方式,由不同角度拍攝而成,所以這兩張影像會有視差。而透過 立體眼鏡對於光的選擇,而分別呈現在你的右眼以及左眼中,左眼只接收到左眼影 像,右眼只接收到右眼影像,左右眼接收到有視差的影像,使你產生立體影像的感覺。

那麼主要觀看 3D 立體的方式主要有哪些呢?

觀看 3D 影像的方式主要分成兩種,一種是需要配戴眼鏡的,另一種是以裸眼的 方 式 呈 現 , 配 戴 眼 鏡 的 像 是 紅 藍 眼 鏡 , 偏 光 眼 鏡 , 還 有 快 門 式 眼 鏡 (shutter glasses) ,如圖 1.1。紅藍眼鏡是利用不同的波長來過濾另一眼影像,偏光眼鏡是 利用反射光的原理,一隻眼睛接收垂直的反射光,另一隻接收水平的反射光。快門式 眼鏡是利用高頻的速度來開關眼鏡,分隔左右眼分別接收到各自的影像,其原理下一 節會詳細介紹。

而裸眼的方式是以不同的螢幕呈現,像是柱狀透鏡(lenticular lens),視差屏 障(parallaz barrier),還有指向式背光(directional back light)。主要是在顯示

(10)

2

器內加裝一些設備,像是透光狹縫以及不透光的光柵搭配使用,以及加入透鏡,使光 折射,分別讓左右眼接受到各自影像。1.3 節會詳細介紹。

圖1.1 紅藍眼鏡,快門式眼鏡。

1.2 立體眼鏡的原理

最傳統的紅藍眼鏡的方式是將左右眼影像作偏紅色與偏藍色的畫面處理,如圖 1.2 表示,而觀賞者戴上帶有紅色跟藍色的眼鏡,讓你左右眼過濾另一隻眼鏡的影 像,戴上眼鏡時使你的眼睛左眼只能看到左眼影像,右眼只能看到右眼影像。這是利 用不同波長來過濾另一眼影像,使得我們可以看到立體影像。目前最普及且效果最好 的就是利用 3D 攝影機的方式,拍出左眼影像及右眼的影像,然後以 3D 投影機及偏光 布幕並使用快門式眼鏡配合使用,投影機高頻的方式投出奇數(左眼)影像和偶數影像 (右眼)影像,而快門眼鏡以高頻率的方式開關來遮蔽左及右眼,當投出左眼影像時眼 鏡關閉右眼,投出右眼影像時眼鏡關閉左眼。這個方式並不會使影像的解析度及亮度 降低,效果最好,不過缺點是不適合長時間使用,因為眼鏡非常快速的一開一關會使 眼睛容易疲累。而偏光眼鏡則是需要配合疊合式偏光面板使用(iZ3D)。

(11)

3

圖1.2 左右眼影像作偏紅與偏藍的畫面處理,然後將兩張影像合成一張。

1.3 裸眼的方式

另外一種裸眼的方式是可以將現有的 2D 影像直接轉換成 3D 影像,在搭配有特殊 光柵設計的顯示器,則會是一個很好的方式,其中最常見的就是視差屏障(parallaz barrier)的顯示器,其原理是將不同視角的影像作插排融合後成一張,利用透光狹縫 (slit)與不透光屏障(barrier)垂直相間的光柵條紋,放置插排過的圖形上,用來限 制左右眼分別看到左右影像,如圖 1.3;圖中紅色的區塊為左眼影像的像素點,藍色 為右眼影像的像素點,視差屏障的設計會將你左眼只能看見左眼影像的像素,右眼看 見右眼的像素。不過由於經過插排的處理,導致畫面亮度與解析度會降低。另一種柱 狀透鏡(lenticular lens)的方式主要透過精密計算的透鏡折射來改變光線的方向,

如圖 1.4,將左眼影像的像素發出的光經過透鏡折射,都會進入左眼的區域,而不會 跑去右眼;同樣右眼影像的像素也不會被左眼看到,控制兩眼各自看到螢幕上不同的 像素,使兩眼看到有視差的兩張影像,產生立體效果。2D 影像轉 3D 影像方法可以讓 3D 應用大眾普及化,直接將 2D 影像或影片可轉成 3D 來呈現,然而這個方式有最大 的困難點,那便是如何取得深度資訊。

(12)

4

圖1.3 視差屏障的設計,紅色區塊為左眼影像的像素點,右眼影像為藍色的像素點。

圖1.4 柱狀透鏡的設計,紅色區塊為左眼影像的像素點,藍色為右眼影像的像素點。

1.4 3D 影像拍攝

目前 3D 拍攝技術主要可以分成兩種,第一種為陣列式攝影,此原理是同時利用 兩台以上的攝影機,模擬人眼視覺拍攝左右眼的影像,兩台攝影機距離必須間隔 6~7 公分(雙眼之間的距離)。同時透過 3D 顯示器分別顯示左右眼影像畫面,及可有立體 的效果。不過由於兩台攝影機同時拍攝,所以必須事先做校正,讓兩台攝影機拍攝的 畫面高度,大小,角度及光影必需一致。所以事前的校正工作必須做好,否則無法觀 看立體效果。現在有些廠商則開發出本身具有兩個鏡頭的攝影機,分別捕捉左右眼影

(13)

5

像,便可解決校正上的麻煩。

第二種為深度攝影,這方式是利用傳統攝影機另外還搭配了深度攝影機拍攝,除 了拍攝 2D 影像之外,還有深度攝影拍攝的深度圖。深度攝影機是透過紅外線碰到物 體反射時間來判斷物體與攝影機之間的距離。此方式是目前最常用的立體影像格式之 一,稱為 2D+Depth。不過這個儀器較為昂貴,還無法普及化。

圖1.5 左為陣列式攝影,右為深度攝影機。

另外還有一種方法是不需要靠儀器的方法,只需要左右眼影像,利用兩眼的影像 來估算出視差值(位移量),便可計算出深度資訊,產生深度圖,此方法也是我們研究 的目的。我們可以利用估算出來的深度圖以及利用原始影像,去估算出其他不同視角 的影像出來,將不同視角的影像配合顯示器的像素排列組合差排成一張後,如圖 1.6,將此影像放在 3D 顯示器上播放,便可看到立體效果。不過此方式的重點在於如 何估算出好的深度圖,如果產生出好的深度圖,才能產生出較好的影像(不同視角的 影像)。下面我們便開始探討如何估算出深度資訊。

(14)

6

圖1.6 2D影像轉換成3D影像的過程。

(15)

7

第二章 相關研究

2.1 深度資訊取得方法

立體影像是必須由雙眼才能看得到具有深度及層次感的影像,它必須是要有兩張 或兩張以上的影像,並具有視差的兩張影像才能觀看出立體效果。這兩張影像就是模 擬人眼的左右眼睛所製成的影像,因此要觀看到具有深度的立體影像就必須要運用到 雙眼不可。何謂深度以及何謂視差呢?下面我們依序探討。

深度資訊取得的方法有很多種像是深度攝影機或是深度感應器(kinect),如圖 2.1,但是這種都必須靠器材來取得,外出並不方便攜帶使用。目前大眾所使用的攝 影工具還是以一般的數位相機或是數位攝影機為主,所以只能夠得到一般的平面影 像,而我們用另外一種方式由 2D 影像計算得到深度資訊。而本篇論文主要討論的就 是這種由 2D 影像記算得到深度資訊方法。深度資訊就是我們必須取得場景中各點相 對於攝影機的距離,場景中各個點相對於攝影機的距離可以用深度圖(depth map)來 表示,深度圖為一個灰階的影像,我們設定 0~255 的灰階值表示,灰階值越接近 255(白 色)的像素點表示此像素點在場景中距離攝影機越近;反之灰階值越接近 0(黑色)的 像素點表示此像素點在場景中距離攝影機越遠。

圖2.1 深度感應器。

何謂視差呢?因為人眼觀看景物時可分為遠、中、近三個層次,人的眼球會隨者 景物的遠近而自動調整到一個最舒適的視覺角度來觀看,當左右眼各有不同的視角

(16)

8

時,就會產生出視差。視差又因景物的遠、中、近的不同,可分成正視差、零視差、

及負視差,如圖 2.2 所示。(1)正視差:兩眼焦點視線在螢光幕前並沒有任何交叉,則 其影像將呈現在螢光幕後。(2)零視差:兩眼焦點視線的交叉點落在螢光幕上,則其 影像將會呈現在螢光幕上。(3)負視差:兩眼焦點視線在螢光幕前有交叉情況,則其 影像將會呈現在螢光幕前的交叉點上。

圖2.2 正視差、零視差、及負視差示意圖。

2D 影像比對得到深度資訊的方法已經研究了很多年了,而技術也越來越純熟,

此 技 術 主 要 是 將 一 對 左 影 像 及 右 影 像 來 做 比 對 , 得 知 左 右 影 像 中 物 件 的 視 差 (disparity)來估算出深度值(depth)。利用左右影像來估算出每個物件的視差值 (disparity)後,再將視差值正規化到 0~255 的灰階值,此灰階值變是深度值了。

Middlebury[1]的網站上,如圖 2.3,這網站提供了很多的測試圖以及提供了正確的 深度圖(ground truth),不過它提供的測試圖只有負視差及零視差的情況,如圖 2.4,

左影像中的物件出現在右影像中會往左位移,所以比對上左影像中的像素點去右影像 找對應點時,只須往左邊的方向找尋,不需要往右邊找尋(因為沒有正視差的情況),

正視差的情況是左影像中的物件出現在右影像中會往右位移。而零視差的情況是左影 像的物件出現在右影像中不會有位移的情況。另外 Middlebury 網站提供了另一個功 能,可由你的演算法來估測出這四組測試圖(Tsukuba、Venus、Teddy、Cones)的深度 圖後,上傳這四組深度圖,網站可以幫你評估出你的深度圖的正確率,並且幫你與其

(17)

9

他方法做正確率排名,由此排名,你可知道哪些方法比你的好。網站上已經有 124 的方法作排名,並且許多方法都有公開他的研究論文讓大家做參考,讓大家互相研究 比較各個方法的優缺點,讓此技術更上一層。目前第一名的方法評估出來的準確率已 達到 96%,而最後一名有 80%的準確度。

圖2.3 Middlebury網站。

(18)

10

圖2.4 Middlebury網站上測試圖(Tsukuba),左圖為左眼影像,右圖為右眼影像,由 於只有負視差的情況,所以左影像中的物件在右影像中都是往左位移。

2.2 動態規劃方法

然而在這麼多方法之中,其中以動態規劃(Dynamic programming)的方法比較快 速,更容易實現即時的效果[2-10],大部分都是以動態規劃這個觀念以及架構來做改 善,使準確率提高,並且速度又快。動態規劃的主要觀念是把一個大問題分割成很多 小問題,順序找出這些小問題的答案後,再利用這些小問題的答案來組合出大問題的 答案。在立體視覺的應用中,就是把影像分割成一條一條的掃描線。每一條掃描線各 別利用公式(3)與圖 2.5 求出最適合的像素點差值後,再把每一條掃描線的結果組合 起來,就是最後的深度圖。

(19)

11

圖2.5 動態規劃的範例。在左右影像的每一對應列中,都會找到一條最適合的路徑。

圖中 a~j 表示影像灰階;M 表示是對應到;L 表示只有左邊影像看得到 (右邊影像 被遮蔽);R 表示只有右邊影像看得到 (左邊影像被遮蔽)。

原始的動態規劃[11]主要分成兩個步驟,第一步驟計算動態規劃矩陣,將影像中 每一列計算出一個動態規劃矩陣,計算的方法有很多種,其中最基本的就是以[9]公 式(1)計算,dsad為絕對差值的總和來當比對的成本,P 為左影像的座標點,Q 為右影 像中的座標點,dR和 dG和 dB為 RGB 色彩空間的元素(pR為 p 點紅色元素,qR為 q 點的 紅色元素),公式(2)中的 x 和 y 為影像中的座標位置,d 為視差的值。將左影像中每 個像素點 p(x,y)去計算差值當成比對成本值,將可得到動態矩陣 C,C 為一個 H*X*N 的 3 維矩陣,H 維影像的高度,X 為影像的寬度,N 為允許的視差長度。

P Q

d

P Q

d

P Q

d

P Q

dsad ,  R ,  G ,  B , (1)

     

     

     





y d x q y x p Q P d

y d x q y x p Q P d

y d x q y x p Q P d

B B

B

G G

G

R R

R

, ,

,

, ,

,

, ,

,

(2)

第二步驟是在上述找到的每一列動態矩陣中去找出最佳路徑,利用全域性最佳化 (Global optimization)公式(3),Edata項為第一步驟計算出來的動態矩陣 C(左影像與 右影像中像素點的顏色差值)。而 Esmooth項主要目的是為了視差值能夠平滑,Esmooth項限 制只有參考鄰近點視差的差值,可以使得同一個物件的視差平滑減少雜訊,而λ是一

(20)

12

個常數,d 為視差值,用於懲罰深度不連續,dis(x,y)為在影像中座標(x,y)的視差 值。

 

d E

 

d E

 

d

Edata  sooth (3)

     

,

 

, 1

 

,

 

, 1

,....

, 1 ,

y x dis y x dis y

x dis y x dis

y x dis y x dis d

E

x smooth

(4)

不過動態規劃會有一個缺點,會造成水平斑紋狀(streaking artifacts)的錯誤結 果。如圖 2.6 所示。很多人就加入了一些方法把這個錯誤改善掉了,使得正確率可以 提升許多。

圖2.6 動態規劃方法做出的深度圖,會有斑紋狀的錯誤效果。

2.3 其他比對方法

另外還有許多其他方法,像是比較簡單的 SAD(Sum of Absolute Differences) 與 SSD(sum of square difference)[11]的比對方法,這是兩個方法主要都是比對一 個區域內(window)的色彩值,找尋最相近的色彩值當作對應點,這個概念在其他論文 中還是常常被使用到。不過這個方法比較簡單,但是效果並不會很好,速度也不快。

另外還有常常被使用到的方法“可信度傳遞”(belief propagation)[12-18],

利用區塊(sad or ssd)比對的方式求視差,只是將雙影像中所有對應點的局部最小值 求出,因此求得的視差圖準確率不高。而利用全域性最佳化視差求法,像是可信度傳

(21)

13

遞(belief propagation),利用所有視差提供可供信賴的程度,將整個視差圖經過 疊 代 更 新 , 直 到 視 差 圖 收 斂 為 止 。 利 用 可 信 度 傳 遞 於 深 度 不 連 續 處 ( depth discontinuities),由於信息會在此處停止傳遞,因此彼此不同深度的信息將不會互 相影響。可信度傳遞的這個方法效果不錯,但是處理的時間會很長,比較難以達到即 時的效果。

還有針對不同的光源的條件下的比對方法,如圖 2.7,由於左右眼視差的關係,

不同視角所以可能導致某些區域會有光源不同的情形,而[19]這個演算法可以針對不 同光源的情況做出處理,他主要是將 RGB 色彩空間轉換成 HSL 的色彩空間來比對,使 得光源的問題得以改善。

圖2.7 這兩張分別為左右影像,由於雙眼不同視角,導致有視差效果,因此使得兩張 影像上方的光源不同。

另外就是還有許多方法有用到切割(segmentation),事先將左眼影像做切割,把 每個物件切割出來再做比對,加入切割後會使每個物件的深度值比較平滑,比較不會 有雜訊,不過這就要看切割的方法好不好,如果能把每個物件精準的切割出來,那麼 在比對上也會比較好比對。不過要切割的好,那可能也是要花比較多的時間。

(22)

14

第三章 提出的方法

於 2D 影像估測深度圖的實驗中,我們的方法也是將影像每一列分開來做比對,

但主要是以線段比對為主,線段的意思代表者在影像水平線上,如果顏色相近的連續 點,我們稱之為線段。因為我們假設一個物件每個像素點與鄰近像素點的顏色都很相 近,所以這些視差變化是會很平滑的(smooth),所以我們認定每一個線段的視差是很 平滑的,所以我們將影像每一列分開來處理,每一列中又會有許多線段,將左影像的 每一線段分別到右影像中找哪個線段的顏色最為相近,便可找到對應的線段,這樣就 可以找到視差值。

圖 3.1 為流程圖,實驗一開始必須先輸入一對平行的左右影像,接下來分成四個 主要部分,第一個部分是左影像的邊緣偵測,利用 RGB 色彩來判斷,此目的是為了求 得線段出來。第二部分是將計算成本矩陣,計算左影像中每個像素點與右影像中每個 像素點的 RGB 色彩差異值存入矩陣中,第三個部分是找出對應線段,在成本矩陣中找 出像素點色彩差異值最小的,便認為它們是對應線段,便可找到視差。第四個部分是 提出了三個方法來偵測遮蔽區域,並改善遮蔽區域的錯誤。

(23)

15

圖3.1 流程圖

(24)

16

3.1 利用邊緣偵測找出線段

輸入左右影像後,我們開始針對左影像進行彩色影像邊緣偵測,彩色影像邊緣偵 測是利用 RGB 色彩空間來找出邊緣,此偵測的目的找出線段在後面線段比對時需要用 到。彩色影像邊緣偵測是從影像左上方開始,由左向右,由上至下的方向。一開始以 第一個像素點為基準,和第二個像素點比較 RGB 顏色差異值是否相近,如果相近的 話,認為此兩點為同一個線段,則將此點設為黑點,並繼續判斷下一個像素點的 RGB 顏色差異是否與此線段的所有像素點 RBG 顏色平均值是否相近,相近的話設為黑 點,如果不相近,則認為此像素點是不同線段的,則將此點設為白點,以公式(5)做 計算,這公式判斷線段中所有像素點的 R 與 G 與 B 元素平均與被判斷的像素點的 R 與 G 與 B 元素的個別差值是否小於門檻,小於的話則判斷成同一個線段,lR為線段中 所有像素點的 R 元素值的平均,th 為臨界值,qR為判斷點的 R 元素值。

 

 

 





t h q

l

t h q

l

t h q

l

B B

G G

R R

(5)

並且我們必須限制每個線段最大的長度為 30,限制長度的目的是為了避免每個 線段太過平滑,因為有些場景的物件是有傾斜的現象,像是圖 3.2 中房屋的咖啡色屋 簷。這是有傾斜的情況,假如這個屋簷都給予同一深度值的話,那就會有錯誤了。這 屋簷的深度值應該是由上到下遞減;由右到左慢慢的變小,而不是同一個深度值。所 以我們必須限定一個線段的長度,以免線段太長,如果線段太長而此物件又有傾斜的 情況,那很有可能會有錯誤。以此方法一直做下去直到整張圖做完為止,結果如圖 3.3 及圖 3.4 所示。由此圖中可以看出,白色的像素點為邊緣的像素點;水平連續的 黑色像素點為一個線段。如圖 3.5 說明如何判斷成一個線段,統計黑色像素點,如果 遇到白色像素點則停止,統計此白色像素點到前一個線段內有幾個像素點,當成線段 長度。然後再由此白色像素點當起始點開始計算下一個線段的長度。

(25)

17

圖3.2 圖中咖啡色的屋簷有傾斜的情況。

圖3.3 左圖為原始影像,右圖為偵測後的結果圖,白色像素點為邊緣。

(26)

18

圖3.4左圖為原始影像,右圖為偵測後的結果圖,白色像素點為邊緣。

圖3.5 有十個像素點,白色像素為邊緣像素點。這十個像素點分成五個線段。

3.2.計算成本矩陣

接下來就是計算成本矩陣,將影像每一列分開計算,每一列就會有一個成本矩 陣,我的方法是用 RGB 色彩差值當作成本利用公式(1)和公式(2)來計算,以最基本 的 SAD 的方式來計算。如圖 3.6 說明,將每一列分開計算,將左影像的列與右影像

(27)

19

的列的每一個像素點計算 RGB 色彩差值,然後存入矩陣中,接下來向左位移一個像素 點後再將每個像素點取差值存入矩陣,依序作下去直到位移 N-1 像素為止。此目的 是將所有像素點的顏色差值全部計算出來並存到矩陣中,避免重複計算。

圖3.6 描述成本矩陣的如何產生。在左影像與右影像中取得第i列的像素點,將左影 像第k個像素點的RGB值減去右影像第k個像素點的RGB值(k=0,1,2…N)並將其值存入 矩陣中,然後位移一個像素點,再做相減並存入矩陣,直到位移N-1個像素點為止。

3.3.找出對應點

接下來的步驟就是找出每個線段的視差值,利用邊緣偵測圖來找出左影像中每一 列的線段,每一列會有很多線段,將這些線段 l 依序做比對,我們比對的順序是從最 左上開始,由影像上到下,由左到右順序比對,但在處理比對前必須先判斷此線段是 哪種情況,第一種情況就是此線段中的像素點超過一個點的情形,另一種情況就是線 段只有一個點的情形,我們將這兩種情形分開處理。一開始我們的想法是利用線段的 顏色資訊來比對,找出每個線段的視差值。用公式(6)來計算, n 為目前比對的線段 l 中所有的像素點的個數。Edata項是將線段 l 中所有像素點與右影像中同樣座標位置 的像素點的 RGB 色彩差值,如公式(7), pR為 p 點紅色元素,qR為 q 點的紅色元素,

p(xi,y)為左影像中比對線段的座標位置,q 點為右影像中(xi,y)座標的像素點,d 為

(28)

20

視差值(位移量),d=0,1,2…dmax。當 d=0 時是將左影像線段 l 中的像素點與右影像中 同樣座標位置的像素點作 RGB 色彩差值的計算,當 d=1 時是將左影像線段中的像素點 與右影像中同樣座標位置向左位移一個像素後作色彩 RGB 差值的計算。我們找出最小 的E(d)值出來(d=0,1,2…dmax),把此最小的E(d)的d值當成線段的視差值。結果如 圖 3.8(c),3.9(c),3.10(c),3.11(c),從圖中可知做出來的效果並不好,雜訊很 多。我們只是用很簡單的彩色影像邊緣偵測來找線段,所以找出來的線段並不是很 好,有些線段太短,甚至一個線段只有一個像素點,導致比對上容易出錯。

   

   





1 n if

1 n if

1

d E d E

d E d

E

data n

i

data (6)

         

x y

q

x d y

p

y d x q y x p y d x q y x p d E

i B i

B

i G i

G i

R i

R data

, ,

, ,

, ,

 (7)

所以我們另外加入了另一個方法,利用全域性最佳化(Global optimization)公式(3) 來計算。我們將公式(3)改成公式(8),Esmooth項主要是考慮鄰近像素點的視差值,如 果與鄰近視差值相距越大,Esmooth 項的值會越大,此目的是為了讓深度變化平滑。

Esmooth項我們將公式(4)裡的 Esmooth改成公式(9),假如此線段的像素點超過一點的情

況,我們參考的鄰近點是上方及左方像素點的視差值;假如此線段只有一個點的情 況,我們只參考上方像素點的視差值。x 為影像中像素點的水平座標位置,y 為影像 中像垂直座標位置。dis(x,y)為此座標像素點的視差值。Esmooth也是將線段中所有像 素點去做計算,我們將找出此線段 E(d)值最小的當作對應位置,d 值就是位移量也就 是視差值。結果圖如圖 3.8(d),3.9(d),3.10(d),3.11 (d),從結果圖看出效果有 改善很多,結果比較平滑了,但是錯誤的地方還是很多,所以又另外想了一個方法來 改善。

     

     





 

1 n if

1 n if

1 1

d E d E d E

d E d

E d

E

smooth data

n

i

n

i

smooth data

 (8)

(29)

21

   

 

   









 

1 n if 1 ,

1 n if 1 ,

, 1

y x dis d d E

y x dis d

y x dis d d E

i smooth

i i smooth

(9)

我們另再試了一個方法來改善,加入鄰近像素點的色彩資訊進去,把週遭的色彩 資訊一起加入比對,我們使用了 11*1 的區塊(window)把色彩資訊累加起來,用公式 (10)計算,此公式是累加線段中所有像素點的垂直色彩資訊,Edata項由公式(7)改成 公式(11),pR為左影像比對線段中的像素點的紅色元素,qR為右影像中像素點的紅色 元素。結果圖如圖 3.8(e),3.9(e),3.10(e),3.11 (e),從結果圖發現與 3.8(c),

3.9(c),3.10(c),3.11 (c)有了明顯的改善,但效果也還不是很好。此時我們發現 分別加入了這兩個方法做出來的結果都有很大的改善,而且這兩個方法錯誤的地方都 不同。如圖 3.7,上方為原始只用線段色彩資訊來做比對的結果,左圖為加入 Esmooth 後的結果,右圖為加入 11*1 垂直色彩資訊的結果,下圖為合併 Esmooth與 11*1 垂直色 彩資訊一起使用。我們將這兩個方法一起使用,合併成公式(12),d 為視差值 (d=0,1,2…dmax),n 為目前比對的線段 l 中所有的像素點的個數,Edata為公式(11)來做

計算,Esmooth為公式(9)計算。結果如圖 3.8(f),3.9(f),3.10(f),3.11 (f),由結

果圖發現合併後的方法效果最好,效果很平滑,雜訊也變少很多了。

   

 



 

5

5 1

5

5

1 n if ) (

1 n if

k data n

i k

data

d E d

E

d E d

E

(10)

 

   

   

   



k y d x q k y x p

k y d x q k y x p

k y d x q k y x p d E

i B i

B

i G i

G

i R i

R

data

, ,

, ,

, ,

(11)

     

     





  

1 n if

1 n if

5

1 1

5

5 1

k

smooth data

n

i k

n

i

smooth data

d E d E d

E

d E d

E d

E

(12)

(30)

22

圖3.7 上方的影像為一開始沒加入任何改善前的結果,左邊的影像為加入Esmooth項後的 結果,右邊的影像為加入鄰近11*1區塊顏色後的結果,下方的影像為加入Esmooth項跟鄰

近11*1區塊顏色後的結果。

由此可見,如果只用線段的色彩資訊比對的話是不夠的,雜訊非常的多,因為線 段太短的情況,而且周圍像素點的色彩又很相近時,非常容易比對錯誤。所以加入

Esmooth項進去,它的目的是考慮周圍深度值,如果與周圍的深度值差距愈大,懲罰會

愈大。以及加入鄰近像素點的色彩資訊進去,把周遭的色彩資訊一起加入比對,我們 使用了 11*1 的區塊(window)把色彩資訊累加起來。可以看出雜訊都可以消除掉了,

並且錯誤的區塊也大大改善了,不過被遮蔽的區域錯誤無法改善到,所以我們下一個 章節提出了三個方法來改善被遮蔽區域的錯誤。

原始線段比對

加入 ESMOOTH

合併兩個方法

加入 window

(31)

23

(a) (b)

(c) (d)

(e) (f)

圖3.8 Tsukuba(a)為左影像,(b)為右影像,(c)沒有用11*1的區塊累加以及沒使用

Esmooth的結果,(d)沒有使用11*1的區塊累加的結果。(e)沒有使用Esmooth的結果,(f)使

用11*1的區塊累加以及使用Esmooth的結果。

(32)

24

(a) (b)

(c) (d)

(e) (f)

圖3.9 Venus(a)為左影像,(b)為右影像,(c)沒有用11*1的區塊累加以及沒使用Esmooth

的結果,(d)沒有使用11*1的區塊累加的結果。(e)沒有使用Esmooth的結果,(f)使用11*1 的區塊累加以及使用Esmooth的結果。

(33)

25

(a) (b)

(c) (d)

(e) (f)

圖3.10 Teddy(a)為左影像,(b)為右影像,(c)沒有用11*1的區塊累加以及沒使用Esmooth

的結果,(d)沒有使用11*1的區塊累加的結果。(e)沒有使用Esmooth的結果,(f)使用11*1 的區塊累加以及使用Esmooth的結果。

(34)

26

(a) (b)

(c) (d)

(e) (f)

圖3.11 Cones(a)為左影像,(b)為右影像,(c)沒有用11*1的區塊累加以及沒使用Esmooth

的結果,(d)沒有使用11*1的區塊累加的結果。(e)沒有使用Esmooth的結果,(f)使用11*1 的區塊累加以及使用Esmooth的結果。

(35)

27

第四章 偵測遮蔽區域並且改善

由圖 3.8,3.9,3.10,3.11 可得知我們線段比對方法在被遮蔽區域的地方錯誤 率非常高。被遮蔽區域會發生在前景和背景交錯的地方,由於前景的位移量(視差) 大,所以前景會遮蔽到背景。我們無法得知被遮蔽區域的色彩資訊,所以無法準確的 估測出此區域的視差值。因此我們提出了三個偵測遮蔽區域的方法,並且改善它。第 一個方法是針對被遮蔽區域視差差異劇烈的地方,此區域為前景與背景視差值差異 大。第二個方法是偵測一些少數的錯誤視差值,我們利用九個區塊來偵測,統計每個 區塊的視差值,然後過濾出出現機率較少的視差值。第三個方法主要針對深度變化較 平緩的區域,此區域為前景與背景視差差異不會太大的區域,不過依然還是有錯誤的 可能。

4.1 偵測被遮蔽區域視差差異劇烈的地方

首先我們先去偵測被遮蔽區域並且視差變化大的地方,由於前景與背景視差變化 大的話,那麼被遮蔽的區域就被比較大,由於無法得知被遮蔽區域的色彩資訊,所以 此區域的錯誤率很高。所以我們先改善掉視差變化大的區域。

由於 Middlebury 網站的測試圖只有負視差與零視差的情況,負視差情況是左影 像中的物件出現在右影像中會往左位移,所以比對上左影像中的像素點去右影像找對 應點時,只須往左邊的方向找尋。因此只有一種情況會被遮蔽到,如圖 4.1 說明圖,

左圖為左影像,右圖為右影像,縱軸為深度變化,橫軸為影像水平座標位置,A和B 分別表示不同的物件,紅色區域為被遮蔽的區域。左圖中A物件並沒有遮蔽到B物 件,但在右圖中A物件遮蔽到B物件,因為A物件的深度值比B物件的深度值還要大 (深度值越大代表距離攝影機距離較近,所以位移量大)。所以被遮蔽的情況只有一 種,當右邊物件的深度值大於左邊物件的深度值時,這種情況才會有遮蔽的可能。

(36)

28

圖4.1 說明被遮蔽的情況:左圖為左影像,右圖為右影像,縱軸為深度變化,橫軸為 影像水平座標位置,A和B分別表示不同的物件,紅色區域為被遮蔽的區域。

我們偵測的方法是去判斷每一個線段的左右兩個線段,如果右邊的線段的視差值 大於左邊線段的視差值時,可能就有遮蔽的情況。因此由公式(13)來表示,假如右邊 線段的視差值比左邊線段的視差值大超過 1 以上的話,那麼此線段被遮蔽的可能性非 常大,我們將此被偵測的線段標記起來,Q 表示右邊線段的座標點,S 表示左邊線段 的座標點, DL(Q)為左線段的視差值,DL(S)為右線段的視差值。假如右線段的深度 值比左線段的深度值大超過 1 的話,那麼 Line(p)的點將被標記起來。由圖 4.2 說明,

圖中有綠色跟紅色跟藍色連續三個線段,綠色線段表示被偵測線段的左邊線段,紅色 表示被偵測是否被遮蔽的線段,藍色表示被偵測線段的右邊線段,S 表示綠色線段的 座標點,P 表示紅色線段的座標點,Q 表示藍色線段的座標點。假設右邊線段(藍色) 會比左邊線段(綠色)的視差值大超過 1 以上的話,那麼被偵測線段(紅色)就有可能被 遮蔽到,因此我們將被偵測線段標記起來。結果如圖 4.3(c),4.4(c),4.5(c),4.6(c) 所示,紅色區域為我們標記成被遮蔽的區域。找出錯誤點後,我們接下來利用 4.2 章節改善的方法來改善,改善後的結果如圖 4.3(d),4.4(d),4.5(d),4.6(d)所示,

我們將紅色區域(被遮蔽的區域)改善後的結果,可從圖 4.3(b),4.4(b),4.5(b),

4.6(b)與 4.3(d),4.4(d),4.5(d),4.6(d)作比較我們的方法將被遮蔽區域做了不 錯的改善。

 

QD

 

S  2

DL L (13)

(37)

29

圖4.2 圖中有綠色跟紅色跟藍色三個線段,假如右線段(藍色)的視差值比左線段(綠 色)的深度值大超過1的話,那麼被偵測線段(紅色)就會被標記。

(a) (b)

(c) (d)

圖4.3 Tsukuba(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(38)

30

(a) (b)

(c) (d)

圖4.4 Venus(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(39)

31

(a) (b)

(c) (d)

圖4.5 Teddy(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(40)

32

(a) (b)

(c) (d)

圖4.6 Cones(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(41)

33

4.2 改善的方法

接下來針對被標記的線段做改善,被標記的線段都是被偵測為此線段有被遮蔽 到,所以此線段的視差值可能都有錯。由於被遮蔽的區域的色彩資訊無法得知,所以 不管如何比對都很難比對出準確的視差值。所以我們想了一個方法,在被改善的像素 點設定一個搜尋範圍,這個範圍內的每像素點與被改善的像素點色彩差異小於門檻 時,我們將此點的視差值加入統計。統計出這個範圍內哪個視差值出現機率最高,那 麼就將出現出率最高的視差值取代被改善的像素點的視差值。不過範圍內有被標記的 像素點,此像素點我們不作統計,像素點被改善後,我們會將此點的標記取消。

利用統計表 H 統計這個範圍內所有像素點的視差值,針對被標記線段 Line(p)的 每一個 p 像素點的視差值作 p±(0,N)和 p±(N,0)範圍統計。用公式(14)表示,假設這範 圍內的像素點為 q 點,假如範圍內的 q 點與 p 點的色彩差值小於門檻 th 的話,那麼 H(DL(q))將加 1,DL(q)表示左影像中 q 點像素點的視差值。

 

P H

D

 

q

D L

L  arg maxd (14) 將統計完成的 H 統計表後,在統計表中找出 d(視差值)=0,1,2…max 中出現機率最大 的視差值,此視差值用來取代 P 點像素點的視差值。

4.3 偵測一些少數的錯誤視差值

接下來我們要過濾掉一些少數的錯誤視差值,此目的是為了消除雜訊點。我們的 方法是統計一個大範圍全部像素點的視差值,統計完後我每會去判斷個視差值,如果 某一個視差值小於這個大範圍的 2%的話,那將被我們認為是雜訊,把這個視差值的 位置找出來並且標記起來。利用統計表 H 統計一個 h/2*w/2 範圍的每個像素點視差值 (h=影像的高度,w=影像的寬度),利用這個統計的方法統計左影像中的九個範圍,

(42)

34

這九個範圍依序是圖 4.7 中的[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[3,4,9,10],

[2,5,4,7],[7,8,13,14],[10,13,12,15],[4,7,10,13]。這九個範圍分別統計,並判斷每個 視差值個數小於 h/2*w/2*0.02 的話(h:影像高度,w:影像寬度),便把此視差值的像 素點標記起來成 1,其他沒有錯誤的像素點標記成 0。每個範圍統計完成後,便可找 出錯誤的像素點。如圖 4.9(c),4.10(c),4.11(c),4.12(c)所示,紅色區域為被標 記成錯誤的像素點。我們接下來也是利用 4.2 章節改善的方法來改善,改善後的結果 如圖 4.9(d),4.10(d),4.11(d),4.12(d)。由圖 4.9(b),4.10(b),4.11(b),4.12(b) 改善前的影像與圖 4.9(d),4.10(d),4.11(d),4.12(d)改善後的影像比較。可以看 得出來被標記的區域有了改善。

圖4.7 上圖表示將左影像分成16個等分。

至於我們為什麼要用這九個區塊來找呢?那是因為假如一個物件剛好在中心的位 置如下圖 4.8,而我們只用四個區塊來做統計的話,那麼那中心的那個物件將會被標 記成錯誤的像素點。因為我們必須避免一個物件分屬在不同範圍的情況,所以用了這 九個區塊來做統計。

(43)

35

圖4.8 中心圓圈的物件剛好分屬在這四個範圍,假如我們只用這四個區塊來統計的 話,那麼這個圓圈的物件會被標記成錯誤的情況。為了避免這種情況,所以用了九個

區塊來統計。

(44)

36

(a) (b)

(c) (d)

圖4.9 Tsukuba(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(45)

37

(a) (b)

(c) (d)

圖4.10 Venus(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(46)

38

(a) (b)

(c) (d)

圖4.11 Teddy(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(47)

39

(a) (b)

(c) (d)

圖4.12 Cones(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(48)

40

4.4 偵測被遮蔽區域視差差異較平緩的區域

第三個偵測的方法與 4.1 的方法一樣,由於前面我們已經把視差變化劇烈的地方 做改善了,不過還有視差變化平緩的區域沒有做改善。視差平緩的區域就是前景視差 值比背景視差值大於等於 1 的情況,雖然只有視差值的差異只有 1,但是這個情況還 是有被遮蔽到,依然會影響到比對上的準確性,所以這個地方我們還是要去做偵測及 改善。我們去判斷每一個線段的左右兩個線段,假如右邊的線段是視差值比左邊線段 的視差值大於等於 1 的話,並且被偵測的線段與右邊的線段視差值相等的話,我們便 把此線段標記起來。利用公式(15)來做判斷,DL(Q)為左線段的視差值,DL(S)為右線 段的視差值,DL(P)為被偵測線段的視差值,Q 為右線段的像素點,S 為左線段的像 素點,P 為被偵測線段的像素點。假如右邊的線段是視差值比左邊線段的視差值大於 等於 1 的話,並且被偵測的線段與右邊的線段視差值相等的話,那麼被偵測線段將被 標記起來。由圖 4.13 說明,圖中有綠色跟紅色跟藍色連續三個線段,綠色線段表示 被偵測線段的左邊線段,紅色線段表示被偵測是否被遮蔽的線段,藍色線段表示被偵 測線段的右邊線段,S 表示綠色線段的座標點,P 表示紅色線段的座標點,Q 表示藍 色線段的座標點。假設右邊線段(藍色)會比左邊線段(綠色)的視差值大於等於 1,並 且被偵測線段(紅色)與右邊線段(藍色)的視差值相等的話,那麼被偵測線段(紅色) 就有可能被遮蔽到,因此我們將被偵測線段標記起來。結果如圖 4.14(c),4.15(c),

4.16(c),4.17(c)所示,將被遮蔽的線段標記起來,接下來也是利用 4.2 章節改善的 方法來改善,改善後的結果如圖 4.14(d),4.15(d),4.16(d),4.17(d)。由圖 4.14(b),

4.15(b),4.16(b),4.17(b)改善前的影像與圖 4.14(d),4.15(d),4.16(d),4.17(d) 改善後的影像作比較,由此可以看出我們可以把被標記的區域做了明顯改善。

   

   



Q D P D

S D Q D

L L

L

L 1

(15)

(49)

41

圖4.13 圖中有綠色跟紅色跟藍色三個線段,假如右線段(藍色)的深度值比左線段(綠 色)的視差值大於等於1,並且被偵測線段(紅色)與右線段(藍色)的視差值相等的話,

那麼被偵測線段(紅色)就會被標記。

(a) (b)

(c) (d)

圖4.14 Tsukuba(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(50)

42

(a) (b)

(c) (d)

圖4.15 Venus(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(51)

43

(a) (b)

(c) (d)

圖4.16 Teddy(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(52)

44

(a) (b)

(c) (d)

圖4.17 Cones(a)為左影像(b)為改善前的影像(c)為我們將被遮蔽的區域標記成紅 色,(d)改善後的結果。

(53)

45

第五章 實驗結果

我們用我們提出的方法來評估 Middlebury 網站的資料 [1]。測試的電腦平台是 CPU Core i5 2.67GHz 和 2GB 記憶體。測試四組影像結果顯示在圖 5.1,5.2,5.3,

5.4,這四組影像都是使用 RGB 色彩空間來做估測。圖 5.1(a),5.2(a),5.3(a),5.4(a) 為左影像。圖 5.1(b),5.2(b),5.3(b),5.4(b)為左影像的真實的深度影像(ground truth)。圖 5.1(c),5.2(c),5.3(c),5.4(c)為改善遮蔽區域錯誤前的影像。圖 5.1(d),5.2(d),5.3(d),5.4(d)為改善遮蔽區域錯誤後的影像。圖 5.1(e),5.2(e),

5.3(e),5.4(e)為改善遮蔽區域錯誤前錯誤的像素點,黑色的像素點為非遮蔽區域的 錯誤點,灰色的像素點為遮蔽區域的錯誤點。圖 5.1(f),5.2(f),5.3(f),5.4(f) 為改善遮蔽區域錯誤後錯誤的像素點,黑色的像素點為非遮蔽區域的錯誤點,灰色的 像素點為遮蔽區域的錯誤點。由圖 5.1(c),5.2(c),5.3(c),5.4(c)與圖 5.1(d),

5.2(d),5.3(d),5.4(d)比較可看出我們改善的方法大大的減少被遮蔽區域的錯誤。

第一個改善的區域是偵測視差值差距大的區域,由於右線段視差值比左線段視差值大 到超過 1 以上的區域可能造成遮蔽區域大,這個地方的錯誤率偏高。第二個改善的區 域主要針對一個大區域內錯誤的視差值。第三個改善的區域主要針對視差值較平緩的 區域,由於右線段視差值比左線段視差值大於等於 1 的區域,這個區域的被遮蔽的範 圍較小,不過還是可能導致計算出錯誤的視差值。而我們三個改善的方法都是一樣,

都是由錯誤像素點附近範圍找尋顏色相近像素點的視差值作統計,統計出哪一個視差 值出現機率最大,將取代錯誤像素點的視差值。

表一由 Middlebury 網站評估出來改善遮蔽區域錯誤前的錯誤率,每組影像會評 估出三項分數,第一項 nonocc 表示非遮蔽區域的錯誤率,第二項 all 表示整張影像 的錯誤率,第三項 discontinue 表示非連續區域的錯誤率,最後還有一項分數為四組 測試圖的平均錯誤率。改善遮蔽區域錯誤前的所估測出來的這四組影像深度資訊的平 均準確率已經達到 83%,但是從結果圖 5.1(e),5.2(e),5.3(e),5.4(e)看出被遮蔽 的區域很容易估測錯誤(灰色的像素點很多)。表二為改善遮蔽區域錯誤後的錯誤率,

(54)

46

平均準確率已達到 87.9%,從結果圖 5.1(e),5.2(e),5.3(e),5.4(e)與圖 5.1(f),

5.2(f),5.3(f),5.4(f)做比較,遮蔽區域改善了很多(灰色的像素點少了很多)。

另外我們將做另一個實驗,將 RGB 色彩空間轉換到 YCrCb 色彩空間來估測深度 圖。YCrCb 色彩空間中的 Y 為顏色的亮度,CrCb 都代表色彩,Cb 代表藍色資訊,Cr 代表紅色資訊。由於 YCrCb 色彩空間通常運用於影片或是數位攝影系統中,而一對左 右眼影像估測深度資訊的研究中,輸入的左右影像也是由影片或是數位攝影系統中取 得。因此我們實驗將 RGB 色彩空間轉換到 YCrCb 色彩空間來估測深度圖,看結果是否 會有改善。公式(16)來做轉換,R 代表紅色元素,B 代表藍色元素,G 代表綠色元素。

YCrCb 色彩空間估測出來的深度圖在圖 5.5(c)。圖 5.5(d)為 Middlebury 網站上估測 出來錯誤的像素點(YCrCb 色彩空間估測出來的深度圖),黑色的像素點代表非遮蔽區 域的錯誤,灰色的像素點代表遮蔽區域的錯誤。圖 5.5(a)為使用 RGB 色彩空間估測 出來的深度圖,圖 5.5(b)為 Middlebury 網站上估測出來錯誤的像素點(RGB 色彩空間 估測出來的深度圖)。從圖 5.5(b)跟圖 5.5(d)做比較,可以看得出來前面三組 Tsukuba 跟 Venus 跟 Teddy 影像,使用 RGB 色彩空間估測出來的效果比較好一點,而最後面 Cones 影像,RGB 色彩空間跟 YCrCb 色彩空間估測出來的效果差不多。





128

* 0813 . 0

* 4187 . 0

* 5 . 0

128

* 5 . 0

* 3313 . 0

* 1687 . 0

* 114 . 0

* 587 . 0

* 299 . 0

B G

R Cr

B G

R Cb

B G

R Y

(16)

表三為 Middlebury 網站計算出四組影像的錯誤率(使用 YCrCb 色彩空間估測出來 的深度圖),第一項 nonocc 表示非遮蔽區域的錯誤率,第二項 all 表示整張影像的錯 誤率,第三項 discontinue 表示非連續區域的錯誤率,最後還有一項分數為四組測試 圖的平均錯誤率。可以從表二(使用 RGB 色彩空間估測出來的深度圖)跟表三(使用 YCrCb 色彩空間估測出來的深度圖)做比較,前三組影像(Tsukuba 跟 Venus 跟 Teddy) 是 RGB 色彩空間的效果比較好,三項分數(非遮蔽區域,整張影像,非連續區域)用 RGB 色彩空間估測的錯誤率比較低,而第四組影像(Cones)用 YCrCb 色彩空間估測的 錯誤率,只有非遮蔽區域跟非連續區域比較低一點,但是 YCrCb 色彩空間估測與 RGB

(55)

47

色彩空間估測的整張影像錯誤率一樣,都是 16.4%的錯誤率。所以以這四組測試影像 可以得知使用 RGB 色彩空間即可。

表四為跟別人的方法做比較,測試影像跟我們實驗的影像一樣,評分的方式也是 都由 Middlebury 網站做評分。第一個 RealTimeGPU[4] 的方法是用動態規劃為架構 來估測的,不過他的方法加入很多計算做考量,所以他的方法估測的時間要比較久一 點,如果估測 320*240 大小的影像大約需要 3.61~9.63 秒,不過他有使用 GPU(圖形 處理器)來幫忙計算,使用 GPU 與 CPU 平行運算,減少估測時間。而我們的方法評估 出來的前兩組影像(Tsukuba 跟 Venus)的整張錯誤率比 RealTimeGPU 方法還低,不過 另外兩組影像的錯誤率就比 RealTimeGPU 方法的高了。而第二個 TreeDP[5]的方法是 以原始動態規劃做改良的,使準確度更高,不過這的方法就沒有交代他的估測速度有 多快了。而我們的方法評估出來的後兩組影像(Teddy 跟 Cones)的整張錯誤率比 RealTimeGPU 方法還低,但是前兩組影像錯誤率就比他的高了。第四個 DP 的方法就 是原始的動態規劃的方法,我們的方法評估出來的四組影像的整張錯誤率都比 DP 的 還要低,而且四組平均錯誤率比 DP 的方法將近要低了 2%。而最後兩個方法一個是使 用 SSD 的方法架構來估測,另一個是以 SAD 的方法架構來估測,這兩組的估測的結果 並不好,正確率不高。

我們演算法的主要優點是不需要執行任何的切割運算,只需要簡單的邊緣偵測,

可以大量的減少運算時間。而我們直行時間大部分都花在線段的比對上面,我們執行 四組影像所花的時間分別是 0.359 秒,0.625 秒,1.281 秒,1.297 秒(Tsukuba,Venus,

Teddy,Cones),改善的部分花不到 0.1 秒。而我們另一個特點,雖然我們的方法與 DP 相似也是以每一列分開來比對,但是,我們是以線段比對方式做比對,線段比對 的方式可以抑止條紋狀(streaking)效果,但是以線段比對的方式會造成遮蔽區域的 錯誤,所以我們用了三個方法將遮蔽的區域大幅做了改善,所以將遮蔽區域的錯誤大 量的減少。

(56)

48

(a) (b)

(c) (d)

(e) (f)

圖5.1 Tsukuba (a)為左影像,(b)影像為真實深度資訊影像,(c)為改善前估測出來 的深度影像,(d)為改善後估測出來的深度影像,(e)為改善前估測錯誤的像素點(錯 誤的視差值大於1以上),(f) 為改善後估測錯誤的像素點(錯誤的視差值大於1以上)。

(57)

49

(a) (b)

(c) (d)

(e) (f)

圖5.2 Venus (a)為左影像,(b)影像為真實深度資訊影像,(c)為改善前估測出來的 深度影像,(d)為改善後估測出來的深度影像,(e)為改善前估測錯誤的像素點(錯誤 的視差值大於1以上),(f) 為改善後估測錯誤的像素點(錯誤的視差值大於1以上)。

(58)

50

(a) (b)

(c) (d)

(e) (f)

圖5.3 Teddy (a)為左影像,(b)影像為真實深度資訊影像,(c)為改善前估測出來的 深度影像,(d)為改善後估測出來的深度影像,(e)為改善前估測錯誤的像素點(錯誤 的視差值大於1以上),(f) 為改善後估測錯誤的像素點(錯誤的視差值大於1以上)。

(59)

51

(a) (b)

(c) (d)

(e) (f)

圖5.4 Cones (a)為左影像,(b)影像為真實深度資訊影像,(c)為改善前估測出來的 深度影像,(d)為改善後估測出來的深度影像,(e)為改善前估測錯誤的像素點(錯誤 的視差值大於1以上),(f) 為改善後估測錯誤的像素點(錯誤的視差值大於1以上)。

(60)

52

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

圖 5.5 (a)為RGB色彩空間估測出的深度圖,(b)為RGB估測出來深度圖的錯誤像素點 (錯誤的視差值大於1以上),(c)為YCrCb色彩空間估測出的深度圖,(d)為YCrCb色彩

空間估測出來深度圖的錯誤像素點(錯誤的視差值大於1以上)。

(61)

53

表一. 我們由 Middlebury 資料庫上評分了改善前的四組圖,第一項分數為非遮蔽區 域的錯誤率,第二項分數為整張影像的錯誤率,第三項分數為非連續性的地方的錯誤 率。

nonocc all discontinue Average percent of bad pixels

Tsukuba 5.75 7.88 22.2

17.0 Venus 6.45 7.98 29.6

Teddy 15.3 24.0 32.5 cones 9.88 19.9 22.3

表二. 我們由 Middlebury 資料庫上評分了改善後的四組圖,第一項分數為非遮蔽區 域的錯誤率,第二項分數為整張影像的錯誤率,第三項分數為非連續性的地方的錯誤 率。

nonocc all discontinue Average percent of bad pixels

Tsukuba 2.54 3.22 12.7

12.1 Venus 1.98 2.83 11.1

Teddy 13.8 20.6 29.3 cones 9.61 16.4 21.2

參考文獻

相關文件

The mean free path is very large compared to the substrate to source distance, so that the transport of the vapor stream is collisionless.

• One technique for determining empirical formulas in the laboratory is combustion analysis, commonly used for compounds containing principally carbon and

Reading Task 6: Genre Structure and Language Features. • Now let’s look at how language features (e.g. sentence patterns) are connected to the structure

Now, nearly all of the current flows through wire S since it has a much lower resistance than the light bulb. The light bulb does not glow because the current flowing through it

Courtesy: Ned Wright’s Cosmology Page Burles, Nolette & Turner, 1999?. Total Mass Density

The entire moduli space M can exist in the perturbative regime and its dimension (∼ M 4 ) can be very large if the flavor number M is large, in contrast with the moduli space found

To improve the convergence of difference methods, one way is selected difference-equations in such that their local truncation errors are O(h p ) for as large a value of p as

Sunya, the Nothingness in Buddhism, is a being absolutely non-linguistic; so the difference between the two "satyas" is in fact the dif- ference between the linguistic and