Why Extract Features?
- Robot Localization
- 3D object recognition
- 圖像拼接,兩張圖拼成一個視角更大的圖
Advantages of Local Features
- Locality:局部性(局部特徵,抗遮擋等干擾)
- Quantity:數量較多(一張圖像中可能提取幾百幾千個)
- Dintinctiveness:區別性比較好,畢竟要具有代表性,unique
- Efficency:高效性(這個主要看提取原則)
The Feature Matching Problem
- 首先找到一個好的點
- 然後找到對應的點(再另一個變化的圖上)
- 總的來說就是兩個層面:檢測和描述,且 invariant to transformation(拉伸、光照變化、轉換)。
Detection: What Makes a Good Feature?
Look for image regions that are unusual.
How to define "unusual"?
Harris conner detector.
這篇講Harris conner detector的也不錯。
由圖可知unique區域一般在什麼地方。再看下其數學定義,是一個關於u、v的函數。
注意,窗口移動的方向是很多的,不只垂直、水平(任意u、v方向移動)。窗口計算是SSD(對應元素相減求平方然後加起來,當然也可以加權,比如高斯加權)計算的。
爲了分析方便,進行數學分析:
- 假定(u,v)很小
- 假定連續
上面那個推導並不難,主要是那個一階泰勒近似等價(推導的關鍵),那個是關鍵。牛逼。注意下面:
絕大多數信息在M裏面,分析M可以知能量函數的情況。
注意:A、B、C都是與一階導相關的,能量函數是一個二次曲面。
我們找個等高線的截面。解出來一個橢圓?
橢圓的長短軸是有物理含義的,分別對應矩陣M的特徵值的倒數成比例關係。長軸和小特徵值的倒數成比例關係。。自然。。。
特徵值對應的特徵向量的方向就是對應的橢圓的軸的方向。
短軸是能量增長最快的方向,長軸。。。
特徵向量~回憶一下:Ax = ax;(想想怎麼說?把矩陣A看成變換)
長短軸是一個區間(理解下這句話啥意思)。看上面的圖兩個特徵值都應該稍微大一些,這樣的話長軸和短軸都不會太長,那麼在各個方向變化應該都比較大。。。現在理解了麼?
兩個特徵值分別是能量增長最大、最小的方向!
非極大值抑制,這個怎麼理解?
局部最大搜索?
這個經常會用在物體檢測上~暫時先淺顯的理解下。
Feature Dector Invariance
- 旋轉,是否還能檢測到?
- 如果改變光照麼?
- 尺度縮放呢?
- 或者上面的變化的綜合呢?
接下來看看Harris corner的一些性質
- Rotation Invariance 這裏需要從能量函數的物理意義入手。能量函數是一個二次曲面,我們截等高線的圖,然後分析兩根軸的長短來分析是否爲角點。R是不變的!
- 加減像素值,也不影響響應值R,因爲M不變;乘除倍數,會有一定影響,但是問題不大,想想爲啥?因爲M變了,但是總體問題不大。
- 但是Harris corner 不能解決尺度問題,因爲我們的window size是固定的。
如何解決尺度不變性問題?
思路:自動決定window size,根據圖像的內容?怎麼做?
譚平老師的拓展內容?
如何衡量Feature detector?