matlab 批量提取CNN特征
无类别,图像混合放置:
- clear
- close all
- addpath ./matlab
- model= './models/bvlc_reference_caffenet/deploy.prototxt';
- weights= './models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel';
- mean = load('./matlab/+caffe/imagenet/ilsvrc_2012_mean.mat');
- net = caffe.Net(model, weights, 'test'); % create net and load weights
- mean_data = mean.mean_data;
- net.blobs('data').reshape([ ]);
- net.reshape();
- rt_img_dir='/ImageNet/ILSVRC2012_img_val/';
- rt_data_dir='ImageNet/Fea/ILSVRC2012_img_val/';
- %disp('Extracting CNN features...');
- frames = dir(fullfile(rt_img_dir, '*')); frames()=[]; frames()=[];
- c_num = length(frames);
- gray_num=;error_num_CMYK_JPEG=;
- % database.path=[];
- for jj = :c_num,
- imgpath = fullfile(rt_img_dir, frames(jj).name);
- try
- %% prepare the image
- im_data = caffe.io.load_image(imgpath);
- %% subtract mean_data (already in W x H x C, BGR)
- width = ; height = ;
- im_data = imresize(im_data, [width, height]); % resize using Matlab's imresize
- feaSet.iscolor=;
- if size(im_data,)==
- imdata=zeros([size(im_data),]);
- imdata(:,:,)=im_data;
- imdata(:,:,)=im_data;
- imdata(:,:,)=im_data;
- im_data=imdata;
- feaSet.iscolor=;
- gray_num=gray_num+;
- end
- im_data = im_data - (mean_data);
- width = ; height = ;
- im_data = imresize(im_data, [width, height]); % resize using Matlab's imresize
- res = net.forward({im_data});
- fc6_data = net.blobs('fc6').get_data();
- fc7_data = net.blobs('fc7').get_data();
- feaSet.fc6_data = fc6_data;
- feaSet.fc7_data = fc7_data;
- [pdir, fname] = fileparts(frames(jj).name);
- fpath = fullfile(rt_data_dir, [fname, '.mat']);
- save(fpath, 'feaSet');
- %database.path = [database.path; fpath];
- catch
- str= fullfile(frames(jj).name);
- disp(str);
- error_num_CMYK_JPEG=error_num_CMYK_JPEG+;
- error_CMYK_JPEG{error_num_CMYK_JPEG}=str;
- end
- end;
有类别,不同类图像按不同文件夹放置
- clear
- close all
- addpath ./matlab
- model= './models/bvlc_reference_caffenet/deploy.prototxt';
- weights= './models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel';
- mean = load('./matlab/+caffe/imagenet/ilsvrc_2012_mean.mat');
- net = caffe.Net(model, weights, 'test'); % create net and load weights
- mean_data = mean.mean_data;
- %% obtain params in diff layers and show
- %pdata = net.params('conv1',).get_data();
- %vis_square(pdata,,0.5);
- net.blobs('data').reshape([ ]);
- net.reshape();
- rt_img_dir='mageNet/ILSVRC2012_img_train/';
- rt_data_dir='ImageNet/Fea/ILSVRC2012_img_train/';
- disp('Extracting CNN features...');
- subfolders = dir(rt_img_dir);
- siftLens = [];
- database = [];
- database.imnum = ; % total image number of the database
- database.cname = {}; % name of each class
- database.label = []; % label of each class
- database.path = {}; % contain the pathes for each image of each class
- database.nclass = ;
- error_num_CMYK_JPEG=;
- for ii = :length(subfolders),
- subname = subfolders(ii).name;
- if ~strcmp(subname, '.') & ~strcmp(subname, '..'),
- database.nclass = database.nclass + ;
- database.cname{database.nclass} = subname;
- frames = dir(fullfile(rt_img_dir, subname, '*'));
- frames()=[];frames()=[];
- c_num = length(frames);
- database.imnum = database.imnum + c_num;
- database.label = [database.label; ones(c_num, )*database.nclass];
- siftpath = fullfile(rt_data_dir, subname);
- if ~isdir(siftpath),
- mkdir(siftpath);
- end;
- for jj = :c_num,
- imgpath = fullfile(rt_img_dir, subname, frames(jj).name);
- try
- im_data = caffe.io.load_image(imgpath);
- %% subtract mean_data (already in W x H x C, BGR)
- width = ; height = ;
- im_data = imresize(im_data, [width, height]); % resize using Matlab's imresize
- feaSet.iscolor=;
- if size(im_data,)==
- imdata=zeros([size(im_data),]);
- imdata(:,:,)=im_data;
- imdata(:,:,)=im_data;
- imdata(:,:,)=im_data;
- im_data=imdata;
- feaSet.iscolor=;
- gray_num=gray_num+;
- end
- feaSet.label= database.nclass;
- im_data = im_data - (mean_data);
- width = ; height = ;
- im_data = imresize(im_data, [width, height]); % resize using Matlab's imresize
- res = net.forward({im_data});
- fc6_data = net.blobs('fc6').get_data();
- fc7_data = net.blobs('fc7').get_data();
- feaSet.fc6_data = fc6_data;
- feaSet.fc7_data = fc7_data;
- [pdir, fname] = fileparts(frames(jj).name);
- fpath = fullfile(rt_data_dir, subname, [fname, '.mat']);
- save(fpath, 'feaSet');
- catch
- str= fullfile(subname,frames(jj).name);
- disp(str);
- error_num_CMYK_JPEG=error_num_CMYK_JPEG+;
- error_CMYK_JPEG{error_num_CMYK_JPEG}=str;
- end
- end;
- end;
- end;
matlab 批量提取CNN特征的更多相关文章
- 原来CNN是这样提取图像特征的。。。
对于即将到来的人工智能时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的领域,会不会感觉马上就out了?作为机器学习的一个分支,深度学习同样需要计算机获得强大的学 ...
- CNN基础二:使用预训练网络提取图像特征
上一节中,我们采用了一个自定义的网络结构,从头开始训练猫狗大战分类器,最终在使用图像增强的方式下得到了82%的验证准确率.但是,想要将深度学习应用于小型图像数据集,通常不会贸然采用复杂网络并且从头开始 ...
- Python 超简单 提取音乐高潮(附批量提取)
很多时候我们想提取某首歌的副歌部分(俗称 高潮部分),只能手动直接卡点剪切,但是对于大批量的获取就很头疼,如何解决? 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后 ...
- 寻找与疾病相关的SNP位点——R语言从SNPedia批量提取搜索数据
是单核苷酸多态性,人的基因是相似的,有些位点上存在差异,这种某个位点的核苷酸差异就做单核苷酸多态性,它影响着生物的性状,影响着对某些疾病的易感性.SNPedia是一个SNP调査百科,它引用各种已经发布 ...
- python实现gabor滤波器提取纹理特征 提取指静脉纹理特征 指静脉切割代码
参考博客:https://blog.csdn.net/xue_wenyuan/article/details/51533953 https://blog.csdn.net/jinshengtao/ar ...
- matlab批量读取一个文件夹里类似命名的mat文件
参考网址: Matlab读取同一路径下多个txt或mat文件总结 matlab 批量读取数据文件.mat .dat 整理:matlab批量读入数据文件的方法 首先命名方式体现在只是名字里数字有变化,其 ...
- PDF文本内容批量提取到Excel
QQ:231469242,版权所有 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269 ...
- 使用matlab批量处理图像后在指定文件夹存储
使用matlab批量处理图像后在指定文件夹存储 clear;clc;close all; Files=dir('D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\*.jp ...
- VGG16提取图像特征 (torch7)
VGG16提取图像特征 (torch7) VGG16 loadcaffe torch7 下载pretrained model,保存到当前目录下 th> caffemodel_url = 'htt ...
随机推荐
- VBA续嘘嘘
什么是VBA?它有什么作用? A.实现Excel中没有实现的功能. B.提高运行速度. C.编写自定义函数. D.实现自动化功能. E.通过插入窗体做小型管理软件. VBA在哪里存放的?怎么运行? A ...
- wordpress 首页调用文章 不同样式的方法
<?php $count = 1; $display_categories = array(1); foreach ($display_categories as $category) { ?& ...
- 《Pro Express.js》学习笔记——app.params中间件
app.param中间件用于对URL中的参数进行获取.加工.输出,提供公有逻辑,以达到代码重构的目的. 以下示例采取三个步骤对代码进行重构,app.param中间件的作用非常明显: 不使用中间件 使用 ...
- js动画之平抛运动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Raspberry Pi Resources-Using the UART
参考:RPi Serial Connection 本文来自:http://www.raspberry-projects.com/pi/programming-in-c/uart-serial-port ...
- JavaScript 基础知识之对比记忆学习
1. alter修改(易写混),alert警告 alert 函数语法:alert(str);str字符串用单引号或双引号隔开 2.标识符和关键字 标识符:由不以数字开头的字母.数字.下划线.$组成. ...
- linux内核学习之三 跟踪分析内核的启动过程
一 前期准备工作 1 搭建环境 1.1下载内核源代码并编译内核 创建目录,并进入该目录: 下载源码: 解压缩,并进入该目录:xz -d linux-3.18.6.tar.xz tar ...
- select跳转页面
跳转到当前页: <select name="here " onchange="location.href=this.options[this.selectedInd ...
- Adobe Reader/Acrobat修改页面底色为豆沙绿
Adobe Acrobat_Pro_8修改PDF页面底色为豆沙绿保护视力(同样适用于Adobe Reader) http://jingyan.baidu.com/article/9989c746189 ...
- Java泛型学习笔记 - (一)泛型的介绍
一.什么是泛型:泛型的作用是用来规定一个类, 接口或方法所能接受的数据的类型. 就像在声明方法时指定参数一样, 我们在声明一个类, 接口或方法时, 也可以指定其"类型参数", 也就 ...