基于轻量级神经网络的服装图像检索

2020-10-30 05:49高继强
科学技术创新 2020年31期
关键词:检索卷积神经网络

高继强

(湖南工业大学,湖南 株洲412007)

图像检索指的是对目标图像中的某一物体,从图像库中找出包含有该物体的图像,并且返回所有与之相似的图像。将轻量级神经网络应用于服装图形检索,属于深度学习在时尚领域内的实际应用,因为深度学习作为机器学习领域内的一个重要分支,其算法具有强大的自动特征提取能力及高效的特征表达能力。

在计算机视觉领域内,深度学习算法可以实现从低层到高层渐进的特征提取,最终获得较理想的特征表达,因此深度学习具有广阔的应用前景。神经网络作为深度学习领域内的高效算法,近年来随着深度学习的火热也获得了大规模应用。自2012 年AlexNet以来,各种神经网络模型层出不穷,如GoogLeNet、ResNet 等。这些神经网络为了获得更好的性能,网络层数不断增加,对于硬件资源的消耗越来越大,对于计算能力的需求也越来越高。虽然网络性能得到了提高,但随之而来的就是效率问题。为了使神经网络获得更加广泛的应用,需要设计出更高效的网络模型。

轻量级神经网络的核心思想并不是传统的模型压缩,即在已经训练好的模型上进行压缩,而是设计出更高效的卷积方式,从而使网络携带更少的网络参数,减少内存的消耗,进而可以减少网络的计算量,对于计算能力也没有过高的要求,尤其适合于移动端,嵌入式设备,配置较低的电脑等场景,这为神经网络走出学术界,迈向工业界打下了坚实的基础,具有很高的实际意义。

MobileNet 系列网络作为典型的轻量级神经网络,以此为基础搭建神经网络模型更加便捷与高效。Deep Fashion 服装图像数据集共50 种类别,约为28 万张图片,可以保证神经网络得到充分的训练,对其进行数据增强之后,可以尽量减少欠拟合现象的出现。

1 算法流程

基于轻量级神经网络的服装图像检索的算法流程主要分为三个步骤:

1.1 对Deep Fashion 数据集中的图像进行预处理。Deep Fashion 数据集是香港中文大学多媒体实验室发布的数据集,主要图片来源为网络电商购物平台中的服装图片。其中类别预测中包含28 万张图片,分为50 类衣物,每种衣服有不同姿势的若干张图片。预处理中包括数据集的划分,数据增强,数据归一化处理,数据类型的转化等操作。

1.2 以MobileNet 神经网络的v2 版本作为基础来进行模型搭建。模型搭建完毕之后,将步骤一中经过预处理之后的图片送入神经网络模型中进行训练,保证网络模型得到充分的训练。

1.3 利用划分出的验证集进行网络功能的测试,得到输出的结果。

2 图像预处理

首先是对数据集的划分,按照8:1:1 的比例划分成训练集,验证集和测试集。训练集主要通过学习样本数据集,进而匹配一些参数来建立一个分类器。验证集主要针对学习出来的模型,调整分类器的参数,验证集还用来确定网络结构或者控制模型复杂程度的参数。测试集的作用主要就是测试训练好的模型的分辨能力、泛化能力等。

将数据集中的图片划分为训练集、验证集和测试集之后,下一步是制作存放有图片路径及其标签的文本文件,PyTorch 依据该文本文件上的信息寻找图片,并读取图片数据和标签数据,再通过Dataset 类读取数据集中的图片。

在预处理过程中还需要对图像进行数据增强,主要通过:

transforms.CenterCrop 实 现 中 心 裁 剪; 通 过 transforms.RandomRotation 实现随机旋转;通过transforms.ToTensor 实现数据类型的转换;通过transforms.RandomChoice(transforms),从给定的一系列transforms 中选一个进行操作;通过自定义函数计算出数据集的均值和方差,并通过transforms.Normalize()函数进行数据的归一化。其中进行数据归一化是因为归一化后会加快梯度下降求最优解的速度,还可以提高精度。

3 构建轻量级神经网络

本文以MobileNet 神经网络的v2 版本作为基础来进行模型搭建。MobileNet 由谷歌团队提出,v1 版本论文发表于2017 年的国际计算机视觉与模式识别会议。V2 版本在v1 的基础上进行了改进,在采用深度可分离卷积的基础上引入了线性瓶颈结构和反向残差结构。这使得该网络拥有更小的体积,更少的计算量,更高的精度,在轻量级神经网络中拥有极大的优势。

表1 MobileNet v2 网络结构特点

图1 实验结果

线性瓶颈结构是网络结构的重要创新点,从Bottleneck 结构演变而来的。Bottleneck 结构首次被提出是在ResNet 网络中。该网络结构的第一层使用逐点卷积,第二层采用3×3 大小的卷积,使用深度可分离卷积,第三层使用逐点卷积。线性瓶颈结构相对普通的卷积能够减少参数数量,减少卷积计算量,能够从空间和时间上进行网络的优化。

MobileNetV2 版本中的残差结构使用第一层逐点卷积升维并使用Relu6 激活函数,普通的Relu 激活函数对于大于0 的值不进行处理,但是对于Relu6 而言,当输入的值大于6 的时候,返回6,它作为非线性激活函数,在低精度计算下具有更强的鲁棒性。之后使用深度可分离卷积,同样使用Relu6 激活函数,再使用逐点卷积降维,降维后使用线性激活函数。这样的卷积操作方式更有利于降低计算量。

该网络模型中共有17 个Bottleneck 层,每个Bottleneck 包含两个逐点卷积层和一个深度卷积层,一个标准卷积层,两个逐点卷积层,整个网络模型中一共有54 层可训练参数层。MobileNetV2 中使用线性瓶颈和反向残差结构优化了网络,加深了网络层次的同时,压缩了模型的体积,使模型的运算速度更快。

4 结果与分析

本实验所用主要硬件参数为:英伟达rtx2080ti-11G GPU 一块,英特尔i9-9900k CPU 一颗,DDR4 2400MHz 16G 内存两条。深度学习框架采用pytorch,Python 版本为3.7.2。实验过程中,训练集数据量为图像数据集的80%,测试集数据量为图像数据集的10%,验证集数据量为图像数据集的10%,选取图像的方式为随机抽取,实验训练次数为60 次(图1,表3)。

表3 测试集结果

本文将轻量级神经网络应用于服装图像检索中,具有一定的实用性。从实验结果来看,轻量级神经网络基本完成了服装的图像检索任务,准确率和召回率都较高。本文使用的神经网络以尽可能小的网络结构更高效地完成了服装检索工作,与其他大型的网络模型相比,在未降低准确率的前提下完成了检索工作。在之后的改进中,将着眼于模型的实际应用,将其应用于移动客户端等。

猜你喜欢
检索卷积神经网络
基于递归模糊神经网络的风电平滑控制策略
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
瑞典专利数据库的检索技巧
在IEEE 数据库中检索的一点经验
一种基于Python的音乐检索方法的研究
从滤波器理解卷积
基于神经网络的中小学生情感分析
基于傅里叶域卷积表示的目标跟踪算法