0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Hairstyle Transfer 你值得拥有!

电子设计 来源:电子设计 作者:电子设计 2020-12-08 23:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

点赞再看,养成习惯,微信公众号搜索【JackCui-AI】关注这个爱发技术干货程序员。本文 GitHub https://github.com/Jack-Cherish/PythonPark 已收录,有一线大厂面试完整考点、资料以及我的系列文章。

1 隐秘的角落

用了一个周末,一口气刷完了《隐秘的角落》这部电视剧。

不得不说,这部网剧看得过瘾,回想起来,也总觉得意犹未尽。

剧情开篇,景区的山顶,一个戴眼镜的男人,借着拍照片,把一对老人推了下去。

这一幕,被在景区游玩的三个孩子意外拍摄下来,故事从此展开。

这部剧,让一个叫「张东升」男人的名字大火,也就是把那对老人推下山的凶手。

而跟他本人同样出名的场景,是他突然摘下假发后露出的发际线。

「张东升」秃头造型,火爆网络,他的经典语录有:

  • 一起去爬山吗?
  • 您看我还有机会吗?

作为脑力劳动的程序员,脱发可能都是曾担忧过的一个问题。

在「程序员界」,流传着这么一个段子:

「我变秃了,也变强了。」

想不想,看看变强后的自己

今天,继续手把手教学

算法原理、环境搭建、模型训练、效果测试,一条龙服务,尽在下文!

2 算法原理

我在曾经的文章里讲解过类似的算法原理,例如之讲解的 ALAE 算法,人脸属性编辑。

这个算法是发表在国外 Medium 网站上的一篇文章。

Medium 原文地址(需要翻墙):

https://medium.com/swlh/hairs...

这是一个名为 Azmarie Wang 的作品,作者是一位小姐姐。

而她也在自己的 Github 上开源了相应的代码。

项目地址:

https://github.com/Azmarie/Ha...

但,这个篇文章传到国内,源码被别人做成了视频在「 B站 」分享出去,就「莫名其妙」的变成了"自制"。

很多公众号发文,都冠以「 B 站 Up 主自制」的标签

自制个锤子哦!

人家文章、源码早就有了好吗?

槽吐完了,咱接着说算法原理。

这个算法的名字叫「 Hairstyle Transfer 」。

该算法也是站在巨人的肩膀上实现的,由 StyleGAN Encoder、Progressive GAN、InterFace GAN、SVM 多种算法组成。

算法流程:

换一个通俗一点的语言解释就是,先使用原图生成一个「人脸模型 」,这个「人脸模型 」是可以编辑的,然后找到控制头发的「控制器」,调整参数,改变发型。

专业一点的说法就是,先使用原图,用 StyleGAN Encoder 反算潜码( latent code ),获得多维的特征向量(头发、眼睛、嘴巴、肤色等)。

然后训练 SVM 分类器,用于找到控制头发的那个特征向量。

最后使用 Interface GAN 编辑特征,就可以完成头发属性编辑了。

想更深入的学习原理,需要先学习一下 StyleGAN Encoder 和 Interface GAN ,篇幅有限,本文就「点到为止」了。

3 环境搭建

你需要有在有 GPU 的机器上运行,如果能翻墙工具,强烈建议使用 Google Colab。

Google Colab 是一个 Google 提供的免费 GPU 服务器。

「 Hairstyle Transfer 」需要下载很多存放到 Google Drive 的权重文件。

使用 Google Colab 跑这个项目很方便,因为这个项目都是 ipynb 文件。

如果不能翻墙,也可以自己在本地,使用 Anaconda 新建虚拟环境。

「 Hairstyle Transfer 」算法,使用 Tensorflow 框架,并且必须是 1.x 的版本,不兼容 2.x。

首先,创建一个名为 tf 的 conda 虚拟环境。

conda create -n tf python=3 jupyter notebook

然后使用 conda 和 pip 按照如下顺序,安装如下第三方库即可:

conda install scipy tensorflow-gpu==1.15

都安装好后,环境就算搭建完成了。

4训练 & 效果测试

我们以「张东升」的图片为例进行训练以及效果测试。

图片下载地址:

https://cuijiahua.com/wp-cont.../_1.png

将项目下载到本地:

git clone https://github.com/Azmarie/Hairstyle-Transfer

然后你会得到三个 jupyter 的 ipynb 文件。

依照上述顺序跑通代码。

StyleGAN/_Encoder 会生成 output/_vectors.npy 文件。

Get/_attribute/_score/_pairs 会 stylegan-dlatents.npy 和 9/_score.npy 文件。

然后,Train/_Boundaries 使用 stylegan-dlatents.npy 和 9/_score.npy 训练 Boundaries。

这里用到了 SVM 分类器,将控制头发的特征向量分出来,得到 boundary.npy,用于后续发型的控制。

最后,再使用 output/_vectors.npy 和 boundary.npy,即可控制头发的多少。

ipynb 详细说明了代码需要如何运行,依照它的教程,按照次序运行程序即可。

里面详细说明了,怎么裁剪图片,怎么训练等。

代码中用到了很多 Google Drive 保存的权重文件,我将这些权重文件,都上传到了我的百度网盘。

下载链接(提取码:2afm):

https://pan.baidu.com/s/1sPqg...

需要注意的是,下载好这些权重文件,在跑代码的时候需要将代码中所有的加载权重方式修改一下,都改为本地加载。

例如修改 pkl 的读取方式等。

很简单,这里就不一一说明了。

根据 ipynb 的说明,我们就可以顺利跑通所有代码。

完成模型训练和效果测试。

最后,一起看一下「张东升」的 「 Hairstyle Transfer 」效果吧!

就很“秃然”,有木有!

用自己照片试试看?一秒变超人。

5 最后

「 Hairstyle Transfer 」 算法也有一些小问题,比如控制头发变少,图片的色调也会变暗。

作者:Jack Cui
原文:https://mp.weixin.qq.com/s/3r...
关注作者公众号,获取更多有趣AI应用~

系列篇

更多AIoT领域有趣的算法应用及产品请关注有趣的AIoT应用专栏。

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1819

    文章

    50288

    浏览量

    266826
  • 代码
    +关注

    关注

    30

    文章

    4975

    浏览量

    74349
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    内置氮化镓成主流?AHB技术又了解多少?

    内置氮化镓成主流?AHB技术又了解多少? 在快充充电器等应用中,非对称半桥(AHB)拓扑凭借高效率、低EMI等优势,正受到越来越多工程师的青睐。 AHB 本质上是在传统反激思路上进一步优化而来
    发表于 04-18 10:35

    如果还在为超宽带信号的处理延迟头疼,这篇文章值得花3分钟!

    当数据速率高到让传统FPGA都束手无策,该怎么办?如果正在从事雷达、电子战、频谱监测,或是5G/6G卫星通信的前沿开发,一定知道这样一个事实:信号带宽越大,数据速率越“疯狂”。当采样率飙升
    的头像 发表于 03-27 08:00 171次阅读
    如果<b class='flag-5'>你</b>还在为超宽带信号的处理延迟头疼,这篇文章<b class='flag-5'>值得</b><b class='flag-5'>你</b>花3分钟!

    耐能Kneo Pi+OpenClaw让效率大飙升

    7×24小时全天候待命,精准理解的需求,几乎不占用你的设备电量。只需一条简单的聊天消息或指令,它便能自动为完成复杂的任务。这样的数字助手,是不是曾经幻想拥有的?
    的头像 发表于 03-06 10:06 609次阅读

    变压器五强深度解码:卓尔凡、特变、ABB、施耐德、西电,谁是的“电力心脏”最优选?

    五强企业深度解析 1. 东莞卓尔凡电力:定制化与国际认证的专家 如果的设备需要出口,或者有非常规的电压需求,卓尔凡会是一个非常值得考虑的选择。这家公司被誉为“出口全认证变压器标杆”,它的产品线虽然
    的头像 发表于 03-02 09:04 348次阅读

    构建拥有200多个节点的zigbee网络解决方案

    要构建一个拥有 200+节点 的网络,需要选择网络容量更大、处理能力更强的协调者/网关,并配合合适的路由器和终端节点。 1. 核心协调员/门户选择(关键) 管理200+节点的协调器需要强大的处理
    的头像 发表于 01-04 16:27 440次阅读

    边缘计算必备仿真软件盘点:从仿真到落地,哪些工具值得上手?

    过去几年,随着工业互联网、智慧城市、视频边缘分析、储能 EMS 等场景快速铺开, “先仿真、再部署”  已经成为边缘计算开发的必备流程。 但问题来了——工具太多,到底哪些软件值得工程师真正投入
    的头像 发表于 12-25 16:46 617次阅读

    广州邮科:深耕本地的老牌48v通信电源厂家,值得选吗?

    提到48v通信电源厂家,的第一反应是不是那几个全国性大品牌?其实,在我们身边,尤其是在产业聚集的华南地区,就有不少实力深厚的专业制造商。今天,咱们就聚焦一家广州本地的企业——广州邮科,聊聊它作为一家48v通信电源厂家,到底值不值得
    的头像 发表于 12-05 09:17 479次阅读
    广州邮科:深耕本地的老牌48v通信电源厂家,<b class='flag-5'>值得</b>选吗?

    淘宝API赋能,小卖家也能拥有大格局!

    ​ 在电商领域,大型卖家往往拥有强大的技术团队和资金支持,能够开发各种自动化工具来提升效率、扩大规模。而对于资金和人力都有限的小卖家而言,想要实现精细化运营、提升竞争力,似乎困难重重。但淘宝开放平台
    的头像 发表于 12-04 14:27 374次阅读
    淘宝API赋能,小卖家也能<b class='flag-5'>拥有</b>大格局!

    大华股份荣获福布斯韩国最值得客户信赖的品牌大奖

    近日,大华股份斩获福布斯韩国“最值得客户信赖的品牌——影像保安部门大奖”。作为韩国市场极具公信力的行业标杆奖项,此次殊荣不仅是对大华股份深耕韩国市场、坚持技术创新与服务深耕的高度认可,更是对大华技术硬实力与品牌影响力的权威认证。
    的头像 发表于 11-26 16:28 661次阅读

    rt_i2c_transfer函数执行返回-8是怎么回事?

    RT-thread的IIC未调通。 1.注册设备是成功的: 2.然而在使用rt_i2c_transfer()函数时,遇到了问题: 3.采用模拟IIC,硬件使用PB6,PB7引脚。 #define BSP_I2C1_SCL_PIN22 #define BSP_I2C1_SDA_PIN23 请教下,可能是哪
    发表于 09-25 07:55

    想搞定控制器连接?耐达讯Modbus转Profinet这招知道吗?

    ,问题迎刃而解。网关通过精准的数据映射和协议转换,让数据在不同协议间顺畅流通,项目顺利推进。 从技术角度来说,这类网关具备高精度的数据采集和转换能力,能够实时准确地处理大量数据。同时,它还拥有良好的稳定性
    发表于 07-25 15:41

    了解BNC连接器吗?—— 射频传输的基础与进阶指南

    德索精密工业还提供多种规格的BNC连接器,适配不同类型的电缆,满足客户多样化需求。从基础的信号传输到复杂的射频系统搭建,德索精密工业的BNC连接器都能凭借出色的性能,成为工程师们值得信赖的选择。如果
    的头像 发表于 07-07 16:03 681次阅读
    <b class='flag-5'>你</b>了解BNC连接器吗?—— 射频传输的基础与进阶指南

    【RA4L1-SENSOR】DMAC传输数据

    存储器访问控制器或者直接内存访问控制器, 可以在不占用 CPU 的情况下将数据从一个内存位置传输到另一个内存位置。 DTC(Data Transfer Controller)为数据传输控制器,用于在被
    发表于 07-05 08:23

    IDE为什么无法识别到板子canmvk230d-zero?

    期待结果和实际结果 软硬件版本信息 错误日志 尝试解决过程 补充材料 你好,这是自己做得板子吗?看起来是卡没有正常识别 建议换个tf卡试下,看串口打印 tf卡超时了。 U-Boot SPL
    发表于 06-10 07:45

    提问,现在有哪些开发板值得学习使用?

    提问一下,现在有哪些开发板值得学习使用?
    发表于 06-04 10:54