• 沒有找到結果。

使用BUMS與PRSC影像縫合快速演算法設計

在第二章介紹了一些關於影像縫合的基本理論之後,接下來本篇論文所要談 的,是關於影像縫合演算法在設計或執行過程當中可能會遭遇到的問題,針對此 來做說明以及尋求解決的辦法。

3-1 Bottom-Up Maxima Selection(BUMS)

3-1.1 傳統適應性非最大化壓縮法之深入討論

在 2-2.3 當中我們介紹了適應性非最大化壓縮法(Adaptive Non-Maximal Suppression)的演算法,本節我們要繼續 ANMS 對於 AutoStitch 的優缺點來做深 入的探訪與分析。

讓我們先回顧一下在特徵點擷取(Feature Extraction)的步驟使用 ANMS 的 優點,之所以會從 the highest corner strength 進展到 ANMS,主要的原因有 兩個:第一、ANMS 所擷取的特徵點比起 the highest corner strength 可以平均 分散在整張影像當中,這是一個非常好的特性,因為在縫合兩張影像的過程當 中,可能兩張影像的重疊部分(overlap)非常少,或是剛好沒有特徵點存在於兩 張影像重疊的部份,則縫合的結果會大大的受到影響。圖 3-1.1(a)(b) 大部分 的特徵點都集中在上半部份,下半部份特徵點非常少,因此若有另ㄧ張縫合影像 的重疊部分(overlap)是與圖 3-1.1(a)的下半部分重疊,則這兩張圖的 Matching Points 會非常的少,因為下半部份存在的特徵點本來就很少,如此的情況非常 不利於我們的影像縫合。但是同樣的圖若換成是圖 3-1.1(c) ,因為所有的特徵 點較為均勻分佈,因此若有另ㄧ張縫合影像的重疊部分(overlap)是與圖 3-1.1(c) 的下半部分重疊也不會造成太大的影像,因為本身下半部份就有許多的特徵點可 以提供之後作 Matching 和縫合的動作,因此能有像圖 3-1.1(c)(d)這樣均勻分

(a) Strongest 250 (b) Strongest 500

(c) ANMS 250 (d) ANMS 500 圖 3-1.1 適應性非最大化壓縮法(ANMS)範例一

佈而且特徵點數目又控制在所希望的大小是一個非常不錯的特性。第二、特徵點 個數可以壓制在一定的數目以下。運算消耗量與特徵點的多寡是呈現超線性 (superlinear)的關係,因此 ANMS 同樣也把特徵點個數壓制在 ni=500,使得特 徵點數目不至於過多進而拖垮整個演算法的運算效率。因為同時具備這兩個優 點,ANMS 在擷取特徵點的使用相當普遍。

接著我們要從另一個角度來看適應性非最大化壓縮法(ANMS)的缺點,在 2-2.3 當中我們有提到 ANMS 為了達到整張影像平均分布的效果,因此把反應函 數 Response Function R 的搜尋範圍 r 從無限大往內縮回,當某個點為此 Search Range 的最大值時,就令此點為 ANMS 的特徵點。當 Search Range 從無限大往內 縮回時,特徵點數目也會相對增加,當特徵點數目增加到我們想要的數目 ni 時 ([27]令 ni=500) ,ANMS 才停止擷取特徵點。如圖 3-1.2。

Test Max. condition of every response points

Pick those points as the final matching point

SR = SR-1 少,之後慢慢往內縮,特徵點數目才慢慢增加。也就是說剛開始 Search Range r 很大時,運算量消耗非常多,但是能擷取出來的特徵點卻非常少(因為 r 很大表 示限制嚴格,能擷取進來的特徵點較少) ,這不是一個好的現象,正常來說當演 算法某部份消耗很大運算量時,則希望這部份能發揮較大的效果,但是 ANMS 這 裡卻剛好相反,運算量消耗非常多,但是能擷取出來的特徵點卻非常少。並且根 據統計,整個 AutoStitch 流程當中,特徵點擷取佔最大的運算量,也就是 ANMS 為了達到平均分佈的效果,使得 r 從無限大往內縮,但是在這裡卻因此佔了縫合 影像流程當中最 Critical 的部份,拖垮了整個影像縫合演算法的效率。如圖 3-1.3,圖 3-1.3(a)顯示 ANMS 的結果,圖 3-1.3(b)顯示 Search Range r 從無限 大縮回時,特徵點數量與 Search Range r 的對應關係圖,我們會發現剛開始 r 很大時,特徵點累積數量很少,到後面 r 慢慢縮小到 20 以下,特徵點數量才開 始慢慢變多,但是在剛開始因為 r 很大,所以要花上相當大的運算量,在運算效 率上相當不划算。(在此我們定 r=影像長寬的最小值除以 10 代替 r=無限大,因

50 40 30 20 10

Number of Feature Points

Number of Feature Points V.S Search Range

(a) (b)

Number of added Points in this Search Range

Number of added Points V.S Search Range

(c)

圖 3-1.3 ANMS 與 Search Range r 之深入分析範例一 (a)ANMS 的結果

(b)Search Range 從無限大往內縮回時的特徵點擷取數量累積圖 (c)Search Range 從無限大往內縮回時的特徵點增加數量圖

表 3-1.1 SR 從無限大往內縮回時特徵點擷取數量與增加數量統計表範例一

了 12 組的 Pattern 都有一樣的現象,這現象是相當合理的,因為當 r 很大,表

Number of Feature Points

Number of Feature Points V.S Search Range

(a) (b)

100

(c)

圖 3-1.4 ANMS 與 Search Range r 之深入分析範例二 (a)ANMS 的結果

(b)Search Range 從無限大往內縮回時的特徵點擷取數量累積圖 (c)Search Range 從無限大往內縮回時的特徵點增加數量圖

50 40 30 20 10

Number of added Points in this Search Rang

Number of added Points V.S Search Range

e

表 3-1.2 SR 從無限大往內縮回時特徵點擷取數量與增加數量統計表範例二 快速的演算法,稱為 Bottom-Up Maxima Selection ,簡稱 BUMS。BUMS 比起傳 統 ANMS 演算法,可以達到一樣的目的,但運算量卻大大地降低。

Test Max. condition of every response points

Pick those points as the final matching point

SR = SR+1 上一個 r 當中所擷取出來的候選特徵點(candidate points)即可,因為若在 r=A 的情況都無法成為可能的特徵點,那麼在 r=A'> A 的情況就更不可能成為特徵

0 5 10 15 20 25 30 35

Number of Feature Points

Number of Feature Points V.S Search Range

(a) (b)

Number of deleted Points V.S Search Range

se Poed Fea deletmber of

表 3-1.3 SR 從 r=1 往外擴張時特徵點擷取數量與剔除數量統計表範例一

0 5 10 15 20 25 30 35 40 45

Number of Feature Points

Number of Feature Points V.S Search Range

(a) (b)

Number of deleted Feature Points

Number of deleted Points V.S Search Range

圖 3- Range r 之深入分析範例二

表 3-1.4 SR 從r=1往外擴張時特徵點擷取數量與剔除數量統計表範例二

綜合以上,在 Bottom-Up Maxima Selection (BUMS)當中,我們的做法是把 Search Range r 從 1 開始往外擴張,並且在擴張的過程當中只針對候選特徵點 (Candidate Points)來做擴張,不是候選特徵點的就不重複做,另外我們也不使 用 ni=500 做最後的特徵點,而是當某個 Search Range r 剔除掉的點小於 50,

BUMS 即停止,會這樣做的原因是因為當特徵點剔除數量<50 時,整個特徵點已經 趨近於收斂,如表 3-1.3、表 3-1.4 都可以清楚地觀察到此特性。例如當表 3-1.4

的 r=13 時,特徵點剔除的數量只剩下 41 個,之後都越來越趨近飽和,因此若 r 繼續往外擴張,特徵點剔除的數量會越來越少,Search Range 變大但是能剔除 的特徵點數量卻越來越少,不符合運算效率,因此我們定當特徵點剔除數量小於 50 時,BUMS 即停止,且如此的做法可以適應性地選擇特徵點的數量,若是特徵

圖 3-1.8 Bottom-Up Maxima Selection(BUMS)流程圖

fication of the Uniform Dis

總共有 14 個,並且我們去計算兩張影像特徵點的 X 軸與 Y 軸標準差,圖 3-1.9 點數量小於 500 點,對之後的 Matching 也有很大的幫助,如圖 3-1.8。

Put all response points into a pool, SR=1

3-1.3 特徵點均勻分佈特性驗證(Veri tribution of the Feature Points)

在前面幾節當中,我們曾經不只一次談到特徵點的均勻分佈將會對影像的縫 合有很大的益處,因此本節將簡單地提出一個例子來並用標準差的方式來做驗 證,圖 3-1.9 顯示特徵點擷取較為集中的情況,影像中的內部點(Inlier Points)

Test Max. condition of every candidate points

Pick those remainder points as the final matching point

SR = SR+1

# of deleted points<50

yes

no

(a) 匹配點(Matching Points)與內部點(Inlier Points)

(b)歪斜影像 (c)縫合影像 圖 3-1.9 特徵點較為集中的情況範例

(a) 藍色圈為匹配點(Matching Points),紅色叉為內部點(Inlier Points) (b) 歪斜影像

(c) 縫合影像

(a) 匹配點(Matching Points)與內部點(Inlier Points)

(b)歪斜影像 (c)縫合影像 圖 3-1.10 特徵點較為分散的情況範例

(a) 藍色圈為匹配點(Matching Points),紅色叉為內部點(Inlier Points) (b) 歪斜影像

(c) 縫合影像

的 std_x 分別為 67.493 與 67.723,std_y 分別為 39.431 與 38.896,我們會發 現 Y 軸的標準差較小,即 y 軸分佈較不均勻,所以圖 3-1.9(b)和(c)顯示的歪斜 影像和縫合影像顯示了因為特徵點不均勻分佈所產生的影像縫合失真。同樣的方 法來看圖 3-1.10,影像中的內部點(Inlier Points)總共有 15 個,並且我們去 計算兩張影像特徵點的 X 軸與 Y 軸標準差,圖 3-1.9 的 std_x 分別為 72.914 與

3-2 極化型隨機取樣程序(Polarized Random Sample Consensus)

3-2.1 RANSAC 執行次數之討論(Discussion of RANSAC Times)

在 3-1 當中我們提出了 BUMS 快速演算法,除了使特徵點可以均勻分佈於整張影

(a) (b)

(a)

圖 3-2.1 失敗 RANSAC 與失敗的縫合影像

(a)(b) 經過 RANSAC 之後仍有兩個 false match 的結果 (c) 因為 false match 所造成的影像失真

(a) 執行 500 次 RANSAC 之後的內部點(inlier points)

(b) 執行 50 次 RANSAC 之後的內部點(inlier points)

(c) 執行 500 次 RANSAC 的縫合影像 (d) 執行 500 次 RANSAC 的縫合影像 圖 3-2.2 執行不同次數 RANSAC 的內部點結果與縫合影像

發現兩組影像完全一樣,因此縫合影像也完全一樣,從這裡我們就可以發現不一 定需要 500 次的 RANSAC 才能成功地縫合影像。

3-2.2 極化型隨機取樣程序流程(The Flow of Polarized Random

Sample Consensus)

Y1 為某組 Pattern 裡面其中一張影像的匹配點座標,Voting5000 表示每個座標 點經過 5000 次 RANSAC 之後每個點被 Voting 到的次數。從表 3-2.1 當中我們可 以清楚地看到這 24 個匹配點經過 5000 次的 RANSAC 之後,有 4 個點被 Voting 到 的次數非常少,有一個座標點甚至只被投票到 22 次,剩下 20 個座標點被 Voting 到的次數都非常高,最少都有 1441 次,也就是所有的匹配點呈現兩極化 (Polarized)的現象。如果是正確的匹配點(Correct Match),則經過一定次數的 RANSAC 之後被 Voting 到的次數會非常多,相對地,如果是錯誤的匹配點(False Match) ,經過一定次數的 RANSAC 之後被 Voting 到的次數會非常少,這是一個

表 3-2.1 匹配點經過 5000 次 PRSC 投票結果之關係表 Number Match X1 Match Y1 Voting5000

1 80 84 1638 配點的 Voting 值呈現兩極化(Polarized)的現象(如表 3-2.1 的 Voting 兩極 化) ,RANSAC 即可停止,不需要執行 RANSAC 到 500 次才停止,因為若出現此情 況,表示正確的匹配點已經幾乎知道,不需要再消耗運算量來做多餘的 RANSAC 了。因此我們在這裡定一個臨界值 0.3,當所有匹配點 Voting 的標準差已經大

於最大 Voting 值的 0.3 倍,表示 Voting 值呈現兩極化的現象,RANSAC 即停止, RANSAC 從不再重新隨機取樣,而是從上一次的 RANSAC 當中測試成功的樣本座標 點來做隨機取樣,如此的做法可以大大的提升擷取正確內部點的機率,比起單純 做 Voting 標準差法還可以更節省 RANSAC 次數,在第四章我們會提出模擬結果來 證明。圖 3-2.3 為極化型隨機取樣程序(PRSC)的流程圖。

Calculate H by picking 4 feature points from the pool randomly

Vote candidate feature points by testing H

Pick top feature points as the final matching point

%votes > 30%

yes

Put passed feature Put all feature points

Put failed feature no

Std (Voting) >

yes

no

圖 3-2.3 極化型隨機取樣程序(PRSC)流程圖

PRSC 在最後階段擷取最後的正確匹配點或稱內部點(Inlier Points)時,我 們是採取所有匹配點的低標來當臨界值,當 Voting 超過所有匹配點的低標值則 稱為內部點(Inlier Points) ,超過則視為外部點(Outlier Points) ,傳統 RANSAC 定義內部點為 500 次當中最大對應成功次數的樣本點,因為它沒有做投 票機制的動作所以無法取高低標或平均,但 PRSC 取低標當最後臨界值,原因是 因為我們是採取適當的投票機制,幾次之後發現標準差拉開了,即 Voting 值呈

PRSC 在最後階段擷取最後的正確匹配點或稱內部點(Inlier Points)時,我 們是採取所有匹配點的低標來當臨界值,當 Voting 超過所有匹配點的低標值則 稱為內部點(Inlier Points) ,超過則視為外部點(Outlier Points) ,傳統 RANSAC 定義內部點為 500 次當中最大對應成功次數的樣本點,因為它沒有做投 票機制的動作所以無法取高低標或平均,但 PRSC 取低標當最後臨界值,原因是 因為我們是採取適當的投票機制,幾次之後發現標準差拉開了,即 Voting 值呈

相關文件