深度学习caffe实战笔记(19)windows平台faster-rcnn制作自己的数据集

蒲衣翁 蒲衣翁     2022-09-01     253

关键词:

万里长征第一步,就是要制作自己的数据集,过程还是比较繁琐的,特别是标注的过程,这篇博客先介绍如果制作voc2007自己的数据集用于faster-rcnn训练,下一篇博客介绍如何用faster-rcnn训练自己的数据。

1、准备图像
图像要用.jpg或者jpeg格式的,如果是png或者其它格式,自己转换一下就好,图像名称要用000001.jpg,只有和VOC2007数据集图像名称一致,才能最大限度的减少后面训练的麻烦,大家可以从网上下载一些批量重命名工具,我是用MATLAB代码实现转换的,我把MATLAB代码放在这里,如果大家需要请自行修改路径使用

%实现把图像重命名为VOC2007数据集一样的图像名
%D1是原始图像存放的文件夹,imwrite中的路径是保存的文件夹
%作者:UPC Yongbiao Gao Heroin 蒲衣翁
%csdn博客地址:http://blog.csdn.net/gybheroin
clc
clear
D1=dir('G:\Deep Feature extra\按年份数据\2011\2011test\*.jpg');

for i=1:length(D1)
    i
    I=imread(['G:\Deep Feature extra\按年份数据\2011\2011test\',D1(i).name]);
    re=imresize(I,[600,400]);%注意,这里我把图像归一化大小了,可选
    if(i<10)
        imwrite(re,['G:\fasterrcnn\data\',['00000',num2str(i),'.jpg']]);
    end
    if(10<=i&&i<100)
        imwrite(re,['G:\fasterrcnn\data\',['0000',num2str(i),'.jpg']]);
    end
    if(100<=i&&i<1000)
         imwrite(re,['G:\fasterrcnn\data\',['000',num2str(i),'.jpg']]);
    end
    if(1000<=i&&i<10000)
        i
        imwrite(re,['G:\fasterrcnn\data\',['00',num2str(i),'.jpg']]);
    end
    if(10000<=i&&i<100000)
        i
        imwrite(re,['G:\fasterrcnn\data\',['0',num2str(i),'.jpg']]);
    end
end

2、图像目标框标注
图像标注的工具网上应该有一些,但是博主喜欢自己动手丰衣足食,所以就用c#+emgucv自己写了一个标注软件,我把vs工程放在csdn资源上,想用我写的软件的同学请自行下载,代码中图像路径需要自己修改一下就行了:http://download.csdn.net/detail/gybheroin/9847647
图像标注软件界面如下:(一个小时写出来的东西,简陋一些,但是功能是没问题)

这里写图片描述

使用方法:在文本框中输入类别标签,鼠标在图像中拖动实现矩形框,保存按钮保存了标注的标签,如果框选错误,就点击取消按钮,重新标注。
标注文件格式如下,分别是图像名称,类别名称,目标框左上角和右下角坐标:

000001.jpg person 118 48 273 572
000002.jpg person 106 52 291 557
000003.jpg person 119 49 289 554
000004.jpg person 114 45 270 566
000005.jpg person 96 35 328 564
000006.jpg person 104 50 316 586

3、做成xml
做xml的代码我是使用了别人的资源,如果不嫌弃麻烦,可以自己写一个的,我参考的资源地址:http://download.csdn.net/detail/sinat_30071459/9531172

把图像放在一个文件夹中,把标注好的文件放在一个文件夹中,能自动生成xml文件,生成的xml文件格式如下:
这里写图片描述

4、生成txt索引文件
需要四个索引文件,分别是trainval.txt,train.txt,val.txt,test.txt,分别存放训练验证集,训练集,验证集,测试集,VOC2007中,训练验证集占50%,测试集占50%,训练集占训练验证集50%,验证集占训练验证集50。但是我标注的数据集比较小一点,所以我把相应的比例做了修改,大家可以参考我写的MATLAB代码:


%实现生成VOC的训练验证测试四个文本文件,我这个是按照顺序实现的,没有打乱顺序,如果需要请自行修改
%trainval占0.7,test占0.3.train占trainval的0.5,val占trainval的0.5
%这个地方是我自己设置的,标准的voc2007应该都是50%
%作者:UPC Yongbiao Gao Heroin 蒲衣翁  
%csdn博客地址:http://blog.csdn.net/gybheroin

clc
clear
train_val_percent=0.7;
test_percent=0.3;

D=dir('imgg/*.jpg');
ftrainval=fopen('trainval.txt','w');  
ftest=fopen('test.txt','w');  
ftrain=fopen('train.txt','w');  
fval=fopen('val.txt','w'); 

for i=1:length(D)*train_val_percent
    fprintf(ftrainval,'%s\n',D(i).name(1:end-4));
end
for i=length(D)*train_val_percent+1:length(D)
    fprintf(ftest,'%s\n',D(i).name(1:end-4));
end
for i=1:length(D)*train_val_percent*0.6
    fprintf(ftrain,'%s\n',D(i).name(1:end-4));
end
for i=length(D)*train_val_percent*0.6+1:length(D)*train_val_percent
    fprintf(fval,'%s\n',D(i).name(1:end-4));
end

然后新建一个文件夹ImageSets,再新建一个文件夹Main,把四个文件放进去。新建一个文件夹minedataset,把ImageSets,Annotation(存放了所有的xml文件)和JPEGImages(存放了所有训练验证测试图像)放进去,这样数据准备算是完成。

caffe学习笔记目录

...ip;…一点点更新中...目录:安装、配置与测试buildtools学习Tutorial学习pyCaffe学习Caffe源码学习相关实例 安装、配置与测试在windows上安装caffe(GPU)使用caffe-windows生成数据文件运行caffe-windows的demo配置caffe+cuDNN 查看详情

21天实战caffe笔记_第二天

1传统机器学习       传统机器学习:通过人工设计特征提取器,将原始数据转化为合适的中间表示形式或者特征向量,利用学习系统(通常为分类器)可以对输入模式进行检测或者分类。流程如下: &nb... 查看详情

caffe实战笔记

Caffe简要介绍:Caffe还没有windows版本,所以我需要远程登录linux服务器Caffe主要处理图片/图片序列 Caffe读取的数据格式从专用的数据库中读取(lmdb、leveldb)直接读取图片从内存中读取(会占很多内存)从HDF5文件中读取从滑动... 查看详情

《tensorflow实战google深度学习框架(第二版)》学习笔记及书评(代码片段)

《TensorFlow实战Google深度学习框架(第二版)》学习笔记文章目录《TensorFlow实战Google深度学习框架(第二版)》学习笔记写在前面1.TensorFlow图像处理函数学习总结2.TensorFlow图像预处理完整样例3.TensorFlow多线程输入... 查看详情

keras深度学习实战——基于vgg19模型实现性别分类(代码片段)

Keras深度学习实战——基于VGG19模型实现性别分类0.前言1.VGG19架构简介2.使用预训练VGG19模型进行性别分类2.1构建输入与输出数据2.2模型构建与训练2.3模型错误分类示例相关链接0.前言在《迁移学习》中,我们了解了利用迁移学... 查看详情

bp神经网络分类实战项目(深度学习笔记)原创!基础篇

查看详情

pytorch学习笔记3.深度学习基础(代码片段)

...:【计算机-AI】PyTorch学这个就够了!(好课推荐)深度学习与PyTorch入门实战——主讲人龙 查看详情

keras深度学习实战(19)——使用对抗攻击生成可欺骗神经网络的图像(代码片段)

Keras深度学习实战(19)——使用对抗攻击生成可欺骗神经网络的图像0.前言1.对抗攻击简介2.对抗攻击模型分析2.1模型识别图像流程2.2对抗攻击流程3.使用Keras实现对抗攻击小结系列链接0.前言近年来,深度学习在图像... 查看详情

tensorflow实战google深度学习框架笔记摘要pfour

6.4经典卷积网络模型LeNet-5模型     Inception-v3模型     6.5卷积神经网络迁移学习              查看详情

tensorflow实战google深度学习框架笔记摘要pone

《Tensorflow实战Google深度学习框架》前三章的摘要(没有简介和环境搭建的部分)摘要的内容是与tensorflow语句相关的知识如有违规之类的请通知我啊这个pdf一般bd有需要的可以私聊我或者留下扣扣邮箱欢迎指点注:本来是要直接... 查看详情

win7配置微软的深度学习caffe

官方下载:https://github.com/Microsoft/caffe然后直接修改caffe目录下的windows目录下的项目的props文件配置支持哪些特性,然后直接打开vs的项目编译即可完成,怎一个爽字了得(nuget自动处理依赖问题)(1)注意修改python的绑定为true,(2)mat... 查看详情

深度学习—caffe框架训练文档

转存:LMDBE:机器学习2caffe资料caffe_rootcaffe-masterBuildx64Release>convert_imageset.exeE:/机器学习2/caffe资料/caffe_root/caffe-master/examples/myfile/trainE:/机器学习2/caffe资料/caffe_root/caffe-master/examples 查看详情

caffe学习笔记图像数据转换为db(leveldb/lmdb)文件

在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致。而在caffe中经常使用的数据类型是lmdb或leveldb,因此就产生了这样的一个问题:如何从原始图片文件转... 查看详情

caffe深度学习框架介绍

...自:http://suanfazu.com/t/caffe/281 Caffe是一个清晰而高效的深度学习框架,其作者是博士毕业于UCBerkeley的贾扬清,目前在Google工作。Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口;可以在CPU和GPU直接无缝切换: Caffe::... 查看详情

caffe深度学习框架上手教程

Caffe深度学习框架上手教程   blink15年1月 Caffe(CNN,deeplearning)介绍Caffe-----------ConvolutionArchitectureForFeatureEmbedding(Extraction)Caffe是什么东东?CNN(DeepLearning)工具箱C++语言架构CPU和GPU无缝交换Python和 查看详情

caffe深度学习计算框架

Caffe|DeepLearningFramework是一个清晰而高效的深度学习框架,其作者是博士毕业于UCBerkeley的 YangqingJia,目前在Google工作。Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口;可以在CPU和GPU直接无缝切换:1Caffe::set_mode(Caffe::GP... 查看详情

tensorflow实战google深度学习框架笔记codepart(代码片段)

深层神经网络线性模型的局限性激活函数实现去线性化a=tf.nn.relu(tf.matmul(x,w1)+biases1)y=tf.nn.relu(tf.matmul(a,w2)+biases2)经典损失函数#计算交叉熵cross_entropy=-tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,le-10,1.0)))#tf.clip_by_value样例 查看详情

深度学习人脸识别实验---vgg模型

...shuai/article/details/506586701、caffe环境配置  主要参考:《深度学习21天实战Caffe》2、VGG人脸识别模型资料(提供论文和以及训练完的人脸模型)  http://www.robots.ox.ac.uk/~vgg/software/vgg_face/3、LMDB数据集的获取 查看详情