植物识别融合式双特征卷积神经网络

2021-06-28 12:42徐文博
计算机工程与设计 2021年6期
关键词:宏观微观纹理

左 羽,徐文博+,吴 恋

(1.贵州师范学院 数学与大数据学院,贵州 贵阳 550018; 2.贵州师范学院 大数据科学与智能工程研究院,贵州 贵阳 550018)

0 引 言

研究基于深度学习的植物识别方法能够帮助人们更容易地认识植物,具有重要的研究和应用意义。在植物识别的研究中,因为植物叶片所包含的形态学信息最为丰富,所以计算机视觉领域常常针对树叶来设计特征描述子。最为人所熟知的是基于统计学的形状上下文SC(shape context)描述方法,这个方法被谭亮[1]运用匹配检索的方式来识别植物。李龙龙等基于改进型sobel算子[2]提出一种描述叶片特征的算子,用这个算子提取特征数据库中图片特征形成特征池,通过对比待预测叶片图像特征与库中特征的相似程度来进行识别分类。随着深度学习技术的发展,学者们利用卷积神经网络CNN(convolution neural network)来提取叶片形状和叶脉[3],花瓣颜色形状[4,5]这些局部形态学特征,并据此来区分植物种类,取得了比手工特征更好的效果[6]。

本文根据深度卷积神经网络模型特点[7],结合植物识别的特殊要求和网络优化方法,从缓解梯度弥散问题[8,9]、提高特征利用率、减少参数和特征融合的角度考虑,从整体轮廓和局部纹理细节分别提取特征后融合,提出融合式双特征卷积神经网络来解决单一网络的特征提取限制,提升在植物分类任务中的识别准确率。

1 卷积神经网络残差

植物图像的识别相比于一般物体识别更具挑战性,一般物体的识别,特别是不同大类之间物体在形状、颜色、结构上都存在着较大差异,经典的神经网络(ResNet[10]、GoogleNet[11,12]等)可以较为理想地区分开这些物体。对于植物而言,植物的种类众多,有成千上万的属种,类内间形态特征往往相似程度高(如同科植物),这给分类带来了巨大挑战。随着需要识别的植物种类增多,低维浅层特征并不能给分类器提供足够的信息用于分类,并且图像中的场景往往会带来干扰。另外,同一种植物在不同的季节、地域和生长环境中会呈现不同的形态,这样便要求网络模型能够提取足够丰富的特征,不仅表达出图像中植物的外形轮廓信息,而且也需要表达出细节纹理信息,体现出更强的泛化能力。

更深的网络可以更清晰泛化图像特征,ResNet的残差结构能够很好的让网络加深的同时又能够缓解梯度弥散的问题使得网络易于训练收敛。在基础的残差模块中,每个残差模块都包含两条路径,其中一条路径是传统CNN中输入特征的直连通路,该路径接收上层传来的特征图进行后续卷积操作;另一条路径则不对输入的特征做任何操作,通过直连将特征直接送入指定的高层,最后再将两条路径上的特征相加。这样的连接方式可以直接将低层的特征跨层传到高层,成功解决梯度问题,让网络可以做得更深。但由于每层的feature map数过多,部分神经元并没有得到激活,也即是网络参数的利用率不高,从而影响计算效率,因此改进的残差模块中引进了1×1卷积。利用1×1卷积在不改变特征图尺寸的前提下先将输入的特征图通道数减少,然后再用减少通道后的特征进行卷积,卷积的结果通过1×1卷积核恢复到原有的通道数,这样便减少了残差网络的参数和计算复杂度。

但是,ResNet中的残差连接位置是人为设计的,这便使得有效特征的利用产生了随机性,这是因为无法确定在不同的任务中具体哪一层的特征传到后面指定的高层后会对特征提取产生积极作用。为解决这样的随机性,使用如图1的密集残差卷积神经网络架构,明确区分添加到网络的信息和保留的信息,充分利用每一个卷积层得到的feature map来抽象更丰富特征,这样有利于提高模型在植物识别中的识别率。

图1 密集残差结构

在一个拥有L层结构的卷积神经网络中,每一层实现一个非线性变化Hl(),下标l表示层数索引。非线性变化Hl()由归一化层(BN)、激活层(ReLU)、池化层或卷积层(Conv)组成。规定第l层的输出为xl。传统的卷积神经网络中第l-1层的输出作为第l层的输入,即xl=Hl(xl-1)。在ResNet中通过式(1)特征函数增加了一个跨层连接,这样做的一个优点是梯度可以直接通过特征函数从后面的高层流向低层。然而,这样的短连接并不能充分利用前层提取到的特征,简单相加的组合方式还可能阻碍网络中的信息流传递

xl= H (xl-1) +xl-1

(1)

为了提升特征利用率和信息流在网络层间的传递,本文采用一种更高效的连接方式:每一层通过直连的方式将所有低层的信息接入。图1诠释了这个密集连接结构,第l层接收来自所有低层的feature map,即式(2)

xl= Hl([x0,x1,…,xl-1])

(2)

式中:[x0,x1,…,xl-1]分别代表0到l-1层输出的feature map,实现上通过concatenate操作把所有特征拼接在一起,每层的输出都会紧跟着一组由Batch Normalization归一化(BN)、激活函数ReLU和3×3卷积组成的操作,这样的多层结构便形成一个用于特征提取的密集残差单元。这样的结构有利于提取植物叶脉纹理和花瓣纹理等细粒度细节特征。

2 融合式双特征卷积神经网络

2.1 特征融合架构

识别一种植物的种类,植物学家常常从宏观的形态学特征出发,初步判断所属大类后,再结合具体器官(如叶片、花、果实等)上的微观细节纹理特征,才能够较为准确分辨一种植物。所以,一个优秀的植物特征提取方法需要同时考虑宏观和微观上特征。

上节介绍用密集的残差结构能够很好地提取植物微观上的细节纹理特征,但同时我们又希望能够通过较为宏观的整体形态特征区分所属的大类,兼顾两种特征的优势提高识别效率。本文提出一种名为融合式双特征卷积神经网络(HDF-CNN)的端到端结构,HDF-CNN集成了一个用于提取宏观形态特征的卷积神经网络和一个描述微观植物器官纹理的密集残差网络,最后通过将两个不同维度提取到的特征进行融合,得到一个全面的植物特征。

如图2所示,HDF-CNN由4个部分组成:共享层、微观层、宏观层、分类层,其中C代表卷积层,P代表池化层,R代表密集残差单元,F表示全连接层。共享层由两组卷积池化操作组成,目的是先将图片统一的转换成特征矩阵,统一的底层特征矩阵更有利于高层的特征信息提取。另一方面,共享的卷积层能够成倍降低网络训练参数。网络的输入图像为224×224像素的彩色图像,共享层和分类层卷积使用3×3卷积核,步长stride为1,池化层为2×2的平均池化,stride为2。3个全连接层依次是4096,4096,1000个通道数,最后分类使用Softmax层。

图2 融合式双特征神经网络

2.2 特征子网络

为了从不同的维度同时提取出宏观的植物形态特征和微观的植物器官纹理特征,分别针对两类特征设计了宏观层和微观层两个子网络。植物图片通过共享层卷积后得到的基础特征图feature map分别送到宏观层和微观层进一步提取两种分化特征,最后宏微观两种特征融合并在分类层进行最后的分类。

合约规划是目标成本实现的第一步。在建设工程项目确定目标成本后,就需要按照分解的目标成本进行合约规划。合约规划不能简单地理解为只服务于成本管理,其还应服务于整个项目管理,即服务于招标、采购、施工、销售及运维等。合约的规划要综合考虑以下因素。

(1)宏观层。宏观层的设计主要用于提取植物的形态轮廓特征,尽可能得到植物外形上的特征信息,对于细微的纹理特征可以忽略。宏观层子网络是一个11层的浅层卷积神经网络,同时在卷积核的选择上使用到较大的5×5和7×7卷积核,目的是增大感受野,获取更全局的整体特征(大的卷积核在卷积植物图像时能更多兼顾区分开植物本体轮廓和周围环境背景),这将利于识别没有明显局部特征的针叶植物。11层的小网络不仅足以泛化植物形状特征,而且也缓解了大卷积核带来的参数增加问题。

(2)微观层。微观层需要提取如叶片叶脉、花瓣纹理这样的植物器官细粒度特征,而这些细节特征适合使用密集的残差结构来获得。表1是微观层的密集残差卷积子网络结构,它是一个拥有4个不同深度密集残差单元的密集残差神经网络结构,每一个密集残差单元都可以提取丰富的特征,处于中间的残差单元拥有更多卷积层以便更丰富的特征提取,而靠后的残差单元则不需过多的卷积操作,用较少的卷积层来抽象前面传递的特征即可。需要注意的是,在表1中每一个Conv都等价的表示为BN-ReLU-Conv的组合,即一个归一化层Batch Normalization后面跟随一个激活函数Rectified Linear Unit(ReLU)之后再做对应尺寸的卷积。在每个残差单元之间用1×1卷积和2×2的池化操作作为连接的过渡层,过渡层在整个网络中起着下采样和连接不同尺寸feature map残差单元的作用。微观层网络分4个阶段提取图像特征,得到细节特征后送入分类层。

表1 微观层密集残差卷积神经网络结构

与其它网络追求更深更宽不同,微观层的密集残差卷积神经网络拥有更窄的网络特性。如果每层网络通过函数Hl()输出k个feature map,那么第l层就会有k0+k×(l-1)个feature map,其中k0是输入层的通道数。在实现中,通过把k值设置的比较小(k=12)从而减小网络宽度,也就意味着网络参数得到大量减少,并且在后面的实验中很惊喜的能获得不错的效果。对此的一个解释是,尽管来自上一层的feature map数量少了,但每一层都可以访问其残差单元中的所有前面的特征映射,因此可以访问网络的“集体知识”。可以将feature map视为网络的全局的一部分,每层都将自己的k个特征映射添加到全局中去,k值规定了每层对全局贡献的新信息量。各层的信息一旦被加入全局,就可以从网络中的任何地方访问,而不需要像在传统网络体系结构中那样一层一层地复制或像ResNet那样人为设计不确定的残差插入路径,因此提取的特征就更加饱满,语义信息更丰富,细节也就更多。

尽管通过限制每层产生的feature map数k,但由于较大的网络深度,还是存在总体参数量过大的情况。因此,在网络的设计中参考ResNet的瓶颈层(bottleneck layers)在3×3卷积前加入1×1的卷积来降低输入的feature map通道数从而提高计算效率。

在深度学习的卷积网络设计中,往往更深更复杂的网络能够取得更好的效果和精度,但盲目堆砌卷积层和增加复杂度所带来性能上微弱的提升并不适合在实际任务中的应用。因此HDF-CNN在宏观层选取了较小的简单网络,用最少的参数换取最合适的轮廓信息;微观层的设计也是在保证复杂网络特征提取性能的前提下中尽量减少参数,提升参数利用率;通过共享层共享相同结构的底层参数达到参数减半的效果。

2.3 分步的训练策略

为了尽可能提升HDF-CNN的识别准确率,训练时要让两个子网络分别把特征提取的特性放在宏观外形特征和微观植物器官纹理上,因此采用一个创新的分步训练策略:

(1)微观层训练。HDF-CNN是一个并行的双通道卷积神经网络方案,两个子网络分别有不同的特征提取偏重,其中微观层侧重于提取植物器官的纹理特征。在训练的第一阶段,让共享层和微观层一起训练,令宏观层的学习率learning rate=0,选取训练集中叶片、花、果实、茎、果实、扫描图这样的植物器官和纹理特征明显的图像,这样训练出来的参数更利于提取微观细节纹理特征。运用植物器官的图像来一起训练共享层参数是因为位于低级特征的共享层拥有和微观层相似的卷积核,更适合在植物器官标签的图像上训练而不是大一级的植物属种分类标签,这样训练出来的共享层参数也更利于两个目标类的建模。

(2)宏观层训练。宏观层的作用是提取植物形态轮廓特征,有利于在拥有复杂背景的图片中找到识别植物主体。训练的第二阶段只训练宏观层,且为了让宏观层和微观层的享有共同基础特征,固定第一阶段后共享层的权重。同样将微观层的学习率learning rate设为0,并且选择训练样本中具有复杂背景、非扫描图、植物整体图这类的训练图像。这样针对性的样本能使宏观层的网络更专注于提取轮廓特征,而不去关注更多的细节纹理特征。

3 实验及结果分析

3.1 实验平台和数据集

实验平台基于Ubuntu16.04操作系统,Caffe深度学习框架,GPU为NVIDIA GTX TITAN Xp,CUDA版本为8.0。

实验数据集采用了LifeCLEF 2016项目[13]中的部分植物图像数据,再加上自行收集扩充的常见中国植物图片数据组成。图片包含叶片、花朵、果实、树枝等器官图片的328类植物图像,其中又拥有不同比例的扫描图(图3第一列)、类扫描图(图3第二列)、自然背景图(图3第三、第四列)。在这个数据集中共用31 973张图片,每种植物有来自不同采集者贡献的来自不同地区、不同季节的多角度图片,为了验证算法的鲁棒性和实用性,数据集中的数据没有经过任何去噪预处理。

图3 实验数据集样图

数据集分为训练集和测试集两个部分,从中随机挑选了近1/4共8000张图像作为测试集。为了通过数据增广来提升效果,还将训练集中的图像分别缩放到256、384和512的尺寸,同时也进行了镜像增广。本文中所使用和设计的网络数据输入图像大小都为224×224,输入图像都随机剪裁到了224×224的分辨率。

3.2 识别准确率分析

在测试准确率中,实验分别就叶片、花瓣、果实、植物整体、植物的茎5个大类进行分组实验,在对比方法中选取了深度学习中具有代表性的网络,包含经典的AlexNet和VGG-16,以及运用到残差的ResNet和DenseNet[14]。

表2是各种方法在5类植物器官上的识别准确率,其中HDF-CNN(DA)表示做了植物图像数据增广[15]后训练得到的HDF-CNN。从总体上看,花瓣和叶片的识别率明显高于其它植物器官,因为这类的植物器官特征最为丰富、明显,更易于区分。相对的,植物的茎并没有差异性明显的代表特征,从而各类方法的识别率都较低,融合特征方案也没有取得识别率的明显提升。

表2 分类识别准确率

从方法上看,运用了残差的深层神经网络整体上好于单纯的卷积网络,尤其是在叶片、花瓣和果实这样类间特征差异明显的器官数据上,这也验证了残差在提取微观纹理特征上的优势。而在植物整体图和植物的茎的识别表现上,残差结构并没有体现出太大的优势,甚至结构最为复杂的DenseNet的植物的茎的识别率还低于最简单的AlexNet。因为这些器官的外形特征在没有特殊机制引入的前提下,任何网络模型能够提取到的有效特征是有限的,而这些特征用较为基础的卷积网络就足够提取到,反应到识别准确率上就出现了复杂网络准确率低于简单网络的随机现象。

本文提出的是一个融合深度复杂网络和基础网络的方案,识别效果除了大大高于基础的AlexNet和VGG之外,通过与ResNet和DenseNet两组残差类方法实验数据的对比,能看出宏观特征的加入对于最终的特征表达性有很大的贡献,使得识别率比效果最好的单一网络DenseNet的识别率高出2%-4%左右。特别是在植物整体图像这一项,整棵植物的图像不像花瓣和叶片那样容易提取细微的纹理,需要更多的依靠整体形态的描述。宏观特征的融合弥补了深层残差网络对整体特征描述的不足,使得识别率得到大幅度的提升。同样显而易见的是,多尺度缩放的数据增广也大大提升了HDF-CNN的识别表现。

3.3 可视化定性分析

为了更直观分析本文特征融合方案在植物特征提取上的优势,我们通过反卷积的方法将微观层、宏观层和分类层中最后3次的激活特征进行子采样得到特征图输出,如图4所示。很明显可以看到,微观层和宏观层的特征图输出呈现一个截然不同的风格。微观层的特征输出图4(b)中,特征的描述主要集中在测试图片中植物主体上;而在宏观层的特征输出图4(c)中,测试图片植物周边背景部位的特征激活度更高。从这里可以得出,微观层复杂的残差网络提取出的特征主要是描述植物主体的细节纹理特征,而宏观层的低维网络提取出的特征则偏向于体现整张图片中物体的分布情况,属于颜色、边缘等基本特征。

经过特征融合后,在分类层的输出特征图4(d)中能看到,得益于特征融合的策略,图4(d)中的植物特征边缘相对图4(b)、图4(c)更加清晰、明了,激活的特征像素密度更大、更集中,这样的特征相对单一网络中提取的特征更能准确定位植物主体,更细致描述植物的微观纹理特征。

图4 反卷积可视化特征

通过直观分析可视化后各层的特征图可以得出,单一的卷积神经网络所提取的特征往往侧重于某一方面的表达,本文提出的HDF-CNN特征融合方案通过融合宏微观特征,综合了两种特征的特点,得到的融合特征描述植物轮廓更加精准,并且提供了更加丰富的植物纹理特征,这使得最后的分类识别准确率更高。

3.4 融合方案分析

为了探究最适合植物识别任务的特征融合方案,将本文的HDF-CNN与另外两个融合方案进行对比实验。Alex+Alex的方案是将两个AlexNet按照本文的融合框架进行整合,代表运用两个较为简单的基础网络融合方案。Dense+Dense的方案则是融合了两个DenseNet,结构最复杂,参数量也最多。数据集合训练方法不变,为探究融合方案性能,不引入任何的数据增广。

从表3的对比实验结果可以看出,采用融合框架之后都能提升原本单一卷积神经网络的识别准确率,相较表2中单通道、双通道方案的识别准确率都有不同程度的提升,其中AlexNet的双通道方案叶片识别准确率相较单通道提升了4.7%。双通道并行的提取特征在某种程度上来说也是间接加深了网络的深度和可用参数量级,使得能够表达的语义信息更丰富。值得注意的是,在叶片和花瓣的识别中,Dense+Dense的方案取得了最好的成绩,识别准确率分别为76.7%和86.1%。这也直接验证,深层网络对于纹理类的微观细节特征的提取更具有优势。在整体和果实两项数据中,仍然是HDF-CNN取得最佳成绩,分别高出复杂的Dense+Dense方案1.9和0.8个百分点。因为这两类宏观的特征利用直接的网络堆叠并不能取得如期的效果提升,反而需要从宏观和微观两个不同维度去融合才能得到更准确的特征信息。结合实验结果,尽管Dense+Dense在特定指标上取得最高的准确率,但与之对应的是参数量的大幅增加。在实际运用中叶片和花瓣的识别只占其中一部分,相较于1%左右的特定任务准确率优势,综合模型性能和易用度,HDF-CNN更适合于植物识别任务。

表3 融合方案识别准确率

4 结束语

在本文中,研究了植物识别的一般规律,总结出从宏观到微观的特征提取方案,提出了并行式方法:融合式双特征神经网络HDF-CNN。该网络使用一个大卷积核的CNN来抽象植物图像的整体形态特征,用一个密集残差卷积网络来提取植物器官的纹理特征,将两个特征融合后来描述一个植物,通过针对性的分步训练,使得网络能够将植物特征表达得更加全面,更适用于植物识别的任务。

猜你喜欢
宏观微观纹理
基于BM3D的复杂纹理区域图像去噪
使用纹理叠加添加艺术画特效
一种新的结合面微观接触模型
TEXTURE ON TEXTURE质地上的纹理
宏观与政策
消除凹凸纹理有妙招!
宏观
微观的山水
宏观
微观中国