基于改进SSD的无人机影像松材线虫病变色木检测

2022-08-09 02:56刘顺利刘昌华彭词清薛冬冬
林业资源管理 2022年3期
关键词:松材株数线虫病

刘顺利,刘昌华,张 雷,彭词清,薛冬冬

(1.河南理工大学 测绘与国土信息工程学院,河南 焦作 454150;2.广东省岭南综合勘察设计院,广州 510700)

松材线虫病是毁灭性森林病害,具有传染性强、发病周期短,以松墨天牛为主要传播媒介进行扩散传播,整片松林从发病到毁灭仅需3~5年[1]。根据国家林业和草原局公布的数据[2],截至2022年,松材线虫病已在中国19个省(市)发生,导致大量松树枯死对松林造成严重破坏。松材线虫病的防治手段主要是以实地调查方式,确定变色木的株数和位置信息,但存在费时费力,受主观因素影响[3]。高分辨率遥感影像虽可提取变色木的位置信息,但易受云雾等天气影响,存在时间滞后性、成本高以及分辨率难以达到单株识别等问题[4]。无人机影像具有分辨率高、时效性强、成本低等优势,广泛应用于染病松树单株检测[5-6]。

李卫正等[7]采用目视判读方法,实现对无人机影像染病松树检测,但该方法存在判读效率低和检测精度低的问题。陶欢等[8]基于HVS阈值划分方法检测染病松树,相比目视判读方法,人工判读的效率得到提高;刘遐龄等[9]提出模板匹配和面向对象分类方法相结合识别染病松树变色木,提高变色木的检测效率,却也存在检测精度较低的问题。针对采用面向对象方法检测松材线虫病变色木时,存在效率低下、检测精度低的问题,研究人员开始应用深度学习算法,提升松材线虫病变色木的检测效率和检测精度。张瑞瑞等[10]基于U-Net网络对松材线虫病变色木进行识别,相比面向对象的随机森林方法提高变色木的识别精度;徐信罗等[11]基于Faster R-CNN算法进行松材线虫病变色木检测,并根据变色木冠幅尺寸调整算法锚框尺度,变色木的检测效率和检测精度得到有效提升;李凤迪等[12]和黄丽明等[13]基于YOLO算法进行改进,提升算法检测松材线虫病变色木的检测效率。目前,基于深度学习算法进行松材线虫病变色木检测的研究,能有效解决采用面向对象方法的效率低下、检测精度低的问题。然而现有的基于深度学习的松材线虫病变色木检测的检测速度较慢、识别精度较低,难以满足大范围区域的松材线虫病检测。

SSD算法是以VGG-16网络为主干特征提取网络,能够同时获取物体的所属类别和位置信息,相比Faster R-CNN算法有着更快的检测速度,比YOLO v4有着更高的检测精度,即SSD算法能够保持较高检测精度,同时有着较快的检测速度。SSD算法在遥感影像小目标检测[14]、轨道扣件[15]等研究方向有着良好的检测效果。为进一步提升松材线虫病变色木的检测效率和检测精度,本文提出一种结合特征融合模块(Feature Fusion Module,FF Module)和通道挤压和激励模块(Squeeze-and-Excitation Block,SE Block)的方法改进SSD网络,加强对深层特征语义信息挖掘,将其融合到浅层特征,使浅层特征同时具有丰富的语义信息和纹理信息,提升对松材线虫病变色木的检测能力和检测精度,进而提升松材线虫病变色木的总体检测精度。

1 研究区概况

研究区位于广东省阳山县,地理位置24°29′26″~24°29′50″N,112°36′29″~112°37′07″E。该区属于亚热带季风气候,雨量充沛,全年平均温度17.9℃,全年平均降雨量1 850mm,气候环境适宜松材线虫的生存,是松材线虫病高发区。选取阳山县局部区域作为研究区,面积1.902 km2,海拔落差179.3m,树种是以马尾松为主的人工林,松材线虫病十分严重。将研究区划分为训练区和验证区,训练区图像用于算法模型的训练与测试,验证区用于验证算法模型检测松材线虫病变色木的检测精度。

2 研究方法

2.1 数据获取与处理

使用精灵Phantom 4 Pro v2.0型无人机获取试验区的无人机光学影像,内置相机的传感器为1英寸CMOS,有效像素为2 000万,相机焦距为35mm。数据获取时间为2020年11月18日,飞行高度设置为380m,飞行的航向重叠率和旁向重叠率分别设为80%和60%,共获取研究区影像184张,影像分辨率为65mm。

使用Pix-4D mapper软件进行图像校准和镶嵌,获取研究区的数字正射影像图(Digital orthophoto map,DOM)。使用ArcGIS软件中的Split Raster工具将DOM按训练区范围和验证区范围进行栅格数据分割,生成像素大小为256×256的栅格数据集。依据王震等[16]和徐华潮等[17]对松材线虫病变色木光谱特征的研究,变色木在无人机光学影像上黄褐色、红褐色,与健康松树的墨绿色存在明显区别。分别对训练区栅格数据集和验证区栅格数据集进行变色木检查,剔除缺少变色木的栅格图片,分别获取训练区和验证区含有变色木图片600张和64张。通过图像旋转、图像增强等方法实现对训练区的栅格数据集进行数据扩充,最终获取训练区的栅格图片1800张,变色木的株数为2100株,验证区的栅格图片64张,变色木的株数为87株。使用LabelImg软件制作与训练区栅格图像的变色木区域一一对应的可扩展标记语言文件,标签数据集的制作流程如图所示,生成Pascal VOC数据集,并将其按9∶1的比例用于算法的训练和测试。

2.2 SSD算法

SSD算法是由Wei等[18]提出的One-stage的目标检测算法,SSD算法的主干特征提取网络为VGG-16[19]。相比普通VGG-16网络,SSD算法修改内容如下:1)将VGG-16的FC6和FC7这两个全连接层替换为卷积层;2.)去掉Dropout层和全连接层FC8,新增Conv8,Conv9,Conv10和Conv11这4个卷积层。SSD算法首先使用VGG-16网络将输入图片生成不同尺度大小的特征图,然后使用卷积预测器对特征图上的目标物进行检测生成一系列包含目标类别和预测分数的预测框,最后使用非极大值抑制算法对预选框进行筛选得到目标物所属类别及分数。然而,由于SSD算法VGG-16网络较为简单,使得在小尺度变色木检测时有漏检和误检现象。

2.3 改进SSD算法

针对SSD算法检测小尺度变色木时存在漏检和误检,提出一种结合特征融合模块和通道挤压和激励模块的方法改进SSD算法。特征融合模块通过对不同尺度的特征图进行融合,加强深层特征的语义信息与浅层特征的纹理信息的联系,用于重新生成具有深层语义信息的不同层次的特征图;通道挤压和激励模块调整浅层特征图的通道权重,提升重要通道的权重,进而提升SSD算法对小尺度变色木的检测能力。

特征融合模块通过对Conv4_3,FC7和Conv8_2这3个不同尺度特征图进行特征融合,生成融合不同层次特征信息的新特征图。首先,使用卷积核大小为1×1、通道数大小为256的卷积层,对这3个特征图进行卷积运算,实现不同特征图有着相同的通道数;其次,分别使用卷积核大小为3×3、通道数大小为256的卷积层,卷积核大小为3×3、通道数大小为256、步长大小为2×2的反卷积层以及卷积核大小为3×3、通道数大小为256、步长为4×4的反卷积层进行卷积运算,实现不同特征图有着相同的尺寸大小;再次,使用批标准化层(Batch Normalization,BN)对这3个特征图进行批标准化处理以及使用LeakyReLU激活函数增加模型的泛化能力;最后,使用Concatenate对特征图通道数进行叠加,得到融合不同层次特征信息的特征图。

通道挤压和激励模块是对新特征提取层中的特征图进行通道权重调整,分为挤压操作和激励操作。挤压操作通过全局平均池化操作将特征图各通道中的全局空间特征作为该通道的通道特征。激励操作首先使用两个全连接层学习全局空间特征的依赖程度,并根据其依赖程度对各通道特征进行调整,通过Multiply相乘操作将全局空间特征和通道特征调整后特征图进行逐元素相乘,得到调整尺寸的特征图,然后使用Add相加操作将新提取的特征图与调整尺寸的特征图进行相加,实现对特征图通道权重的调整;最后使用ReLU激活函数增强模型的表达能力和泛化能力,得到用于分类预测的特征图。

2.4 评价指标

采用的评价指标有精确率(P)、召回率(R)、总体精度(Fl)、每秒检测图片张数 (Frames Per Second,FPS)和准确率(Average Precision,AP)等指标,对网络模型的检测精度进行评估;其中:P,R,Fl和AP的值越高,代表算法的检测性能越好;FPS值越高,代表算法的检测速度越快。

P=Pt/(Pt+Pf)

(1)

R=Pt/(Pt+Nf)

(2)

F1=2×(P×R)/(P+R)

(3)

(4)

FPS=1/T

(5)

式中:Pt表示检测结果和真实情况相符,而且都是变色木的区域;Pf表示检测结果和真实情况不相符,误将其他区域当作变色木的区域;Nf表示检测结果和真实情况不相符,误将变色木的区域当作其他区域;T表示每张图片检测所需时间。

3 结果与分析

3.1 算法参数训练

根据不同算法网络结构的复杂程度,合理设置训练参数可以加快模型的训练速度。其中,批处理量(Batch size)大小决定单次训练迭代时间和迭代梯度(Iteration)的平滑程度;学习率(Learning rate)大小影响模型的收敛速度。通过对不同算法进行参数调试,批处理量,学习率,迭代次数的最优值分别为8,0.000 1,100。

不同算法对松材线虫病变色木模型训练时,随着迭代次数的增加,模型的训练损失(Train Loss)和验证损失(Validation Loss)都逐渐下降,最终趋于平稳,获取最佳权重文件,训练过程如图1所示。训练开始时,SSD算法的训练损失和验证损失分别为7.114和4.918,改进SSD 的训练损失和验证损失分别为4.098和3.236,改进SSD算法比SSD算法的训练损失和验证损失分别降低了3.017和1.681。在模型训练的整个过程中,改进SSD算法的迭代次数70次才能完成训练,而SSD算法则需要迭代85次,表明改进SSD算法对变色木模型最佳权重文件获取的迭代次数更少、收敛速度更快。算法训练结束时,改进SSD算法的训练损失和验证损失分别为2.154和2.179;SSD算法的训练损失和验证损失分别为2.371和2.360。改进SSD算法相比SSD算法的训练损失和验证损失分别降低0.217和0.181,表明本文提出的改进方法能够有效降低SSD算法针对变色木训练时的训练损失和验证损失。

图1 不同算法的训练损失图

3.2 改进SSD算法检测变色木的精度评价

为了对比改进SSD算法检测松材线虫病变色木的性能,引入YOLO v4[20]算法和Faster R-CNN[21]算法检测松材线虫病变色木。首先,利用不同算法对训练数据集中的变色木进行训练获取其最佳权重文件;然后,利用测试数据集进行算法检测变色木的性能评估。在IOU阈值取0.50时,不同算法针对松材线虫病变色木的评价结果如表1所示。针对不同算法检测变色木的平均精度和总体精度由高到低分别为改进SSD算法、SSD算法、YOLO v4算法和Faster R-CNN算法;SSD算法的平均精度和总体精度分别为79.43%和75.00%,相比Faster R-CNN分别高出5.45%和7.77%,相比YOLO v4算法分别高出1.99%和1.89%,表明SSD算法相比YOLO v4算法和Faster R-CNN算法对于松材线虫病变色木检测有着更好的检测效果;此外,改进SSD算法检测松材线虫病变色木的平均精度和总体精度分别为80.40%和79.00%,相比SSD算法分别提升0.99%和4.00%,由于本文改进方法加强SSD算法对小尺度变色木检测能力,表明改进SSD算法相比SSD算法对于小尺度变色木的检测效果更好,更适合于松材线虫病变色木检测。针对各个算法的每秒检测图片张数量而言,改进SSD算法相比YOLO v4算法和Faster R-CNN算法有着更高的每秒检测图片数量,对于松材线虫病变色木的检测速度更快;相比SSD算法的每秒检测图片数量有所下降,但其检测速度也能满足于松材线虫病变色木检测。针对各个算法的精确率而言,改进SSD算法仅低于YOLO v4算法4.44%;相比SSD算法提升7.23%,表明改进SSD算法提升SSD算法检测松材线虫病变色木的检出率。针对各个算法的召回率而言,改进SSD算法仅低于Faster R-CNN算法3.35%;相比SSD算法提升1.48%,表明改进SSD算法降低SSD算法检测松材线虫病变色木的误检率。

表1 不同算法检测松材线虫病变色木的评价结果

3.3 检测结果验证

为了验证改进SSD算法对松材线虫病变色木的检测效果,在相同验证数据集进行变色木检测验证。在验证数据集的检测结果中,选取涵盖不同尺寸变色木的检测结果,如图2所示。对于较小尺度变色木而言,改进SSD算法相比Faster R-CNN算法、SSD算法和YOLO v4算法有着更好的检测效果,表明改进SSD算法相比其他算法提升检测较小尺度变色木的能力,有着更好的检测效果。对于较大尺度变色木而言,Faster R-CNN算法、改进SSD算法和SSD算法都有良好的检测结果,只有YOLO v4算法进行松材线虫病变色木检测时有漏检现象,检测效果最差。

图2 真彩色图像在不同算法的检测结果

3.4 算法检测病疫区影像变色木的株数统计

为更好地为松材线虫病防控提供数据支持,对验证数据集的松材线虫病变色木检测结果进行株数统计,验证数据集中松材线虫病变色木的真实目标株数为87株,不同算法检测松材线虫病变色木的统计结果如表4所示。 YOLO v4算法、Faster R-CNN算法、SSD算法和改进SSD算法的检测株数分别为61,85,81,87,其中,改进SSD算法检测株数相比YOLO v4算法、Faster R-CNN算法和SSD算法分别多出16,2和6,表明改进SSD算法的检出率更高。而YOLO v4算法、Faster R-CNN算法、SSD算法和改进SSD算法的误检株数分别为2,15,10,6,改进SSD算法误检株数相比SSD算法减少4株,表明本文提出的改进思路能够有效降低SSD算法检测松材线虫病变色木的误检率。此外,改进SSD算法的正确检测株数最多有81株,准确率最高位93.1%。

表4 验证集松材线虫病变色木检测的统计结果

4 讨论与结论

1)提出的改进思路虽能提升SSD算法检测松材线虫病变色木的检测精度,然而却增加算法模型的参数量,使得变色木检测的速度下降,难以实现变色木检测的实时化。接下来可以考虑引入轻量化的网络结构,如MobileNet或者Xception替代VGG16网络。在确保检测精度的前提下,减少模型的参数量,进而提升算法的检测速度,实现染病松树检测的实时化。

2)使用SSD算法检测松材线虫病变色木的总体精度为75.00%,相比YOLO v4算法和Faster R-CNN算法分别高出7.77%和1.98%,有着更好的检测效果;提出的特征融合模块和通道注意力模块相结合的方法改进SSD算法能够丰富浅层特征的语义信息,可提升对较小尺度松材线虫病变色木的检测能力。改进SSD算法检测松材线虫病变色木的总体精度为79.00%,相比SSD算法提升4.00%,表明提出的改进方法能够有效提升SSD算法检测松材线虫病变色木的精度。

3)通过对验证数据集中松材线虫病变色木的检测结果进行株数统计,结果表明,改进SSD算法正确检测株数为81株,能够提升SSD算法针对松材线虫病变色木的检出率;改进SSD算法误检株数为6株,相比SSD算法减少4株,能够有效降低松材线虫病变色木的误检率,由于改进SSD算法在提高检出率的同时,能够有效降低误检率,进而使得改进SSD算法检测松材线虫病变色木的准确率得到提升高达93.1%。

猜你喜欢
松材株数线虫病
松材线虫病疫情防控技术研究
子午岭细裂槭天然分布及其重要性研究
松材线虫病的危害与综合防治对策
松材线虫病多种防治措施成效
生态疏伐采伐强度控制要素探析
宁波市松材线虫病疫情继续“双下降”
不同草种交播对春季冷暖季型草坪草消长的影响
山药线虫病的研究进展
巧解“植树问题”
松材线虫病综合防治技术探讨