当前位置:首页>编程日记>正文

看完 50000 张专辑封面后,AI 设计师疯狂输出

来源:HyperAI超神经本文约1700字,建议阅读6分钟西班牙艺术家利用 StyleGAN2 打造了一个 AI 设计师,借助 50000 张图像自学成才,没想到培养一个印象派设计师这么简单。

关键词:StyleGAN2    AI 艺术创作

也许是有些设计太经典出挑,总是让人情不自禁地模仿。

前日,乘风破浪走向观众视线的孟佳发布新歌,专辑封面被指原封不动地抄袭抄袭 ins 网红;

没多久,演员宋祖儿的造型设计,也被指出像素级抄袭韩国明星专辑封面,甚至连原创水印都没去掉,可见在设计创意的确不容易。

网友整理抄袭事件的对比图

从事创意工作的人,难免灵感枯竭,有意无意地参考、借鉴、模仿他人的作品

「艺术家的事儿,能算偷吗?」

算,面对网友的声讨,不仅明星丢了颜面,设计师也失了水准口碑。

 50000 张专辑封面,AI 设计师自学成才

同样是搬运后的二次创作,工具属性的 AI 似乎更理直气壮。

西班牙鬼才艺术家 Bruno López,基于 50000 张 Spotify 上的专辑封面,让 NVIDIA 神器 StyleGAN2 自学成才, 「进化」出了一个「没有感情的、抽象派专辑封面 AI 设计师」。

StyleGAN2随机生成的专辑封面

StyleGAN2 从 50000 张 Spotify 专辑封面中,很快形成出一套自己的设计规范和风格流派。


真实的专辑封面基本上由两部分构成,文字及主视觉元素。

AI 的训练过程类似人类「看图画找规律」,在专辑封面的布局上,AI 看起来也深谙黄金比例、斐波那契数列、三分法等尺寸比例规范。

不过 AI 生成的专辑封面整体画风略微有些「诡异」,部分封面甚至可以用「恐怖」来形容:面容狰狞的人脸,少了一只眼球的眼睛,看不出是海浪还是动物尸骨的背景……更不用提模糊的文字、阴郁的色调。

StyleGAN2 随机生成的专辑封面

虽然画风清奇,但是配色及布局相对合理

除了受训练样本风格的影响外,这些伪影的出现也与模型本身有关。因为这 50000 个训练数据,均来自 Spotify 的编辑推荐榜单。没有限定音乐艺术风格,这导致单个风格的训练数据不足,出现了较为严重的伪影和斑点。

StyleGAN2 中用标准化代替归一化

可以去除图像中的特征伪影

StyleGAN 是一种全新的生成器网络结构,由 NVIDIA 发布。这一模型借鉴了风格迁移的相关技术,可以将目标物体的主要属性,逐层修改输入。

由于 AdaIN 中的实例归一化的存在,会导致风格迁移过程中丢失一些输入的关键信息,这就导致了生成图像中斑点及伪影的存在。

StyleGAN2 是 StyleGAN 的升级版,提升了生成图像的质量,极大减少了特征伪影的出现,在细节处理上也更加精细。

 用 AI 画的封面,生成卡点音乐 MV

要想训练一个成熟的 AI 设计师,少不了训练数据和预训练模型。Bruno López 介绍了「AI 设计师」的诞生过程,还用这些封面做了一个抽象的 MV (音乐录影带)。

创建数据集:

  • 找到 Spotify 中对应的 API,给定专辑 ID 可返回多个元数据,包括专辑封面。

  • 写爬虫脚本,爬取 Spotify 编辑推荐列表中的专辑曲库,并下载专辑封面。

  • 获取一个数量约为 50000,图像分辨率为 640x640 的数据集。

在 Spotify 中调用对应的 API

训练过程:

作者在 Google Colab Pro 中,用原始 StyleGAN2 的 skyflynil 实现进行了训练。过程耗时数天,在 50000 个 周期后停止。

单纯地依靠 AI 生成略显粗糙的专辑封面,在大艺术家 Bruno López 看来还差点意思。

而火遍社交网络的卡点视频,让他灵光乍现。

制作卡点视频:

作者基于 lhzbrian 写了一个 Python 脚本,创建随机潜在向量(random latent vector),随后对这些向量进行插值,以创建一个由 AI 生成的动画过渡。

为了让动画跟歌曲同步,作者非常机智地使用了 PyDub,让插值的速度跟每一帧的节拍音量同步。

最后,利用 Pillow 的 Image 模块及 OpenCV 的人脸检测功能,脚本就能只使用潜在向量,生成具有指定特征(如不包括人脸的黄色专辑封面)的图像。


http://www.coolblog.cn/news/3c0d6396757561c8.html

相关文章:

  • asp多表查询并显示_SpringBoot系列(五):SpringBoot整合Mybatis实现多表关联查询
  • s7day2学习记录
  • 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架。
  • 矿Spring入门Demo
  • 拼音怎么写_老师:不会写的字用圈代替,看到孩子试卷,网友:人才
  • Linux 实时流量监测(iptraf中文图解)
  • Win10 + Python + GPU版MXNet + VS2015 + RTools + R配置
  • 美颜
  • shell访问php文件夹,Shell获取某目录下所有文件夹的名称
  • 如何优雅的实现 Spring Boot 接口参数加密解密?
  • LeCun亲授的深度学习入门课:从飞行器的发明到卷积神经网络
  • Mac原生Terminal快速登录ssh
  • java受保护的数据与_Javascript类定义语法,私有成员、受保护成员、静态成员等介绍...
  • mysql commit 机制_1024MySQL事物提交机制
  • 支撑微博千亿调用的轻量级RPC框架:Motan
  • jquery 使用小技巧
  • 2019-9
  • 法拉利虚拟学院2010 服务器,法拉利虚拟学院2010
  • vscode pylint 错误_将实际未错误的py库添加到pylint白名单
  • 科学计算工具NumPy(3):ndarray的元素处理
  • 工程师在工作电脑存 64G 不雅文件,被公司开除后索赔 41 万,结果…
  • linux批量创建用户和密码
  • newinsets用法java_Java XYPlot.setInsets方法代碼示例
  • js常用阻止冒泡事件
  • 气泡图在开源监控工具中的应用效果
  • 各类型土地利用图例_划重点!国土空间总体规划——土地利用
  • php 启动服务器监听
  • dubbo简单示例
  • 【设计模式】 模式PK:策略模式VS状态模式
  • [iptables]Redhat 7.2下使用iptables实现NAT
  • Ubuntu13.10:[3]如何开启SSH SERVER服务
  • CSS小技巧——CSS滚动条美化
  • JS实现-页面数据无限加载
  • 阿里巴巴分布式服务框架 Dubbo
  • 最新DOS大全
  • Django View(视图系统)
  • 阿里大鱼.net core 发送短信
  • 程序员入错行怎么办?
  • 两张超级大表join优化
  • 第九天函数
  • Linux软件安装-----apache安装
  • HDU 5988 最小费用流
  • Sorenson Capital:值得投资的 5 种 AI 技术
  • 《看透springmvc源码分析与实践》读书笔记一
  • 正式开课!如何学习相机模型与标定?(单目+双目+鱼眼+深度相机)
  • Arm芯片的新革命在缓缓上演
  • nagios自写插件—check_file
  • python3 错误 Max retries exceeded with url 解决方法
  • 通过Spark进行ALS离线和Stream实时推荐
  • 行为模式之Template Method模式