Sift算法-----part1
前言:真實世界中的物體只有在某些尺寸中才有價值。比如,你在桌上放置了一臺電腦,而你在電腦前,那麼電腦就很好地存在。而當你在一個離電腦很遠的地方查看時,它就像一粒塵埃,沒有什麼意義。
尺度空間的概念旨在將現實中的這個理念用於數字圖像的處理中。
尺度空間:
你是可以選擇看着一個樹還是一片葉子,這取決於你的喜好。如果你選擇了一棵樹,那麼你會選擇忽略掉某些細節(例如葉子等)。當然你在選擇忽略掉某些細節時,你必須保證不會引人更多的細節。唯一合理的方式是採用高斯模糊(在多種情況下已經被數學證明有效,至於怎麼證明,這個問問數學界的大師吧。^_^)
因此,創建一個尺度空間,可以對源圖像連續進行幾次高斯模糊。效果如下:
注意這個貓的頭盔和鬍鬚是如何被忽略的。
SIFT中的尺度空間:
Sift把尺度空間的概念推進到另一種境界。你對原始圖像進行操作時先進行高斯模糊,同時對圖像進行縮小。然後這樣繼續下去。(go on and on ……)
如圖中,垂直方向上是在一個容器中相同尺寸的圖片,每一個容器中有5張圖片,這些圖片是以模糊的程度來排序的。
技術細節:
容器和尺度:
容器的個數和尺度取決於原始圖片的大小。在使用SIFT算法時,你必須自己決定容器和尺度的次數。另一方面,SIFT算法的專利擁有者建議使用4個容器,迭代5次的模糊。
第一個容器:
如果源圖像的尺寸加倍並且加以平滑,該算法會產生4倍多的關鍵點。(當然,更多的關鍵點更好^_^)
模糊:
模糊在數學層面上是指對圖像的高斯積分操作。
模糊的程度:
對每一圖片的模糊程度是非常重要的。假設對於一張特定的圖片模糊程度是σ,然後下一張圖片的模糊程度就是k*σ,k是你可以選擇的常數。
總結:
在sift算法的第一部分中,你對原始圖片創建了幾個容器,每一個容器中的圖片大小是前一個容器中圖片大小的一半,在一個容器中圖片的由高斯模糊遞進。
在下一階段中我們將介紹如何在容器中產生DOG。