1. 研究目的与意义、国内外研究现状(文献综述)
一、课题的意义
1、菊科是种子植物最大科,总数25000~30000种[1],其花卉表型也很多。植物表型是受基因和环境因素决定或影响的, 反映植物结构及组成、植物生长发育过程及结果的全部物理、生理、生化特征和性状。第十七届全国植物基因组学大会上指出,随着多数代表植物全基因组测序的结束,科研人员越来越认识到植物表型研究的重要性,不仅仅局限于农艺性状,还应更加关注植株所表现出来的生理形态。表型的复杂性加大了菊花研究人员和非专业人士入门的难度,其分类和识别要求相关人员具备丰富的实践经验,或者利用菊谱等进行比较。但这些方法不仅过程繁琐、花费巨大,还要求极高的知识积累。因此,本课题旨在使用计算机技术研究一套菊花图像识别系统,用操作简单、快速的计算机视觉识别替代繁琐的人工识别。
2. 研究的基本内容和问题
一、研究目标
本课题旨在基于迁移学习,通过预训练ImageNet[17]、COCO等公开的大型数据集,将得到有效的特征信息,如CNN中的部分参数,迁移到菊花表型识别,对参数进行微调,减少建立新模型所需的时间,并缓解小型数据集深度CNN带来的过拟合问题。除此之外,采用适用于弱监督细粒度图像分类的双线性汇合CNN模型,获得菊花图像的双线性特征向量进行分类,实现菊花图像表型识别。最后使用Flask框架进行模型部署,构建RESTAPI,开发一套高效、准确率高的基于迁移学习的web端菊花表型识别系统。
通过对比是否使用迁移学习,使用如VGGNet[18]、AlexNet[19]、ResNet[20]、Inception-v3[21]、InceptionResNet-v2[22]等不同的网络模型,选取适合菊花表型识别的最优算法,提高菊花表型识别的准确率和效率。
二、研究内容
1、迁移学习基本原理
迁移学习[15]是将某领域或任务上学习到的知识或模式应用到不同且相关的领域或问题中。迁移学习可以分为基于实例的迁移、基于特征的迁移、基于共享参数的迁移和基于相关性的迁移。
目前越来越多的基于机器学习的图像识别方法被提出,而表现较好的大多需要大量的标注数据,且假设数据是同分布的。但在实际的应用中,数据集中的样本数量有可能不够,或存在数据分布有差异、标注数据过期等问题。而且在小型数据集上深度神经网络模型可能导致过拟合问题,大型数据集的训练时间又很长。将迁移学习应用于图像识别领域,可以解决数据集小样本数量不够的情况,并在保证正确率的情况下有效地减少训练时间。
将迁移学习应用于图像识别,常将基于共享参数的迁移学习和深度学习结合起来,即预训练与微调(Pre-training fine-tuning)。
图1 预训练与微调的一般框架
预训练与微调的一般框架图如图1所示,首先采用一个含有大量样本的高质量标注数据集进行预训练,目前常使用含有1000万张以上图像的公开数据集ImageNet。预训练后得到的模型参数作为迁移对象,使用自己少量的标注数据,修改后的网络并加载迁移的参数进行训练,得到适合自己数据的新模型。一般微调可以分为只预测不训练、只训练最后的分类层和完全训练三种。
2、细粒度分类基本原理
细粒度图像类别精度更加细致,不同种类图像间的差异更加细微,往往只能借助于微小的局部差异才能区分出不同的类别。
菊科是种子植物最大科,总数25000~30000种,其花卉表型众多且复杂。菊花表型的复杂性使得某些菊花类内差异大,类间相似性高,如图2所示,这大大增加了菊花表型识别的难度。因此,菊花图像表型识别是一项极具挑战的细粒度图像分类问题。
图2 菊花图像类内差异及类间相似的示例
弱监督细粒度图像分类除了图像本身以及图像的类别以外,不需要再提供其他的人工标注信息。双线性模型是一种双流体系结构,由两个特征提取器组成,如图3所示,图像通过两个相同或不同的CNN网络结构,CNN网络A和CNN网络B,输出使用外积相乘并且合并,从而获得图像的双线性特征向量。两个网络相互协调,实现弱监督细粒度图像分类过程中的物体定位和局部区域检测,以及细粒度特征提取两个步骤。最后经过softmax层实现利用细粒度图像特征进行分类。
图3 用于图像分类的双线性CNN模型
3、迁移学习常用网络模型
(1)VGGNet
VGGNet[18]由牛津大学于2014年提出,在ILSVRC-2014定位任务中排名第一,分类任务中排名第二。常用的是VGG16和VGG19,VGG16的整体架构图如图4所示,特征提取网络的参数个数变化如表1所示,由13个卷积层和3个全连接层叠加而成,它的输入图像所需的尺寸为224*224*3。
1: VGG16首先输入224*224*3的图像数据,通过Padding补0,使得卷积操作后得到的矩阵和原矩阵大小相同。卷积层有64个3*3的卷积核,卷积操作后生成64层的新矩阵,再次Padding并进行卷积操作,得到大小为224*224*64的新矩阵。
2:然后通过一个最大池化层,小矩阵的尺寸为2*2,池化后长宽各缩小一半。
3:接下来同理,卷积核的个数分别变为128、256、512,每次通过最大池化层时,长宽都缩小一半,经过13层的卷积和5次最大池化后,得到大小为7*7*512的矩阵。
4:将矩阵拉平为向量,特征数为7*7*512=25088。然后通过3个全连接层,即把所有的局部特征结合为全局特征,一般神经元个数的取值为4096,当使用VGG16进行分类时,最后一个全连接层中的神经元数为要预测的类别数,使用ImageNet数据集时取值为1000。
5:最后通过预测层,即softmax层,softmax的计算公式如公式(1),zi表示n个类别范围内的分数,f(zj)为每个类别的概率,如果某一个zj大于其他的z,则趋于1,其他的趋于0,这样可以将每个分数归一化到(0,1)。
(1)
图4 VGG16整体架构图
表1 VGG16特征提取网络的参数个数变化
| 类型 | 矩阵大小 | 参数量 |
| INPUT | 224*224*3 | 0 |
| CONV-64 | 224*224*64 | (3*(3*3))*64=1728 |
| CONV-64 | 224*224*64 | (64*(3*3))*64=36864 |
| MAX-POOL | 112*112*64 | 0 |
| CONV-128 | 112*112*128 | (64*(3*3))*128=73728 |
| CONV-128 | 112*112*128 | (128*(3*3))*128=147456 |
| MAX-POOL | 56*56*128 | 0 |
| CONV-256 | 56*56*256 | (128*(3*3))*256=294912 |
| CONV-256 | 56*56*256 | (256*(3*3))*256=589824 |
| CONV-256 | 56*56*256 | (256*(3*3))*256=589824 |
| MAX-POOL | 28*28*256 | 0 |
| CONV-512 | 28*28*512 | (256*(3*3))*512=1179648 |
| CONV-512 | 28*28*512 | (512*(3*3))*512=2359296 |
| CONV-512 | 28*28*512 | (512*(3*3))*512=2359296 |
| MAX-POOL | 14*14*512 | 0 |
| CONV-512 | 14*14*512 | (512*(3*3))*512=2359296 |
| CONV-512 | 14*14*512 | (512*(3*3))*512=2359296 |
| CONV-512 | 14*14*512 | (512*(3*3))*512=2359296 |
| MAX-POOL | 7*7*512 | 0 |
| FC | 4096 | 7*7*512*4096=102760448 |
| FC | 4096 | 4096*4096=16777216 |
| FC | 1000 | 4096*1000=4096000 |
2)ResNet
ResNet由He-K等[20]于2015年提出,也是ILSVRC-2015的冠军,是当前应用最为广泛的CNN提取特征网络。VGGNet试着探寻了深度学习网络的深度对分类准确率的影响,发现一味地增加层数并不能一直提高分类性能,反而会导致网络收敛变慢,分类准确度下降。
ResNet通过使用多个有参层来学习输入输出之间的残差表示,ResNet的残差学习模块如图5所示,其中F(x)=H(x)-x,H(x)为深层的输出,F(x)为两层中间的变换,当浅层的特征x足够成熟时,F(x)则趋向于0,x就会从恒等映射路径传递。ResNet使网络收敛速度更快,也在传递时保证信息的完整性,使结果更有效。
图5 ResNet残差学习模块
ResNet网络结构中包括两种残差模块,一种是2个3*3的卷积网络串接为一个残差模块,如图6(a);另一种是3个分别为1*1、3*3和1*1的卷积网络串接为一个残差模块,1*1的卷积核可以增加非线性并减小输出的深度,从而减小计算成本,如图6(b)。 ResNet比较常用的网络层数为34、50、101和152,由图4这两种残差模块堆叠生成。
图6 ResNet两层及三层残差学习模块
(3)Inception
Inception-v1[23]获得了ILSVRC-2014分类任务的冠军。由于深层网络存在易过拟合,计算量大的问题,Inception旨在使用密集计算的形式,又兼顾增强网络的稀疏性。Iception将GoogleNet的某些大卷积层换为1*1、3*3和5*5的小卷积,这样能大大减少参数量。Iception结构如图7所示,1*1的卷积层可以达到降维的效果,1*1、3*3和5*5的小卷积并列,然后把各自的卷积结果作为层数的维度合并。除此之外,还增加了一个3*3卷积层和一个最大池化层串联为其中一个并联模块。
图7Inception-v1结构图
Inception-v2[21]相对于Inception-v1,在输入时增加了批标准化(batch_normal),对输入数据进行正则化处理,使所有输出保证在(0,1)之间。Inception-v2还将Inceptionv1中的5*5改为2个3*3的卷积层串联,如图8所示,这样第一层相当于卷积,第二层相当于全连接,不仅增加了网络深度,还减少了参数量。
图8Inception-v2结构图
Inception-v3[21]将GoogleNet中一些7*7的卷积层换为1*7和7*1的两层串联,3*3的卷积层换为1*3和3*1的串联,并且输入数据224*224*3改为229*229*3。Inception-V4[22]设计了新的Inception结构,将1*1和3*3串联成的并联模块改为先3*3再,同时结合Inception和ResNet提出Inception-ResNet-v1[22]和Inception-ResNet-v2[22],从而提高了计算速度。Inception-ResNet-v2在Inception-v3的基础上进行优化,增加了残差的设计,实现参数可以跳过一些层直接传递,解决深层次网络中得梯度消失的情况,使其网络层数比Inception-v3更深。
三、拟解决的关键问题
1、确定选取的网络模型,预训练所用的数据集,然后预训练得到参考的模型参数。对模型参数进行微调,使其适用于菊花表型识别。
2、对菊花图像数据集进行预处理,迁移模型参数,建立菊花表型识别模型。
3、对比分析:对比是否使用迁移学习,使用不同的网络模型对菊花表型识别正确率和时间复杂度的影响。
3. 研究的方法与方案
一、研究方法
1、通过查阅网络和书籍资料,了解迁移学习。
2、查阅相关国内外文献资料,分析近几年来迁移学习应用于图像识别领域,特别是植物表型识别的研究,在学习和借鉴的基础上添加自己的创新元素。
4. 研究创新点
1、由于菊花种类众多,表型复杂,目前在此领域研究的人员较少,且识别准确率有很大的提升空间,具有良好的应用价值和前景。
2、本课题将基于迁移学习的图像识别技术用于菊花表型识别,将imagenet数据集上预训练得到的参数迁移到菊花表型识别,可以大大地减少模型训练的时间,实现快速、高效的菊花表型识别。
3、基于本课题,可以将该方法推广到其他设施花卉的品种,具有良好的延展空间,对植物表型研究有重要意义。
5. 研究计划与进展
1、研究计划
2019.12采集并整理数据集,学习迁移学习和卷积神经网络基础知识。
2020.01 数据集预处理,学习迁移学习相关算法。
