3.2 特定建築物偵測
3.2.3 關鍵點相對位置檢測
在執行關鍵點匹配後,得到了範例圖像與測試圖像中關鍵點的匹配關係矩 陣。執行圖像切割後,得到了每個物件的區域。之後,為了使最後得到的結果更 佳的準確,必須將匹配關係矩陣中錯誤的結果去除,讓之後得到的轉換矩陣更加 的準確。首先,考慮匹配關係矩陣,將其中的範例關鍵點依範例圖像的切割區域 作分類,把位於相同分割區域的範例關鍵點視為同一群,也就是將相同物件中的 範例關鍵點視為同一群。
如果照相機的拍攝方式不改變(天空是在圖像的正上方,地面是在圖像的正 下方),同一棟建築物中關鍵點的相對位置也不應該改變。依此想法,照相機的 拍攝方式不改變的情況下,在匹配關係矩陣中,測試圖像內被匹配的測試關鍵點 的相對位置,應同於範例圖像內範例關鍵點的相對位置。為了檢測此項性質,本 論文中所用的方法為將範例圖像與測試圖像並排且假設每一組匹配的關鍵點之 間有一條連線,如果符合上述性質,線與線之間應為平行的狀態,所以只要將同 一群中總數最多的平行線群找出來即可,如圖 3-12。
圖 3-12 同一分割區域中總數最多的平行線群
但是,為了能夠在範例圖像及測試圖像的拍攝方式不同的情況下,依然能夠 使用此性質,可以使用 SIFT 中得到的關鍵點的方向。先將匹配關係矩陣中每一 組關鍵點中範例關鍵點與測試關鍵點之間方向的差值算出來,再針對各組關鍵 點,先將測試圖像依之前算出之差值旋轉後,再做關鍵點相對位置檢測,就能得 到在該物件中哪幾組關鍵點所構成之線與此組關鍵點所構成的線互相平行,如圖 3-13。
但是,每組關鍵點在執行關鍵點相對位置檢測之前,都必須依範例關鍵點與 測試關鍵點之間方向的差值旋轉測試圖像,因而耗費了大量的執行時間。為了要 減少執行時間,可以先利用統計的方式決定測試圖像的旋轉角度。方法為先建立 一個方向直方圖,其中每一個 bin 的範圍為 10 度角,共 36 個 bin。利用關鍵點 的方向資訊,算出每組匹配關鍵點之間的角度的差額並用方向直方圖統計,再挑 選出統計值最高的 bin 當作測試圖像旋轉的角度。在此方式下,只需旋轉測試圖 像一次,即可完成每一組關鍵點的關鍵點相對位置檢測,進而節省了大量的執行 時間。
圖 3-13 當圖上下顛倒時關鍵點相對位置檢測的情況
此外,為了預防圖像切割錯誤,關鍵點匹配的對象除了同群的關鍵點外,也 包含該關鍵點周圍一定範圍內的其餘匹配關係矩陣中的關鍵點並將各組關鍵點 所得結果分別整理成該組關鍵點的關鍵點對應關係矩陣(a),如圖 3-14。最後,
因為要由一個物件匹配至另一個物件,所以我們也要從各組關鍵點的關鍵點對應 關係矩陣(a)中,挑選出與該組的測試關鍵點相同物件中的測試關鍵點並分別整 理成關鍵點對應關係矩陣(b),如圖 3-15。
圖 3-14 關鍵點對應關係矩陣(a)的結果,其中共有 22 組的關鍵點匹配結果
圖 3-15 關鍵點對應關係矩陣(b)的結果,其中共有 18 組的關鍵點匹配結果
找出與該組的範例關鍵點位於同群或彼此 距離小於門檻值 d 的關鍵點組並將此紀錄 成該組關鍵點的關鍵點對應關係矩陣(a)
執行關鍵點相對位置檢測
依序對匹配關係矩陣中每一組關鍵點,將 測試圖像旋轉範例關鍵點與測試關鍵點方
向值的差距角度
挑選出與該組的測試關鍵點位於相同分割 區域內的關鍵點組並整理成該組關鍵點的
關鍵點對應關係矩陣(b)
將位於範例圖像中相同分割區域內的關鍵 點視為同一群
圖 3-16 關鍵點相對位置檢測流程圖