在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

机器学习让电脑也能画世界名画

  • 2015-09-29
  • 本文字数:1344 字

    阅读完需:约 4 分钟

近日,德国图宾根大学的 Leon A. Gatys 等人研发出了一种基于深度神经网络的人工系统。该系统可以制作非常具有艺术气息的电脑图片,完成了电脑作画方面的一大突破。

画家一般通过非常高超的技巧把现实中的东西按照一定的风格进行抽象,来创造非凡的艺术品。以往,这种创造过程总是神秘而不可预知的。因而,机器无法自动完成图画,尤其是抽象画派作品的创作。然而,在目标或者人脸识别等领域,机器已经能够根据深度神经网络(Deep Neural Network,DNN)理论,很好的完成识别工作。Leon 等人所研发的系统试图解决这一难题。该系统使用了神经表示来分离和重新合并图画的内容和风格。它可以把一副图画的内容和另一副图画的风格结合在一起,创造出一个新的图片。以斯坦福校园的一张照片为例,该系统把著名画家梵高的《星空》的风格抽象出来,合并为了一张新的图片。

把该风格应用到不同的图片中,系统还可以给出很多有意思的结果。而且,算法还支持用户调整风格和内容分别占据的权重。这样,图片就可以在偏重原始内容和风格化之间进行变化。此外,用户还可以利用 -style_scale在提取风格特征之前调整风格图片的大小。由此,最终合成图片的风格化粒度也会不同。

该系统基本原理可以划分为内容提取和风格提取两个部分。在内容提取中,算法使用了深度神经网络中的卷积神经网络(Convolutional Neural Network,CNN)。卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。输入图像通过和若干滤波器进行卷积后产生相应的特征映射图。这些特征映射图中每组的几个像素再进行求和、加权值以及加偏置(bias),通过一个Sigmoid 函数得到下一层特征映射图。该过程依次进行,直到通过神经网络的所有层后,得到输出。在Leon 等人的研究中提到,随着图像通过CNN 中的多个层,图像内容越来越多的反应到特征映射图中。而网络中高层的特征响应就可以记为内容表示( content representation)。

在风格提取中,算法使用了原本用于获得纹理信息的特征空间。该特征空间基于神经网络中每一层的滤波响应,由这些响应之间的相关度所组成。通过包含多层网络的特征相关,算法获得了一个输入图像的多层表示——风格表示(style representation)然后,系统通过寻找同时符合内容表示和风格表示的图片,即可合并两张图画,制作出新的图画。

目前,该算法的 torch 实现已经共享到 GitHub 。用户在安装 torch7 loadcaffe 之后,需要运行sh models/download_models.sh脚本来下载 VGG 模型。然后,用户按照安装指导中的指示即可完成Ubuntu 系统中的安装。然后,用户输入 th neural_style.lua -style_image <image.jpg> -content_image <image.jpg>
命令,开始使用该算法来生成图像。此外,该实现还提供了-image_size(所产生图像的最大边像素数)、-gpu(所使用 GPU 从 0 开始编号的 ID)、-content_weight(内容重建部分的权重,默认为 5)等选项。这些选项可以优化转换过程、确定输出文件名以及 CNN 中的层名等,为用户提供更多的灵活性。


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-09-29 19:003750
用户头像

发布了 268 篇内容, 共 138.9 次阅读, 收获喜欢 24 次。

关注

评论

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

阿里云EMAS 12月产品动态更新

移动研发平台EMAS

阿里云 移动研发平台 emas

零基础如何上手APICloud App、小程序多端开发

YonBuilder低代码开发平台

前端开发 APP开发 APICloud 多端开发 小程序开发

java开发之SpringBoot+flowable实现工作流

@零度

Java springboot

科技为驱,创新为翼——鲸鲮科技喜获“2021北京软件核心竞争力企业”评价

鲸鲮JingOS

操作系统 创新 信创 信息化 科技企业

一文带你快速拆解云智慧前端技术架构

云智慧AIOps社区

前端 前端开发 可视化 框架 技术干货

Hyperf结合Redis异步队列任务async-queue实现后台操作日志写入

Owen Zhang

hyperf async-queue Redis异步队列任务

.Net Minimal API 介绍

MASA技术团队

C# .net 微软 接口 API

Apache APISIX 社区双周报 | 1.28 线上直播预约开启

API7.ai 技术团队

后端 社区周报

【OpenMLDB Meetup #1】会议纪要

第四范式开发者社区

机器学习 第四范式 OpenMLDB 特征平台

百亿级监控场景大数据分位值计算实践

百度Geek说

大数据 后端

深入浅出Apache Pulsar(3):Pulsar Schema

云智慧AIOps社区

云原生 消息中间件 schema Apache Pulsar 社区 java 编程

投稿有奖丨阿里云云服务器ECS开发实践征文活动

阿里云弹性计算

阿里云 ECS 征文活动

架构训练营 - 模块五作业

伊静西蒙

提效赋能:当企业在谈论数字化时,我们在谈论什么?

优秀

管理工具

政法委跨单位重点人员联防联控系统开发,重点人员管理平台

a13823115807

javaagent

淡泊明志、宁静致远

javaagent

详解策略梯度算法

行者AI

人工智能 强化学习

一图看懂 | 2021阿里云混合云的高能时刻

科技

网络安全kali渗透学习 web渗透入门 Layer子域名挖掘机收集信息

学神来啦

深入分析H2数据库控制台中无需身份验证的RCE漏洞

H

数据库 网络安全 漏洞

恒源云gpushare.com_Byte-Pair Encoding算法超详细讲解

恒源云

自然语言处理 深度学习 NLP 大模型

SSH 端口转发与 SOCKS 代理

CRMEB

火山引擎MARS-APMPlus专栏——iOS Heimdallr 卡死卡顿监控方案与优化之路

字节跳动终端技术

ios 字节跳动 性能调优 应用性能监控产品 运维监控

XSS跨站脚本攻击:获取键盘记录

喀拉峻

BigDecimal 被拼多多的"砍一刀"应用到了极致

恒生LIGHT云社区

Java 拼多多 Java中精确小数计算

Spock框架Mock静态资源经验汇总

FunTester

Mockito powermock Mock spock FunTester

中国AIOps们,你们究竟是在骗谁?

码农一米

云计算 云服务

Wi-Fi 6 提升了哪些方面?

BUG侦探

wifi MU-MIMO Wi-Fi 6 协商速率

深入剖析 HDFS 3.x 新特性-纠删码

五分钟学大数据

hdfs 1月月更

Hive底层 explain 执行计划详解

五分钟学大数据

hive 1月月更

机器学习让电脑也能画世界名画_语言 & 开发_张天雷_InfoQ精选文章