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)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
0H0WP0H0WP
上一篇 2024-10-03 23:07
下一篇 2024-10-03 23:07

相关推荐

  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29

发表回复

登录后才能评论