基于VGGNet-16的满族服饰识别研究
2024-03-15金丹,邹珍
金 丹,邹 珍
(1.沈阳市轻工艺术学校 服装系,沈阳 110031;2.杭州鸿盛启科技有限公司,杭州 311199)
满族作为我国人口最多的五大少数民族之一,具有悠久的历史与丰富的文化,而满族服饰更是我国的文化遗产之一,以其独特的款式与精巧的纹络设计著称,是游牧民族在我国发展历程中最为重要的利益文化,并且深受国内外服饰研究人员的青睐,对中华服饰文化的研究有着举足轻重的意义。伴随着影视产业的不断发展,越来越多的清宫剧与古装剧将满族旗袍应用其中,提高了观众对满族旗袍服饰的认知兴趣。但是大多影视剧制作者并没有完全掌握满族传统服饰蕴含的深刻内涵,影响了观众对满族服饰的认知结果,使得满族旗袍服饰这一物质文化形态长期处于被曲解的状态中。为解决这一困扰,有必要提高人们对满族服饰纹络的细节认知。
旗袍因地域、风俗习惯的差异形成了不同的样式,包括海派式、棉式、传统式和现代式,因制作工艺流程的发展而各具不同的历史特点。戏剧行业一直沿用“宁穿破,不穿错”的原则,旗装戏中的满族旗袍,因受戏剧服饰制度的限定而保持着长久不变的样式,特征鲜明且恒定。虽然历尽年岁更迭,但是始终没有过多的变化,保持了满族服饰的原始特征。
针对满族服饰文化的发展现状,为更好地将这一文化形态持续、永久地传承下去,避免传统文化的消亡,以青衣服饰特征为研究标准,结合虚拟技术,将满族服饰同神经网络技术相互结合,让现代人充分地了解与感悟传统满族服饰的真正内涵;采用VGGNet-16模型对满族服饰进行识别,增强高精确度与有效的纹络提取与识别,促进人们对满族服饰纹络的了解与认知。
为高效识别满族服饰的关键特征[1],向忠等[2]采用Canny边缘检测、HSV 颜色空间对印花织物轮廓及颜色特征进行提取,通过决策树分类器识别,准确率达到65%;Zhang等[3]运用二值蒙版投影对着装图像进行粗糙形状描述,以获取服装的颜色直方图及HOG特征,最后通过决策树分类服装;夏帆等[4]根据服装轮廓的几何特征,将轮廓曲线的曲率极值点作为特征向量,结合支持向量机进行分类。上述研究方法依赖高质量的输入图像,特征提取过程需要人为设定。基于卷积神经网络的特征提取和分类识别则提供了新的研究方法,减少了人为干预,在精确程度及分类效率上有大幅度提升[5]。Dong等[6]在VGGNet中引入“空间金字塔”池化策略,提高了不同大小及比例的输入图像下服饰的识别精度,准确率达到98.7%;吴欢等[7]运用Caffe Net模型对服饰廓形分类,识别服装整体及细节特征。但上述方法都只对单一属性分类识别,不能较好地描述青衣服饰的整体特点,使得识别结果的精确度下降,且没有对分类结果一致化处理,导致识别准确率降低、效率差等。
为解决上述问题,采用卷积神经网络识别服饰。首先对图像预处理,去除冗余点,提取训练集;然后由VGGNet-16构建模型,提取特征值,实现特征识别;最后进行仿真试验,确保算法的可行性。
1 满族服饰特征
满族作为一个游牧民族,长期与牛、羊、马等动物相处,使得这些游牧动物成为了满族人民赖以生存与发展的自然事物之一。因此,满族人民的重要习俗是每年都要祭奠狗神、马神等动物神灵。这种习俗在满族服饰中则体现在纹络中的动物图案上,包括鹿、牛、金鱼、蜜蜂、蝴蝶、龙、龟等。人们通过这些动物的生活习性与面部表情完成纹络图案的绘制与刻画,进一步形成了具有极佳装饰性的服饰纹络。
游牧民族同样对植物具有极大的依赖性,因此,传统的满族人民会将植物图案裁剪成各种动物形状,并将它们连缀在一起,得到萨满服饰图案。常见的服饰植物包括藤草、毛草、羊草。最初的服饰图案是动植物的本身形状,之后逐渐演变为其中的某一个部分,最后通过一个抽象图案完成动植物的灵魂表达。如牛头代表牛,鹿角代表鹿,翅膀代表鸟,树皮代表树,尤其是桦树皮,其颜色洁白且层多,每层象征一片天,桦树皮被视为最高的白云山,并且逐渐演化为一种对白色的崇尚。常见的动植物纹样,如图1所示。
图1 动植物纹样
除去动植物对满族文化的深刻影响,满族人民同样使用谐音词汇来代表满族传统纹样,寓意吉祥平安。依据事物读音而创造的服饰纹样包括白鹤、白头、葫芦、葡萄、莲子、莲花、猴子、马、鲤鱼、蝙蝠、花生、喜鹊、蜘蛛等,每一种图案都有其独特的象征意义。比如白鹤——百年好合,隐喻长寿;白头——白头偕老,隐喻婚姻美满幸福;葫芦——福禄双全,隐喻生活幸福富裕;莲子——怜子,隐喻可爱有出息的子孙;猴子、马的组合纹样——马上封侯,隐喻荣华富贵;鲤鱼——鲤鱼跃龙门,隐喻功成名就、一举成名;蝙蝠——得来偏福,隐喻幸福常在;花生——花着生,隐喻儿女双全、子祠兴旺;喜鹊、梅花的组合纹样——喜上眉梢,隐喻好事常伴;蜘蛛——谐音知足,隐喻知足常乐。常见的谐音词汇纹样如图2所示。
图2 谐音词汇纹样
2 满族服饰的识别
2.1 图像预处理
采集谷歌搜索的满族服饰,进行二值化处理,得到满族服饰及其近似矩阵信息,去冗余处理,得到没有大量0元素或残缺元素的矩阵。将压缩后的矩阵信息进行数据集的构建,获取初始训练集Train,通过卷积神经网络模型预处理训练集Train,得到粗粒度预测集合Test,并编号标记。图像像素去冗余的操作流程,如图3所示。
图3 去冗余流程
2.2 VGGNet-16模型的构建
针对满族服饰中特征信息的复杂性与多样性,采用VGGNet-16结构[8-9]来实现对服饰特征的识别,主要优势[10]如下。
(1)使用大量的小型滤波器,包括3×3和1×1大小的滤波器,且步幅均为1,简化了操作流程。
(2)最大池化层的滤波器均为2×2,步幅为2,能够得到更高精确度的识别效果。
(3)将大型滤波器分解为几个小型滤波器的叠加,然后再将叠加后的特征图像池化,确保整体与局部的良好连接。
(4)卷积层的结构相同,均先卷积,后对每个特征图最大池化,便于使用者的理解与使用。
(5)网络结构简单,深度较深,最佳的网络深度卷积层数达到了16层或19层,虽然比之前的卷积神经网络模型要深,但是能够有效提高分类处理结果。
优化VGGNet-16 模型来设计特征识别,由文献[11]、[12]得知,VGG16性能最优,其框架结构如图4所示。
图4 VGG16结构图
由图4可知,VGG16结构包括卷积层、Re Lu层、maxpool层、全连接层和soft max层,卷积核步长为1,padding为1,maxpool为2,步长为2。选用具有最少参数的3×3 卷积核且连续堆叠3 个,结构如图5 所示。
图5 网络模型
为提高识别性能,保留原始纹理,凸显识别特征,选用Max Pooling来完成特征的提取与更新。最大池化过程如图6所示。
图6 最大池化采样流程
采用最大池化的优势如下。
(1)降维,压缩冗余,简化网络复杂度。
(2)非线性处理,支持全部细节处理。
(3)扩大感知野。
为消除局部与细节偏差,提高识别与分类精度,对主要特征进行描述,完成优化,实现特征提取。
2.3 特征提取
为快速识别特征,全连接层使用Dr opout随机失活神经元来减少过拟合。具体结构如图7所示。
图7 特征提取结构
由图7可知,第一层和第三层采用1×1卷积核连接神经层,第二层采用3×3 卷积核提取特征。由于Re Lu激活层易致冗余,因此由Max Pooling完成二次采样,采用Soft Max回归层输出满族服饰类别,提高算法准确率。
针对上述算法的优化,主要步骤如下。
第一步:假设θ=θk,求J(θ)在θk的倒数∇J(θk);
第二步:改变θ且按照梯度下降的方向减少J(θ),计算公式有:
式中:α表示梯度负方向的搜索步长,将θk+1迭代赋值给θk,重复第一步与第二步,得到最优值θk+1,每层提取单一特征,回归层能提取到全部特征,完成满族服饰的识别。
2.4 服饰识别
网络模型的参数,见表1。
表1 网络模型参数
特征识别的主要步骤如下。
第一步:定义网络的参数,包括图像的高度、宽度,分类的类别等。
第二步:构建优化后的VGGNet-16框架,由Tensor Flow 框架创建卷积层与Maxpool层。在第二和第三卷积层中,采用3×3卷积核且每个卷积层使用Re-Lu激活函数。
第三步:展平处理矩阵,得到6×6×128的一维向量。
第四步:在Tensor Flow 中使用Dr opout函数,按比例随机失活神经元,防止过拟合。优化使用的参数是0.2,即失活的比例为20%。
第五步:在全连接层使用Re Lu 激活函数,使用Soft Max将输出转化成概率分布。
然后,调整训练模型,优化训练参数,具体步骤如下。
第一步:定义训练集的长度、大小与方向。
第二步:优化设计VGGNet-16模型,在同一层将某些神经元之间的连接权重共享,同时保存模型权重。
第三步:输入训练图像图片的宽、高、batch_size、训练迭代次数等参数。将batch_size定义为32,迭代次数定义为10。
第四步:对每批图像训练的数目及其模式进行设计,采用的分类方式为Categorical。
第五步:分类器Yi和Wa对应1和0。将key和Value翻转,旨在通过索引获取相应服饰的类别。
第六步:定义验证集的图像生成器,将shuffle设置为False。
第七步:实例化识别网络。
满族服饰识别模型中采用Ada m 优化器来设置初始学习率为0.000 5,通过监控验证集的损失率,保存训练模型中识别效果最好的权重值,以完成训练参数的优化。
最后,对满族服饰图像的数据进行采集并且完成识别处理,步骤如下。
第一步:输入需要识别的图片参数。
第二步:扩充图片的维度,读取其batch值。
第三步:实例化网络结构。
通过以上步骤,完成了服饰的读取和分类识别,返回概率最大值的类型,读取民族分类与识别。
2.5 实际应用
在谷歌搜索引擎中搜索“满族服饰”,通过粗粒度的搜索词查询,能够得到满族服饰及与之近似的服饰,得到的搜索结果如图8所示。
图8 搜索到的满族服饰信息
为减少近似满族服饰对满族传统服饰的影响,选择以青衣为代表的满族服饰,通过图像预处理,将青衣满族服饰细粒度提取出来,得到的预处理结果如图9所示。
图9 预处理后的满族服饰
将上述满族青衣服饰提取出来后,依据特征纹络,对其花纹及细节进行提取,得到服饰的局部特征与细节内容;基于VGG16结构的满族服饰识别算法,依据服饰的花纹细节,提取出满族青衣服饰的主要特征信息,如图10所示。
图10 服饰特征
在完成服饰纹络及细节的识别与提取后,针对不同的服饰环境,进一步扩展其纹络的整体花纹,并将整幅图片进行重新展示,以准确识别满族青衣服饰,如图11所示。
图11 满族青衣服饰
依据最终的识别效果,提高人们对满族服饰文化内涵的了解与认知。
3 识别效果分析
3.1 试验环境
处理器:Intel(R)Core i7-6700 CPU 3.40 GHz;
显卡:NVIDIA GeForce GTX 1080;
显存:16 GB;
内存:32 GB;
操作系统:Linux Ubuntu 14.04;
软件平台:Anaconda Pyt hon 3.6;
卷积神经网络框架:Tensor Flow 1.0.0;
图像处理库:Open CV 3,PIL(Python Imaging Library)。
数据集采用谷歌搜索的满族服饰,由于粗略的搜索条件,导致数据集中包括汉族、藏族、蒙古族、朝鲜族、满族(假定为10 000幅)、羌族、佤族、白族、壮族、维族、苗族等共计12 000幅图像。
3.2 评价方法
试验在Tensor Flow 2.1.0[13]上实现,最大迭代次数为500,学习率为0.000 1,参数初始值服从均值为0的高斯分布。算法精准度(Precision)和召回率(Recall)在多分类模型中很难评价模型,而平均精度(Average Precision,AP)综合精准度和召回率,平均精度值(Mean Average Precision,MAP)是AP 求均得到的,提高了对模型评价的准确度。
精准度的计算公式如下:
式中:NTP为被判定为正确的目标个数;NFP是被判定为错误的目标个数。
召回率一般指的是某类目标对应的识别率,其计算公式如下:
式中:NFN为漏检的个数。
MAP的定义如下:
式中:QR是数据集R的总类数;q为数据集的类数。MAP值越大,分类效果越好。
3.3 识别效果
12 000幅图片预处理得到11 000幅满族及其相近服饰。为验证算法的精确度,将算法同基于阈值分割的服饰识别算法[14]与基于改进Dense Net-BC 的少数民族服饰识别算法[15]进行对比。
以迭代次数为横坐标,对算法的特征精确度进行测试,得到的测试结果如图12所示。由图12可知,随着迭代次数的增加,算法精确度均随之上升,并且上升趋势优于其他2个算法,且最终稳定值高于其他算法,算法较于基于阈值分割的服饰识别算法,精确度提高6.35%,而较于基于改进的Dense Net-BC 的少数民族服饰识别算法,则提高7.18%。这是因为文献[14]对卷积神经网络与Alex Net网络进行的优化,能获取较好的识别精确度,但是没有改进损失函数,随着迭代次数的增加,损失程度会相应叠加;而文献[15]采用改进的Dense Net-BC模型,但对注意力机制改进时没有对细节特征进行识别。
图12 精确度测试结果
对比MAP数值的结果,如图13所示。由图13可知,随着迭代次数的增加,MAP 数值均随之上升且趋于稳定,算法较于基于阈值分割的服饰识别算法提高了6.71%,而较于基于改进Dense Net-BC 民族服饰识别算法提高了6.50%。这是因为文献[14]与[15]的算法均没有对分类识别效果进行优化处理,所以算法优于其他2个算法。
图13 MAP数值对比
综上所述,算法的识别精确度高于其他算法,并且识别结果更优。
4 结束语
优化设计了VGGNet-16模型,在此基础上完成对青衣特征的分类与识别。首先,采集谷歌搜索的满族服饰,去除冗余零元素;其次,优化设计模型结构,全连接层使用Dropout随机失活神经元来减少过拟合,对训练模型进行卷积处理,优化参数;最后,对主要特征进行分类与识别。通过试验验证,优化后的VGGNet-16模型能够高效率、高精确地识别满族服饰,并且能够推广使用。