影楼精修-露齿笑算法解析

注意,为避免侵权,本文图片均为AIGC生成或网络公开数据;

像素蛋糕-露齿笑

在介绍本文之前,先说一下,其实露齿笑特效,并非像素蛋糕首创,早在几年前,face app就率先推出了这个效果,本人也是之前做过相关的算法研究与实践,所以,今天应部分小伙伴的要求,对这个效果算法实现做个讲解。

我们开门见山,直接介绍像素蛋糕的表情管理模块算法实现。

像素蛋糕的表情管理功能主要是笑容管理模块,包含两个子功能:露齿笑和抿嘴笑。两个功能的界面如下所示:

两个功能体验:

1.露齿笑包含5个程度的调节,微笑的强度从1-5,整体上无论从体验上还是从技术上来看,它的实现都并非是一次完成的,每一个程度都需要重新制作;

2.抿嘴笑功能仅有一个滑杆,用于控制抿嘴嘴角微笑的程度,这个功能仅仅是一个基于点位的人脸微笑变形功能,对于这个功能,相对没有太多技术含量,这里就暂时不在过多介绍了。

露齿笑算法

像素蛋糕的露齿笑,由于用户照片不管是闭嘴还是张嘴,不管是露牙齿还是不露牙齿的,只要做了露齿笑,必然会生成露齿效果,而且这个牙齿是算法生成出来的,与用户牙齿不相关,因此,露齿笑算法必然是一个生成式AI算法;

个人猜测,每个程度对应会调用一次露齿笑算法推理,这个算法可能有两种形式

①多模型,1-5的强度分别对应5个露齿笑模型,输出不同强度的微笑效果;

②单模型+条件输出,1-5的强度条件,分别对应不同强度的微笑效果输出;

有了上面的猜测,从作者本人的经验角度来看,给出如下解决方案:

1.使用GAN网络来实现露齿效果,一般而言,对于人脸特效类,比如人脸变形(真人迪士尼,皮克斯等),动漫类基本都可通过GAN来实现,而且可以很方便的实现,甚至做到手机端实时处理(比如抖音快手app中各种实时漫画脸特效);

2.数据集构建,露齿笑算法最大的难点在于数据集的构建,这里我们可以针对不同程度的露齿效果,每个程度准备200张效果图,可以从网络爬取或其他方式获得,然后,使用200张效果图,微调StyleGAN,得到露齿笑的StyleGAN模型,用StyleGAN模型来生成人脸露齿笑的大量成对数据(原图+露齿笑效果图)。

注意,这里有一个trick,由于StyleGAN制作的成对数据实际上是伪成对数据,原图和效果图并非一一对应,会存在一定的差异,这里,我们可以使用人脸点位你和嘴巴区域,将非嘴巴区域保留原图,嘴巴区域逐渐渐变为效果图,这样即可构建出相对质量较高的成对数据;同时,对于人脸特效类,必须要进行人脸对齐,这样可以降低训练难度,提升效果精度。这里本人测试,构建1.5W数据集;

数据集举例如下:

3.网络构建,我们最直接的,选择单模型+条件输出的解决方案,选择CGAN,网络输入为原图+label,原图大小比如512×512×3,label=1,2,3,4,5,对应输出分别为5个程度的微笑效果图;网络架构为U-net,Loss使用VGG感知损失+人脸laplace边缘loss+ssim颜色loss等;

按照上述方案进行验证,最终效果如下:

可以看到,本人的方案效果达到了像素蛋糕类似的露齿笑效果;

类似的,该方案还适用于各类表情特效(哭脸,大笑等),后续不再累赘。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/903985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Python:7. Python数据库操作

一、sqlite3(轻量级本地数据库) sqlite3 是 Python 内置的模块,用于操作 SQLite 数据库。 SQLite 是一个轻量级、零配置的关系型数据库系统,整个数据库保存在一个文件中,适合小型项目和本地存储。 SQLite 不需要安装…

c++互斥锁,竞争状态与临界区

竞争状态与临界区 1,基本互斥锁2,try_lock3,互斥锁存在的坑—线程抢占不到资源4,超时锁5,递归锁(在一个线程内可以多次lock的锁)recursive_mutex和recursive_timed_mutex用于业务组合6&#xff…

实战项目:基于控制台与数据库的图书管理系统开发指南

一、项目概述与设计思路 1.1 为什么选择图书管理系统 图书管理系统是学习编程的经典项目,它涵盖了: 控制台交互:学习用户输入输出处理 数据库操作:掌握CRUD核心功能 业务逻辑:理解实际应用场景 系统架构&#xff…

人工智能——层次聚类算法

目录 摘要 18 层次聚类 18.1 本章工作任务 18.2 本章技能目标 18.3 本章简介 18.4 编程实战 18.5 本章总结 18.6 本章作业 本章已完结!!! 摘要 本章实现的工作是:首先导入20名学生的3科成绩,然后根据优先聚…

Linux中安装mysql8,转载及注意事项

一、先前往官网下载mysql8 下载地址: https://dev.mysql.com/downloads/选择Linux 二、删除Linux中的mysql(如果有的话),上传安装包 1、先查看mysql是否存在,命令如下: rpm -qa|grep -i mysql如果使用这…

《算法导论(第4版)》阅读笔记:p4-p5

《算法导论(第4版)》学习第 3 天,p4-p5 总结,总计 2 页。 一、技术总结 1.instance Thus, given the input sequence h31; 41; 59; 26; 41; 58i, a correct sorting algorithm returns as output the sequence h26; 31; 41; 41; 58; 59i. Such an inp…

第十四篇:系统分析师第三遍——15章

目录 一、目标二、计划三、完成情况四、意外之喜(最少2点)1.计划内的明确认知和思想的提升标志2.计划外的具体事情提升内容和标志 五、总结六、后面准备怎么做? 一、目标 通过参加考试,训练学习能力,而非单纯以拿证为目的。 1.在复习过程中&…

Easy云盘总结篇-登录注册

**说在前面:该项目是跟着B站一位大佬写的,不分享源码,支持项目付费 ** 获取图形验证码 可以看到这里有2两种图形验证码,分为: type0:如上图下面那个,是完成操作后要进行注册的验证码 type1: 如…

【前端知识】Vue3状态组件Pinia详细介绍

Vue3状态组件Pinia详细介绍 关联知识 Pinia 组件介绍、核心原理及使用方式 Pinia 组件介绍 Pinia 是 Vue.js 的官方状态管理库,专为 Vue 3 设计,提供简洁的 API 和强大的 TypeScript 支持。其核心组件包括: • Store:状态存储容器…

mysql 云服务远程linux创建数据库

1. 本地使用已创建好的用户创建数据库出现问题 提示access deniey finalshell远程创建新用户 :~# mysql -u root -pR***34 > CREATE DATABASE r***e; > CREATE USER r**ue% IDENTIFIED BY Ry****34; > GRANT ALL PRIVILEGES ON ry_vue.* TO r***e%; > FLUSH PRI…

【“星瑞” O6 评测】 — CPU llama.cpp不同优化速度对比

前言 随着大模型应用场景的不断拓展,arm cpu 凭借其独特优势在大模型推理领域的重要性日益凸显。它在性能、功耗、架构适配等多方面发挥关键作用,推动大模型在不同场景落地 1. Kleidi AI 简介 Arm Kleidi 成为解决这些挑战的理想方案,它能…

wireshark抓包也能被篡改?

wireshark本身并不能修改数据包,但是tcprewrite 可以修改数据包,然后通过tcpreplay 进行重放,这个时候wireshark抓的包,就是被篡改后的pcap包了。 ailx10 网络安全优秀回答者 互联网行业 安全攻防员 去咨询 步骤一&#xff1a…

使用PyTorch进行热狗图像分类模型微调

本教程将演示如何使用PyTorch框架对预训练模型进行微调,实现热狗与非热狗图像的分类任务。我们将从数据准备开始,逐步完成数据加载、可视化等关键步骤。 1. 环境配置与库导入 %matplotlib inline import os import torch from torch import nn from d2l…

内容中台与企业内容管理核心差异剖析

功能定位与架构设计差异 在企业数字化进程中,内容中台与企业内容管理(ECM)的核心差异首先体现在功能定位层面。传统ECM系统以文档存储、版本控制及权限管理为核心,主要服务于企业内部知识库的静态管理需求,例如通过Ba…

使用PyMongo连接MongoDB的基本操作

MongoDB是由C语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,它的字段值可以包含其他文档、数组及文档数组。在这一节中,我们就来回顾Python 3下MongoDB的存储操作。 常用命令:…

第 12 届蓝桥杯 C++ 青少组中 / 高级组省赛 2021 年真题

一、选择题 第 1 题 题目:下列符号中哪个在 C 中表示行注释 ( )。 A. ! B. # C. ] D. // 正确答案:D 答案解析: 在 C 中,//用于单行注释(行注释),从//开始到行末的内容会被编译器忽略。选项 A…

【python】【UV】一篇文章学完新一代 Python 环境与包管理器使用指南

🐍 UV:新一代 Python 环境与包管理器使用指南 一、UV 是什么? UV 是由 Astral 团队开发的高性能 Python 环境管理器,旨在统一替代 pyenv、pip、venv、pip-tools、pipenv 等工具。 1.1 UV 的主要功能 🚀 极速包安装&…

前端性能优化2:结合HTTPS与最佳实践,全面优化你的网站性能

点亮极速体验:结合HTTPS与最佳实践,为你详解网站性能优化的道与术 在如今这个信息爆炸、用户耐心极其有限的数字时代,网站的性能早已不是一个可选项,而是关乎生存和发展的核心竞争力。一个迟缓的网站,无异于在数字世界…

JavaWeb:vueaxios

一、简介 什么是vue? 快速入门 <!-- 3.准备视图元素 --><div id"app"><!-- 6.数据渲染 --><h1>{{ msg }}</h1></div><script type"module">// 1.引入vueimport { createApp, ref } from https://unpkg.com/vu…

Tauri联合Vue开发中Vuex与Pinia关系及前景分析

在 TauriVue 的开发场景中&#xff0c;Vuex 和 Pinia 是两种不同的状态管理工具&#xff0c;它们的关系和前景可以从以下角度分析&#xff1a; 一、Vuex 与 Pinia 的关系 继承与发展 Pinia 最初是作为 Vuex 5 的提案设计的&#xff0c;其目标是简化 Vuex 的复杂性并更好地适配 …