目录
相关工作
基于自适应混合金字塔的局部修图框架
实验结果

效果展示
首页 科技周边 人工智能 一键抹去瑕疵、褶皱:深入解读达摩院高清人像美肤模型ABPN

一键抹去瑕疵、褶皱:深入解读达摩院高清人像美肤模型ABPN

Apr 12, 2023 pm 12:25 PM
ai 图像

随着数字文化产业的蓬勃发展,人工智能技术开始广泛应用于图像编辑和美化领域。其中,人像美肤无疑是应用最广、需求最大的技术之一。传统美颜算法利用基于滤波的图像编辑技术,实现了自动化的磨皮去瑕疵效果,在社交、直播等场景取得了广泛的应用。

然而,在门槛较高的专业摄影行业,由于对图像分辨率以及质量标准的较高要求,人工修图师还是作为人像美肤修图的主要生产力,完成包括匀肤、去瑕疵、美白等一系列工作。通常,一位专业修图师对一张高清人像进行美肤操作的平均处理时间为 1-2 分钟,在精度要求更高的广告、影视等领域,该处理时间则更长。


相较于互娱场景的磨皮美颜,广告级、影楼级的精细化美肤给算法带来了更高的要求与挑战。一方面,瑕疵种类众多,包含痘痘、痘印、雀斑、肤色不均等,算法需要对不同瑕疵进行自适应地处理;另一方面,在去除瑕疵的过程中,需要尽可能的保留皮肤的纹理、质感,实现高精度的皮肤修饰;最后也是十分重要的一点,随着摄影设备的不断迭代,专业摄影领域目前常用的图像分辨率已经达到了 4K 甚至 8K,这对算法的处理效率提出了极其严苛的要求。

因此,我们以实现专业级的智能美肤为出发点,研发了一套高清图像的超精细局部修图算法 ABPN,在超清图像中的美肤与服饰去皱任务中都实现了很好的效果与应用。

  • 论文:https://openaccess.thecvf.com/content/CVPR2022/papers/Lei_ABPN_Adaptive_Blend_Pyramid_Network_for_Real-Time_Local_Retouching_of_CVPR_2022_paper.pdf

  • 模型 & 代码:https://www.modelscope.cn/models/damo/cv_unet_skin-retouching/summary



相关工作

3.1 传统美颜算法


传统美颜算法的核心就是让皮肤区域的像素变得更平滑,降低瑕疵的显著程度,从而使皮肤看起来更加光滑。一般来说,现有的美颜算法可划分为三步:1)图像滤波算法,2)图像融合,3)锐化。整体流程如下:


图片

其中为了实现皮肤区域的平滑,同时保留图像中的边缘,传统美颜算法首先使用保边滤波器(如双边滤波、导向滤波等)来对图像进行处理。不同于常用的均值滤波、高斯滤波,保边滤波器考虑了不同区域像素值的变化,对像素变化较大的边缘部分以及变化较为平缓的中间区域像素采取不同的加权,从而实现对于图像边缘的保留。而后,为了不影响背景区域,分割检测算法通常被用于定位皮肤区域,引导原图与平滑后的图像进行融合。最后,锐化操作可以进一步提升边缘的显著性以及感官上的清晰度。下图展示了目前传统美颜算法的效果:


图片

原图像来自 unsplash [31]

从效果来看,传统美颜算法存在两大问题:1)对于瑕疵的处理是非自适应的,无法较好的处理不同类型的瑕疵。2)平滑处理造成了皮肤纹理、质感的丢失。这些问题在高清图像中尤为明显。

3.2 现有深度学习算法


为了实现皮肤不同区域、不同瑕疵的自适应修饰,基于数据驱动的深度学习算法似乎是更好的解决方案。考虑任务的相关性,我们对 Image-to-Image Translation、Photo Retouching、Image Inpainting、High-resolution Image Editing 这四类现有方法对于美肤任务的适用性进行了讨论和对比。

  • 3.2.1 Image-to-Image Translation


图像翻译 (Image-to-Image Translation) 任务最开始由 pix2pix [1] 所定义,其将大量计算机视觉任务总结为像素到像素的预测任务,并且提出了一个基于条件生成对抗网络的通用框架来解决这类问题。基于 pix2pix [1],各类方法被陆续提出以解决图像翻译问题,其中包括利用成对数据 (paired images) 的方法 [2,3,4,5] 以及利用非成对数据 (unpaired images)的方法 [6,7,8,9]。一些工作聚焦于某些特定的图像翻译任务(比如语义图像合成 [2,3,5],风格迁移等 [9,10,11,12]),取得了令人印象深刻效果。然而,上述大部分的图像翻译主要关注于图像到图像的整体变换,缺乏对于局部区域的注意力,这限制了其在美肤任务中的表现。

  • 3.2.2 Photo Retouching


受益于深度卷积神经网络的发展,基于学习的方法 [13,14,15,16] 近年来在修图领域展现了出色的效果。然而,与大多数图像翻译方法相似的是,现有的 retouching 算法主要聚焦于操控图像的一些整体属性,比如色彩、光照、曝光等。很少关注局部区域的修饰,而美肤恰恰是一个局部修饰任务(Local Photo Retouching),需要在修饰目标区域的同时,保持背景区域不动。

  • 3.2.3 Image Inpainting


图像补全 (image inpainting) 算法常用于对图像缺失的部分进行补全生成,与美肤任务有着较大的相似性。凭借着强大的特征学习能力,基于深度生成网络的方法 [17,18,19,20] 这些年在 inpainting 任务中取得了巨大的进步。然而,inpainting 方法依赖于目标区域的 mask 作为输入,而在美肤以及其他局部修饰任务中,获取精确的目标区域 mask 本身就是一个非常具有挑战性的任务。因而,大部分的 image inpainting 任务无法直接用于美肤。近年来,一些 blind image inpainting 的方法 [21,22,23] 摆脱了对于 mask 的依赖,实现了目标区域的自动检测与补全。尽管如此,同大多数其他 image inpainting 方法一样,这些方法存在两个问题:a) 缺乏对于目标区域纹理及语义信息的充分利用,b) 计算量较大,难以应用于超高分辨率图像。

  • 3.2.4 High-resolution Image Editing


为了实现高分辨率图像的编辑,[15,24,25,26] 等方法通过将主要的计算量从高分辨率图转移到低分辨率图像中,以减轻空间和时间的负担。尽管在效率上取得了出色的表现,由于缺乏对于局部区域的关注,其中大部分方法都不适用于美肤这类局部修饰任务。
综上,现有的深度学习方法大都难以直接应用于美肤任务中,主要原因在于缺乏对局部区域的关注或者是计算量较大难以应用于高分辨率图像。

基于自适应混合金字塔的局部修图框架


美肤本质在于对图像的编辑,不同于大多数其他图像转换任务的是,这种编辑是局部的。与其相似的还有服饰去皱,商品修饰等任务。这类局部修图任务具有很强的共通性,我们总结其三点主要的困难与挑战:1)目标区域的精准定位。2)具有全局一致性以及细节保真度的局部生成(修饰)。3)超高分辨率图像处理。为此,我们提出了一个基于自适应混合金字塔的局部修图框架(ABPN: Adaptive Blend Pyramid Network for Real-Time Local Retouching of Ultra High-Resolution Photo, CVPR2022,[27]),以实现超高分辨率图像的精细化局部修图,下面我们对其实现细节进行介绍。

4.1 网络整体结构


图片


如上图所示,网络结构主要由两个部分组成:上下文感知的局部修饰层(LRL)和自适应混合金字塔层(BPL)。其中 LRL 的目的是对降采样后的低分辨率图像进行局部修饰,生成低分辨率的修饰结果图,充分考虑全局的上下文信息以及局部的纹理信息。进一步,BPL 用于将 LRL 中生成的低分辨率结果逐步向上拓展到高分辨率结果。其中,我们设计了一个自适应混合模块(ABM)及其逆向模块(R-ABM),利用中间混合图层 Bi,可实现原图与结果图之间的自适应转换以及向上拓展,展现了强大的可拓展性和细节保真能力。我们在脸部修饰及服饰修饰两个数据集中进行了大量实验,结果表明我们的方法在效果和效率上都大幅度地领先了现有方法。值得一提的是,我们的模型在单卡 P100 上实现了 4K 超高分辨率图像的实时推理。下面,我们对 LRL、BPL 及网络的训练 loss 分别进行介绍。

4.2 上下文感知的局部修饰层(Context-aware Local Retouching Layer)


在 LRL 中,我们想要解决三中提到的两个挑战:目标区域的精准定位以及具有全局一致性的局部生成。如 Figure 3 所示,LRL 由一个共享编码器、掩码预测分支 (MPB) 以及局部修饰分支 (LRB) 构成。


图片

图片

总得来说,我们使用了一个多任务的结构,以实现显式的目标区域预测,与局部修饰的引导。其中,共享编码器的结构可以利用两个分支的共同训练优化特征,提高修饰分支对于目标全局的语义信息和局部的感知。大多数的图像翻译方法使用传统的 encoder-decoder 结构直接实现局部的编辑,没有将目标定位与生成进行解耦,从而限制了生成的效果(网络的容量有限),相比之下多分支的结构更利于任务的解耦以及互利。在局部修饰分支 LRB 中我们设计了 LAM(Figure 4),将空间注意力机制与特征注意力机制同时作用,以实现特征的充分融合以及目标区域的语义、纹理的捕捉。消融实验(Figure 6)展现了各个模块设计的有效性。

4.3 自适应混合金字塔层(Adaptive Blend Pyramid Layer)


LRL 在低分辨率上实现了局部修饰,如何将修饰的结果拓展到高分辨率同时增强其细节保真度?这是我们在这部分想要解决的问题。

  • 4.3.1 自适应混合模块(Adaptive Blend Module)


在图像编辑领域,混合图层(blend layer)常被用于与图像(base layer)以不同的模式混合以实现各种各样的图像编辑任务,比如对比度的增强,加深、减淡操作等。通常地,给定一张图片图片,以及一个混合图层图片,我们可以将两个图层进行混合得到图像编辑结果图片,如下:


图片


其中 f 是一个固定的逐像素映射函数,通常由混合模式所决定。受限于转化能力,一个特定的混合模式及固定的函数 f 难以直接应用于种类多样的编辑任务中去。为了更好的适应数据的分布以及不同任务的转换模式,我们借鉴了图像编辑中常用的柔光模式,设计了一个自适应混合模块 (ABM),如下:


图片

表示 Hadmard product,为可学习的参数,被网络中所有的 ABM 模块以及接下来的 R-ABM 模块所共享,表示所有值为 1 的常数矩阵。


  • 4.3.2 逆向自适应混合模块(Reverse Adaptive Blend Module)

,为了得到混合图层 B,我们对公式 3 进行求解,构建了一个逆向自适应混合模块 (R-ABM),如下:


图片

总的来说,通过利用混合图层作为中间媒介,ABM 模块和 R-ABM 模块实现了图像 I 和结果 R 之间的自适应转换,相比于直接对低分辨率结果利用卷积上采样等操作进行向上拓展(如 Pix2PixHD),我们利用混合图层来实现这个目标,有其两方面的优势:1)在局部修饰任务中,混合图层主要记录了两张图像之间的局部转换信息,这意味着其包含更少的无关信息,且更容易由一个轻量的网络进行优化。2)混合图层直接作用于原始图像来实现最后的修饰,可以充分利用图像本身的信息,进而实现高度的细节保真。


图片


实际上,关于自适应混合模块有许多可供选择的函数或者策略,我们在论文中对设计的动机以及其他方案的对比进行了详细介绍,这里不进行更多的阐述了,Figure 7 展示了我们的方法和其他混合方法的消融对比。


4.3.3 Refining Module

图片

4.4 损失函数

图片

实验结果


5.1 与 SOTA 方法对比

图片

5.2 消融实验

图片

5.3 运行速度与内存消耗

图片

效果展示


美肤效果展示:


图片

原图像来自 unsplash [31]

图片

原图像来自人脸数据集 FFHQ [32]


可以看到,相较于传统的美颜算法,我们提出的局部修图框架在去除皮肤瑕疵的同时,充分的保留了皮肤的纹理和质感,实现了精细、智能化的肤质优化。进一步,我们将该方法拓展到服饰去皱领域,也实现了不错的效果,如下:


图片


图片


以上是一键抹去瑕疵、褶皱:深入解读达摩院高清人像美肤模型ABPN的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

centos关机命令行 centos关机命令行 Apr 14, 2025 pm 09:12 PM

CentOS 关机命令为 shutdown,语法为 shutdown [选项] 时间 [信息]。选项包括:-h 立即停止系统;-P 关机后关电源;-r 重新启动;-t 等待时间。时间可指定为立即 (now)、分钟数 ( minutes) 或特定时间 (hh:mm)。可添加信息在系统消息中显示。

如何检查CentOS HDFS配置 如何检查CentOS HDFS配置 Apr 14, 2025 pm 07:21 PM

检查CentOS系统中HDFS配置的完整指南本文将指导您如何有效地检查CentOS系统上HDFS的配置和运行状态。以下步骤将帮助您全面了解HDFS的设置和运行情况。验证Hadoop环境变量:首先,确认Hadoop环境变量已正确设置。在终端执行以下命令,验证Hadoop是否已正确安装并配置:hadoopversion检查HDFS配置文件:HDFS的核心配置文件位于/etc/hadoop/conf/目录下,其中core-site.xml和hdfs-site.xml至关重要。使用

CentOS上GitLab的备份方法有哪些 CentOS上GitLab的备份方法有哪些 Apr 14, 2025 pm 05:33 PM

CentOS系统下GitLab的备份与恢复策略为了保障数据安全和可恢复性,CentOS上的GitLab提供了多种备份方法。本文将详细介绍几种常见的备份方法、配置参数以及恢复流程,帮助您建立完善的GitLab备份与恢复策略。一、手动备份利用gitlab-rakegitlab:backup:create命令即可执行手动备份。此命令会备份GitLab仓库、数据库、用户、用户组、密钥和权限等关键信息。默认备份文件存储于/var/opt/gitlab/backups目录,您可通过修改/etc/gitlab

centos安装mysql centos安装mysql Apr 14, 2025 pm 08:09 PM

在 CentOS 上安装 MySQL 涉及以下步骤:添加合适的 MySQL yum 源。执行 yum install mysql-server 命令以安装 MySQL 服务器。使用 mysql_secure_installation 命令进行安全设置,例如设置 root 用户密码。根据需要自定义 MySQL 配置文件。调整 MySQL 参数和优化数据库以提升性能。

CentOS上PyTorch的GPU支持情况如何 CentOS上PyTorch的GPU支持情况如何 Apr 14, 2025 pm 06:48 PM

在CentOS系统上启用PyTorchGPU加速,需要安装CUDA、cuDNN以及PyTorch的GPU版本。以下步骤将引导您完成这一过程:CUDA和cuDNN安装确定CUDA版本兼容性:使用nvidia-smi命令查看您的NVIDIA显卡支持的CUDA版本。例如,您的MX450显卡可能支持CUDA11.1或更高版本。下载并安装CUDAToolkit:访问NVIDIACUDAToolkit官网,根据您显卡支持的最高CUDA版本下载并安装相应的版本。安装cuDNN库:前

docker原理详解 docker原理详解 Apr 14, 2025 pm 11:57 PM

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

CentOS中GitLab的数据库如何选择 CentOS中GitLab的数据库如何选择 Apr 14, 2025 pm 05:39 PM

在CentOS系统上安装和配置GitLab时,数据库的选择至关重要。GitLab兼容多种数据库,但PostgreSQL和MySQL(或MariaDB)最为常用。本文将分析数据库选择因素,并提供详细的安装和配置步骤。数据库选择指南选择数据库需要考虑以下因素:PostgreSQL:GitLab的默认数据库,功能强大,可扩展性高,支持复杂查询和事务处理,适合大型应用场景。MySQL/MariaDB:广泛应用于Web应用的流行关系型数据库,性能稳定可靠。MongoDB:NoSQL数据库,擅长处

CentOS下GitLab的日志如何查看 CentOS下GitLab的日志如何查看 Apr 14, 2025 pm 06:18 PM

CentOS系统下查看GitLab日志的完整指南本文将指导您如何查看CentOS系统中GitLab的各种日志,包括主要日志、异常日志以及其他相关日志。请注意,日志文件路径可能因GitLab版本和安装方式而异,若以下路径不存在,请检查GitLab安装目录及配置文件。一、查看GitLab主要日志使用以下命令查看GitLabRails应用程序的主要日志文件:命令:sudocat/var/log/gitlab/gitlab-rails/production.log此命令会显示produc

See all articles