基于深度学习与深度信息的原木材积检测方法
2023-02-09郑积仕张世文杨攀余鸿晖李少艺郑俊杰周文刚
郑积仕,张世文,杨攀,余鸿晖,李少艺,郑俊杰,周文刚
(1.福建工程学院交通运输学院,福州 350118;2.福建金森林业股份有限公司,福建 三明 353300)
目前,林业生产各环节,如采伐、造材、运输、加工过程已经实现机械化,正逐步朝着信息化及智能化发展。依据我国国家标准GB/T 4814—2013《原木材积表》,原木的材积计算由木材端面径级和木材长度两个参数决定。在实际生产中,同一车次木材的长度相对统一,较容易获得,而原木端面大小不一,难以快速获得其径级。在林木采伐、运输、楞场管理等生产过程中的几个环节都需要人工检尺。这种检尺方式工作量大、效率低,精确度受人为影响较大,同时检尺的费用较高造成生产成本增加,对工作人员的工作态度,工作经验以及责任心有着很高要求。
对于原木轮廓、材积的快速检测,国内学者基于计算机视觉技术提出了多种检测算法,可以解决人工检尺中出现的问题。如钟新秀等[1]结合k-means聚类和Hough变换圆[2]实现对木材的计数,提高了原木人工计数的效率。林耀海等[3]提出利用圆弧检测进行端面检测并开发了一种基于YOLOv3-tiny[4](you only look once)目标检测模型与Hough圆变换的等长原木材积检测系统[5],对于成捆堆放的原木能展现出很好的检测效果,真检率达到了98.79%,但是其主要针对的是径级较大的木材。杨攀等[6]提出一种基于Mask R-CNN的木材分割方法,对密集场景下的木材分割效果良好,其测试集木材真检率达到97.989%,误检率为0.30%,且具有较强的鲁棒性及迁移能力,能适应各种场景下的各尺寸大小密集木材检测分割任务。赵亚凤等[7]提出了基于双目视觉的原木材积检测方法,采用自适应阈值方法并提出了FSAD和Meanshift图像分割相结合的立体匹配算法[8],较好地实现了木材端面分割,提高了匹配精度。但该系统精度受标定精度影响,相机调焦或者移动后,需要重新标定。杜叶挺等[9]利用双目视觉原理,设计了一种由CCD摄像机、单片机和上位机图像处理软件组成的自动化测量系统,该系统针对单根原木进行检测,检测效率较低。所列举算法在木材摆放整齐,背景无过多干扰因素时可以准确实现原木轮廓、材积的检测。
本课题组前期在金森林业股份公司某货场调研期间发现,在木材整车运输过程中,木材摆放由抓木机进行抓取摆放,这会造成木材摆放深浅不一,因此仅凭二维图像信息难以准确测量木材尺径。本研究针对以上问题提出一种结合深度学习以及深度信息的原木材积检测方法,不仅能够实现原木材积快速检测,而且利用深度信息可有效过滤干扰因素并实现木材上下分层,提升了整车木材检尺效率。
1 整车原木材积检测方法整体结构
本研究提出的原木材积检测方法整体结构如图1所示。硬件部分包括双目相机、NVIDIA Jetson Xavier NX开发板、显示屏、三脚架和移动电源。相机采用Stereolabs旗下的ZED2双目相机,其深度感应范围为0.2~20 m,该款相机深度精度在3 m以内小于1%,单目图像分辨率为2 208×1 242,图像输出格式采用PNG。双目相机用于拍摄木材照片以及获取木材深度图像,显示屏采用10.1英寸(256.54 mm)可触控显示屏,三脚架用于固定双目相机,移动电源用于给相机以及开发板供电。软件部分包括改进后的Mask R-CNN实例分割模型、基于深度信息的木材材积算法以及基于PyQt5的人机交互界面。
图1 系统整体结构图Fig.1 Overall structure diagram of the system
2 整车原木材积测量算法设计
2.1 原木材积计算公式
在我国使用的国家标准GB/T 4814—2013《原木材积表》中,其规定了原木检尺长、检尺径和材积的计量单位分别是m、cm和m3,同时规定以2 cm作为原木检尺径的径级增进单位。实际人工检尺环节中,木材端面检尺径主要通过测量木材小头端面的最小径作为木材的检尺径,再测量木材的检尺长,代入表1所列原木材积计算公式中,即可获得木材材积数据。
表1 原木材积计算公式Table 1 Calculation formula of log volume
根据原木材积计算公式可知,原木材积由检尺径与检尺长决定,在整车检尺中,整车木材长度(检尺长)相对固定,在砍伐装车过程中由工人检量,较容易获得,因此整车原木材积测量主要围绕测量原木端面检尺径。
2.2 双目相机测量原理及木材端面深度信息获取
双目视觉的工作原理来源于人类的双目视觉系统[10],即从不同的视角通过两个相同的相机捕获同一个位置下的左右两侧图像,然后再利用三角测量原理获取物体的深度信息[11]。本研究所用双目相机采用的是平行式光轴双目视觉系统,即左目相机与右目相机完全平行,只是在轴上的位置有所不同,其他相机参数均相同。假设空间中P点三维坐标为(x1,y1,z1),对应在左右相机所拍摄图像中得到坐标为P1(u1,v1),P2(u2,v2),则可以得到公式(1):
(1)
式中:fx、fy、u0和v0为相机内部参数;b为相机基线距离。以上参数通过相机标定可以获得。
工业现场整车木材端面一般较为平整,可近似认为单根木材端面深度信息相同,若已知端面深度距离为z,端面端点坐标A(u1,v1),B(u2,v2),则两点之间的距离为:
(2)
将相机参数、木材端面两点坐标以及木材端面的深度信息代入上式即可求得木材尺径。
在使用双目相机执行计算机视觉任务时,由于实际应用中的相机镜头都会存在一定程度的畸变,为此需要进行相机标定,双目视觉技术的重点研究领域之一便是双目相机的标定[12]。本研究采用的ZED 2双目相机具有自校准功能,其自校准功能经过广泛和严格的多步骤工厂校准。使用其SDK (software development kit)与API(application programming interface)时,可读取相机内外参数,省去了人工标定的过程。使用双目相机可获取整车木材的深度图像,利用其包含的木材深度信息。深度图像(depth image)是指将从相机到场景中各点(本研究为木材端面)的距离(深度)作为像素值的图像。利用ZED官方SDK可获取两种模式下的深度图像,分别为标准模式(standard mode)以及填充模式(fill mode):标准模式保留距离度量和形状,运行速度比填充模式快,但由于视觉遮挡和过滤,它包含孔;填充模式会填充深度图像中的孔和遮挡,并添加一个过滤阶段,该阶段可以改善边缘和时间稳定性。为保证获取到每根木材的深度信息,本研究采用填充模式下的深度图像,如图2所示。工业现场所切割木材端面一般较为平整,因此本研究将每一根木材端面中心点的深度信息作为该木材的深度信息。
图2 深度图像对比图Fig.2 Comparison of different image depths caused by different log depths information
2.3 木材端面分割以及轮廓拟合
Mask R-CNN是由He等[13]通过升级更快速区域卷积神经网络[14](Faster R-CNN)目标检测模型得来,解决了Faster R-CNN区域匹配存在误差的问题。本研究采用杨攀等[6]提出的优化后的Mask R-CNN模型,其实验数据采集于福建金森林业股份有限公司某木材货场,通过工业相机和手机相机等设备采集了500张木材图片,包括不同光照条件、不同木材端面背景和不同拍摄角度下的图片,剔除模糊图片,共保留150张清晰图片,按照4∶1∶1的比例划分为训练集、验证集和测试集。该模型优化方式主要采用优化RPN和 R-CNN模块中样本采样数、优化图片输入尺寸及多尺度训练、优化数据增强等方式,提升了对于小目标的检测,使得木材真检率相较于原始Mask R-CNN提高了3.559%,达到97.989%,误检率为0.30%。本研究主要利用该模型生成木材端面的掩码图,用于后续木材轮廓拟合。
优化后的Mask R-CNN模型所用数据集主要针对杉木,杉木端面轮廓多为近似椭圆,因此在分割掩码的基础上,对掩码进行椭圆拟合能够较好地完成木材轮廓拟合。木材分割掩码及轮廓拟合效果如图3所示。
图3 木材轮廓拟合效果图Fig.3 Wood contour fitting effect drawing
2.4 木材材积计算
木材轮廓经过椭圆拟合后,利用相关算子可获得椭圆中心点坐标(x0,y0)、长短轴长度(ra,rb)以及椭圆中心旋转角度θ,如图4所示。通过公式(3)可获得椭圆短轴两端的坐标A(u1,v1),B(u2,v2),将AB两点间距离作为原木端面检尺径进行材积计算。已知每根木材端面椭圆拟合后中心点坐标,读取深度图像中对应点坐标的像素值,将该值作为对应木材端面的深度值z。将u1、v1、u2、v2、z以及通过ZED官方SDK获取到的fx、fy代入2.2节公式(2)中,即可计算出木材端面检尺径;将该值与木材检尺长代入表1所示原木材积计算公式,即可完成对原木材积的计算。
图4 木材椭圆拟合坐标图Fig.4 Wood ellipse fitting coordinate diagram
(u1,v1)=(x0-0.5rbsinθ,y0-0.5rbcosθ)
(u2,v2)=(x0+0.5rbsinθ,y0+0.5rbcosθ)
(3)
3 实验与结果分析
3.1 木材检尺评价指标
为验证所设计材积计算方法的有效性,本研究模拟实际装车场景,将金森公司的木材运输到高校实验场地。实验场地木材长度统一为2 m,木材检尺径最小为3.9 cm,最大为23.4 cm,转化为2 cm径级后,介于2~8 cm的121根,介于10~16 cm的11根,介于18~22 cm的11根,共计164根。本研究对每一根木头进行毫米级精度的人工检尺,同时对每一根木头进行编号以便于人工检尺与本研究所设计算法精度的对比。
本研究主要采取以下评价指标对实验结果进行客观评价:
1)尺径平均绝对误差。尺径平均绝对误差表示木材尺径预测结果中,单根木材尺径预测值与人工检尺的检尺径差值的绝对值的平均值,用以评估单根木材尺径预测的精度。因国家标准中以2 cm作为原木检尺径的径级增进单位,所以本研究对比了尺径预测值与人工检尺的检尺径,在精确到小数点后1位以及转换为2 cm径级两种情况下二者差值的绝对值的平均值,分别称为“平均绝对误差(小数)”和“平均绝对误差(偶数)”
2)材积误差率。材积误差率表示全部木材材积预测值和人工检尺的材积值之差与人工检尺的材积值的比值,用以评估预测材积与人工检尺所计算材积的误差大小。与评价指标1相同,分别计算检尺径精确到小数点一位以及转换为2 cm径级情况下代入材积计算公式后的误差率,称为“材积误差率(小数)”和“材积误差率(偶数)”。
3)5 mm误差比率。5 mm误差比率表示整张图像中单根木材尺径预测值(精确到小数点后1位)与相对应的人工检尺的检尺径(精确到小数点后1位)之差大于等于5 mm的木材数量与图像木材检测区域中所检测出的木材总数之比。用以评估尺径预测值误差较大的木材根数占比。
4)径级误检率。径级误检率表示整张图像中单根木材尺径测量值与相对应的人工检尺的检尺径均转换成2 cm径级后不相等的木材数量与正确检测出的全部木材数量之比。
3.2 实验结果
木材尺径预测结果如图5所示,各木材尺径预测结果打印在木材图像的各木材中心位置(红色小号数字),各木材的检测序号为(蓝色小号数字)。最后将检测木材总数Number(单位为根)和木材总材积测量值打印在图像上方位置(红色大号文本),Volume表示按照2 cm径级计算的材积结果,Volume1表示按照预测尺径(保留1位小数)计算的材积结果,二者单位均为m3。去除误检木材后,木材评价指标如表2所示。
图5 实验结果图Fig.5 Picture of experimental results
表2 评价指标统计Table 2 Statistical table of evaluation indicators
3.3 实验分析
根据以上实验结果,从整体看,平均绝对误差(小数)以及平均绝对误差(偶数)均小于0.5 cm,材积误差率(小数)以及材积误差率(偶数)均小于3%,符合国家原木检尺要求。5 mm误差比率和径级误检率分别为11.59%和16.46%。从单根木材上看,164根木材里尺径误差绝对值在5 mm以内的共145根,≥5 mm的木材共19根,径级误检的共27根。对误差≥5 mm的木材的误差原因进行分析(表3),其中“端面倾斜”“端面不平整”“不规则轮廓”主要是在木材端面切割时人为造成的,而“轮廓分割偏小”“带皮分割”则是实例分割模型在对木材端面掩码分割时,对于树皮分割过度或不够所产生的情况。
表3 误差原因统计Table 3 Statistical table of error causes
3.4 真实场景验证
为验证方法的有效性,本研究于金森林业货场采集了真实场景下整车木材的图像。由于现场检尺员仅对木材进行2 cm径级的检尺,因此未比较单根木材的精度,主要进行整车木材材积的对比。材积计算结果见图6,检尺数据统计见表4。
图6 实验结果图Fig.6 Pictures of experimental results
表4 检尺数据统计Table 4 Statistical table of ruler data
分析以上实验结果发现,面对户外真实检尺场景的整车木材,本研究所提方法依然能够保证国标规定中材积误差率在3%(绝对值)以内的要求。图6a为木材未分上下层的情况,图6b、c为分上下层的情况,可以看出利用深度信息很好地解决了上下分层的问题(上层木材仅显示绿色拟合轮廓,不计入根数与材积)。同时由于户外检尺场景复杂,车辆周围会堆积散落木材,在木材端面识别过程中易造成误检,如图6b、c右侧所示,根据深度信息也可以很好地过滤掉误检木材。图6c出现漏检木材的主要原因是木材在装车过程中出现了中间木材突出、两侧木材凹陷的情况,在从正面拍摄木材图像时,突出的木材会对两侧凹陷木材造成遮挡,导致无法采集到两侧的木材图像,出现漏检。因此,为避免漏检现象产生,对于整车木材装车仍需有一定要求,应尽量避免中间突出、两侧凹陷的情况出现。
3.5 人机交互界面
本研究采用基于PyQt5的人机交互界面,如图7所示。为简化用户流程,方便检尺人员操作,用户在架设好三脚架之后,在适当距离拍摄完整木材端面,即可将木材图像以及深度图像导入本研究原木材积算法,1 min之内即可完成材积计算,材积计算结果自动导出至excel表格。(根据金森林业检尺数据统计,绝大部分木材为4 m长,因此本软件默认检尺长为4 m,如遇特殊情况,也可在材积计算结果表中更改检尺长完成材积计算)。
图7 人机交互界面Fig.7 Human computer interface
4 结 论
本研究所提出的原木材积检测方法,在深度学习实例分割模型的高鲁棒性、高识别率的基础下,结合双目视觉测量原理以及ZED2双目相机具有自校准功能的特性,面对复杂环境下的整车木材展现出很好的检测效果,同时利用深度信息可以很好地解决木材上下分层的问题。实验场景下,使用本方法计算出的整车原木材积同人工检尺数据对比,材积误差率(偶数)为-1.61%,单根木材检尺径平均绝对误差(偶数)为0.33 cm,真实场景下材积误差率(偶数)在3%以内,符合国家相关标准的规定。
本研究成功将相关算法部署于Nvidia Jetson Xavier NX平台,辅以相关人机交互界面,可以很好地适应户外检尺工作,检尺人员仅需架设相机,拍摄完整木材端面图像即可完成材积计算工作,大大提升了检尺效率,对于需要人工检尺的场景具有很好的推广应用价值。