【目標檢測】FAST特徵學習記錄
阿新 • • 發佈:2019-02-19
一、FAST演算法流程
它的演算法流程是:
1. 影象中任意一點p,該點是我們要識別的是否為感興趣的點,假設其亮度為Ip;
2. 設定一個亮度閾值T;
3. 設定半徑為3,選擇p周圍的16個畫素;
4. 16個畫素中的N個相鄰畫素(作者設定N=12)的亮度小於Ip-t或者大於Ip+t,那麼這個點就是角點;
5. 考慮到演算法的計算速度,首先和Ip比較1,5,9,13點的亮度。其中至少要有3個點滿足第4步的閾值準則;
6. 如果不滿足第5步,則該點不是角點,如果滿足第5步,則繼續檢查剩下的12個點是否滿足第4步的條件;
7. 重複上述步驟遍歷完影象上所有的畫素。
上述演算法有一些侷限性;
1. 如果N<12,則演算法的表現不好,因為會檢出過多的點;
2. 16個點的檢驗順序影響演算法的計算速度。
二、基於機器學習的角點檢測
基於學習的特徵點檢測方法分為兩步:
1. 在需要檢測的場景用多張影象進行角點提取。設定一個n和合適的閾值進行檢測。提取的特徵點作為訓練資料。
對於半徑為3的圓上的16個畫素點,則畫素x與p的關係可以劃分為如下三種:
這樣就得到三個子集Pd,Ps,Pb。
Kp=true表示該點是角點,Kp=false表示該點不是角點。
2. 用第1步提取的特徵點進行訓練,使用ID3演算法建立一顆決策樹,假設使用第x個畫素點進行決策樹的劃分,那麼對集合P得到的熵K是:
則資訊增益為
三、非極大值抑制
由於FAST沒有計算角點響應函式,所以不能直接對結果特徵應用NMS。作者定義了一個V,對V應用NMS。比較相鄰角點的V值,然後刪除V值較小的角點。