新手上路,從頭講起
1、工具
原版**:
vlfeat工具:
這兩個工具都可以進行sift特徵提取以及匹配。我使用的是vlfeat工具箱,使用環境為win10,matlab。
將壓縮包放到任意資料夾下並解壓,得到檔案:
在matlab中開啟解壓後的資料夾,進入toolbox子資料夾,如紅色框;然後雙擊開啟vl_setup.m指令碼,如藍色框。
執行vl_setup.m**。
2、sift特徵提取
image=imread('1.jpg'); %讀取,此處讀取為rgb
i = single(rgb2gray(image)); %函式傳入格式固定為二維影象的single或者double型別,因此此處轉為灰度,並改資料格式為single
i=(i-min(min(i))+1)/(max(max(i))-min(min(i))+1); %因為single格式需要資料範圍為0~1時才可以正常顯示,因此在這裡調整一次資料大小,方便顯示。
%實際上上一步的i轉為single格式之後就可以了,有無這一步的操作並不會影響特徵提取。
[f,d] = vl_dsift(i) ; %特徵提取,得到的f是乙個2*n的矩陣,每一列是乙個座標;d是特徵資料,是乙個128*n的矩陣,每列是乙個特徵。
3、 k-mean
x=;
for i=1:sizepic %迴圈乙個所有
name=piclist(i).name;
feature=load(name); %讀取之前儲存的每張的特徵矩陣的*.mat檔案
d=vertcat(feature.d); %因為之間儲存的時候將f和d都儲存了,所以需要從feature結構體中讀取矩陣d
xpos=[xpos,d]; %將矩陣簡單的疊加起來,這裡每一列是乙個keypoint,所以把矩陣橫向疊加
endxpos=double(xpos); %由於kmean的函式要求資料格式為single或者double,因此這裡將矩陣的資料格式轉換為double
[cp, ap] = vl_kmeans(xpos, 50, 'verbose', 'distance', 'l1', 'algorithm', 'elkan'); %kmean聚類,具體函式詳解檢視vlfeat文件啊
4、將每一張的特徵放入k-mean聚類中心中轉換
name=list(i).name;
image=imread(name);
i = single(rgb2gray(image)) ;
i=(i-min(min(i))+1)/(max(max(i))-min(min(i))+1);
[f,d] = vl_dsift(i) ; % sift
featvec=zeros(1,50);
for j=1:size(d,2)
fi = double(d(:,j));
diffmat = repmat(fi, 1,50) - cp;
sqsum = sum(diffmat.^2,1);
dist = sqrt(sqsum);
[val,idx]=min(dist);
featvec(1,idx) = 1+ featvec(1,idx) ;
endfeature(count,:)=[featvec,1]; % 將特徵和標籤一起放入特徵集合
count=count+1;
5、分類模型
6、分類測試
lab = module.predictfcn(featvec); #傳入與訓練模型一致的50維特徵進行分類
其他參考**鏈結
博主的**是python**,很詳細。
博主很詳細的講解了sift+kmean+svm的演算法思想,博主的**裡面的東西在部落格當中基本已經講解清楚了,除了乙個不同數量聚類中心的對比試驗在**中詳細講解,其他都講完了。
SIFT特徵提取
原文獻 1 lowe d g.distinctive image features from scale invariant keypoints c international journal of computer vision.2004 91 110.不錯的部落格 2 sift可以用來提取區域性...
SIFT特徵提取分析
sift scale invariant feature transform 是一種檢測區域性特徵的演算法,該演算法通過求一幅圖中的特徵點 interest points,or corner points 及其有關scale 和 orientation 的描述子得到特徵並進行影象特徵點匹配,獲得了良...
Sift特徵提取演算法
2004 年d.lowe 提出了乙個新的演算法 尺度不變特徵變換 sift 這個演算法可以幫助我們提取影象中的關鍵點並計算它們的描述符。sift演算法的特點就是,對於區域性特徵對旋轉 縮放 亮度變化保持不變。sift 演算法主要內容如下 1 尺度空間的極值檢測 2 特徵點定位 3 特徵方向賦值 4 ...