李冲王光辉陆志恒王德成郭子文蔡晨林静
(中国农业大学 工学院,北京 100083)
2019年,我国林业产业总产值达7.56万亿元,已成为林产品生产、贸易和消费大国。党的十九大提出,到2035年全国森林覆盖率力争达到26%。为此,每年须完成造林任务733万hm2[1]。在林木种植过程中,为保证其进入成熟期后的高效利用,需准确掌握种植树木种类[2-3]。同时采集林木种类信息也是利用和保护林木资源的基础,是林业资源可持续利用的有力保障[4-5]。
在树木树种识别任务中,主要采用经验观察法,该方法存在着经济性差和误差较大等问题,无法高效、准确完成林木识别任务[6]。机器学习的发展使得人工进行林木特征提取并建立树种识别模型成为可能,但大多还需要依靠工作人员对树叶、树皮和果实的外观特征进行选择,此方式所构建的模型精准度与泛化性能不强[7],效率也已经难以满足林业发展的需要。一些学者通过无须人工筛选特征的深度学习方法自动提取目标特征,有效提升了目标检测任务的准确率和速度[8]。Yang等[9]通过扫描获取3个肉桂物种的叶片图像,使用叶片图像和深度卷积神经网络(CNN)来进行分类识别,测试精度高达96.7%,比SVM+Gabor分类器高22.1%;Verly等[10]通过使用Inception-V4构建了北美10种硬木树种分类模型,较高提升了树种宏观图像上分类的准确率,其准确率达92.60%; Yang等[11]参考SqueezeNet网络模型,提出一种轻量化模型,能够快速、高效地进行不同产品纹理的区分,其分类任务准确率达到95.58%;何拓等[12]基于Res-Net-50网络模型构建了木材自动识别系统,该系统在“属”和“种”的识别精度可达91.8%和77.3%,通过深度学习技术有效实现了木材“种”特征的自动提取识别。因此,基于深度学习构建网络模型分类器能够减少人工特征提取成本,并提升识别准确率[13]。
为了提升树种识别任务的效率和准确率,降低树种识别工作强度,本研究以华北地区常见的6种行道树种为研究对象,建立树种图像数据集,比较不同卷积神经网络的树种识别能力,构建最佳树种识别模型,并完成林木树种识别系统的设计,为城市园林建设、林木业高效科学管理提供新思路和新方法。
林木树种识别系统由硬件设备部分与软件算法模型部分构成。其中硬件设备可作为图像智能采集平台单独工作,由红外传感器(WWEIGUO, 30~700 cm检测距离, DC6~36 V)、双目相机(Stereolabs, ZED 2, USB3.0端口, 60帧/s)、工控机(CIBOU, 酷睿i7 10510U,8 G内存,12 V 5 A)、蓄电池(品晟, P-701, 200 000 M, DC5~19 V)、显示屏(ZGYNK, HDMI USB 2.0 Type-C, 15.6英寸)以及开发板(Arduino, MEGA 2 560 R3, USB3.0, 9 V)组成。图像智能采集平台程序逻辑如图1所示。
红外传感器与双目相机通过设定程序与Arduino开发板连接。程序逻辑为当红外传感器1受到遮拦感知到林木被触发,经由串口传递信号给工控机,工控机获取信号后启动双目相机,双目相机开启拍照并且编号储存,随后红外传感器2被触发或图像数据采集量满足要求后,双目相机结束拍照,如此往复循环至程序关闭或电源关闭,并且拍照数量与时间间隔可以通过程序进行设置。
图1 图像采集程序逻辑图Fig.1 The program logic diagram of image acquisition
平台分为采集端和处理端,可由人为手持或搭载移动装置上进行工作。
平台采集端由红外传感器、双目相机和支架组成。因实际拍摄图像时逻辑程序为红外传感器1触发相机拍照,红外传感器2触发相机结束拍照,因此放置红外传感器1于靠近行驶路线一侧,相机放置于2个传感器中间。并且所拍摄林木胸径均约20 cm,拍摄位置与林木树干直线距离约80 cm,经过实地测试,支架长度50 cm能够满足实际图像采集速度。图2是采集端安装于拖拉机驾驶室外侧挡泥板实例图。
图2 平台采集端结构Fig.2 Platform acquisition end structure
平台处理端由工控机、蓄电池、显示屏以及开发板组成。利用蓄电池可以为图像采集相应设备稳定供电,借助工控机能够满足实际较为恶劣的作业条件,通过显示屏实现采集作业的可视化,便于操作人员及时对作业进行调整。采集好的图像储存像素为2 560×720,以bmp文件格式储存。平台处理端具体结构形式如图3所示。
图3 平台处理端结构Fig.3 Platform processing end structure
林木图像数据采集时间是2021年7月28日至2021年7月30日的每日14时至16时,地点位于北京市大兴区安定镇平原造林地区,坐标116.5 °E, 39.6 °N。图像数据集包含有6种华北地区常见行道树种,分别为法国梧桐、枫树、栾树、柳树、国槐和榆树。具体信息见表1。
表1 林木图像数据相关信息Tab.1 Information of tree images data
图像数据由图像智能采集平台拍摄获取。删去图像数据中较为模糊的图像后,6种树木各选择500张图像。由于所得图像为双目相机拍摄所得的左右目图像,尺寸为2 560×720,因此需要进行图像裁剪操作,将原图像划分为左图像和右图像,均为
通过目标检测算法完成树种分类任务。目标检测目的就是寻找出图片中实例的位置进行定位,并对定位实例进行分类,最终得到定位框与分类得分[14]。需要提取出有效的感兴趣区域,即图像中主体林木的部分,并且排除背景等其他干扰[15]。因此在进行深度学习前,对分割处理后的图像进行标注。以MVTec Deep Learning Tool为标注工具,完成了对图像数据集的轴平行矩形标注,此方法能够在模型训练过程中充分计算反向损失并对模型进行优化调整。标记过程中,对主要树干区域进行框选,其他区域部分默认为背景。林木标注实例如图4所示。
图4 林木图像标注实例Fig.4 The annotation example for tree images
标注工作完成后,按照7∶1.5∶1.5的比例将林木图像数据集随机划分为训练集、验证集和测试集,完成数据集的构建。
通过生成特征图、合并特征图和输入特征图完成检测的3个步骤,利用目标检测实现树种识别任务[16]。首先,由预先训练好的分类网络组成的主干生成不同特征图,随后移除分类层,此时生成的特征图会在各个尺度编码不同种类的信息;然后,通过指定不同层次的主干为对接层,将特征图合并,获得较低和较高2个层次信息的特征图,即特征金字塔;最后,输出相应的特征图,并学习分类和定位目标,完成目标检测任务。图5为目标检测原理示意图。
图5 目标检测原理图Fig.5 Schematic diagram of target detection
在实现树种识别任务过程中,需要充分读取图像信息、稳定提升参数效率和有效避免网络过拟合。深度学习的提出,使得目标检测任务中兴起了YOLO、Faster R-CNN和SSD等较为有效的模型网络结构以解决上述问题[17]。为了提高检测速度与质量,各种研究更是不断推出独特的网络设计,如SqueezeNet、Inception-V3和ResNet-50等网络结构[18],这些网络结构在树种识别中也有较好的表现。其中,SqueezeNet网络在保证精度不损失的同时,将原始AlexNet模型大小压缩至原来的1/50,其参数比AlexNet少50倍,能够更加高效、快速实现任务[19];Inception-V3则根据初始Inception模块结构,通过将原有5×5卷积核改进为2个3×3卷积核来降低计算参数量以提升计算速度,从而提升模型处理复杂数据的能力[20];而ResNet-50在VGG19网络基础上加入残差模块,模型具有更高的稳定性和鲁棒性,被广泛运用于各种复杂特征提取应用[21-22]。
为了减小时间成本、提升模型训练效果,运用HALCON软件中所提供的预先训练好的分类模型,这些模型在使用前已经经过较为丰富的图像数据库训练,在此基础上训练出的网络能更好地进行本研究中的树种识别任务。网络结构则选择在目标检测任务中表现效果较好的SqueezeNet、Inception V3和ResNet-50 3种网络,在HALCON软件中对应的算子见表2。为简洁表达,下文分别用SqueezeNet、Inception-V3和ResNet-50表示3种网络模型。
表2 模型网络算子Tab.2 Network model operator
为更好贴合实现形式与实际运用,并且考虑综合成本,采用台式工作站计算机进行系统部署与模型训练,并将训练好的最优模型设置于图像采集平台工控机内以完成林木树种识别系统的软件部署。台式工作站软硬件配套见表3。
表3 工作站环境配置Tab.3 The configuration of the workstation
数据集训练过程中,设置训练参数十分重要。其中最主要的为batch-size(批处理量)、iterations(迭代次数)和learning_rate (学习率)3个参数。由于数据集数量及尺寸较大,为配合工作站运算能力与硬件条件,在训练中batch_size 设定为2,iterations设定为400,learning_rate设定为0.000 5。
对于目标检测而言,需要制定一定的规则评价网络性能,从而选择合适的分类器。为了对网络模型性能给出更加全面、客观的评价,采用平均精度均值(mAP,公式中用mAP表示)、准确率(Accuracy,公式中用Accuracy表示)和召回率(Recall,公式中用Recall表示)3个指标来评价模型网络性能,计算公式如下[15,23]
式中:QR为验证集个数;q为单个验证集;AP为平均精度;TP为实际正类预测为正类的数量;FP为实际负类预测为正类的数量;FN为实际正类预测为负类的数量。
设定相应算子程序,使用3种不同训练模型对标注、划分后的自制6 000张图像数据集进行400次迭代训练,并且在过程中利用验证集对网络模型进行较完善的实时评价显示,显示参数包含mAP、损失值以及训练时长。mAP是目标检测算法很重要的性能度量标准,其能够充分反映预测图像类别及每个目标的真实边界框;损失则通常用来优化训练数据的模型,损失函数值越小,说明该模型拟合度越好[17]。
在评估和推测过程中,利用测试集在确定的交并比(IoU)下可以得到Accuracy和Recall。对于IoU而言,通常会选取一个阈值,如0.5,来确定预测框是正确的还是错误的。当2个框的IoU大于0.5时,认为是一个有效的检测,否则为无效的匹配[23]。研究中将IoU阈值设定为0.5。
表4为3种网络模型训练结果。由表4可以看出,SqueezeNet在3种网络模型中训练结果均为最优,mAP达0.735。Inception-V3模型效果在3者中表现一般。相比于SqueezeNet网络,Inception-V3在网络深度上进行改进,计算网络模型更复杂,需要更多内存资源才能达到理想效果[24]。在损失值方面 SqueezeNet、Inception-V3和ResNet-50相差不大,最终训练损失均下降至0.025附近并趋于稳定,能够符合目标检测任务要求[24]。在训练时长方面SqueezeNet网络模型耗时最短,ResNet-50在3者中耗时最长。这主要是ResNet采用网络中增加残差网络的方法,允许网络尽可能地加深,所以需要更长的训练时间[22]。
表4 不同预训练模型训练结果Tab.4 Training results by different pre-training models
3种训练模型评估结果的Accuracy和Recall相关数据如图6所示。由图6可以看出,SqueezeNet的Accuracy和Recall分别为99.6%和100%,高于Inception-V3的99.1%、99.6%和ResNet-50的99.3%、99.8%。结果显示,3种网络模型的Accuracy和Recall都较高,达到99%以上,其中SqueezeNet表现最为优秀。主要原因是SqueezeNet相较于Inception-V3和ResNet-50参数数量较少,并且使用了deep compression使得模型充分压缩,通过squeeze层和expand层构成fire model多分支结构,从而最大程度保证精度的同时使用最少的参数,更适合复杂度较低的目标检测分类模型任务[19]。
通过mAP、Accuracy和Recall的比较,结果表明,在测试的3种目标检测网络模型中,SqueezeNet网络模型识别效果最佳。
为分析SqueezeNet网络模型在不同环境和生长状况下对树种的适应性,选择不同光照条件、不同胸径和不同林木直立程度的非数据集内图像进行分类推测。从测试结果表5可以看出,当图像为细小的迎光直立林木时,检测效果最好,识别准确率可达100%,即使林木处于粗壮的弯折背光情况,平均识别准确率也可达97.51%,部分图像检测效果如图7所示。通过图7能够看出,目标检测的定位框与分类2项任务皆能较好完成,并且在光照极好和极差、树木弯折程度较强条件下也有较好的树种检测效果。
不同于训练和推测的非实时性检测,林间的现场环境复杂多变。模型训练、评估完成后,为进一步检测模型的稳定性,判断设计系统的真实环境适应性,在工控机内进行部署,搭建完成林木树种识别系统。在北京市大兴区安定镇平原造林园区内开展田间试验,试验林区树种包含所训练采用的6种林木种类。为增强现场场景,试验过程中,将平台搭载在正常工作时速前行的园林除草机上,进行动态检测。检测过程中,除草机以正常工作速度前进,约3.6 km/h,系统采集端安装于牵引拖拉机挡泥板上,距离地面约1.3 m。为防止出现树木图像重复处理,设定“S”形行驶的路线,并在转弯时间隔2列树木。
图6 训练模型评估结果Fig.6 Training model evaluation results
图7 部分图像分类结果Fig.7 Partial image classification results
表5 不同环境和生长状况下识别结果Tab.5 Identification results under different environments and growth conditions
试验随机选取6种林木各一排共计178棵,图8显示了林间实时检测效果。由图8可以明显看出,系统检测效果良好,能够很好地完成不同环境下的实时树种正确分类。并且除草机在行走过程中虽然受环境影响有一定的颤抖、倾斜,但由于双目相机60 帧/s的较高帧率,图像质量受影响较小,识别效果并无影响,表6为实时检测试验结果,由表6可以看出,相比而言,柳树识别准确率偏低,这主要是由于柳树弯曲程度普遍较大。但这并没有影响总体样本在林木识别的准确率,设计系统检测识别准确率达到93%以上,树木检测实时识别时间为0.19 s,模型处理速度能够很好地满足园林除草机3.6 km/h的运行速度,较人工而言测试效率显著提高,可以满足林木树种高效识别、准确检测的需求。
图8 林间实时测试Fig.8 Forest real-time test
表6 实时检测结果Tab.6 Real time detection results
(1)设计出一套林木识别系统,构建了悬铃木、枫树、栾树、柳树、国槐和榆树的林木数据集,训练比较结果显示,以SqueezeNet构建的树种分类器表现最优,平均精度、准确率和召回率 分别为0.735、99.6%和100%。
(2)利用该林木识别系统进行动态实时田间试验,在自然环境下,树种识别准确率均达93%以上。
研究表明,本文构建的林木树种识别系统能够稳定、精确和高效地完成树种识别,可为林木资源智能化管理提供技术支持。