APP下载

基于迁移学习与模型融合的犬种识别方法

2019-03-11李思瑶刘宇红张荣芬

智能计算机与应用 2019年6期
关键词:迁移学习深度学习

李思瑶 刘宇红 张荣芬

摘要:犬种识别研究属于细粒度图像分类的典型代表,使用传统图像分类方法与普通卷积神经网络进行犬种识别,会出现准确率普遍很低等问题。本文提出了一种将迁移学习与模型融合相结合的方法。通过运用四种常用的卷积神经网络模型分别进行部分图像的特征提取,选取表现最佳的两种模型Inception_v3以及Resnet152_vl进行双模型融合,将得到的融合网络用于犬种图像进行迁移学习训练。针对120类犬种图片,训练得到了验证集精度可达93.02%的网络模型。同时考虑将测试集图片经过YOLO目标检测算法识别,定位目标区域后再送人网络。实验结果表明该方法在融合模型中能进一步提高犬种识别检测精度。

关键词:迁移学习;模型融合;犬种识别;深度学习

0引言

深度学习(Deep Learning)的概念源于人工神经网络的研究,深度学习实际上是深度神经网络DNN。而神经网络技术的开展可以追溯到1943年。近年来,深度学习在目标检测、表情识别、目标跟踪等诸多领域有了巨大的研究进展,特别是在图像分类方面有许多突破。目前大部分的图像分类工作都集中在通用分类,比如对手写体数字的分类等多种不相关类别。因此,子类别的图像的区分也就是细粒度图像分类成为这几年计算机视觉领域的研究热点。其研究目标从不同类别转换为同一类别不同子类之上,是一项极具挑战的研究任务。犬类是与人类最密切相连的动物,人们对于犬类普遍比较熟悉,素材照片等更容易获取,一定程度方便了深度学习的开展。

犬种识别的研究是进阶陸的过程,由于犬类的类间相似性和类内差异性以及图片的背景、拍摄光线、目标姿态等的影响,其研究具有一定的难度。犬类的区分一般是通过专家鉴定或者基因检测来实现,然而这些方法会消耗极大的人力与时间。此外,还出现了利用人脸识别、图片局部定位和PCA技术的由粗到细的犬种分类,基于地标形状的犬种分类方法,以及使用传统的神经网络算法来进行图像分类等方法。但由于犬类的数据集对于神经网络的训练远远不够、对图像局部(关键)区域的细节特征提取不充分等原因,以上这些方法在识别准确率上普遍不高,识别种类也不是很多。

本文提出了一种基于迁移学习和双模型融合的犬种识别算法。使用已在大规模数据集ImageNet上预训练的四种常用深度神经网络Vggl6_bn、Densenetl61、Inception_v3和Resnetl52_v1分别进行部分图像的特征提取。由于不同的卷积神经网络(CNN)架构在提取图像特征时表现的学习过程不同,导致视觉分类有不同结果。为组合多方位的信息表示,达到更优化的性能,选取表现最佳的两个网络Inception_v3和Resnetl52_v1进行双模型融合。然后将该融合网络用于120类犬种图像进行迁移训练。同时将测试集图片经过YOLO目标检测算法識别目标区域后再送人融合网络进行实验,进一步减少背景干扰。

1相关理论

1.1Inception_v3模型

卷积神经网络包含多种模型,例如Alexnet、VGG、Googlenet等。其中,Google Inception Net在2014年的ILSVRC比赛中取得第一名。Inception-v3模型在v2的基础上改进了三种Inception模块:使用两个3×3的卷积替代每个5×5的卷积,将n×n的卷积分解成一维的n×1和1×n卷积的串联。压缩特征维度数不仅促进了高尺寸图像的表示,也减轻了过拟合现象。全连接层被全局平均池化层所取代,极大地降低了参数数量。该网络包含47层,其详细网络结构如图1所示。

Inception_v3网络输入图片大小为299×299,在减少计算量的同时提升了网络性能。除了在模型中使用分支,也实现了在分支中使用分支。同时增加了一层非线性扩展模型表达能力,可以处理更多的空间信息,增加特征多样性。

1.2Resnetl52_v1模型

Resnet在2015年的ILSVRC比赛中取得第一名。该网络多达152层,网络深度和维度的增大使其可以进行更加复杂的特征模式提取。同时该网络的作者还提出了残差学习来解决深度网络的退化问题,残差学习单元如图2所示。

其中,输入为x,学习到的特征记为H(x),这样残差就表示为F(x)=H(x)-x。残差单元可以表示为:

其中,xi和xj+1分别表示第j个残差单元的输入与输出,f为激活函数relu。推导可得从浅层了到深层J的学习特征为:

在实际操作中残差不等于零。因此考虑残差函数会使得堆积层在输入特征基础上学习到新的特征,从而拥有更好性能。

1.3 迁移学习

在面对图像分类领域的具体应用场景时,通常可能无法得到用以构建神经网络模型所需规模已标记的数据。迁移学习(Transfer learning)提出,通过从相关域中的数据中提取有用信息,并将其转移以用于目标任务来解决此类跨域学习问题。即除了目标域中的数据之外,还可以包括不同域中的相关数据,以扩展目标未来数据的先前知识的可用性。本文主要以常见的120类犬种数据为基础展开研究。然而犬类的数据集远远不够用来重新训练深层神经网络,因此借助迁移学习的思想,在训练数据集规模较小的情况下可以使用预训练过的模型。通过对预训练网络瓶颈层之后进行截断,保留可重用层的有用神经元,以挖掘出更多的犬种分类特征。另外,迁移学习可以使训练数据保持在相同特征空间中或具有与未来数据相同的分布,避免了过度拟合问题,因此可以学习到更出色的底层规则。

1.4 YOLO目标检测网络

YOLO网络将物体检测任务当做一个回归问题来处理,使用一个神经网络,直接从一整张图像来预测出边界框的坐标、框中包含物体的置信度和物体的可能性。YOLO将目标区域检测和类别预测整合于一个神经网络中,端到端的训练过程优化了物体检测性能。如图3所示,YOLO将输入图像划分为S * S的栅格,每个格子负责检测中心落在这个格子中的物体。

其中,每个栅格对其预测的边界框判断条件为:

通过得到的结果来判断该边界框中是否含有目标。

在本文的研究中,借助YOLO网络能够快速检测数据集,并能较为准确地将狗与图片背景分开,在一定程度上减少了背景对品种分类的影响。

2 犬种识别

2.1 基本思想

犬种分类时,由于不同种类的狗外观具有一定的相似性,同一种类的狗也有毛发颜色、姿势不同等原因,因此需要充分包含目标纹理中的细节信息。为了能在得到全局视觉特征信息的同时,还能够得到图像局部(关键)区域的细节特征共同進行对比分析,本文提出了如图4的实验过程以找到表现更好的网络结构,从而进一步提高识别准确率。具体实验步骤如下:

(1)将4种基础网络在大规模数据集ImageNet上进行训练得到相关预训练的神经网络。

(2)将部分数据集分为训练集与验证集,并分别导人4个网络。

(3)选取表现最佳即在验证集上损失函数最小的2个网络进行模型融合。

(4)改进网络结构,使其适用于犬种图像的数据集。

(5)再次将全部数据中的训练集与验证集导人融合后的网络,进行迁移学习。

(6)对网络进行微调使其表现出更好的性能,最终得到的网络用于犬种图像的分类预测。

(7)将测试集图像输入网络,查看预测结果。

(8)将测试集图像经过YOLO检测算法,分割目标区域后送人网络,比较两次操作的预测结果。

其中,在网络迁移学习过程中,冻结融合网络的相关权重,训练最后添加的分类头浅层网络。由于训练参数比较少。选择能对梯度的一阶矩估计和二阶矩估计进行综合考虑,计算出更新步长的Adam优化器。训练过程中,梯度下降时,每个批次包含128个样本,迭代轮数设为100轮。

2.2模型融合

由于搜集到的人工标记犬类图片数量远不及训练高广义CNN模型所需要的大规模标记数据集合,尤其是对于复杂且非常深的CNN架构。单靠本文准备的数据集无法获得合理的分类模型。因此,本研究利用大规模ImageNet数据集,利用预训练模型探索了犬种分类的转移学习策略。通过在预训练模型中用犬类数量的神经元替换最终的分类器层(1000个神经元),并保留相同的条件。例如其它层的内核大小数,使用预训练的CNN模型的学习参数作为初始值。之后,使用加权表决融合方式将两种网络训练所得特征进行拼接。不同的模型具有不同内核大小和体系结构。这可以学习不同方面的图像表示,例如多尺度属性,并在后层中载人特征提取后的数据以用于犬品种分类学习。本文选择Inception_v3与Resnetl52_vl网络进行实验。具体融合方法如图5所示。

其中。添加GlobalAvgPool2D层是为了对两个网络的输出尺寸进行调整从而可以合并。GlobalAvgPool2D层没有数据参数。两个网络的特征输出尺寸均为(28440,2048,1,1),是四维矩阵。而全连接层的输入要求是二维矩阵,两个输入尺寸分别进入GlobalAvgPool2D层后被调整为(28440,2048)大小,特征拼接后的输出尺寸为(28440,4096),可见进行网络融合后可以学习到更多的图像特征。添加的两层完全连接层的神经单元数分别为256以及120.激活函数为RELU函数,为了防止训练过拟合,设置Dropout为0.5.

3 实验验证与分析

3.1 犬种数据集及其预处理

本文所使用的犬种数据集包括斯坦福大学搜集的120种犬类数据,以及Kaggle竞赛所使用的有标签的训练数据,两个数据集包含的图片有部分重复。同时,用到了自行在网络搜集的部分图片。图片总和为31600张。实验中随机抽取每种类别图片的80%作为训练集,10%为验证集,剩余10%为测试集。首先通过对数据集进行随机镜像、增加适当高斯噪声、垂直方向图像随机旋转等处理实行图像增强。数据集增强在一定程度上弥补了数据集样本不足的问题,减少网络的过拟合现象,可得到泛化能力更强的网络,更好地适应应用场景。之后,对图像进行预处理:由于图片将分别进入两个网络,所有图片应缩放为224x224以及299x299像素,满足两个网络不同的输入要求。图像的均值和方差按照数据集ImageNet来设置。根据模型预先训练时的处理方式来处理数据,这样才能保证最好的效果。

3.2 实验环境及评价指标

本实验采用的GPU显卡为GTX 1080Ti,内存为64GB。在Linux系统下,犬种分类过程采用基于mxnet的gluon深度学习框架对图片进行分类。

模型的性能评价指标包括训练集、验证集、测试集的准确率以及训练集和验证集的损失率。其中,训练集的准确率和损失率体现了模型训练时的性能,验证集的损失率用于判断模型在迭代过程中是否出现过拟合等情况,测试集的准确率直接反映了已训练好的模型的预测能力。这两个指标由如下公式定义:

其中,M是样本数量;yi是标签;f(xi)为模型预测结果:I是条件判断函数:a为神经元经过激活函数的非线性输出。

3.3 实验验证与分析

实验工

将数据集中Kaggle所包含的10222张图片经过预处理后分别送人Densenetl61、Inception_v3、resnetl52_vl以及vggl6_bn的预训练网络。预训练模型是由其它组织使用包含许多类别的大量数据集训练而成,其中有几千万的样本。在这种情况下,还需要训练模型最后的分类头。卷积层从图片中提取特征,完成连接层对图片进行分类,需要调整最后的完全连接层来制作模型以适应犬种的数据。通过比较四种网络的性能,找到在验证集上损失率较小的前两个网络进行双网络融合。网络的批量处理大小为64,学习速率设置为0.001,用于微调。四个模型训练后得到的训练集与验证集的损失曲线如

由此可见,对于犬种数据学习性能较好的为resnetl52_vl网络和Inception_v3网络。接下来,将这两个网络按照本文2.2节所介绍的方法进行模型融合。为了两个网络进行融合,需要自定义一个网络合并层,保证这两个神经网络在合并前的输入尺寸一致。之后,添加分类头,也就是输出层。将上述两个网络拼接起来,逐步构建完整网络结构。然后将总数据集中的90%图片作为训练集与验证集送人融合后的網络进行迁移学习,训练得到的准确率与损失率结果如图7所示。

由图可见,融合网络进行迁移学习后,验证集的损失率下降到0.24,验证集的准确率可达到93.02%。并且,迁移学习能通过较短的训练时间进行特征学习。然而,通过对比数据发现损失率在经过30次左右的迭代后出现了下降速度缓慢、不能降到很低等问题。这可能是由于仅训练最后添加的分类头使网络不能更好地匹配犬种数据集所造成的。

实验2 首先将测试集图片送人训练好的网络检测其预测能力。通过观察发现犬种图片仅出现在图片的部分区域,背景在一定程度上分散了网络学习。为验证该设想,随机选取五张图片进行YOLO目标检测网络,随后将得到的五组图片送人网络进行犬种分类。实验结果对比见表2.分析表中结果可知,若是图片中目标面积较大,图片分割前后均能识别出正确的类别名称:若图片中的背景环境较为复杂,分割出目标后再进行检测可以有效提高预测精度;若是拍摄照片时的角度、光线等出现变化,分割前后的结果均容易受到影响。可见,将目标区域定位后再送人网络能够在一定程度上减少识别误差。

经过将测试集分组实验,对比测试图片经过YOLO检测算法分割目标区域前、后的识别效果并取识别率均值,结果得到目标分割前后准确率分别为67.20%和68.45%,提高了1.05%。表3是本文测试结果与其它文献中识别方法的对比。

可以看出,文献[6]是基于传统的深度学习网络Alexnet而展开的训练,其检测精度明显低于其它方法,这是由于传统的网络参数训练对数据有极大依赖性,图像特征的提取也与先验知识有密切关系。特别是随着网络层数的不断增加,Alexnet包含8个隐藏层,而本文所使用的网络的层数明显更深,单纯利用数据对网络进行训练是不能更好地实现分类任务的。文献[8]使用的数据集多达163K张,使用预训练方式对DCNNs进行完全初始化训练。该方法虽然增加了数据总量,但训练学习到的特征过于单一。文献[9]的结果虽然比本文方法稍高一点,不过在该实验中使用了比本文更多的图片用于训练,并且在网络训练过程中首先训练了一个狗脸探测器用于之后的宠物识别,这无疑会消耗更多的训练时间,降低工作效率。

最后,值得一提的是,在本文所搜集的数据中,Kaggle数据集存在少数犬类图片人工标记分类错误等问题。同时总数据集的每个种类包含的图片数量并不均匀,这些都会对网络的训练造成一些影响。

4 结束语

本文提出了一套基于迁移学习与融合基本CNN模型实现犬种分类的方法。实验证明该方法对于属于细粒度图像分类的犬种识别有一定的性能改进。由于训练样本数量不足等问题,本文研究了迁移学习策略。另外,由于不同网络的内核大小、层数和结构等的不同,深度CNN架构可能会提取出图像的不同表示特征,从而导致视觉分类的不同表现。通过将4种常用CNN模型在大规模ImageNet数据集上进行预先训练,学习调整网络的各层参数,以增加不同特征信息的表示。再次将犬种数据集分别输入4个网络,选取表现最佳的2个网络进行模型融合以结合多方位信息来获取更加准确的分类,这是本文创新之一。

论文在选取Inception_v3以及Resbetl52_vl网络进行双模型融合后。将生成的新网络用于犬种图像的迁移学习。针对120类犬种图片,训练得到了验证集精度可达93.02%的网络模型。之后将测试集图片经过YOLO目标检测算法识别大目标区域后再送人融合网络,结果表明该测试集经过目标定位分割后在模型中提高了1.05%的检测精度。说明减少背景信息的干扰可以显著提高性能,这是本文另一个创新之处。横向对比实验结果进一步验证了本文方法用于犬种识别的可行性。在之后的工作中,将继续沿着这个方向研究并做出改进,进一步提高犬种识别的性能,探索其应用潜能。

猜你喜欢

迁移学习深度学习
迁移学习研究综述
从认知角度探讨大学英语网络教学模式
奇异值分解与移移学习在电机故障诊断中的应用
有体验的学习才是有意义的学习
电子商务中基于深度学习的虚假交易识别研究
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
一种基于迁移极速学习机的人体行为识别模型