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 ...
随机推荐
- 四核exynos4412开发板使用网线上网注意事项
问:RP4412开发板板子可以插网线上网? 答:可以.支持WIFI.LAN.3/4G上网的.插网线没? 问:我插了,他还是提示让我连wifi. 答:你是上网页还是其他的APP. 网页可以直接打开,有部 ...
- CALayer 2 详解 -----转自李明杰
CALayer2-创建新的层 本文目录 一.添加一个简单的图层 二.添加一个显示图片的图层 三.为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型,而不用UICol ...
- 微信的redirect_uri参数错误解决办法
近期,我们在调试独立的微信商城的时候,遇到了一些问题,比如:微信的redirect_uri参数错误,这是一个很普遍存在的问题,当然解决起来并不难,首先,我们得去找到发生这一事件的原因. 可能1:授权目 ...
- ubuntu14.04 wifi驱动
ubuntu崩溃后再安装后,发现没有了wifi按钮 因为必须要用wifi不然太不方便了,于是在网上找了一下,安装了一下驱动就解决了 首先确定无线网卡类型: $ lspci -vnn -d 14e4: ...
- ubuntu 使用中的一些问题汇总
1.IOError: [Errno 13] Permission denied /usr/local…… 这个错误是在terminal中运行pip install 时产生的,说的时没有权限运行安装包, ...
- sql server 2012提示:评估期已过 的解决办法 附序列号
sql server 2012提示评估期已过的解决方法: 第一步:进入SQL2012配置工具中的安装中心. 第二步:再进入左侧维护选项界面,然后选择选择版本升级. 第三步:进入输入产品密钥界面,输入相 ...
- nim也玩一行流,nim版的list comprehension
nim 是一门风格类似python的静态编译型语言,官方网站:http://nim-lang.org 如果你想折腾nim的编辑环境,可以用sublime text3 +插件nimlime,notepa ...
- Python的平凡之路(12)
一.数据库介绍 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但 ...
- PHP初学者都该掌握哪些技能
初学PHP时,不要好高骛远,脚踏实地的把LNMP搞熟练,打好基础再往更高的层次发展.今天给大家总结初学者应该学会的技能. 1.Linux 基本命令.操作.启动.基本服务配置(包括rpm安装文件,各种服 ...
- java中开源日志记录工具log4j
日志:除了能记录异常信息,还可以记录程序正常运行时的关键信息. 使用log4j来进行日志文件记录经典步骤: 001.在项目中创建一个lib文件夹,然后将下载好的jar包copy到该文件夹下 002.对 ...