國
立
交
通
大
學
電子工程學系 電子研究所碩士班
碩
士
論
文
使用二維攝影機陣列訊號
合成自由視點視訊
Free Viewpoint Video Synthesis using
2-D Camera Array Signals
研 究 生:徐崇毓
指導教授:杭學鳴 博士
使用二維攝影機陣列訊號
合成自由視點視訊
Free Viewpoint Video Synthesis using
2-D Camera Array Signals
研究生: 徐崇毓
Student: Chung-Yu Hsu
指導教授: 杭學鳴
Advisor: Dr. Hsueh-Ming Hang
國 立 交 通 大 學
電 子 工 程 學 系 電 子 研 究 所 碩 士 班
碩 士 論 文
A Thesis
Submitted to Department of Electronics Engineering & Institute of Electronics College of Electrical and Computer Engineering
National Chiao Tung University in Partial Fulfillment of the Requirements
for the Degree of Master in
Electronics Engineering
July 2009
Hsinchu, Taiwan, Republic of China
i
使用二維攝影機陣列訊號
合成自由視點視訊
研究生: 徐崇毓
指導教授: 杭學鳴 博士
國立交通大學
電子工程學系 電子研究所碩士班
摘要
立體影像技術已逐漸成為多媒體領域中的研究主流,而自由視點視訊更是其中的重 要議題之一。自由視點的目的是從攝影機陣列所擷取的影像來產生可以任意選擇虛擬視 點的影像訊號。在合成自由視點視訊上主要有兩個步驟:(1)從攝影機陣列所擷取的影像 來重建三維資訊,(2)合成使用者視點所看到的虛擬視訊。 現今,大部分的自由視點視訊系統都專注於一維攝影機陣列所記錄的影像資訊,且 研究內容也多以影像為主,而非視訊。我們希望將研究成果拓展到二維攝影機陣列與影 像序列(視訊)上。由於資料大量增加,除了一般的擷取資訊精確度的問題外,我們也需 要同時考慮計算複雜度的問題。 在本論文中,我們提出三個演算法:(1)使用二維攝影機陣列進行影像視差估測,(2) 棋盤式視差估測及影像合成,以及(3)使用移動補償技術進行合成自由視點視訊。首先, 我們使用四台不同位置攝影機來改善視差估測的精確性。由於計算複雜度的增加,我們 只處理在棋盤點上的攝影機所記錄的資訊;換言之,對於棋盤點之間的攝影機視差圖, 我們利用視差圖的平移特性以及參考鄰近攝影機影像的視差來進行估測。因此我們省下ii 了將近一半的計算量,且其結果不亞於每一台攝影機都使用原本估測方法所得到的結果。 因為一連串在時間上接近的影像彼此間具有強大的關聯性,我們引進了 GoP 的概念,對 每個 GoP 的第一張畫面優先進行處理。為了降低計算量,我們接著使用移動向量來估測 GoP 中剩餘畫面的視差圖。進行移動估測時,我們也同時加入了視差資訊來提升移動估 測的準確性。經由實驗結果顯示,計算時間可以降為原本的三分之一,且合成影像的品 質僅減少 0.05dB。
iii
Free Viewpoint Video Synthesis using
2-D Camera Array Signals
Student: Chung-Yu Hsu
Advisor: Dr. Hsueh-Ming Hang
Department of Electronic Engineering &
Institute of Electronics
National Chiao Tung University
Abstract
Stereo image technology becomes a popular research topic in multimedia, and the free viewpoint video is one of the important issues in this topic. The purpose of free viewpoint video is to generate video signals at a nearly arbitrarily chosen virtual viewing point based on the captured videos by a camera array. There are two principal steps in free viewpoint video synthesis: (1) estimate the 3D information from the camera-array captured images, and (2) synthesize the virtual video at the user’s chosen viewpoint.
Nowadays, most free viewpoint video systems focus on one dimensional camera array in recording the image information. Also, images, rather than videos, are often the subject of study. We like to extend the existing research results to cover the 2D camera array and the image sequences (videos). Because of the large amount of the increased data, in addition to the ordinary accuracy problem in information extraction, we also need to consider the computational complexity issue.
In this thesis, we propose three algorithms: (1) disparity estimation using 2D camera array pictures, (2) checker-board disparity estimation and image synthesis, and (3)
iv
cameras at different locations to improve the accuracy of disparity estimation. Due to the increased computational complexity, we process the data mainly on the cameras at the checker-board locations. That is, we estimate the disparity map of an in-between camera from the maps of its nearby four cameras by using the disparity map shifting property. Thus, we save nearly half of the computations and the results are as good as the original method that processes every camera data. Because the temporally close images in a sequence are strongly correlated, we adopt the group of pictures (GoP) concept that process the first frame of a GOP first. Then, we use the motion vectors to estimate the disparity maps of the remaining frames in a GoP to reduce computation. We improve the motion estimation accuracy by including the disparity information in the motion estimation index. The
experimental results show that the computing time is reduced to one third of original time, and the synthesized image quality drops only 0.05dB.
v
誌謝
在交大這兩年的研究生涯中,首先要感謝我的指導教授杭學鳴老師。杭老師除了在 學術研究上給予我指導外,更教導我做學問的方法以及應有的態度,讓我碩士生活中充 滿了收穫。在此向老師致上最高的感謝之意。 這篇論文能夠完成,也要感謝蔡家揚學長,除了在實驗的設計以及分析上提供了寶 貴的建議,更不厭其煩的與我討論,讓我得到不少研究上寶貴的經驗。此外,也要感謝 盧世榮學弟常常幫我買牛奶,並提供了我生活上諸多幫助,讓我可以更致力於研究。 另外,也要感謝 Commlab 提供的豐富資源,讓我得以順利進行研究並完成學業。 實驗室的學長及同學們就好像家人一般,大家平時的互動都讓我感到格外親切,讓我這 兩年留下難忘的回憶。 最後我要感謝我的家人,由於你們的支持,我曾能無後顧之憂地從事研究。在此, 僅將論文獻給曾經幫助過我、支持我的師長、友人、以及家人。vii
目錄
摘要 ... I ABSTRACT ... III 誌謝 ... V 目錄 ... VII 圖目錄 ... IX 第一章 緒論... 1 1.1 研究背景 ... 1 1.2 研究動機及目的 ... 2 1.3 論文大綱 ... 3 第二章 極平面圖像概述 ... 5 2.1 立體影像系統 ... 5 2.2 極平面圖像 ... 6 2.3 極平面圖像和三維空間的關係 ... 11 2.4 不連續極平面圖像 ... 15 第三章 使用動態規劃進行視差估測 ...17 3.1 視差定義 ... 17 3.2 使用動態規劃進行視差估測 ... 19 3.2.1 二維搜尋平面 ... 20 3.2.2 樹狀搜尋演算法 ... 22 3.2.3 代價函數 ... 24 3.2.4 立體樹 ... 29 第四章 適用於二維攝影機陣列之影像合成方法 ...33 4.1 傳統視差估測的問題 ... 33 4.2 參考鄰近影像進行視差估測 ... 35 4.3 棋盤式視差估測 ... 44 4.4 影像合成 ... 53 4.4.1 一維攝影機陣列影像合成... 53 4.4.2 二維攝影機陣列影像合成... 60 4.5實驗結果... 62 4.5.1 理想影像 ... 64 4.5.2 加入AWGN的影像 ... 67viii 4.5.3 實驗討論 ... 71 第五章 適用於二維攝影機陣列之視訊合成方法 ...75 5.1 使用移動向量進行視差估測 ... 75 5.2 參考視差資訊進行移動估測 ... 79 5.3 實驗結果 ... 86 5.3.1 理想連續影像 ... 87 5.3.2 加入AWGN的連續影像 ... 95 5.3.3 實驗討論 ... 102 第六章 結論與未來工作 ... 107 6.1 結論 ... 107 6.2 未來工作 ... 108 參考文獻 ... 109
ix
圖目錄
圖 2-1 典型的立體影像系統 ... 5 圖 2-2 以基線維軸心的平面束 ... 6 圖 2-3 在同一直線上的攝影機成像 ... 7 圖 2-4 影像資料立方體 ... 7 圖 2-5 鏡頭方向和基線垂直時,極像相當於影像上的一條水平掃描線 ... 8 圖 2-6 在圖 2-4 中的資料立方體的水平橫切面 ... 8 圖 2-7 (A)相機鏡頭方向和基線垂直的設置結構 (B)此種鏡頭設置下所得到的極平面影像 ... 9 圖 2-8 (A)相機鏡頭方向和基線之間角度固定的設置結構 (B)此種鏡頭設置下所得到的極平面圖像 ...10 圖 2-9 (A)相機鏡頭方向和基線之間角度不固定的設置結構 (B)此種鏡頭設置下所得到的極平面圖像 ....10 圖 2-10 攝影機和三張不同距離的平面在空間中的關係 ...12 圖 2-11 在圖 2-10 中所得到的極平面圖像 ...12 圖 2-12 真實影像所得到的極平面圖像和攝影機擷取影像的關係 ...13 圖 2-13 位於Z =0上的攝影機陣列和空間中一點(X,Y,Z)的位置關係 ...14 圖 2-14 極平面圖像上各種不同直線的示意圖 ...14 圖 2-15 極平面圖像的不連續情形 ...15 圖 3-1 典型多重視點系統 ...18 圖 3-2 雙重視點系統 ...19 圖 3-3 一對針孔攝影機對同一場景所取得的掃描線 ...20 圖 3-5 連結路徑和節點間的關係 ...21 圖 3-6 一個符合樹狀搜尋演算法條件的匹配序列 ...23圖 3-7 PIXEL-BASED DISSIMILARITY FUNCTION ...25
圖 3-8 WINDOW-BASED DISSIMILARITY FUNCTION ...26
圖 3-9 (A)正確的匹配(XL,XR)所在位置及其視窗範圍 (B)錯誤的匹配(XL’,XR’)所在位置及其視窗範圍 ...27
圖 3-10 SINGLE-SIDE WINDOW-BASED DISSIMILARLY FUNCTION在匹配(XL,XR)的示意圖 ...28
圖 3-11 以圖 3.6 為範例的立體樹,其中打叉的節點為超出預設視差值範圍的匹配 ...30
x 圖 3-13 其中一種走法在矩陣Γ與矩陣Π上(A)走一步的結果 (B)走兩步的結果 ...32 圖 4-1 因遮蔽效應造成的OCCLUSION ...34 圖 4-2 因為兩物體彼此位置過於接近,導致兩者之間的區域視差值錯誤 ...34 圖 4-4 給定的攝影機Oc和鄰近攝影機之間的位置關係 ...35 圖 4-5 攝影機Oc和鄰近攝影機的擷取影像 ...36 圖 4-6 參考不同位置的攝影機所得到的視差圖 ...37 圖 4-7(A)參考右邊影像時所選取的掃描線及搜尋方向 (B) 參考下方影像時所選取的掃描線及搜尋方向 38 圖 4-8 視窗和掃描線方向無關的情形,點P為圖中紅色的區塊,方形紅框為視窗,紫色虛線標記為掃描 線位置:(A)掃描線方向為水平 (B)掃描線方向為垂直 ...39 圖 4-9 視窗和掃描線方向相同的情形,點P為圖中紅色的區塊,矩形紅框為視窗,紫色虛線標記為掃描 線位置:(A)掃描線方向為水平 (B)掃描線方向為垂直 ...40 圖 4-10 視窗和掃描線方向垂直的情形,紅點表示P所在的位置,方形紅框為視窗,紫色虛線標記為掃 描線位置:(A)掃描線方向為水平 (B)掃描線方向為垂直 ...40 圖 4-11 三種視窗對圖 4-6 進行投票的結果:(A)視窗和掃描線無關 (B)視窗和掃描線方向相同 (C)視窗和 掃描線方向垂直 ...41 圖 4-12 圖 4-13 之測試影像 ...42 圖 4-13 三種視窗對圖 4-12 進行投票的結果:(A)視窗和掃描線無關 (B)視窗和掃描線方向相同 (C)視窗和 掃描線方向垂直 ...42
圖 4-14 不同視窗大小對投票結果的影響情形(A)視窗長度為 5 個PIXEL (B)視窗長度為 10 個PIXEL (C)視窗 長度為 15 個PIXEL (D)視窗長度為 20 個PIXEL ...43 圖 4-15 視差圖之間的平移關係 ...45 圖 4-16 因相鄰相機距離太遠導致同一物體在兩個成像平面上外觀不同 ...46 圖 4-17 兩種以上的視差值對應到同一點時的處理情形 ...46 圖 4-18 以左邊影像的視差圖來推測右邊影像的視差圖 ...47 圖 4-19 因不同視差值移動距離不同而導致右邊影像上部份區域無法定義視差 ...47 圖 4-20 使用主視差圖合成副視差圖的流程圖 ...48 圖 4-21 鄰攝影機OncC和周圍主攝影機的位置關係 ...49 圖 4-22 攝影機Oc和鄰近攝影機的擷取影像 ...49
xi 圖 4-23 各主攝影機擷取影像的視差圖 ...50 圖 4-24 使用不同位置的主視差圖推測影像Ic的視差結果 ...51 圖 4-25 以圖 4-24 進行投票來判斷影像Ic的視差圖 ...52 圖 4-26 主攝影機和副攝影機在二維攝影機陣列上的位置關係 ...53 圖 4-27 (A)左邊影像視差值大於對應的右邊影像視差值 (B)視差值修正後的結果 ...54 圖 4-28 (A)對應位置的視差值相同的情形 (B)虛擬視點平面的合成 ...55 圖 4-29 步驟 2 合成後結果 ...56 圖 4-30 (A)左邊影像視差值小於對應到的右邊影像視差值 ...57 (B) 實際的對應情形 ...57 圖 4-31 (A)虛擬視點位置靠近左邊攝影機時的合成情形 ...58 虛擬視點位置靠近右邊攝影機時的合成情形 ...58 圖 4-33 右邊影像在左邊影像上被遮蔽的情形 ...59 圖 4-34 步驟 4 完成後的結果 ...59 圖 4-35 以線性內插的方式將虛擬視點成像平面上無值區域填補後的結果 ...60 圖 4-36 在二維攝影機陣列上的虛擬視點影像合成流程圖 ...60 圖 4-37 兩階段的虛擬影像合成過程 ...61 圖 4-38 在二維攝影機陣列系統上合成虛擬視點影像之流程 ...62 圖 4-39 各種不同的物體運動行為連續影像: ...63 圖 4-40 兩種視差估測方式在不同測試影像上的平均PSNR ...64 圖 4-41 兩種視差估測方式在測試影像MONKEY-TRANSLATION上PSNR ...65 圖 4-42 兩種視差估測方式在測試影像MONKEY-ROTATION上PSNR ...65 圖 4-43 兩種視差估測方式在測試影像MONKEY-LEAVING上PSNR ...66 圖 4-44 兩種視差估測方式在測試影像MONKEY-APPROACHING上PSNR ...66 圖 4-45 兩種視差估測方式在測試影像MONKEY-COVERING上PSNR ...67 圖 4-46 兩種視差估測方式在添加AWGN的測試影像上的平均PSNR ...68 圖 4-47 兩種視差估測方式在測試影像MONKEY-TRANSLATION添加了AWGN後的 ...68 圖 4-48 兩種視差估測方式在測試影像MONKEY-ROTATION添加了AWGN後的PSNR ...69 圖 4-49 兩種視差估測方式在測試影像MONKEY-LEAVING添加了AWGN後的PSNR ...69
xii
圖 4-50 兩種視差估測方式在測試影像MONKEY-CLOSING添加了AWGN後的PSNR ...70
圖 4-51 兩種視差估測方式在測試影像MONKEY-COVERING添加了AWGN後的PSNR ...70
圖 4-52 (A)Dmap (B)DMapEmbed (C)IVirtual (D)IVirtualEnbed ...71
圖 4-53 (A)IVirtual和實際結果的誤差 (B) IVirtualEnbed和實際結果的誤差 ...72
(C)Dmap和DMapEmbed之間的差異 ...72
圖 4-54 使用完整視差估測相當於參考四張影像資訊 ...73 圖 4-55 使用完整視差估測相當於參考十六張影像資訊 ...74 圖 5-1 MARCOBLOCK和動態向量之間的關係 ...76 圖 5-2 使用移動向及線性內插的方式合成視差圖 ...76 圖 5-3 (A)原始影像 (B)使用完整視差估測方式得到視差圖 (C)利用移動向量合成的視差圖 (D)使用周圍 視差值填後補結果 (E)最後合成之視差圖 (F)兩種方式所得的視差圖之間的差異 ...78 圖 5-4 (A)參考影像間略過七張FRAME所合成的視差圖 (B)和使用完整視差估測的視差圖之間的差異 ....78 圖 5-5 (A)視差圖上MARCOBLOCK對應到正確位置的情形 (B)視差圖上MARCOBLOCK對應到不正確位置的 情形 ...79 圖 5-6 加入視差資訊後合成的視差圖和使用完整視差估測的視差圖之間的差異 ...80 圖 5-7 物體平移和係數α 之間的關係 ...81 圖 5-8 物體旋轉和係數α 之間的關係 ...81 圖 5-9 物體遠離和係數α 之間的關係 ...82 圖 5-10 物體靠近和係數α之間的關係...82 圖 5-11 物體彼此覆蓋和係數α之間的關係 ...83 圖 5-12 參考影像之間略過一張FRAME和係數α 的關係 ...84 圖 5-13 參考影像之間略過三張FRAME和係數α 的關係 ...84 圖 5-14 參考影像之間略過七張FRAME和係數α 的關係 ...85 圖 5-15 利用移動向量來加速視差估測的流程 ...85 圖 5-16 不同的物體運動行為連續影像: ...86
(A)EARTH-TRANSLATION(物體平移) (B)EARTH -ROTATION(物體旋轉) ...86
xiii (E)EARTH -COVERING(兩物體互相遮蔽) ...86 圖 5-19 在圖 4-39 中各種運動行為的合成影像品質和略過的FRAME數量之關係 ...89 圖 5-20 在圖 5-16 中各種運動行為的合成影像品質和略過的FRAME數量之關係 ...89 圖 5-21 連續影像MONKEY-TRANSLATION在略過不同數量FRAME的情況下的各張合成影像品質 ...90 圖 5-22 連續影像MONKEY-ROTATION在略過不同數量FRAME的情況下的各張合成影像品質 ...91 圖 5-23 連續影像MONKEY-LEAVING在略過不同數量FRAME的情況下的各張合成影像品質 ...91 圖 5-24 連續影像MONKEY-APPROACHING在略過不同數量FRAME的情況下的各張合成影像品質 ...92 圖 5-25 連續影像MONKEY-COVERING在略過不同數量FRAME的情況下的各張合成影像品質 ...92 圖 5-26 連續影像EARTH-TRANSLATION在略過不同數量FRAME的情況下的各張合成影像品質 ...93 圖 5-27 連續影像EARTH-ROTATION在略過不同數量FRAME的情況下的各張合成影像品質 ...93 圖 5-28 連續影像EARTH-LEAVING在略過不同數量FRAME的情況下的各張合成影像品質 ...94 圖 5-29 連續影像EARTH-APPROACHING在略過不同數量FRAME的情況下的各張合成影像品質 ...94 圖 5-30 在圖 4-39 添加了AWGN後,各種運動行為的合成影像品質和略過的FRAME數量之關係 ...95 圖 5-31 在圖 5-16 添加了AWGN後,各種運動行為的合成影像品質和略過的FRAME數量之關係 ...96 圖 5-32 連續影像MONKEY-TRANSLATION加入AWGN後,在略過不同數量FRAME的情況下的各張合成影像 品質 ...97 圖 5-33 連續影像MONKEY-ROTATION加入AWGN後,在略過不同數量FRAME的情況下的各張合成影像品 質...97 圖 5-34 連續影像MONKEY-LEAVING加入AWGN後,在略過不同數量FRAME的情況下的各張合成影像品質 ...98 圖 5-35 連續影像MONKEY-APPROACHING加入AWGN後,在略過不同數量FRAME的情況下的各張合成影 像品質 ...98 圖 5-36 連續影像MONKEY-COVERING加入AWGN後,在略過不同數量FRAME的情況下的各張合成影像品 質...99 圖 5-37 連續影像EARTH-TRANSLATION加入AWGN後,在略過不同數量FRAME的情況下的各張合成影像品 質...99 圖 5-38 連續影像EARTH-ROTATION加入AWGN後,在略過不同數量FRAME的情況下的各張合成影像品質 ... 100 圖 5-39 連續影像EARTH-LEAVING加入AWGN後,在略過不同數量FRAME的情況下的各張合成影像品質 ... 100
xiv
圖 5-40 連續影像EARTH-APPROACHING加入AWGN後,在略過不同數量FRAME的情況下的各張合成影像
品質 ... 101
圖 5-41 (A)Dmap0 (B)Dmap3 (C)使用Dmap0合成的影像 (D)使用Dmap3 合成的影像 ... 103
(E)使用Dmap0合成的影像和實際影像的誤差 (F)使用Dmap3合成的影像和實際影像的誤差... 103
圖 5-42 使用完整視差估測方式得到的兩張相鄰影像視差 ... 104
圖 5-43 利用圖 5-42 所合成出來的影像 ... 104
圖 5-44 參考移動向量資訊得到的兩張相鄰影像視差 ... 105
1
第一章
緒論
1.1 研究背景
近年來由於硬體以及相關演算法的進步,單一視點視訊技術已達成熟;而隨 著三維顯示技術的發展,多重視點視訊已逐漸成為多媒體領域下一個階段的研究 重心。MPEG 在 2003 年 11 月的會議中,正式制定了 3DAV(3D Audio-Video)文件 [1][2],其主要目標是擴展現有的視訊標準,其內容包含了三項多重視點視訊的 主要應用:自由視點視訊(Free Viewpoint Video)、全景視訊(Omni-directional Video)、 與互動式立體視訊(Interactive Stereo Video),其中的自由視點視訊即為本論文主 要研究主題。
自由視點視訊的目是使用有限的影像擷取設備來精確描述三維空間中的場 景資訊,並能有效地壓縮所紀錄的資訊。當呈現時,能夠即時合成出任意視點所 見的畫面。自由視點視訊在娛樂、教育、觀光等領域中有著極大的應用空間,而 目前自由視訊最主要的應用為 Free Viewpoint Television(FTV)[3][4]。
一個典型的自由視點視訊系統包含了五種程序:影像擷取、場景成像 (rendering)、壓縮、資料傳輸、以及顯示。其中場景成像為最複雜的程序,亦是 整個系統的核心。場景成像主要分為兩類: (1) model-based rendering(MBR) MBR 主要是利用物體模型投影到成像平面上而成。理想的 MBR 可以達 到完美的自由視點視訊,但是建構精細的物體模型本身就有其難度,因 此成像時容易產生以下問題: ● 模型中各多邊形的紋理不易分析。 ● 多邊形數量不足時,成像結果會有瑕疵。 ● 精細的模型(即多邊形數量極多)不適合用於即時運算。
2 (2) image-based rendering(IBR)[5] IBR 是利用台不同位置或角度的攝影機所擷取的影像,依據光學原理內 插出不同視點所見的畫面。相對於分析及計算物體模型,其所需時間大 幅降低。相對的,IBR 則面臨了如何內插的問題。 由以上的比較可以得知 IBR 為實現自由視點視訊較為可行的辦法,因此現有的自 由視點視訊系統中,大部分採用 IBR 的方式來進行場景成像。
1.2 研究動機及目的
傳統的自由視點視訊系統大多使用一維攝影機陣列來擷取影像[6],這使得視 點位置僅能在一個平面上移動。為了將移動的範圍延伸到立體空間上,我們將一 維攝影機陣列拓展為二維攝影機陣列。 自由視點視訊系統在進行影像內插時,為了增加其準確度會搭配視差 (disparity)資訊作為參考。但是視差資訊的計算具有高度複雜度,並且結果容易 受到遮蔽效應的影響。為了解決以上兩個問題,在本論文中,我們利用二維攝影 機陣列中每台攝影機在空間上的相關性,以及視差資料的特性來減少整體系統計 算影像視差的次數,並設計一套投票機制來取得更精確的視差資訊。 另外,現有的自由視點視訊系統僅能處理同一時間點上的影像,所以不同時 間點的影像都必須重新計算一次視差資訊。這會使得整個系統無法滿足即時運算 的要求。基於連續影像在時間上的相關性,我們利用移動向量來減少視差估測的 時間。為了取得更為精確的移動向量,在進行移動偵測時,我們不僅比較原始影 像之間的差異,同時也會加入已知的視差資訊作為參考。3
1.3 論文大綱
在本論文中,第二章將介紹核平面圖像和三維空間中的場景彼此之間的關係, 並利用該關係來合成虛擬視點影像。在第三章中,我們將說明本論文所採用的視 差估測方法。第四章將介紹如何利用二維攝影機陣列的空間相關性來提昇視差估 測結果和降低整體系統在視差估測上所花費的時間,以及如何使用視差資訊來合 成不同視點所看見的影像。該章節最後包含為實驗數據與結果比較。在第五章中, 我們將介紹如何利用移動向量減少連續影像在計算視差估測上所花得時間,以及 如何使用已知的視差資訊來提昇移動向量的精確度。該章節最後為不同參數設定 的實驗結果比較。第六章為結論以及未來工作。5
第二章
極平面圖像概述
2.1 立體影像系統
圖 2-1 為一個三維空間中典型的立體影像系統配置。我們使用針孔攝影機 來擷取影像資料,並將成像平面置於鏡頭前方。兩台攝影機之間的基線(basic line) 和成像平面的交錯處稱之為極點(epipole),而空間中的任一點P和兩台攝影機的 基線所組成的平面稱為極平面(epipolar plane)。所有的極平面集合相當於一個和 兩台攝影機之間的基線連結的平面束(pencil of planes) [7][8],如圖 2-2。極平面 在成像平面上的相交線稱為極線(epipolar line),在極平面上的每一點都會投影到 與其對應的極線上的點。因此,對應於同一張極平面的兩條極線,其線上各點也 會存在著對應關係。這項特性在立體影像處理上非常重要。當我們在兩張影像上 搜尋互相對應的點時,藉由此特性能將原本的搜尋範圍從在平面上的搜尋轉為在 極線上的搜尋,大量減少了搜尋時間。這項幾何特性被稱為 epipolar constraint[7]。p
Epipolar Plane Epipolar Line Epipole Epipolar Line Epipole Epipole Epipole Base Line Camera 2 Camera 1 Image Plane1 Image Plane2 圖 2-1 典型的立體影像系統6
Base Line
Epipolar Plane 1 Epipolar Plane 2 Epipolar Plane 3 Epipolar Plane 4 • • • 圖 2-2 以基線維軸心的平面束 由於 epipolar constraint 能夠降低了在兩台攝影機成像上搜尋對應點的時間, 為了將此概念延伸至攝影機陣列上,我們必須限制攝影機陣列的擺設方式:全部 攝影機的位置需在同一條直線上。在此情況下,每一台攝影機之間的基線都會和 該直線重合,因此任一對攝影機對於空間中一點所對應的極平面都會相同。所以 在兩張以上的影像之間搜尋一給定的對應點時,我們只需要計算一次極平面即 可。
2.2 極平面圖像
由於在極平面上的各點都會投影成每張影像上的一條極線,所以一個極平面 上的影像資訊都被包含在所對應極線的集合中。為了方便處理這些資訊,我們將 極線集合以圖像方式表現。由於該圖像包含了一個極平面上的所有特徵,所以我 們稱之為極平面圖像(epipolar plane image) [7][8]。圖 2-3 為同一直線上的三台攝影機的擷取影像。當攝影機彼此的距離夠小且 數量足夠時,每張影像之間會存在空間上的連續性。藉由空間上的連續性,我們 可以將攝影機陣列所擷取到的全部影像以一個影像資料所組成的立方體表現,如
7 線上的位置。 圖 2-3 在同一直線上的攝影機成像 [7]
P
v
u
圖 2-4 影像資料立方體 [7] 一張極平面圖像相當於是資料立方體中的一個切面[7][8],切面的位置和外 觀會受到攝影機鏡頭的設置所影響。當全部攝影機鏡頭方向和其基線垂直時,極 平面會經過每張攝影機成像上同樣高度的水平掃描線,如圖 2-5。因此,每張影 像上的水平掃描線都相當於一條極線。在此種鏡頭設置的情況下,資料立方體的8 每一個水平切面都會是一張極平面圖像。圖 2-6 為圖 2-4 的資料立方體中的一 個水平橫切面。 p Camera1 Camera2 Camera3 a b c c b a P 圖 2-5 鏡頭方向和基線垂直時,極像相當於影像上的一條水平掃描線
P
圖 2-6 在圖 2-4 中的資料立方體的水平橫切面 [7]9 由以上討論我們可以知道在同一條直線上的攝影機隨著鏡頭方向、聚焦的不 同,相同位置的攝影機所產生的極平面圖像也會不同。攝影機鏡頭的設置主要分 為三種:(1)全部攝影機鏡頭方向都和基線垂直,如圖 2-7(a),這也是最簡單的情 形。其極平面圖像如圖 2-7(b)。(2)每台攝影機鏡頭方向和基線間的夾角ϑ 為定值, 且 90 ≠ ϑ ,如圖 2-8(a),其極平面圖像如圖 2-8(b)。 (3)每台攝影機鏡頭方向和 基線間的夾角大小皆不固定,如圖 2-9(a),產生的極平面圖像如圖 2-9(b)。
P
(a) (b) 圖 2-7 (a)相機鏡頭方向和基線垂直的設置結構 (b)此種鏡頭設置下所得到的極平面圖像 [7],其中縱軸為攝影機在基線上的座 標10
P
ϑ ϑ ϑ ϑ ϑ (a) (b) 圖 2-8 (a)相機鏡頭方向和基線之間角度固定的設置結構 (b)此種鏡頭設置下所 得到的極平面圖像 [7] 其中縱軸為攝影機在基線上的座標P
(a) (b) 圖 2-9 (a)相機鏡頭方向和基線之間角度不固定的設置結構 (b)此種鏡頭設置下 所得到的極平面圖像 [7]11 由於在第一種攝影機鏡頭設置的情況下,製成極平面圖像的過程可以簡化成 將每一張攝影機成像上同樣高度的水平掃描線取出並排列。此外,此種鏡頭設置 方式所得到的極平面圖像能夠充分地描述影像上的物體在三維空間中的位置關 係,所以大多數的攝影機陣列都採用鏡頭和基線方向垂直的設置。
2.3 極平面圖像和三維空間的關係
為了描述空間中物體位置和極平面圖像紋理之間的關係,我們以圖 2-10 作 為範例。在圖 2-10 中分別為三個和攝影機陣列距離不同的平面以及一個給定的 極平面,而圖 2-11 則是對應該極平面所得到的極平面圖像。可以發現空間中的 各平面都會在極平面圖像上形成了一條由右上往左下延伸的帶狀紋理,距離攝影 機越近的平面所對應到的帶狀紋理斜率越小,而當平面在無窮遠處時所對應帶紋 理形斜率為 0。這是因為空間中的物體投影到攝影機成像平面時,同一件物體在 不同影像上的位置變化會呈現平移的關係,距離攝影越近的平面,在不同的攝影 機成像上的位置移動就會越大,對應到極平面上的圖像紋理斜率會越小。此外可 以發現在極平面圖像上,同一影線平面點位置,斜率較小的帶狀紋理會覆蓋斜率 較大的帶狀紋理。12 圖 2-10 攝影機和三張不同距離的平面在空間中的關係 圖 2-11 在圖 2-10 中所得到的極平面圖像 圖 2-12 以實際影像說明空間中的物體位置與極平面圖像紋理之間的關係。 圖中在極平面圖像下面的是最右邊攝影機擷取影像的下半部份,而在極平面圖像 上面的是最左邊攝影機擷取影像的上半部。可以明顯看出影像中遠景的區域,例 如後方的牆壁(紅色標記處),在極平面圖像形成的帶狀紋理斜率較大;而影像中 前景區域,例如影像中的盆栽(綠色標記處),所對應的條狀紋理斜率較小。
13
}
}
}
The image of
leftest camera
The image of
most right camera
EPI
圖 2-12 真實影像所得到的極平面圖像和攝影機擷取影像的關係 [7] 由以上的描述,我們可以知道帶狀紋理的斜率大小和彼此覆蓋的現象包含了 三維空間中物體位置資訊。以下我們將討論攝影機陣列、極平面圖像以及三維空 間中的物體彼此之間的關係。 為了方便討論,我們將攝影機陣列置於三維空間中Z =0上。在三維空間中 的一點(X,Y,Z)和攝影機之間的位置關係如圖 2-13,需要注意的是圖中Z軸的 正方向是向下,且P軸和X軸方向一致。θ 為攝影機和Z =0之間的夾角,且攝 影機擷取影像的水平座標u =tanθ。因此該點(X,Y,Z)和極平面圖像P−u平面 間的關係表示式如下: Zu X P= + (1)14 圖 2-13 位於Z =0上的攝影機陣列和空間中一點(X,Y,Z)的位置關係 以下我們參考 2-1 式說明在極平面圖像P−u上不同的直線方程式對在三維 空間的意義[9]: (1) 在極平面圖像上一直線 P=const.,如圖 2-14(a),相當於在Z =0平面上 某一台攝影機擷取影像上的一條水平掃描線。 (2) 在極平面圖像上一直線 P=au+b(a<0),如圖 2-14(b),相當於在三維 空間中Z <0的一個物件點。 (3) 在極平面圖像上一直線 P=au+b(a>0),如圖 2-14(c),相當於一個在 0 > Z 的視點所看到的影像的一條水平掃描線。
P
u
P
u
P
u
(a) (b) (c) 圖 2-14 極平面圖像上各種不同直線的示意圖 (a)P=const. (b)P=au+b(a<0) (c)P=au+b(a>0)15 從上述的說明中可以知道,藉由極平面圖像所提供的資訊以及對應再三維空間中 的關係,我們能夠合成出空間中不同視點所對應的虛擬影像。
2.4 不連續極平面圖像
要得到一個理想的極平面圖像,其中最重要的條件就是每張影像之間必須要 有高度的空間相關性;換言之,攝影機彼此之間的距離必須很小。若攝影機彼此 間的距離過大,則同一個物件在極平面圖像上會發生不連續的現象,如圖 2-15。 然而,現實中的攝影機陣列受限於硬體上的因素,往往無法達到此要求。在本論 文第四章中,我們提出了參考視差(disparity)資訊來內插兩條極線間的資訊,以 求模擬出理想的極平面圖像。u
P
圖 2-15 極平面圖像的不連續情形 [7]17
第三章
使用動態規劃進行視差估測
3.1 視差定義
假設在一個多重視點系統中有N台針孔攝影機Ok (k =1,⋅ ⋅⋅,N),其中攝影機 之間的光軸彼此互相平行,且基線皆對齊x軸,如圖 3-1 所示。我們令I 為攝影k 機O 之擷取影像,並以攝影機k O1為中心,令三維空間中的一點P的座標為 ) , , (x y z 。若Xk( p)表示點P投影至影像I 上的水平座標位置,則由幾何光學我k 們得知Xk( p)和(x,y,z)的關係如下[10]: z x f P X1( )= (2) z b x f P X k k 1 ) ( = − ,k=2,⋅ ⋅⋅,N (3) 其中b1k表示攝影機O1和O 之間的基線k O1Ok 長度,而 f 表示鏡頭焦距。 假如點P皆出現在影像I1以及影像I 中,則我們定義點k P在影像I1和I 之間k 的視差(disparity)d1k(P)為: ) ( ) ( ) ( 1 1 P X P X P d k = − k . (4) 結合(2)、(3)式,我們可以得到視差和攝影機之間的關係如下: z b f P d k k 1 1 ( )= . (5) 觀察上式可以發現在固定焦距以及基線長度的情況下,視差大小和z值為一個反 比關係;換言之,若空間中某一物體和攝影機之間的垂直距離越小,則該物體在 不同的影像中的位置變化會越大,若物體在距離攝影機無窮遠處,則物體在不同18 的影像中的位置是固定的。 圖 3-1 典型多重視點系統[10] 圖 3-2 為一個雙重視點系統。在這個例子中,區段AB、GH以及EF上的 各點皆會出現在影像I1和I2中,所以在這些區段中的各點視差值皆是明確的;但 受到前方區段DE遮蔽的影響,區段BC僅會顯示在影像I1上,因此在I2中不存 在對應於B′G′的區段,導致我們無法得知區段B′G′的視差值大小。這類因遮蔽 現象造成無法得知視差值的區域被稱為 occlusion。同樣地,影像I2中的區段H′E′ 也無法在I1前找到對應區段,所以H′E′也是一個 occlusion。判別 occlusion 的區 域在視差估測中是個很重要的問題,因為在多重視點系統中,Occlusion 必定會 伴隨著物體前後位置差異發生。
19 圖 3-2 雙重視點系統[10]
3.2 使用動態規劃進行視差估測
動態規劃(dynamic programming)是在處理整體最佳化演算法中常使用的方 法。動態規劃最大特色是可以將 N 階決策程序轉換成 N 個子決策程序,並藉由 最佳化每個子程序來求得整體程序的最佳解。這個特色使得演算法的時間複雜度 可以從指數級降為多項式時間。然而,動態規劃並非沒有使用上的限制。一個決 策程序必須符合以下兩個條件才能使用動態規劃:(1)該程序必須具有最優子結 構性質,這表示對於一個最優化策略,其子策略必皆為最優的。一個具有最優子 結構特性的程序又被稱為滿足最優化原理。(2)該程序必須具有無後向性,這表20 示在一個已排序的程序中,對某個給定的決策階段,其結果不受之前各階段的決 策結果影響,而僅由當前階段決定。換句話說,每一個決策階段彼此間都是互相 獨立的。一個具有無後向性的程序又被稱為為一個馬可夫程序(Markovian Process)。
3.2.1 二維搜尋平面
視差估測可以視為在一對經過攝影機校正的立體圖片上,對兩邊相同高度的 掃描線(scanline)循序進行對應點(corresponding point)的搜尋。對於兩個互相對應 的 pixel 組合,我們稱唯一組匹配(match)。圖 3-3 是一個在左右兩台針孔攝影機 成像上的掃描線。整個對應點搜尋過程可以使用一個二維搜尋平面(2-D search plane)來描述[11],如圖 3-4 所示,其中水平軸和垂直軸分別表示左側掃描線以 及右側掃描線上的 pixel 位置。因此,兩條掃描線之間最理想的所有匹配集合就 相當於一條以搜尋平面第一行及第一列的節點作為起始,和以最後一行及最後一 列的節點最為結束的最佳路徑(path)。 圖 3-3 一對針孔攝影機對同一場景所取得的掃描線21 在二維搜尋平面中,每一個節點(node)皆代表一組對匹配。如圖 3-5 所示, 對於某個給定的節點,前一個可能和它連接的節點只有三種情形:(1)前一組匹 配在左側掃描線上發生 occlusion,兩個節點間的連接路徑為水平。(2)前一組匹 配在左側及右側掃描線上皆緊鄰該組匹配,兩個節點間的連接路徑為斜線。(3) 前一組匹配在左側掃描線上發生 occlusion,兩個節點間的連接路徑為垂直。 圖 3-4 二維搜尋平面 圖 3-5 連結路徑和節點間的關係:(a)相鄰的匹配在右側掃描線上出現 occlusion, 節點間路徑為水平 (b)相鄰的匹配掃描線上無 occlusion,節點間連線為斜線 (c)相鄰的匹配在左側掃描線上出現 occlusion,節點間路徑為垂直
22 由以上敘述,我們可以發現對應點搜尋程序符合使用動態規劃的基本限制: (1)若某個給定的節點為一組最佳匹配,則和它相連的前一個節點必定也是最佳 匹配(最優子結構性質)。(2)一個節點在選擇連接前一個節點的路徑時,僅受到前 一個節點的狀態影響,而和之前的路徑的選擇結果無關(無後向性)。因此我們能 利用動態規劃的方式來實現對應點搜尋程序。 使用動態規劃時,搜索平面上的每一個節點都會紀錄它連結至起始節點 (start node)所需要的最低 cost。而對於一個給定的節點,它在選擇連結路徑時, 只需要考慮可能連結到的節點所紀錄的累加 cost 還有與其相連所花費的 cost 即 可。我們保留兩種 cost 相加結果最小的路徑來決定何者為前一個與它連結的節 點,並將 cost 相加結果作為該節點連結至起始節點所需要的最小 cost。當所有節 點都處理完後,我們在搜尋平面最後一行及最後一列上找出累加 cost 最小的結 束節點(end node),並追溯它和起始節點間的連接路徑。由於最佳子系統的特性, 該條連結路徑必為一個整體最佳解,而連結路徑上的各節點也會是兩條掃描線中 最佳的一組匹配集合。
3.2.2 樹狀搜尋演算法
在上一節中,我們雖然將搜尋對應點程序轉換成在一個二維搜尋平面上尋找 整體最佳路徑,但是這在實際上仍然不是一個容易且直觀的方法。樹狀搜尋演算 法(tree search algorithm)提供了一個稱為立體樹(stereo tree)的樹狀結構來描述二 維搜尋平面[13]。立體樹可以幫助我們以矩陣的形式來解決尋找最佳路徑的問 題。 在樹狀搜尋演算法中將一個匹配標記為M =(MxL,MxR),其中MxL和MxR分 別表示 pixel 在左側掃描線與右側掃描線上的位置。當一個有序的匹配集合 N i i M } 1... { = 符合以下四個條件時,則我們稱呼該集合為一組匹配序列(match23 sequence): max min : 1 d d d C ≤ ≤ ,其中d表示視差值 (6) xR j xR i xL j xL i M M M M C2: , < , & , < , ,其中0≤i< j<Nm −1 (7) ) 1 ( ) 1 ( : 3 Mi+1,xL =Mi,xL + Mi+1,xR <Mi,xR + C , (8) 其中i=0...Nm−2 ) 0 ( ) 0 ( : 4 M0,xL = M0,xR = C (9) 第一個條件是對於任一組有效的匹配,其對應的視差值都必須落在預設的範 圍內。第二個條件是規定在一個匹配序列中,任何一個 pixel 僅能出現一組匹配 中,且該序列中的每一組匹配彼此之間要符合排序上的關係。第三個條件是表示 在一組匹配序列中不允許出現缺口;換言之,在任何一組匹配中,無論是在左側 掃描線上或右側掃描線上,至少要有一個 pixel 跟下一組匹配中的 pixel 相鄰。第 四個條件則是匹配序列的第一組匹配一定要包含左側掃描線或右側掃描線的第 一個 pixel;若是該匹配序列包含左側掃描線或右側掃描線的最後一個 pixel,則 稱該匹配續列為完整的(complete)。 圖 3-6 一個符合樹狀搜尋演算法條件的匹配序列
24 圖 3-6 為一個符合匹配序列條件的範例。在這個例子中可以明顯看出最理想 的匹配續列為: ), 5 , 9 ( ), 4 , 8 ( ), 3 , 7 ( ), 2 , 3 ( ), 1 , 2 ( ), 0 , 1 {( = MS (10) )} 13 , 15 ( ), 12 , 14 ( ), 11 , 13 ( ), 10 , 12 ( ), 9 , 11 ( ), 6 , 10 ( 為了表達上的方便及編碼上的效益,通常會用視差序列(disparity sequence)來取 代匹配序列。上述範例中的視差序列表達方式如下: } 2 , 2 , 2 , 2 , 2 , 4 , 4 , 4 , 4 , , , , 1 , 1 , 1 ,
{Undef Undef Undef Undef
DS = (11)
其中Undef 表示該位置的 pixel 為 occlusion。
3.2.3 代價函數
在定義了匹配序列後,我們將在本節討論如何計算一個匹配序列(或視差序 列)所對應的 cost。進行對應點搜尋時,一般所採用的代價函數主要包含兩部份: 第一部份是針對未被遮蔽的 pixel。在視差序列中,一組未被遮蔽的 pixel 的 cost 為兩個 pixel 之間的差異值,因此又被稱為差異函數(dissimilarity function)。我們 會在下一段中做較詳細的討論。第二部份是針對受到遮蔽效應影響的 pixel。若
一個 pixel 在視差序列中被判斷為 occlusion,則其 cost 設為一個定值β。當發生
occlusion 的區域越大,這類 cost 在視差序列中的比例也會呈現線性增加。需要 注意的是,不論是左側掃描線或右側掃描線的 occlusion 區域都需要列入考量。 綜合以上敘述,典型的視差序列代價函數可以用以下方程式來表示:
∑
− = = 1 0 ) | ) , ( ( ) ( W xL match xR xL D DS C (12)∑
∑
− = − = + + 1 0 1 0 ) | ( ) | ( W xR occlusion W xL occlusion β β 差異函數主要用來描述左側掃描線上xL位置的 pixel 和右側掃描線上xR位 置的 pixel 兩者間的相似程度。它同時也是影響整體 cost 的關鍵,因此設計一個25
良好差異函數就顯得非常重要。以下我們介紹兩個常見的差異函數以及一個經過 改良的差異函數
1. Pixel-Based Dissimilarity Function
Pixel-Based Dissimilarity Function 為一個最基本差異函數[12][14]。當我 們 欲判斷在左側掃描線及右側掃描線上兩個 pixel 的相似程度時,它僅僅計算 兩個 pixel 之間差值的絕對值(absolute)或平方值(square),如圖 3-7。其表示 式如下: | ) ( ) ( | ) , (xL xR I xL I xR D = − ,(Absolute) (13) 2 )) ( ) ( ( ) , (xL xR I xL I xR D = − ,(Square) (14)
其中I表示 pixel 的亮度大小。Pixel-Based Dissimilarity Function 的優點為簡單
和計算速度快,不過它並不是一個可靠方法。除了容易受到雜訊影響外,它 處理平緩變化或是週期性紋理的區域時很容易得到錯誤的結果。
圖 3-7 Pixel-Based Dissimilarity Function
2. Window-Based Dissimilarity Function
Window-Based Dissimilarity Function[12][14][16]在判斷兩個 pixel 的相似 程度時,會以待判斷 pixel 的位置為中心,將該點周圍一定範圍的 pixel 一併 列入考量,如圖 3-8。其表示式如下[12][14]:
∑
− = + − + = R R k k xR I k xL I xR xL D( , ) | ( ) ( )| ,(Absolute) (15)26
∑
− = + − + = R R k k xR I k xL I xR xL D( , ) ( ( ) ( ))2,(Square) (16) 為了增加差異函數的鑑別度,通常會給予視窗中個 pixel 不同的權重 (weight),因此(14)、(15)式可改寫為:∑
− = + − + × = R R k k xR I k xL I k w xR xL D( , ) ( ) | ( ) ( )|,(Absolute) (17)∑
− = + − + × = R R k k xR I k xL I k w xR xL D( , ) ( ) ( ( ) ( ))2,(Square) (18) 一般來說,權重函數w(k)為一個在k =0時具有極大值並以其為中心的偶 函數。圖 3-8 Window-Based Dissimilarity Function
由於 Window-Based Dissimilarity Function 參考較多的 pixel 作為對應 點間的相似程度判斷,它在抵抗雜訊上有良好的表現,對於平緩變化或 是週期性紋理的區域判斷結果也遠比 Pixel-Based Dissimilarity Function 準 確。然而,Window-Based Dissimilarity Function 很容易對掃描線中 occlusion 區域周遭的 pixel 做出錯誤判斷,例如圖 3-9,其中掃描線上數 字代表各 pixel 的亮度大小。在圖 3-9 (a)是以(xL,xR)為掃描線中的一個理 想匹配,但是在左側掃描線上的黃色區塊在右側掃描線上被綠色區塊覆 蓋,導致視窗左半部份的 cost 大量增加;而在圖 3-9 (b)中,(xL,xR’)雖然 不是最理想的匹配,但是橘色區塊亮度和藍色區塊接近,造成(b)的總 cost
27 比(a)還小,因此造成判斷上的錯誤。 (a) (b) 圖 3-9 (a)正確的匹配(xL,xR)所在位置及其視窗範圍 (b)錯誤的匹配(xL’,xR’)所在位 置及其視窗範圍
3. Single-Side Window-Based Dissimilarly Function
Single-Side Window-Based Dissimilarly Function 是由 Window-Based Dissimilarity Function 改良而來的[15]。它除了保有 Window-Based Dissimilarity Function 在抗雜訊的能力以及在處理平緩變化和週期性紋理上的優異性,也 能夠有效地避免因為遮蔽效應造成 occlusion 周遭區域的判斷錯誤。
28
(a)
(b)
圖 3-10 Single-Side Window-Based Dissimilarly Function 在匹配(xL,xR)的示意圖:(a) 右側視窗範圍 (b)左側視窗範圍
29 觀察圖 3-9,我們可以發現因為被物體被遮蔽造成 cost 增加的情形僅出 現在視窗的左半邊或右半邊。因此,若僅採用正確部份的區域,就能夠有效 避免遮蔽效應所帶來的錯誤。基於以上想法,將原本以待判斷 pixel 為中心 的視窗改為兩個單邊視窗,如圖 3-10。這兩個單邊視窗會各自得到一個匹 配所需的 cost,而我們會判定 cost 較大的單邊視窗是受到遮蔽效應的干擾, 而採用較小的 cost 作為判斷結果。因此,Single-Side Window-Based Dissimilarly Function 可以寫成以下表示式: ) | ) ( ) ( | ,| ) ( ) ( | min( ) , ( 0 0
∑
∑
= − = + − + + − + = R k R k k xR I k xL I k xR I k xL I xR xL D , (19) (Absolute) ) )) ( ) ( (| , )) ( ) ( ( min( ) , ( 0 2 0 2∑
∑
= − = + − + + − + = R k R k k xR I k xL I k xR I k xL I xR xL D ,(20) (Square)3.2.4 立體樹
和二維搜尋平面基本結構類似,立體樹也是以節點和連結路徑來描述。每個 節點都必須符合條件C1。若兩個節點間的關係符合條件C2和C3,則它們之間 存在一條連結路徑。圖 3-11 為一個以圖 3.6 為範本的立體樹,其視差值範圍設 定在 0 到 4 之間,且 cost 計算方式是取兩點之間亮度差異的絕度值。圖中每個 圓形內的數對分別是對應到左側掃描線上位置xL位置與右側掃描線上位置xR (即xL−d )的亮度大小,並展示了一個以匹配(0,0)和匹配(1,0)為起始的可能路徑。 立體樹中任何一條完整的路徑必須包含起始節點和結束節點,且路徑方向由立體 樹的第一行以及第一列向最後一行及最後一列延伸。基於以上兩種特性,我們可 以利用矩陣來實現樹狀搜尋演算法[13]。30 圖 3-11 以圖 3.6 為範例的立體樹,其中打叉的節點為超出預設視差值範圍的匹 配 以圖 3-11 為例,我們用三個矩陣來實現該演算法,如圖 3-12,其中矩陣橫 軸xL代表 pixel 在左側掃描線上的座標,縱軸d代表各種可能的視差值。由於每 一組匹配間的 dissimilarity cost 是彼此獨立的,且可以快速取得,所以我們會先 計算各匹配的 dissimilarity cost 並將結果紀錄在矩陣γ 。根據立體樹的定義,每一 個節點只會有一條和前一個節點相連的路徑。為了能夠明確地知道和前一個節點 相連的路徑,我們會在矩陣Π 中紀錄前一個節點的位置以方便查詢,並設其初始 值為 0,若該節點為起始節點,其值則設為 F。最後一個矩陣Γ 紀錄了每一個節 點到其為止所累加的 cost。圖 3-13 是其中一種走法的下一步以及下兩步在矩陣Γ 與矩陣Π 上的結果。當所有矩陣都填滿後,我們只需要從矩陣 Γ 上找出記錄著最 小 cost 的結束節點,並參考矩陣Π 所紀錄的節點位置回溯,便可以找出在該立 體樹中的最佳路徑。
31
圖 3-12 用來實現樹狀搜演算法的三個矩陣。其中矩陣Γ 和矩陣 Π 為剛開始處理
32
(a)
(b)
33
第四章
適用於二維攝影機陣列之影像合成方法
在現有自由視點視訊系統中,大部分仍然使用一維攝影機陣列來進行影像擷 取,這使得使用者在視點位置的選擇上被限制在一個二維平面上。在本論文中, 我們將攝影機陣列從一維擴展為二維,讓使用者的視點可以在三圍空間中自由移 動。此外,一般的自由是點視訊系統僅使用攝影機所擷取的影像資料進行虛擬視 點影像的合成,因此很容易受到雜訊或物體材質等非人為因素的影響而導致合成 影像品質不穩定。為了降低這些外在因素的影響,在本論文中我們使用影像的視 差圖作為合成虛擬視點影像時的主要參考資訊。 在本章中,我們將介紹如何使用二維攝影機陣列在空間上的相關性來改善傳 統視差估測所會遇到的問題,並利用不同視差圖之間的平移特性來降低整體自由 視點視訊系統的計算量。4.1 傳統視差估測的問題
在傳統的立體影像系統上,通常僅使用兩台水平方向的攝影機來進行視差估 測。雖然藉由動態規劃可以得到一張最佳的視差圖(disparity map),但是仍然存 在兩個問題 :(1)由於影像中各物體的景深(depth)不同而產生遮蔽效應,造成視 差圖上會出現無法定義視差的區域,亦即該區域為 occlusion,如圖 4-1 中藍色 區域。(2)在影像中兩個未互相遮蔽的物體,若是兩者位置過於接近,則進行對 應點搜尋時會導致它們之間的區域視差值錯誤,例如在圖 4-2 中所標記的部份。 當物體和影像邊緣很靠近時,物體和影像邊緣之間的區域也會出現類似的情形, 如圖 4-3 標記的區域。其原因是因為該區域涵蓋範圍太小,導致視差值所帶來的 cost 無法累積到讓整體搜尋程序做出正確判斷。在本論文中,我們以樹狀搜尋演算法和 single-side window-based dissimilarly function 為基礎來加以延伸,並採用下式作為權重函數:
34 2 ) 1 | | ( ) (k = R− k + w (21)
其中R為 single-side window-based dissimilarly function 中是參考 pixel 的範圍,在
實驗中我們設定其大小為 10,而k則表示 pixel 在視窗中的位置。在決定一張影 像的視差圖時,除了參考水平方向的影像來進行視差估測外,也同時參考垂直方 向的影像,並將參考的攝影機數量從兩台增加至五台。在下一節中,我們將介紹 如和使用不同位影像的視差資訊來修正傳統方法所遇到的問題。 (a) (b) 圖 4-1 因遮蔽效應造成的 occlusion:(a)原始影像 (b)原始影像的視差圖,其中藍 色區域為 occlusion 區域 (a) (b) 圖 4-2 因為兩物體彼此位置過於接近,導致兩者之間的區域視差值錯誤:(a)原 始影像 (b)原始影像的視差圖,其中標記區域為視差值錯誤區域
35 (a) (b) 圖 4-3 因為物體位置太接近影像邊緣,導致兩者之間的區域視差值錯誤:(a)原 始影像 (b)原始影像的視差圖,其中標記區域為視差值錯誤區域
4.2 參考鄰近影像進行視差估測
在二維攝影機陣列上,對於一台給定的攝影機O 和其鄰近的攝影機位置關c 係如圖 4-4 所示,其中Or、O 、l O 以及d O 各表示u O 位置的右方、左方、下方、c 和上方的攝影機。假設圖 4-5 為這五台攝影機所擷取到的影像,並依照所對應的 攝影機分別標記為I 、c Ir、I 、l I 以及d I 。 u 圖 4-4 給定的攝影機O 和鄰近攝影機之間的位置關係 c36 (a) (b) (c) (d) (e) 圖 4-5 攝影機O 和鄰近攝影機的擷取影像: c (a)攝影機O 的擷取影像 (b)攝影機u O 的擷取影像 l (c)攝影機O 的擷取影像 (d)攝影機c r O 的擷取影像 (e)攝影機O 的擷取影像 d 若要計算影像I 的視差圖,傳統作法只會參考右邊的影像c Ir。我們將此方法 延伸,以I 為中心,分別參考周遭四張影像進行視差估測,其結果如圖 4-6。需c 要注意的是,參考影像的位置不同,進行對應點搜尋時的掃描線選取和搜尋方向
37 也會跟著改變。例如,以右邊攝影機的擷取影像Ir作參考,搜尋時是以I 和c Ir上 同樣高度的水平掃描作為比較,並以掃描線最左邊的 pixel 作為起始點向右搜尋, 如圖 4-7(a);若參考下方攝影機的擷取影像I ,則是比較d I 和c I 上同樣位置的d 垂直掃描線,並以掃描線最上方的 pixel 作為搜尋的起始點,如圖 4-7(b)。 (a) (b) (c) (d) 圖 4-6 參考不同位置的攝影機所得到的視差圖: (a)參考攝影機Or (b)參考攝影機O l (c)參考攝影機O (d)參考攝影機d O u
38 Scanline xC Scanline xR 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 xC: xR: 0 ••• • • • (a) Scanline xD Scanline xC 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 xD: xC: 0 •• • •• • start (b) 圖 4-7(a)參考右邊影像時所選取的掃描線及搜尋方向 (b) 參考下方影像時所選 取的掃描線及搜尋方向
39 為了從不同搜尋方向的視差圖中得到一個較理想的結果,我們採用投票的方 式來決定影像I 中每個 pixel 視差值大小。對於影像c I 中一個給定位置的 pixel c P, 最直接的投票方式就是選擇在不同視差圖上,同樣位置出現次數最多的視差值作 為該 pixel 應有的視差值。但這顯然不是一個很客觀的方法,因此我們進行投票 時會以P為中心設置一個視窗,並將視窗內視差資料一併列入考慮。以下我們介 紹三種不同視窗: (1) 視窗和掃描線方向無關 若不考慮掃描線的方向,則視窗是一個以點P為中心的方形,如圖 4-8, 其中 X 表示該點為 occlusion。我們統計四張視差圖中在視窗內各視差值出 現的次數(occlusion 區域不列入統計),並選擇出現次數最多的結果作為點 P的視差值。 (a) (b) 圖 4-8 視窗和掃描線方向無關的情形,點P為圖中紅色的區塊,方形紅框為視 窗,紫色虛線標記為掃描線位置:(a)掃描線方向為水平 (b)掃描線方向為垂直 (2) 視窗和掃描線方向相同 若視窗方向和掃描線方向相同,則視窗視一個以點P為中心且和掃描線方 向的矩形,如圖 4-9。
40 (a) (b) 圖 4-9 視窗和掃描線方向相同的情形,點P為圖中紅色的區塊,矩形紅框為視 窗,紫色虛線標記為掃描線位置:(a)掃描線方向為水平 (b)掃描線方向為垂直 (3) 視窗和掃描線垂直 若視窗方向和掃描線垂直,則視窗視一個以點P為中心和掃描線方向垂直 的矩形,如圖 4-10。 (a) (b) 圖 4-10 視窗和掃描線方向垂直的情形,紅點表示P所在的位置,方形紅框為視 窗,紫色虛線標記為掃描線位置:(a)掃描線方向為水平 (b)掃描線方向為垂直 圖 4-11 是分別以三種視窗對圖 4-6 進行投票的結果。可以明顯看出第一種 視窗會造成方形角落的部份變成圓弧狀,而第二種和第三種方式在這個範例中僅
41 在物體邊緣上出現細微的差異。 (a) (b) (c) 圖 4-11 三種視窗對圖 4-6 進行投票的結果:(a)視窗和掃描線無關 (b)視窗和掃 描線方向相同 (c)視窗和掃描線方向垂直 為了更明顯區別第二種和第三種視窗的差異,我們以圖 4-12 來進行測試, 其結果如圖 4-13 所示。可以看出第一種視窗仍然會造成邊緣變得圓滑而外觀嚴 重變形。而第二種視窗則會造成物體在視差圖中的面積比原本影像中大,導致部 份背景的視差值被物體的視差值覆蓋,例如圖 4-13(b)中所標記的區域。使用第 三種視窗的結果在物體邊緣上雖然也有許些變形,但和第二種視窗相比明顯變形 較接近原本影像。因此,我們選擇視窗方向和掃描線方向垂直作為我們的投票機 制。
42 圖 4-12 (a) (b) (c) 圖 4-13 三種視窗對圖 4-12 進行投票的結果:(a)視窗和掃描線無關 (b)視窗和掃 描線方向相同 (c)視窗和掃描線方向垂直
43 圖 4-14 是採用掃描線方向垂直的投票機制下比較視窗大小對視差圖的影響, 其視窗長度分別為 5、10、15、以及 20 個 pixel。觀察圖中可以發現,當視窗太 小時,參考的資料不足,容易造成物體邊緣區域視差值不一致,如圖 4-14(a)中 標記部份;而當視窗太大時,容易將其他物體的視差值一起列入參考,導致物體 邊緣變形或兩物體的間區域視差值錯誤,如圖 4-14(d)。經實驗測試後,視窗長 度以 10 個 pixel 最佳。 (a) (b) (b) (d) 圖 4-14 不同視窗大小對投票結果的影響情形(a)視窗長度為 5 個 pixel (b)視窗長 度為 10 個 pixel (c)視窗長度為 15 個 pixel (d)視窗長度為 20 個 pixel
此外,若出現票數相同的情形時,我們選擇較大視差值的作為最後結果。這 是因為視差值越大,代表物體越接近攝影機,其資訊相對較為重要。所以在無法
44 判定視差值時,選擇較大的視差值較能減少遺失重要資訊的風險。
4.3 棋盤式視差估測
在上一節中,我們參考鄰近四個方向的影像來得到更精確的視差圖,但該方 法的時間複雜度為傳統視差估測方法的四倍,再加上一個二維攝影機陣列中,攝 影機數量動輒超過數十台。這會使得計算整個系統的影像視差所需要的時間會非 常驚人。因此,在本節中我們根據二維攝影機陣列特有的排列結構提出一個降低 整體系統計算量的視差估測方法。 根據視差的定義,兩張相鄰影像的視差圖間會存在著一個平移的關係。例如 圖 4-15 分別表示兩張水平方向上相鄰影像之視差圖,DmapL代表左邊影像的視差 圖,DmapR為右邊影像的視差圖。其中圓形區域的視差值為 8,背景的視差值為 2。比較兩張視差圖,可以發現DmapR相當於將DmapL中的圓形區域向左平移 8 個 pixel
的位置;換言之,若我們已知DmapL,則只要將DmapL中各 pixel 向左平移和其視
差大小相同的距離就可以得到DmapR。對於降低計算二維攝影機陣列系統整體視
差值所需的時間,上述的特性提供了一個可行的方法:我們只需要計算系統中部 份攝影機擷取影像的視差值,其餘的攝影機擷取影像則利用已計算出來的視差圖 來推測。在本論文中,我們稱呼以完整方式計算得到的視差圖為主視差圖(primary disparity map),與其對應的攝影機稱為主攝影機(primary camera);而利用主視差 圖推測得到的視差圖稱為副視差圖(secondary disparity map),與其對應的攝影機 稱為副攝影機(secondary camera)。
45 Disparity:2 Disparity:8 Disparity:2 Disparity:8 (a) (b) Shift 8 Pixel (c) 圖 4-15 視差圖之間的平移關係:(a)左邊影像的視差圖DmapL (b)右邊影像的視差 圖DmapR(c)圓形區域在兩者間的平移關係 使用主視差圖來推測鄰近影像的視差時,需要遵守以下兩個原則:(1)在攝 影機陣列中,攝影機之間的距離不可以太大。當攝影機彼此相距太遠,會造成同 一件物體在不同攝影機成像中外觀不同,這會導致推測出來的鄰視差圖結果和實 際視差圖不合。例如圖 4-16,因為兩台攝影機距離太遠,我們可以看出在左邊 攝影機的成像平面上的綠色的區域明顯比在右邊攝影機成像平面上的綠色區域 來的大。(2)若發生有兩個以上的視差值在平移後對應到同一位置,則我們保留 最大的值作為該點的視差值。因為視差值越大代表物體越靠近攝影機,所以會遮 蔽視差值較小(亦即距離相機較遠)的後景,如圖 4-17。
46 圖 4-16 因相鄰相機距離太遠導致同一物體在兩個成像平面上外觀不同 圖 4-17 兩種以上的視差值對應到同一點時的處理情形 圖 4-18 是以左邊影像作為主視差圖DmapL來推測右邊視差圖DmapR的例子。 我們只要將DmapL上的每一點,向左平移和它的視差值大小相同的 pixel 數,即可 得到DmapR。觀察 DmapR,可以發現在視差值高的區域右邊會緊連著一塊無法定義
47 視差值的區域(藍色部份)。從平移的角度來看,在將DmapL上各點向左平移至 mapR D 上的對應位置時,視差值大的區域移動較多,視差值小的區域移動較少, 導致原本相鄰的兩個不同視差值區域在平移後被分開,如圖 4-19。而從遮蔽效 應的角度來看,相當於該區域所需資訊在DmapL中被前景所覆蓋而無法取得,而 出現類似 occlusion 的情形。 (a) (b) 圖 4-18 以左邊影像的視差圖來推測右邊影像的視差圖:(a)左邊的視差圖DmapL (b)參考DmapL而推測出來的右邊視差圖DmapR 圖 4-19 因不同視差值移動距離不同而導致右邊影像上部份區域無法定義視差
48 為了填補無視差值定義的區域以及增加結果的準確度,我們使用四台主攝影 機擷取影像的視差圖來合成一張副視差圖,其基本流程如圖 4-20。圖 4-21 為攝 影機彼此的位置關,其中OscC是副攝影機,OpcR、OpcL、OpcD以及OpcU分別為副 攝影機周圍的四台主攝影機,且假設擷取影像分別為圖 4-22 中的I 、c Ir、I 、l d I 以及I ,並以完整估測方式得到相對應的四張主視差圖,如圖 4-23。將主視u 差圖上的各點平移和其視差值相同的 pixel 數後,我們可以得到四張由不同方向 的主視差圖對I 所推測的視差結果,如圖 4-24。我們可以明顯看出任一張視差c 圖上無法定義視差值的區域(圖中標記處)皆可使用另外三張視差圖資訊來填補。 然而,在這四張視差圖上仍然有細部的差異,尤其在物體邊緣的區域。所以對於 c I 上各點,我們也是以投票的方式,選擇相同位置上出現次數最多視差值作為該 點視差,其結果如圖 4-25(b)。 Computing primary disparity Images of secondary camera Computing secondary disparity primary disparity primary disparity Images of primary camera 圖 4-20 使用主視差圖合成副視差圖的流程圖
49 圖 4-21 鄰攝影機OncC和周圍主攝影機的位置關係 (a) (b) (c) (d) (d) 圖 4-22 攝影機O 和鄰近攝影機的擷取影像:(a)c OmcU的擷取影像(b)OmcL的擷取 影像 (c)OncC的擷取影像 (d)OmcR的擷取影像 (e)OmcD的擷取影像