用Keras生成面部Python实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Keras生成面部Python实现相关的知识,希望对你有一定的参考价值。

参考技术A

可采用的机器学习数据集:

两者都包含人脸图像。我把这两个组合成一个文件夹。

最常听到的两种图像生成技术是生成对抗网络(GAN)和LSTM网络。

LSTM训练的时候速度非常慢,GAN训练会快得多。实际结果花不到半小时,模糊的面孔就会开始出现。随着时间的推移,图像会更加逼真。

有许多GAN变种。我使用的一种称为深度卷积神经网络(DCGAN)。DCGAN的优点在于它使用了卷积层。卷积神经网络目前是存在的最佳图像分类算法。

生成对抗网络是由一位名叫Ian Goodfellow的研究员发明的,并于2014年引入了GAN。

GAN非常强大。利用正确的数据,网络架构和超参数,您可以生成非常逼真的图像。

将来,一些高级版本的GAN或其他一些内容生成算法可能会让我们做一些很酷的事情:

但GAN是如何运作的呢?

GAN实际上不是一个神经网络,而是两个。其中之一是Generator。它将随机值作为输入并生成图像。

第二是discriminator。它试图确定图像是假的还是真的。

训练GAN就像一场竞赛。Generator试图在愚弄discriminator时变得尽可能好。discriminator试图尽可能地将假图像与真实图像分开。

这将迫使他们两个都改善。理想情况下,这将在某种程度上导致以下情况:

在现实中,您需要确保一切正常(数据、体系结构、超参数)。GAN对超参数值的微小变化非常敏感。

导入库

第一步是导入所有需要的Python库。

FaceGenerator类

这段Python代码初始化了训练所需的一些重要变量。

将训练数据加载到模型中

此函数将文件夹的名称作为输入,并将该文件夹中的所有图像作为numpy数组返回。所有图像的大小都调整为__init__函数中指定的大小。

Shape=(图像的数量,宽度,高度,通道)。

神经网络

这两个函数定义了generator和discriminator。

神经网络模型训练

对于每个epoch:

训练结束后:

此函数可用于在训练后生成新图像。

训练GAN很难,当你成功时,这种感觉会非常有益。

此Python代码可以轻松用于其他图像数据集。请记住,您可能需要编辑网络体系结构和参数,具体取决于您尝试生成的图像。

以上是关于用Keras生成面部Python实现的主要内容,如果未能解决你的问题,请参考以下文章

Keras深度学习实战(23)——DCGAN详解与实现

项目实训 DAY 13

如何用 OpenCVPython 和深度学习实现面部识别?

keras训练实例-python实现

在 PyCharm 上使用 Python 3.8.5 版和 TensorFlow 和 Keras 库构建情商应用程序时遇到问题

一文了解 Python 中的生成器#私藏项目实操分享#