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.

你可能感兴趣的:(windows,matlab,SVM,caffe,DeepLearning)