基于BS-ResNeXt-50 的密云地区野生动物图像识别

2023-10-19 07:06齐建东马鐘添张德怀
林业科学 2023年8期
关键词:特征提取类别野生动物

齐建东 马鐘添 张德怀 田 赟

(1. 北京林业大学信息学院 北京 100083;2. 国家林业和草原局林业智能信息处理工程技术研究中心 北京 100083;3. 北京雾灵山保护区管理处 北京 101506;4. 北京林业大学水土保持学院 北京 10083)

近年来,在气候变化、人为活动干扰等压力下,一些自然保护地面临生物多样性下降、栖息地丧失等严重威胁(束祖飞等,2021)。物种多样性是生物多样性的关键,野生动物物种减少,生物多样锐减,最终危害的是人类的幸福和健康(于莉莉,2017)。因此,野生动物保护工作越来越受到关注,调查、追踪野生动物生活习性是生物多样性保护的重要部分之一。野外环境条件复杂、天气多变,仅靠人工采集野生动物的图像较为困难,目前较常用的收集野生动物活动图像的方式是野外布设红外相机,对出现的野生动物自动抓拍。这种方式的优点是可在不影响野生动物活动的前提下对野生动物个体及种群信息进行收集、分析。在实际工作场景中,一方面,红外相机拍摄的照片中有大量不包含野生动物的废片,单纯依靠人工从大量相片中挑选包含野生动物的相片,费时费力;另一方面,在包含动物的照片中,经常出现动物特别靠近相机或只拍摄到动物身体一部分、动物被周围环境遮挡、光照变化、一张照片里出现多个动物等情况(Gomezet al.,2017,Norouzzadehet al.,2018),给图像的识别和分类造成了很大干扰。

传统的图像识别问题主要使用k 近邻、支持向量机、最大似然法等方式。这些方式都依靠人工进行特征提取,提取出的特征通常只针对特定数据集有效,识别准确率有限,在实际应用中表现欠佳(张毓等,2021)。近年来,随着计算能力及数据量的提升,以卷积神经网络为代表的深度学习算法在图像分类、图像识别、语义分割等细分领域中取得了较大进展。具有代表性的有AlexNet(Krizhevskyet al.,2012)、VGG(Simonyanet al., 2014)、 GoogLeNet(Szegedyet al.,2015)、ResNet(Heet al.,2016)、DenseNet(Huanget al.,2017)、EfficientNet(Tanet al.,2019)等。在专门针对野生动物图像识别的研究中,Gomez 等(2017)对Snapshot Serengeti 数据集中的26 种常见动物图像制作成了4 个不同的数据集,测试了AlexNet、VGGNet、GoogLeNet 以及不同层数的ResNet 网络,并在最坏情况下达到了35.4%的准确率,最好情况下达到了88.9%的准确率。刘文定等(2018)提出了全局—局部的双通道VGG16 卷积,将数据集中的动物图像利用目标检测模型裁剪出来,将全局和局部图像同时传入到网络中最后再对预测结果取均值,结果表明和VGG16 相比,5 种动物的预测准确率平均高了20%。Timm 等(2018)利用ImageNet 和iNaturalist 数据集对InceptionV3(Szegedyet al.,2016)模型进行预训练,在2 000 张野生动物图像上进行迁移学习,2 个训练集训练出的预训练模型最终都达到了75%的准确率。Willi 等(2019)使用Snapshot Serengeti 数据集作为预训练数据集在ResNet-18 上进行训练,使模型在单一类别的准确率最高达到了92.7%。Xie 等(2019)使用SENet 进行增强特征提取,并与ResNet 的残差模块进行拼接构造出了SE-ResNet,在Snapshot Serengeti 数据集上SEResNet-101 比ResNet-101 平均准确率提升了6.4%。王柯力等(2018)针对传统的水产动物识别问题中识别方式复杂、 准确率低等问题, 使用VGG16、InceptionV3、ResNet-50 网络进行迁移学习后冻结前几个卷积层参数,单独对后几层进行微调,并测试不同可训练参数对模型的影响,使得3 个模型对水产品图像的最高分类准确率达到97.4%。杨国国等(2017)结合GrabCut 算法对图像中的昆虫进行定位和分割,将AlexNet 进行优化,并利用优化后的AlexNet 结合显著性分析对23 种茶园的主要害虫进行识别,其比原始的AlexNet 识别准确率提高了至少3.2%。Guo 等(2019)构建出一种改进的Faster-RCNN(Renet al.,2015)网络VCRPCN,使用RPN 中动物图像和背景图像提取图像中动物位置的区域候选,将动物图像与分类子网中的区域候选相结合来识别区域的类别。不仅解决了由于动物出现所造成的背景变化,还识别了图像中潜在的动物区域并提取局部特征进行分类。何嘉(2019)应用了CycleGAN 技术将红外相机夜间拍摄的黑白野生动物图像进行上色处理,使模型对夜间野生动物图像单一类别的识别准确率最高提升16%。邱志斌等(2021)建立了一种多卷积融合的神经网络。利用迁移学习对AlexNet、ResNet、VGG16、InceptionV3共4 个模型进行训练,再将分类的结果按不同权重系数进行加权,对88 种鸟类的识别准确率达到91.21%。

既有研究中已做了大量工作,但仍存在一些问题:其一,深度学习识别动物图像需要大量的标记图像,小规模数据集训练的模型准确率不高。其二,公开的野生动物数据集大多都来自国外,数据集中包含的动物种类与国内常见动物存在差异,训练出的模型无法很好地反映出对国内特定地区野生动物图像的识别效果。基于上述问题,本研究采集并构建了北京市密云区的北京市级雾灵山自然保护区的野生动物图像数据作为模型训练、测试数据集,使模型辅助密云地区的国家级和北京市级野生动物保护及物种多样性的研究。建立一种基于ResNeXt(Xieet al.,2017)的改进模型,通过修改残差模块,结合BlurPool(Zhang,2019)减少因动物出现在不同位置引发平移不变性丢失造成的误判,再引入注意力机制SENet(Huet al.,2018)进一步提升模型对动物的特征提取能力,增强模型的分类准确率,改进模型可以对野生动物图像进行高效、准确、快速的识别。

1 数据源

1.1 自建数据集

数据是由布设在北京市密云区的北京市级雾灵山自然保护区的30 个红外相机于2014—2015 年拍摄的,在相关专家协助下,分为狍(Capreolus)、鸟、山羊(Capra)、松鼠(Sciurus)、猪獾(Arctonyx)、兔(Lepus)、豹猫(Prionailurus)、野猪(Sus)共8 个类别,图像分辨率均为2 560×1 920。拍摄到的野生动物图像中有国家二级保护动物豹猫,北京市一级保护鸟类红嘴蓝鹊(Urocissa erythrorhyncha)等。图1 为红外相机拍摄到的各类别野生动物图片,图2 为使用的红外相机型号为猎科Ltl-6511,图3 为红外相机的布设位置。由于数据集中各类别图像的数量差距较大,对数据集进行类别平衡调整。对于数量多的类别进行随机抽样,抽取出部分数据;数量少的类别使用平移、旋转、翻转、随机噪声、随机擦除的方式将图像数量扩充5 倍,调整后的数据集有2 172 张野生动物图像,表1 为自建数据集各类别动物图像的分布状况。

表1 调整后的自建数据集各物种类别数量Tab. 1 Number of species in the adjusted self-built dataset

图1 各类别野生动物图像Fig. 1 Wildlife images of each category

图2 ltl-6511 红外相机Fig. 2 ltl-6511 camera trap

图3 红外相机布设位置Fig. 3 The location of camera traps

1.2 CCT 数据集

CCT(Caltech Camera Traps)数据集由布设在美国西南部的140 个红外相机拍摄,数据集中图像分为21 个类别。选取其中常见的14 个类别,所选类别有110 843张图像,其中部分类别与自建数据集有重合,可用于检验模型的泛化能力。表2 为CCT 数据集中各类动物图像分布,其中啮齿类动物图像中不含松鼠。

表2 CCT 数据集各物种类别数量Tab. 2 Set of species selected from CCT dataset

2 模型与训练策略

2.1 ResNeXt 网络

ResNeXt 是以ResNet 为基础的改进网络,其特点是将分组卷积引入ResNet 中,在做卷积操作时将卷积分为n个组,每一组都与输入的特征图做卷积,最后再将卷积的结果进行拼接。ResNeXt 的一个基本模块如图4 所示,对于输入的特征图将卷积核分为32 个组,每一组将输入进1×1 的卷积将特征图降至4 通道,之后使用3×3 卷积进行处理,最后用1×1 卷积将每一组特征图的通道数升至256,再对每个组的结果进行拼接,得到的结果与残差连接进行相加。

2.2 BlurPool

在神经网络架构中,若输入的图像出现了平移,在最大池化下采样和步长大于1 的卷积之后也会得到一个和之前差别很大的输出,在很大程度上影响了模型判别的准确性。在野生动物图像中,动物会出现在图像中的不同位置,这种偏移给模型的判别增加困难。

为了度量图像偏移的程度,引入了平移不变性(shift-invariance)的概念(Zhang, 2019),即输入平移之后仍等于输入,其定义如下:

对于步长为2 的最大池化(maxpooling)操作,将其分解为首先进行步长为1 的取最大值(max)操作,再进行步长为2 的下采样(subsampling)操作。对拆分后的最大池化操作,中间增加了一层步长为1 的抗锯齿操作(antialiasing)。如图5 所示,抗锯齿操作和下采样操作在一起被称为BlurPool。

图5 抗锯齿下采样层Fig. 5 Antialiasing subsampling layer

在步长为2 的卷积中同样可以使用BluePool 操作来维持平移不变性,就是将卷积(s=2)到激活函数的操作变为卷积(s=1)到激活函数,再将结果送入BluePool 中。

2.3 SENet

SENet 是一个能够获取到更多空间融合信息的结构。普通的卷积操作获取到的特征是融合了感受野内的空间和通道信息的,而SENet 通过构建通道间的依赖关系,使其能够获取到野生动物图像中不同通道的信息。图6 是SENet 的模型结构。

图6 SENet 结构Fig. 6 Structure of SENet

SENet 由Squeeze 过程和Excitation 过程组成。Squeeze 过程的主要目的是获取全局特征,将输入的特征图进行全局平均池化,对每个通道进行压缩。

Excitation 过程使用了2 个全连接层以及ReLU和Sigmoid 激活函数获取到每个通道上的特征权值。最后将得到的通道上的权重与输入的特征矩阵对应的通道进行相乘。

2.4 BS-ResNeXt 网络设计

在拍摄到的野生动物图片中经常会出现同一动物在图片中不同位置的情况(图7),但网络对这种移动较为敏感,会破坏卷积的平移不变性。将图像向下平移一个像素,卷积结果有30%的可能性发生变化,导致模型鲁棒性不强(Azulayet al.,2018)。基于上文提到的结构,构建出一种改进的ResNeXt 网络,增强对野生动物图像的识别。通过在ResNeXt 的参残差模块中加入BlurPool 层来维持卷积的平移不变性,可以增加模型对移动中的动物的识别准确率,减少误判,加强模型的鲁棒性。之后在残差模块中嵌入SENet加强模型对各个通道的特征提取,模型可以更充分的学习到动物特征,使模型识别准确率继续提升。

图7 一个动物出现在图像不同位置Fig. 7 An animal appears in different positions of image

图8是BS-ResNeXt 的残差模块结构图。输入特征图首先经过分组卷积进行特征提取,输入BlurPool层进行抗锯齿操作,维持卷积的平移不变性,之后进行Squeeze 过程也就是全局平均池化操作,再经过2个全连接层即Excitation 操作,将输入特征图与每个通道的激活值相乘使模型完成了对各个通道的权重的学习,最后再将残差连接与SENet 的输出相加。

图8 BS-ResNeXt 残差模块结构Fig. 8 Structure of BS-ResNeXt block

根据上述分析,本研究改进的网络整体结构如图9。在每个残差结构中,首先利用BlurPool 对照片中不同位置上的野生动物进行学习,再加入SENet 增强网络对动野生物的特征提取能力,改进后的BSResNeXt-50 可以提取到更丰富的动物特征。

图9 BS-ResNeXt-50 整体结构Fig. 9 Structure of BS-ResNeXt-50

2.5 训练策略

2.5.1 余弦退火衰减 训练模型时不同的学习率会影响模型收敛速度和识别准确率,不合适的学习率有一定概率使模型陷入局部最优解,动态调整学习率可使模型跳出局部最优解。余弦退火学习率(Loshchilovet al.,2016)采用热重启的方式,在学习率衰减到最小值后会突然增加再继续衰减,让模型跳出局部最优解。

余弦退火学习率公式如下:

式中,ƞmax和ƞmax是学习率的范围,i表示第几次重启,Tcur是当自上一次重后前迭代的epoch 次数,Ti是第i次时的epoch 次数。

2.5.2 随机增强策略 数据增强在提升模型的鲁棒性上很有帮助,本文使用随机增强(rand augment)(Cubuket al.,2020)策略进行数据增强。如图10 所示,随机增强使用了恒等变换(identity)、自动对比度(autoContrast)、平衡(equalize)、旋转(rotate)、曝光(solarize)、颜色(color)、色彩分离(posterize)、对比度(contrast)、亮度(brightness)、锐化(sharpness)、X 方向错切(shearX)、Y 方向错切(shearY)、X 方向平移(translateX)、Y 方向平移(translateY)共14 种变换,训练时随机选择其中的N 种方式对图像进行变换。

图10 14 种变换策略Fig. 10 14 transformation strategies

3 结果与分析

3.1 试验环境及数据处理

本研究的试验环境为:E5-2678 处理器、32GB 内存、RTX2080super 显卡、Ubuntu20.04 系统、Python3.8环境,PyTorch1.8.1 框架。

试验所使用的CCT 数据集和自建数据集均使用9∶1 分割训练集和验证集。使用随机增强策略对数据集进行增强。训练时使用Adam 优化器进行优化,批量大小为32。

3.2 不同模型改进方案的研究

试验选择ResNeXt-50 作为基础网络,设计3 种改进方案。第一种方案在原有的网络中加入SENet,改进为SE-ResNeXt-50,增强模型特征提取能力。方案二将ResNeXt-50 中的最大池化层以及步长大于1 的卷积层使用BlurPool 改进为BP-ResNeXt-50,维持卷积的平移不变性。方案三同时加入SENet 和BlurPool,替换残差模块,构建出BS-ResNeXt50。试验中4 个模型使用的数据集为自建数据集,使用10 折交叉验证方式,选择其中3 组数据进行试验,迭代次数为50,学习率为0.000 2。

在3 次试验过程中,ResNeXt-50 网络的准确率达71.91%±0.15%,方案一SE-ResNeXt-50 及方案二BPResNeXt50 的准确率分别为75.16%±0.14%和73.74%±0.13%,方案三中联合使用BlurPool 和SENet 的BSResNeXt-50 使准确率达78.04%±0.11%。此外3 组试验结果偏差不大,说明数据集划分较为合理。

表3为其中一次试验结果,从表中可知,SE-NeXt-50 对于每个类别动物的识别准确率均有提升,但对于体型较大的野生动物识别准确率的提升更高,说明SENeXt-50 的增强特征提取对于体型较大的野生动物的效果更好。BP-ResNeXt-50 对于猪獾、鸟、狍、山羊类别的识别准确率提升超过2%。上述类别中,同种动物出现在相同场景的不同位置上的样本较多,BPResNeXt-50 更擅长此类样本的学习。BS-ResNeXt-50不但对于狍、山羊等体型较大动物的识别准确率有所增加,对于鸟、猪獾等中小类别的动物识别准确率也有明显提升。

表3 不同改进方案对自建数据集各物种识别结果Tab. 3 Results of different enhancement schemes in self-built dataset

图11是类激活特征热力图,从中可以看出ResNeXt-50 网络可以提取出动物的特征,但获取到的大多是局部特征,且有提取到无用信息的情况。使用BlurPool 改进的网络其特征提取能力和ResNeXt-50网络相差不大,但是b 组图像中提取出了更多树的特征,查看数据集发现该测试图像在训练集存在近似图像,在学习时网络误认为树和鸟为一体,由此可看出BlurPool 对于近似图像的特征提取能力有增强,但容易学习到无用特征。使用SENet 改进的网络增强了有效特征的提取能力,同时抑制了部分无效特征。同时使用BlurPool 和SENet 的改进网络结合了二者的优势,不但强化对动物整体的特征提取能力,同时也抑制无效特征部分的提取。

图11 类激活特征热力图Fig. 11 Class activation feature heat map

3.3 不同学习率对模型的影响

为了使模型获取更合适的学习率以达到更高的准确率,试验采用了0.002、0.000 2 的固定学习率、起始为0.000 2 而每过15 轮学习率降低为原来一半的分段学习率、起始为0.000 2 的余弦退火学习率,探究不同学习率对BS-ResNeXt-50 的影响。

由图12 可知,学习率为0.002 时,模型的准确率为73.67%,与0.000 2 的学习率相差4.37%。学习率为0.000 2 时最终准确率达到78.04%,且准确率曲线一直高于学习率为0.002 时的准确率曲线,0.000 2 学习率比0.002 学习率更适合数据集。使用初始学习率为0.000 2的余弦退火学习率时,26 轮之前与固定0.000 2 学习率的准确率近似,但是在26 轮之后准确率上升的幅度更大,最终准确率达到了81.54%,比固定的0.000 2学习率高了3.5%。在20 轮之后,固定学习率模型的准确率上升迟缓,使用分段学习率后可以使模型准确率进一步上升,但由于学习率下降不够灵活,导致分段学习率模型的最终准确率仍低于余弦退火模型。

图12 不同学习率下的BS-ResNeXt-50 的准确率变化Fig. 12 Accuracy variation curves of BS-ResNeXt-50 of different learning rate

不同的学习率对模型的预测准确率影响很大,分段学习率相比固定学习率会提高模型准确率,但效果有限。起始为0.000 2 的余弦退火学习率比固定0.002的学习率最终准确率提高7.87%,使用余弦退火学习率可以使模型在后期的准确率进一步提升,让模型可以达到更好的效果。

3.4 不同数据集下的不同模型结果分析

为了探究模型在不同数据集上的泛化效果,选择CCT 数据集作为训练和测试的数据集,使用BSResNeXt-50、 ResNeXt-50、 VGG16、 EfficientNet-B0、InceptionV3、DenseNet-121 进行试验。所有的模型均迭代100 个epoch,优化器使用Adam,学习率采用起始为0.000 2 的余弦退火学习率。

4 个模型的准确率曲线如图13 所示,VGG16 的准确率达到85.5%,即便使用余弦退火学习率,后期准确率也上升较平缓,说明模型的特征提取能力已饱和。EfficientNet-B0 的准确率最终为90.23%,学习率曲线一直无明显震荡,说明模型各项参数的选取都较合适。InceptionV3、 ResNeXt-50、 DenseNet-121 和 BSResNeXt-50 分别达到91.38%、93.12%、93.3%和95.07%的准确率。InceptionV3、ResNeXt-50 和BS-ResNeXt-50 在前期震荡较明显,而DenseNet-121 准确率在第10 轮到50 轮上下波动,且无明显上升趋势,都说明了学习率对模型有较大影响。随着迭代次数增加,学习率逐渐变化,模型趋于收敛。

图13 不同模型的准确率变化曲线Fig. 13 Accuracy variation curves of different models

6 个模型预测各物种的准确率见表4,BSResNeXt-50 在2 个数据集中的表现均优于其他对比的模型。在“鹿”类别的识别准确率最高,达到了98.6%,而“臭鼬”类别的识别准确率最低,仅达到了88.9%。结合数据集分析可知,“鹿”类别不但数据量较大,且物种体积也较大,在6 个模型上的准确率都较高,而“臭鼬”类别不但照片数量较少,且该物种体积也比较小,给模型的准确判断造成了困难,在4 种模型上的识别准确率都偏低。虽然“负鼠”类别照片数量是最多的,但是其在各个模型的准确率都不是最高的,在BS-ResNeXt-50 上的准确率不及“奶牛”、“猫”等数量少于它的类别,说明除了照片数量,物种体积对模型的学习有较大影响。

表4 不同模型对CCT 数据集各物种的识别结果Tab. 4 Classification results of various species by different models in CCT dataset

4 讨论

本研究根据野生动物图像环境信息复杂、相同动物在同一地区出没等特点,使用SENet 以及BlurPool对ResNeXt-50 进行改进。ResNeXt-50 与SENet 相结合,让网络学习到了更多的野生动物体态特征,使网络对野生动物图像识别的准确率有明显的提升,Xie等(2019)也得出了相似的结果。此外,使用BlurPool后也使得ResNeXt-50 更好地维持了卷积的平移不变性,对野生动物图像识别的效果更好。

相比于ResNeXt-50,改进后的BS-ResNeXt-50 提取到的特征更加完整、准确,对于密云地区野生动物识别准确率提升明显,可以应对密云地区日益增长的野生动物图像自动识别需求,辅助密云地区物种多样性研究。在公开数据的测试中,ResNeXt-50 的识别准确率也高于InceptionV3、DenseNet-121 等通用模型,说明ResNeXt-50 有较好的泛化能力,可满足未来更多地区、更多类别野生动物图像的自动识别工作。

本研究中自建数据集目前只收集了8 种野生动物,且有数据倾斜现象,部分种类的图像数量较少,相比于其他大规模数据集的数据量还远远不够。应更有针对性的将红外相机布设在动物常出没的地区,获取更多野生动物图像。

5 结论

本研究建立了包含8 种野生动物图像的数据集,构建了ResNeXt-50 及3 种改进模型SE-ResNeXt-50、Blur-ResNeXt-50、BS-ResNeXt-50 对自建数据集进行识别,BS-ResNeXt-50 的准确率可达到78.04%±0.11%。测试了不同学习率情况下对模型的影响,最终在自建数据集上达到了81.54%的准确率,说明了余弦退火学习率的有效性。在CCT 数据集上对比了VGG16、EfficientNet-B0、InceptionV3、DenseNet-121、ResNeXt-50、BS-ResNeXt-50 模型,BS-ResNeXt-50 得到了95.07%的准确率,且在每个类别上的准确率也均高于其他模型。BS-ResNeXt-50 可以快速准确的对野生动物图像进行识别,在不同野生动物图像数据集上也有很好表现,泛化能力较好,结合红外相机自动上传的数据,可以有效地对其进行识别。BS-ResNeXt-50 还可对保护区内动物图像进行监控和管理,辅助动物数据库的构建和维护,最终服务于生物多样性保护。

现实世界中的动物种类庞大,不同地区的动物种类也不相同,部分动物种间区别也很大。所以需要继续收集更多地区的野生动物图像数据,进一步对野生动物种间进行识别,使训练出的模型有更大应用价值。

猜你喜欢
特征提取类别野生动物
保护野生动物
保护野生动物
保护野生动物
保护野生动物
基于Daubechies(dbN)的飞行器音频特征提取
Bagging RCSP脑电特征提取算法
服务类别
基于MED和循环域解调的多故障特征提取
论类别股东会
中医类别全科医师培养模式的探讨