GPEN|人像修复增强

GPEN算法会对图像中的每一个检测到的人像做修复和增强,对图像中的非人像区域采用RealESRNet做两倍的超分辨率,最终返回修复后的完整图像。 不止是修复和增强,其它多项指标也达到行业领先的效果。

GPEN|人像修复增强

GPEN人像修复图像画质增强模型

该模型全称为cv_gpen_image-portrait-enhancement,输入一张包含人像的图像,算法会对图像中的每一个检测到的人像做修复和增强,对图像中的非人像区域采用RealESRNet做两倍的超分辨率,最终返回修复后的完整图像。

GPEN将预训练好的StyleGAN2网络作为decoder嵌入到人像修复模型中,并通过finetune的方式最终实现修复功能,在多项指标上达到行业领先的效果。

适用范围

本模型适用范围较广,给定任意的包含人像的图片,在设备性能允许的情况下,都能输出修复后的效果图。

如何使用

在ModelScope框架上,提供任意图片,即可以通过简单的Pipeline调用来使用人像修复模型。

前置条件

在执行项目安装之前,我们还需要安装Git和Conda,如果您的电脑还未安装这两个软件,请先根据本站所给出的教程安装。

Windows系统安装Git请参阅此文章:

Windows系统安装Conda请参阅此文章:

安装教程

如果您是初学者,对于命令行不太理解,那么请按下键盘上的Win键+R键后,在弹出的新窗口内输入CMD并按下回车,打开CMD窗口,按顺序执行如下的每一条命令。

首先我们需要确认一个工作目录,用来存放cv_gpen_image-portrait-enhancement的相关环境依赖文件。本站所选择的目录为D盘的根目录下openai.wiki文件夹,完整路径为:D:\openai.wiki

检测D盘是否在openai.wiki目录下有没有cv_gpen_image-portrait-enhancement文件夹,没有则创建该文件夹。

if not exist D:\openai.wiki\cv_gpen_image-portrait-enhancement mkdir D:\openai.wiki\cv_gpen_image-portrait-enhancement

强制切换工作路径为D盘的openai.wiki\cv_gpen_image-portrait-enhancement文件夹。

cd /d D:\openai.wiki\cv_gpen_image-portrait-enhancement

环境部署

在CMD中执行下面的命令行,创建Conda虚拟环境至该项目的目录中,方便日后重装系统也能够正常使用,无需重新部署环境。

conda create -y -p D:\openai.wiki\cv_gpen_image-portrait-enhancement\ENV python=3.7

初始化Conda环境,避免后续可能报错。

conda init cmd.exe

激活已创建的Conda环境,这样我们可以将我们后续所需要的所有环境依赖都安装至此环境下。

conda activate D:\openai.wiki\cv_gpen_image-portrait-enhancement\ENV

执行如下命令,安装阿里达摩院相关依赖。

pip install modelscope

执行如下命令,安装CV2依赖库。

pip install opencv-python

执行如下命令,安装torch依赖。

pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsing

此时我们还需要安装一个scikit-image库,执行如下代码即可。

pip install scikit-image

模型下载

在你首次运行生成代码时,将会自动下载模型,因为下载方式是国内直连,所以下载速度还是挺快的,毕竟是阿里提供的服务。

如果你想找到模型的存在位置,可以在运行中执行以下代码,这将会自动打开ModelScope的各项目缓存目录,模型就在这些目录内。

%USERPROFILE%\.cache\modelscope\hub\damo\cv_gpen_image-portrait-enhancement

如果你不希望自动下载,而是通过国内网盘的方式,本站也提供了模型的网盘下载地址。

cv_gpen_image-portrait-enhancement

提取密码 文件说明 文件大小 955.30MB 文件格式 RAR 资源价格 免费 下载次数 1

使用教程

此模型官方并未给出一个详细的脚本,本站写了一个简单的Python脚本,使用VSCode运行该Python脚本即可。在运行该脚本之前,请先对以下Python脚本中的名称格式路径根据自身情况进行修改。

注意:使用VS Code执行该脚本时,VS Code会提示您选择一个Python环境,此时您可以选择路径为D:\openai.wiki\cv_gpen_image-portrait-enhancement\ENV的Python环境,这就是我们刚刚使用Conda所生成的虚拟环境。

# 此脚本由openai.wiki提供,转载请注明出处,谢谢配合。
import cv2
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

# 原图名称
resultIMGName = '图像名称'
# 原图格式
resultIMGFormat = '.jpg'
# 原图路径
resultIMGPath = 'D:\openai.wiki\cv_gpen_image-portrait-enhancement'

# 输出图像名称
outputIMGName = '图像名称'
# 输出格式 | 尽量不要改
outputFormat = '.png'
# 输出路径
outputIMGPath = 'D:\openai.wiki\cv_gpen_image-portrait-enhancement'

# 下面的内容尽量不要改动
print (('原图路径:%s/%s%s'%(resultIMGPath,resultIMGName,resultIMGFormat)).replace('\\', '/'))
p = pipeline(Tasks.image_portrait_enhancement, model='damo/cv_gpen_image-portrait-enhancement')
result = p(('%s/%s%s'%(resultIMGPath,resultIMGName,resultIMGFormat)).replace('\\', '/'))

output_path = ('%s/%s%s'%(outputIMGPath,outputIMGName,outputFormat)).replace('\\', '/')
print (('输出路径:%s/%s%s'%(outputIMGPath,outputIMGName,resultIMGFormat)).replace('\\', '/'))
cv2.imwrite(output_path, result['output_img'])
print ('输出完成')

效果示例

下面是一些图像使用效果示例,本站通过对多种使用环境进行对比发现,该模型对于人脸大部照效果较好,但是对于动物和远景等情况下所修复的效果较为一般。

模型局限性以及可能的偏差

  • 目前提供的模型只支持512×512分辨率的输入,如果输入人脸分辨率或清晰度高于此,使用本模型可能会导致生成降质效果。
  • 真实图片的降质很复杂,本算法使用模拟降质数据训练,可能存在处理不好的case。
  • 本算法可能存在色偏等瑕疵现象。

训练数据

训练数据为FFHQ公开数据集。本算法采用监督式的训练,因此需要事先准备好高质-低质的数据对,推荐使用RealESRGAN、BSRGAN等降质方式进行低质数据生成。

微调流程

提供训练数据对的读取地址,设置好需要的分辨率版本(推荐512×512),调整生成器和判别器的学习率以及总epoch数,即可开始训练。

预处理

需要使用降质模型对FFHQ高清人像数据做降质,得到相对应的低质图片。

模型训练代码

# Copyright (c) Alibaba, Inc. and its affiliates.
import os
import tempfile

from modelscope.metainfo import Trainers
from modelscope.msdatasets import MsDataset
from modelscope.msdatasets.task_datasets.image_portrait_enhancement import \
    ImagePortraitEnhancementDataset
from modelscope.trainers import build_trainer
from modelscope.utils.constant import DownloadMode


tmp_dir = tempfile.TemporaryDirectory().name
if not os.path.exists(tmp_dir):
    os.makedirs(tmp_dir)

model_id = 'damo/cv_gpen_image-portrait-enhancement'

dataset_train = MsDataset.load(
    'image-portrait-enhancement-dataset',
    namespace='modelscope',
    subset_name='default',
    split='train',
    download_mode=DownloadMode.REUSE_DATASET_IF_EXISTS)._hf_ds
dataset_val = MsDataset.load(
    'image-portrait-enhancement-dataset',
    namespace='modelscope',
    subset_name='default',
    split='validation',
    download_mode=DownloadMode.REUSE_DATASET_IF_EXISTS)._hf_ds

dataset_train = ImagePortraitEnhancementDataset(
    dataset_train, is_train=True)
dataset_val = ImagePortraitEnhancementDataset(
    dataset_val, is_train=False)

kwargs = dict(
        model=model_id,
        train_dataset=dataset_train,
        eval_dataset=dataset_val,
        device='gpu',
        work_dir=tmp_dir)

trainer = build_trainer(
    name=Trainers.image_portrait_enhancement, default_args=kwargs)
trainer.train()

数据评估及结果

MetricValue
FID31.72
PSNR20.80
LPIPS0.346

相关论文以及引用信息

@inproceedings{yang2021gpen,
    title={GAN Prior Embedded Network for Blind Face Restoration in the Wild},
    author={Tao Yang, Peiran Ren, Xuansong Xie, and Lei Zhang},
    booktitle={IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
    year={2021}
}

此文章由OpenAI开源维基百科原创发布,如若转载请注明出处:https://openai.wiki/cv_gpen_image-portrait-enhancement.html

(0)
上一篇 2023-06-01 22:48
下一篇 2023-06-08 12:07

相关推荐

  • Topaz Gigapixel AI|6.1.0免安装便携完整版下载

    本文介绍了如何下载Topaz Gigapixel AI,以及如何使用该软件进行图像放大的详细教程。您可以通过阅读本文了解如何使用Topaz Gigapixel AI软件对图像进行放大。

    画质增强 2022-12-14
    002.2K
  • Topaz Gigapixel AI

    Topaz Gigapixel AI是一款基于AI智能算法和艺术智能引擎打造的图像优化工具,能够帮助用户轻松批量调整图像大小,并保证图像画质不受损失,还可进行低像素高清化和自动色彩处理。

    2022-12-14
    022.7K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

微信