家里没有王位继承?没关系,有人用AI打造了一个童话魔法世界

简介: 家里没矿、没王位,但谁还没有个王子、公主梦?

最近,机器之心收留了一批「在逃王子」。 

微信图片_20211204191954.gif

 

微信图片_20211204192000.gif

微信图片_20211204192006.gif


这些王子虽然来自不同的王国,但服化道都来自同一家公司——快手。

这是快手新推出的「童话魔法」特效。除了王子之外,你也可以过一把当公主的瘾。各路明星纷纷晒出了自己的公主特效形象


「童话魔法」是一项基于生成式算法的视频特效技术,可以让用户在手机端实时预览自己变身公主、王子的神奇效果。生成的图像不仅有着浓浓的童话风格,而且还保留了用户自身的容貌特点,带给用户新奇的拍摄体验。

目前,这套「童话魔法」有冰雪公主、梦幻城堡、童话公主和童话王子等数种画风的变身特效。

不仅如此,用户还能根据自身喜好进一步细化变身后的人物特效,添加风格多样的美妆、美体、滤镜以及封面文字等,还可以更换配乐,或者自己配音并转换成小黄人、机器人、萝莉、大叔等不同风格。


「童话魔法」背后的快手黑科技


真人秒变卡通图早已不是新鲜事。此前,韩国游戏公司 NCSOFT 开发的无监督图像转换算法 U-GAT-IT,通过引入可学习的 ILN 层和注意力机制,成功将人脸图像转换为日漫二次元图像,在业界引起不小的关注。

但是日漫和童话风格差别还是很大的。要想完成童话风格的图像转换,生成的图像既要保留用户原本的容貌特点,还要具备动画的 3D 人像风格,同时还要面临目标风格数据多样性不足的问题,因此 U-GAT-IT 无法满足需求。

而之前名噪一时的 Toonify 似乎也不够用。Toonify 虽然能够完成真人到动画电影角色的转换,但由于该方法直接从微调 StyleGAN 模型中提取低分辨率层,只保留原始 StyleGAN 中的高分辨率层,因此转换得到的图像与原始人脸相比存在形变,不能完全保留原始人脸本身的容貌特点。另外,该方法生成的部分图像面部存在色调变化等问题,且不能进行实时处理,无法满足工业界产品上线的要求。

针对以上这些难题,快手 Y-tech 团队的 AI 工程师采用了自研的 KStyleGAN 结构,在 3D 空间中表征人脸结构、进行风格映射,并采用神经网络渲染来精细控制结果图的质感,有效克服了常规基于 2D 表征的 StyleGAN 方法的缺陷,并在移动端上落地了实时特效。

在模型结构方面,针对移动端和服务端的不同计算硬件,通过半自动网络架构搜索(NAS)得到高效的网络结构,并在此基础上进行诸多创新。

一方面,快手设计了一种 pixel 级别的注意力机制——STA module(风格迁移注意力模块),来改进浅层和深层特征融合方式。常见的特征融合方式包括浅层与深层特征的直接相加、concat 之后进行多次卷积操作等。在风格迁移类任务中,由于原图和目标图的差别较大,这些常见的融合方式往往会导致原图信息的丢失、生成质量不佳或风格感降低等问题。而 STA module 通过少量计算,在 pixel 级别利用注意力引导浅层和深层特征的融合过程,在风格感不变的同时保留更多原图的细节,提升生成图像的质感。

另一方面,快手构建多分支、多深度的 FS block(特征增强模块)来替代传统的 Resnet block 结构。在使用更少计算量的情况下,这一改进对特征细节部分的增强和对整体形变情况的适应能力都更强,能够达到更好的生成效果。

在模型训练方面,快手针对实时风格化任务中的各种效果问题,有针对性地做了调整:

  1. 通过混合训练的方式,加强对风格特征的学习,增强最终模型生成的风格感;
  2. 针对模型金字塔中不同分辨率的特征,设计多任务多尺度的监督,加快模型收敛,提升生成质量与鲁棒性;
  3. 在对抗训练阶段中引入预训练特征以提升判别器对细节纹理的判断能力,同时稳定判别器的训练过程,最终强化模型对细节纹理的生成能力。


特效虽好,如何适配手机端所有机型?


特效虽好用,但面对手机端种类繁多的机型、配置,如何实现设备算力与模型效果的最优适配,进而提供最佳用户体验呢?

快手首先进行了细致的算力分级

由于当前移动端硬件种类繁多,碎片化严重,算力分级面临横向、纵向挑战。横向挑战:设备大类上可分为 CPU、GPU、DSP、NPU 几类,各类之间的算力有所差异,大体上算力等级 NPU≥GPU≥DSP≥CPU,但实际情况中各级算力会有 overlap 甚至反转。纵向挑战:以 CPU 为例,厂商有 Apple、高通、华为、MTK 等,不同厂商、不同型号的 CPU 性能差异很大;GPU 也存在类似情况,如 Adreno 与 Mali 系列。

将碎片化的设备横向与纵向铺展开来会形成一个复杂的算力矩阵,快手自研的深度学习推理引擎 YCNN 配合极致优化的各后端代码在多种模型上进行了理论和实践的充分测试,最终结合快手用户群设计了一套详细的分级方案。

以这一套算力分级策略为指导,快手进行了模型结构、计算量的调整,设计不同计算量的模型。比如为 CPU 设计了效果较好的中等计算量模型,而像 NPU、GPU、DSP 这种适合大算力的设备则可以运行计算量更大、效果更好的模型。

另外,实际应用中多个模型会带来资源包过大、加载过慢的问题,为此快手引入了型服务器分级下发机制。根据终端硬件信息进行设备分级、下发和加载对应模型,充分利用设备算力同时给所有快手用户带来极致的效果体验。

微信图片_20211204192032.jpg

YCNN 整体架构 针对不同的硬件进行分级模型设计,利用其自研算法压缩模型和 YCNN 引擎,快手让每个用户都能玩转「童话魔法」。

让每个人拥有舞台,每个人都拥有「变身」的可能性,这正是快手追求技术突破以及坚持用户导向的体现。

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
SQL 数据采集 数据可视化
需求:公司需要做数据迁移同步,以下是几种常见的ETL工具选型对比
需求:公司需要做数据迁移同步,以下是几种常见的ETL工具选型对比
|
5月前
|
存储 缓存 安全
系统显卡驱动程序卸载工具,DDU中文绿色版下载,免费显卡驱动彻底卸载工具
Display Driver Uninstaller(DDU)是一款专业显卡驱动卸载工具,支持彻底删除AMD/NVIDIA/Intel显卡驱动及相关残留文件,适用于驱动损坏、版本过旧或系统冲突等情况。绿色版无需安装,操作简单,可帮助用户实现干净的驱动环境。
2344 0
|
7月前
|
NoSQL 关系型数据库 MySQL
分布式系统,从CAP定理说起
本文作者笠泱分享了对分布式系统及其核心理论的理解,包括分布式系统的概念、单体架构的局限性以及网络运算常见误区。重点解析了CAP定理(一致性、可用性、分区容错性三者不可兼得)和BASE理论(基本可用、软状态、最终一致性)。同时探讨了如何判定CP与AP系统,并结合Nacos、MySQL、Redis等实例分析其特性。最后总结分布式架构设计需关注高可用、高性能等六大指标,强调微服务与分布式解决方案的重要性。
613 14
|
机器学习/深度学习 人工智能 搜索推荐
AI时代下的个人发展之路:通过多栈变革实现跨越式成长
随着人工智能(AI)技术的飞速发展,企业和个人面临着前所未有的机遇和挑战。在AI时代,多栈变革成为推动企业和个人发展的关键。对企业而言,AI不仅促进了数据驱动的决策和智能自动化,还推动了产品创新和业务流程优化。而对于个人,AI的崛起提供了通过跨界学习、掌握多项技能及使用AI工具提升效率的机会。本文探讨了AI如何通过多栈变革推动企业和个人的全方位发展,同时也分析了面临的挑战与未来展望。在这个智能化、数据化的时代,只有不断学习与适应的企业和个人,才能抓住AI带来的机遇,迎接更加智能化的未来。
|
关系型数据库 MySQL 数据库
连接MySQL时报错:Public Key Retrieval is not allowed的解决方法
连接MySQL时报错:Public Key Retrieval is not allowed的解决方法
2076 1
|
10月前
|
存储 缓存 小程序
微信小程序数据缓存与本地存储:优化用户体验
本文深入探讨微信小程序的数据缓存与本地存储,介绍其意义、机制及应用场景。通过合理使用内存和本地缓存,可减少网络请求、提升加载速度和用户体验。文中详细讲解了常用缓存API的使用方法,并通过一个新闻列表案例展示了缓存的实际应用。最后提醒开发者注意缓存大小限制、时效性和清理,以确保最佳性能。
|
并行计算 Java API
Java8实战-CompletableFuture:组合式异步编程
Java8实战-CompletableFuture:组合式异步编程
255 0
|
API 语音技术 开发者
基于开源技术的数字人实时对话:形象可自定义,支持语音输入,对话首包延迟可低至3s
魔搭社区最近上线了基于开源技术的数字人实时对话demo,无需预训练即可使用自定义的数字人形象进行实时对话,支持语音输入和实时对话。
|
存储 C++ 容器
C++ 第九节——map/set(用法+底层原理+模拟实现)
们需要知道的是,Map和Set的底层都是红黑树。
1246 1
C++ 第九节——map/set(用法+底层原理+模拟实现)
|
开发框架 .NET API
如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?
如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?
665 0