URL
https://arxiv.org/pdf/2007.11301.pdf
TL;DR
- 深度学习在光栅图上取得了极大的成功,但在矢量图上的表示和应用未被探索,矢量图相较于光栅图有无损缩放能力
- 本文给出一种便于深度学习使用的矢量图表示方法,且将 SVG 的最小表示集合缩小为
{<path>}
- 本文提出一个 SVG 数据集 SVG-Icons8
Dataset/Algorithm/Model/Experiment Detail
SVG 图像的结构化表示
- 一个
SVG
由 Np 个 path
组成,即 V={P1,...,PNp}
- 一个
path
由一个三元组表示,即 Pi={Si,fi,vi}, Si:shape, fi:fill property, vi:visibility
- 一个
shape
由 Nc 个 command 组成,即 Si={Ni1,...,NiNc}
- fi∈{0,1,2}, vi∈{0,1}
- 一个 command 由一个二元组表示,即 Cij=(cij,Xij) ,分别表示 command type 和 argument
- command type ∈
{<SOS>, <M>, <L>, <C>, <Z>, <EOS>}
- 一个 command argument 由一个六元组表示,即 Xij=(qx1,ij,qy1,ij,qx2,ij,qy2,ij,x2,ij,y2,ij) ,默认值为 -1,使用六元组的原因是对齐
<C>
的参数长度
- 为了简化 Nc, Np 都采用确定值
SVG Embedding
每个 command
Ci 被映射到一个 dE 维的向量 eij , eij=ecmd,ij+ecoord,ij+eind,ij
- command embedding
ecmd,ij=Wcmd δcij∈RdE ,其中 Wcmd∈RdE×6, δcij∈R6, δcij is one hot vector
- coordinate embedding
ecoord,ij=Wcoord vector(WX Xij)∈RdE, Xij=[qx1,ij,qy1,ij,qx2,ij,qy2,ij,x2,ij,y2,ij]∈R257×6
- index embeding
eind,ij=Wind δj∈RdE, Wind∈RdE×Ns, δj is one hot vector
path 标签使用方式
SVG-Icon8 数据集样例
DeepSVG 网络结构
- 一个 VAE 结构,由两层 Encoder 和 两层 Decoder 构成
Thoughts
- 本文提出的 SVG 结构化表示有利于应用矢量图作为神经网络的输入
- 本文的 SVG 数据集都是矢量 Icon,只包含 path 标签且无填充无透明度,对于真实光栅图应该用 path 标签 + 填充 + 透明度来表示,即拓展上述的 SVG 表示