APP下载

基于YoloV3与轻量型网络的衣物识别算法研究

2021-02-07赵天晖

仪器仪表用户 2021年2期
关键词:衣物卷积神经网络

赵天晖

(北方工业大学 信息学院,北京 100144)

0 引言

深度学习在计算机视觉中有着很多应用,比如,交通领域中的无人智能驾驶,医学领域中的医疗图像智能诊断,教育领域中的学生注意力检测等。目标识别中的人脸检测、车辆检测和行人计数已经成熟地运用到社会生活中的方方面面。

在智能家居领域,通过目标识别方法来识别衣物种类,可以将整个方案与空调控制台相结合。通过摄像头识别出人身穿的衣物种类从而调节空调的温度,实现真正的不用手动操作的智能家居。

1 相关研究

截至今日,目标检测体系逐渐趋于成熟。目标检测模型主要分为两大类别:两阶段模型和单阶段模型。知名的R-CNN 系列目标检测模型作为两阶段模型的代表,其主要做法是:首先,将输入的图片划分区域,获得数个候选框,再对每个候选框进行分类,最后回归出每个目标的检测范围。但两阶段模型在计算效率方面并不占优,难在短时间内获得有效的目标检测结果,并不能适用于智能家居领域的实时检测。

不同于两阶段模型,Yolo 模型和SSD 模型作为单阶段模型的代表,可以在网络中直接检测出目标的位置和种类及其置信度。这一操作使得目标检测的时间大大减少,令目标检测的实时性成为可能。由于单阶段目标检测模型在步骤上相较于双阶段模型少了一步,所以精度上较后者略逊一筹。

衣物识别将是未来智能家居领域的关键技术之一。考虑到智能家居应用中硬件条件的限制,需要使用轻量级网络来代替复杂网络进行衣物识别过程,进而减轻对硬件资源、规模以及性能的要求。目前,YoloV3 模型相对还比较复杂。另一方面,与普通的日常照片图像比较,衣物的图像中干扰要素较多,比如光线、角度、衣物材质等,这些因素将直接影响衣物识别效果与准确率。

综上,有必要对YoloV3 目标识别模型进行改进。本文提出以EfficientNet 作为主干提取网络替换YoloV3 原有的主干提取网络Darknet,增加特征提取网络的深度、宽度以及分辨率,在保证整个深度神经网络参数更少、更轻量化的同时,提高衣物识别的准确率。

2 数据集

深度学习需要大量的训练数据作为支撑。选择一个数据丰富、质量尚佳的数据集对未来的深度学习中训练出精度高的模型起着至关重要的作用。本文采用的是DeepFashion2 数据集,该数据集作为当前最大的衣物数据集,包含着49.1 万张有关衣物的图像,其中包含80.1 万件服饰,囊括了13 种流行的服饰类别。该数据集不仅适用于衣物检测和识别,还可以用于姿态估计和语义分割等工作。

3 目标识别算法

本文的改进方案是将EfficientNet 作为YoloV3 的特征提取网络,并且保留原有的多尺度融合的结构,保证了无论衣物在图像中或大或小,都可以获得比较好的识别准确率。

3.1 特征提取网络EfficientNet网络模型

卷积神经网络可以通过不断扩大网络的规模来实现更高的识别准确率。例如,ResNet-18 通过加深网络层数达到ResNet-200,这使得在ImageNet top-1 上取得84.3%的mA 均值平均精度。目前为止,有许多不同的方法来扩展卷积神经网络,常见的方法有扩展网络的深度和网络的宽度,最近新兴起来的方法还有改变输入图像的分辨率来让网络能提取更多的特征。在之前的深度学习工作中,只使用3个方法之一来进行神经网络的缩放。后来,不断进化成对两个维度任意缩放调整,但是这个过程非常繁琐,同时也许需要考虑缩放过程中苛刻的条件,最主要的就是精度和效率,实验后的结果还不一定优于改进前的网络。

图1 DeepFashion2数据集图像Fig.1 Images of DeepFashion2 dataset

图2 EfficientNet扩大网络规模示意图Fig.2 Schematic diagram of EfficientNet expanding network scale

EfficientNet 也考虑如何扩大卷积神经网络的规模来获得更高的准确率和效率,实验最终获得的结果是同时平衡网络深度、网络宽度和输入图像的分辨率三者对精度、参数量和浮点运算量进行提高和优化。将EfficientNet 中的第i 个卷积层看作函数映射:

Yi为输出张量,Xi为输入张量。假设输入图像的高度为Hi,图像宽度为Wi,图像的通道数为Ci,定义整个卷积网络N 是由k 个卷积层构成的,所以将N 表示为:

一般情况下,一个深度神经网络模型是有多个相同的卷积层存在,多个结构相同的卷积层组成一个阶段,然后以阶段为单位,那么深度卷积网络就可以定义为:

这里面的1…s 表示阶段的不同类型,Fi代表的是对第i 层的卷积操作,Li代表的是Fi在第i 个阶段中相同结构卷积层的个数。为了避免搜索空间过大,实验过程中首先固定了卷积网络的基本结构,只需要改变上述公式中的3 个缩放的维度:

1)Li的缩放改变的是网络的深度,Li越大意味着重复的卷积层数量越多,代表着卷积神经网络的深度增加。

2)Ci的缩放改变的是输入图像的通道数,那么网络的宽度也将跟着改变。

3)Hi和Wi的缩放改变的是输入图像的分辨率。

这依然有3 个数值需要进行调整,搜索空间也非常大,所以EfficientNet 设计了一个条件:在卷积神经网络中,卷积层只能使用相同的比例常数来进行统一地缩放。这一条件用数学语言描述为:

这里面的d、w、r 分别代表着网络深度、网络宽度、输入图像分辨率的缩放的常数倍率。根据公式,需要在运算内存和运行运算效率的约束下来优化d、w 和r,从而得到识别最高的精度。EfficientNet 提出了一种新的复合缩放方法,使用复合系数φ对网络的深度、宽度和输入图像的分辨率进行均匀缩放,将这3 个待优化的参数都用φ指数表示,同时为了减少网络搜索时的计算量需要对底数做一定的限制,具体的限制公式也包括了FLOPS 方面,d 对FLOPS 的影响为系数同等倍数的影响,而w 和r 对FLOPS的影响为系数的平方:

表1 EfficientNet-B0网络结构Table 1 EfficientNet-B0 network structure

图3 MBConv卷积块具体结构Fig.3 The specific structure of the MBConv convolution block

由这个公式,通过网络搜索的结构搜索出一个基本结构,被称为EffficientNet-B0,具体结构及细节见表1。

表1 中,可知EfficientNet 中是由多个MBConv 组成实现的,每一个MBConv 卷积块的具体结构如图3 所示。

接下来从基本结构EfficientNet-B0 开始,通过两个步骤来对模型进行扩展:

1)首先,固定的系数使其等于1,然后通过网络搜索找到α、β、γ 的最优解。假设有两倍的可用运算资源,搜索后可得基本结构EfficientNet-B0 获得的α=1.2、β=1.1、γ=1.15。

2)然后,固定第一步的α、β、γ 参数,然后选取不同的φ的取值获得EfficietnNet-B1 到EfficietnNet-B7 的网络结构。

在衣物识别的深度神经网络构建中,选取的是EfficientNet-B2 模型,该网络结构的宽度系数w 为1.1,网络结构的深度系数d 为1.2,输入图像的分辨率系数为260,这一数值不仅符合所选用的数据集,同时也充分利用了可调用的运算资源。

3.2 YoloV3目标检测算法

YoloV3 中采用3 个不同的尺度来对特征图片进行检测。整个网络使用了特征金字塔的方案,这样在不同尺度下对不同的目标进行检测。3 个不同的尺度分别为13×13、26×26 和52×52。对于DeepFashion2 数据集中,共有13个类别,那么每个预测框对应数据集中每一个种类都会输出一个概率,YoloV3 的网络中使每个单元格可以预测3 个不同尺寸的预测框。那么,每个预测框的参数就有5 个参数分别为预测物体的中心点横坐标X、纵坐标Y、预测框的宽度W、高度H 和置信度C。所以,获得的通道数为3×(13+5)=54。再采用上采样的方法来完成多尺度融合的操作。例如,让13×13 的图像转换成26×26 的图像,再与原本的26×26 的图像进行融合,最后进行26×26 尺度的目标识别操作。多尺度融合会对大小不一的物体的检测更加精准。

3.3 将YoloV3的主干提取网络替换成EfficientNet

YoloV3 目标识别网络的主干提取网络会对输入图像进行一层一层的特征提取,在特征提取的同时进行着下采样的操作。特征层不断压缩长和宽,提取最后3 个尺寸的特征层构成后面的特征金字塔,若将YoloV3 中的DarkNet53替换成EfficientNet,需要找到EfficientNet 与DarkNet53最后3 个相同的尺寸的特征层,尺寸分别为(52,52,256),(26,26,512),(13,13,1024)。由 于 原 始YoloV3 中DarkNet53 中通道数远远大于EfficientNet 的通道数,这会使得网络变换过大并且促使拟合效果大大降低,所以减小通道数是较好的选择,将通道数减小到60,120 和352。

4 识别结果分析

本课题使用深度学习的方法,采用Anaconda 环境,Python3.6 语言,PyCharm 编辑器进行。以数据集Deepfashion2 的19.1 万张图片作为训练集,验证集为3.2 万张衣物图片,最后随机选择1000 张新图片作为测试集。

深度学习的算法使用了未加改进的YoloV3 目标检测算法和以EfficientNet、DarkNet、GhostNet、FBNet 4 种不同的网络为主干提取网络改进后的YoloV3 目标检测算法,训练结果见表2。

图4 修改后的Yolo算法中的多尺度融合过程Fig.4 The multi-scale fusion process in the modified Yolo algorithm

表2 不同算法对衣物识别的结果对比Table 2 Comparison of the results of different algorithms for clothing recognition

图5 EfficientNet为主干提取网络的mAP平均精度值结果图Fig.5 The result of the average accuracy value of mAP of the EfficientNet backbone extraction network

由表2 可见,以EfficientNet 为主干提取网络的YoloV3的目标检测算法在Deepfashion2 数据集上由良好的表现,且后续在测试的过程中也没有发生过拟合等现象。

图6 衣物实时检测截图Fig.6 Screenshot of real-time clothing detection

5 结论

训练结果证明本课题进行的研究方法是有效的,对提高衣物识别的速度和减轻识别网络的体积具有意义。在识别短袖衣服、长裤、短裤等方面具有良好的分类效果。而在识别夹克外套、短裙等方面容易出现偏差,造成这一现象的主要原因是数据集的类别分布不均。

改进前的YoloV3 算法的平均精度值为58.74%,EfficientNet 作为主干的特征提取网络的算法将平均精度值提高到59.78%,同时参数量FLOPS 由62B 降低到约2B。实时监测的速度可以达到29.96 帧每秒,高于改进之前的27.45 帧每秒,同时良好地保证了识别的准确率。

猜你喜欢

衣物卷积神经网络
基于3D-Winograd的快速卷积算法设计及FPGA实现
神经网络抑制无线通信干扰探究
从滤波器理解卷积
保暖的衣物
基于傅里叶域卷积表示的目标跟踪算法
动脑筋,仔细看
女人衣物寄存公司
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定