用CNN把图形转成ASCII码字符画的方法,并更新了着色工具

几天前,我们送走了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行代码:
image_path = 'sample images/original images/21 original.png'# put the path of the image that you convert.
改成你使用的图像文件的路径。注意:图像必须是黑灰色线条画。
之后运行output.py,生成的图像会在output/处显示。
如果你想用轻型模型,你可以把output.py的第13、14行改为
model_path = model/model_light.json
weight_path = model/weight_light.hdf5
填色效果演示 正如之前提到的,昨天作者更新了新的cnn填色工具,可以为以上神经网络生成的图像着色。因为他还没有公开这个工具的设计思路,所以小编在这里只放出paintschainer地址:paintschainer.preferred.tech/index_en.html。如网站所示,它只支持图片上传。
以下是论智君的几种尝试:
来源:谷歌搜索(盗图)
生成图片
来源:作者github
生成图片
来源:作者github
生成图片
调色图片
调色图片
小编色感堪忧,无法调出和谐的颜色,但根据这些图我们也能直观感受到,这跟黑白的ascii码字符画简直是两个世界啊!

国内急需智能数控机床品牌厂家的原因
5G车联网需要哪一些技术来支持一起发展
激光雷达与自动驾驶的产业化之路
风力发电机的原理、结构、应用及优缺点
《守望先锋联赛》上海龙之队公布第二赛季6名新选手名单
用CNN把图形转成ASCII码字符画的方法,并更新了着色工具
传华为将推电动汽车,官方回应
新总统特朗普出招萝卜加大棒 苹果生产线回美再起波澜
2024年全球智能手表出货量将增长17%
汽车安全--ASP防瞌领航员技术
马达保护系统:为电机提供全方位保护
全球首个发布的骁龙X50 5G Modem
研究人员创造能够与附近设备进行被动无线通信的纳米纹身
奔驰车主要获得“凡星”和“小me星”智能机器人的服务
智慧工地设备
微雪电子树莓派B+/配件包C简介
5G遇上智能安防能有效的预防贼吗
荣耀YOYO智能音箱高清图赏
海尔生物从生物医疗低温存储引领者到物联网解决方案创领者
看看蓝牙实时定位系统如何助力Dyer Engineering月省1万英镑?