APP下载

基于改进的残差神经网络的服装标签属性识别

2019-04-27张萌岩何儒汉

商丘师范学院学报 2019年6期
关键词:残差标签卷积

张萌岩,何儒汉

(武汉纺织大学 湖北省服装信息化工程技术研究中心,湖北 武汉 430200)

0 引 言

近年来,服装电商的快速发展积累了海量服装图像,如何理解、区分和识别不同的服装图像并从中获取有价值的信息,成为目前研究的热点.服饰属性标签识别作为服饰图像检索、标签导航等应用的基础,具有重大的研究意义.为了更好地对服装商品图像进行属性标签的标注,常用方法是:(1)手工标注,即为服装属性设置相关的标签,基于人工设计的视觉特征实现服装图像的标签属性识别;(2)传统的自动标注,即借助数字图像处理、模式识别的方法,基于底层的视觉特征进行服装的标签属性分类.人工标注方法费时费力、易出现主观性偏差,不适应当前大数据时代的发展要求.传统的自动标注方法在如何克服服装标签属性识别本身的表达上具有多义性和不确定性;同时,服装图像包含较多的细分类和视觉变化,包括款式、光照、形变、拍摄角度、背景影响等,其特殊性令其自动标注和识别更具挑战性,使得依赖人工设计特征的传统自动标注方法愈加难以满足实际服装图像属性识别的需要.

深度学习[1,2]近年来在学术界和工业界掀起了热潮,是机器学习领域最令人瞩目的方向,目前已诞生很多优秀的算法.研究者们把深度学习和服装图像处理结合起来,取得了不错的成果.香港中文大学的Liu等人[3]收集了一个大规模且语义标注全面的服装数据集DeepFashion,提出了FashionNet,融合了大类、属性、服装ID以及关键点四种监督信息来进行服装特征学习.厉智等人[4]提出基于深度卷积神经网络的改进服装图像分类检索算法,采用深度卷积神经网络从数据库中自动学习服装的类别特征并建立哈希索引,实现服装图像的快速索引.这些相关研究工作都使用深度卷积神经网络学习服装标签属性识别,为了获得更好的结果,卷积神经网络的改进常通过增加用于提取特征的卷积层的数量来提升模型的识别能力.但是深度卷积网络存在以下两个问题:(1)卷积网络深度过深,在训练网络中会出现梯度消失、梯度爆炸等现象,致使训练困难[5].(2)随着网络模型结构变得复杂,网络模型的参数变多,虽然提升了准确率,但是随之带来的是更大的计算量和更高的内存需求,这会极大地影响模型对输入图像的处理速度,难以达到实时处理图像的要求.

因此,借鉴深度残差神经网络[6]在解决深层网络训练时梯度消失问题的优势,本文设计了一种改进的残差神经网络,即Res-FashionAINet,来实现服装图像的标签属性识别,取得较好的效果.该方法具有实现简单、灵活、准确率高、速度较快的优点,较好地平衡了识别准确率和运行速度,在服装属性识别问题上具有一定优势.

1 基于改进的残差网络的服装标签属性识别

1.1 残差神经网络

2015年,MSRA的Kaiming He的残差网络将深度网络的层深拓展到了152层,并在ImageNet竞赛中以绝对优势取得了多个项目的冠军.后来,Kaiming He将深度加到1000多层,同时也因该项工作获得了2016 CVPR的最佳论文奖[6].因此,本文提出的模型是在残差卷积神经网络模型的基础上进行改进的,用于识别服装图像的标签属性.

图1 残差块的建立Figure.1 Residual learning: a building block

在训练深度网络中,尽管已经有了ReLU等一系列手段加深网络,但仍会出现梯度爆炸、弥散的问题.单纯的叠加layer,深层网络的效果反而会变差,以至于造成网络退化引起更大的误差.所以ResNet深度残差网络ResNet的出现为训练更深的网络提供了方法,主要特色是跨层连接.ResNet对每层输入做一个reference,学习形成残差函数.这种残差函数更容易优化,能使网络层数大大加深.假设残差为F(x)=H(x)-x,那么现在不直接学习H(x) 而是去学习F(x)+x,即将H(x)映射为F(x)+x,那么网络的映射F(x)趋向于F(x)=0.拟合残差即把网络按照图1的跨层连接搭起来,残差块的结构如图1所示.

残差块中有二层,其中σ代表非线性函数ReLU,如下表达式:

F=W2σ(W1x)

(1)

然后通过一个shortcut,和第2个ReLU,获得输出y,如下表达式:

y=F(x,{Wi})+x

(2)

当需要对输入和输出维数进行变化时(如改变通道数目),可以在shortcut时对x做一个线性变换WS,如下表达式:

y=F(x,{Wi})+WSx

(3)

残差块往往需要两层以上,单单一层的残差块并不能起到提升作用.

1.2 改进的残差网络模型

本文设计了一个用于服装图像标签属性识别的神经网络模型Res-FashionAINet,基本结构如图2所示.本模型主要使用卷积模板,并穿插恒等模板,在模型尾部增加了Dropout层避免过拟合,同时也增加了全连接层增强输出特征的表达能力.通过该模型提取服装图像的特征,继而识别出服装图像的标签属性.模型从网络低层开始逐层学习服装图像特征的分布,并在网络的全连接层将特征图抽象为多维的特征向量,最终将特征向量输入分类器预测标签对应每个类别的概率,概率最高的被视为该图像的识别结果.

在Res-FashionAINet模型中,输入299×299的图片,通道为3;经过第一个Identity Block输出74×74×256的卷积结果;经过第二个Identity Block输出37×37×512的卷积结果;经过第三个Identity Block输出19×19×1024的卷积结果;经过第四个Identity Block输出10×10×2048的卷积结果;Conv Block不会改变图像的大小,它的作用是为了改变feature vector的dimension;然后加入Dropout层,每次训练迭代时随机去掉部分神经元,以避免过拟合;建立隐藏层,共有1024个神经元;最后增加一个输出层,共n个神经元(对应每种服装图像属性的n个类别)并且使用softmax激活函数进行转换,Softmax可以将神经元的输出转换为每一个图像类别的概率.

相比传统的特征提取方法,Res-FashionAINet能够获取更深层次的信息特征,这些特征信息大大增加了服装标签属性识别的准确率和速率.

图2 Res-FashionAINet网络结构图Figure.2 Res-FashionAINe Network structure

Res-FashionAINet中采用了类似ResNet 的模块化结构,每个模块由多个层和一个捷径(shortcut)连接组成,shortcut将该模块的输入和输出连接到了一起.然后在元素层面上执行加法(add)运算,如果输入和输出的大小不同,则使用零填充或投射(通过 1×1 卷积)来得到匹配的大小.同时Res-FashionAINet中包含了类似ResNet中的两类模块,如图3所示,一个是恒等模块,其输入和输出的维数相同,可串联多个;另一个是卷积模块,输入和输出的维数不同,故不能连续串联,其作用可以改变特征向量的维数.

图3 恒等模块(左)和卷积模块(右)Figure.3 Identity Block(Left) and Conv Block(Right)

同时,本文将两个3×3的卷积层替换为1×1 + 3×3 + 1×1,如图4所示.新结构中3×3的卷积层首先在一个降维1×1卷积层下减少了计算,然后在另一个1×1的卷积层做了还原,既能保持精度又能减少计算量.

图4 残差块的优化Figure.4 Optimization of Residual block

1.3 基于改进的残差网络模型的服装标签属性识别

依据上述网络模型,本文设计了基于Res-FashionAINet的服装标签属性识别模型,对服装图像属性进行识别分类,具体流程图如图5所示,具体步骤为:

(1)本实验使用FashionAI数据集中8种不同服装的图片数据作为训练数据,每种服装的训练数据大约一万张图片;

(2)对获取的数据集进行整理:读取每张图片的路径和标签,将图片按照对应的标签放入train_valid目录下对应的类别目录中,然后前90%的数据用来做训练,剩下的用来做验证;

(3)定义训练集和验证集的图片增广函数,对训练数据进行扩充;

(4)数据准备完毕后,为分别从属于8个类别的图片设计模型,将它们准确分类,可认为不同属性的服饰从属于不同的类别,在实验中不断调整参数进行对比,从而选出最佳参数;

(5)定义辅助函数:Mean Average Precision平均准确率均值,对实验的性能进行评估;

(6)训练结束后,读取测试集图片的路径,根据训练好的模型对数据进行预测,并判断预测的类型是否准确.

图5 服装标签属性识别算法流程图Figure.5 Algorithm Flowchart

2 实验评价与性能分析

2.1 实验数据集

本文实验采用的是FashionAI数据集,该数据集作为大规模高质量时尚数据集,包含8种属性维度共计114805张图像,其图像分类层次结构如图6所示,其中包括颈线设计、领子设计、脖颈设计、翻领设计、袖长、衣长、裙长和裤长共计8种属性.本文期望数据是类似ImageNet的格式组织的,即每一类图片都统一放在一个目录下,故将所有整理后的数据放进train_valid目录[7],具体的目录结构如图7所示.数据标签是若干个n和一个y组成的字符串,字母y出现的位置即图片对应的类型.

图6 FashionAI数据集特征图Figure.6 FashionAI Dataset feature map

图7 训练集目录结构图 Figure.7 Test Dataset directory structure map

图8 属性值遮挡示意图Figure.8 Attribute value Blocking Schematic

该数据集中的数据具有这些特性:(1)互斥:一个属性维度下,属性值之间是互斥的,不能同时成立.(2)独立:一个图像中,不同属性维度下的属性值可同时存在,它们之间相互独立.(3)每个属性维度下都有一个属性值叫“不存在”.这个表示当前属性维度在该图像所展示的视角下,是被定义过的,但是该属性在图中并没有出现或者被遮挡看不见.如图8包含了上身、下身视角,但是衣长被裙摆遮住,衣长维度的属性值是“不存在”.

2.2 实验数据集的扩充

通过扭曲、翻转、缩放、颜色空间变换等方法对训练图片做一系列变化,可产生相似但又有不同的训练样本,既能增大图片训练集规模又可以模拟不同拍摄条件下的统一场景,达到加强训练的效果.例如对图片进行不同的裁剪使得感兴趣的物体出现在不同的位置中,使模型减小对物体出现位置的依赖性;通过调整图像亮度、色彩来降低模型对色彩的敏感度[8].本文通过Rotation、Horizontal Flip、Shift函数对训练集进行数据扩充,如图9所示.

图9 数据扩充图Figure.9 Data expansion diagram

2.3 实验设置与评价指标

本实验平台包括:PC机、Intel Core i7处理器、8G服务器、11GB显卡GTX1080、Ubuntu操作系统、64位操作系统.服装标签属性识别性能指标采用平均准确率均值(Mean Average Precision,MAP),其定义如下:

(1)每条数据计算出AttrValueProbs中的最大概率以及对应的标签,分别记为MaxAttrValueProb和MaxAttrValue.每个属性维度,分别初始化评测计数器:

BLOCK_COUNT = 0 (不输出的个数)

(4)

PRED_COUNT = 0 (预测输出的个数)

(5)

PRED_CORRECT_COUNT = 0 (预测正确的个数)

(6)

设定GT_COUNT为该属性维度下所有相关数据的总条数.

(2)给定模型输出阈值(ProbThreshold),分析与该属性维度相关的每条数据的预测结果:

当MaxAttrValueProb < ProbThreshold,模型不输出:BLOCK_COUNT++;

当MaxAttrValueProb >= ProbThreshold:

MaxAttrValue对应的标注位是‘y’时,记为正确:PRED_COUNT++,PRED_CORRECT_COUNT++;

MaxAttrValue对应的标注位是‘m’时,不记入准确率评测:无操作;

MaxAttrValue对应的标注位是‘n’时,记为错误:PRED_COUNT++.

(3)遍历使BLOCK_COUNT落在[0,GT_COUNT)里所有可能的阈值ProbThreshold,分别计算,并统计它们的平均值,记为AP:

准确率(P):PRED_CORRECT_COUNT / PRED_COUNT

(4)综合所有的属性维度计算得到的AP,统计它们的平均值,得出mAP.

(7)

2.4 实验结果与分析

使用本文的Res-FashionAINet深度学习网络模型对训练集进行训练,设置40次循环训练,学习率(learning rate,lr)为1e-4,批训练数据batch size为64,预测出测试集中每张图片对应的属性值(AttrValues).识别效果如表2所示,可以看到基于Res-FashionAINet模型和图片扩增可以提高图片识别的准确率,最终识别准确率可以达到91.8%.残差网络的确解决了网络退化的问题,在测试集上,都证明了更深的网络错误率越小.

在实际应用中,不仅需要考虑模型的准确率,更要考虑训练数据的耗时问题.由表2可看出,Densenet201准确率高,但是耗时较长.模型处理图像的速度主要是由网络的参数个数及计算方式决定,Densenet网络层数较深,参数过多,会降低模型的计算速度.

表1 多种模型在FashionAI数据集上的性能对比表(表中time指每次迭代的平均耗时 )

由表2可知,比较DenseNet和ResNet模型训练数据的准确率,以及处理图像的速度,DenseNet准确率最高,但由于网络层数较多,耗时过长.其次便是不同层数的ResNet模型,在准确率和速度上,本文提出的Res-FashionAINet网络模型均优于其他模型,该实验结果说明本文对网络结构的改进是可行的.

为检验模型在各属性中的应用能力,将模型对各属性的训练结果进行对比,如表3所示,可展示模型在各种属性训练集和验证集的准确率、mAP、误差loss以及计算速度.

表2 Res-FashionAINet模型训练各种属性的统计表

根据训练集中Annotations存放需要模型计算的属性维度信息,对测试集的图像维度进行预测,输出各个属性值的预测概率,将“?”替换成计算出来的各个标签的预测概率值(分数),并取最大的预测概率(分数)的属性值作为预测结果,数据预测得出的结果展示为csv格式文件,具体如下表4(仅列举10个).

表3 训练集预测表(ImagesName指存放的jpeg编码的图像数据文件名)

由图10可知不同残差网络预测的服装标签都是正确的,层数越高、参数越大,预测的概率也就越高,但是本文提出的Res-FashionAINet网络模型的准确率优于其他残差网络.

图10 图像网络预测图(示例为裙子,属性标签为nnnynn,即Midi) Figure.10 Image network prediction

随着训练迭代次数的增加,数据训练的准确率也会提升;在不同学习率中,提升的情况会有所不同.

3 结 论

针对服装标签属性识别的研究,本文设计了一个名为Res-FashionAINet的深度学习网络模型,并以此为基础构建了服装标签属性识别方法,有效提高服装标签识别的准确率,同时拥有较快的图像处理速度.该方法在FashionAI数据集中与传统的识别方法进行比较分析.结果表明,该模型与其他模型相比具有一定优越性.在后期的研究和实验工作中,还需进一步解决一些问题:(1)进行识别的服装种类需要继续进行增加和细分;(2)服装标签属性识别算法的泛化能力需要提升,尽可能地去除外界干扰.

猜你喜欢

残差标签卷积
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于残差学习的自适应无人机目标跟踪算法
卷积神经网络的分析与设计
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
基于傅里叶域卷积表示的目标跟踪算法
综合电离层残差和超宽巷探测和修复北斗周跳