Windows+caffe+libsvm对图片数据集的分类

来源:互联网 发布:社交媒体 大数据 编辑:程序博客网 时间:2024/05/16 07:50

一、问题描述 
任务是利用已有分类方法,如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文件,若出现

[plain] view plain copy
  1. *  
  2. optimization finished, #iter = 162  
  3. nu = 0.431029  
  4. obj = -100.877288, rho = 0.424462  
  5. nSV = 132, nBSV = 107  
  6. Total nSV = 132  
  7. Accuracy = 86.6667% (234/270) (classification)  
则表示libsvm已经成功安装

三、测试

利用caffe生成的数据进行测试

[plain] view plain copy
  1. % 利用libsvm函数对caffe生成的图片数据进行模型训练并对训练的模型进行测试  
  2. % 这里使用的是L2范数归一化数据  
  3. % 使用的只是分别对每个label进行预测,也可以将所有的label放在一起之后来判断准确性,但准确性会降低  
  4. % 函数处理时间为10 - 20 分钟  
  5. close all  
  6. clear all  
  7. clc  
  8. load('y')               %载入数据  
  9. load('data_L2_train')  
  10. load('data_label_train')  
  11. %%   
  12. traindata = data_L2_train;  
  13. testdata = data_L2;  
  14. for i = 1:24    %共有24个label  
  15. trainlabel = y(1:5000,i);  
  16. testlabel = y(5001:end,1i);  
  17. model = libsvmtrain(trainlabel,traindata,'-s 0 -t 0 -c 1.2 -g 2.8');    %训练模型  
  18. [predict_label,accuracy] = libsvmpredict(trainlabel,traindata,model);   %测试  
  19. end  
已经将caffe所生成的数据文件以及matlab的libsvm代码放入文件夹中(http://pan.baidu.com/s/1bn4UnJD),如果是测试的话,直接将所有的文件全部下载然后将前面的libsvm函数加入matlab目录中,再运行SVM_predict.m文件即可.如果只是需要数据的话,就下载mat文件即可(mat文件只是前5000个测试文件的数据),y.mat是全部图片(25000个)label.

0
0 0
原创粉丝点击