基于SSD_MobileNet_v1网络的猫狗图像识别

2020-03-24 06:57丁学文雷雨婷孔祥鑫
天津职业技术师范大学学报 2020年1期
关键词:图像识别网络结构卷积

孙 彦,丁学文,2,雷雨婷,陈 静,孔祥鑫

(1.天津职业技术师范大学电子工程学院,天津 300222;2.天津市高速铁路无线通信企业重点实验室,天津 300350;3.天津天大求实电力新技术股份有限公司,天津 300392;4.天津远孚信息技术开发有限公司,天津 300220)

图像识别是在提取图像特征的基础上,对图像的各种不同模式目标和对象进行识别的技术。近年来,市场对动物识别技术的需求愈演愈烈,动物也被纳入目标识别研究。Pascal(patternanalysis,statisticalmodeling and computational learning)、VOC 2006(visual object classes challenge)[1]顺应研究趋势,将动物识别列入机器视觉研究对象,包括猫狗、牛羊等,其中研究较多的是猫狗识别。如目前宠物摄影仅限于由专业宠物摄影师给宠物拍摄,远不能满足人们对自家宠物“自拍自足”的需要。因此,需要具备类似于“人脸优先对焦”的“宠物脸部优先对焦”功能的数码相机,在拍照时能优先对焦到宠物脸部,方便拍摄操作[2]。2010年,谢素仪[2]在《宠物猫脸检测的方法研究》一文中提出基于机器学习的由粗到精的猫脸检测方法,利用训练得到的粗级猫脸检测器能够快速地检测出不同尺度的猫脸,级联基于HOG 特征的SVM 分类器,对粗级分类器的检出框归一化大小后做二次分类,将其结果作为最终分类结果以排除误检。但仍然存在检测率低,因图像分类器旋转角度较大容易出现漏检和检测速度无法实时的问题。随着近年来深度学习的兴起,卷积神经网络(convolutional neural networks,CNN)得到了广泛的应用。利用CNN 对猫狗图像识别,虽然在特征提取以及识别速度方面具有优化性[3],但存在识别率低且计算量复杂、内存消耗大的问题。具体表现为CNN 识别猫狗图像对于同一目标发生轻微朝向或位置变化时,识别效果变差,且容易在训练过程中丢失有价值信息,忽略了局部与整体之间的关联性;此外,图像的计算量大也会使得内存资源占有量变大,导致程序整体运行缓慢,影响速率。针对上述问题,本文基于Tensorflow 平台,构建了一种运用目标检测模型SSD_MobileNet_v1 网络实现猫狗图像识别的方法。SSD_MobileNet_v1 模型综合了SSD 网络优化性能、准确率高的特点和MobileNet 轻量级网络可减少整体网络计算参数量及降低内存资源的优势,从而提高对猫狗图像的识别效果。

1 SSD_MobileNet_v1网络模型

SSD_MobileNet_v1 网络模型是以SSD 网络为基础,结合MobileNet 网络改进而成。

1.1 SSD卷积神经网络

SSD 卷积神经网络模型(简称SSD)是利用单个深度神经网络进行对象检测的框架。SSD 源自于Fast_RCNN 系列检测模型,继承了原始框架的良好性能,并在原有模型的基础上进行了改进和创新,最终演变成一个具有更高精度和更好性能的网络模型[4]。

SSD 的网络结构是对传统VGG16 网络结构的改进,SSD 网络结构如图1 所示。

图1 SSD 网络结构

(1)使用 VGG16 网络的前 5 层,添加 Atrous 算法(hole 算法)对图像进行背景抑制与增强[5],使VGG16 的FC6 和 FC7 层转化为 Conv6 和 Conv7 两个卷积层,去掉所有的Dropout 层和FC8 层,额外增加3 个卷积层和1 个平均池化层。

(2)抽取 Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2 层的 feature map[6],分别在 feature map 层的每个点构造6 个不同尺度大小的Bounding Boxes(简称BB),分别进行检测和分类,生成多个BB。

(3)将不同feature map 获得的BB 结合起来,经过非极大值抑制方法(NMS)抑制重叠或不正确的BB,生成最终的BB 集合。

SSD 中,原VGG16 模型增加的卷积层的feature map 变化较大,可检测出不同尺度下的物体。此外,SSD 去掉了全连接层,其每个输出会感受到目标周围的信息,包括上下文,增加了其合理性,不同的feature map 可预测不同宽高比的图像,可实现多尺度检测的目的。

1.2 MobileNet网络

MobileNet 网络模型是Google 针对手机等嵌入式设备提出的使用深度可分离的卷积来构建轻量级的深层神经网络。其核心思想在于巧妙分解卷积核,将标准卷积分解成深度卷积和点卷积(1×1 卷积核),深度卷积将每个卷积核应用到每个通道,针对单个输入通道,用单个卷积核进行卷积,得到输入通道数的深度,再利用点卷积对深度卷积的输出进行线性结合,从而产生新的特征[7]。这种分解可有效地减少网络参数,降低模型规模,并减少过拟合所引起的训练问题。

MobileNet 网络模型包含输入层、13 层卷积层、平均池化层和全连接层,每层卷积层后有批规范化层[8]和ReLU 非线性激活函数[9],MobileNet 网络主体结构如表1 所示。

表1 MobileNet 网络主体结构

MobileNet 将VGG16 传统卷积核、后3 个全连接层分别替换成深度卷积核与单点卷积核的组合、7x7平均池化层与1 024×1 000 全连接层,而VGG16 的最大池化层则用卷积核跨步替代。此外,MobileNet 网络引入2 个全局超参数:宽度乘数和分辨率乘数,2 种超参数相互作用可有效平衡延迟度和准确度,通过减少网络参数量来缩减计算量。

标准卷积层由卷积核k 参数化,标准卷积核G 可表示为

深度可分离卷积计算量G′为

深度可分离卷积计算量G′与标准卷积核计算量G 比率为

式中:Dk为正方形内核的空间尺寸;M 为输入通道数;N 为输出通道数;标准卷积核G 可用来评价模型参数量的压缩程度;G′为纵向与 1×1 点向卷积之和,式(3)将卷积表示为过滤和组合2 个过程,由公式(1)、(2)、(3)可以发现,通过3×3 的分离卷积计算使模型参数量减少,计算量缩减约Dk2,在通道级别上计算瘦身,且损失精确率程度低。

1.3 SSD_MobileNet_v1网络模型

SSD_MobileNet_v1 模型的结构以SSD 模型为基础网络,在MobileNet 网络的conv13 层后添加8 个卷积层,抽取其中6 层作为检测层。SSD_MobileNet_v1新增网络结构层如表2 所示。

表2 SSD_MobileNet_v1新增网络结构层

SSD_MobileNet_v1 模型结构将SSD 和MobileNet结合,通过多层卷积网络,经卷积分解等操作,对各个通道单独计算输出,再由点卷积执行特征融合进入下一层网络,然后输入到卷积模型,进行特征筛选与输出特征映射,减少SSD 参数的数量与运算量,实现SSD 检测网络的加速。其网络结构如图2 所示。

图2 SSD_MobileNet_v1 网络结构

SSD_MobileNet_v1 模型保持了原有SSD 网络结构,用3×3 大卷积核进行特征学习,分别在深度卷积层和点卷积层后连接批规范层和ReLU 函数来保证良好精确度,相当于空间和通道之间的解耦,以达到模型运行加速的目的[10]。SSD_MobileNet_v1 网络模型用小规模参数代替原有冗余参数,使得计算量和硬件内存资源消耗降低,加快了收敛速度,有效地控制过拟合,改善模型性能[11]。

2 系统设计与实现

本文设计的猫狗图像识别系统分为3 个模块:第1 个模块是数据集构建模块,采集猫狗图像构建数据集,并对数据集图像进行随机翻转、标注等预处理,以减少杂糅信息对输入图像的干扰;第2 个模块是网络训练模块,将预处理后的图像作为输入,利用MobileNet得到图像全部输出特征,采用区域生成网络(region proposal network,RPN)特征区域[12],将特征区域里的图像特征输入到SSD 网络进行网络训练以得到权重值,再利用softmax 回归器将卷积神经网络的输出变成概率分布,直观显示识别的准确率;第3 个模块是识别模块,该模块将测试图像输入到已经完成训练的网络中进行计算,得到识别结果。系统实现框图如图3所示。

图3 系统实现框图

2.1 数据集构建

从coco 数据集中选择图片来构建本文需要的训练集和测试集,选取coco 数据集中像素高的猫和狗图片各500 张为训练集图片,各100 张为测试集图片。

识别之前对图像进行预处理,去除目标特征不明显的图像,增强图像信息,便于对目标的识别,预处理主要完成以下工作:图像增强、图像标注、.xml 格式转换.csv 格式、.csv 格式转换 record 格式。

由于图像具有随机性,图片尺寸大小不一,为避免重复率较高等问题,对数据集图像进行随机裁剪;利用滤波消除图像噪声,通过图像锐化增强图像的边缘细节等操作,有效提高图像质量和利用率。

对图像数据增强后,需标注图像及转换格式。使用LabelImg 软件对数据集图像标注特征区域,同时指定合适的标签,将图像的标注信息存入同名的.xml 文件中以供后续使用。在标注时,选择对猫狗图像面部特征的合适方框,对标注的区域命名实现数据的分类,在图像同一文件夹下同名的.xml 文件包括图片的名称、存储路径、类别、原图以及标注区域大小等信息。把包含图像标注信息的.xml 文件统一记录到.csv表格中。

.csv 表格显示原图尺寸和标注区域大小及图片的分类名称,图片标注区域满足式(4)、(5)呈现的关系

式中:xmax、xmin、ymax、ymin分别为标注区域宽度的最大值和最小值、高度的最大值和最小值;width 为原图宽度;height 为原图高度。

利用Tensorflow 平台提供的TFRecords 格式存储数据,将.csv 格式转化为.TFRecords 格式,将训练集和测试集里图片和对应标注信息结合,统一数据格式,有效管理不同属性,更好地利用内存。

采集的猫狗图像经过预处理,排除对图像识别的干扰因素,筛选后得到的结果为训练集中猫和狗图片各400 张,测试集里猫和狗图片各65 张。预处理后的猫狗图像数据集如图4 所示。

图4 预处理后的猫狗图像数据集

2.2 网络训练

对网络模型训练需配置.pbtxt 文件,设置标注的类别数量为2,因其数据量过大导致内存不足,设置批次batch size 大小为1。为了模型在训练的前期可快速接近较优解,采用指数衰减方法设置梯度下降法中的学习率,这样可保证在后期不会有太大的波动,更加接近最优解。初始学习率设定为0.004,衰减率为0.95,每个训练步骤的学习率降低到先前学习率的0.95 倍。随着训练次数的增加,学习率由大逐步变小,学习率大可以快速收敛,但是训练结果不佳,且收敛损失率较高;学习率小收敛的速度慢,想要达到较低的损失效果需要训练较多步数。

训练模型不仅要优化损失函数,让模型尽量模拟训练数据行为的同时还应对未知数据进行判断,使用L2 正则化,将刻画模型复杂程度的指标添加到损失函数中以有效避免过度拟合。L2 的计算公式为

式中:w 为神经网络中的权重参数,权重决定了模型的复杂度。

L2 正则化是通过限制w 的大小,使模型不能任意拟合训练数据中的随即噪音,从而避免过拟合。L2 正则化网络训练如图5 所示。

为了使模型在测试数据上更健壮,在使用随机梯度下降法的同时,还需使用滑动平均模型来改进。此外,还需配置管道配置文件,即配置训练集和测试集的路径。创建标签分类的配置文件.pbtxt,要识别猫和狗2 种目标,在标签配置文件中创建2 个类别。

图5 L2 正则化网络训练

3 实验结果与分析

实验的硬件平台为Windows10 操作系统,CPU:Intel(R)_Core(TM)_i5-3337U CPU@1.80 GHz,RAM:4GB。

3.1 性能评估

对于猫狗识别系统而言,性能评估从识别精度和识别速度两方面来考量。

通过检测猫狗图片的过程来进行性能评估,利用Tensorflow 平台自带的可视化工具Tensorboard 对网络性能进行监测,Tensorboard 可以有效地显示操作期间Tensorflow 的计算图,各种指标随时间的变化趋势以及训练期间使用的图像等信息而变化。训练总损失度total_loss 曲线如图6所示,训练全局步数变化如图7所示。

图6 训练总损失度total_loss 曲线

图7 训练全局步数变化

从图6 可以看出,训练的损失度随着训练次数的增加而呈下降趋势,SSD_MobileNet_v1 网络训练继承了SSD 的良好性能优势,随着训练次数的增加和计算开销的减少,图像的处理效果逐渐转好,其失真率减小,图片识别的效果逐步提高。从图7 可以看出占用内存的消耗情况,训练次数的增加使得模型训练时间变短,计算消耗减少,呈现出内存消耗减少的优势,优化了网络性能。

3.2 识别结果

采用经过188 000 步训练后生成的网络进行猫狗图像识别,测试集中包含猫和狗的图片各50 张,部分猫狗图像识别结果截图如图8 所示。测试结果表明,对猫狗图像平均识别率为98.21%,识别效果良好。

图8 中,识别框为对目标的定位;方框旁cat 和dog 为图像识别的类别;百分比为判断为该类别的概率。默认显示最大识别率,如cat:99%为识别出图像为猫的概率是99%,dog:1%~99%=1%,且1%<<99%,故认为是猫。

上述结果表明,本文构建方法的识别率高于传统通过卷积神经网络方法,实验还发现SSD_MobileNet_v1网络模型具有较强的抗干扰性,对于存在背景干扰的图像,依然能准确识别目标,且可达到一定精度。对同一目标,背景存在或者不存在时,都可以识别出目标,但存在背景干扰时,识别出的准确率会有所降低。此外,基于对单一目标图像的精准识别,进一步对多目标图像进行识别,以检测构建方法对于猫狗图像识别定位效果的优越性。背景干扰识别效果图如图9 所示。对于多目标共存的图片依旧具有较好的定位效果,满足多个体出现的真实场景中准确定位的要求,且识别精确度高。

图8 部分猫狗图像识别结果截图

图9 背景干扰识别效果图

由文献[2]可知,基于CNN 的猫狗图像识别的准确率为76.80%,SSD_MobileNet_v1 模型与CNN 模型检测效果对比如表3 所示。基于模型训练对于数据集中测试图像进行验证,采用平均精度均值方法(mean average precision,MAP)对图像识别效果进行准确率平均值计算得出98.21%的准确率,可明显看出SSD_MobileNet_v1 准确率有大幅提升。

表3 SSD_MobileNet_v1 模型与CNN 模型检测效果对比

4 结 语

传统的基于CNN 猫狗图像识别方法对猫狗图像的识别率不高,容易丢失目标信息,且内存占用较大。而本文提出的基于SSD_MobileNet_v1 网络模型识别目标的方法,对猫狗图像数据集进行训练和测试,产生了良好的收敛效果,模型训练总计算量减少,内存消耗降低,优化了网络性能,对背景等具有抗干扰性,定位精度更高。实验结果表明,基于SSD_MobileNet_v1网络模型对猫狗图像的识别率达98.21%,比传统方法有了较大提升。尽管训练所得到的检测效果有所改善,但精确度与性能没有达到高效性和一致性,今后在模型的性能优化方面需继续提高,以求达到更高的鲁棒性,充分发挥其实用价值。

猜你喜欢
图像识别网络结构卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
快递网络结构研究进展
卷积神经网络的分析与设计
基于Resnet-50的猫狗图像识别
基于AutoML的保护区物种识别①
高速公路图像识别技术应用探讨
从滤波器理解卷积
图像识别在物联网上的应用
图像识别在水质检测中的应用
基于傅里叶域卷积表示的目标跟踪算法