Windows+caffe+libsvm對圖片數據集的分類

一、問題描述 
任務是利用已有分類方法,如SVM和Ridge Regression對MIRFlickr-25000數據集進行分類實驗。具體要求:

  1. 數據集:MIRFlickr-25000 http://press.liacs.nl/mirflickr/
  2. 數據特徵:Caffe http://caffe.berkeleyvision.org/
  3. 分類方法:SVM (http://www.csie.ntu.edu.tw/~cjlin/libsvm/) 和Ridge Regression (Matlab裏應該有,如果沒有,去Google裏搜索)
  4. 評價標準:AUC (area under curve) 和average precision (AP) (注意是分類的AP,不是檢索retrieval的AP)
  5. 實驗環境:Matlab和windows
  6. 實驗內容: 
    6.1 訓練數據大小對實驗結果的影響; 
    6.2 模型參數對實驗結果的影響; 
    6.3 兩個方法的比較結果; 
    6.4 每個具體類別的性能

二、安裝

1.在Windows下安裝caffe: http://blog.csdn.net/happynear/article/details/45372231可以參考以及文件下載(https://github.com/niuzhiheng/caffe

2.libsvm的安裝:http://www.matlabsky.com/thread-11925-1-1.html另外常見的錯誤解決辦法(http://blog.csdn.net/kobesdu/article/details/8936499

3.如果libsvm安裝不成功,可以直接下載文件:http://pan.baidu.com/s/1o6pECxs 將該文件夾作爲matlab的主目錄,然後運行read_data.m文件,若出現

*
optimization finished, #iter = 162
nu = 0.431029
obj = -100.877288, rho = 0.424462
nSV = 132, nBSV = 107
Total nSV = 132
Accuracy = 86.6667% (234/270) (classification)
則表示libsvm已經成功安裝

三、測試

利用caffe生成的數據進行測試

% 利用libsvm函數對caffe生成的圖片數據進行模型訓練並對訓練的模型進行測試
% 這裏使用的是L2範數歸一化數據
% 使用的只是分別對每個label進行預測,也可以將所有的label放在一起之後來判斷準確性,但準確性會降低
% 函數處理時間爲10 - 20 分鐘
close all
clear all
clc
load('y')               %載入數據
load('data_L2_train')
load('data_label_train')
%% 
traindata = data_L2_train;
testdata = data_L2;
for i = 1:24    %共有24個label
trainlabel = y(1:5000,i);
testlabel = y(5001:end,1i);
model = libsvmtrain(trainlabel,traindata,'-s 0 -t 0 -c 1.2 -g 2.8');    %訓練模型
[predict_label,accuracy] = libsvmpredict(trainlabel,traindata,model);   %測試
end
已經將caffe所生成的數據文件以及matlab的libsvm代碼放入文件夾中(http://pan.baidu.com/s/1bn4UnJD),如果是測試的話,直接將所有的文件全部下載然後將前面的libsvm函數加入matlab目錄中,再運行SVM_predict.m文件即可.如果只是需要數據的話,就下載mat文件即可(mat文件只是前5000個測試文件的數據),y.mat是全部圖片(25000個)label.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章