国产精品亚洲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 国产精品亚洲AV三区_国产精品日本一区二区在线播放_国产成人无码久久久精品一_性感美女视频在线观看免费精品
<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 亚洲激情一区| 久久露脸国产精品| 国产视频精品va久久久久久| 久久综合伊人77777蜜臀| 一区二区精品国产| 亚洲国产欧美精品| 国产性做久久久久久| 国产精品igao视频网网址不卡日韩| 久久免费视频在线| 欧美在线亚洲在线| 西西裸体人体做爰大胆久久久| 亚洲美女免费视频| 亚洲欧洲在线观看| 亚洲国产欧美一区| 亚洲第一在线综合在线| 一区福利视频| 国内精品久久久久影院优| 国产精品素人视频| 国产精品伦子伦免费视频| 欧美日韩成人一区二区| 欧美精品在线观看91| 欧美精品123区| 欧美另类99xxxxx| 欧美精品一区在线发布| 欧美大片专区| 欧美精品一区二区三区视频| 欧美激情小视频| 欧美韩日精品| 欧美视频网址| 国产精品永久免费视频| 国产欧美日韩激情| 狠狠色综合日日| 亚洲高清视频的网址| 亚洲国产精品精华液网站| 最新亚洲一区| 亚洲图片在区色| 欧美亚洲网站| 蜜臀久久久99精品久久久久久| 蜜桃伊人久久| 欧美日韩另类综合| 国产精品久99| 狠狠色狠狠色综合日日五| 亚洲电影观看| 一本一本久久| 久久精品在这里| 欧美肥婆在线| 国产伦精品一区二区三区免费迷| 国内揄拍国内精品久久| 亚洲国产欧美一区二区三区同亚洲| 日韩午夜激情| 久久国产精品久久国产精品| 欧美成人午夜激情视频| 国产精品成人一区二区| 国产一区在线视频| 一本色道久久综合精品竹菊| 欧美一级视频| 欧美日韩aaaaa| 国产在线一区二区三区四区 | 99国产精品久久久| 欧美一区1区三区3区公司| 狼人天天伊人久久| 国产精品美女久久久免费 | 黄色成人91| 亚洲视频一起| 欧美福利视频| 国产一区二区三区免费观看| 99这里只有精品| 久久夜精品va视频免费观看| 国产精品免费视频xxxx| 亚洲国产乱码最新视频| 欧美在线高清视频| 欧美三级特黄| 亚洲三级视频| 美女久久一区| 国产一区二区无遮挡| 亚洲男人影院| 欧美视频在线观看一区| 亚洲精品视频在线看| 久久久欧美精品| 国产精品一区二区三区免费观看| 亚洲三级色网| 欧美高清视频免费观看| 激情成人av| 久久久成人网| 国产在线国偷精品产拍免费yy| 亚洲一区免费视频| 欧美日韩精品免费观看视频完整| 亚洲成人在线观看视频| 久久―日本道色综合久久| 国产欧美日韩综合一区在线观看 | 亚洲裸体在线观看| 美日韩丰满少妇在线观看| 国产欧美日韩麻豆91| 亚洲一区欧美激情| 国产精品久久久久久久久久妞妞| 亚洲免费av观看| 欧美日本高清视频| 99视频一区二区| 欧美四级在线观看| 亚洲无人区一区| 国产精品videossex久久发布| 正在播放亚洲| 国产精品家庭影院| 亚洲欧美激情一区二区| 国产精品一区免费观看| 欧美在线二区| 在线视频成人| 欧美日韩精品中文字幕| 亚洲综合精品四区| 国产性天天综合网| 久久天堂精品| 99xxxx成人网| 国产精品一区二区在线观看网站| 欧美一区二区在线观看| 今天的高清视频免费播放成人| 免费欧美在线| 亚洲私人影院| 国产亚洲激情| 欧美国产免费| 亚洲欧美高清| 在线精品国产欧美| 欧美色精品在线视频| 午夜精品一区二区三区在线视 | 性久久久久久久| 亚洲二区精品| 国产精品区免费视频| 蜜桃av一区二区三区| 亚洲精品一区二区三区在线观看| 欧美色大人视频| 久久久久久一区二区三区| 亚洲美女在线视频| 国产亚洲美州欧州综合国| 欧美福利在线观看| 欧美一区二视频| 亚洲精品免费看| 国产日产精品一区二区三区四区的观看方式| 久久动漫亚洲| 一区二区三区久久久| 精久久久久久| 国产精品午夜在线观看| 欧美极品在线观看| 久久男人av资源网站| 亚洲小说欧美另类婷婷| 亚洲电影第1页| 国产亚洲精品久久久久婷婷瑜伽 | 欧美日韩性视频在线| 久久婷婷综合激情| 午夜精品久久久久久久久| 亚洲精品久久久久久久久| 狠狠色香婷婷久久亚洲精品| 国产精品看片你懂得| 欧美日韩国产一级| 欧美国产日韩视频| 麻豆91精品91久久久的内涵| 亚洲小视频在线观看| 亚洲精品一区二区三区樱花| 在线精品福利| 激情懂色av一区av二区av| 国产精品自在在线| 国产精品毛片| 国产精品激情电影| 欧美日韩黄色大片| 欧美激情第五页| 欧美国产高潮xxxx1819| 久色婷婷小香蕉久久| 久久久久久日产精品| 久久激情综合网| 久久久97精品| 久久男人资源视频| 久热成人在线视频| 免费中文字幕日韩欧美| 欧美大片一区| 欧美精品激情| 欧美色欧美亚洲另类二区| 欧美天天在线| 国产欧美日韩专区发布| 国产一区久久久| 在线不卡a资源高清| 亚洲国产精品久久久久婷婷884| 亚洲国产成人精品久久| 亚洲肉体裸体xxxx137| 日韩午夜激情| 亚洲综合日韩中文字幕v在线| 亚洲欧美日韩区| 久久久久高清| 欧美大片网址| 国产精品免费视频观看| 韩日精品视频一区| 亚洲精品在线电影| 亚洲欧美日韩一区二区三区在线| 欧美一区二区三区婷婷月色| 久久尤物视频| 欧美日韩亚洲一区| 国产一区二区三区在线观看视频| 亚洲国产精品传媒在线观看| 在线视频日韩精品| 久久高清国产| 欧美日韩一区二| 激情五月***国产精品| 99热在线精品观看|