69堂国产成人免费视频_亚洲成人999_最新日韩中文字幕_97在线视频免费_91久久国产精品_欧美美女一区二区_亚洲a级在线观看_亚洲最大成人免费视频_av中文字幕不卡_一本色道久久综合亚洲精品按摩

更多精彩內容,歡迎關注:

視頻號
視頻號

抖音
抖音

快手
快手

微博
微博

圖像檢索之基于vlfeat實現SIFT特征

導讀SIFT特征的講解已經很多了,本文就借助vlfeat對SIFT特征的提取過程做一個總結。接下來通過本文給大家介紹圖像檢索之基于vlfeat實現SIFT,感興趣的朋友跟隨小編一起看看吧。
概述

基于內容的圖像檢索技術是采用某種算法來提取圖像中的特征,并將特征存儲起來,組成圖像特征數據庫。當需要檢索圖像時,采用相同的特征提取技術提取出待檢索圖像的特征,并根據某種相似性準則計算得到特征數據庫中圖像與待檢索圖像的相關度,最后通過由大到小排序,得到與待檢索圖像最相關的圖像,實現圖像檢索。圖像檢索的結果優劣取決于圖像特征提取的好壞,在面對海量數據檢索環境中,我們還需要考慮到圖像比對(圖像相似性考量)的過程,采用高效的算法快速找到相似圖像也至關重要。

在構建圖像特征庫的時候,通常不會使用原始的圖像特征,這是由于Raw Feature有很多冗余信息,而且維度過高在構建特征數據庫和匹配的時候效率較低。所以,通常要對提取到的原始特征進行重新編碼。比較常用的三種編碼方式:

BoF , Bog of Feature 源于文本處理的詞袋模型(Bog,Bag of Words)

VLAD , Vector of Aggragate Locally Descriptor

FV , fisher vector

構建圖像特征數據庫,通常有以下幾個步驟:

圖像預處理流程(增強,旋轉,濾波,縮放等)

特征提取(全局特征,局部特征:SIFT,SURF,CNN等)

對每張圖片提取的原始特征重新編碼(BoF,VLAD,FV)形成圖像的特征庫

圖像的特征庫構建完成后,在檢索階段,主要涉及到特征的相似性度量準則,排序,搜索

提取圖像的特征,

特征編碼

在圖像特征庫中進行檢索

返回相似性較高的結果

SIFT特征

SIFT特征的講解已經很多了,之前的博客也有過介紹。本文就借助vlfeat對SIFT特征的提取過程做一個總結。一個SIFT特征有兩部分組成:關鍵點(keypoint)和對應特征描述子(Descriptor)。使用SIFT detector 進行SIFT關鍵點的提取,然后使用SIFT descriptor計算關鍵點的描述子。也可以獨立的使用SIFT detector進行SIFT 關鍵點的提取,或者使用SIFT descriptor進行別的關鍵點描述子的計算。

一個SIFT keypoint是一塊圓形區域并且帶有方向,使用4個參數描述該區域的幾何結構:

keypoint的中心位置的坐標(x,y)

keypoint的scale(圓形區域的半徑r)

keypoint的方向(使用弧度表示的角度θ)

一個SIFT關鍵點由4個參數確定:

高斯尺度的組數o=log2min(m,n)?3=log2(512)?3=6

構建第0組,將原圖像進行上采樣,寬和高增加一倍得到圖像I0。

第0層I0?G(x,y,σ0)

第1層I0?G(x,y,kσ0)

第2層I0?G(x,y,k2σ0)

構建第1組,將I0進行降采樣,得到圖像I1

第0層I1?G(x,y,2σ0)

第1層I1?G(x,y,2kσ0)

第2層I1?G(x,y,2k2σ0)

...

構建第o組,第s層 Io?G(x,y,2oksσ)

在Lowe的算法實現中\(\sigma_0 = 1.6,o_min = -1\)。\(o_min = -1\)表示金字塔的第0組是原圖像上采樣得到的,寬和高加一倍。

DoG 極值點檢測

高斯圖像金字塔構建完成后,將同一組的相鄰兩層相減就得到了\(DoG\)金字塔。

每組的層數\(S = 3\),也就是說每組可以得到兩層的\(DoG\)圖像,以第一組為例:其尺度為\(\sigma,k\sigma\),只有兩項是無法求取極值的,需要左右兩邊都有尺度。由于無法比較取得極值,那么我們就需要繼續對每組的圖像進行高斯模糊,使得尺度形成\(\sigma,k\sigma,k^2\sigma,k^3\sigma,k^4\sigma\)這樣就可以選擇中間的三項\(k\sigma,k^2\sigma,k^3\sigma\)

檢測關鍵點,就是在\(DoG\)的圖像空間中尋找極值點,每個像素點要和其圖像域(同一尺度空間)和尺度域(相鄰的尺度空間)的所有相鄰點進行比較,當其大于(或者小于)所有相鄰點時,改點就是極值點。如圖所示,中間的檢測點要和其所在圖像的\(3 \times 3\)鄰域8個像素點,以及其相鄰的上下兩層的\(3\times 3\)領域18個像素點,共26個像素點進行比較。

刪除不好的極值點

刪除兩類極值點

在對比度比較低低的區域檢測到的極值點

在圖像的邊緣部分檢測到的極值點

確定關鍵點的方向

統計關鍵點鄰域像素的梯度方向分布來確定關鍵點的方向。具體步驟如下:

計算以特征點為中心,以\(3 \times1.5 \sigma\)為半徑的區域圖像的幅角和幅值,每個像點\(L(x,y)\)的梯度的模\(m(x,y)\)以及方向\(\theta(x,y)\)可通過下面公式求得

統計像素點的幅角和幅值的直方圖,梯度方向的直方圖的橫軸是梯度方向的角度(梯度方向的范圍是0到360度,直方圖每36度一個柱共10個柱,或者沒45度一個柱共8個柱),縱軸是梯度方向對應梯度幅值的累加,在直方圖的峰值就是特征點的主方向。在梯度直方圖中,當存在一個相當于主峰值80%能量的柱值時,則可以將這個方向認為是該特征點輔助方向。所以,一個特征點可能檢測到多個方向(也可以理解為,一個特征點可能產生多個坐標、尺度相同,但是方向不同的特征點)。

得到特征點的主方向后,對于每個特征點可以得到三個信息\(k(x,y,r,\theta)\),即位置、尺度和方向。由此可以確定一個SIFT特征區域,一個SIFT特征區域由三個值表示,中心表示特征點位置,半徑表示關鍵點的尺度,箭頭表示主方向。具有多個方向的關鍵點可以被復制成多份,然后將方向值分別賦給復制后的特征點,一個特征點就產生了多個坐標、尺度相等,但是方向不同的特征點。

計算關鍵點描述子

在檢測部分已經得到了SIFT關鍵點的位置,尺度和方向信息,生成關鍵點的描述子,就是使用一個向量來描述關鍵點及其鄰域像素的信息。由以下步驟生成描述子:

為了保證旋轉不變性,將關鍵點為中心的鄰域像素的坐標軸進行旋轉,將\(x\)軸旋轉至關鍵點主方向,如下圖:

分塊計算鄰域內像素的梯度方向直方圖,以關鍵點為中心的\(16\times16\)的區域內,劃分\(4\times4\)個塊,分別計算每個塊的梯度直方圖,如下圖:

每個塊的梯度直方方向直方圖的計算方式,和求關鍵點主方向時類似:此時每個區域的梯度直方圖在0-360之間劃分為8個方向區間,每個區間為45度,即每個種子點有8個方向的梯度強度信息,最后將得到的\(4\times4\times8=128\)維的特征向量。

為了去除光照變化的影響,需對上述生成的特征向量進行歸一化處理。在歸一化處理后,在128維的單位向量中,對大于0.2的要進行截斷處理,即大于0.2的值只取0.2,然后重新進行一次歸一化處理,其目的是為了提高鑒別性。0.2 是實驗得出的經驗值。

vlfeat實現的sift特征提取

vlfeat是一個開源的輕量級的計算機視覺庫,主要實現圖像局部特征的提取和匹配以及一些常用的聚類算法。其對sift特征提取的各個步驟進行了封裝,使用的方法如下:

1.調用vl_sift_new初始化VlSiftFilt,設置sift提取時參數信息,如:圖像的大小,Octave的個數,每個Octave的中的層數,起始的Octave的index. 各個參數的具體含義可以參考上面sift特征提取的方法。

2.設置剔除不穩定關鍵點的閾值。在上面提到,sift在進行極值檢查后,要剔除兩類不穩定的極值點:1.對比度較低區域的極值點;2.邊緣部分的極值點。 可以調用

vl_sift_set_peak_thresh設置接受極值點是一個關鍵點的最小對比度。 該值越小,提取到的關鍵點就越多。

y vl_sift_set_edge_thresh()設置一個極值點是在邊緣上的閾值。 該值越小,提取到的關鍵點就越多。

這兩個參數對最終提取到的特征點個數有很大的影響。

3.初始化工作完成后,可以循環的對尺度空間的每個Octave進行處理了

調用 vl_sift_process_first_octave()和vl_sift_process_next_octave()來計算下一個DoG尺度空間。

調用vl_sift_detect進行關鍵點提取

對每一個提取到的關鍵點

vl_sift_calc_keypoint_orientations計算關鍵點的方向,可能多于一個

l_sift_calc_keypoint_descriptor計算每個方向的特征描述子。

4.vl_sift_delete釋放資源。

具體代碼如下:

//?初始化
????const?string?file?=?"../0.jpg";
????Mat?img?=?imread(file,IMREAD_GRAYSCALE);
????Mat?color_img?=?imread(file);
????Mat?float_img;
????img.convertTo(float_img,CV_32F);

????int?rows?=?img.rows;
????int?cols?=?img.cols;
????VlSiftFilt*?vl_sift?=??vl_sift_new(cols,rows,4,3,0);
????vl_sift_set_peak_thresh(vl_sift,0.04);
????vl_sift_set_edge_thresh(vl_sift,10);

????vl_sift_pix?*data?=?(vl_sift_pix*)(float_img.data);


????vector?kpts;
????vector?descriptors;

????vl_sift_extract(vl_sift,data,kpts,descriptors);
????
/*
????Extract?sift?using?vlfeat
????parameters:
????????vl_sfit,?VlSiftFilt*?
????????data?,?image?pixel?data?,to?be?convert?to?float
????????kpts,?keypoint?list
????????descriptors,?descriptor.?Need?to?free?the?memory?after?using.
*/
void?vl_sift_extract(VlSiftFilt?*vl_sift,?vl_sift_pix*?data,
????????????????????vector?&kpts,vector?&descriptors)?{
????
????//?Detect?keypoint?and?compute?descriptor?in?each?octave
????if(vl_sift_process_first_octave(vl_sift,data)?!=?VL_ERR_EOF){
????????while(true){
????????????vl_sift_detect(vl_sift);

????????????VlSiftKeypoint*?pKpts?=?vl_sift->keys;
????????????for(int?i?=?0;?i?nkeys;?i?++)?{

????????????????double?angles[4];
????????????????//?計算特征點的方向,包括主方向和輔方向,最多4個
????????????????int?angleCount?=?vl_sift_calc_keypoint_orientations(vl_sift,angles,pKpts);

????????????????//?對于方向多于一個的特征點,每個方向分別計算特征描述符
????????????????//?并且將特征點復制多個
????????????????for(int?i?=?0?;?i?

vlfeat中sift提取接受的是float類型的數據,所以要先將讀到的數據圖像轉換為float。和OpenCV中的sift提取的對比結果如下:

vlfeat提取的特征點是用綠色畫出來的,共有1961個特征點。

OpenCV的是藍色,有4617個特征點。

Summary

幾年前寫過一篇關于SIFT的文章,SIFT特征詳解 當時多是從理論上。現在在做圖像檢索的時候,發現還是有很多東西理解的不是很清晰,比如:關鍵點的多個方向,不穩定極值點的剔除以及梯度方向直方圖計算等等。

正在做一個圖像檢索的項目,陸續將項目的中學到一些知識總結下來,下一篇是關于均值聚類的,對提取到的圖像特征進行聚類生成視覺特征(Visul Feature)

到此這篇關于圖像檢索之基于vlfeat實現SIFT的文章就介紹到這了,更多相關圖像檢索vlfeat內容請搜索好二三四以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好二三四!

為你推薦
資訊專欄
熱門視頻
相關推薦
python繪圖中的四個繪圖技巧 js中toString方法3個作用 信息系統項目管理師報考條件 信息系統項目管理師報考時間 信息系統項目管理師報名時間 信息系統項目管理師考試時間 pmp與信息系統項目管理師 信息系統項目管理師報考要求 信息系統項目管理師有效期 信息系統項目管理師考什么論文 信息系統項目管理師是什么類別 軟考信息系統項目管理師怎么備考 備考流程有哪些 考信息系統項目管理師需要考幾門 信息系統項目管理師考試幾門 信息系統項目管理師初中能考嗎 信息系統項目管理師英語簡稱 滲透測試怎么做 滲透測試的步驟都有哪些 你知道嗎 滲透測試需要學什么 滲透測試是什么 滲透測試有什么特點 滲透測試是什么意思 Python按鍵或值對字典進行排序 提升Python運行速度的5個小技巧 學習python的while循環嵌套 Python實現消消樂小游戲 python實現新年倒計時實例代碼 詳解python的循環 基于Python實現PDF區域文本提取工具 Python數據分析處理(三)--運動員信息的分組與聚合 Python實現城市公交網絡分析與可視化 Python 垃圾回收機制詳解 python正則表達式語法學習筆記 一文秒懂python正則表達式常用函數 Python常用的正則表達式處理函數詳解 JS截取字符串的三種方法詳解 PHP遍歷數組的6種方式總結 php兩種基本的輸出方及實例詳解 php生成唯一uid的解決方法詳解 PHP7中對十六進制字符串處理的問題詳解 PHP對接抖音開發平臺接口的詳細教程 php7安裝mysqli實例講解
Top 69堂国产成人免费视频_亚洲成人999_最新日韩中文字幕_97在线视频免费_91久久国产精品_欧美美女一区二区_亚洲a级在线观看_亚洲最大成人免费视频_av中文字幕不卡_一本色道久久综合亚洲精品按摩
福利91精品一区二区三区| 国产综合色产在线精品| 一区二区高清视频在线观看| 国产综合久久久久久久久久久久 | 日韩在线观看一区二区| 91麻豆自制传媒国产之光| 国产亚洲精品福利| 精品一区在线看| 久久亚洲私人国产精品va媚药| 亚洲国产精品一区二区久久| 色综合中文综合网| 精品伊人久久久久7777人| 精品一区二区三区免费视频| 激情综合五月天| 成人激情图片网| 亚洲美女屁股眼交| 欧美唯美清纯偷拍| 亚洲一区在线观看免费观看电影高清 | 午夜精品一区二区三区三上悠亚 | 中文字幕精品三区| 99视频精品免费视频| 一区二区三区四区高清精品免费观看| 国产精品护士白丝一区av| 4438亚洲最大| 久久99精品久久久久| 国产91精品一区二区| 欧美吻胸吃奶大尺度电影 | 99国产精品久久久久久久久久| 亚洲欧美日韩国产成人精品影院| 亚洲同性gay激情无套| 欧美少妇一区二区| 精品国产凹凸成av人网站| 色一情一乱一乱一91av| 麻豆精品一区二区三区| 国产精品久久久久天堂| 丝袜美腿亚洲综合| 91污在线观看| 久久久久国产免费免费| 欧美精品在线一区二区三区| 国产一区二区三区免费播放| 亚洲国产中文字幕| 国产91丝袜在线播放0| 欧美精品久久99久久在免费线| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲人123区| 国产69精品久久久久毛片| 91精品福利在线一区二区三区| 在线观看欧美黄色| 在线精品亚洲一区二区不卡| 久久久精品国产免费观看同学| 亚洲va韩国va欧美va| 国产精品女人毛片| 欧美一区二区久久久| 国产资源在线一区| 日本中文一区二区三区| 精品国产乱码久久久久久影片| 国产精品乱人伦| 成人av在线一区二区三区| 26uuu国产在线精品一区二区| 免费日韩伦理电影| 天堂资源在线中文精品| 成人在线综合网站| 国产不卡高清在线观看视频| 日韩免费成人网| 日韩欧美视频在线| 日韩中文字幕不卡| 欧美一区二区视频在线观看2020 | 欧美日韩国产小视频| 色婷婷久久99综合精品jk白丝| 久久九九全国免费| 91色视频在线| 午夜激情久久久| 欧美成人性福生活免费看| 26uuu成人网一区二区三区| 日产欧产美韩系列久久99| 欧美日韩视频第一区| 免费一区二区视频| 国产午夜久久久久| 在线观看免费一区| 天堂在线亚洲视频| 精品国精品国产| 成熟亚洲日本毛茸茸凸凹| 自拍偷拍亚洲激情| 欧美福利视频一区| 国产综合久久久久久久久久久久| 亚洲欧洲国产日韩| 久久精品视频在线看| 99久久精品国产一区| 亚洲激情五月婷婷| 国产在线精品免费av| 久久久不卡影院| 欧美自拍丝袜亚洲| 国产精品小仙女| 在线成人小视频| 国产乱码精品一区二区三| 亚洲精品美国一| 久久一区二区三区国产精品| 色噜噜狠狠色综合欧洲selulu| 欧美精品久久天天躁| 国产**成人网毛片九色 | 久久久综合网站| 欧美人狂配大交3d怪物一区| 成人免费三级在线| 一区二区三区免费看视频| 欧美不卡视频一区| 激情久久久久久久久久久久久久久久| 95精品视频在线| 亚洲色图一区二区三区| 亚洲综合在线视频| 成人爽a毛片一区二区免费| 国产亚洲一区字幕| 欧美激情中文不卡| 在线亚洲免费视频| 91老师国产黑色丝袜在线| 欧美色精品天天在线观看视频| 国产精品视频九色porn| 精品电影一区二区| 91精品久久久久久蜜臀| 一区二区三区欧美视频| 99热这里都是精品| 精品成人一区二区| 欧美性做爰猛烈叫床潮| wwwwww.欧美系列| 亚洲成人www| 中文字幕日本乱码精品影院| 国产精品女主播av| 亚洲欧美精品午睡沙发| 日韩国产欧美三级| 色婷婷精品久久二区二区蜜臂av | 欧美中文字幕不卡| 国产成人综合精品三级| 538在线一区二区精品国产| 国产成人三级在线观看| 国产精品 欧美精品| 日本美女视频一区二区| 狠狠久久亚洲欧美| 亚洲少妇30p| 国产精品―色哟哟| 蜜臀va亚洲va欧美va天堂| 欧美一区三区二区| 亚洲国产精品99久久久久久久久 | 精品国产人成亚洲区| 精一区二区三区| 亚洲a一区二区| 国产精品久久久久影院老司| 午夜精品久久久久影视| 欧美精品久久一区| 欧美日韩一区二区三区在线| 美日韩一区二区三区| 老司机精品视频线观看86| 国产日韩欧美激情| 国产亚洲一区二区三区四区| 一区二区激情视频| 日韩国产在线观看| 欧美日韩激情在线| 91麻豆精品国产无毒不卡在线观看| 国产精品乱码一区二区三区软件| 欧美国产国产综合| 日韩电影在线观看电影| 久久超碰97中文字幕| 色婷婷综合久久久久中文一区二区| 久久精品国产亚洲5555| 粉嫩久久99精品久久久久久夜| av成人免费在线| 欧美丝袜丝交足nylons| 91精品国产手机| 亚洲国产精品麻豆| 蜜臀久久99精品久久久久久9| 久久精品国产一区二区三区免费看| 91在线观看成人| 国产精品88888| 亚洲一区二区在线观看视频 | 久久久久久99精品| 亚洲精品自拍动漫在线| 欧美精品自拍偷拍| 亚洲精品一线二线三线 | 亚洲私人影院在线观看| 国产一区二区三区视频在线播放| 日韩一区二区高清| 欧美日韩视频不卡| 99re热视频精品| 丝袜美腿亚洲一区| 国产精品少妇自拍| 久久99精品国产麻豆不卡| 欧美一区二区三区不卡| 紧缚奴在线一区二区三区| www.成人在线| www国产亚洲精品久久麻豆| 亚洲色图制服丝袜| 国产一区二区三区在线观看免费 | 精品成a人在线观看| 欧美美女一区二区| 国产精品久久久久一区二区三区 | 正在播放一区二区| 欧美成人激情免费网| 三级久久三级久久| 国产精品色在线观看| 久久久亚洲精华液精华液精华液| 在线视频你懂得一区| 欧美日韩国产美女|