視覺單詞 可以 理解爲就是 Local Feature
什麼是Local Feature 呢
包含兩個信息:
座標位置(x,y)
描述符(描述算子 descriptor) 這個描述符是用來可以被量化比對的 做match
計算機視覺中 最重要的Local Feature 就是SIFT :Scale Invariant Feature Transform
SIFT 是一種非常典型的 著名的Local Feature
同樣包含剛剛說的兩個信息:
座標位置 Detector 檢測器
特徵描述算子 descriptor 用來描述特徵向量
SIFT 不是機器學習學出來的 是科學及根據統計學數學 等等規定出來的,給定一個圖片就可以去算它的Local Feature 信息
所以使用opencv 一行api就可以搞定
會輸出如上兩個信息
假如圖像計算出了100個點,
那麼它的座標位置的信息 就會是100*2 的矩陣 100表示點的數量 2表示x和y兩個元素
如果是128維的特徵向量來描述特徵算子 所以還會有 100*128的矩陣 每一行是一個descriptor描述符描述算子 用來對應表示前面每一行的(x,y)的feature
越高清的圖片 檢測出的點越多
左邊的衣服不太可能去匹配到右邊的腦門
從幾何上來說 大多數線都是平移過來,但是有個別線是斜着的 違背了大方向 是明顯錯誤的 所以把它去掉 這種基於幾何校驗的方式 非常有名 叫做隨機一致性採樣 Ransac
視覺單詞模型的基本結構
Step1:Feature Extraction 特徵提取 會得到兩個信息 位置 和 描述算子特徵向量
Step2:Codebook Construction 構造詞典 其實就是做了聚類,然後取聚類中心構造詞典,既可以降維又可以表徵特徵
Step3:Vector Quantization
假設這是一張圖,每個黑色的叉叉是keypoint 或者說 local feature
紅色的圓圈是聚類出來的中心
可以看到,黃色的區域,有4個特徵點,(截圖少一個),y5 是這個區域的聚類中心,都用y5作爲特徵表達,所以在直方圖統計中 對y5的橫座標就會加上4的分量
整個流程就是
Bag of vision words BoVW