AI-图片转换中国风动漫人物

 🏡 个人主页:IT贫道-CSDN博客

 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~

 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频


目录

1. AI卡通秀原理

2. 安装Anconda3

3. 安装Python3

4. 安装依赖

5. 下载项目

6. 下载模型

​​​​​​​7. 运行项目

8. 项目效果图


1. AI卡通秀原理

人像卡通风格渲染的目标是,在保持原图像ID信息和纹理细节的同时,将真实照片转换为卡通风格的非真实感图像。我们的思路是,从大量照片/卡通数据中习得照片到卡通画的映射。一般而言,基于成对数据的pix2pix方法能达到较好的图像转换效果,但本任务的输入输出轮廓并非一一对应,例如卡通风格的眼睛更大、下巴更瘦;且成对的数据绘制难度大、成本较高,因此我们采用unpaired image translation方法来实现。

Unpaired image translation流派最经典方法是CycleGAN,但原始CycleGAN的生成结果往往存在较为明显的伪影且不稳定。近期的论文U-GAT-IT提出了一种归一化方法——AdaLIN,能够自动调节Instance Norm和Layer Norm的比重,再结合attention机制能够实现精美的人像日漫风格转换。

与夸张的日漫风不同,我们的卡通风格更偏写实,要求既有卡通画的简洁Q萌,又有明确的身份信息。为此我们增加了Face ID Loss,使用预训练的人脸识别模型提取照片和卡通画的ID特征,通过余弦距离来约束生成的卡通画。

此外,我们提出了一种Soft-AdaLIN(Soft Adaptive Layer-Instance Normalization)归一化方法,在反规范化时将编码器的均值方差(照片特征)与解码器的均值方差(卡通特征)相融合。

模型结构方面,在U-GAT-IT的基础上,我们在编码器之前和解码器之后各增加了2个hourglass模块,渐进地提升模型特征抽象和重建能力。

由于实验数据较为匮乏,为了降低训练难度,我们将数据处理成固定的模式。首先检测图像中的人脸及关键点,根据人脸关键点旋转校正图像,并按统一标准裁剪,再将裁剪后的头像输入人像分割模型去除背景。

​​​​​​​2. 安装Anconda3

Anaconda是一个开源的Python发行版本,python是一个编译器,如果不使用Anaconda那么安装起来会比较痛苦,各个库之间的依赖性就很难连接的很好。Anaconda可以看做Python的一个集成安装,里面集成了很多关于python科学计算的第三方库,安装它后就默认安装了python、IPython、集成开发环境Spyder和众多的包和模块,包含了conda(conda 是开源包(packages)和虚拟环境(environment)的管理系统。)、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大,大概几百兆左右,如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。

我们可以从Anaconda官网 Anaconda | The World’s Most Popular Data Science Platform 下载Anaconda,一般官网下载比较慢,可以选择使用镜像下载,地址如下:

Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

现在之后直接双击安装即可,注意安装路径中不要有中文和空格。安装完成之后,配置环境变量,如下图:

配置完成之后,打开CMD命令窗口输入:conda,验证是否安装成功:

​​​​​​​3. 安装Python3

基于Anconda安装Python3,修复老照片这里安装python使用至少python3.6版本。命令如下:

#安装python环境
conda create --name python36_cartoon python=3.6
#卸载python环境
conda remove --name python36_cartoon --all

4. 安装依赖

​
pip install torch-1.9.0+cu111-cp36-cp36m-win_amd64.whlpip install torchvision-0.10.0+cu111-cp36-cp36m-win_amd64.whlpip install torchaudio-0.9.0-cp36-cp36m-win_amd64.whlpip install -i Simple Index tensorflow-gpu==1.14pip install -i Simple Index face-alignmentpip install -i Simple Index dlibpip install -i Simple Index onnxruntime​

5. 下载项目

项目下载地址:https://github.com/minivision-ai/photo2cartoon,直接下载就可以,下载好的项目名字为“photo2cartoon-master”,将下载项目解压到无中文路径中,这里放在J盘下:

​​​​​​​6. 下载模型

  • 人像卡通化预训练模型:photo2cartoon_weights.pt(20200504更新),存放在models路径下。
  • 头像分割模型:seg_model_384.pb,存放在utils路径下。
  • 人脸识别预训练模型:model_mobilefacenet.pth,存放在models路径下。(From: InsightFace_Pytorch)
  • 卡通画开源数据:cartoon_data,包含trainB和testB。
  • 人像卡通化onnx模型:photo2cartoon_weights.onnx 谷歌网盘,存放在models路径下。

​​​​​​​7. 运行项目

1) 添加项目需要的运行文件

将“2DFAN4-cd938726ad.zip”存放在目录“C:\Users\wubai/.cache\torch\hub\checkpoints\”目录下。

下载地址:https://www.adrianbulat.com/downloads/python-fan/2DFAN4-cd938726ad.zip

2) 进入“photo2cartoon-master”目录下执行命令

#切换python环境conda activate python36_cartoon#执行如下命令转化图片,--photo_path 指定输入的图片,--save_path 将结果保存到的目录python test.py --photo_path ./input/zixia.jpg --save_path ./output/zixia.jpg

8. 项目效果图


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

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

相关文章

【PyQt小知识 - 8】:QFileDialog — 文件选择对话框(选择文件夹/文件)

文章目录 QFileDialog的介绍和使用 QFileDialog的介绍和使用 QFileDialog是Qt框架中提供的一个文件选择对话框。它可以让用户通过图形界面的方式选择文件或目录,并提供了许多与文件操作相关的实用功能,例如文件过滤、文件类型限制、文件名默认值、默认目…

17. C++ static、const 和 static const 类型成员变量声明以及初始化

1. C static、const 和 static const 类型成员变量声明以及初始化 const 定义的常量在超出其作用域之后其空间会被释放; static 定义的静态常量在函数执行后不会释放其存储空间; 1.2 static static 表示的是静态的 类的静态成员函数、静态成员变量是…

ASP.NET进销存系统源码

ASP.NET进销存系统源码 功能介绍: 财务 销售清单,填写销售单,客户管理,添加客户资料 销售 销售清单,填写销售单,客户管理,添加客户资料 仓库 仓库结存,仓库盘点,盘点结…

初学unity学习七天,经验收获总结

初学unity七天,经验收获总结 学习就是认识新观念和新想法的过程。 假如人们始终以同一种思维方式来考虑问题的话,那么始终只会得到同样的结果。 因为我对你讲述的许多内容是你以前从未接触过的,所以我建议你,在你还没有做之前&…

确保CentOS系统中的静态HTTP服务器的数据安全

确保CentOS系统中的静态HTTP服务器的数据安全是一项重要的任务,它有助于保护网站免受未经授权的访问、数据泄露和其他安全威胁。以下是一些关键步骤和最佳实践,以确保CentOS系统中静态HTTP服务器的数据安全: 限制访问权限确保只有授权用户可…

Springboot+vue整合 支付宝沙箱支付

可以完成的功能: 一、拉起支付 二、异步回调 三、掉单处理 四、超时关闭 五、订单退款

使用ffmpeg对视频进行静音检测

1 原始视频信息 通过ffmpeg -i命令查看视频基本信息 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-sta…

uniapp项目 插件市场下载pdd-date-picker【年月日选择器】路径不对的问题

从HBuilder插件市场下载pdd-date-picker年月日插件之后 按照t它的官方问的进行引入你会发现路径不对,我们需要再自己的项目中重新去查看一下路径 下面是官方文档给出的路径 import pddDatePicker from ../../components/pdd-date-picker/index.vue我们需要将上面的…

ASP.NET房屋中介管理系统源码

ASP.NET房屋中介管理系统源码 房屋中介系统是非常实用的,不仅可以详细的记录房源信息、用户信息等, 同时本系统能够自动去查找和客户需求匹配的房源,可以方便客户同时提高使用者的工作质量与效率。

D25XB80-ASEMI开关电源桥堆D25XB80

编辑:ll D25XB80-ASEMI开关电源桥堆D25XB80 型号:D25XB80 品牌:ASEMI 封装:GBJ-5(带康铜丝) 特性:插件、整流桥 平均正向整流电流(Id):25A 最大反向击…

新版云进销存ERP销售库存仓库员工管理系统源码

新版云进销存ERP销售库存仓库员工管理系统源码 系统介绍:2022版本,带合同报价单打印,修复子账号不显示新加客户的BUG,还有其他方面的优化。 简单方便。 功能强大,系统采用phpMYSQL开发,B/S架构,方便随地使用…

面向零信任架构的访问安全态势评估

伴随着“云大物移”等新兴 IT 技术的快速发展,企业数字化转型使得 IT 业务的网络环境更加复杂多样,企业数字资源的安全防护正面临着前所未有的压力与威胁。零信任安全架构放弃了传统基于“边界”的安全模型,以访问上下文的安全态势感知为基础…

Python解包列表批量赋值技巧

一、引言 众所周知,我们可以在Python中通过下标如lst[1]来对列表进行解包,或者用*lst进行解包,但是如果你遇到下面的问题该如何解决呢? 有如下列表,我们要获取列表中的前二个元素和最后一个元素,组成一个…

为什么不直接public,多此一举用get、set,一文给你说明白

文章目录 1. 封装性(Encapsulation)2. 验证与逻辑处理3. 计算属性(Computed Properties)4. **跟踪变化(Change Tracking)5. 懒加载与延迟初始化(Lazy Initialization)6. 兼容性与未来…

如何查询慢 SQL 产生的原因

如何查询慢 SQL 产生的原因 (1)分析 SQL 执行计划(explain extended),思考可能的优化点,是否命中索引等。 (2)没有索引或者没有用到索引(这是查询慢最常见的问题,是程序…

Nightingale 夜莺监控系统 - 部署篇(1)

Author:rab 官方文档:https://flashcat.cloud/docs 目录 一、概述二、架构2.1 中心机房架构2.2 边缘下沉式混杂架构 三、环境四、部署4.1 中心机房架构部署4.1.1 MySQL4.1.2 Redis4.1.3 Prometheus4.1.4 n9e4.1.5 Categraf4.1.6 验证4.1.7 配置数据源 4…

条款23:宁以 non-member、non-friend 替换 member 函数

假设一个表示web浏览器的类: class WebBrowser { public:...void clearCache();void clearHistory();void removeCookies();void clearEverything(); // 调用clearCache,clearHistory,removeCookies };当然,这个也可以通过非成员函数调用适当的成员函数…

红队打靶练习:HOLYNIX: V1

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto whatweb 目录探测 1、gobuster 2、dirsearch 3、dirb 4、feroxbuster WEB sqlmap 1、爆库 2、爆表 3、爆列 4、爆字段 后台登录 1、文件上传 2、文件包含 3、越权漏洞 反弹shell 提权 总结 信息…

Spring整理-Spring Bean的生命周期

Spring Bean的生命周期涉及多个阶段,从Bean的定义到其销毁。在这个过程中,Spring容器负责创建、初始化、使用和最终销毁Bean。了解这个生命周期有助于更好地管理Bean的行为和资源使用。 Spring Bean生命周期的主要阶段 实例化(Instantiation):容器首先创建Bean的实例。填充…

数据分析---SQL(2)

目录 SQL语句的执行顺序是什么举例说明SQL如何实现去重操作举例说明如何将时间戳转为yyyy-MM-dd形式如何将yyyy-MM-dd改为yyyyMMdd形式如何求两个yyyyMMdd形式的日期差几天SQL语句的执行顺序是什么 在SQL中,一条SQL语句的执行顺序如下: FROM子句:首先,执行FROM子句,确定要…