MVS步驟(1)——關鍵點提取和匹配[SIFT1]
這是SIFT的經典文章,初步先進行一個詳細的翻譯以進行記錄,同時理解裡面的演算法和思想,下一步爭取一步步實現論文裡的演算法。
Distinctive Image Features from Scale-Invariant Keypoints
Abstract
本文提出了一種用於從影象中提取有特點的不變特徵的方法,該方法可用於在物件或場景的不同檢視之間執行可靠匹配。通過使用快速最近鄰居演算法將各個特徵與來自已知物件的特徵資料庫匹配,然後進行霍夫變換以識別屬於單個物件的聚類,最後通過最小二乘解決方案對一致的姿勢引數進行驗證。
1. Introduction
1.尺度空間極值檢測:計算的第一階段搜尋所有尺度和影象位置。通過使用高斯差分函式來有效地實現識別對於比例和方向不變的潛在興趣點。 2.關鍵點定位
這種方法被稱為尺度不變特徵變換(SIFT)(the Scale Invariant Feature Transform),因為它將影象資料轉換為相對於區域性特徵的尺度不變座標。
3. 檢測尺度空間極值
我們將使用級聯過濾方法檢測關鍵點,,該方法使用有效演算法來識別候選位置,然後進一步詳細檢查。 關鍵點檢測的第一階段是識別可以在同一物件的不同檢視下重複分配的位置和比例。通過使用稱為尺度空間的連續尺度函式(Witkin,1983)來在所有可能尺度上搜索穩定特徵,可以實現檢測對影象尺度變化不變的位置。 Koenderink(1984)和Lindeberg(1994)已經證明,在各種合理的假設下,唯一可能的尺度空間核是高斯函式。因此,影象的尺度空間被定義為函式L(x,y,σ),它是由可變尺度高斯函式G(x,y,σ)與輸入影象I(X,Y)的卷積產生的: 其中*是x和y中的卷積運算.並且:
為了有效地檢測尺度空間中的穩定關鍵點位置
3.1區域性極值檢測
圖2:通過比較一個畫素(用X標記)與當前和相鄰尺度(用圓圈標記)的3×3區域中的26個鄰居來檢測高斯差分影象的最大值和最小值。
為了檢測D(x,y,σ)的區域性最大值和最小值,將每個取樣點與其當前影象中的八個鄰居以及上下比例中的九個鄰居進行比較(參見圖2)。僅當它大於所有這些鄰居或小於所有鄰居時才選擇它。這項檢查的成本相當低,因為大多數樣本點將在前幾次檢查後消除。
3.2按比例抽樣的頻率
由於物件識別的成功通常更多地取決於正確匹配的關鍵點的數量,而不是它們的正確匹配百分比,對於許多應用來說,使用更多數量的比例樣本將是最佳的。 總而言之,這些實驗表明,尺度空間高斯函式差異具有大量的極值,並且檢測它們將是非常昂貴的。幸運的是,即使採用粗略的標度取樣,我們也可以檢測到最穩定和最有用的子集。
4 準確的關鍵點定位
一旦通過將畫素與其鄰居進行比較找到了關鍵點候選者,下一步就是對附近資料進行詳細匹配,以獲得主曲率的位置,尺度和比率。該資訊拒絕具有低對比度(因此對噪聲敏感)或沿邊緣定位不良的點。 這種方法的初步實施(Lowe,1999)只是將關鍵點定位在中心樣本點的位置和規模上。 然而,最近Brown開發了一種方法(Brown和Lowe,2002),用於將3D二次函式擬合到區域性樣本點以確定最大值的插值位置,他的實驗表明,這為匹配和穩定性提供了實質性的改進。 圖5:該圖顯示了關鍵點選擇的階段。(a)233x189畫素的原始影象。(b)在高斯差值函式的最大值和最小值處的初始832個關鍵點位置。關鍵點顯示為表示比例,方向和位置的向量。(c)在對最小對比度應用閾值後,仍然存在729個關鍵點。(d)最終的536個關鍵點仍然在主曲率比率的額外閾值之後。
正如Brown所建議的那樣,Hessian和D的導數通過使用相鄰樣本點的差異來近似。 得到的3x3線性系統可以以最低的成本解決。如果偏移x在任何維度上都大於0.5,則意味著極值更接近不同的取樣點。 在這種情況下,樣本點被改變並且執行插值而不是執行該點。將最終偏移x新增到其取樣點的位置,以獲得極值位置的插值估計。 極值處的函式值D(x)可用於抑制低對比度的不穩定極值。 這可以通過將等式(3)代入(2)得到 對於本文中的實驗,所有| D(x)| 的極值小於0.03的都被丟棄(如前所述,我們假設影象畫素值在[0,1]範圍內)。 圖5顯示了關鍵點選擇對自然影象的影響。 為了避免過多的混亂,使用低解析度233×189畫素影象,關鍵點顯示為向量,給出每個關鍵點的位置,比例和方向(方向分配如下所述)。 圖5(a)顯示了原始影象,其在後續圖形後面以降低的對比度顯示。 圖5(b)顯示了高斯函式差異的所有檢測到的最大值和最小值的832個關鍵點,而(c)顯示了刪除值小於0.03的| D(x)|的所有729個關鍵點。(d)部分將在下一節中解釋。
4.1消除邊緣響應
為了穩定性,只是拒絕低對比度的關鍵點是不夠的。即使沿邊緣的位置不確定,並因此對少量噪聲不穩定,高斯函式的差異仍沿著邊緣具有強響應。 在高斯差分函式中定義不明確的峰將在邊緣上具有大的主曲率,但在垂直方向上具有小的主曲率。 主曲率可以從2x2 Hessian矩陣H計算,在關鍵點的位置和比例下計算: 通過獲取相鄰樣本點的差異來估計導數。 H的特徵值與D的主曲率成正比。借用Harris和Stephens(1988)使用的方法,我們可以避免明確計算特徵值,因為我們只關注它們的比率。 設α是具有最大幅度的特徵值,β是較小的特徵值。 然後,我們可以從H的跡線計算特徵值的總和,並從行列式計算它們的乘積: 計算效率非常高,測試每個關鍵點所需的浮點運算少於20次。 本文中的實驗使用r = 10的值,其消除了主曲率之間的比率大於10的關鍵點。從圖5(c)到(d)的轉變顯示了該操作的效果。
5 方向分配
通過基於區域性影象屬性為每個關鍵點指定一致的方向,可以相對於該方向表示關鍵點descriptor,從而實現影象旋轉的不變性。 在通過多種方法分配區域性方向進行實驗後,發現以下方法可以得到最穩定的結果。關鍵點的尺度用於選擇具有最接近尺度的高斯平滑影象L,使得所有計算以尺度不變的方式執行。對於每個影象樣本,L(x,y),在此尺度下,使用畫素差異預先計算梯度幅度m(x,y)和方向θ(x,y): 從關鍵點周圍區域內的樣本點的梯度方向形成方位直方圖。 方向直方圖有36個區間,覆蓋360度的方向範圍。 新增到直方圖中的每個樣本通過其梯度幅度和高斯加權圓視窗加權,其σ是關鍵點尺度的1.5倍。 方向直方圖中的峰值對應於區域性梯度的主導方向。檢測直方圖中的最高峰,然後使用在最高峰的80%內的任何其他區域性峰也建立具有該方向的關鍵點。 因此,對於具有相似幅度的多個峰值的位置,將在相同位置和比例但是不同方向上建立多個關鍵點。**只有大約15%的點被分配了多個方向,但這些對於匹配的穩定性有很大貢獻。**最後,拋物線擬合最接近每個峰的3個直方圖值,以插入峰值位置獲得更好的準確性。
6 區域性影象描述符
先前的操作已為每個關鍵點分配了影象位置,比例和方向。這些引數利用可重複的區域性2D座標系描述區域性影象區域,因此可以提供這些引數的不變性。下一步是計算區域性影象區域的descriptor,該descriptor具有高度獨特性,對於其他的變化(例如照明或3D視點的變化)儘可能不變。 Edelman,Intrator和Poggio(1997)已經證明了一種更好的方法。他們提出的表示基於生物視覺模型,特別是初級視覺皮層中複雜神經元的模型。這些複雜的神經元響應特定方向和空間頻率的梯度,但允許視網膜上的梯度位置在小的感受野上移動而不是精確定位。 圖7:通過首先計算關鍵點位置周圍區域中每個影象取樣點的梯度大小和方向來建立關鍵點descriptor,如左側所示。 這些關鍵點descriptor由高斯視窗加權,由重疊的圓圈表示。 然後將這些樣本累加到方向直方圖中,形成4x4子區域內的內容,如右圖所示,每個箭頭的長度對應於該區域內該方向附近的梯度巨集的總和。該圖顯示了從8x8樣本集計算的2x2 descriptor陣列,而本文中的實驗使用從16x16樣本陣列計算的4x4 descriptor。
6.1 descriptor表示
圖7說明了關鍵點descriptor的計算。首先,在關鍵點位置周圍取樣影象梯度幅度和方向,使用關鍵點的比例來選擇影象的高斯模糊水平。為了實現方向不變性,descriptor的座標和梯度方向相對於關鍵點方向旋轉。為了提高效率,如第5節所述,對金字塔的所有級別預先計算梯度。這些在圖7左側的每個樣本位置用小箭頭表示。 描述符由包含所有方向直方圖條目的值的向量形成,對應於圖7右側的箭頭長度。該圖顯示了2x2的方向直方圖陣列,而我們下面的實驗表明,使用4x4直方圖陣列可以獲得最佳結果,每個直方圖中有8個方向區間。 因此,本文中的實驗使用每個關鍵點的4x4x8 = 128元素特徵向量。
6.2 描述符測試
有兩個引數可用於改變描述符的複雜性:直方圖中的方向數r,以及n×n方向直方圖陣列的寬度n。得到的描述符向量的大小是r×n×n。隨著描述符的複雜性增加,它將能夠在大型資料庫中更好地區分,但它對形狀扭曲和遮擋也更敏感。
7 應用於物體識別
如上所述,本文的主要主題是推匯出獨特的不變關鍵點. 為了演示它們的應用,我們現在將簡要描述它們在雜亂和遮擋的情況下用於物體識別的用途。關於這些特徵在識別中的應用的更多細節可在其他論文中獲得(Lowe,1999; Lowe,2001; Se,Lowe和Little,2002). 首先通過將每個關鍵點獨立地匹配到從訓練影象提取的關鍵點的資料庫來執行物件識別。由於背景雜亂引起的模糊特徵或特徵,許多這些初始匹配將是不正確的。因此,首先識別至少3個特徵的聚類,其對於物件及其姿勢達成一致,因為這些聚類具有比單個特徵匹配更高的正確概率。然後,通過對模型執行詳細的幾何擬合來檢查每個聚類,並且結果用於接受或拒絕解釋。
7.1 關鍵點匹配
通過從訓練影象中識別關鍵點資料庫中的最近鄰來找到每個關鍵點的最佳候選匹配。 最近鄰被定義為具有不變描述符向量的最小歐幾里德距離的關鍵點,如第6節中所述. 對於我們的物件識別實現,我們拒絕距離比率大於0.8的所有匹配,這消除了90%的錯誤匹配,同時丟棄少於5%的正確匹配。該圖是通過對40,000個關鍵點的資料庫中的隨機比例和方向變化,30度的深度旋轉以及2%影象噪聲的新增來匹配影象而生成的。
7.2 高效的最近鄰索引
識別高維空間中點的精確最近鄰的演算法中,沒有可以與窮舉搜尋相比的。我們的關鍵點描述符具有128維特徵向量,並且最佳演算法(例如k-d樹(Friedman等人,1977))沒有提供超過大約10維空間的窮舉搜尋的加速。因此,我們使用了近似演算法,稱為Best-Bin-First(BBF)演算法(Beis和Lowe,1997)。這種演算法是近似的,它以高概率返回最近鄰。
BBF演算法使用針對k-d樹演算法修改的搜尋排序,以距離查詢位置最近的距離的順序在特徵空間中搜索bins。這個優先搜尋順序首先由Arya和Mount(1993)檢驗,並且它們提供了對其計算性質的進一步研究(Arya等,1998)。此搜尋順序需要使用基於堆的優先順序佇列來有效確定搜尋順序。通過在探索了特定數量的最近的bins之後切斷進一步的搜尋,可以以低成本返回近似答案。在我們的實施中,我們在檢查了前200個最近鄰候選人之後切斷了搜尋。對於具有100,000個關鍵點的資料庫,這提供了超過精確最近鄰搜尋的加速約2個數量級,但導致正確匹配的數量損失少於5%。 BBF演算法特別適用於此問題的一個原因是我們只考慮最近鄰距離第二最近鄰的距離小於0.8倍的匹配(如上一節所述),因此不需要準確地解決許多鄰居距離非常近的最困難的情況。
7.3 使用Hough變換進行聚類
為了把對於小的或高度遮擋的物件的識別的效能最大化,我們希望識別具有儘可能少的特徵匹配的物件。我們發現只需3個特徵即可實現可靠的識別。典型影象包含2,000個或更多特徵,這些特徵可能來自許多不同的物件以及背景雜亂的環境。雖然第7.1節中描述的距離比率測試允許我們丟棄由背景雜亂引起的許多錯誤匹配,但這不會從其他有效物件中刪除匹配,並且我們通常仍需要識別99%的異常值中包含少於1%的內點的正確匹配子集。當內點的百分比遠低於50%時,許多眾所周知的穩健擬合方法,例如RANSAC或最小平方中值,表現不佳。幸運的是,通過使用Hough變換在姿勢空間中聚類特徵可以獲得更好的效能(Hough,1962; Ballard,1981; Grimson 1990)。
Hough變換通過使用每個特徵來投票選擇與特徵一致的所有物件姿勢,從而識別具有一致解釋的特徵叢集。當特徵群集對物件的相同姿勢進行投票時,解釋的正確概率遠高於任何單個特徵。我們的每個關鍵點都指定了4個引數:2D位置,比例和方向,以及資料庫中每個匹配的關鍵點,該資料庫有一個關鍵點引數記錄,該引數與它被發現的那個訓練圖片相關。因此,我們可以建立一個Hough變換條目,從匹配假設中預測模型的位置,方向和比例。該預測具有大的誤差界限,因為這4個引數所暗示的相似性變換僅是3D物件的完整6自由度姿態空間的近似,並且也不考慮任何非剛性變形。因此,我們使用30度的寬二進位制尺寸進行定向,使用2倍的比例尺,以及0.25倍最大投影訓練影象尺寸(使用預測比例)進行定位。為了避免箱子分配中的邊界效應問題,每個關鍵點匹配每個維度中2個最接近的bin的投票,為每個假設提供總共16個條目並進一步擴大姿勢範圍。
7.4仿射引數的解決方案
霍夫變換用於識別在bins中具有至少3個條目的所有聚類。然後對每個這樣的聚類進行幾何驗證過程,其中對於將訓練影象與新影象相關聯的最佳仿射投影引數執行最小二乘解。
仿射變換正確地解釋了在正投影下平面表面的3D旋轉,但是對於非平面物體的3D旋轉,近似可能較差。更通用的解決方案是解決基本矩陣(Luong和Faugeras,1996; Hartley和Zisserman,2000)。然而,基本矩陣解決方案需要至少7個點匹配,而仿射解決方案僅需要3個,並且實際上需要更多匹配以獲得良好的穩定性。我們希望用少至3個特徵匹配來執行識別,因此仿射解決方案提供了更好的起點,並且我們可以通過允許大的殘差來解釋仿射近似中的誤差。如果我們想象在一個物體周圍放置一個球體,那麼將球體旋轉30度將使球體內的任何點移動不超過球體投影直徑的0.25倍。對於本文中使用的典型3D物件的示例,仿射解決方案很有效,因為我們允許殘差誤差高達物件最大投影尺寸的0.25倍。 (Brown和Lowe,2002)給出了一種更通用的方法,其中初始解決方案基於相似變換,然後在發現足夠數量的匹配的情況下進展到基本矩陣的解。
模型點[x y] T到影象點[u v] T的仿射變換可以寫成 其中模型平移為[tx ty] T,仿射旋轉,比例和拉伸由mi引數表示。
我們希望求解變換引數,因此可以重寫上面的等式以將未知數收集到列向量中: 此等式顯示單個匹配,但可以新增任意數量的其他匹配,每個匹配為第一個和最後一個矩陣貢獻兩個以上的行。 需要至少3個匹配才能提供解決方案。
我們可以把這個線性系統寫成 Ax = b。 引數x的最小二乘解可以通過求解相應的正規方程來確定 這最小化了從投影模型位置到相應影象位置的距離的平方和。這種最小二乘方法可以很容易地擴充套件到解決關節和柔性物體的3D姿態和內部引數(Lowe,1991)。
8 Recognition examples
圖12:左側顯示了兩個物件的訓練影象。 這些可以在具有廣泛遮擋的雜亂影象中識別,如中間所示。 識別結果顯示在右側。 圍繞每個識別的物件繪製平行四邊形,示出在識別期間解決的仿射變換下的原始訓練影象的邊界。 較小的正方形表示用於識別的關鍵點。
圖12顯示了包含3D物件的雜亂和遮擋影象的物件識別示例。左側顯示了玩具火車和青蛙的訓練影象。中間影象(大小為600x480畫素)包含隱藏在其他物件背後的這些物件的例項,並且具有大量的雜亂背景,使得即使對於人類視覺也可能不會立即檢測到物件。右側的影象顯示了疊加在影象的縮小對比度版本上的最終正確識別。用於識別的關鍵點顯示為帶有額外線條的方塊以指示方向。正方形的大小對應於用於構造描述符的影象區域。還在每個識別例項周圍繪製外平行四邊形,其邊對應於在識別期間確定的最終仿射變換下投影的訓練影象的邊界。
該方法的另一個潛在應用是進行識別,其中移動裝置或車輛可以通過識別熟悉的位置來識別其位置。圖13給出了該應用的一個例子,其中拍攝了許多位置的訓練影象。如左上圖所示,這些甚至可以是看似非常獨特的物品,如木牆或帶垃圾桶的樹。右上方的測試影象(尺寸640×315畫素)是從原始位置圍繞場景旋轉約30度的視點拍攝的,但是訓練影象位置易於識別。
圖13:此示例顯示覆雜場景中的位置識別。位置的訓練影象顯示在左上方,而從不同視點拍攝的640x315畫素測試影象位於右上方。識別的區域顯示在下部影象上,關鍵點顯示為正方形,外部平行四邊形顯示用於識別的仿射變換下的訓練影象的邊界。
識別過程的所有步驟都可以有效地實現,因此在2GHz Pentium 4處理器上識別圖12或圖13中的所有物件的總時間小於0.3秒。 我們已經在附帶攝像機的膝上型電腦上實現了這些演算法,並在各種條件下對它們進行了廣泛的測試。 通常,紋理化的平面表面可以在任何方向上在高達50度的深度旋轉中被可靠地識別,並且在幾乎任何提供足夠光並且不產生過多眩光的照明條件下。 對於3D物體,可靠識別的深度旋轉範圍在任何方向上僅約30度,並且照明變化更具破壞性。出於這些原因,最好通過整合來自多個檢視的特徵來執行3D物件識別,例如使用區域性特徵檢視聚類(Lowe,2001)。
這些關鍵點也已應用於機器人定位和對映問題,這已在其他論文中詳細介紹過(Se,Lowe和Little,2001)。 在該應用中,三目立體聲系統用於確定關鍵點位置的3D估計。 僅當關鍵點出現在具有一致差異的所有3個影象中時才使用關鍵點,從而導致非常少的異常值。 當機器人移動時,它使用與現有3D地圖的特徵匹配來定位自身,然後使用卡爾曼濾波器在更新其3D位置的同時向地圖遞增地新增特徵。 這為未知環境中的機器人定位問題提供了可靠而準確的解決方案。 這項工作還解決了地點識別的問題,其中機器人可以在大地圖內的任何地方開啟並識別其位置(Se,Lowe和Little,2002),這相當於物體識別的3D實現。
9 Conclusions
本文中描述的SIFT關鍵點由於其獨特性而特別有用,這使得我們能夠從其他大型資料庫中得到關鍵點的正確匹配。通過組合表示區域性區域的影象梯度的高維向量來實現這種獨特性。已經證明關鍵點對於影象旋轉和比例是不變的,並且在大範圍的仿射失真,噪聲的增加和照明的變化中是穩健的。可以從典型影象中提取大量關鍵點,這導致在雜波中提取小物件的魯棒性。在整個範圍內檢測關鍵點的事實意味著小的區域性特徵可用於匹配小的和高度遮擋的物件,而大的關鍵點對於受噪聲和模糊影響的影象表現良好。它們的計算效率很高,因此可以從標準PC硬體上具有接近實時效能的典型影象中提取數千個關鍵點。
本文還介紹了使用關鍵點進行物件識別的方法。 我們描述的方法使用近似最近鄰查詢,Hough變換用於識別在物件姿勢上達成一致的聚類,最小二乘姿態確定和最終驗證。 其他潛在的應用包括用於3D重建的檢視匹配,運動跟蹤和分割,機器人定位,影象全景組裝,極線校準以及需要識別影象之間的匹配位置的任何其他應用。
在推導不變和獨特的影象特徵方面,有許多方向需要進一步研究。 需要對具有完整3D視點和照明變化的資料集進行系統測試。本文中描述的特徵僅使用單色強度影象,因此可以從包括照明不變的顏色描述符中得出進一步的區別(Funt和Finlayson,1995; Brown和Lowe,2002)。 類似地,區域性紋理測量似乎在人類視覺中起重要作用,並且可以以比當前描述符使用的單個空間頻率更一般的形式併入特徵描述符中。不一致的區域性特徵匹配方法的一個吸引人的方面是不需要只選擇一種特徵型別,並且可能通過使用許多不同的特徵獲得最佳結果,所有這些特徵都可以提供有用的匹配並提高整體穩健性。
未來研究的另一個方向是單獨學習適合識別特定物件類別的特徵。這對於必須涵蓋各種可能外觀的通用物件類尤為重要。 Weber,Welling和Perona(2000)以及Fergus,Perona和Zisserman(2003)的研究通過學習適用於識別通用類物件的小型區域性特徵集,展示了這種方法的潛力。 從長遠來看,功能集可能包含先前和已學習的功能,這些功能將根據可用於各種物件類的訓練資料量來使用。
參考文獻: