因为内容确实不过,搜遍了全网,来做 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》 1
这是 2021 年的一篇文章, 其实是有丢失一些信息的啦,只用了图像处理,是用 MATLAB 实现的,可惜好像是没有公开代码,不过看起来是没有太复杂
《Pixelated image abstraction》 2
看起来效果挺不错的,2012 年的一篇文章,但这个其实是没有用到深度学习了
pixel_character_generator 3
用 DCGAN、Conditional DCGAN、DC AutoEncoder 来做的角色生成,只能说是不太理想
Make Pixel Art in Seconds with Machine Learning 4
这个是用 CycleGAN 做的,其实效果还 ok 啦,这里说用卡通图进行训练要比真实场景的图片效果好,也确实卡通图的 domain 会和像素画比较接近了 这里顺手贴一个 cartoonset
这个结果确实很 awesome,但感觉主要是针对人脸,对其他 domain 的图片效果就比较一般了,虽然没有论文和代码,但是应该是先去背景,用 Pix2pix 生成,最后补上了描边
《Deep Unsupervised Pixelization》 6 7 8
这居然是发在 SIGGRAPH Asia 2018 的工作,np。通过无监督方法做的像素化,具体我还没研究。
作者就是通过 StyleGAN,用上面提到的 eBoy 上的数据进行训练的,有 pre-trained 模型在 colab,但是好像是不能运行了
Depixelate
去像素画的工作其实有很多啊,但是绝大部分工作其实都不是用深度学习来完成的,也没有太好的整理
《MMPX Style-Preserving Pixel Art Magnification》 10 11
还提供了一个 Web 工具,有多种算法的实现和对比 12 这里有我自己的一个 实现13,但说实话我感觉其实效果一般,可能还不如 xBR2X14
《Geometric Total Variation for Image Vectorization, Zooming and Pixel Art Depixelizing》 15 demo 16
也是没有用深度学习,直接图像矢量化了 np,可能大家都觉得从像素画到正常的图形应该不用深度学习吧 hhh
info
这两篇文章里面提供的几个算法都是可以参考的
Other Works
《Towards Machine-Learning Assisted Asset Generation for Games: A Study on Pixel Art Sprite Sheets》 17 18
这个工作主要是用 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,确实有点失望,还做了个软件付费:(
后面有时间我感觉我会试着做一下。

