國
立
交
通
大
學
資訊科學系
碩
士
論
文
基 於 視 覺 的 智 慧 型 指 向 系 統
A Vision-based Intelligent Pointer System
研 究 生:張柏仁
指導教授:莊仁輝 教授
基於視覺的智慧型指向系統
學生:張 柏 仁 指導教授:莊 仁 輝 博士
國立交通大學
資訊科學系
摘 要
由二維的影像資訊重建出三維的場景模型,在電腦視覺領域已被研究多年, 這項技術若應用在指向系統上,便可以幫助我們進行場景的重建,以及計算使用 者所指向的位置。目前有關於指向系統的研究,大部分都是分析手勢的影像,來 計算所指的方向,但這類的方法精確度不高。本論文以一套現有的電腦視覺軟體 系統,首先進行場景特徵點的三維重建,保留這個步驟所計算出來的基本矩陣, 之後每次重建,不須再重算基本矩陣,直接用第一次重建時所保留的基本矩陣去 重建指向物體,這個方法的優點是計算時間短且有較高的精確度。實驗方面,分 別探討指向物體不同,基本矩陣不同,解析度不同以及指向方向不同的情況下, 所重建出來的三維場景及指向位置,並列出幾點可能影響指向精確度的因素,以 供日後改進做參考。A Vision-based Intelligent Pointer System
Student:Po-Jen Chang Advisor:Dr. Jen-Hui Chuang
Institute of Computer and Information Science
National Chiao Tung University
ABSTRACT
Computer vision techniques for 3D scene reconstruction from 2D images have been studied for decades. These technologies can be used to establish pointer systems to obtain the position users point at through 3D reconstruction. Most recent studies on pointer systems calculate the pointing direction and position by analyzing the images of gestures, which is not very accurate.
In this research, we develop a computer vision system which carries out the 3D reconstruction of the feature points in the scene and calculates the fundamental matrix. The obtained fundamental matrix is then used to perform the reconstruction. The advantage of this method is that only one calculation of the fundamental matrix is needed and with high accuracy.
Discussions of the accuracy of our 3D scene reconstruction and the obtained target position using different pointers, fundamental matrix, image resolution and pointing direction are given. Several possible methods that can improve the accuracy of our pointer system are also listed in this thesis.
目錄
摘 要... II ABSTRACT...III 目錄 IV 圖目錄 VI 表目錄 VIII 第一章 簡介...1 1.1 多視角立體重建...2 1.2 單相機多視角重建...3 1.3 多視角立體重建的應用─指向系統...4 1.4 雷射筆指向系統...5 第二章 投影幾何...7 2.1 齊次座標表示法...7 2.2 階層轉換...8 2.2.1 投影層...8 2.2.2 仿射層...9 2.2.3 公制層...10 2.2.4 歐幾里德層...11 2.2.5 各階層的特性整理...11 2.3 相機模型...13 2.4 極線幾何與基本矩陣...17 2.4.1 極線幾何...17 2.4.2 基本矩陣...18 3.4.3 必要矩陣...19 2.5 相機校正...20 第三章 三維重建...21 3.1 三維重建之步驟...21 3.1.1 估算基本矩陣...21 3.1.2 估算投影矩陣...22 3.1.3 歐氏三維重建...24 3.2 估測相機位置...25 第四章 指向系統之精確度分析...27 4.1 使用不同的指向物體進行三維重建...28 4.2 使用不同的基本矩陣進行三維重建...31 4.3 使用不同的解析度進行三維重建...374.4 不同的指向方向進行三維重建...40 第五章 結論與未來工作...44 參考文獻...45
圖目錄
圖1.1 3D Dome的示意圖(左)和實際照片(右)。...2 圖1.2 (a)指尖的模板 (b)手指頭的模板。 ...4 圖1.3 雷射筆簡報系統示意圖。...5 圖2.1 不同幾何轉換下的立方體。...13 圖2.2 針孔相機幾何 (a)針孔相機模型 (b)影像點的座標。 ...14 圖2.3 極線幾何。...18 圖3.1 由E 做重建後四種可能的幾何表示。 ...23 圖3.2 相機座標與點座標的旋轉及平移關係。...26 圖4.1 指向系統實驗流程圖。...28 圖4.2 正交方塊圖板之 (a)側視影像 (b)俯視影像。 ...28 圖4.3 (a)指向長方條 (b)指向雷射筆。 ...29 圖4.4 使用指向長方條做指向的實驗結果 (a)重建場景的左影像 (b)重建場景 的右影像 (c)利用尺的延伸去估計指向的目標點 (d)重建之後的目標 點。...30 圖4.5 使用指向雷射筆做指向的實驗結果 (a)重建場景的左影像 (b)重建場景 的右影像 (c)重建場景的俯視影像 (d)重建之後的目標點。 ...31 圖4.6 正交方塊圖板特徵點編號。...32 圖4.7 (a)重建場景的左影像 (b)重建場景的右影像 (c)取八個特徵點所算出的 基本矩陣之重建結果俯視圖 (d)取八個特徵點所算出的基本矩陣之目 標點重建結果 (e)取十個特徵點所算出的基本矩陣之重建結果俯視圖 (f)取十個特徵點所算出的基本矩陣之目標點重建結果。...33 圖4.8 (a)重建場景的左影像 (b)重建場景的右影像 (c)左右兩邊各取 32 個特 徵點所算出的基本矩陣之重建結果俯視圖 (d)左右兩邊各取 32 個特徵 點所算出的基本矩陣之目標點重建結果 (e)取左半邊 64 個特徵點所算 出的基本矩陣之重建結果俯視圖 (f)取左半邊 64 個特徵點所算出的基 本矩陣之目標點重建結果。...34 圖4.9 取不同的八個特徵點去算基本矩陣所重建出來的結果。(上方的圖顯示 所選取之特徵點,下方的圖為其重建結果)...35 圖4.10 (a)重建場景的左影像 (b)重建場景的右影像 (c)取 128 個特徵點所算出 的基本矩陣之重建結果俯視圖 (d)取 128 個特徵點所算出的基本矩陣之 目標點重建結果 (e)取 130 個特徵點所算出的基本矩陣之重建結果俯視 圖 (f)取 130 個特徵點所算出的基本矩陣之目標點重建結果。...36 圖4.11 以人工方式加入場景的特徵點 (a)左影像 (b)右影像。 ...38 圖4.12 待重建物體 (a)左影像 (b)右影像。 ...38圖4.13 使用 640 x 480 的影像做三維重建 (a)場景的左影像 (b)場景的右影像 (c)重建場景的俯視影像 (d)重建的目標點。 ...39 圖4.14 使用 1280 x 960 的影像做三維重建 (a)場景的左影像 (b)場景的右影像 (c)重建場景的俯視影像 (d)重建的目標點。 ...40 圖4.15 指向方向往右移動: (a)重建場景的左影像 (b)重建場景的右影像 (c) 重建場景的俯視影像 (d)重建之後的目標點。...41 圖4.16 指向方向往上移動: (a)重建場景的左影像 (b)重建場景的右影像 (c) 重建場景的俯視影像 (d)重建之後的目標點。...42
表目錄
表2.1 不同幾何轉換之比較...12 表2.2 不同投影轉換層級的投影矩陣...12 表4.1 使用輔助點與未使用輔助點的誤差比較表(單位:公分)...43
第一章 簡介
由二維的影像重建出三維的室內場景,一直是電腦視覺領域一個很重要的研 究主題,而根據不同的需求,便會有不同的研究重點。機器人視覺導航,便是利 用兩張或者是多張的影像對所在的場景進行三維重建,進而可以得知場景中三維 資訊,藉由這些資訊去判斷環境中障礙物的位置,提供給機器人路徑規畫時參 考。機器人導航時並不需要詳細地重建出如相片般真實的(photo-realistic) 場景,只需要重建出重要的環境結構,強調的是計算速度以及重建結果的精確 度。電腦繪圖以及虛擬實境,都會利用到影像重建的技術,比如一個日常的物品, 利用多個視角的照片,便可在電腦中建出它的三維模型,再輔以一些貼圖的技 術,即可做出許多徐徐如生的模型,可供給動畫、電玩甚至電影來使用。在現實 生活中大部分建築物的場景重建則可利用建築物常見的一些特性,比如牆面大多 互相垂直,窗戶多為方形等等的特色找出許多垂直與平行的特徵,而大大地簡化 重建時的計算複雜度。若將這些重建出來的模型,搭配上一個較大型的三維場 景,則可以建立出一個虛擬實境的環境。在現有的指向系統中,有許多不同的實 做方式,但是大部分都會利用三維重建計算出所指向的目標點,根據不同的應用 目的,對於指向系統的精確度也會有不同的要求,若我們將指向系統當成是射擊 遊戲中的瞄準系統,那麼對於指向系統精確度會有較高的要求,若是將指向系統 應用在一般的簡報系統中,那麼對於指向系統的精確度要求就不會太高,只要所 指向的目標點會隨著我們移動的方向而移動,我們就能指到想指的目標點。 本篇論文所提出的智慧型指向系統,即是利用三維重建,以取得指向物體的 三維座標,進而計算出所指向的目標點。若我們一開始即先將場景的三維模型重 建好,則當我們在判斷指向方向時,只需重建指向物體的兩個特徵點,不必再重 建整個場景,也不需要再算一次基本矩陣,可以加速運算,簡化重建所需的步驟。 在以下的幾個小節裡,我們將會介紹一些相關的三維重建的實例以及其他的指向系統,並且簡單介紹其特色,而透視理論及影像三維重建的詳細原理,將會在下 一章做說明。
1.1
多視角立體重建
多視角立體重建是從多個不同視角的位置取得影像資訊,將這些影像兩兩比 較,透過一些相似度比較(correlation-based)的方法,找出影像中相對應的特徵, 通常為點,進行三維重建。這種重建的好處是利用多台相機同時拍攝影像,在一 個特定的時刻就可以取得足夠的資訊來進行重建,如此一來便可針對運動中的物 體進行追蹤與軌跡重建。Narayanan, Rander 和 Kanade [1] 實作了一個系統,他們稱為 3D Dome。 如圖1.1,3D Dome 是一個由51台同步且完全校正好(fully calibrated)的相機所 結合而成的半球形環境,由於所有的相機皆是完全校正過的,於是每一台相機的 投影矩陣均可以事先得到。
圖1.1 3D Dome的示意圖(左)和實際照片(右)。
當有人在 3D Dome 中心進行活動時,所有的相機會紀錄下許多不同視角的 影像資訊,透過多基線立體重建(multiple-baseline stereo reconstruction)[2]的過 程,對於每一台相機可以得到一張密集的深度影像(dense depth graph)。接下 來將原始影像上的材質資訊貼上去,便可得到一個簡單的重建模型,作者稱之為 可見表面模型(visible surface model, VSM)。但是由於 VSM 是每一台相機所
重建的結果,難免會因為重建物體本身的遮蔽關係導致有些地方會沒辦法重建出 來,因此作者接下來又將許多的 VSM 結合為一,透過一些最佳化的選取及整 合方式,將數個角度所重建出的場景結合成完整表面模型(complete surface model, CSM)。最後同樣將材質貼上 CSM,得到一個完整的重建結果。 這個系統最大的特色就是相機已經完全校正好了,所以在三維重建中,只需 要簡單的計算即可算出每一點的三維資訊。但是使用了高達51台相機,在應用上 的彈性將會受到限制,相機間的同步技術也將會是高難度的挑戰。
1.2 單相機多視角重建
單相機多視角重建是以單一的相機,由多個不同的視角來取得影像進行重 建,這樣的重建有時候又稱為從運動中重建結構(structure from motion)。這麼 做的好處是只需要利用一台相機便可以進行重建,所花費的成本較少,其缺點是 在某一個時刻只能取得一張影像。Pollefeys 和 Van Gool [3] 便實作了這樣的一個系統,這個系統的輸入是一 連串同一個場景的影像,經過了初步的特徵點擷取步驟,對每張影像分別找出一 些特徵點,接下來進行相似度比較找出其對應關係。由於數位的相機在成像時一 定會有些微的誤差,加上影像本身會有不穩定的雜訊,因此 Pollefeys 他們將所 找出的特徵點,透過了 RANSAC(RANdom Sampling Consesus)的方式,算出 許多組可能的基本矩陣(fundamental matrix),再從這些基本矩陣中選出一個最 穩定的。基本矩陣即代表了每兩張影像之中每個點的轉換關係,關於基本矩陣的 定義與極線幾何將會在第三章中有詳細的介紹。
找出基本矩陣之後,即可進行投影重建(projective reconstruction)。透過一 些常見的相機內部參數假設,如 principle point 在影像中央、相機沒有 skew、
相機的焦距 ,便可簡化相機的校正過程。經過校正以後,即得到完整的
相機內部參數,於是可以重建出一個和真實場景只差一個比例常數的公制重建
y x f f =
(metric reconstruction)結果。到了這個階段,每兩張影像的相機內外部參數以 及投影矩陣都已經得到了,於是作者同樣地計算出密集的深度影像(dense depth graph),將影像中的每一個點都算出其深度資訊,最後貼上材質完成三維模型 的建立。
1.3 多視角立體重建的應用─指向系統
在現有的指向系統當中,絕大多數都是利用手勢來判斷指向的方向,而用來 判斷指向的兩個點,通常都是使用指尖與指根,也有使用指尖與手腕或是使用指 尖與眼睛的做法。這些方法中,影響指向精確度最大的因素就是如何準確取得兩 個決定指向的特徵點。Shin Sato 和 Shigeyuki Sakane [4] 所提出的系統,即是利用指尖與指根來判 斷指向的方向,而取得指尖與指根的方法,是利用一個模板(template)去近似 手指頭的位置,如圖1.2 (a)即為指尖的模板,先在兩張影像中找指尖,找到指 尖後,以圖1.2 (b)手指頭的模板去找指根的位置,找到指尖與指根之後就可以 決定指向的方向,再利用三維重建去算出指向的位置。在這個方法中,找指尖只 用了九個模板,只有九個方向,但是手指頭能指出的方向卻是無限多個,所以這 個方法只能簡略地近似我們所要指向的方向。 (a) (b) 圖1.2 (a)指尖的模板 (b)手指頭的模板。
而在 Yi-Ping Hung, Yao-Strong Yang, Yong-Sheng Chen, Ing-Bor Hsieh, and Chiou-Shann Fuh [5] 所提出的系統中,他們使用指尖與眼睛當成兩個指向點,在 使用上會有所限制,因為影像中必須包含人的眼睛,所以人臉的朝向必須限制在 某個範圍,使用上會有所不便。
1.4 雷射筆指向系統
在一般的會議中,最常使用雷射筆來當作我們的指向工具,用雷射筆所打出 的光點資訊,如果可以輸入到電腦中,則可以做一些其他的應用,不再只有指向 的功能,我們可經由雷射筆的使用對電腦做一些輸入指令的功能,使雷射筆成為 使用者與電腦之間溝通的媒介。Rahul Sukthankar, Robert G. Stockton and Matthew D. Mullin [6] 所提出的系 統,是一個雷射筆簡報系統,它必須先經過系統校正,取得相機平面、投影平面 以及顯示平面之間對應的關係,然後用相機取得光點的影像,來判斷指向的位置 並且輸入到電腦中,當光點停留在特殊的區域時,代表某些特定的指令輸入(例
如:繪圖、上一頁、下一頁)。圖1.3 為雷射筆簡報系統的示意圖。
這個系統是屬於 2D to 2D 的對應,如果指向的範圍超過顯示平面,就無法判斷 出指向的位置,況且雷射筆所打出來的紅光,如果射到人的眼睛上,會對眼睛造 成傷害,有潛在性的危險,如果打在會反光的表面上,紅光的強度會變弱,可見 性會降低,這些因素都使我們在應用上會有所限制。 本篇論文全文共分為五章,除了本章為簡介外,第二章介紹投影幾何、相機 模型、極線幾何、基本矩陣以及必要矩陣。第三章介紹三維重建的步驟以及相機 位置之估算。第四章介紹指向系統在不同的條件下做三維重建,並分析其指向精 確度。第五章為結論並說明本研究接下來的一些方向。
第二章 投影幾何
本章將介紹與我們所採用電腦視覺系統有關的觀念。我們會依序介紹齊次座 標表示法、階層轉換、相機模型、極線幾何與基本矩陣,最後說明此系統所使用 的相機校正方法。由於此方面研究已有相當長遠的一段時間,在這裡僅選出與此 系統較相關的部分,若想要深入探討本章沒有提到的部分,請參考電腦視覺相關 文獻[7][8][9]。2.1
齊次座標表示法
在平面上的一條直線可以用等式 ax+by+c=0 來表示,而不同的 a、b、c 參 數便代表了不同的直線,因此我們以向量的形式 來代表平面上的一條直 線。如果一個點 x= 在一條直線 l= 上,則將點座標 代 入直線方程式,便可以得到 T c b a, , ) ( T y x , ) ( 0 0 T c b a, , ) ( (x0,y0) 0 0 0 = 。為了能使用向量內積來表達這個 式子,我們可將 x 座標重新寫成 x= T的形式,則: y x , ,1) ( 0 0 + +by c ax = + +by c ax0 0 (x0,y0,1)(a,b,c)T = xTl =0 其中(x0,y0,1)T和 T就是平面上點 x 和直線 l 的齊次座標表示法。 c b a, , ) ( 0 0 0 +by +c= ax 和 kax0 +kby0 +kc=0 代表的是同一條直線,因此若在 的情況下,由向量形式表示的 和 ,代表相同的一條直 線。在同樣的情形之下, 0 ≠ k (a,b,c)T (ka,kb,kc)T 0 ) ( ) (x0 +kb y0 +kc= ka 和 a(kx0)+b(ky0)+c(k)=0 的 意義是相同的,因此在 的情況下, 和 表示的是同 一個點。也就是說,在 的情況下, 可以對應到我們熟悉的歐 幾里德平面上的 這一點。另外,在齊次座標表示法中, 是 沒有定義的。 0 ≠ k (x0,y0,1)T (kx0,ky0,k)T 0 3 ≠ x (x1,x2,x3)T ) / , / (x1 x3 x2 x3 (0,0,0)T2.2
階層轉換
在我們現實的生活環境中,所有我們看見的物體都可以用歐幾里德三度空間 來表示,但是有時候我們不需要用到完整三度空間的歐幾里德座標轉換,而只需 要針對投影幾何中比較簡單且限制較少的轉換來處理。我們可以把這些轉換看成 是一個階層性的關係[10][11]。從最簡單的投影(projective)層,接下來是仿射 (affine)層,公制(metric)層,最後是歐幾里德(Euclidean)層。這些階層性 的觀念,彼此在幾何上有著一些轉換的關係,並且有一些不變性存在。和投影層 有關的是投影轉換群,和仿射層有關的是仿射轉換群,和公制層有關的是相似群 (similarities),最後和歐幾里德層有關的是歐幾里德轉換群。很重要的一點是, 不同的轉換群之間有著父子群的關係,比方說相似群是仿射群的子群,而他們兩 者都是投影群的子群。有關這些轉換群間的詳細介紹,請參考[8]。 在每一種轉換群中,有著一個很重要的特性,那就是不變性,是一種在某一 個特定群中,不管經過什麼轉換,都依然保持不變的特性。不同的幾何轉換對應 著不同的不變性。這些不變性通常和幾何實體有關,若能恢復並得知其值,便可 將幾何轉換做些改變,通常是用來提昇成較高階層的轉換。例如,若我們能夠得 知幾何實體的角度和相對長度的資訊,就可以將仿射結構提升到相似轉換。在本 節中,我們將會個別對每一層做簡單的介紹,並且以圖例來表示在各個轉換層級 下正方體可能的形變,並以表格表示各種轉換的不變性。2.2.1 投影層
我們首先介紹投影層(projective stratum),它是所有層級中限制最少的一 層,因此含有最少的不變性,而投影轉換(projective transformation)也是最普 通的線性轉換。 三維空間的點轉換若滿足ρy=Tpx,則可稱為投影轉換。其中,ρ為一個常 數,x、y 分別為轉換前和轉換後空間點的齊次座標,Tp 為 4× 的可逆矩陣: 4= p T ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11 p p p p p p p p p p p p p p p p (2.1) 由於這個轉換矩陣可以有一個比例常數,因此共有15個自由度。 在投影轉換群裡,除了共線的不變性質外,交比(cross-ratio)也是不會隨 著投影轉換而改變的。假設有四個共線的點 M1,M2,M3 和 M4,則可將這四個 點表示成 Mi =M +λiM',其中 λi 為純量,M 為該直線的方向向量,則交' 比便可定義為: ) )( ( ) )( ( ) , , , ( 4 1 3 2 4 2 3 1 4 3 2 1 λ λ λ λ λ λ λ λ − − − − = M M M M R (2.2) 由式(2.2)可知,交比和 M 或 M 的選擇無關,只與共線之四點所形成的各線' 段之相對長度有關。
2.2.2 仿射層
仿射層(affine stratum)和投影層的不同點是,它建立在一個特別的參考平 面上,這個平面我們稱之為無窮遠處平面(the plane at infinity)。若我們於投影 空間P 中選擇一平面,而在不失一般性的情況下,我們可令其齊次方程式為3 ,則此平面便是無窮遠處的平面。 0 4 = x 在 X =[
]
的對應關係下,我們可以將投影空間 看成是包含了仿射空間。對於每個不在無窮遠處平面[
T T Z Y X Z Y X → 1]
0 4 = x 上的點,假設其空 間座標為(x1,x2,x3,x4),我們可以得到 X =x1/ x4,Y =x2/ x4,Z =x3/ x4。 仿射轉換可以表示成: ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ + ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 34 24 14 33 32 31 23 22 21 13 12 11 ' ' ' a a a Z Y X a a a a a a a a a Z Y X with det( )
aij ≠0,1≤ ji, ≤3 (2.3) 若寫成齊次座標系則可改寫為M'=TAM ,其中TA = (2.4) ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11 a a a a a a a a a a a a a a a a 因此仿射層含有12個自由度,而在仿射的情況之下,平行性(parallism)是不 變的。
2.2.3 公制層
公制層(metric stratum)相較於仿射層,多了角度與相對長度的限制,而其 與歐幾里德層(Euclidean stratum)的轉換,其間只差了一個常數倍的比例關係。 當我們無法得知物體實際尺寸大小時,我們便只能從影像中得到具有最多限制的 這種幾何結構。公制轉換可表示如下: ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ + ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 34 24 14 33 32 31 23 22 21 13 12 11 ' ' ' t t t Z Y X r r r r r r r r r Z Y X σ (2.5) 其中,[
]
T 和[
分別代表轉換前後的三維點座標, Z Y X X' Y' Z']
T R=⎣ ⎦
rij 是正交矩陣,它會滿足旋轉矩陣 RRT = 且 I det( )=1 R 的關係。將三維座標點 以齊次座標表示,可再改寫成 M'=TMM ,其中 ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 0 0 33 32 31 23 22 21 13 12 11 z y x M t r r r t r r r t r r r T σ σ σ σ σ σ σ σ σ (2.6) 因為正交矩陣只有3個自由度,再加上3個平移及1個常數,所以共有7個自由 度。在相似轉換的情形下,有兩個重要的不變性就是相對長度及角度。若可以得 到相對長度和角度的資訊,我們便可將仿射轉換提昇為相似轉換。2.2.4 歐幾里德層
歐幾里德層(Euclidean stratum)。它和公制層差不多,只不過把比例常數 給固定下來,而使得相對長度成為絕對長度。歐幾里德轉換有6個自由度,包括 了3個方位及3個平移。一個歐幾里德轉換可表示為: ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 0 0 33 32 31 23 22 21 13 12 11 z y x E t r r r t r r r t r r r T (2.7) 其中rij是正交矩陣的元素。2.2.5 各階層的特性整理
表2.1列出不同幾何轉換的特性,其中包含每個轉換的自由度、轉換矩陣及 不變性。表2.2則列出了由三度空間投影到二度空間的投影矩陣[8]。另外,圖2.1 則顯示出對於不同的幾何轉換下,立方體所可能呈現的樣子。由圖2.1 可知,至 少要到正規轉換以上的階層,才比較像立方體原來的樣子。表2.1 不同幾何轉換之比較 幾何轉換 自由度 轉換矩陣 不變性 投影(projective) 15 ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11 p p p p p p p p p p p p p p p p Tp 交比 共線 仿射(affine) 12 ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 0 0 34 33 32 31 24 23 22 21 14 13 12 11 a a a a a a a a a a a a TA 平行 共線、交比 公制(metric) 7
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1
0
0
0
33 32 31 23 22 21 13 12 11 z y x Mt
r
r
r
t
r
r
r
t
r
r
r
T
σ
σ
σ
σ
σ
σ
σ
σ
σ
角度、相對長度 平行 共線、交比 歐幾里德(Euclidean) 6⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1
0
0
0
33 32 31 23 22 21 13 12 11 Z Y X Et
r
r
r
t
r
r
r
t
r
r
r
T
角度、絕對長度 平行 共線、交比 表2.2 不同投影轉換層級的投影矩陣 投影層級 投影矩陣 說明 投影(projective) P P:從三度空間投影到影像平面 仿射(affine)[ ]
Pp P:無限遠平面和影像平面之間的 homography p:世界座標系原點的投影 歐幾里德(Euclidean) A[ ]
Rt A:相機內部參數 (R, t):在世界座標中的相機位置P T A T S T E T 圖2.1 不同幾何轉換下的立方體。
2.3 相機模型
在本節中,我們將會透過數學算式的推導,介紹本系統所使用的一般化相機 模型[7]。考慮用中心投影的方法,將一個空間中的點投影到一個平面,我們讓 投影中心位在歐幾里德座標系的原點,並且讓成像的平面是 ,稱為影像 平面。考慮一個針孔相機的模型如圖2.2(a),圖中 C 是相機光學中心、P 是 principal point、f 是焦距(focal length)、P 和C 所形成的直線稱為 principal axis、通過 P 和 Z 軸垂直的平面就是影像平面。空間中的點 在影像平 面上的對應點,即 X 和相機中心 C 所形成的直線和影像平面的交點x。用相似 f Z = T Z Y X X =( , , )
三角的幾何關係,參考圖2.2(b),我們可以知道 。如果不 考慮最後一個座標,針孔相機可以把歐幾里德三維空間的點對應到歐幾里德二維 空間的點: T f Z fY Z fX x=( / , / , ) T T Z fY Z fX Z Y X, , ) ( / , / ) ( a (3.8) X Z X Y
x
x y P C centre camera plane image axis principal Z Y C f Z fY / (a) (b) 圖2.2 針孔相機幾何 (a)針孔相機模型 (b)影像點的座標。 如果將空間中的點和影像上的點用齊次座標來表示,式(2.8)可以寫成以下 的線性方程式: P Z Y X f f Z fY fX x = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 1 0 0 0 0 0 0 0 0 X (2.9) 其中, X 表示三維空間中的點的齊次座標, x 表示影像平面上的點的齊 次座標,P 是一個 3×4的 矩陣,稱為投影矩陣。 在式(2.9)中,我們假設影像平面的原點剛好就是 principal point,但是實際 上可能不是如此。若 是影像上 principal point 的座標,則其歐幾里德 對應關係為: T y x p p , ) ( T y x T p Z fY p Z fX Z Y X, , ) ( / , / ) ( a + + (2.10)上述的對應我們可以用齊次座標表示如下: P Z Y X p f p f Z Zp fY Zp fX x y x x x = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ + + = 1 0 1 0 0 0 0 0 0 X (2.11) 若將相機內部參數定義為: ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 0 0 0 y x p f p f A (2.12) 那麼,式子(2.11)變可以寫成:
[
I]
Xcam A x= 3 |0 (2.13) 在式(2.13)中,我們把 寫成 ,主要是要強調這個座標是屬於 相機座標系統。然而,在一般情況下,三維空間中的點是以世界座標系統表示, 在世界座標系統和相機座標系統之間存在著旋轉和平移的關係。 T Z Y X, , ,1) ( Xcam 假設 X~ 代表三維空間中一個點的歐幾里德座標,Xcam ~ 代表在相機座標系 統中同一個點的座標,C~ 代表相機中心在世界座標系統的位置,R 是一個 的旋轉矩陣,代表著相機座標系統的方向。那麼, 3 3× X~ 和 Xcam ~ 之間的關係可以 表示成 Xcam ~ ) ~ ~ (X C R − = ,這個方程式可以齊次座標表示如下: cam X~ ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − = 1 0 ~ 1 1 0 ~ C R R Z Y X C R R X~ (2.14) 將式(2.14)代入式(2.13)可以得到:[
I C]
X AR x= |−~ (2.15) 其中 X 已經是相對於實際的世界座標系統,而式(2.15)已經將理想的針孔相機模 型推進為較具一般性的針孔相機模型了。我們可以看出在一般性針孔相機模型中,相機投影矩陣P= AR
[
I |− 有9個C~]
自由度:A 有 f 、px、py 共3個自由度,R 有3個自由度,C~ 有3個自由度。 A 之中的參數稱為相機內部參數,R 和 C~ 分別與相機在世界座標系統中的方 向和位置有關,稱為外部參數。通常我們用 t 來表示 −RC~,所以投影矩陣可 以改寫成 P= A[ ]
R|t ,而式(2.15)的針孔模型可以替換如下:[ ]
R t X A x= | (2.16) 上面所述的針孔模型是假設影像平面在 x 軸和 y 軸方向的比例是相等 的。但是如果是用數位的 CCD 相機,它的影像平面上 x 軸和 y 軸方向的比例 就有可能不是相等,也就是說經由 CCD 相機所得到的影像的每一個像素(pixel) 可能不是正方形。我們假設在影像座標中 x 軸和 y 軸方向的單位長度內分別有 和 個像素。那麼,在式(2.12)的左邊乘上一個對角矩陣 , 就可以把世界座標的點轉換到影像座標的點。因此,CCD 相機的內部校正矩陣 就會變成: x m my diag(mx,my,1) ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 0 0 0 0 0 v f u f A y x (2.17) 其中,fx = fmx、fy = fmy、u0 = pxmx、v0 = pymy。 和 代表相機在 x 軸 和 y 軸方向上的焦距,單位為像素。 x f fy(
u0,v0)
代表影像上用像素為單位的 principal point。因此,一個相機投影矩陣有10個自由度。 通常,更具一般性的相機內部參數矩陣還有一個參數 skew(γ ),這個參 數在大部分的相機中的值都是0,只有在某些狀況下不為0,將它加入內部參數矩 陣中,可得到式(2.18):⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 0 0 0 0 v f u f A y x γ (2.18) 那麼,一個一般性的相機投影矩陣就有11個自由度, A 便成為一個完整的相機 內部參數矩陣。 假設二維的點座標以
[ ]
T v u m= 來表示,而一個三維的點座標以 來表示。我們令他們的齊次座標表示法分別為[
]
T Z Y X M=[
]
T v u m~ = 1 和 , 一部相機的則用針孔相機的模型來表示,那麼,一個三維的點 M 和該點投影在 影像上的二維點座標 m 就有以下的關係存在:[
]
T Z Y X M~ = 1[ ]
R t M A[ ]
R t M v f u f m s y x ~ | ~ | 1 0 0 0 ~ 0 0 = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = γ (2.19) 其中 s 是一個比例常數, 是由世界座標系統轉換到相機座標系統的旋轉 矩陣和平移矩陣,A 則是相機的內部參數矩陣。[
R |t]
2.4 極線幾何與基本矩陣
2.4.1 極線幾何
在相同三維場景中,所取得兩張不同視角的影像之間,存在一個很重要的限 制關係,稱為極線限制(epipolar constraint)。我們以圖2.3來說明這個限制。假 設 M 是三維空間中的一個點,則它在第一張影像所成像的影像點是 m,在第二 張影像的影像點是 '。C 和 分別是第一個和第二個相機的光學中心。如圖 所示,三維空間的點 M 和影像點 m、m' 以及相機的光學中心是共平面的,我 們將這個平面稱為極線平面(epipolarplane) m C' π 。C 和 的連線分別與第一和 第二個影像平面相交於 e 和 ,我們稱這兩個點為極點(epipole)。 ' C ' eC C′ m m′ e e′ M ′l π plane epipolar m for line epipolar 圖2.3 極線幾何。 根據極線幾何,可以發現一個特性,第一張影像上的任何一點和第一張影像 的相機光學中心所形成的射線,投影在第二個影像平面上,將成像為一條線(極 點除外),這種線就稱做極線(epipolar line)。如圖2.3中的線 ',就是 m 在第 二張影像上的極線。不同的三維空間點對於 C 和 會產生許多不同的極線平 面,而這些極線平面將會交於一條線,也就是相機光學中心 C 和 ' 的連線, 稱為基線(baseline)。從影像平面來看,也就表示所有的極線都會通過極點。 l ' C C 極線限制對於影像特徵點的對應有著極大的輔助功能,可以將搜尋的範圍有 效地從整張影像減少到極線附近。另外極線皆會交於極點這個性質,也可以用來 當作一個誤差評量的標準。
2.4.2 基本矩陣
基本矩陣(fundamental matrix)是用來描述在極線幾何中,任一點與其極線 之間的對應關係。由圖2.3中我們可以看出,在第一張影像中的任一點 m ,在第 二張影像會有一條對應的極線 ,在第二張影像中和 m 點相對應的 ' 點一 定會位在這條極線 上。m 點和極線 ' 透過基本矩陣 ,以齊次座標表示 'l m 'l l F會有一個線性的關係: 'l=Fm (2.20) 因為 m 在第二張影像上的對應點 ' 會位在 ' 這條線上,所以 的座標和 的向量內積為零: m l m' 'l 0 ' ' ' l =m Fm= mT T (2.21) 我們可以將兩張影像的角色互換,則基本矩陣會轉變為原來矩陣的轉置矩陣,也 就是可以將上式轉換為: (2.22) 0 '= m F mT T 當第一張影像中的點是極點 e 的時候是一個特例,它所對應的極線退化成第二 張影像的極點 e'。所以: 0 '= Fe= l (2.23) 除此之外,基本矩陣可寫成一個和相機內、外部參數有關的形式:
[ ]
1[ ]
' ' 1 ' − × − × − = ≅ A t RA At A RA F T (2.24) 其中,[ ]
t × 為一個內含平移向量 t =[
t1 t2 t3]
T 的斜對稱矩陣,也就是:[ ]
t ×= (2.25) ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − − 0 0 0 1 2 1 3 2 3 t t t t t t3.4.3 必要矩陣
正規化影像座標的特別化基本矩陣即為必要矩陣(essential matrix),也可 以看成是內含了相機內部參數的基本矩陣。 已知相機投影矩陣為 P= A[ ]
R|t ,且 m=PM , m 為影像上的點,M 為 真實的三維空間點。若相機內部參數矩陣 A 已知,則我們可以在 m 左邊乘上 A 的反矩陣得到 m~= A−1m,則 m~ =[ ]
R|t M ,m 即為以正規化座標表示之影像 點,可視為點 M 使用了具有單位校正矩陣 I 相機投影在影像上的二維點,投 ~影矩陣 A−1P=
[
R|t]
稱為正規化投影矩陣。 必要矩陣的定義如下: 0 ~ ' ~ Em= mT(2.26) m~ 和 m~' 分別代表相對於點 m 和 m' 之正規化影像座標。將 m~ 和 m~' 分別 用 m 和 ' 取代,則式(2.26)可改寫為 。與式(2.21)做比較, 則可知必要矩陣與基本矩陣間的關係為: m m'T A'−T EA−1m=0 FA A E = 'T (2.27) 將上式代入(2.24),得到:
[ ]
t R E = × (2.28) 到這裡我們可以發現,當我們需要重建出相機的投影矩陣時,只要能算出基 本矩陣,便能還原出旋轉矩陣 R 和平移向量 t,詳細的重建過程我們將會在下 一章中做詳細的介紹。2.5 相機校正
在完全不知道場景的結構以及相機的資訊的情況下重建三維場景,所有的資 訊都將隱含在基本矩陣中。然而,若我們限制在拍攝影像的過程中,不改變相機 本身內部設定,如焦距,則相機內部參數並不會改變,因此我們便可以透過事先 校正(calibration)的方式先算出這些參數,以降低重建時的複雜度。 從式(2.18)中我們可以知到,一般相機的內部參數有 fx、 fy、γ、 和 這 五個, 0 u v0 γ、u0和 v0 這三個參數較為固定,而且可以有一些假設值比如 γ =0, 和 分別為影像中心等,但是相機的焦距 、 卻對於三維重建有很 大的影響,因此相機校正也是近年來電腦視覺的一個重要的課題。 0 u v0 fx fy 在本系統中所使用的相機,是一個事先校正好的相機。這個校正的方法是由 Zhang [12]所提出的,利用平面的 homography 性質來計算相機的內部參數,並 且在計算出初始參數之後再進行一些微調,以達到最佳化。第三章 三維重建
有了投影幾何的理論基礎,本章將會介紹三維重建的步驟,除了重建出三維 場景之外,也會討論如何利用必要矩陣找出相機的旋轉矩陣及平移向量,進而還 原出相機的三維位置資訊。3.1 三維重建之步驟
在具備了投影幾何的基本觀念之後,本節將介紹由兩張影像重建場景的方 法,其步驟包括: 1. 由對應點計算基本矩陣,見3.1.1 節。 2. 由基本矩陣計算投影矩陣,見3.1.2 節。 3. 對每組對應點,計算其三維空間之點座標,見3.1.3 節。 以下就針對各個步驟進行詳細的說明。3.1.1 估算基本矩陣
三維重建的第一個步驟,是要估算出兩張影像間的基本矩陣。由式(2.22)中 我們可以得知,在兩張影像上任意的對應點 m 和 ' 必定能滿足 這個條件。假設兩張影像中的特徵點 和其對應點 已知,則根據式 (2.22),每一組對應點可以產生一個線性方程式,由於基本矩陣 F 扣除了一個縮 放的比例常數之後,會剩下八個未知數,因此只需要八組對應點,即可以線性方 法解出一個允許改變大小比例的基本矩陣,這個方法稱為八點演算法(8-point algorithm)[13]。 m mTFTm'=0 i m mi' 考慮到數位相機在成像時可能的取樣誤差,再加上影像本身會有不穩定的雜 訊,甚至在特徵點的擷取與對應上發生錯誤,使得只利用八個點來計算基本矩 陣,並不保證能得到正確的結果,因此有很多方法也被提出來改進基本矩陣。比如使用超過八組對應點計算出多組基本矩陣,再透過最小平方(least-square)法 來求出最佳的解,以增加基本矩陣的可靠度。有關基本矩陣的最佳化方法比較, 可以參考[14][15][16]。
3.1.2 估算投影矩陣
利用前述之方法得到基本矩陣之後,第二個步驟我們要算出兩台相機各自的 投影矩陣。由於本論文中,相機是已經校正完畢的,因此可以看成兩台相機的內 部參數矩陣 A 和 'A 皆已知,加上在第一步中算出的基本矩陣 F,透過式 (2.27),我們便可以算出必要矩陣 E 。必要矩陣有以下的兩個性質: 1. 矩陣 為一必要矩陣若且唯若 E 的兩個奇異值相等,第 三個為零[17]。因為必要矩陣 E 可分解為 3 3× E=[ ]
t ×R[ ]
t ×R,其中[ ]
為斜對稱矩 陣,考慮 × t ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − = 1 0 0 0 0 1 0 1 0 W 且 (3.1) 則 斜對稱矩陣 ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − = 0 0 0 0 0 1 0 1 0 Z 3 3×[ ]
t × 可分解為[ ]
T kUZU t × = ,U 為正交矩陣,而 ,此即具有兩個相等奇異值之 E 的奇異值分解(SVD)。 W diag Z = (1,1,0) 2. 假設 E 的 SVD 為 T, 則使用上述的表示法, V Udiag E= (1,1,0) E =[ ]
t ×R 有以下兩種可能的分解方式:[ ]
T UZU t × = , T或 (3.2) UWV R= R=UWTVT 上式中的 R 即為相機的旋轉矩陣,而平移向量 t 則包含在 裡。由 於[ ]
的富氏長度為2,表示若[ ]
t × × t[ ]
t × 包含比例,則 t =1。因為 , 可知 ,也就是 U 的最後一行。[ ]
t xt =0 3 ) 1 , 0 , 0 ( u U t = T =由以上兩個性質,我們可以找出可能的 R 和 t ,由於 R 有兩種可能性, 而 t 因為沒有辦法決定其正負號,所以也會有兩種可能性,因此第二部相機相 對於第一部相機的外部參數,便會有四種可能的選擇。也就是說,給一個必要矩 陣 T,第一部相機的投影矩陣為 Udiag E = (1,1,0) P=
[ ]
I|0 ,則第二部相機的投 影矩陣 P' 會有四種可能的選擇,分別為:⎣
| 3⎦
' UWV u P = T 或⎣
UWVT | u− 3⎦
或⎣
UWTVT | u3⎦
或⎣
UWTVT | u− 3⎦
(3.3) 圖3.1說明由 E 做重建後四種可能的幾何表示,A 代表第一部相機中心,B 和 B 代表第二部相機可能的相機中心,' 即為重建出之三維點。由於 重建後的點只有可能會在兩部相機的前方,因此只要測試一個點是否落在相機前 方,就可以從四種可能的相機位置中決定第二部相機的位置。 4 1 ~ M M 圖3.1 由E 做重建後四種可能的幾何表示。3.1.3 歐氏三維重建
在取得兩部相機的投影矩陣 P 和 之後,接下來便可進行點的歐式三維 重建(Euclidean reconstruction)。首先將空間中的三維點 M 以及其在影像中對 應的特徵點 、 寫成以下的關係式: ' P 1 m m2 M P s mi = i i,
i∈{ }
1,2(3.4) 其中 為一個代表大小的比例常數(scale)。若我們將式(3.4)裡之影像點改寫 成齊次座標系,並將投影矩陣以列向量表示,可得到: i s 1 4 4 3 3 2 1 × × ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ M p p p w v u T T T (3.5) 由式(3.5)可推導出: 0 1 4 4 2 2 3 1 3 = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − − × × M wp vp wp up T T T T (3.6) 令 ,則對於每一台相機,皆有 4 2 2 3 1 3 × ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − − = T T T T i wp vp wp up B BiM =0 的關系存在。 每一個三維點 M ,皆有一組影像對應點,就可以獲得兩個如式(3.6)的關係 式,將兩式合而為一,便為一滿足 BX=0 的 4× 矩陣 B。欲求得三維點座標4 M ,理論上可利用特徵值分解之對應特徵值(eigenvalue)為零的特徵向量 (eigenvector),可是當有雜訊時,則需由對應於最小特徵值的特徵向量加以求 得,求得的方法通常是利用矩陣的 SVD 分解,來得到三維點 M。 經過了這些步驟,便可重建出特徵點的三維座標,到了這個階段,我們 得到的是一個與歐式重建具有縮放比例關係的公制重建(metric reconstruction)。 接著,利用場景中任何一個已知的尺寸,便可以將這個比例固定下來,得到真正 的歐式重建,也就是與實物等尺寸的三維重建。
3.2 估測相機位置
在電腦視覺中,姿勢估測(pose estimation)便是在估測相機本身的位置, 歐式重建的過程裡,我們可以經從基本矩陣中直接抽取出兩台相機間的旋轉矩陣 及平移向量,因此我們可以很直接地估算出每台相機相對於重建場景的位置。 我們在式(3.3)中提到,旋轉矩陣及平移向量的組合共有四種可能,而選擇的 方法為判斷重建結果是否在兩台相機的前方。但是實際上在計算的時候,由於使 用了SVD 分解法,因此所分解出來的旋轉矩陣和平移向量,對於正負符號的決 定會有著不確定性,導致相機位置無法求出,也無法檢查場景是否在兩台相機前 方。 為了解決這個問題,我們可以利用一些額外的限制,來找出正確的正負號。 對 於 旋 轉 矩 陣 , 我 們 可 以 利 用 旋 轉 矩 陣 一 個 重 要 的 特 性 , 也 就 是 行 列 式 (determinant)等於1,來決定出它的正負號。而平移向量則可從已知的相機位 移方向決定,比如事先知道相機是向右移動,則可知 x 方向的平移為正。確定 了旋轉矩陣及平移向量的正負號之後,我們也就可以檢查四種可能的三維重建結 果,哪一個是在兩台相機的前方了。 找出相機座標系間的旋轉及平移之後,也就代表著每一組三維重建的兩台相 機相對位置已經找到,只要利用這些資訊,便可以重建出所有相機的位置。令 為第一台相機的相機中心, 及 為第一台相機座標系與世界座標系間的旋 轉和平移; 為第二台相機的相機中心, 及 為第二台相機座標系與世 界座標系間的旋轉和平移,則我們可以求得兩台相機之間,座標系的相對旋轉及 平移 及 分別為: 1 C 1 R t1 2 C R2 t2 12 R t12 T R R R12 = 2 1 1 1 2 2 12 (3.7) t R R t t = − T (3.8) 若以平面的幾何上來看,如圖3.2所示,第二台相機的座標系即是第一台相機的 座標系逆時針旋轉了 R12 之後,再向右平移 t12。對於所重建出的三維點,若它們的座標系不同,我們也可以利用這些已知的 相機座標系關係,將重建點轉換為以同一個座標系為基礎。如圖3.2, 代表 重建物體於 座標系下的座標向量,若我們要計算同一個物體相對於 座 標系下的座標向量 ,相當於算出 經過與相機座標系相反的旋轉及平移 之後,所得到相對於 座標系的點座標,也就是圖中的 。而由 到 的這個過程,剛好是和相機座標系的旋轉和平移相反,如圖3.2 所示, 先 向左平移了 之後,再順時針旋轉 ,得到 。因此,我們可以將這 樣的轉換寫成以下的關係式: 1 M 1 C C2 2 M M1 1 C M1' M1 ' 1 M M1 12 12 1 t − T R M '
(
)
' R M t M M2 = 1 = 12T 1 − 12 (3.9) 其中, 為原物體相對於 座標系下的座標向量, 為原物體相對於 座標系下的座標向量,而 則為原物體經過與相機座標系相反的旋轉及平移 之後,所得到相對於 座標系下的座標向量。反之,若我們已知 而欲求 ,則可透過相反的旋轉及平移過程,關係式如下: 1 M C1 M2 C2 ' 1 M 1 C M2 1 M 12 2 12 1 R M t M = + (3.10) 圖3.2 相機座標與點座標的旋轉及平移關係。第四章 指向系統之精確度分析
由前面的理論基礎,我們已發展一套初步的視覺系統[18],本章就是利用這 一套已發展的系統,在不同的場景條件下,進行三維重建,並分析指向系統之精 確度。 本篇論文所實作的智慧型指向系統,一開始需先將場景的三維模型重建好, 並且保留計算好的基本矩陣,之後當我們在判斷指向方向時,只需重建指向物體 的兩個特徵點,不必再重建整個場景,也不需要再算一次基本矩陣,可以加速運 算,簡化重建所需的步驟。實驗流程圖如圖4.1,共分為相機校正、特徵點的選 取、特徵點對應、三維重建、計算指向物體所指的目標點等五個步驟,前面四個 步驟均是沿用[18]之程式以進行實驗。我們定義指向物體上代表指向方向的兩個 特徵點,稱為指向特徵點,而兩個指向特徵點的延伸,在正交方塊圖板所指到的 位置,稱為目標點。第五個步驟計算指向物體所指的目標點,即是利用三維重建, 以取得兩個指向特徵點的三維座標,進而計算出所指向的目標點。在實驗結果的 分析方面,我們分別探討基本矩陣不同,解析度不同,指向方向不同以及指向物 體不同的情況下,所重建出來的三維場景及指向位置。實驗的環境為 Windows XP 作業系統之個人電腦,CPU為P4 2.8G, 512MB 記憶體,程式平台為 Matlab 6.5, 所用的數位相機,右影像為 Sony P100 左影像為 Sony P10,經過相機校正,我 們取得其相機內部參數如下: ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 1 0 0 233.28 722.92 0 308.62 1.3817 720.60 ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 1 0 0 242.31 26 724. 0 338.96 1.6592 723.11 Sony P100 Sony P10 圖4.2 為指向系統實驗中的實驗場景,是由兩個夾角約為90度的平面所構成的正 交方塊圖板,每個平面上有16個方塊。我們針對這些方塊圖案平面進行三維重 建,並且藉由指向物體來判斷所指向的方塊。圖4.1 指向系統實驗流程圖。 (a) (b) 圖4.2 正交方塊圖板之 (a)側視影像 (b)俯視影像。
4.1 使用不同的指向物體進行三維重建
指向物體對於指向系統的精確度有相當大的影響,一個好的指向物體可以幫 助我們取得準確的二維指向特徵點,二維指向特徵點的準確性對於三維重建時, 指向物體三維座標的計算相當重要,如果重建出來指向物體的兩個指向特徵點之 三維座標跟真實座標相差了一個點距,對於計算指向的目標點可能會相差五個點 相機校正取得內部參數 拍攝待重建物體不同視 角影像兩張 影像特徵點擷取 影像特徵點對應 影像特徵點三維重建 計算指向物體所指的 目標點距以上。一個最理想的指向物體,就是具有可以很準確被我們取得的二維指向特 徵點,且僅需極少量的計算。如圖 4.3(a)所示,我們以黑色長方條的右邊兩點 之延伸當作我們的指向方向,如果能取得這樣準確的二維指向特徵點,對於指向 系統的精確度有很大的幫助,但這樣準確的二維指向特徵點,在現實生活中並不 容易取得,因為會有遮蔽以及角度的問題,使得我們不易取得這樣的兩個點。圖 4.3(b)中的指向雷射筆為本次實驗所採用的指向物體,其優點為不管在任何的角 度都能準確的取得四個角點,上方兩個角點的中點與下方兩個角點的中點之延伸 即為指向方向。 (a) (b) 圖4.4 為使用指向長方條做指向的實驗結果,由結果發現指向精確度很高, 圖4.3 (a)指向長方條 (b)指向雷射筆。 與我們所預期的位置非常接近,圖4.5 為使用指向雷射筆做指向的實驗結果,由 結果發現指向精確度也很高,與我們所預期的位置也非常接近。由於指向雷射筆 可以射出雷射光打在立體校正板上,方便我們使用肉眼判斷指向效果的準確性, 因此,在接下來的實驗中,皆使用指向雷射筆當作我們的指向物體。
(a) (b) (c) (d) 圖4.4 使用指向長方條做指向的實驗結果 (a)重建場景的左影像 (b)重建場景的右影像 (c) 利用尺的延伸去估計指向的目標點 (d)重建之後的目標點。
(a) (b) (c) (d) 圖4.5 使用指向雷射筆做指向的實驗結果 (a)重建場景的左影像 (b)重建場景的右影像 (c)重建場景的俯視影像 (d)重建之後的目標點。
4.2 使用不同的基本矩陣進行三維重建
在三維重建中,基本矩陣的正確性,對於重建的結果有很大的影響,本節將 會把正交方塊圖板上 128 個特徵點取編號如圖 4.6 ,左邊的校正版由左至右由 上而下取編號 1 到 64,右邊的校正版由左至右由上而下取編號 65 到 128,我們 取特定的特徵點去算基本矩陣,圖中被選到之特徵點將以圓圈做記號。我們將會 經由結果,來探討不同特徵點取法所算出的基本矩陣,對於三維重建以及指向結 果的影響。圖4.6 正交方塊圖板特徵點編號。 圖 4.7 為取八個點與取相同八個點再加上指向的兩個點共十個點去算基本 矩陣所重建出來的場景與目標點,由重建之後的結果可以發現,使用八個點算基 本矩陣所重建出來的場景比十個點算基本矩陣所重建出來的場景效果好很多,但 是關於目標點的計算,使用十個點算基本矩陣所重建出來的指向點比八個點算基 本矩陣所重建出來的目標點準確,由此結果我們可以推論,在此實驗中,我們所 取的八個點是分布範圍廣且位置組合佳的點集合,而加入指向的兩個點之後,雖 可以使得算出來的目標點較為準確,但是這十個點所成的點集合,位置組合不 佳,所算出來的基本矩陣,正確性不足。 圖 4.8 為兩種取 64 個點去算基本矩陣所重建出來的場景與目標點,第一 種取法為左右兩邊各取 32 個特徵點共 64 個點,第二種取法為取左半邊 64 個點, 由重建之後的結果可以發現,使用第一種取法算基本矩陣所重建出來的場景比第 二種取法算基本矩陣所重建出來的場景效果好很多,關於目標點的計算,由於第 二種取法重建時就已經不正確,所以也無法正確的算出目標點。
(a) (b) (c) (d) (e) (f) 圖4.7 (a)重建場景的左影像 (b)重建場景的右影像 (c)取八個特徵點所算出的基本矩陣之重 建結果俯視圖 (d)取八個特徵點所算出的基本矩陣之目標點重建結果 (e)取十個特徵點 所算出的基本矩陣之重建結果俯視圖 (f)取十個特徵點所算出的基本矩陣之目標點重建 結果。
(a) (b) (c) (d) (e) (f) 圖4.8 (a)重建場景的左影像 (b)重建場景的右影像 (c)左右兩邊各取32個特徵點所算出 的基本矩陣之重建結果俯視圖 (d)左右兩邊各取32個特徵點所算出的基本矩陣之目 標點重建結果 (e)取左半邊64個特徵點所算出的基本矩陣之重建結果俯視圖 (f)取 左半邊64個特徵點所算出的基本矩陣之目標點重建結果。
由圖 4.7 與圖 4.8 我們可以得知,基本矩陣對於三維重建的影響很大,而 基本矩陣的正確性決定於特徵點的選取。圖 5.7 (c)(d)中,只取了八個特徵點 去算基本矩陣,就能得到相當好的重建結果,不過,如果特徵點的距離太近或者 是特徵點皆位於同一平面,所算出的基本矩陣去做三維重建,都無法得到很好的 重建結果。圖 5.9 為與圖 5.7 相同的重建場景但取不同的八個特徵點去算基本 矩陣所重建出來的結果。 圖4.9 取不同的八個特徵點去算基本矩陣所重建出來的結果。(上方的圖顯示所選取之特 徵點,下方的圖為其重建結果) 值得注意的是,雖然八點演算法理論上僅需要八組對應點即可求解,但是為 了數值上的可靠度,通常取超過八組以上,這樣所算出來的基本矩陣穩定性較 高。圖 4.10 為比較取編號 1 至 128 的特徵點與取編號 1 至 128 的特徵點在加指 向的兩個特徵點所算出來的基本矩陣去做三維重建的結果。
(a) (b) (c) (d) (e) (f) 圖4.10 (a)重建場景的左影像 (b)重建場景的右影像 (c)取128個特徵點所算出的基本矩陣 之重建結果俯視圖 (d)取128個特徵點所算出的基本矩陣之目標點重建結果 (e)取 130個特徵點所算出的基本矩陣之重建結果俯視圖 (f)取130個特徵點所算出的基本 矩陣之目標點重建結果。
經由圖 4.10 我們可發現,用 128 個特徵點與 130 個特徵點所算出來的基本 矩陣重建效果都很好,目標點的計算也十分的接近,而這兩個方式所算出來的基 本矩陣數值相差也不會太大,其中用 130 個特徵點算出的基本矩陣為 F1 = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − − − 8878 9999439084 . 0 8859 0086152017 . 0 1491 0008837734 . 0 5383 0059856109 . 0 6742 0000003055 . 0 6110 0000033458 . 0 2412 0011617051 . 0 5653 0000032050 . 0 7482 0000001713 . 0 而用 128 個特徵點算出的基本矩陣為 F2 = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − − − 4993 9999415356 . 0 1111 0087933424 . 0 2663 0009819753 . 0 9988 0061344814 . 0 3941 0000002971 . 0 0070 0000035965 . 0 5327 0010031788 . 0 5675 0000030801 . 0 3801 0000000230 . 0 兩個基本矩陣對應元素的差值可表示為 |F1 - F2| = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 3885 0000023728 . 0 2252 0001781406 . 0 1172 0000981419 . 0 4605 0001488705 . 0 2801 0000000084 . 0 3960 0000002506 . 0 7085 0001585262 . 0 9978 0000001248 . 0 3681 0000001483 . 0 比較圖 4.7 (c)(d)、圖 4.8 (c)(d)和圖 4.10 (c)(d) 我們也可以發現,8、 64 以及 128 個特徵點所算出的基本矩陣重建的效果都很好,所以由本節所有的 實驗結果我們可以得知,當我們在取特徵點時,只要取到足夠多以及對應穩定的 特徵點,即可得到很好的重建結果。
4.3 使用不同的解析度進行三維重建
二維影像特徵點的擷取,對於三維場景重建的正確性,有著很重要的影響, 如果所擷取的特徵點誤差過大,重建出來的場景會有扭曲與變形的現象。本節將 會以 640 x 480 和 1280 x 960 兩種不同的解析度去做三維重建,並分析其指向 精確度。經由 4.2 節的討論我們可以得知,只要找到足夠多以及位置組合佳的特徵 點,即可得到很好的重建結果,而在我們日常生活的場景中,其實不容易找到這 樣的點,我們可以利用人工的方式,先使我們想要的特徵點出現在場景中,利用 這些特徵點去算基本矩陣,然後以算出來的基本矩陣去重建場景中的物體。本節 的實驗與之前的實驗有一點不同,之前實驗所用的基本矩陣都是以待重建物體上 的特徵點去算的,現在我們以圖 4.11 所示之隔板為本節實驗的場景,圖中的四 個方塊是以人工的方式加上去的特徵點紙板,我們稱這四個方塊的 16 個特徵點 為輔助點是用來幫我們算基本矩陣,基本矩陣算出來之後,即把人工加上去的特 徵點紙板移除,然後以這個基本矩陣去重建我們所要重建的物體如圖 4.12 所示。 (a) (b) 圖4.11 以人工方式加入場景的特徵點 (a)左影像 (b)右影像。 (a) (b) 圖4.12 待重建物體 (a)左影像 (b)右影像。
圖 4.13 為使用上述的方法以 640 x 480 的影像做三維重建之結果,由圖中 我們可以發現,場景重建結果還不錯,只是方塊的形狀有些許的變形,而關於目 標點位置的計算,大約向左偏移了半個方塊邊長的距離。而圖 4.14 也是使用上 述的方法但以 1280 x 960 的影像做三維重建,由圖中我們可以發現,場景重建 的結果很好,而目標點位置的計算也只向上偏移了一點。 經由本節的實驗我們可以發現,不同大小的解析度對於三維重建的結果以及 所指向的目標點計算,有著舉足輕重的影響,對於重建的物體而言,如果解析度 不夠大,無法準確的擷取特徵點,那麼所重建出來的物體,就容易產生扭曲以及 形變的現象,而目標點的計算也會有產生誤差。 (a) (b) (c) (d) 圖4.13 使用640 x 480的影像做三維重建 (a)場景的左影像 (b)場景的右影像 (c)重建 場景的俯視影像 (d)重建的目標點。
(a) (b) (c) (d) 圖4.14 使用1280 x 960的影像做三維重建 (a)場景的左影像 (b)場景的右影像 (c)重 建場景的俯視影像 (d)重建的目標點。
4.4 不同的指向方向進行三維重建
在即時(real time)的指向系統中,如果我們能夠將指向的結果,即時的 顯示在我們人的眼前(即系統的 feedback),指向的精確度或許就變的沒那麼 的重要了。假如顯示結果所指的目標點,不是我們所想要的位置,只要所指的方 向不會差太多,我們可以移動指向物體往想去的方向去,而所指的方向會隨著指 向物體的移動而移動,如此,指向系統應能順利達成指向的任務。在本節的實驗中,我們將測試水平與垂直方向上的移動。我們以圖 4.14 為 基準,若將指向物體向右移動三方塊大小,則結果如圖 4.15,若將指向物體向 上移動三方塊大小,則結果如圖 4.16。 (a) (b) (c) (d) 圖4.15 指向方向往右移動: (a)重建場景的左影像 (b)重建場景的右影像 (c) 重建場景的俯視影像 (d)重建之後的目標點。
(a) (b) (c) (d) 圖4.16 指向方向往上移動: (a)重建場景的左影像 (b)重建場景的右影像 (c)重建場 景的俯視影像 (d)重建之後的目標點。 由實驗結果發現,本篇論文所提出的指向系統,不管是在水平或者是垂直方 向上的移動,其所指的方向都會相當正確的隨著指向物體的移動而移動,也就說 明了我們的指向系統,在各個不同的方向都能得到不錯的指向效果。表 4.1 為使 用輔助點去算基本矩陣與未用輔助點去算基本矩陣 (即以立體方塊圖版上 128 個點去算基本矩陣) 的誤差比較表,由表中我們可以發現使用輔助點可以使我們 的誤差減少三分之二,達成改善指向精確度的目標。
表4.1 使用輔助點與未使用輔助點的誤差比較表(單位:公分) 圖 4.14 圖 4.15 圖 4.16 平均誤差 使用輔助點算基本矩陣,目 標點的誤差 0.7 0.2 0.9 0.6 未使用輔助點算基本矩 陣,目標點的誤差 1.4 3 1 1.8