python用图片制作数据集(python将图片存入数据库)

  • 1、mxnet数据集的制作和训练
  • 2、制作cifar10数据集的python版代码
  • 3、如何用python imageio制作图像数据集
  • 4、Python 制作Pascal VOC数据集

安装mxnet

Cpu版:pip install mxnet

Gpu版:pip install mxnet-cu80

若cuda版本为cuda-9.0,改为pip install mxnet-90

pip或apt安装sklearn,easydict

制作数据集

将图片分类并放入不同文件夹

运行python im2rec.py train –list ./可生成.list文件,包含图片列表

运行python im2rec.py train ./ train.rec和train.idx训练文件

–train-ratio 0.9生成验证数据集.bin文件参数为训练数据集和验证数据集之比

–resize 128 128指定生成数据集的图片大小

参考

将生成的.rec,.idx,.bin(非必须)文件放入datasets/faces_emore中

新建property文本,写入图片数量,图片长宽 example : 86545 128 128

例:

python -u  train.py –network m1 –loss softmax –dataset emore,1

使用softma、nosoftmax、arcface或cosface训练完成后,使用生成模型运行三元组损失训练

例:

Python -u train.py –network m1 -loss triplet –lr 0.005 –pretrained ./models/m1-softmax-emore

参数说明

–dataset训练集位置,具体位置查看config.py 108至120行

–network网络模型 候选参数 : r100 r100fc r50 r50v1(基于resnet) d169 d201(基于densenet) y1 y2(基于mobilefacenet) m1 m0.5(基于mobilenet) mnas mnas05 mnas025(基于mnasnet)

–loss损失函数 候选参数 :softmax(标准损失函数) nsoftmax (组合损失函数)arcface cosface combined triplet(三元组损失) atriplet

–ckpt模型存储时间。0: 放弃存储 1:必要时存储(验证集准确率达标时,若无验证集则不存储 3:总是存储)

–lr学习率

–lr-steps学习率改变方法 例:’10000,20000,2200000’即达到图片数量时学习率*0.1

–per-batch-size每次的训练的数量 数量越少,占用显卡内存越少

参考

MNIST 数据集

混合的国家标准和技术 (简称 MNIST) 由红外研究员,作为基准来比较不同的红外算法创建数据集。 其基本思想是如果你有你想要测试红外的算法或软件的系统,可以运行您的算法或系统针对 MNIST 的数据集和比较您的结果与其他系统以前发布成果。

数据集包含的共 70,000 图像 ; 60,000 训练图像 (用于创建红外模型) 和 10,000 测试图像 (用于评估模型的精度)。 每个 MNIST 图像是一个单一的手写的数字字符的数字化的图片。 每个图像是 28 x 28 像素大小。 每个像素值是 0,表示白色,至 255,表示黑。 中间像素值表示的灰度级。 图 2 显示了训练集的前八位的图像。 对应于每个图像的实际数字是显然对人,但确定数字是非常困难的挑战的计算机。

图 2 首八 MNIST 训练图像

奇怪的是,训练数据和测试数据均存储在两个文件中,而不是在单个文件中。 其中一个文件包含图像的像素值和,另一个包含图像的标签信息 (0 到 9)。 每个的四个文件还包含标头信息,和所有的四个文件都存储在已经使用 gzip 格式压缩的二进制格式。

注意在图 1,该演示程序使用仅 60,000 项目训练集。 测试集的格式是相同的训练集。 MNIST 文件的主存储库是目前位于 yann.lecun.com/exdb/mnist。 培训的像素数据存储在文件火车-图像-idx3-ubyte.gz 和培训标签数据存储在文件火车-标签-idx1-ubyte.gz。 若要运行该演示程序,您需要转到 MNIST 的存储库站点,下载并解压的两个培训数据文件。 将文件解压缩,我用的免费的开源 7-Zip 实用程序。

创建 MNIST 查看器

若要创建 MNIST 演示程序,我发起了 Visual Studio,创建一个名为 MnistViewer 的新 C# Windows 窗体项目。 演示有没有重大的.NET 版本依赖关系,因此,任何版本的 Visual Studio 应该工作。

模板代码加载到 Visual Studio 编辑器后,我设置的 UI 控件。 我添加了两个 TextBox 控件 (textBox1,textBox2) 要坚持两个解压后的培训文件的路径。 我添加一个按钮控件 (button1),并给了它一个标签加载图像。 我添加了两个多个 TextBox 控件 (textBox3,textBox4) 以保存当前图像索引和下一个图像索引的值。 我使用 Visual Studio 设计器,分别设置”NA”和”0,”这些控件的初始值。

我添加了一个 ComboBox 控件 (comboBox1) 的图像放大倍数值。 使用设计器,我去到该控件的项集合,添加字符串”1″到”10″。我添加了第二个按钮控件 (button2),并给了它一个标签的显示下一次。 我添加了 PictureBox 控件 (pictureBox1),将其背景色属性设置为 ControlDark,以便看到控件的轮廓。 我将图片框大小设置为 280 x 280 允许最多 10 倍的放大倍率 (回顾 MNIST 图像是 28 x 28 像素为单位)。 我添加了第五个 (textBox5) 文本框以显示十六进制值的图像,然后将其多行属性设置为 True 和其字体属性设置为 8.25 磅 Courier New 和扩大其大小到 606 x 412。 而且,最后,我添加了一个列表框控件 (listBox1) 的日志记录消息。

声明在此使用的彩色图转灰度图进行的单通道的图像存储,对于多通道的图像随后进行总结

主要流程是将图像数据读出

将图像转换成numpy的数组形式

将图像进行行的处理编程行向量的存储

之后是将数据与标签进行合并存储

存储在一个list中

将这个数据集进行数据的打乱顺序,(随机化的过程)

主要的过程就是这些了

下面是代码的

===========================

# -*-coding:utf-8-*-

import numpy

import theano

from PIL import Image

from pylab import *

import os

import theano.tensor as T

import random

import pickle

def dataresize(path=r’D:\worksapce_python\20160426_cp\testing’):

# test path

path_t =r”D:\worksapce_python\20160426_cp\training”

# train path

datas = []

train_x= []

train_y= []

valid_x= []

valid_y= []

test_x= []

test_y= []

for dirs in os.listdir(path):

# print dirs

for filename in os.listdir(os.path.join(path,dirs)):

imgpath =os.path.join(os.path.join(path,dirs),filename)

img = Image.open(imgpath)

img =img.convert(‘L’).resize((28,28))

width,hight=img.size

img = numpy.asarray(img,dtype=’float64′)/256.

下图是 Pascal VOC 数据集格式。

1、 Annotations 目录是存放 xml 文件;

2、 ImageSets 目录是存放 txt 文件,主要是测试集、训练集、验证集等文件名称的集合;

3、 JPEGImages 目录是存放图片文件( jpg );

1、从 Annotations 目录下读取 xml 目录;

2、把 xml 目录,随机重置一下,这样在训练的时候,各个分类是随机读取,不会出现某一个分类聚集读取,从而影响训练效果。当然,你也可以在训练的时候选择随机重置,道理是一样的;

3、创建将要写入的 txt 文件。这里示范了训练集、验证集,其他的可自行添加;

4、读取目录文件,通过前缀判断,写入 txt 文件。

有时候不需要指定数据集,只是从一个大的原始数据集中,随机选取一部分当中训练集、一部分当作验证集、一部分当作测试集。

原创文章,作者:0H0WP,如若转载,请注明出处:https://www.506064.com/n/126354.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
0H0WP的头像0H0WP
上一篇 2024-10-03 23:07
下一篇 2024-10-03 23:07

相关推荐

  • c语言测试网址,c语言程序测试网站

    本文目录一览: 1、能在网上在线编译C语言,并编译呈现出来的网站是什么? 2、求C语言编程练习的网站 3、c语言如何检测网络是否连接 能在网上在线编译C语言,并编译呈现出来的网站是…

    编程 2024-11-29
  • Android文档详解

    一、Android文档下载   Android文档是Android开发的重要资源之一,Android开发者可以从官方网站下载文档。下载页面提供了各个版本的文档,包括API参考文档、…

    编程 2024-11-16
  • 使用Python获取字典的键

    一、Python中字典的概述 在Python中,字典(Dictionary)是一种非常常用的数据类型,它可以用来存储一系列的键-值对,其中每个键都是唯一的,值可以重复。字典可以用大…

    编程 2024-12-04
  • atm管理系统php,ATM机管理

    本文目录一览: 1、大家知道ATM自动取款机是什么操作系统的吗 2、atm系统主要包括哪几个部分? 3、编写一个C语言程序模拟银行ATM机的账户管理功能,系统主要实现以下功能 4、…

    编程 2024-12-09
  • 如何使用sheet_to_json将电子表格数据转换为JSON格式

    一、什么是 sheet_to_json sheet_to_json是一个JavaScript库,它可以帮助我们将电子表格数据转换为JSON格式。这个库非常强大,它可以处理各种电子表…

    编程 2024-12-10
  • Python基础3:无痛掌握Python编程语言的高级特性

    一、面向对象编程 Python中支持面向对象编程,通过使用类和对象的概念可以更好地管理和维护复杂的代码。在Python中,我们可以通过定义类来创建新的对象。类可以包含属性和方法,属…

    编程 2024-12-11
  • JavaAgent: Java应用增强利器

    一、JavaAgent简介 JavaAgent是Java应用提升性能和灵活性的一种手段。它作为一个独立运行的Java程序,可以被加载到Java应用的启动过程中,利用Java提供的I…

    编程 2024-12-01
  • 3dmax导su没有材质,3dmax能导出su吗

    本文目录一览: 1、导入到3Dmax中的模型不显示材质贴图,请高手指点。。。。 2、3dmax怎么导入到sketchup 3、3dmax里面的模型文件怎么导入sketchup里面?…

    编程 2024-11-23
  • c语言代码评测,c语言 优秀开源代码

    本文目录一览: 1、学生综合测评管理系统C语言程序 2、求帮看一道C语言编程,不知道为什么输不了结果,而且评测显示运行超时:Torry的困惑(基本型) 3、C语言编程代码好坏如何判…

    编程 2024-12-07
  • Vim配置详解

    一、插件管理 插件管理对于Vim的使用者来说是非常重要的。首先,我们需要安装一个插件管理器。vim-plug是一个很流行的插件管理器,它具有轻量级和快速的安装速度。下面是使用vim…

    编程 2024-11-15

发表回复

登录后才能评论