编者按:本文来自微信公众号“量子位”(ID:QbitAI),作者:子豪,36氪经授权发布。
说起图像生成算法,大家也许并不陌生。
不过,大多数算法都针对栅格图像,也就是位图,而不支持矢量图。
虽然也有一些生成矢量图形的算法,但是在监督训练中,又受限于矢量图数据集有限的质量和规模。
为此,来自伦敦大学学院和Adobe Research的研究人员提出了一个新方法——Im2Vec,只需利用栅格训练图像进行间接监督,就可以生成复杂的矢量图形。
△Im2Vec的插值效果
为建立无需向量监督的矢量图形生成模型,研究人员使用了可微的栅格化管线,该管线可以渲染生成的矢量形状,并将其合成到栅格画布上。
△架构概览1
具体而言,首先要训练一个端到端的变分自动编码器,作为矢量图形解码器,用它将光栅图像编码为隐代码 z ,然后将其解码为一组有序的封闭向量路径。
对于具有多个组件的图形,模型则利用RNN为每条路径生成一个隐代码。
然后利用DiffVG对这些路径进行栅格化处理,并使用DiffComp将它们组合在一起,获得栅格化的矢量图形输出。
最后将栅格化的矢量图形与原本的矢量图形进行比较,计算二者之间的损失——多分辨率光栅损失,并利用误差反向传播和梯度下降方法来训练模型。
其中,编码的过程是这样的:
△架构概览2
使用路径解码器,将路径代码解码为封闭的贝塞尔路径,在单位圆上均匀地抽取路径控制点,以确保路径的封闭性。
接着,用具有圆形边界条件的一维卷积神经网络(CNN),对这些控制位置进行变形,以实现对点密度的自适应控制。
相比于控制点的均匀分布与段数相同,自适应方案调整采样密度,提高了重建精度。
同时利用训练的辅助模型,以复杂度-保真度进行权衡,确定路径的最佳分段数和路径控制点的数量。
△统一采样与自适应采样:(a)保真度vs片段数 (b)误差与片段数
最后,使用另一个一维圆形CNN对调整点进行调整,在绘图画布的绝对坐标系中输出最终的路径控制点。
为评估Im2Vec在重构、生成和插值3个任务中的定量性能,研究人员将其与基于栅格的ImageVAE和基于矢量的SVG-VAE、DeepSVG进行对比。
首先,计算各种方法和数据集的重建损失:
值得注意的是,在没有向量监督的情况下,SVG-VAE和DeepSVG均无法在数据集上运行。
同时,研究人员在不同数据集中,对各个方法的图形重构性能,进行了定性比较。
从字体重构的实验结果,可以看出:
Im2Vec可以捕获复杂的拓扑结构并输出矢量图形;ImageVAE具有良好的保真度,但输出的栅格图像分辨率有限;SVG-VAE和DeepSVG能产生矢量输出,但往往不能准确再现复杂的字体。
在MNIST数据集上训练的结果显示:
由于只有栅格数据,没有矢量图形基准,SVG-VAE和DeepSVG都不能在这个数据集上训练;
对于ImageVAE和Im2Vec,在没有数字类专门化或条件化的情况下,ImageVAE则受到低分辨率栅格图像的限制(图a),而Im2Vec能够生成矢量输出,因此具有相关的可编辑性和紧凑性优势;二者在生成插值上也都实现了较好的效果(图b)。
在Emojis和Icons数据集测试模型的重建性能,可以看到Im2Vec模型可以在任意分辨率下进行光栅化。
通过对不同方法的重构性能进行对比,研究团队得到结论:
虽然基于矢量的方法具有能够重现精确的矢量参数的优点,但它们受到矢量参数和图像清晰度之间非线性关系的不利影响。
SVG-VAE和DeepSVG所估计的矢量参数看似很小的误差,却可能导致图像外观的巨大变化。
而Im2Vec不会受到矢量参数和像素空间之间目标不匹配的影响,因而在重构任务中有显著的改进。
△Im2Vec插值性能的测试效果
△Im2Vec生成的随机样本
从实验数据可以看出,在FONTS和MNIST上,Im2Vec结果比其他方法都要准确,Im2Vec生成的随机样本,具有显著拓扑变化。
不过,Im2Vec也存在一些局限。
基于栅格的训练性质给Im2Vec带来了一定的限制,可能造成一些细微特征的丢失。这一问题可以通过牺牲计算效率提高分辨率,或者通过开发更复杂的图像空间损失来解决。
此外,由于缺乏向量监督,在特殊情况下,Im2Vec可能会采用包含退化特征的近似最优值,或者考虑语义上无意义的部分来生成形状。
Im2Vec的生成性设置支持投影(将图像转换为矢量序列)、生成(直接以矢量形式生成新的形状),以及插值(从矢量序列到另一个矢量序列的变形甚至拓扑变化),并且与需要向量监督的方法相比,Im2Vec实现了更好的重建保真度。
根据研究团队主页介绍,这篇论文已经入选CVPR 2021。
模型算法代码在GitHub上开源,感兴趣的读者可以通过文末链接查看~
相关链接:[1]https://arxiv.org/abs/2102.02798[2]https://github.com/preddy5/Im2Vec[3]http://geometry.cs.ucl.ac.uk/projects/2021/im2vec/