因为内容确实不过,搜遍了全网,来做 Deep Learning for Pixel Art 的工作也没多少,肯定是实在是没有市场了吧 hhhh。
先说 GitHub 上一堆标着 pixel-art-generator
或者 image-to-pixel
的,前者大多是随机生成的,无意义的像素块,后者大多是拿 OpenCV
或者什么其他的图像处理的库 resize
一下就完了,最多能给你加个 filter
就不错。
只能说,像素风这种略抽象,却需要非常具体的东西,很可能现在还搞不定。
什么是 Pixel Art
关于像素画的定义,我倒是听过很多种,不过这种我感觉会因人而异吧,毕竟像素风也是在发展的,早些年画的像素人物风格已经和现在有较多差异了。
首先,一个共识就是,无抗锯齿,也就是每个像素都是具体的,不要有模糊的边界。毕竟像素画是基于像素的艺术,需要基于像素的修改
剩下的我感觉就因人而异了,有的人比较喜欢带边框的,有些人喜欢无边框,或者半边框,或者不连续不边框的。
其次,关于像素画的色彩,其实现在是没有要求的,之前可能由于电脑限制只有 8-bit 的色彩,但是现在几乎所有颜色你都可以使用,但是肯定不能太多(这里只是针对小篇幅)
画廊 & 数据集
在开始前,让我们先来瞅一眼画廊和数据集吧!
画廊
eBoy: https://hello.eboy.com/pool/everything/1
上面很多作品都很赞啊!
PixelJoint: https://pixeljoint.com/
是一个像素画论坛的画廊,作品只能说有优有劣
OpenGameArt: https://opengameart.org/art-search?keys=pixelart
做一个像素画的过滤,还是有比较多作品的
spriters-resource: https://www.spriters-resource.com/nes/
有一些精灵和游戏截图
probertson: https://probertson.tumblr.com/
都是带制作
数据集
sprites: https://paperswithcode.com/dataset/sprites https://spritedatabase.net/download
GitHub 上的一些数据集
- https://github.com/AgaMiko/pixel_character_generator/blob/master/data.zip
- https://github.com/avidvid/OUP/tree/master/Downloads/Characters
优秀的项目
那让我们先来看一下比较优秀的项目吧!
info
这一部分一共有两内容,一个是Pixelate
也就是 像素化,一个是Depixelate
也就是 去像素化。
Pixelate
info
下面有些文献我还没有阅读,仅供参考哈!只有部分工作用到了深度学习,这里我就不加区分了。 另外我也就不加项目和论文的区分了哈,都放一起说了,论文会加书名号
《Automatic portrait image pixelization》 [pdf]
这是 2021 年的一篇文章, 其实是有丢失一些信息的啦,只用了图像处理,是用 MATLAB 实现的,可惜好像是没有公开代码,不过看起来是没有太复杂
《Pixelated image abstraction》 [pdf]
看起来效果挺不错的,2012 年的一篇文章,但这个其实是没有用到深度学习了
pixel_character_generator [code]
用 DCGAN、Conditional DCGAN、DC AutoEncoder 来做的角色生成,只能说是不太理想
Make Pixel Art in Seconds with Machine Learning [url]
这个是用 CycleGAN 做的,其实效果还 ok 啦,这里说用卡通图进行训练要比真实场景的图片效果好,也确实卡通图的 domain 会和像素画比较接近了 这里顺手贴一个 cartoonset
这个结果确实很 awesome,但感觉主要是针对人脸,对其他 domain 的图片效果就比较一般了,虽然没有论文和代码,但是应该是先去背景,用 Pix2pix 生成,最后补上了描边
《Deep Unsupervised Pixelization》 [pdf] [sup] [code]
这居然是发在 SIGGRAPH Asia 2018 的工作,np。通过无监督方法做的像素化,具体我还没研究。
作者就是通过 StyleGAN,用上面提到的 eBoy 上的数据进行训练的,有 pre-trained 模型在 colab,但是好像是不能运行了
Depixelate
去像素画的工作其实有很多啊,但是绝大部分工作其实都不是用深度学习来完成的,也没有太好的整理
《MMPX Style-Preserving Pixel Art Magnification》 [page] [pdf]
还提供了一个 Web 工具,有多种算法的实现和对比 [url] 这里有我自己的一个 实现,但说实话我感觉其实效果一般,可能还不如 xBR2X
《Geometric Total Variation for Image Vectorization, Zooming and Pixel Art Depixelizing》 [pdf] demo [code]
也是没有用深度学习,直接图像矢量化了 np,可能大家都觉得从像素画到正常的图形应该不用深度学习吧 hhh
info
这两篇文章里面提供的几个算法都是可以参考的
Other Works
《Towards Machine-Learning Assisted Asset Generation for Games: A Study on Pixel Art Sprite Sheets》 [pdf] [blog]
这个工作主要是用 Pix2pix 给像素画上色,提供了一个不错的思路,主要是先搞定明暗关系,再给角色语义分割一下,最后生成各种颜色的角色(很适合做 NFT hhhh)。可惜代码没开源、数据集未公开。
绘制工具
像素画的绘制工具可太多了,这玩意毕竟是其他图片编辑器的降维打击,除了传统图片编辑器基本都支持像素画以外,目前比较专业的也是用的人最多的就是 aseprite.
aseprite: https://github.com/aseprite/aseprite
这玩意虽然开源,但是需要自行编译,或者去 steam 上购买
LibreSprite: https://github.com/LibreSprite/LibreSprite
这个用了 aseprite 最后一个 GPLv2 的 commit 衍生出来的,有 release,也不错
另外的一些项目就太多,还是之前说的,基本实现没什么难度,反复造轮子罢了。
结语
现在基于 GAN 的结果,很容易发现的一个现象就是 太脏了
,主要是细微噪声太多,这也是最开始说的,像素画虽然抽象,但是每一个像素非常具体,不应该存在色差较小的过渡,细微的色差虽然能够引来色彩的变化,但是他太连续了,看起来也就没了像素画内味 er,基本不会有人承认他是像素画的。而像 pixel-me
这样的优秀项目,除了进行了一些 GAN 上的操作,在 GAN 前和 GAN 后也一定做了一些图像处理,不过他却没 Open Source,确实有点失望,还做了个软件付费:(
后面有时间我感觉我会试着做一下。