Caffe修炼之路(5)——自行制作图片分类数据

2024-02-10 08:30

本文主要是介绍Caffe修炼之路(5)——自行制作图片分类数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Caffe修炼之路(5)——自行制作图片分类数据

  • (一)前 言
  • (二)准备一些图片
  • (三)生成图片文件列表
  • (四)数据转换

在这里插入图片描述

(一)前 言

由于Caffe的输入数据是以lmdb或者leveldb格式的文件,因此我们需要将数据库中的图片转换成caffe能允许的输入格式数据集,这个时候就发现MNIST数据集的怀抱真温暖:
在这里插入图片描述

(二)准备一些图片

在caffe-master/data目录下建立新建dogvscat文件夹存放猫狗的图片,如下所示:
在这里插入图片描述
注意图片文件的命名要有明显差异!

(三)生成图片文件列表

在进行转换之前,我们首先要生一个图片列表,其中包含图片文件名和标签,创建一个sh脚本文件,命名为create_trainfilelist.sh写入:

# /usr/bin/env sh
DATA=/home/caffe/caffe-master/data/dogvscat
echo "Create train.txt..."
rm -rf $DATA/train.txt
find $DATA -name ca*.jpg | cut -d '/' -f7 | sed "s/$/ 0/">>$DATA/train.txt
find $DATA -name do*.jpg | cut -d '/' -f7 | sed "s/$/ 1/">>$DATA/tmp.txt
cat $DATA/tmp.txt>>$DATA/train.txt
rm -rf $DATA/tmp.txt
echo "Done.."

运行上述文件:

bash create_trainfilelist.sh

生成文件内容如下:

cat1.jpeg 0
cat3.jpeg 0
cat2.jpeg 0
dog2.jpeg 1
dog3.jpeg 1
dog1.jpeg 1

(四)数据转换

caffe-master/build/tools/文件夹下,有一个convert_imageset.cpp文件,这个文件的作用就是用于将图片文件转换成Caffe框架中能直接使用的db文件,使用格式为:

 convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME

参数如下:

  • FLAGS: 图片参数组
  • ROOTFOLDER: 原始数据集的绝对路径
  • LISTFILE: 图片的文件名列表,一般为txt文件,一行一张图片的信息,下面会给出如何生成filelist的方法。
  • DB_NAME: 生成的db文件的存放目录

执行下列命令:

build/tools/convert_imageset --gray=false /home/caffe/caffe-master/data/dogvscat/ /home/caffe/caffe-master/data/dogvscat/train.txt /home/caffe/caffe-master/data/dogvscat/train_lmdb --resize_width=224 --resize_height=224

输出:

I0703 17:10:10.721115  7492 convert_imageset.cpp:89] A total of 6 images.
I0703 17:10:10.721850  7492 db_lmdb.cpp:35] Opened lmdb /home/caffe/caffe-master/data/dogvscat/train_lmdb
I0703 17:10:10.816833  7492 convert_imageset.cpp:153] Processed 6 files.

查看生成目录,成功生成lmdb文件:
在这里插入图片描述

这篇关于Caffe修炼之路(5)——自行制作图片分类数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixin_42499236/article/details/94570997
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/696618

相关文章

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

Nacos日志与Raft的数据清理指南

《Nacos日志与Raft的数据清理指南》随着运行时间的增长,Nacos的日志文件(logs/)和Raft持久化数据(data/protocol/raft/)可能会占用大量磁盘空间,影响系统稳定性,本... 目录引言1. Nacos 日志文件(logs/ 目录)清理1.1 日志文件的作用1.2 是否可以删除

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

Spring Boot 整合 Redis 实现数据缓存案例详解

《SpringBoot整合Redis实现数据缓存案例详解》Springboot缓存,默认使用的是ConcurrentMap的方式来实现的,然而我们在项目中并不会这么使用,本文介绍SpringB... 目录1.添加 Maven 依赖2.配置Redis属性3.创建 redisCacheManager4.使用Sp

Python Pandas高效处理Excel数据完整指南

《PythonPandas高效处理Excel数据完整指南》在数据驱动的时代,Excel仍是大量企业存储核心数据的工具,Python的Pandas库凭借其向量化计算、内存优化和丰富的数据处理接口,成为... 目录一、环境搭建与数据读取1.1 基础环境配置1.2 数据高效载入技巧二、数据清洗核心战术2.1 缺失

Python处理超大规模数据的4大方法详解

《Python处理超大规模数据的4大方法详解》在数据的奇妙世界里,数据量就像滚雪球一样,越变越大,从最初的GB级别的小数据堆,逐渐演变成TB级别的数据大山,所以本文我们就来看看Python处理... 目录1. Mars:数据处理界的 “变形金刚”2. Dask:分布式计算的 “指挥家”3. CuPy:GPU

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue