• 沒有找到結果。

輪廓追蹤 Expanded Window 的設計重點

第三章 輪廓追蹤、紋路轉折與紋路分岔研究

3.1.2 輪廓追蹤 Expanded Window 的設計重點

輪廓追蹤所找到的boundary pixel 均會儲存在一個 1D Array 的陣列中,由順時 針的方式所找到的boundary pixel 會儲存在一個 Left Point 的 1D Array 中,而由逆 時針的方式所找到的boundary pixel 則會儲存在一個 Right Point 的 1D Array 中,

依照索引值來將這兩個陣列各取出一個Left Point 值與 Right Point 值。然而取出來 的一對Left Point 與 Right Point 在排列上是不固定的。如果只是用單一個演算法來 擴展Window 將會導致錯誤。以 LF-UD,d=1 為例,在正常情況下,Right Point(橘 色圓點)都會落後或水平於 Left Point(水藍色圓點),所以架構出的 Window(紅色 3x3 的矩形)是正常的,如圖 3-3 所示。

圖 3-3 當 LF-UD,d=1 時,Right Point(橘色圓點)落後於 Left Point(水藍色圓點) 同樣以LF-UD,d=1 為例,輪廓追蹤所找出的 Right Point(橘色圓點)則會有可 能超過Left Point(水藍色圓點)1 個 pixel 以上,則所架構出的 Window(紅色 3x1 的 矩形)是合理的,如圖 3-4 所示。可以想像一個不合理的 Window,要在其內部找出 Next Left Point 和 Next Right Point 是會導致問題的。

圖 3-4 當 LF-UD,d=1 時,Right Point(橘色圓點)超前 Left Point(水藍色圓點)1 個 pixel 以上。此 Expanded Window 已變形,無法找出合理的 Next Left Point 與 Next

Right Point Point,這樣組成一對。也可比較每一對的 Left Point 與 Right Point 的相對位置都是 不一樣的,但不難發現,有些成對組合的Left Point 與 Right Point 的擴展方向是相 1 對的 Left Point 位置是高於 Right Point 的,但當 Left Point 的位置低於 Right Point 時,則 Window 的擴展方式則變成圖 3-6 的第 3 對的方式,這是很特別的一個設 計方式。

圖 3-5 人的行進方向為順時針時,圓圈上每個位置的 Left Point 與 Right Point 的 輪廓追蹤擴展Window 方式的設計圖

圖 3-6 人的行進方向為逆時針時,圓圈上每個位置的 Left Point 與 Right Point 的 輪廓追蹤擴展Window 方式的設計圖

既然由輪廓追蹤所架構出的Window 已經成形了,那麼,接下來要討論的就是 要如何在這個Window 內抓取 Left Point 與 Right Point。依照吾人嘗試多次失敗的

研究,得到以下經驗:輪廓追蹤所架構出來Window 在分岔與劇烈轉折的實用性非 常強大,已經超越正統Line Following Baruch[3]所架構出的 Window。而在輪廓追 蹤所架構的 Window 內分岔時的各個分支處理上,每個分支所找到的第一對 Left Point 與 Right Point 盡量使用輪廓追蹤法來擴展 Window 的方式做 Line Following,

如果用 Baruch[3]來做 Line Following 的話在某些圖案的細線化執行上會有非常高 的難度(例如:45 度的指紋紋路分岔細線化時,原因在於所產生的 Window 四個邊 分多的情況。當輪廓追蹤Window 偵測到 Window 右邊界有分岔時,也就是 Window 的右邊偵測到 101,這時左分支的 Right Point 可以容易計算出來,左分支的 Left

Window 的上邊界從 RU 開始計算,範圍從座標(7,10)到座標(3,10)為止;Window 的

左邊界從 LU 開始計算,範圍從座標(2,10)到座標(2,3)為止;Window 的下邊界從 LD 開始計算,範圍從座標(2,2)到座標(6,2)為止,如圖 3-8 所示。另外 4 種情況則 參考圖 3-9~圖 3-12 所示。

圖 3-8 L 瓢蟲分佈位置 Case1 Ladybird-L on RD course

圖 3-9 L 瓢蟲分佈位置 Case2 Ladybird-L on RU course

圖 3-10 L 瓢蟲分佈位置 Case3 Ladybird-L on LU course

圖 3-11 L 瓢蟲分佈位置 Case4 Ladybird-L on LD course

圖 3-12 L 瓢蟲分佈位置 Case5 Ladybird-L on RD course

當輪廓追蹤Window 偵測到 Window 右邊界有分岔時,也就是 Window 的右邊 偵測到101,這時右分支的 Left Point 可以容易計算出來,右分支的 Right Point 則 必須考慮以下5 種情況,如同上述,一樣是把 Window 的 4 個角落分別獨立制定出 來,RD 指的是 Window 的最右下角的位置(座標(7,2)),RU 指的是 Window 的最右 上角的位置(座標(7,10)),LU 指的是 Window 的最左上角的位置(座標(2,10)),LD 指的是Window 的最左下角的位置(座標(2,2)),Window 的 4 邊分別從各個角落開 始計算起,Window 的右邊界從 RU 開始計算,範圍從座標(7,10)到座標(7,3)為止;

Window 的上邊界從 LU 開始計算,範圍從座標(2,10)到座標(6,10)為止;Window 的 左邊界從LD 開始計算,範圍從座標(2,2)到座標(2,9)為止;Window 的下邊界從 RD

開始計算,範圍從座標(7,2)到座標(3,2)為止,如圖 3-13 所示。另外 4 種情況則參 考圖 3-14~圖 3-17 所示。

圖 3-13 R 瓢蟲分佈位置 Case1 Ladybird-R on RU course

圖 3-14 R 瓢蟲分佈位置 Case2 Ladybird-R on RD course

圖 3-15 R 瓢蟲分佈位置 Case3 Ladybird-R on LD course

圖 3-16 R 瓢蟲分佈位置 Case4 Ladybird-R on LU course

圖 3-17 R 瓢蟲分佈位置 Case5 Ladybird-R on RU course

然而,從上述由輪廓追蹤所架構出的 Window 的 5 種分岔追蹤情況可以發現 Case5 不是很合理,而且 Case4 同樣也是,經由多次的實作經驗發現,當分岔出現 在Window 的右邊界時,以左分支為例,Left Point 需一直追蹤到 Window 的左邊 界完為止,才可保證在特定某種指紋紋路下可以正確追蹤到Left Point。如同,當 分岔出現在Window 上邊界時,需一直追蹤到 Window 的下邊界完為止;分岔出現 在Window 左邊界時,需一直追蹤到 Window 的右邊界完為止;分岔出現在 Window 下邊界時,需一直追蹤到Window 的上邊界完為止。

當然,分岔的情況並不會剛剛好都在Window 的 4 個邊上呈現出來,有時會發 在 Window 的 4 個角落上,這種情況也是常有的,分別為紋路分岔在 Window 的 RD 處,如圖 3-18 所示;紋路分岔在 Window 的 LD 處,如圖 3-19 所示;路分岔

在Window 的 LU 處,如圖 3-20 所示;紋路分岔在 Window 的 RU 處,如圖 3-21。

這時要把原本只考慮 Window 一個邊界變成同時考慮兩個邊界,一邊為 10,另一 邊為01 時,就構成了 Window 角落分岔條件。

圖 3-18 輪廓追蹤 Window - Line Split at RD

圖 3-19 輪廓追蹤 Window - Line Split at LD

圖 3-20 輪廓追蹤 Window - Line Split at LU

圖 3-21 輪廓追蹤 Window - Line Split at RU

紋路轉折特徵

在指紋細線化的過程中,紋路的分岔與轉折一直以來是關注的重點,也左右了 細線化完成後結果的成敗關鍵,更影響後續程序處理的指紋辨識率。LF-RD 的演 算法在紋路為水平直線時,在當遇到微微向上或向下的線段時,還是能正常運作,

但是當線條越來越趨於往上時,原本的LF-RD 演算法已經無法繼續執行下去,需 設定一個轉換條件使得能由LF-RD 切換成 LF-UD 來繼續細線化垂直的線條。在細

線化的實作過程中,以線條劇烈轉折與線條多分岔(一分多和分岔匯合)最具挑戰性,

接下來將介紹由Chouinard and Plamondon[4]所提出的對於線條的分岔與劇烈轉折 的特別演算法。

相關文件