一种面向服装样板图分类的图卷积神经网络
2022-07-28赵晓臻童卫青刘咏梅
赵晓臻, 童卫青, 刘咏梅
(1. 华东师范大学 计算机科学与技术学院, 上海 200062;2. 东华大学 服装与艺术设计学院, 上海 200051)
0 引 言
服装样板图是服装工业生产中的“工程图纸”, 它既是产品排料、裁剪和缝制的技术依据, 也是对服装规格要求进行检验的质量标准. 当前在服装工业生产中, 裁剪与缝纫等工序已经达到一定程度的自动化, 而服装制版由于高度依赖设计师和制版师的经验, 其智能化研究还处于起步阶段. 未来的服装市场正面向客户个性设计方向发展, 这对服装样板的智能化生产和管理提出了新要求.
服装样板在设计过程中存在大量的重复工作: 零部件间微小差异而款式基本相同的设计和制版重复, 标准件和配件的重复等[1]. 服装制版智能化的目标是, 大幅度减少设计师与制版师的重复工作,通过建立服装款式图和样板图的大数据库结合智能化处理方法, 使得服装款式图设计和样板图的制作达到更高的智能化程度. 服装样板图的自动分类是实现服装制版智能化的重要技术, 对服装样板图分类技术的研究, 目前处于起步阶段, 只有少数学者[2-3]对此进行了一些探索.
在计算机视觉领域中, 卷积神经网络 (Convolution Neural Network, CNN) 适合处理图像对象, 并取得了较好成效. 对于点云、多边形网格等以图或不均匀点集为数据形式的对象来说却很难处理, 于是图神经网络 (Graph Neural Network, GNN)[4]应运而生, Gori 等[5]提出了图神经网络的概念, 深度卷积神经网络在图像领域取得令人瞩目的成绩后, 受图信号处理[6]对图信号卷积滤波定义的启发,Bruna 等[7]将频域卷积引入图神经网络中, 开始发展出基于空域卷积的图神经网络. Kipf 等[8]将频域图卷积定义简化, 使图卷积操作可以在空间域中进行. 图神经网络适合处理各类具有关联结构的数据(包括隐式关联的图像和文本, 显式关联的化学分子和社交网络等), 它可以进行节点层面、边层面和图层面的处理. 在化学分子分类[9]、社交网络推荐系统[10]、视觉问答与推理[11]和三维视觉等任务中应用图神经网络已取得了一定的成果.
图卷积神经网络在计算机视觉方面主要应用于点云和流形数据的处理. 在点云数据上的应用类似于CNN 模型在图像中的应用, 主要任务为点云整体分类、点云的语义分割、3D 目标检测等; 在流形数据上的应用主要有匹配映射、模型分割、模型生成、模型变形与编辑等. 通过彩色-深度相机、激光雷达、运动恢复结构技术, 可以容易地获取点云数据, 处理点云这类结构数据的技术得到比较快的发展, 出现了一系列直接运用于点云数据结构的深度神经网络模型, 比较典型的成果有: PointNet 系列[12-13]将多层感知机应用于点特征的处理; 形状关系卷积神经网络[14]通过定义点的几何关系使局部聚合操作对刚性变换具有鲁棒性; 稀疏栅格网络[15]将高维特征在低维网格中进行映射并进行卷积操作;核点卷积[16]将点与邻域映射到低维的伪网格中以计算特征向量.
文献[17]设计了高斯混合模型卷积 (Gaussian Mixture Model Convolution, GMMConv) 用于在欧氏空间或非欧氏空间中学习局部的、平稳的、组合的特定特征, 文献[18]提出了基于B 样条函数的卷积, 对CNN 算子进行了推广.
不同于点云、多边形网格这类比较单一的数据, 服装样板图不但图元多, 图元组织形式复杂, 而且各类服装部件在服装样板图中放置的位置具有随意性 (比如, 有的制版师把衣领部件放在样板图幅面的上部, 有的制版师可能会把衣领部件放在样板图幅面的下部).
针对服装样板图的数据特点, 本文首先提出了一种将服装板图转化为图数据的建模方法, 该方法不但可以保持原图形的拓扑结构, 还解决了部件放置的随意性问题, 进而提出了适用于上述图数据分类的图神经网络 (Garment Pattern Classification Graph Convolutional Network, GPC-GCN). 实验表明, 与既有的卷积神经网络和图神经网络相比较, 所提出的图数据建模法和图神经网络GPC-GCN 对服装样板图的分类具有更好的性能.
1 服装样板图的图数据建模
服装样板图是多图元的层次化集合, 属于非显式图, 在使用图神经网络处理前需要将其建模为图数据. 为了能利用图神经网络在计算机视觉中, 特别是在点云处理方面的成果, 本章将服装样板图建模为节点同质的加权图, 称其为图数据. 将服装样板图表达为图数据, 可以将服装样板图中的图元间的不同质关系转化为同质关系, 便于图神经网络的处理.
服装样板图一般保存在图形交换格式的文件中, 通过该图形交换格式的文件描述图元的信息及组织方式. 在进行服装样板图的图数据建模前, 需要对服装样板图进行以下预处理.
预处理1: 由于样板图中的注释字符和辅助点只起着说明作用, 不影响服装形状, 因此去除这两类元素.
预处理2: 由于不同设计师在服装样板图中使用不同线宽、线型 (点划线, 虚线等) 与颜色的图线,为了得到同质的节点, 并消除这些设计上的随意性, 将图线归一化为一个像素宽的黑色实线.
预处理3: 使用二次曲线方程与其质心统一表达.
式中: Δx, Δy分别表示两节点位置ci,cj的横坐标差和纵坐标差.
伪坐标是定义在节点对之间的属性, 表现为图数据中边的权重, 使用伪坐标可以更为直接地理解图形的局部性, 并可以使图数据对图元在平面上的位移与旋转具有鲁棒性.
图1 是服装样板图与其所对应的图数据的示例, 其中图1 (a) 为服样板图的图形表达, 图1 (b) 为该服装样板图所生成的图数据, 红点表示节点, 蓝线表示边. 如图1 (b) 所示, 在G中E比较稀疏, 这是因为线段是服装样板图中的主要元素.
图1 服装样板图与其所对应的图数据的示例Fig. 1 Example of garment patterns and the corresponding graphical data
为了更清晰地展示服装样板图的图数据构建过程, 给出了示例 (图2), 图2 所使用的数据为从实际服装样板图中选取的部分组件. 图2 (a) 为服装样板图中的一个组件, 图2 (b) 为对该组件进行归一化预处理后的结果,图2(c)为各图元节点与边的关系,图2(d) 为图数据的可视化表示. 建模一副服装样板图的时间复杂度为ON2,其中N是服装样板图中图元的数量.
图2 服装样板图的图数据构建示例Fig. 2 Example of constructing graphical data from garment patterns
2 GPC-GCN 的构建与实现
第1 章论述了把服装样板图转化为图数据的方法, 本章将设计一种能对服装样板图的图数据进行有效分类的图神经网络GPC-GCN.
2.1 GPC-GCN 的构建
与用于图像分类的CNN 网络的结构相似, 图神经网络由卷积层、池化层、读出层与分类处理层构成. GPC-GCN 把GMMConv 作为卷积层, 自注意力图池化 (Self-Attention Graph Pooling, SAG Pooling)作为池化层, 全局最大池化作为读出层, 最后全连接层作为分类器. GPC-GCN 使用层次化池化架构聚合特征, 即在每次卷积后均读出特征并聚合, 具体的聚合方式为将读出的特征连接起来. 图3 是GPC-GCN 的处理过程示例.⊕表示将3 个读出层的输出特征 (特征维数分别为32 维、64 维和128 维) 按顺序拼接为一个224 维的总特征, |V| 表示图数据中节点的数目.t表示输出特征,ti表示第i个读出层的输出;Vi表示经过i次卷积操作的图中的节点集合,V0表示经过0 次卷积操作的图中的节点集合,Vi,p表示经过i次卷积操作且下采样后输出的图中的节点集合;Gi表示经过第i层卷积后输出的图;Gi,p表示经过第i层卷积且下采样后输出的图. 图4是GPC-GCN 的结构.
图3 GPC-GCN 的处理过程示例Fig. 3 An illustration of the GPC-GCN process
图4 GPC-GCN 的结构Fig. 4 Construction of the GPC-GCN
由于图数据节点间的边是由服装样板图中直接连接关系生成, 节点的度较小, 在参考其他相关工作[13-18]的基础上, 本文设计了具有3 个卷积层的图神经网络.
图神经网络结构的研究主要聚焦在新的卷积操作 (或称为局部聚合操作) 的设计上, GPCGCN 选择了应用范围更为广泛的卷积操作设计. GMMConv 是MoNets 框架在非欧空间进行卷积的卷积层, 通过引入伪坐标, GMMConv 聚合目标节点与其相邻节点的特征从而得到目标节点的新特征.
(1) GMMConv 卷积处理
(2) SAG Pooling 处理
与CNN 中的池化相似, 在图神经网络中池化操作也是一个下采样的过程. 池化操作通过一个具有排列不变性的函数将特定区域中的特征聚合起来. 除了简单的最大值池化、均值池化、全局最大值池化和全局均值池化之外, 图神经网络中还逐渐出现了多种池化方法. 局部的池化方法有排序前K池化[19]、可微池化[20]、自注意力图池化[21]等. 排序前K池化提取最为活跃的K个信号聚合. 可微池化通过学习聚类分配矩阵分层进行池化操作, 将当前层的节点簇映射至下一层中的节点. GPC-GCN 选取自注意力图池化作为池化层, 利用自注意力机制来区分应该删除的节点和应该保留的节点, 采用注意力机制能够让神经网络更加“重视”某些节点特征. 基于图卷积计算注意力分数的自注意力机制, 同时考虑了节点特征和图的拓扑结构. 一个SAG Pooling 操作定义了注意力分值的计算机制以及依据注意力分值保留节点的操作
(3) 全局最大池化处理
GPC-GCN 选用的全局最大池化处理可以表示为
式中:ri表示读出的向量的第i个值,n为节点的序号,fn,i表示第n号节点所对应的特征向量fn的第i个值.
(4) 全连接层分类器
具有一个全连接层的分类器可以表示为
式中: 矩阵A是可学习的参数,b为偏置项, softmax 函数将返回输入属于各类的概率.
表1 展示了GPC-GCN 的参数设置. 对于向量, |·| 表示其维数, 如 |α|=32 表示向量α为32 维; 对于集合, |·| 表示其元素个数, 如 |V|=0.4N表示集合V的元素个数是节点个数的0.4 倍; 对于矩阵,|·|表示其尺寸, 如 |A|=2×6 表示A为2 行6 列矩阵.
表1 GPC-GCN 的参数设置Tab. 1 Setting of GPC-GCN parameters
2.2 GPC-GCN 的实现
GPC-GCN 的训练过程面临诸多问题, 所用数据集的类别不平衡问题比较突出, 数据集的相关信息将在第3 章给出. 由于图的设计不同, 迁移学习较为困难.
3 实验评估
为了验证本文所提出的GPC-GCN 图神经网络对服装样板图的分类性能, 使用自相似分形数据集和实际服装样板图数据集进行了实验.
3.1 数据集介绍
自相似分形数据集 (Linear Fractal Dataset, LFDSet) 是基于林登梅耶系统[23]生成的图形数据集.LFDSet 的生成参数有3 个, 分别是自相似分形函数、迭代数和旋转角. 随机组合这3 个参数, 共生成了包含有13 500 个随机分形图的LFDSet, 图5 是该数据集的部分样例 (图名标识了其3 个生成参数,如“Koch, 3, 30”表示由科赫函数生成的曲线, 迭代3 次, 旋转角为 [29◦,31◦] , 分形图形的初始角度服从均匀分布U=(0,2π) ). 从图5 可以看出, 当函数类型、迭代数和旋转角不同时, 函数图象的形状均会发生变化. LFDSet 可以按以下方法分成45 类.
图5 LFDSet 中的部分分形图形Fig. 5 Examples of data from the LFDSet
(1) 首先根据分形函数希尔伯特函数、科赫函数和谢尔宾斯基函数把LFDSet 分成3 个一级类.
(2) 对每个一级类分形图按其迭代数 (3 次、4 次、5 次) 分成3 个二级类.
(3) 对每个二级类分形图按其旋转角的范围 ( [29◦,31◦] , [59◦,61◦] , [89◦,91◦] , [119◦,121◦] , [134◦,136◦] )分成5 个三级类, 这5 个三级类的名称取其范围的中值, 分别为30°, 60°, 90°, 120°, 135°.
服装样板图数据集 (Garment Pattern Drawing dataset, GPDSet) 由GPDSet-A 和GPDSet-B 两个子集组成. GPDSet-A 里的服装样板图中的各部件排列比较规整, 如图1 (a) 所示, 而GPDSet-B 里的服装样图中的各部件排列不规整、存在着重叠等现象. 受服装样板图知识产权保护的限制, 本文所得到的实际服装样板图数据集GPDSet, 其样本数量不多且各服装种类的样板数也不太均衡, 该数据集的信息如表2 所示.
表2 GPDSet 中服装种类和数量统计Tab. 2 Statistics on clothing types and quantities on the GPDSet
3.2 分形图形的实验评估
为了验证所设计的图数据和图神经网络GPC-GCN 对仅有单一图形的分类性能, 在LFDSet 上进行了实验. LFDSet 的13 500 个分形图按9∶1 的比例, 划分成训练集与测试集, 然后分别用ResNeSt50[24], 图同构网络[25](Graph Isomorphism Network, GIN), 图卷积神经网络[9](Graph Convolutional Network, GCN) 和 GPC-GCN 进行分类实验. 实验选择了ResNeSt50、GIN 与GCN作为对比神经网络, 其中ResNeSt50 是最近发表的、在图像分类任务上具有良好性能的卷积神经网络, GIN 与GCN 都是在图基准数据集ogbg-molpcbaz[26]中表现良好的图神经网络. 实验均使用NVIDIA TITAN Xp 进行.
ResNeSt50、GIN、GCN 与GPC-GCN 均在LFDSet 的训练集上训练, 然后分别在LFDSet 的测试集上进行测试实验. 对于ResNeSt50 模型, 实验将分形图缩放并使用中心裁剪得到 (224×224) 像素的图像作为该模型的输入图像. 在训练ResNeSt50 时, 使用随机梯度下降SGD 优化器, 设置初始学习率为 2.0×10−3, 训练的批大小为128, 训练总次数为400 代. 在实验中, 对于GIN 与GCN, 在其公开代码的基础上, 修改其卷积层以匹配本文所提出的图数据, 将编码整数特征的编码器以全连接层替代,调整损失函数为加权的交叉熵损失函数, 设置批大小为4, 使用Adam 优化器, 学习率为 1.0×10−3进行训练与测试.
在LFDSet 上的对比实验结果如表3 所示. 表3 中的推断时间指完成1 次推断所用的时间. 可以看出对LFDSet 的图形, ResNeSt50 与GPC-GCN 具有相近的分类性能. 通过分析实验结果, 发现GPC-GCN 分类错误的图形都与图6 所示的具有相似形状但被归属于不同类的图形, 显然这类错误是可以被允许的. 在被ResNeSt50 分错的图形中, 除了图6(a)和图6(b)所示的这两类相似图形外, 还存在其他的分类错误, 如将“Hilbert, 4, 30”错分类为“Koch, 5, 30”的. 虽然从最终分类的准确率而言,这两种神经网络的分类性能相差无几, 但是分析其分类错误的性质, 可以发现两者还是有本质区别的.此外, ResNeSt50 的参数量约为 2.5×107, GCN 的参数量约为 6.0×106, GIN 的参数量约为 2.0×107,而GPC-GCN 的参数量仅约 1.0×106.
表3 4 种神经网络在LFDSet 上的分类结果Tab. 3 Classification results for four neural networks on the LFDSet
图6 LFDSet 中被分错的例子Fig. 6 Example of erroneous classifications in the LFDSet
3.3 服装样板图的实验评估
为了验证本文所设计的图数据与图神经网络GPC-GCN 对具有多部件分布图形的分类性能, 在GPDSet-A 和GPDSet-B 上, 分别用ResNeSt50、GIN、 GCN 和GPC-GCN 进行了分类对比实验. 由于GPDSet-A 和GPDSet-B 的样本数不是很大, 实验不对GPDSet 采取划分训练集与测试集的方式,而采取5 折交叉检验方法在分别在GPDSet-A 和GPDSet-B 上进行测试, 使用与3.2 节中相同的网络训练方式. 在进行实验前, 首先进行数据预处理, 本文第1 章中所述的图构建方法的平均用时为1.7 s;ResNeSt50 网络所使用的数据的前处理方式为将服装样板图图形文件的绘制结果保存为图像, 将图像缩放并使用中心裁剪得到 ( 224×224 ) 像素的图像, 该流程的平均用时为0.7 s.
表4 与表5 分别为在GPDSet-A 与GPDSet-B 的实验结果, 其中平均推断时间的定义同3.2 节.
表4 GPDSet-A 上的实验结果Tab. 4 Experimental results on the GPDSet-A
表5 GPDSet-B 上的实验结果Tab. 5 Experimental results on the GPDSet-B
表4 与表5 中的结果表明: GPC-GCN 与ResNeSt50 在处理部件排放规则的服装样板图的性能相差不大, 而在处理附件排放不规则的服装样板图时, GPC-GCN 明显优于ResNeSt50, 这是因为图数据建模具有部件位置不变性的特点, 从而使图神经网络GPC-GCN 对目标图形的旋转和部件位置具有非常好的鲁棒性. 在GPDSet-A 与GPDSet-B 上, GPC-GCN 的Top 1 准确率均明显优于GIN、GCN的Top 1 准确率.
4 结 论
本文主要阐述了两方面内容: 其一是提出了一种将服装样本图转化为图数据的建模方法, 该图数据不但能够保持服装样板图上每个部件的形状信息, 还解决了服装样板图中服装部件位置的随意性问题; 其二是构建了一种能处理这类图数据的轻量级图神经网络GPC-GCN, 该图神经网络由3 个卷积层、2 个自注意力图池化层、3 个读出层和1 个分类器组成. 在分形图库和实际服装样板图库上, 将GPC-GCN、ResNeSt50、GIN、GCN 之间进行了对比实验, 实验结果表明本文所提出的图神经网络GPC-GCN 具有比较好的分类性能. 后续可以考虑对其他不同用途的设计图纸进行图数据建模, 进一步检验图神经网络GPC-GCN 的性能.