写点什么

查无此人?!AI 也能创作人像了

  • 2021-06-18
  • 本文字数:2243 字

    阅读完需:约 7 分钟

查无此人?!AI也能创作人像了

听说 AI 平台上线公有云环境了,不仅能在家里访问,还有全新的交互体验,更重要的是还带来了更多的 GPU 卡,真是诚意满满呀!

 

听说 Nvidia 官方开源了 Stylegan2,这个网络结构的神奇之处在于,能够学习已经有的一些人或者物体,充分发挥自己的想像,“创作”出新的类似人或物呢!那还等什么,赶紧一睹为快吧,体验下用建行人的 AI 平台跑起来是什么效果吧!


在使用平台之前,我们要先了解一下 stylegan2 依赖的环境,访问https://github.com/NVlabs/stylegan2,往下翻到 Requirements 部分,我们看到以下描述:



上面大致是说,只能在 Tensorflow1.14+上跑,Tensorflow 2.x 就别想了。然后如果要复现论文,显存必须 16G 起步。TF1.14 就是说,RTX 30XX 的卡就别想了,因为他们只能使用 Cuda 11,而 Cuda 11 不支持 TF1.14;而 16G 显存的门槛,又把一大堆入门级显卡挡在了大门外,基本就只剩下可爱(guì)的 Tesla V100 了。

 

解决办法远在天边,近在眼前,它就在“天权人工智能平台”这里。登陆平台,点击左下角“个人开发环境设置”,选择带 GPU 卡的环境,点击下一步:


接下来的页面,选择 Tensorflow 1.14 的镜像,然后保存:



静静等待一会,环境就创建好了。


接下来创建一个实验。点击新建实验中的“空白 notebook”,输入实验名称“stylegan”:



然后就可以进入到下面的界面了:



先看看 GPU 卡情况:



然后我们把 stylegan 代码拉下来:



唉?好像有点问题,历经千辛万苦(此处省略 2000 字),我们拿到了 stylegan2 的代码,然后如此操作一番:



然后就有了 stylegan2 的代码了:



我们按照 github 上提供的方法测试一下这个环境:



非常好!看来基本环境没有问题。


接下来需要传模型,我们在 github 上找到了官方提供的预训练镜像,传送门在此https://nvlabs-fi-cdn.nvidia.com/stylegan2/networks/,打开是这个样子:


我们看到官方一共提供了 5 类预训练镜像:car、cat、church、ffhq 和 horse。其中 ffhq 是用来生成人像的模型,而其他的名字,小伙伴们都能顾名思义猜到啦!使用 wget 命令就可以把模型拉来了:



能连互联网,简直是美滋滋呀!


有了模型,赶快来试一试模型的效果怎么样吧~参考 github 上的说明,执行以下命令:



提示没有 numpy,原来是用错了命令,python 是 python2,而我们需要运行的命令是 python3。修改以后再试试,结果报了好长一串错误,我截取了其中一部分:




核心报错信息是“C++ versions less than C++11 are not supported.”,碰到问题当然不能束手无策,赶紧问问“度娘”,结果就找到解决思路了,在帖子https://blog.csdn.net/qq1483661204/article/details/105442426中告诉我们解决方法:



运行stylegan-v2报错:error: #error "C++ versions less than C++11 are not supported.解决方法:打开 dnnlib/tflib/custom_ops.py的 修改第64行:将 cmd = 'nvcc ' + opts.strip()改为:cmd = 'nvcc --std=c++11 -DNDEBUG ' + opts.strip()
复制代码


如此这般操作一下:



修改好要记得 Ctrl+S 保存,然后再执行一下原来的命令,就可以成功执行了!以下节选了一些日志:



生成的图片在 results 文件夹中:



我们把这些图片集中展示一下,执行以下代码:



from PIL import Imageresult = Image.new("RGB", (512*5, 300*5))for i in range(25) : #因为跑生成的时候输入参数seed是6600-6625,所以生成的文件名也是如此编号 seq = i + 6600 #路径需要自行调整 img = Image.open("results/00008-generate-images/seed{}.png".format(seq)) #汽车模型生成的汽车有黑边,为了展示好看就把黑边裁剪了 img = img.crop(box=(0,100,512,400)) #把每张图片贴到汇总图上 result.paste(img, box=(i//5*512, i%5*300))result.save('car.jpg')
复制代码


最后就可以得到聚合后的各种“神奇”的车了,也可以在平台上直接查看:



大部分车咋一看似乎很正常,不过我们仔细看也会发现有些车还是有问题:



我们如法炮制来试验一下其他的预训练模型效果如何。

 

以下是教堂的效果:



教堂的效果图总体还不错,不过部分图片的边缘有一些诡异的物件,此外有的教堂图片还“脑补”出了水印,这与训练集有很大关系。


再分别执行





from PIL import Imageresult = Image.new("RGB", (512*5, 512*5))for i in range(25) : seq = i + 6600 #路径需要自行调整 img = Image.open("results/00009-generate-images/seed{}.png".format(seq)) img = img.resize((512,512)) result.paste(img, box=(i//5*512, i%5*512))result.save('ffhq.jpg')
复制代码


就可以得到人像的生成效果:



需要注意哦,他们真的真的是计算机“脑补”出来的图像,这些人都不存在的!


如果要“欣赏”更多的“脑补图”,我们也给大家分享几个好玩的网站,传送门在此,有兴趣的同学们可以自己试试:

 https://thispersondoesnotexist.com/

 https://thiscatdoesnotexist.com/

 https://thishorsedoesnotexist.com/


还有一个有趣的网站可以考考大家的“眼力”,分辨一下哪些图片是真实的,哪些图片是计算机“虚构”的,传送门在此:https://www.whichfaceisreal.com/


下面是来自上述网站的一个无奖竞猜,请问哪张照片是真实的,哪张照片是虚构的呢?



再偷偷分享一个小技巧:如果人左右不对称(比如耳饰),或者人某些部位有些许非正常扭曲,或者背景、装饰很不和谐,极有可能就是 AI“脑补”的产物了!

 

好了,说了这么多,大家有没有心动了呢?赶紧登陆 AI 平台,自己动手体验一下有趣的 AI 模型吧!


传送门https://ai.tech.ccb.com/,互联网就可以访问哦~


本文转载自:金科优源汇(ID:jkyyh2020)

原文链接:查无此人?!AI也能创作人像了


2021-06-18 08:001377

评论

发布
暂无评论
发现更多内容

在线字符串长度计算,字符串统计工具

入门小站

工具

Prometheus 内置函数(一)

耳东@Erdong

Prometheus 10月月更

DeFi智能合约DAPP系统开发公司(现成)

2021年Android程序员职业规划,Android开发技巧

android 程序员 移动开发

看了CopyOnWriteArrayList后自己实现了一个CopyOnWriteHashMap

root

Java 程序员 CopyOnWrite;

你真的会 Prometheus 查询吗?--PromQL 合集

耳东@Erdong

Prometheus PromQL 10月月更

Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理

API7.ai 技术团队

云原生 PaaS API网关 Apache APISIX

第 22 章 -《Linux 一学就会》- 跳出循环-shift参数左移-函数的使用

学神来啦

Linux linux运维 linux云计算 linux一学就会

2021年Android大厂面试分享,实战篇

android 程序员 移动开发

2021年GitHub上那些优秀Android开源库总结,花2万块买的教程

android 程序员 移动开发

2021年大厂程序员进阶宝典,Android开发基础面试题

android 程序员 移动开发

linux之xargs使用技巧

入门小站

Linux

Go 中如何使用结构体标签

baiyutang

golang 10月月更

Vue进阶(幺肆伍):Vue-elementUI实现操作栏位更多效果

No Silver Bullet

Vue 10月月更

2020-2021蚂蚁金服Android面试真题解析,使用指南

android 程序员 移动开发

2021年大厂程序员进阶宝典,flutter面试题

android 程序员 移动开发

架构实战营-模块一

瓜子葫芦侠

「架构实战营」

Zookeeper 客户端错误:Packet len8854970 is out of range!

看山

zookeeper 10月月更

Groovy动态添加方法和属性及Spock单测

FunTester

Java 动态 spock Groovy FunTester

Python代码阅读(第43篇):构造组合函数

Felix

Python 编程 Code Programing 阅读代码

2021年大厂程序员进阶宝典,真是经典中的经典

android 程序员 移动开发

谈 C++17 里的 Chain of Responsibility 模式

hedzr

设计模式 Design Patterns 职责链模式 c++17 消息分发

在 pygame 中好好玩玩精灵,滚雪球学 Python 游戏番

梦想橡皮擦

10月月更

全球6G专利独占4成,中国能否借此“制霸”元宇宙?

海比研究院

解密诡异并发问题的幕后黑手:可见性问题

华为云开发者联盟

并发编程 线程 并发 可见性 单核CPU

2021年Android春招面试经历,阿里秋招面试真题解析

android 程序员 移动开发

2021年字节跳动+京东+美团面试总结,查漏补缺

android 程序员 移动开发

Vue进阶(幺肆肆):(window,parent,opener,top).location.reload方法分析

No Silver Bullet

Vue 页面刷新 10月月更

2021年Android高级面试题,成功入职字节跳动

android 程序员 移动开发

阿里云边缘云ENS再升级 产业数字化落地向何方?

阿里云Edge Plus

Defi挖矿系统开发简介(现成案例)

查无此人?!AI也能创作人像了_AI&大模型_金科优源汇_InfoQ精选文章