首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NIPS 2017:用卷积网络生成ASCII码字符画并进行着色

作者:Bot

来源:论智

几天前,我们送走了2017年最后一场机器学习顶级会议NIPS 2017。虽然正会开完了,但它的热度依然不减,近几日,一个入围NIPS 2017机器学习创意和设计(Workshop for Machine Learning for Creativity and Design)的趣味项目就在twitter上被玩坏了。据论智了解,作者Osamu Akiyama提出了一种用CNN把图形转成ASCII码字符画的方法,并在昨天更新了着色工具,这让不少机器学习开发者都玩high了。

上图即是ASCII码字符画着色前、着色后的效果。整个过程可分为两部分,一是用CNN生成字符画,二是用CNN着色。对于前者,作者已经在github上公开了数据集等资料,并在论文中详细解释了神经网络的搭建方法;而对于后者,作者直接做了个填色工具,因此已经有字符画的读者可以去网站上传图像尝试。

注意:该工具只在落廓清晰、画面干净的白底字符画上有不错效果,网站只支持图片,不支持文本文档。

项目思路

在论文中,作者首先介绍了CNN用的数据集。他从日本BBS 5channel和Shitaraba上收集了500张ASCII码字符画,并将之作为数据集。在这个过程中,他发现了一个不小的问题,就是许多人在上传手工制作的字符画时并不会援引原图,这就使机器学习算法无法学习如何把线条转换成文本。

为了解决这个问题,Osamu Akiyama使用了其他研究人员创建的一个神经网络清理工具,能把ASCII码字符画逆向还原成线条图。如上图所示,这个工具不仅能删除多余的字符,还能大胆恢复一些丢失的线条,使得整个画面更连续流畅。通过把这些经还原的图片作为输入对神经网络进行训练,他的网络能了解哪些字符是适合被用来创建图片的。

Osamu Akiyama使用的是一个CNN,其中包括7个卷积层、3个最大池化层、两个全连接(FC)层以及一个输出层,整体架构受VGC网络启发,简单来说,就是C64-C64-P-C128-C128-P-C256-C256-C256-P-FC4096-FC4096-O411。

经训练,作者发现神经网络生成的图片可以与手工制成的ASCII码字符画一较高下,如下图所示:

其中第一行是输入图像,第二、第三行是网上两个字符画生成工具生成的图像,第四行是Osamu Akiyama神经网络生成的图像,而最后一行由专业制作字符画的艺术家制作的图像。可以看出,神经网络在轮廓描绘和细节保留上都远胜于其他对照组。

事实上,大篇幅介绍字符画生成的目的就是为了最后的着色,经小编验证,Osamu Akiyama的配套CNN着色器在线条明显、画面整洁简单的图像上效果更好。例如上图中人工完成的最后一行字符画,比起神经网络的成果,它们的线条较不流畅,这会影响填色区间判定。此外,它们对头发、衣服进行了“着色”处理,这在黑白显示时可能更形象,但放进着色器后出来的效果就不尽如人意了。

生成ASCII码字符画

所有资料、数据可前往作者的github下载(https://github.com/OsciiArt/DeepAA)。

环境

TensorFlow(1.3.0)

Keras(2.0.8)

NumPy (1.13.3)

Pillow (4.2.1)

Pandas (0.18.0)

Scikit-learn (0.19.0)

h5py (2.7.1)

模型下载地址(下载后放入目录中的model):drive.google.com/file/d/0B90WglS_AQWebjBleG5uRXpmbUE/view

训练数据地址(下载后将提取的目录放入目录中的data):drive.google.com/file/d/0B90WglS_AQWebjBleG5uRXpmbUE/view

如何运行

更改output.py的第15行代码:

改成你使用的图像文件的路径。注意:图像必须是黑灰色线条画。

之后运行output.py,生成的图像会在output/处显示。

如果你想用轻型模型,你可以把output.py的第13、14行改为

填色效果演示

以下是论智君的几种尝试:

来源:谷歌搜索(盗图)

生成图片

来源:作者GitHub

生成图片

来源:作者GitHub

生成图片

调色图片

调色图片

小编色感堪忧,无法调出和谐的颜色,但根据这些图我们也能直观感受到,这跟黑白的ASCII码字符画简直是两个世界啊!

最后,我们再总结一下涉及的重要地址:

字符画CNN资源:github.com/OsciiArt/DeepAA

论文地址:nips2017creativity.github.io/doc/ASCII_Art_Synthesis.pdf

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171213G0R61W00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券