AI 日报

AI美术提示指南:如何用AI提高图像的分辨率

  • By aihubon
  • Nov 07, 2023 - 2 min read



AI美术提示指南:如何用AI提高图像的分辨率

增强型超分辨率生成对抗网络 (ESRGAN) 是 GAN 模型的一种。GAN 模型的主要思想是准备两个一起玩游戏的神经网络。玩家是生成器和鉴别器。第一个是生成数据,第二个必须检查照片是真实的还是假的。

AI美术提示指南:如何用AI提高图像的分辨率

第一步,生成器创建一个新图像。然后鉴别器验证生成的照片是否真实。此时,GAN 计算了两个损失,用于生成器和鉴别器。生成器了解他的图像有多好,鉴别器了解他的验证有多好。

ESRGAN 是具有 vgg19 权重的预训练模型。不要重新发明轮子。(艺术家 DALL-E)

AI美术提示指南:如何用AI提高图像的分辨率

如何为您的目的准备 ESRGAN

首先,您必须将数据集上传到 Google 云端硬盘。在本教程中,我将使用来自 Kaggle 的名为 CalebA 的数据集。该数据集包含超过 20 万张名人面部图像。分辨率为 218×178,具有 3 个通道。

如果你想使用相同的数据集,我建议只上传 10000 张图像。

不过,您可以使用任何您想要的东西!

笔记本

ESRGAN 需要显存容量大的 GPU,所以在教程中,我使用了 Google Colab。您可以在其中更改运行时类型,单击运行时硬件加速器中选择GPU

资料库

现在我们需要使用已实施的 ESRGAN 克隆存储库

!git clone https://github.com/eriklindernoren/PyTorch-GAN%cd PyTorch-GAN/

并安装要求。

!sudo pip3 install -r requirements.txt%cd implementations/esrgan/

加载数据中

然后,我们可以通过命令将 Google Drive 与 Google Colab 连接起来:

from google.colab import drivedrive.mount('/content/drive')

我使用 patool lib 将文件从我的 rar 提取到 Google Colab。

!pip install patoolimport patoolibpatoolib.extract_archive("/content/drive/MyDrive/name_of_your_file.rar", outdir="/content/PyTorch-GAN/data")

重要的 outdir必须"/content/PyTorch-GAN/data"

测试数据集

一个好的做法是拥有一个测试数据集。数据未用于训练模型。要创建测试集,我们可以将一些数据传输data/name_of_your_folderdata/test文件夹。

首先我们必须创建一个新文件夹

!mkdir -p /content/PyTorch-GAN/data/test

之后,我们将一些图像移动到test文件夹中。

import osfrom glob import globpaths = glob("/content/PyTorch-GAN/data/name_of_your_folder/*")samples = 5 # count of photos to movefor no, path in enumerate(paths[:samples]):    os.replace(path, f"/content/PyTorch-GAN/data/test/{no}.jpg")

如果上传的图片数量太大。您可以使用:

import osfrom glob import globpaths = glob("/content/PyTorch-GAN/data/name_of_your_folder/*")samples = 1000 # count of photos to leftfor no, path in enumerate(paths):  if no > samples:    os.remove(path)

训练

让我们训练神经网络吧!

为了训练 ESRGAN 模型,我们必须编写一个带参数的命令:

!python3 esrgan.py --dataset_name 10k --n_epochs 20 --checkpoint_interval 250

可用参数:

--dataset_name您的文件夹名称/content/PyTorch-GAN/data

--n_epochs纪元数(默认 200)

--hr_height输出高度(默认 256)

--hr_width输出宽度(默认 256)

--channesl输入通道(默认 3)

--checkpoint_interval如果你有一个小数据集,我建议将它设置为 250。(默认 5000)

您可以在此处找到其余参数。

在文件夹中,'/content/PyTorch-GAN/implementations/esrgan/images/training您可以找到训练过程中保存的图像。

测试

为了测试我们的模型,我们需要一张图片。我们使用之前传输到文件夹的图像test

from glob import globpaths = glob("/content/PyTorch-GAN/data/test/*")print(path)
/content/PyTorch-GAN/data/test/0.jpg/content/PyTorch-GAN/data/test/1.jpg/content/PyTorch-GAN/data/test/2.jpg/content/PyTorch-GAN/data/test/3.jpg/content/PyTorch-GAN/data/test/4.jpg

我们可以使用以下命令运行模型:

!python3 test_on_image.py --image_path /content/PyTorch-GAN/data/test/0.jpg --checkpoint_model /content/PyTorch-GAN/implementations/esrgan/saved_models/generator_1.pth

可用参数:

--image_path你的形象名称/content/PyTorch-GAN/data/test/0.jpg

--checkpoint_model您训练有素的生成器的名称/content/PyTorch-GAN/implementations/esrgan/saved_models/generator_X.pth

X 替换为最后训练的 epoch 的数量。

您可以在中找到生成的图像/content/PyTorch-GAN/implementations/esrgan/images/outputs/

如果你想将图像复制到你的谷歌云写

!sudo cp -r /content/PyTorch-GAN/implementations/esrgan/images/outputs/sr-name_of_image.jpg /content/drive/MyDrive/

结论

GAN 模型的想法是惊人的,两个神经网络在每个时代一起发挥更好 – 。GANUse a neural network to teach a neural network模型有越来越多的类型,其中一种在教程 ESRGAN 中使用。这些神经网络准备好处理图像并使它们变得更好。这是一个强大的模型,但它也需要大量的计算能力。下面你可以看到 5 个 epoch 和 10000 个训练数据后的结果。它们并不理想,但是如果您将训练过程运行更多的 epoch,结果将会非常棒!去尝试一下!

我希望你喜欢我的教程!

请继续关注未来的教程!

谢谢你!– AI未来百科 ; 探索AI的边界与未来! 懂您的AI未来站

AI美术提示指南:如何用AI提高图像的分辨率

esrgan is released under a CC-BY-NC-ND-4.0 license.ESRGAN – https://arxiv.org/abs/1809.00219author – Xintao Wang, Ke Yu, Shixiang Wu, Jinjin Gu, Yihao Liu, Chao Dong, Chen Change Loy, Yu Qiao, and Xiaoou Tang.