吴 欢, 丁笑君,, 李秦曼, 杜 磊,, 邹奉元,
(1. 浙江理工大学 服装学院, 浙江 杭州 310018; 2. 浙江理工大学 浙江省服装工程技术研究中心, 浙江 杭州 310018)
通过机器视觉实现服装商品的自动分类,便于在线零售商对带有标签或与服装相关描述的图像进行自动标注,并在社交网络照片的设置中改进信息检索,有助于用户跨越语义鸿沟检索到心仪的商品,增强购物体验。此外,服装的可视化分类识别有利于设计师收集服装元素及分析时尚流行趋势。
国内外学者集中于从图案、颜色、风格等方面对服装分类进行探索:Bossard等[1]建立了一种分类管道,使用颜色、图案和外观等视觉属性对上身服装进行分类;Di等[2]提出一种细粒度的方法,基于服装面料、领型、口袋等属性识别服装种类;Zhang等[3]提出一种算法可对真实世界的产品轮廓进行分类,采用多模式特性和监督学习的方法自动识别剪影属性;An等[4]运用小波傅里叶描述子描述服装图片的轮廓特征并降维,对比特征向量之间的相似度,结合极端学习机分类器对服装设计平面图进行分类;李东等[5]提出通过预处理获取服装轮廓信息的算法,基于服装轮廓提取傅里叶描述子特征向量,用来表示形状总体特征,并训练多分类支持向量机实现分类;Yamaguchi等[6]在服装检索中采用超像素分割定位人体的着装轮廓,通过欧式距离比较相似性,但无法处理复杂的特征,且分类效果较差。关于不同类别服装的分类有很多,但能直观反映服装基本特征的廓形提取困难,廓形分类的准确率有待进一步提高。
卷积神经网络(CNN)[7]能有效降低反馈神经网络的复杂性,自动抓取分类特征,通过权值共享减少计算量。CaffeNet[8]是CNN常见的一种模型,包含5个卷积特征提取步骤和3个全连接层进行分类,能加深网络结构提取高维特征。本文主要研究同类别服装廓形的分类,以女裤为例,通过微调后的CaffeNet模型自动提取女裤廓形特征,并通过Softmax回归准确地实现廓形分类。
由于目前还没有一个不同廓形女裤的样本库,根据女裤的外观廓形差异及电子商务平台商家对女裤版型的分类,本文选择吊裆裤、阔腿裤、喇叭裤、小脚裤和直筒裤5种廓形女裤,这5种女裤廓形分别呈现菱形、梯形、X形、倒梯形和H形,创建了一个女裤样本库,收集每种廓形女裤各300张,共1 500张女裤图片,样本来源于知名的购物网站,如淘宝网、天猫、京东商城等。由于服装的高度变形性,且随着图像显示或者拍摄方式的不同,女裤有不同形状,因此,选择具有白色干净背景并且平整摆放的女裤图像。5种女裤的样本如图1所示。
图1 5种女裤的样本Fig.1 Samples of five women′s trousers. (a) Saggy pants; (b) Broad-legged pants; (c) Flared trousers; (d) Pencil pants; (e) Straight pants
卷积神经网络本质上是一种输入到输出的映射,用已知的卷积模板对网络进行训练,就能转换输入到输出间的关系[9],具有很强的泛化能力,可识别位移、拉伸和扭曲不变形的二维或三维图像。通常,具有卷积结构的深度网络模型至少有2个非线性可训练的卷积层,2个非线性的降采样层和1个全连接层,共至少有5个隐含层,其中降采样层即池化层,卷积神经网络结构如图2所示。
图2 卷积神经网络结构Fig.2 Framework of convolutional neural network
输入的女裤图像经卷积层和全连接层将多个特征映射转化为1个特征向量,并以完全连接的方式输出,最后连接分类器,可采用逻辑回归、Softmax回归或者支持向量机(SVM)等对输入的图像进行分类,本文采用Softmax回归方法。
传统的CNN网络结构的卷积层和池化层数量较少,特征提取效果不明显,分类效果尚不理想,而5种样本女裤外部轮廓特征相似,加大了分类难度,廓形分类精度有待提高。本文基于CaffeNet模型,该模型包括5个卷积层、3个池化层和3个全连接层,网络的隐含层参数如表1所示。
表1 网络的隐含层参数Tab.1 Hidden-unit′s parameters of network
为提高女裤廓形分类识别率,通过修改网络模型结构和超参数文件来改进CNN,将全连接层进行降维处理,设置适宜的参数值来降低损失率,改进后的全连接层6和全连接层7的输出向量维数为512,全连接层8的输出向量维数根据女裤廓形的总类别数设置为5;为防止模型过拟合,dropout参数值修改为0.5,随机丢掉50%的隐含层节点,增强网络的泛化能力;同时修改网络的训练批次为80,测试批次为20,初始化学习率为0.1,网络的最大迭代次数为3 000。
改进的CNN利用反向传播算法不断逐层调整网络结构中的权值参数,权值更新公式为:
Vt+1=μVt-αL(Wt)
Wt+1=Wt+Vt+1
同时采用梯度下降法最小化损失函数,损失函数是CNN中优化的目标函数,损失函数越小,模型的预测值越接近真实值,鲁棒性越好,损失函数表示为
本文实验采用Python软件编程实现,基于台式电脑的Win10系统(Intel(R) Core(TM) i7-8700CPU,3.20 GHz,16 GB)。
针对实验样本库,随机抽取每种女裤裤型80%的样本数据集作为实验的训练集,剩余的20%作为测试集。训练过程是从训练图像集的某一类别中任意选取一个参加训练的图像,输入相互交替的卷积层和池化层,通过移动感受野对图像不断进行卷积和最大池化,学习训练原始图像的特征[10]。
输入女裤图像,从不同角度进行前一层特征图的卷积运算,使其具有位移不变性,增强图像的原始信号,降低噪声。通常,卷积层的网络结构采用卷积的离散型将原始图像像素变换为新像素,离散型的公式为
最大池化在池化层完成,池化层即特征映射层,是对输入的特征映射进行池化[11]操作,池化层表示为
经过交替的卷积层的特征提取和池化层的池化作用,原始女裤图像已经获得了高度抽象的特征,然后利用全连接层将特征集合输出,计算该输出与理想输出的误差,若输出层无法得到期望的输出值,则取期望与输出误差的平方和为目标函数,转入反向传播,逐层计算出目标函数对各神经元权值的偏导数,不断调整更新权值,当测试集的误差接近于零或者达到指定次数的迭代时模型训练结束,再将测试的图像输入训练得到的学习模型进行测试,经过隐含层,最后输出分类结果。
为验证微调后的卷积神经网络对女裤廓形分类的优势,本文采用傅里叶描述子(FD)结合SVM的方法进行对比,该方法改善了服装款式识别中效率低、适应性差等问题,李东等[5]基于服装轮廓运用该方法识别8种不同类别的上下装,达到了95%的款式识别率。
本文实验采用MatLab R2016a软件进行编程。首先将原始图像进行预处理,获取轮廓边缘,将RGB图像转换为灰度图像,然后利用最大类间方差法对灰度图像进行阈值化分割,转化为二值化图像,最后利用Canny算子对二值图像进行边缘检测,获取图像的外部轮廓,女裤图像的预处理过程如图3所示。
图3 图像预处理过程Fig.3 Pretreatment process of image. (a) Grey-scale image;(b) Binary image; (c) Skeleton image
傅里叶描述子是一种基于傅里叶理论提出的形状特征描述方法,利用傅里叶描述子在外轮廓的基础上进行形状特征提取,将轮廓图像上各像素点的坐标通过傅里叶变换转换成傅里叶描述序列:
式中:xk与yk为轮廓像素点的横坐标和纵坐标;K为轮廓曲线上像素点的总个数,k的取值为[0,K-1];j为虚数单位;u的取值为[0,K-1]。
根据文献[5]提出傅里叶描述子特征向量长度为20时识别准确率最高,故本文选取前20个分量对女裤轮廓进行重构,顺时针顺次扫描轮廓的像素点。为得到具有旋转、平移和缩放不变性的傅里叶描述子,对傅里叶描述序列进行归一化。采用 LibSVM工具箱[12]进行多分类,随机选取每种类别女裤 240张图片作为训练样本,不断训练样本的傅里叶描述子特征矩阵和类别标签,得到SVM分类模型;最后将测试集的傅里叶描述子的特征矩阵输入已经训练好的模型,将预测类别对比实际类别得出分类准确率。
改进的CNN共13层,对原始图像进行归一化处理,输入层使用227像素×227像素,分辨率为 72 ppi 的图像作为网络的输入,通过卷积和池化操作提取特征,将结果纳入全连接层把数据流分为5类。采用改进后的 CNN对女裤廓形分类的准确率如表2所示。可知每种类别女裤的分类准确率都在95%以上。
表2 改进的CNN 对廓形分类的准确率Tab.2 Accuracy of silhouette classification by modified CNN
表3示出采用傅里叶描述子结合SVM的分类准确率。可以看出,女裤的分类准确率在85%~ 90%之间,准确率不高可能因为样本属于同种类别服装,款式差异相较于不同种类服装较小,而上下装外观轮廓差别较明显。对比表2、3可看出,改进的CNN分类效果较理想,可能是因为傅里叶描述子太依赖于样本图像的轮廓信息,边缘检测的轮廓完整度和清晰度影响特征向量的提取。
表3 FD + SVM 对廓形分类的准确率Tab.3 Accuracy of silhouette classification by FD and SVM
根据女裤廓形差异及电商平台中商家对女裤版型的分类,构建了1 500张包括菱形、梯形、X形、倒梯形和H形的5种女裤廓形样本库;提出一种基于卷积神经网络CaffeNet模型,通过相互交替的卷积和池化操作自动提取女裤廓形特征、实现服装廓形分类的方法;利用反向传播算法进行权值参数调整,运用梯度下降法并改进全连接层参数最小化损失率,采用Softmax回归方法对5种廓形女裤进行分类,准确率在95%以上,该方法可较好地判别差异微小的同类别女裤。