[0003] 本发明的目的就是为了解决上述服装图片的细粒度属性准确分类问题,提供一种基于卷积神经网络的细粒度服装的属性识别方法。本发明考虑了服装特征区域对于分类的重要性,对于需要进行袖子长度,裤子长度,领口类型分类的服装图片,有效地提取出图像特征区域,并通过图像割补的处理方法,防止特征信息的丢失,使服装图片的属性分类结果更加准确和高效。
[0004] 为达到上述目的,本发明提供如下技术方案:
[0005] 一种基于卷积神经网络的细粒度服装的属性识别方法,使用Faster‑RCNN和YOLO网络进行特征区域识别和图像处理方法将特征区域扩大,令提取的特征区域实现较高的分割准确性,提高了卷积神经网络进行深度学习图像特征的效率和准确性,并且使用两个网络模型进行训练,将两个网络模型的输出结果进行加权融合,减少了过拟合现象。
[0006] 所述的过程具体步骤如下:
[0007] 步骤(1)使用Faster‑RCNN和YOLO神经网络对图像进行特征性区域判别,结合两种判别结果,分割出初步的特征区域图片。
[0008] 步骤(2)对初步的特征区域图片做进一步的处理,由于袖长、裤长和领口类型的分类的特征区域分布略有不同,因此根据不同的分类需求,对特征区域进行扩大,防止特征信息丢失。
[0009] 步骤(3)将图片处理成宽高相等的图片,根据袖长、裤长和领口类型这三种不同的分类任务,采用不同的填补方法,将细长和扁平的图片调整成宽高相等的图片。
[0010] 步骤(4)构建两个深度卷积神经网络,对网络进行预训练,然后将经过图像处理的服装图输入到卷积神经网络中,利用随机梯度下降算法进行权重矩阵和偏移量的调整。
[0011] 步骤(5)将得到的训练好的各层中的权重参数矩阵和偏置值,对应地赋值给两个神经网络中的各个层,再对各自的Softmax层进行调整,把两个网络结构的输出结果进行融合,减少过拟合现象,使结果更加准确。
[0012] 所述步骤(1)提取初步的特征区域方法如下:
[0013] 图像原始图像大小用两个坐标进行表示,分别是左上角顶点坐标(0,0)和右下角顶点坐标(width,height)。初步的特征区域的左上角坐标定义(XA,YB),右下角坐标定义为(XC,YD)。
[0014] 通过深度学习方法中的通用目标检测框架Faster‑RCNN和YOLO神经网络生成候选特征区域,使用Faster‑RCNN和YOLO神经网络能够识别出图像中的主要特征区域,通过坐标的方式体现,可以获取特征区域左上角和右下角的顶点坐标,通过Faster‑RCNN神经网络获取的左上角坐标定义为(X1,Y1),右下角坐标定义为(X2,Y2)。通过YOLO神经网络获取的左上角坐标定义为(X3,Y3),右下角坐标定义为(X4,Y4)。一张图像获取四个坐标后,分成如下四种情况:
[0015] (1)两种目标检测网络均把原始图像作为判别区域,分割出初步的特征区域图片,即(X1,Y1)=(0,0),(X2,Y2)=(width,height),(X3,Y3)=(0,0),(X4,Y4)=(width,height);
[0016] (2)Faster‑RCNN检测出小于原始图像的判别区域,YOLO把原始图像作为判别区域,分割出的初步的特征区域图片,即(X1,Y1)=(x1,y1),(X2,Y2)=(x2,y2),(X3,Y3)=(0,0),(X4,Y4)=(width,height);
[0017] (3)Faster‑RCNN把原始图像作为判别区域,YOLO检测出小于原始图像的判别区域,分割出的初步的特征区域图片,即(X1,Y1)=(0,0),(X2,Y2)=(width,height),(X3,Y3)=(x3,y3),(X4,Y4)=(x4,y4)
[0018] (4)两种目标检测网络均检测出小于原始图像的判别区域,分割出的初步的特征区域图片,即(X1,Y1)=(x1,y1),(X2,Y2)=(x2,y2),(X3,Y3)=(x3,y3),(X4,Y4)=(x4,y4)[0019] 情况(1)把原始图像作为初步的特征区域,即(XA,YB)=(0,0),(XC,YD)=(width,height),情况(2)把Faster‑RCNN检测区域作为初步的特征区域,即(XA,YB)=(x1,y1),(XC,YD)=(x2,y2),情况(3)把YOLO检测区域作为初步的特征区域,即(XA,YB)=(x3,y3),(XC,YD)=(x4,y4),情况(4)结合两种检测区域,为了尽可能减少特征信息丢失,在取检测区域坐标遵从尽可能最大获取信息原则,(XA,YB)=(min(x1,x3),min(y1,y3)),(XC,YD)=(max(x2,x4),max(y2,y4))。使用此方法得到初步的特征区域的左上角坐标(XA,YB),右下角坐标(XC,YD)。
[0020] 所述步骤(2)将初步的特征区域图片做进一步的处理方法如下:
[0021] 利用获取的参数坐标(XA,YB),(XC,YD)做进一步的图像处理。当图像通过情况(1)获取特征区域,此类特征区域特征信息无丢失,可直接使用步骤(3)进行图像处理。当图像通过情况(2)(3)(4)获取特征区域,为了防止特征信息丢失,采用如下特征区域扩大方法:
[0022] 服装的细粒度分类包括袖长、裤长、领口类型等,各个分类任务的特征区域分布略有不同,因此基于不同的分类需求,采取不同的特征区域扩大方法。
[0023] (1)当任务为裤子长度的分类(特征区域在靠下部分),取原始图像的height作为YD坐标值,其余分类任务在YD的基础上向下再增加10像素(pixel)的宽度作为裕量,以减少特征信息丢失。
[0024] (2)当任务为领口类型的分类(图片的特征区在靠上部分),取0作为YB坐标值,其余分类任务在YB的基础上向上增加10像素(pixel)的宽度作为裕量,以减少特征信息丢失。
[0025] (3)当任务为袖子长度的分类(图片的特征区在左右两侧),在XA,XC的基础上往左右两侧各增加20像素(pixel)的宽度,其余分类任务各增加10像素(pixel)的宽度作为裕量,以减少特征信息丢失。
[0026] 假设此时的(XA,YB)=(a,b),(XC,YD)=(c,d),则进一扩大特征区域,令XA=rand*a,YB=rand*b,XC=c+(width‑c)*rand,YD=d+(height‑d)*rand,rand为0‑1的随机小数。由此提取出一个特征区域,此特征区域的宽度为w,高度为h,此特征区域可能是细长(wh),当wh时,我们再往上下方向增加高度,直到w=h,除非已经增加到图片边缘,无法再增加。使用此方法得到特征区域的左上角坐标(XA,YB),右下角坐标(XC,YD),用该坐标分割特征区域图片,再进行步骤(3)的处理。
[0027] 所述步骤(3)图像处理方法如下:
[0028] 在使用神经网络做分类时,输入神经网络的图片尺寸是固定的。然而我们经过步骤(1)(2)的服装图片尺寸并无统一,为了防止图片因为尺寸不同而影响分类,所以在步骤(3)中,我们将图片进行处理,调整成宽高相等的方形。经过步骤(1)(2)处理过的图像的宽度和高度作为图像处理的参考因素,并且结合分类任务要求,我们设计了相应的图像处理方法。一张图像根据宽度和高度关系,分成如下三种情况:
[0029] (1)当h=w时,此时图片已经是方形,我们不再做处理。
[0030] (2)当h>w时,此时我们需要在左右方向上进行填充,使图片的宽度等于高度。左边填充的宽度我们设置为rand*w,rand为0‑1的随机小数,右边填充的宽度为h‑(1+rand)*w,并且我们根据分类任务采取不同的填充内容。当分类任务是裤子长度,领口类型时,我们用边缘列的像素值值进行填充,当分类任务为袖长时,我们用白色进行填充防止形成错误信息,因为在获取特征区域时,若分割边缘截取了不完整的袖子信息,此时用边缘列像素值填充会造成袖子长度改变,形成错误信息。通过这种方法把图片填充成方形。
[0031] (3)当h448。
[0032] 步骤(4)中所述的深度卷积神经网络用到的是ResNet152网络模型和InceptionV4网络模型。ResNet152和InceptionV4包括卷积层,池化层,全连接层,dropout层和Softmax分类层。池化层选择平均池化(average pool),在卷积层之间还使用了残差网络结构(shortcut connection),在全连接层后设有dropout层,用于防止训练数据不平衡出现过拟合现象。Softmax层用于训练时的分类,输出节点个数N根据分类种类进行设置。
[0033] 步骤(4)中所述的预训练和权重矩阵和偏移量的调整过程,其步骤包括:
[0034] 4‑1.采用重复采样方法对细粒度服装图片的数据集进行数据平衡,使属于各类的图片数据大致做到相等。
[0035] 4‑2.迁移在ImageNet数据集上预训练ResNet网络模型和InceptionV4网络模型的权重参数,确定卷积层的权重参数。
[0036] 4‑3.用平衡好的服装图片数据集训练ResNet神经网络和InceptionV4神经网络,利用随机梯度下降算法进行权重矩阵和偏移量的调整。训练过程中,损失函数值收敛,分类达到最高准确率时,神经网络训练完成。
[0037] 所述步骤(5)将步骤(4)中训练的ResNet152模型和InceptionV4中的权重矩阵和偏移量参数进行记录,对应地赋值给两个神经网络中的各个层,并且在两个网络结构的Softmax层后再添加一层网络结构,网络结构的节点权值采用两个模型训练时分类准确率的比值。假设ResNet152模型和InceptionV4在训练时分类的准确率比值是t,ResNet152模型的Softmax层第一种分类节点输出的值为a,InceptionV4模型的Softmax层第一种分类节点输出的值为b,那么加权融合后第一种分类节点输出的值为a*t+b*(1‑t)。每个分类节点都采用这样的方式将两个网络的输出结果进行融合。输出最大值的节点即对应该分类结果。
[0038] 与现有技术相比,本发明的有益效果在于:
[0039] 本发明提出的提取图像特征区域的方法,使用了Faster‑RCNN和YOLO网络进行特征区域识别和结合分类任务要求,使用图像处理方法,令提取的特征区域实现较高的分割准确性,使得在使用卷积神经网络分类时,能提高了卷积神经网络进行深度学习图像特征的效率和准确性。
[0040] 将两个神经网络的输出结果进行加权融合,减少过拟合现象,提高分类的准确率。