數字圖像處理-模板匹配


《機器視覺算法與應用》

1. 基於灰度值的模板匹配

模板匹配是通過計算模板與圖像之間的相似度實現。

1.1. SAD & SSD

最簡單的相似度量方法是計算模板與圖像之間差值的絕對值的總和(SAD)或所有差值的平方和(SSD)。它們的等式分別為:

在光照情況保持不變的情況下,SAD和SSD相似度量的結果非常好。但是如果光照發生變化,甚至
在圖像中存在相同物體的情況下,他們都將返回非常大的結果。

從上面的例子中我們可以看出,SAD和SSD相似度量只有在光照情況不發生變化的情況下可以使用。
在不能保證光照穩定的情況下,必須使用另外一種相似度量方法。理想的情況下,這個相似度量應該不隨任何線性的光照變化而變化。

1.2. NCC

能夠達到這種要求的一種相似度量是 歸一化互相關系數 (NCC),等式為:

只有在 |nc(r,c)| = 1 的情況下,模板與圖像之間才完全匹配。一般情況下,歸一化互相關系數的絕對值越大就表示模板與正在檢測的部分圖像之間越接近,歸一化互相關系數的絕對值越接近零就表示模板與圖像越不一致。

1.3. (提前)終止標准

在上述討論中,我們假設必須對所有平移位置都計算相似度量。事實上這樣做是不必要的,因為計算相似度量的結果將在隨后使用閾值 t 進行閾值分割。例如將等式(3.133)求出的SAD結果進行閾值分割意味着我們需要:

上面提到的停止標准可以使我們在確定不可能達到閱值的情況下停止相似度量的計算。因此,他們除了位姿區間中不必要的部分。事實上,目前改進裁減搜索區間方法的研究仍在積極地進行中。例如,在文獻[125]中介紹了使用歸一化互相關系數時如何進一步優化裁減搜索區間的方法。在文獻[126]和[127]中討論了使用SAD或SSD時裁減搜索區間的策略。他們首先將圖像轉換為另一種表示方法,使用這種表示方法時SAD和SSD的一大部分可以使用非常少的計算得到,因此計算中可以盡可能快地達到停止標准。

2. 圖形金字塔加速匹配

使用上述討論的停止標准的情況下,在整個圖像中計算相似度量也是一個非常耗時的工作。 如果不使用停止標准, 那么算法的復雜度為O(whn) 其中ω和h是圖像的寬和高,n是模板中點的數量。使用停止標准一般情況下可以提速的比例為一個常數,但是並不能改變算法復雜度。因此 為了能夠在圖像中實時找到模板,有必要提出能夠進一步提高搜索速度的方法。

3. 基於灰度值的亞像素精度匹配

目前為止, 我們通過匹配得到的模板位置為像素精度。這個位置是通過提取相似度量的局部最大值(SAD,SSD)或局部最小值(NCC)得到。為了使得到的模板位姿的准確度更高,可以提取亞像素精度的局部最小值或最大值。我們只需要將在局部最小值或最大值附近 3×3 的鄰域內的相似度量擬合為一個。然后求解得到該多項式的局部最大值或最小值。

另外一種方法是在模板和圖像灰度值之間使用最小二乘匹配。由於灰度值之間的最小二乘匹配會受光照變化的影響,因此必須為光照變化建立明確的模型,並且它們的參數必須在最小二乘法擬合中確定,從而使算法不受光照變化影響。

4. 帶旋轉與縮放的模板匹配

前面的算法,我們將模板匹配限定為模板與圖像中的目標物體方向與尺寸一致的情況,也就是說可能位姿的空間被限定為平移的空間。上面我們討論到的相似度量方法只能夠容忍圖像中的目標物有很小的旋轉和縮放。因此,如果圖像中目標物體的方向或大小與模板中不同,那么該目標物體將不能被找到。如果我們希望處理更多類型的變換,例如剛性變換或相似變換,就必須更新匹配方法。為了簡單起見,我們將只討論存在旋轉的情況,但這個方法也可以擴展到存在縮放的情況,甚至類似的廣義變換。

5. 可靠的模板匹配算法

很多年來,機器視覺應用中都選用上面討論的模板匹配算法。然而,最近越來越多的應用中要求就算在目標物體由於遮擋或其他方式的干擾導致只有部分出現在圖像中時也能找到模板的位置。另外,甚至在目標物體本身存在大的干擾的情況下也能夠找到目標物體的位置。這些干擾通常稱為混亂。另外在圖像中存在嚴重的非線性光照變化時,也應該能夠找到目標物體。

目前為止我們討論的基於灰度值的模板匹配算法不能夠處理這些類型的干擾。因此,這章節中剩余的部分我們將討論幾種其他的方法,使用這些方法可以在存在遮擋、棍亂和非線性光照變化的情況下找到目標物體。

5.1. 基於邊緣(SED)

我們已經在3.7節中提到了一個不會受非線性光照變化影響的特性:圖像中的邊緣不會(至少很少)受光線變化的影響。因此,它們經常被應用在可靠的模板匹配算法中。使用邊緣時的唯一問題就是如何選擇合適的值來分割邊緣。如果這個閾值太小,那么圖像中將會有非常多亂七八橢的邊緣。如果這個閾值太大,目標物體的重要的邊緣可能丟失,這種情況與物體發生遮擋時效果相同。由於這個閾值不可能選擇的非常完美,這就是為什么需要匹配算法足夠可靠能夠處理遮擋和混亂情況。

使用邊緣匹配物體存在幾種策略:

首先,我們可以在匹配中使用原始的邊緣點,或者增加每個點的一些特性(圖3.127(b))。另外一種策略是使用3.8.4節中介紹的算法將邊緣分割為多個幾何基元,然后在圖像中匹配這些分割得到的幾何基元(圖3.127(c))。最后一種策略是基於邊緣的分割,我們可以得到邊緣上的突變點然后在圖像中匹配這些突變點(圖3.127(d))。應該注意的是這些突變點可以直接從圖像中提取,而不需要首先提取邊緣。

邊緣匹配算法中的一大類是基於模板邊緣與圖像邊緣之間的距離。這些算法一般使用原始邊緣點進行匹配。一個基於這種想法的非常普通的相似度量,是使模板邊緣點與離它最近的圖像邊緣點之間的均方距離最小。因此,顯然我們必須為模板邊緣上每個點確定離它最近的圖像邊緣點,這個過程非常的耗時。

幸運的是,由於我們感興趣的是與最近圖像邊緣點之間的距離,而不需要知道哪個點是最近的點,因此可是使用一種效率很高的方式,就是計算分割后搜索圖像背景的距離變換。如果模板邊緣點與圖像邊緣點之間的平均距離小於一個閾值,我們就認為找到了一個模板的實例。當然,為了得到模板的唯一位置,我們必須計算相似度量的局部最小值。

現在我們可以問自己SED方法是否滿足上述可靠模板匹配算法的標准。由於它基於邊緣進行匹配,因此不受任意光照變化的影響。另外,由於混亂(也就是搜索圖像中其他的邊緣)只能減少與搜索圖像中最近邊緣之間的距離,因此算法不受混亂影響。但是,如果部分邊緣在搜索圖像中沒有出現,沒有出現的部分模板邊緣與最近圖像邊緣之間的距離可能會非常大,因此可能在圖像中就找不到模板位置。這種情況可見圖3.128。想象在一些邊緣沒有出現的的圖像(圖3.128(c)和圖3.128(d))中搜索圖3.128(a)中模板時會發生什么情況。這時沒有出現的部分邊緣將有一個非常大的平方距離,這將大大增加均方邊緣距離的值。此時在圖像中找到正確的匹配位置就非常困難。

5.2. Hausdorff算法

由於SED方法的上述問題,因此提出了一種可以應用在邊緣匹配算法中的另一種距離。它們是基於兩個點集之間的 Hausdorff 距離。讓我們將模
板中邊緣點表示為T,並且將圖像中
邊緣點表示為E。然后,這兩個點集之間的 Hausdorff 距離可以表示為:

其中

Hausdorff 距離需要非常大的計算量,另外,匹配過程中也會產生巨大的運算負載。而更為關鍵的,是即便圖像中待搜索的的模板實例只存在稍許的遮擋,也會導致在圖像中找到很多的錯誤實例。

5.3. 廣義霍夫變換

另外一種基於邊緣像素點本身搜索目標物體的算法是由Ballard提出的廣義霍夫變換。原始霍夫變換是定義為在分割后的邊緣中尋找直線的一種方法。后來霍夫變換經過擴展可以用來檢測其他可解析描述的形狀,如圓或橢圓。廣義霍夫變換的原理可以通過一個簡單例子來解釋。如果我們試着在一個邊緣圖像中尋找一個已知半徑的圓。因為圓是旋轉對稱的,這種情況只需要考慮平移。如果希望能夠在邊緣圖像中盡可能迅速地找到圓的位置,我們可以注意到比背景亮的圓,它的邊緣的梯度向量垂直與圓的邊界,並且梯度向量的方向指向圓的中心。如果圓比背景更暗,梯度向量方向則是背離圓的中心向外。因此,由於我們已知圓的半徑,理論上我們就可以從圓上單個點確定圓的中心。

從上面例子中可以看出,我們可以在圖像中非常高效地找到圓的位置。如果已知圓的極性,也就是知道它比背景暗還是亮,此時我們只需要在圖像中每個邊緣點處對累計數組執行一個簡單加法即可。如果事先不知道邊緣的極性,我們只需要在每個邊緣點處執行兩個加法即可。因此,算法的運算時間與圖像中邊緣點數量成比例,而與模板大小無關,也就是與圓大小無關。理想情況下,我們當然希望能夠找到一種搜索任意目標物體的算法可以達到同樣的效率。

上述討論的廣義霍夫變換效率已經非常高。平均起來,它增加固定數量的累計數組元素。因此,它的運行時間只取決於圖像中邊緣點的數量。然而,這種算法對於機器視覺應用還是不夠快,因為用來搜索對象的累計空間會在很短時間內變的非常大,尤其在允許目標物體旋轉或縮放的應
用中。另外,這個累計器還需要一個巨大的存儲空間。

針對這種情況,在【[論文(2003): Real-time object recognition using a modified generalized Hough transform](數字圖像處理-模板匹配/Real-time object recognition using a modified generalized Hough transform.pdf)】中提出了一種分級的廣義霍夫變換。它使用圖像金字塔加速搜素,通過利用金字塔高層中找到的匹配位置約東金字塔低層的搜索空間來減少累計數組的尺寸。使用這種分級廣義霍夫變換,可以在圖像中實時找到目標物體,並且圖像中存在遮擋、混亂和幾乎任意光照變化的情況下算法都非常穩定。

5.4. 基於匹配幾何基元

目前為止,上面討論的這些算法都是基於直接匹配邊緣上的點。另一類邊緣匹配算法基於匹配幾何基元,例如點、線、圓。這些算法一般是猜測和測試的組合,也就是一般為少數幾何基元假設一個匹配位置,然后測試這些假定的匹配位置在圖像中有沒有足夠的證據。

這種類型算法的最大挑戰就是它必須解決指數級的復雜度問題。

5.4.1. 幾何哈希法

5.4.2. 基於像素的算法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM