DCGAN增强图片数据集
DCGAN增强图片数据集
1.Dependencies
2.DCGAN
步骤:
将图片数集放在/Anime_GAN/DCGAN/faces
进行如下的命令:
$ cd Anime_GAN/DCGAN/
$ python main.py --help # 查看默认参数信息,根据需求可进行修改
执行完上述命令会产生相应的一张图片(存储位 置:/Anime_GAN/DCGAN/saved/img/xx.png)
调用SegmentePictures.py进行图片的切割
$ cd DCGAN/saved
$ python SegmentePictures.py
# encoding:utf-8
from PIL import Image
import sys
import math
import argparse def fill_image(image):
"""
将图片填充为正方形
:param image:
:return:
"""
width, height = image.size
#选取长和宽中较大值作为新图片的
new_image_length = width if width > height else height
#生成新图片[白底]
new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white')
#将之前的图粘贴在新图上,居中
if width > height:#原图宽大于高,则填充图片的竖直维度
#(x,y)二元组表示粘贴上图相对下图的起始位置
new_image.paste(image, (0, int((new_image_length - height) / 2)))
else:
new_image.paste(image,(int((new_image_length - width) / 2),0)) return new_image def cut_image(image,cut_num):
"""
切图
:param image:
:return:
"""
flag_value = int(math.sqrt(cut_num))
width, height = image.size
item_width = int(width / flag_value)
box_list = []
for i in range(0,flag_value):
for j in range(0,flag_value):
box = (j*item_width,i*item_width,(j+1)*item_width,(i+1)*item_width)
box_list.append(box)
image_list = [image.crop(box) for box in box_list] return image_list def save_images(image_list):
"""
保存
:param image_list:
:return:
"""
index = 1
for image in image_list:
image.save('./img_add/'+str(index) + '.png', 'PNG')
index += 1 def main():
parse = argparse.ArgumentParser() parse.add_argument("--lr", type=float, default=0.0001,
help="learning rate of generate and discriminator")
parse.add_argument("--beta1", type=float, default=0.5,
help="adam optimizer parameter")
parse.add_argument("--batch_size", type=int, default=81,
help="number of dataset in every train or test iteration")
parse.add_argument("--epochs", type=int, default=0,
help="number of training epochs")
parse.add_argument("--loaders", type=int, default=4,
help="number of parallel data loading processing")
parse.add_argument("--size_per_dataset", type=int, default=30000,
help="number of training data") args = parse.parse_args() file_path = "./img/"+args.epochs+".png" # 图片路径
image = Image.open(file_path)
image = fill_image(image)
image_list = cut_image(image,batch_size)
save_images(image_list) if __name__ == '__main__':
main()
需要注意的是:下面的命令中batch_size的数一定要一致
$ python main.py --batch_size=xx $ python SegmentePictures.py --batch_size=xx
3.遇到的问题
RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 370 and 667 in dimension 2 at /pytorch/aten/src/TH/generic/THTensor.cpp:711
错误分析:使用DataLoader加载图像,这些图像中的一些具有3个通道(彩色图像),而其他图像可能具有单个通道(BW图像),由于dim1的尺寸不同,因此无法将它们连接成批次。 尝试将img = img.convert(‘RGB’)添加到数据集中的getitem中。
将图片的通道进行统一
from PIL import Image
import matplotlib.pyplot as plt
import os
def GetAllFiles(dir):
files_ = []
list = os.listdir(dir)
for i in range(0, len(list)):
path = os.path.join(dir, list[i])
if os.path.isdir(path):
files_.extend(GetAllFiles(path))
if os.path.isfile(path):
files_.append(path)
return files_
def ConvertRGB():
"""
将图片转换为RGB格式
:return:
"""
files_ = GetAllFiles(file_path)
for id,item in enumerate(files_):
img=Image.open(item)
gray=img.convert('RGB')
plt.imshow(gray)
plt.axis('off')
save_path = "./save_img"+"\\"+str(id)+".jpg"
plt.savefig(save_path)
# plt.show()
if __name__ == "__main__":
file_path = "your path"
ConvertRGB()
参考链接:https://github.com/FangYang970206/Anime_GAN/blob/master/README.md
DCGAN增强图片数据集的更多相关文章
- TensorFlow2.0(10):加载自定义图片数据集到Dataset
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 超简单!pytorch入门教程(四):准备图片数据集
在训练神经网络之前,我们必须有数据,作为资深伸手党,必须知道以下几个数据提供源: 一.CIFAR-10 CIFAR-10图片样本截图 CIFAR-10是多伦多大学提供的图片数据库,图片分辨率压缩至32 ...
- os.walk|图片数据集
该函数的功能:遍历指定文件夹下的所有[路径][文件夹][文件名] ''' os.walk(top[, topdown=True[, onerror=None[, followlinks=False]] ...
- AlexNet详细解读
AlexNet详细解读 目前在自学计算机视觉与深度学习方向的论文,今天给大家带来的是很经典的一篇文章 :<ImageNet Classification with Deep Convolutio ...
- python的N个小功能(图片预处理:打开图片,滤波器,增强,灰度图转换,去噪,二值化,切割,保存)
############################################################################################# ###### ...
- DCGAN 代码简单解读
之前在DCGAN文章简单解读里说明了DCGAN的原理.本次来实现一个DCGAN,并在数据集上实际测试它的效果.本次的代码来自github开源代码DCGAN-tensorflow,感谢carpedm20 ...
- 学习笔记GAN002:DCGAN
Ian J. Goodfellow 论文:https://arxiv.org/abs/1406.2661 两个网络:G(Generator),生成网络,接收随机噪声Z,通过噪声生成样本,G(z).D( ...
- [Deep-Learning-with-Python]GAN图片生成
GAN 由Goodfellow等人于2014年引入的生成对抗网络(GAN)是用于学习图像潜在空间的VAE的替代方案.它们通过强制生成的图像在统计上几乎与真实图像几乎无法区分,从而能够生成相当逼真的合成 ...
- 在C#下使用TensorFlow.NET训练自己的数据集
在C#下使用TensorFlow.NET训练自己的数据集 今天,我结合代码来详细介绍如何使用 SciSharp STACK 的 TensorFlow.NET 来训练CNN模型,该模型主要实现 图像的分 ...
随机推荐
- PPT页面动画制作
因为武汉新型冠状肺炎的影响,今年自从2月3号开工以来,就在家办公.我的任务刚好是安排做PPT,虽说之前做过PPT,但大家都知道,作为一个IT测试工程师,更多的是测试工作,只有在培训,还有年终汇报的时候 ...
- 【原】nginx配置文件
一:下载nginx方式 1.yum install nginx 2.源码安装 二:学习网址 nginx documentation — DevDocs 三:配置文件信息 server { listen ...
- js中各种类型转换为Boolean类型
数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 空字符串 Number 任何非零数字值(包括无穷大) 0和null ...
- C++中文件的读取操作,如何读取多行数据,如何一个一个的读取数据
练习8.1:编写函数.接受一个istream&参数,返回值类型也是istream&.此函数必须从给定流中读取数据,直至遇到文件结束标识时停止. #include <iostrea ...
- partition_show , a new version to check partition table status in sqlserver
Dear all: I had put "partition_show" before . but this time it makes faster. partition_sho ...
- windows 批量杀进程 类似pkill
轉:http://blog.sina.com.cn/s/blog_55fb522f0100whki.html 1.开始-运行(或win+R),输入cmd,打开命令行模式: 2.输入tasklist,可 ...
- SpringBoot项目中自定义注解的使用
1.定义注解接口 @Documented @Retention(RUNTIME) @Target(METHOD) public @interface MyLog { String value() ...
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 &l ...
- 《iOS设计模式解析》书籍目录
1.你好,设计模式 2.案例分析:设计一个应用程序 3.原型 4.工厂方法 5.抽象工厂 6.生成器 7.单例 8.适配器 9.桥接 10.外观 11.中介者 12.观察者 13.组合 14.迭代器 ...
- python面向对象之练习题1
定义管理员类,管理员有属性(name,password),可以创建学校.创建课程.创建老师 定义老师类,老师有属性(name,password),可以添加课程.给学生打分,但发现学生没有购买课程时,不 ...