• 沒有找到結果。

2-1 影像縫合流程(The Flow of AutoStitch)

在影像縫合(AutoStitch)的過程中,大致上可分成幾個步驟,第一,特徵點擷 (Automatically Absolute Coordinated Image Stithing)來做基準,即相對位 置也要與真實世界內容(Ground Truth)一樣。所以第四步驟我們需要把影像做歪 斜使其可以跟另一張影像正確地縫合。第五,混合影像(Blending) 。在把影像 歪斜過後,最後一步就是要做適當地混合,不同的混合方法所呈現出來的最後縫 合影像結果也不盡相同。接下來在第二章中我們將針對上列影像縫合的基本步驟 做一個完整地背景介紹。

2-2 特徵點擷取(Feature Extraction) 2-2.1 特徵點定義

正如 1-1 當中所提到的,在早期所有的影像要縫合或是修正,都需要人工徒 手靠著繪圖軟體來接合或手動修正,這種人工方法相當麻煩,而且效果不盡理 想。直到[11]-[14]提出了利用 direct method 來做影像縫合與校正,此技術才 突破了人工徒手校正的瓶頸,之後[3],[15]-[16]更近一步提出了 feature-based method,即不需用整張影像的像素(pixel)來做運算,只需要找出幾個夠特殊的

點(即特徵點)來做代表即可,[23]-[32] 分別提出了許多不同的方法,其中[26]

Harris Corner Detector 的作法,是把影像當中的角落(Corner)擷取出來。首先我 們需要先知道為什麼需要找角落來當特徵點,若我們使用影像中比較平坦(flat) 的點來當特徵點,則往上下左右稍微移動一點點,所看到的東西仍會很像,所以 這不是一個適合的特徵點。接著,若我們使用影像中邊界(edge)的點來當特徵 點,則此點往某兩個方向稍微移動一點點,所看到的東西仍會很像,仍然不是一 個適合的特徵點。最後,若我們使用影像中的角落(Corner)點來當特徵點,則此 點往上下左右稍微移動一點點,所看到的東西仍會很不一樣,因此我們可以得知 角落點(Corner)為我們所希望找到的特徵點,圖 2-2.1 即是一個最簡單的例子。

(a) (b)

(c)角落點(Corner) (b)邊界(Edge) (a)平坦(Flat) 圖 2-2.1 特徵點示意圖

(c)

2-2.2 ㄧ般 Harris Corner 取法

特徵值,則我們只要去計算式 2-2 的反應函數(Response Function)即可知道此 點是Corner的可能性有多大:

2 2

R= λ λ

1 2

-k( + ) = det (A)-k trace (A) λ λ

1 2

×

---(式)2-2 其中根據文獻參考的經驗法則,k 在 0.04~0.15 之間都可以有彈性的空間,不同

於式 2-1 的運算方法,在計算式 2-2 當中,只須計算加減法以及乘法,因此運算 量將會比式 2-1 減少許多。圖 2-2.2、圖 2-2.3 即為一個 Corner Detector 的例 子,藍色圓圈即為 Corner。但是從式 2-1 中或從圖 2-2.2、圖 2-2.3 我們不難發 現Ix, I y, Ix × I y, Ix2, I y2 都是由每個 Pixel 周圍 3*3 大小範圍的值求得,也就 是說此 Corner 找出來只相對於周圍的 3*3 而言是 Corner,但是對於一張影像而 言,3*3 的視窗大小其實是一個非常小的範圍,以我們的兩種 Pattern Size 分 別為 500*752 和 640*480 而言,若單就式 2-1 和式 2-2 所擷取出來的特徵點至少 會有 4000~6000 個以上的特徵點,數量非常龐大,如圖 2-2.2,只用單純式 2-1 和式 2-2 的擷取特徵點法,左邊影像有高達 5018 個特徵點,右邊影像也有 4972 個特徵點,數量非常龐大,圖 2-2.3 也有類似的結果,但這些點的確都是我們所 要的 Corner 特徵點,只是它所相對應的範圍只在周圍的 3*3 大小而已。

圖 2-2.2 只取一般 Corner 範例一,左邊影像有 5018 個特徵點,右邊影像有 4972 個特徵點

圖 2-2.3 只取一般 Corner 範例二

若是要用這些特徵點來接著執行接下來 AutoStitch 的步驟仍然是可行的,

最後仍然會縫合成功,但是可想而知的在 Matching 部分和 RANSAC 部分,其運算 量一定會非常地龐大進而拖垮了整個演算法的執行效率。因此通常會在 Response Function R 定下一個臨界值 T,比 T 大的值就令為最後的特徵點,比 T 小的值就 剔除掉,或是直接定下另一種臨界值 ni,取 Response Function R 裡面前 ni 強 的特徵點,ni 由使用者自行決定,不同的 ni 有不同的效果,圖 2-2.4 分別顯示 ni=200、350、500 的效果,我們可以發現 ni=200 的時候點數較少但是卻是比較 強健的 Corner 點,ni=500 的時候點數較多但是卻是比較沒這麼強健的 Corner 點,整體來說 ni 取幾點並沒有一定的好壞,取 200 點雖然比較強健而且點數少,

但是卻不能保證取 200 點到最後 match 和 RANSAC 之後點數還足夠可以縫合,取

(a) ni=200

(b) ni=350

(c) ni=500

圖 2-2.4 ni 分別取(a)200 (b)350 (c)500 的結果

500 點雖然點數較多且較為不強健,但卻經過 match 和 RANSAC 之後比 200 有保 障足夠的點數可以成功縫合,因此取 ni 幾點並沒有一定的好壞,但爲了保障最 後要有一定足夠的點數可以縫合,[27]使用 ni=500 來作臨界值,即取 Response Function R 裡面前 500 名的點進來,如圖 2-2.4(c)、圖 2-2.5、圖 2-2.6,我們 會發現這幾張影像不同於圖 2-2.2、圖 2-2.3 當中的特徵點是所有 3*3 大小的 Corner 都放進去,所以點數特別多,對於之後的演算法執行效率上非常不好,

但圖 2-2.4(c)、圖 2-2.5、圖 2-2.6 只取這些 Response Function R 裡面特徵點 當中前 ni=500 名的,對之後的演算法執行效率有非常大的幫助。

圖 2-2.5 Corner Detector 顯示圖,場景為國立交通大學運動場

圖 2-2.6 Corner Detector 顯示圖,場景為國立交通大學運動場和宿舍

2-2.3 適 應 性 非 最 大 化 壓 縮 法 (Adaptive Non-Maximal

性非最大化壓縮法(Adaptive Non-Maximal Suppression)簡稱 ANMS,ANMS 即是 希望提出一套強健的策略,使得特徵點可以被壓縮在一定的數量,並且所擷取出 來的特徵點也可以平均分散在整張影像當中。圖 2-2.7 即是一個例子,(a)(b) 兩個圖使用 the highest corner strength 法,分別取所有候選特徵點(candidate points)當中反應函數(Response Function)R 的前 250 強和 500 強的 corner 點 進來,(c)(d)使用 Adaptive Non-Maximal Suppression(ANMS)法,取點的數量 同樣是分別取 250 個點和 500 個點,我們會發現(c)(d)的特徵點(Feature Points) 比起(a)(b)的特徵點(Feature Points)在整張影像上的分佈均勻多了,這是一個

(a) Strongest 250 (b) Strongest 500

(c) ANMS 250 (d) ANMS 500

圖 2-2.7 適應性非最大化壓縮法(ANMS)範例一

而且所有的特徵點較為均勻分佈,因此若有另ㄧ張縫合影像的重疊部分(overlap) 是與圖 2-2.7(c)的下半部分重疊也不會造成太大的影像,因為本身下半部份就 有 許多 的特 徵點 可以 提供 之後 作 Matching 和縫合 的動 作, 因此 能有 像 圖 2-2.7(c)(d)這樣均勻分佈而且特徵點數目又控制在所希望的大小是一個非常不 錯的特性。

接著我們要介紹 ANMS 在實作上的方法,我們知道若只用式 2-1 和式 2-2 求 出來的特徵點只考量旁邊周圍 3*3 視窗大小的範圍,若在 5*5 的範圍中此點也是 最大,則此特徵點的可靠度必然比 3*3 的視窗大小更可靠,以此類推,當視窗大 小為無限大時,找出來的特徵點必然最為強健,因此在實作上,[27]提出了針對 式 2-2 的 Response Function R 裡面的每一點,去比較此點周圍的視窗大小值,

並且 Search Range r 從無限大開始往內縮回,當某個點為此 Search Range 的最

Test Max. condition of every response points

Pick those points as the final matching point

SR = SR-1 Put all response points into a pool,

# of points=500

yes

no

圖 2-2.8 ANMS 流程圖

大值時,就令此點為 ANMS 的特徵點。當 Search Range 從無限大往內縮回時,特 徵點數目也會相對增加,當特徵點數目增加到我們想要的數目 ni 時([27]令 ni=500) ,ANMS 才停止擷取特徵點,這樣的推論是非常合理的,因為一旦在某 個 Search Range r 時出現了某個特徵點,那麼此點必定會繼續出現在 的情 形之下。圖 2-2.8 為 ANMS 的流程圖,圖 2-2.9 和圖 2-2.10 為 The highest corner strength 法與 ANMS 的兩個比較圖範例,由圖我們也可以發現 ANMS 比起 The highest corner strength 法,特徵點的分佈均勻多了。

' r <r

圖 2-2.9 The highest corner strength 法與 ANMS 比較圖範例一

圖 2-2.10 The highest corner strength 法與 ANMS 比較圖範例二

2-3 特徵點匹配(Feature Matching)

2-3.1 最小平方差 SSD(Sum of Squared Differences)

當擷取完特徵點(Feature points)之後,接下來需要把兩張圖的特徵點彼此 之間做匹配(Matching) ,看看 A 圖裡面的所有特徵點在 B 圖裡面是對應到哪些 點,最簡單的方法是直接去計算兩個特徵點周圍的一個小範圍的 SSD(Sum of Squared Differences) ,並定下一個臨界值(Threshold)為門檻,因為當兩個點 彼此是對應點,則其附近的 Pixel 值會非常接近,所以當 SSD 越小,自然表示兩 個 A 圖的(x1,y1)點很有可能是對應到 B 圖的(x2,y2)點,如圖 2-3.1 和式 2-3,

此方法又有人稱為 Nearest Neighbor 法或 Closest Neighbor 法,這種方法最為 簡單和直觀,但卻有許多缺點,在稍後我們會提到。

2 2 2

2 2

[ 1( 1 , 1 ) 2( 2 , 2 )]

i j

S F x i y j F x i y j

=− =−

= ∑ ∑ + + − + +

--(式)2-3

F1(x1-2,y1-2) F1(x1-1, y1-2) F1(x1,y1-2) F1(x1+1,y1-2) F1(x1+2,y1-2) F1(x1-2,y1-1) F1(x1-1, y1-1) F1(x1,y1-1) F1(x1+1,y1-1) F1(x1+2,y1-1) F1(x1-2,y1) F1(x1-1,y1) F1(x1,y1) F1(x1+1,y1) F1(x1+2,y1) F1(x1-2,y1+1) F1(x1-1,y1+1) F1(x1,y1+1) F1(x1+1,y1+1) F1(x1+2,y1+1) F1(x1-2,y1+2) F1(x1-1,y1+2) F1(x1,y1+2) F1(x1+1,y1+2) F1(x1+2,y1+2)

F2(x2-2,y2-2) F2(x2-1, y2-2) F2(x2,y2-2) F2(x2+1,y2-2) F2(x2+2,y2-2) F2(x2-2,y2-1) F2(x2-1, y2-1) F2(x2,y2-1) F2(x2+1,y2-1) F2(x2+2,y2-1) F2(x2-2,y2) F2(x2-1,y2) F2(x2,y2) F2(x2+1,y2) F2(x2+2,y2) F2(x2-2,y2+1) F2(x2-1,y2+1) F2(x2,y2+1) F2(x2+1,y2+1) F2(x2+2,y2+1) F2(x2-2,y2+2) F2(x2-1,y2+2) F2(x2,y2+2) F2(x2+1,y2+2) F2(x2+2,y2+2)

圖 2-3.1 SSD(Sum of Squared Differences)示意圖

2-3.2 次近鄰居法(Second-Closest Neighbor)

(discriminative) ,因此我們對於某個特徵點 Matching 時,除了計算最近的距 離(Closest Neighbor) d1,也去計算次近的距離(Second-Closest Neighbor) d2,若是這兩個的比例 D=d1/d2 大於 0.8,則表示此組的 Matching 太過類似(d1/d2 接近 1),則我們把這組 Match 剔除掉並稱他們為錯誤的 Matching Points。相反

地 若 是 D=d1/d2 小 於 0.8 , 則 表 示 此 組 的 Matching 夠 獨 特 有 區 別 性 (discriminative) ,我們稱這兩個特徵點為一組好的 Matching Points。圖 2-3.2 為次近鄰居法(Second-Closest Neighbor)的流程圖。圖 2-3.3 為使用 40000 的 特徵點(Feature points)來作次近鄰居法,水平軸為 d1/d2 的比例,垂直軸為 false match 的機率,由圖我們可以發現當 d1/d2 比例很低時,表示此組的 Matching 夠獨特有區別性,圖形也顯示 false match 的比例也非常低,但是當 d1/d2 比例很高時(大於 0.8) ,表示此組的 Matching 太過類似,圖形也顯示 false match 的比例也非常高,應該要剔除掉,[28]聲稱此種作法可替除掉 90%的 false match,但只會剔除掉 5%的 correct match,比起 SSD 作法,算是相當值得。圖 2-3.4、圖 2-3.5 為次近鄰居法的範例,(a)-(b)為特徵點擷取,(c)-(d)為特徵 點匹配,我們會發現(c)(d)的許多點都成功對應到了。

Put all the Feature Points in Image B into a pool

Compute the Closest Neighbor distance d1 &

the Second Closest Neighbor distance d2

d1/d2 > 0.8

圖 2-3.2 次近鄰居法(Second-Closest Neighbor)的流程

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Ratio of distances(closest/next closest)

PDF

PDF for Ratio

PDF for correct matches PDF for incorrect matches

圖 2-3.3 次近鄰居法(Second-Closest Neighbor)的成功機率圖表

(a) (b)

(c) (d) 圖 2-3.4 特徵點擷取與特徵點匹配的範例一

(a) (b)

(c) (d) 圖 2-3.5 特徵點擷取與特徵點匹配的範例二

2-4 剔除掉錯誤的匹配點(Delete The False Match)

經過特徵點匹配(Feature Matching)後,我們會發現有許多的特徵點都彼此 對應到了,而且大部分皆為正確的匹配(correct Match) ,但是由圖 2-3.4 和圖 2-3.5 當中我們也不難發現仍然有少數的特徵點彼此的對應是錯誤的(即 False Match) ,所以在特徵點匹配之後的下一個動作,就是要把錯誤的匹配點剔除掉 (Delete The False Match) ,[33]-[34]提出了幾種方法來建立一個正確的模 型,再利用此模型來剔除掉錯誤的資料(data) ,這些方法不僅可以適用於影像 上,也可以適用於許多統計資料的處理。而在[36]-[37]都使用[33]的作法來建 立正確的模型以剔除掉錯誤的特徵點。[33]使用隨機取樣程序(RANdom SAmple Consensus)來建立模型剔除掉錯誤的資料,簡稱 RANSAC。RANSAC(RANdom SAmple Consensus)為一套使用隨機取樣來估計影像轉換參數的強健估計機制,在一般的

由上面的 RANSAC 流程我們並不難發現 RANSAC 流程當中有許多參數都是由使

1 1 1 1 1 1 1

模型錯誤的機率已經小於 10-14,因此使用k=500,最後在內部點(inlier points) 的部分求出來之後,再把所有內部點代入式 2-8 並使用[35]direct linear transformation(DLT)以得到最後最精確的模型H。圖 2-4.1、圖 2-4.2 為RANSAC 的兩個範例,藍色圈為經過初步Matching的結果,紅色叉為經過RANSAC的結果,

我們會發現所有Match都正確對應到了。圖 2-4.3 為RANSAC的流程圖。

我們會發現所有Match都正確對應到了。圖 2-4.3 為RANSAC的流程圖。

相關文件