Caffe训练自己的数据之图片集的处理(根据前辈们的分享整理并自己实践的过程)
来源:互联网 发布:linux清空文件夹内容 编辑:程序博客网 时间:2024/06/05 20:34
Caffe训练自己的数据之图片集的处理
(根据前辈们的分享整理并自己实践的过程,windows)
一、将收集好的数据先分类存放
二、resize所有图片为256*256
(matlab代码,记得更改为自己的路径)
clear;clc;close all;tic; % 用于计算程序运行时间,和toc搭配使用imagePath = 'C:\Users\sony\Documents\MATLAB\花蛤\'; % 图片存放路径,改成自己的文件夹imageFiles = dir(imagePath);numFiles = length(imageFiles);parfor i=3:numFiles % 从3开始,因为前两个是当前路径‘.’和上一级路径‘..’ imageFile = strcat(imagePath,imageFiles(i).name); A = imread(imageFile); disp(imageFile); %输出当前处理的图片名称,出错时方便检查 B = imresize(A,[256 256]); % resize为256x256 imwrite(B,imageFile); % 覆盖原始图片,若需要另存为,则修改此处的imageFile为新的存储路径end%disp(j);toc; % 显示运行时间
1、有些图片会报错说维度有问题,还不知道怎么解决所以我把那几张图片删了。。。
2、有些图片在下载的时候文件名是有特殊符号(我主要是 ( ) , = & 这五个)的,导致在批处理的时候程序不能正确读取,所以我先找到一款软件能够去除其中的特殊字符,如图,可以自己制定删除规则很方便。
3、开始rename(或者也可以结合excel 使用ren命令批处理)
(matlab代码,记得修改路径)
%%clc;clear;maindir='C:\Users\sony\Documents\MATLAB\';name_long=5; %图片名字的长度,如000123.jpg为6,最多9位,可修改num_begin=1; %图像命名开始的数字如000123.jpg开始的话就是123subdir = dir(maindir);n=1;for i = 1:length(subdir) if ~strcmp(subdir(i).name ,'.') && ~strcmp(subdir(i).name,'..') subsubdir = dir(strcat(maindir,subdir(i).name)); for j=1:length(subsubdir) if ~strcmp(subsubdir(j).name ,'.') && ~strcmp(subsubdir(j).name,'..') img=imread([maindir,subdir(i).name,'\',subsubdir(j).name]); %imshow(img); %disp(subdir(i).name); %disp(subsubdir(j).name); str=num2str(num_begin,'%09d'); newname=strcat(str,'.jpg'); newname=newname(end-(name_long+3):end); system(['rename ' [maindir,subdir(i).name,'\',subsubdir(j).name] ' ' newname]); num_begin=num_begin+1; fprintf('当前处理文件夹%s',subdir(i).name); fprintf('已经处理%d张图片\n',n); n=n+1; pause(0.1);%可以将暂停去掉 end end endend
四、将图片按照4:1分为训练集和测试集,然后分别生成标签再混合(以test.txt为例)。
(matlab)
% batch write in txtclear allclcfile=dir('G:\caffe\caffe-windows\data\image\test');temp=length(file);file=file(3:temp);fp=fopen('G:\caffe\caffe-windows\data\image\test.txt','at'); % 'at' open or create file for reading and writing; append data to end of file% 'wt' discard existing contentsfor n=1:length(file) fprintf('iter=%d\n',n) txt=['\\' file(n).name ' 0' '\n']; fprintf(fp,txt);endfclose(fp);
万一不小心把图片先混合了也没关系,可以计算一下类别跳跃的位置再改成这样,之后也要检查一下txt文件对不对。
五、制作lmdb或者leveldb
0 0
- Caffe训练自己的数据之图片集的处理(根据前辈们的分享整理并自己实践的过程)
- caffe实战之训练并测试自己的数据
- caffe再见之训练自己的数据
- caffe再见之训练自己的数据
- caffe训练自己的数据
- caffe训练自己的数据
- Caffe训练自己的数据
- caffe训练自己的数据
- Caffe训练自己的数据
- caffe 训练自己的数据
- caffe训练自己的数据
- caffe学习系列:训练自己的图片集(超详细教程)
- caffe学习系列:训练自己的图片集(超详细教程)
- caffe训练自己的数据(二)
- 自己整理的水泥地雪地土地图片集
- caffe 训练测试自己的数据集
- Caffe上训练使用自己的数据
- Caffe 跑自己的数据和训练
- 正则表达式学习笔记
- 第2章 基本语法
- 用c实现南阳oj1221 找数达人 01背包问题。
- 第221讲:Spark Shuffle Pluggable框架ShuffleManager解析
- 揭秘响应式web设计
- Caffe训练自己的数据之图片集的处理(根据前辈们的分享整理并自己实践的过程)
- Java工具类——排序
- 学习笔记4(内部类总结)
- <head>中一些标签的常见用法
- 做个城里人真可怜---可叹的都市生活
- url encode 和 decode
- 初学数学建模软件MATLAB的笔记2
- 五一假第一天
- 图论模板
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
递进复句关联词
夫复何求前一句
选择复句关联词
复句类型顺口溜
递进复句造句
什么是复句
复句关系
今年欢笑复明年下一句
弹琴复长啸的上一句
夫复何求的前面一句
承接复句的关联词
失而复得下一句
明日复明日的下一句是什么
复恐匆匆说不尽下一句
相去复几许上一句
山重水复疑无路下一句
万劫不复下一句
奔流到海不复回上一句是什么
青春一去不复返的下一句是
何时复西归的前一句
复得返自然上一句
夫复何求上一句是什么
转折复句的关联词语
复照青苔上的上一句
山重水复疑无路的下一句
千金散尽还复来的上一句
夫复何求前一句是什么
壮士一去兮不复返上一句
复叶
复羽叶栾树
复叶槭
叶辰复若雪
复叶槭价格
金叶复叶槭小苗价格
叶名琛白悠悠 只愿来生不复见
复叶槭10价格公分表
金叶复叶槭小苗
只愿来生不复见白悠悠叶名深
复合维生素b
实木复合门
复合实木门