电话咨询

电话咨询:010-62607600

微信咨询

微信扫码

ICCV 2021 Oral | Paint Transformer - 基于笔触预测的快速油画渲染算法

行业资讯 发布时间:2022-01-11 09:56:01 作者:深延科技

这篇专栏主要介绍我们团队(百度视觉技术部视频理解与编辑组)发表于ICCV 2021上的Oral工作:”Paint Transformer: Feed Forward Neural Painting with Stroke Prediction“。我们提出了首个基于前馈笔触预测来进行快速油画渲染的算法 Paint Transformer,可以快速将一张图片变成一幅充满质感的油画。相关的代码已经基于PaddlePaddle框架开源在PaintTransformer,欢迎大家试用和star。

研究背景

将一张照片通过算法模拟成某种绘画的质感,是计算机视觉以及图形学领域中的一个比较经典的任务。Siggraph 1998 上的一篇经典工作【1】,提出了一种基于图片梯度场来计算多尺度笔触参数的算法,我们去年下半年复现了这个算法,做了很多改进并进行了落地。但这个算法在效果上也存在很多的问题,比较突出的就是缺乏油画的质感,以及笔触比较杂乱,其核心问题在于其基于规则搜索笔触的方式很难获得好的笔触解。

image.png

度熊-传统方法绘制

在去年年底的时候,我们看到了网易伏羲实验室放出来的的油画渲染算法 Stylized Neural Painting[2],效果非常惊艳(见下面的gif)。比起暴力地生成大量笔触,这篇工作能够用相对较少量的笔触就勾勒出一幅惊艳的油画,同时,其逐笔绘画的过程也非常地吸引人。[2] 的核心算法思想是,固定渲染模块的网络参数,将笔触参数作为可优化的对象,通过优化的方式来寻找合适的笔画参数(包括颜色、坐标位置,旋转角度等)。这样的框架使得[2]具有很好的灵活性,可以针对多种不同的笔触类型(比如油画、水彩、方块等)来生成绘画结果。但同时因为需要优化,其处理一张图片的速度较慢,需要好几分钟的时间,这使得其难以落地。

image.png

Stylized Neural Painting (CVPR 2021)

算法框架

因此在读完[2]后,我们很直接的一个想法就是,能否将笔触参数生成从一个优化任务改变成一个前馈预测问题,从而将生成笔触参数的时间大大降低到一秒内呢?

基于这样的想法,经过很多的探索和试错,我们设计了一套基于Transformer的笔触参数预测网络,其网络结构如下图所示:

image.png

Paint Transformer 的输入是一张画布图图片和一张目标图图片,网络的任务是预测若干笔触参数,使得在图片上绘制这些笔画后,能得到与图片尽可能接近的图像结果。Paint Transformer 采用了与DETR 非常接近的网络结构,本质上,我们将笔画预测看作是一个旋转目标检测的任务。网络所预测的笔触参数包括笔画的中心点位置、长度、宽度以及旋转角(笔触的颜色也可以预测,不过后续我们发现直接在图像上采样颜色作为笔触颜色效果更佳),此外对于每个笔画还会预测一个二值的decision,用来判断是否要采用这个笔触(类似于DETR)。

image.png

在获得笔触参数后,区别于[2] 中所采用的神经网络可微渲染器,我们设计了一个可微的非网络渲染器。基于初始笔触图像以及笔触参数,我们采用仿射变换的方式获得变形后的笔触图像,并与画布进行融合。

算法的框架并不复杂,Paint Transformer 所遇到的主要难点还是缺乏合适的训练数据。因此,我们提出了一种基于仿真数据的训练框架,能够获得海量的数据用于训练。如下图所示,我们首先随机生成若干笔触参数并进行渲染得到画布图像图片,然后在图片的基础上,再随机生成若干前景笔触,并渲染得到目标图像图片,Paint Transformer 的预测目标即是预测这部分前景笔触。训练时,我们同时在笔触参数层面以及图像层面添加了损失函数约束,具体的损失函数设计可见论文。

image.png

Inference

在inference阶段,参考[2]中的实现,我们也采用了金字塔式的多尺度渲染,即先预测并渲染最大尺度的笔触(将整张图看做是一个1*1 的patch),然后再逐渐缩小范围。从而实现笔触从粗到细的绘画过程。算法流程如下图所示。

image.png

在实际实现中,每个笔触实际上都需要对一张初始笔触图做仿射变换再和画布融合。对于较精细的尺度,由于笔触数量较多,所以会比较耗时。我们实现了并行渲染和串行渲染两种方式,其中并行渲染需要1s左右,速度快,显存消耗高;串行渲染则速度较慢,5s左右(魔改优化了不少),其优点主要是能生成绘画过程,并且因为额外添加了笔触排序的策略,效果更佳。感兴趣的同学可以用开源代码试玩一下两种渲染方式的差别。

实验结果

除了直接渲染油画,我们还尝试了一些好玩的玩法,比如在油画的基础上添加风格化。

image.png

或者是把大师的油画重新画一遍。

image.png

讨论

这篇工作的核心贡献,主要是将笔触参数生成定义成了一个新的任务,即预测能尽可能缩小画布图和目标图差异的笔触集合。也因此,在仿真数据下训练好的网络,在真实图像上也能够实现“将画面合理地填满”的任务。当然,Paint Transformer 也还有很多不足之处,比如不像[2]一样能够支持更复杂的曲线笔触,以及细长笔触生成效果不佳等问题。这些都是值得后续研究的问题。

参考资料

【1】Hertzmann A. Painterly rendering with curved brush strokes of multiple sizes[C]//Proceedings of the 25th annual conference on Computer graphics and interactive techniques. 1998: 453-460.

【2】Zou Z, Shi T, Qiu S, et al. Stylized neural painting[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 15689-15698.

来源:知乎
作者:林天威

立即使用深延AI平台