• 沒有找到結果。

第二章 環境特徵偵測

2.1 全向式攝影機概述

一般的單眼攝影機所能拍攝到的影像僅限於攝影機之視角範圍,用於機器人 導航時,會因其較狹窄的視角而產生限制,如當機器人移動時,對於同一個 Landmark 無法追蹤較長的時間,或是當有一些障礙物遮蔽視線時,無法取得足 夠的環境資訊。有別於一般單眼攝影機的有限視角,全向式影像系統能夠即時取 得週圍 360°的影像資訊,用於機器人導航時將會更有幫助。

全方位視覺系統有很多類型,像是僅使用一個攝影機與特殊透鏡的魚眼鏡頭 攝影機[17],或是使用多台攝影機的立體視覺[18],還有一種常被使用的則是使 用一台攝影機及反射鏡所組合而成的全向式攝影機[19]。僅使用反射鏡與攝影機 所組成的全向式攝影機系統,因為其機構簡單,所以常用在機器人系統上;此種 全向式攝影有兩種類型,如圖 2-1、圖 2-2:圖 2-1 此種攝影機的可視角度大致上 為水平零度以下,除了攝影機本身以外,整個地板平面都可以是可視範圍,

Winters et al.[9]就是利用此種影像來判斷出牆角,使機器人能在走廊環境中行 走。圖 2-2 此種類型的可視角度則大致為水平零度以上,除了自己本身以外,整 個天花板都是在可視範圍之內,[10]就是利用天花板上長方型的燈管來定位,判 別機器人在走道上的何處。

本論文實驗中所使用全向式攝影機即是圖 2-1 的這種類型,圖 2-3 為攝影機 照片,圖 2-4 為此類型攝影機所擷取到的影像。

圖 2-1 全向式攝影機示意圖 (擷取水平面以下影像)

圖 2-2 全向式攝影機示意圖 (擷取水平面以上影像)

圖 2-3 Vstone VS-C450N-TR全向式攝影機

圖 2-4 全向式攝影機所擷取之影像 2.2 環境特徵點辨識

在使用影像定位的方法中,主要是利用影像來偵測環境中的 Landmark,利 用環境中固定位置的 Landmark 與自己本身的相對位置來估測機器人在環境中的 位置。因此,首要的步驟就是要能從影像中偵測到周遭環境中的 Landmark。

因為是使用 Landmark 來定位,因此 Landmark 的判別要能夠穩定且正確,

最簡單的方法就是在環境中放置人為的 Landmark(Artificial landmark)[20],將特 製的 Landmark 放置於環境中,因為 Landmark 的圖樣已知,故只要在影像中搜 尋特定的圖樣即可輕易的得知 Landmark 的位置,但使用人為的 Landmark 需要 事前就放置好 Landmark,當機器人到達一個新的環境時還要重新的佈置 Landmark,讓這個方法不具有一般性,現在的研究也較少使用人為的 Landmark 來做定位。

另一種方法則是不使用人為特製的 Landmark,先觀察原始環境中較常出現 的圖樣,將較常出現的圖樣預先存在資料庫中,Landmark 的判別就是依照這幾 種圖樣來偵測:如[10]就是偵測天花板中的燈管來判別機器人的位置,[1]則是利

用走廊環境中最常出現的”門”來做為 Landmark,在資料庫中預先設定好燈管、

門…等特別物體的圖樣,接著在影像在偵測相同圖樣的物體,即可估測出特定物 體的位置。

使用非人為特製,而是原本就存在於環境中的 Natural landmark 來定位是最 一般化的做法,不需依賴人為的 Landmark,不用事先儲存 Landmark 的圖樣,直 接從環境擷取出 Landmark 來使用,讓機器人不管移動到舊或是新的環境中時,

都能直接開始工作,增加使用上的效率及便利性。

偵測環境中的 Natural landmark 有許多方法,其中之一就是以環境中的特徵 點(Features)做為 Landmark,像是物體的邊緣、角落、或是花樣等色彩分明的位 置點都可以當作是特徵點,像是角點偵測或是邊緣偵測等方法,都可找出許出環 境中的特徵點,接著再對這些點做辨識與追蹤,使機器人能在影像平面中持續穩 定的追蹤到環境的特徵點,以做為機器人定位的重要依據。

在本論文中所使用的特徵點擷取及辨識方法為 SIFT 演算法,此方法之特徵 點辨識擁有”對抗影像尺度大小改變的影響”、”特徵點描述具有對抗旋轉的特 性”、”對於視角的改變有一定容忍性”…等特性,因此對於使用在移動式機器人 的影像特徵點辨識上有許多的優勢;配合用於機器人導航的目的及全向式攝影機 的特性,在本研究中修改了原始的 SIFT 演算法來使用,使其更有效率。

圖 2-5 為本論文中所設計使用的基於全向式攝影機之特徵點擷取與比對演 算法流程圖,主要目的為比較相鄰連續兩張的影像,在這兩張影像中找出相對 應、相同的特徵點,以此計算出特徵點相對於機器人本身的位置變化,並且依據 特徵點來定位出機器人本身的位置。主要方法為先將兩張影像圖片做角點偵測,

找出影像中的特徵點;接著對特徵點及其周圍的區域影像旋轉至同一個方向後,

記錄此特徵點的描述向量(Descriptor vector);利用最小距離法(Nearest neighbor method)比對出兩張影像中最相似的兩個點,最後使用一 Outlier detector 來消除 明顯比對錯誤的點,增加比對的正確性。用此方法可得到相鄰兩張影像中的特徵 點對應關係,而此演算法的詳細內容也將在接下來的幾個小節中說明。

圖 2-5 基於全向式攝影機之特徵點擷取與比對演算法流程圖

2.2.1 SIFT 特徵點擷取

在 Lowe 的 SIFT 演算法中是使用高斯差值函數(Difference of gaussian)來擷取 圖形的特徵點[8],選取出影像的邊緣為候選的特徵點,接著與候選特徵點周遭 的區域作比較,判斷是否為區域中的極值,以此挑選出不易受雜訊干擾且穩定的 特徵點;為了對抗影像尺度大小改變的影響,則對不同尺度空間大小的影像也做 特徵點的擷取,讓在欲辨識的影像有大小的變化時,亦有不同尺度的特徵點可供 比對,增加對抗尺度大小改變的特性。

圖 2-6 為以 Difference of gaussian 為基礎之特徵點擷取方法之示意圖,首先 求出不同程度的尺寸空間影像,作法如(1)式,其中 G(x,y,σ)為高斯函數,I(x , y)

圖 2-6 不同尺度空間之 DoG(Difference of gaussian)示意圖[8]

(

x, y,σ

)

D 中判別出各個 Pixel 點是否為區域極值,以此方法擷取出影像中之特徵 點。

2.2.2 基於全向式攝影機之特徵點擷取與比對演算法

當使用的 Sensor 為全向式的攝影機,具有 360 度的視角範圍,即使某一方 向的影像因為機器人的移動而改變了大小,讓特徵點的 Scale 改變了,但其他方 向的影像改變卻不一定會很大,因此仍有許多 Scale 變化不大的特徵點留在影像 當中。例如圖 2-7 為全向式攝影機所拍攝的兩張影像,此影像為在走廊環境下所 拍攝,左圖為機器人在走廊中心所拍攝之影像,右圖為向影像上方的門(牆面方 向)移動 0.7m 後所拍攝的影像。可發現到,上方的門(圈出部份)因為機器人攝影 機的移動有著較明顯的大小變化,其周圍區域不僅有大小的變化,形狀更是有扭 曲的現象發生,特徵點因此而不易辨識。下方的佈告欄及門(圈出部份),因為位 於非機器人的移動方向上且距離有一段距離,因此在影像中的大小較無明顯的變 化。因此,使用全向式攝影機時,即使因為機器人的移動使一部份的特徵點變的 不易辨識,但因為攝影機的 360 度視角,仍有其他方向的特徵點可以清楚的辨識 使用,讓定位演算法可以繼續運行。

圖 2-7 相鄰影像中之物體大小變化比較

另一方面,機器人之工作環境是在室內走廊上移動的情境時,所擷取的特 徵點幾乎都是在兩側的牆面上,機器人在此環境中移動時,大部份都是沿著走道 行走,也就是平行牆面的方向行走,對牆面平行方向的移動來說,所觀測到牆面 上的特徵點大小不會變化的很嚴重。例如圖 2-8 為兩張全向式攝影機所拍攝到的 影像,圖右為圖左的拍攝位置向右(沿走廊方向)移動一公尺後所拍攝,可發現 到,影像上方的門(圈出部份),並未因為移動一公尺後而有很大的形變量,也就 是說,在圖左所能偵測到的特徵點,在圖右中亦有很大的機會能夠辨識的出來,

特徵點的辨識能力在移動一小段距離後仍有一定的成功率。

為了減少特徵點擷取之運算時間,本論文之特徵擷取不使用對不同尺度大小 的影像做 DoG 來擷取特徵點,基於上述全向式攝影機及實驗環境的特性,使用 較為簡易的角點偵測[11]來擷取環境中的特徵點。本論文所使用的角點偵測方法 是採用文獻[11]的方法,其原理與 OpenCV 函式庫中的 cvGoodFeaturesToTrack 函式相同:計算各個 Pixel 點的最小特徵值,之後再判斷是否為區域極值,最後 求得特徵角點的位置。

2.2.2.1 特徵點擷取法則

為了取得環境中的 Landmark 作為定位的依據,故從影像畫面中擷取影像特 徵點作為 Landmark,本論文使用文獻[11]的方法來擷取影像中的特徵角點,下述 為此角點偵測法之演算法步驟:

Obvious difference

Unobvious difference

圖 2-8 機器人平移後影像中的物體大小變化比較 Step 1:

首先使用 Sobel 運算子[27]求得影像中各 Pixel 點的 x、y 方向的偏微值 Dx、 Dy,如圖 2-9 所示。

圖 2-9 Sobel 運算子 Step 2:

對於影像中的每個 Pixel 點均建立一矩陣 C,矩陣 C 如下(4)式,是以各 Pixel 點為中心的 3x3 Pixel 遮罩區域 Q 的 Dx、Dy的運算累積,並且計算出此矩陣 C 的特徵值(Eigenvalue)。

⎥⎥

⎢⎢

=⎡ 2 2

y y

x

y x x

ΣD D

ΣD

D ΣD

C ΣD (4)

特徵值的算法如下(5)式,取兩個特徵值中較小的值代表此 Pixel 的特徵值

( ) ( ( ) )

2

4 2 2 2

2 2 2

2

2 y x y x y x y

x D D D D D D D

D +Σ ± Σ +Σ − ⋅Σ ⋅Σ − Σ

= Σ

λ (5)

Step 3:

對各點的特徵值做 3x3 Pixel 遮罩區域的極大值判斷,過濾出為區域極大特 徵值的點;最後設定一特徵值之 Threshold,各區域極大值之點若大於此 Threshold 即為所求得的特徵角點。

為了之後特徵點辨識的需求,特徵角點要能愈特殊愈好,故距離太相近的兩 個特徵角點對以後的辨識不利,因此最後再將間隔距離太近的特徵角點刪除,留 下的角點均具有一定的距離。圖 2-10 為一張全向式影像圖片所擷取出的特徵角 點結果。

圖 2-10 角點偵測結果 2.2.2.2 特徵點描述

在擷取出影像中的特徵點之後,接著就要對每個特徵點建立其描述向量(Key

在擷取出影像中的特徵點之後,接著就要對每個特徵點建立其描述向量(Key