摘 要
ABSTRAVT
随着人工智能时代的到来,计算机视觉领域被广泛应用到各个行业中。同样的,人工智能改变着传统林业的研究方法,林业信息工程技术日渐成熟。针对传统树高测量方法中存在的结果准确性不高、操作困难、专业知识转化为规则困难等问题,采用了一种基于双目立体视觉理论计算树高的方法,实现了树木高度的无接触测量。以双目相机作为采集设备,基于MATLAB、VS2015开发平台,采用张正友单平面棋盘格相机标定方法进行单目标定和双目标定,从而获取双目相机2个镜头的参数。通过SGBM算法和BM算法立体匹配后获得视差深度图像,进而获取树木关键点的三维坐标信息并以此来计算树木高度。将深度学习与双目视觉相结合可以实现树木同时在二维和三维空间的信息提取。在VS2015上的试验结果表明,该方法操作相对简单,并且能够较为准确地测量树木高度,SGBM算法树高测量结果的相对误差范围为0.76%~3.93%,BM算法相对误差范围为0.29%~3.41%。结果表明:采用双目视觉技术测量树木高度可以满足林业工程中对于树高测量的精度需要。
随着现代科学技术的迅速发展,林业管理工作效率需要不断提高,精准林业成为林业领域的发展趋势。
树木参数
树木参数是林业调查的重要指标,其中树高是森林调查的重要指标,对于树木生长具有一定参考价值。
机器视觉可代替人眼对物体进行检测和识别,较为常见的是利用单目摄像头。若要获取物体的深度信息,仅凭单目摄像头是不完善的,通常情况下需选择双目摄像头来获取物体三维信息。
目前,智能手机后置镜头数大多不少于2个,已达到双目视觉测量的物理环境,未来将双目视觉技术应用在智能手机上可以达到成本低、操作便捷的效果。
同样的,可以将双目视觉技术应用在无人机上,实现对地势复杂、不易拍摄的树木进行树高测量。此外,双目视觉技术对倾斜树木的树高测量具有一定价值和意义。
目前,大多采用传统的望远测树仪来测量树木高度。
邱梓轩等利用PDA模块、远程EDM模块、长焦CCD镜头模块和云台组成望远测树仪测量立木高度。有研究人员选择手持智能手机通过内置传感器获取参数,从而计算测得立木高度信息。
李亚东等以Android智能手机作为测量设备,调用Android中API接口中的三角函数对立木高度进行测量。
也有研究人员采用激光雷达点云数据对树高信息进行提取。刘金鹏等基于Skel Tre算法对带有噪声的TLS(terrestrial laserscanning)数据生成骨架模型和图深度优先搜索算法提取单木信息。
Maas等对真实世界的植被进行了主动激光扫描,并提出了一种鲁棒地重建树木骨骼结构的自动方法。
Wu等提出了一种新的基于体素的标记邻域搜索方法,用于从移动激光扫描(mobile laserscanning,MLS)点云数据中有效地识别行道树并获取其立木形态参数。
Chen等针对测量输电线路走廊中的树障,提出了一种双目视觉测距方法,用于测量输电线路与树木之间的距离。
倪超等采用了NCC(normalized cross correlation)立体匹配算法对苗木图像进行匹配,提取形态学参数。
Ni等用双目视觉的方法对树冠进行三维重建。
因此,选择一种具有良好准确率以及鲁棒性,并且较为经济的测量树木高度的方法可以满足精准林业的需求。
东北林业大学张真维,赵鹏等采用基于双目立体视觉原理的树木高度测量方法,对相机前方树木提取深度信息,获取树木关键点的空间三维坐标,从而计算树木高度;随机选取行道树进行试验研究,并验证该方法的合理性、有效性。
01
双目视觉与相机标定
1.1双目立体视觉模型1.2双目视觉系统测距原理1.3相机标定试验设备1.4标定方法与步骤
02
匹配算法及树高测量方法
2.1立体匹配立体匹配是双目视觉系统中的核心部分,可确定多幅图像之间投影点间的一一对应关系,有效的立体匹配可以使关键点更加容易被提取。 2.2 SGBM算法SGBM算法的整个过程如图6所示。
1)采用水平Sobel算子提取图像中的边缘,获取图像的梯度信息,保存起来的预处理图像将会进行代价计算。Sobel算子公式为:
2)代价计算。对左目图像和右目图像同时有两种处理方式:对输入图像经过SobelX水平算子处理后计算BT代价;对输入图像直接进行BT代价计算。前者可以更好地保留图像边缘和细节信息,后者将会更好地保留原图信息。 3)块计算。块计算的方法是根据选定像素点周围8个邻接像素的代价之和进行块匹配,在相对应的右目图片中,逐一对像素点周围8个代价值之和进行计算,当计算周围8个像素点的绝对值之和相差最小时,即认为匹配成功。 4)SGM算法。可达到多路径约束聚合的目的,使当前像素点受到周围多个方向路径的约束。为了优化更新像素点的代价,采用聚合公式来解决这些问题:
式中:E(D)为构建的能量函数;p、q为图中的像素点;Np为像素点p周围8个相邻像素点的集合。式(3)中的第一项表示像素点p视差为Dp时的匹配代价;第2项表示当视差差值为1个像素时,将增加1个惩罚系数P1;Dq为视差,Dp-Dq表示视差差值;第3项表示当视差差值大于1个像素时,将增加1个惩罚系数P2。通常P2>P1,P1是为了适应倾斜或弯曲的表面,P2则是为了保留不连续性。 单一方向上,整张图片的像素通过动态规划公式参与:
式中:C(p,d)表示当前代价;第2项中4个式子分别表示像素p在某方向上的像素在视差值为d时的代价、视差值为d-1时的代价加上P1、视差值为d+1时的代价加上P1、视差值在非d-1和d+1时的代价最小值加上P2;最后一项可起到防止聚合结果过大的作用。 共有16个约束方向,则把16个方向的值加和完成聚合过程,即完成了SGM的代价优化。 5)视差计算和视差后处理。进行后处理操作的目的是处理视差图在前面步骤中可能造成的视差误差、图像鲁棒性较差、图像不连贯等问题。 2.3BM算法BM算法对8位的灰度图像进行处理时运行时间较短,可生成灰度视差图像,图像越亮代表距离越近。在用BM算法进行立体匹配时,模式串(用于匹配原灰度图像文本串的灰度模板)的移动方向为从左到右,但模式串与文本串进行比较时的方向为从右到左。匹配过程中引入坏字符算法和好后缀算法,当匹配过程中存在不匹配的情况时,采用这2种算法进行处理,直到完成匹配。 2.4双目视觉与深度学习通过深度学习的方法可以对树木进行目标检测与识别。林朝剑等利用迁移学习实现林业业务图像识别;刘嘉政等使用改进的CNN模型对树种图像进行识别。双目视觉可以良好地获取树木的深度信息。将深度学习技术与双目视觉技术进行结合,使用双目相机作为图像采集设备,既可以实现树种的识别及检测,又可以对树高、树距等空间深度信息进行计算。在同一时间内实现了二维和三维空间中树木信息的提取,在林业工程的实际工作中具有较好的价值与意义。采用Yolo v4算法,基于Pytorch框架,对樟子松和云杉2种树木在双目相机所拍摄的图像上进行目标检测和识别。选取139张樟子松图片以及278张云杉图片作为数据集,使用Labelme工具制作标签后进行深度学习训练。目标检测与识别在双目图像中的检测结果见图7。
2.5提高测量精度的方法分析在双目视觉技术的基础上,提高测量精度(即深度距离)较为关键。 1)算法角度:在图2中,设基线距离与焦距恒定,视差为d,视差偏差为Δd,深度距离偏差为ΔD,由式(5)可得,视差偏差越小,则深度距离偏差越小。
2)硬件角度:设Δd恒定,由式(6)可得,基线距离与焦距更大时,深度距离偏差越小。
3)像素角度:像素越小、物理尺寸恒定时,参与的像素越多,深度距离偏差越小。 4)深度范围角度:深度范围对精度有影响,设基线距离、焦距、视差偏差均恒定,由式(7)可得,测量目标越近,深度偏差越小。
综上所述,提高测量精度的方法有:选取高精度视差估计算法;在合适的场景下,适当增加双目相机基线距离并酌情采用焦距大的镜头;选取像素尺寸小的高分辨率相机;在合适的情况下,拉近拍摄距离。 在提高测量精度方面,针对算法角度,选取SGBM算法,在SGBM算法后处理的过程中进行置信度检测、亚像素插值、左右一致性检测的步骤,达到了消除错误视差以及优化视差图像的效果,从而提高了视差的准确性,即提高了测量精度。针对硬件角度,选用了高帧率可变基线USB3.0双目相机,以及一对4mm和一对12mm的镜头,在合适的场景下进行拍摄试验。针对像素角度,选用了分辨率为1 280×720的双目相机,提高在相同物理尺寸下的像素数量。针对深度范围角度,在拍摄树木图像时,在图像成像合适的情况下拉近拍摄距离。 2.6树高计算方法在测树学中,树高是指树干的根颈处至主干稍顶的长度,是表示树木高矮的调查因子。 树高示意图如图8所示,P点为树梢顶端点,Q点为地面上根茎与地面的接触点,P和Q的距离L即为树高。若要计算出树木高度L,可将树木置于一个空间直角坐标系下,通过P、Q两点的空间坐标计算L。在双目立体视觉标定过程中已建立了以双目相机左镜头的中心作为原点空间坐标系,此时,在经过SGBM、BM算法之后,获得的视差深度图可以较好地获取树木关键点的深度信息。设P点坐标为(X, Y, Z),Q点坐标为(A, B, C),则:
03
结果与分析
3.1双目标定结果随机选择行道树作为数据进行树木高度测量试验,通过MATLAB分别对双目相机左右目镜头进行标定并分别获取.mat文件,同时将2个.mat文件作为参数进行双目标定。双目标定后的参数提取结果见表1。
3.2图像校正图像校正的目的是为了使双目相机2个镜头的光轴处于平行状态,同时可以检验双目标定结果是否准确,从而达到像素点在左右目图像上高度一致的效果。即只有当双目标定结果准确时,左右图像才会处于像素点一致的状态。图像校正的方法:获取双目标定结果参数;通过Remap函数实现图像校正。图像校正成功后便可进行图像的立体匹配,深度计算以及生成深度图像。试验图像校正结果见图9,点云深度图图像见图10。图9中,2个左图像为双目相机左镜头拍摄图片,2个右图像为右镜头拍摄图片。图9a、b、c为针叶、有叶树冠形态树(云杉),对应图10a;图9d、e、f为阔叶、无叶树冠形态树(杏树),对应图10b。由此可知在树木图像校正时,校正结果准确,树木类型(针叶和阔叶)和树冠形态(有叶和无叶)对校正结果无较大影响。
3.3立体匹配获取树木有效特征参数较重要。立体匹配双目图像最重要的作用是获取树木关键点的深度信息,将图像校正后的2张图像通过SGBM算法与BM算法获得树木的视差深度图。在这个过程中,SGBM算法经过预处理、代价计算、块计算、SGM处理、视差计算和视差后处理,得到彩色视差深度图像;BM算法经过模式串与文本串进行匹配,并通过2种规则进行处理,得到灰度视差深度图像。图10显示了云杉、杏树、榆树、樟子松经立体匹配后得到的深度图像:图10a、b、c的拍摄距离分别约为25,42和6m;图10d为多棵树木图像。结果显示,在近距离及中距离拍摄时,SGBM算法得到的深度图像表面平滑,轮廓较分明,结果较好,而BM算法轮廓分明,但树的表面有部分失真。在远距离拍摄时,BM算法得到的深度图像轮廓分明,效果良好,但SGBM算法出现失真,如图10b所示。
3.4树高测量结果SGBM算法和BM算法试验测得的树高结果分别见表2和3。以双目相机左镜头为原点建立空间直角坐标系,P点(树木最高点)的选择方式为树木轮廓Y轴值最大的点,Q点的选择采取多点取平均值的方式确定,由于存在着很多树根和地面的接触点,采取视野范围内树根左边与地面接触点与树根右边与地面接触点的三维空间坐标,并取平均值作为Q点。P、Q两点的坐标如表2和3所示。树木实际高度采用全站仪10次测量的平均结果得到。由表2和3可知,通过获取树木关键点的空间坐标计算树木高度的方法具有一定的可行性,误差相对较小,与实际数据具有较强的相关性。
3.5树木重叠当拍摄过程中出现树木重叠的情况时,可以通过视差图的明亮程度来判断最高点的位置属于哪棵树,出现此类情形时的深度图见图11。图11a为原始图像,红色方框区域为此次拍摄树木所遮挡的2棵其他树的树尖,这2个树尖在图像中高于待测树木高度,对待测树木最高点的判断产生了影响;图11b和c为SGBM算法和BM算法所生成的深度图,红色方框内的部分为重叠树木树尖的位置。因此,当树木重叠时,越靠近相机的树木颜色越明亮,以此可以解决树木重叠覆盖时其他树木对待测树木最高点判断的影响。
3.6误差分析试验误差分布见表4。由表4可知,基于双目视觉的树木高度测量方法计算树高的结果,SGBM算法相对实际值的最大相对误差为3.93%,最小为0.76%;BM算法相对实际值的最大误差为3.41%,最小为0.29%,根据2.5中提高精度的测量方法,对于拍摄5~6m以上较高的树木误差可以控制在3%左右,2种算法均满足精准林业的精度需求。此外,造成误差的原因可能有:树木背景距离树木本身太近,造成深度图不明显;相机标定时出现误差;树顶端出现失真等问题。SGBM算法生成的深度图表面平滑、连贯,但在拍摄远距离树木时易造成轮廓不清晰;BM算法轮廓清晰,但深度图表面有轻微失真,在实际应用中要根据实际情况选择算法。
结论
针对能实现树木无接触式的测量方法,以及综合考虑树木生长过程中存在的倾斜、弯曲等不规则形态,提出了基于双目立体视觉的树高测量方法。将深度学习与双目视觉相结合,可以实现树木同时在二维和三维空间的信息提取。双目视觉包括相机标定、图像校正、立体匹配等技术;树木的目标检测技术则基于Yolo v4和Pytorch框架。此外,笔者基于双目视觉理论分析了提高树木测量精度的方法,如从算法角度、硬件角度、像素角度等多方面分析。试验部分阐述了双目视觉方法测量树高的全过程,通过相机标定获取相机镜头参数,结合SGBM算法与BM算法进行匹配,获得待测树木的深度图像,进而对树木关键点的空间坐标进行提取,计算测得树高结果。其次,考虑到测量树木高度过程中可能存在树木遮挡重叠的问题,从而对树木关键点的判断产生影响,因此,在试验部分分别用两种算法的深度图像清晰地描绘了解决该问题的途径。在试验误差方面,SGBM算法树高测量结果的相对误差范围为0.76%~3.93%,BM算法相对误差范围为0.29%~3.41%。总体来看,该方法具有较好的应用价值,可以满足精准林业的需求。
审核编辑 :李倩
-
传感器
+关注
关注
2550文章
50993浏览量
752954 -
机器视觉
+关注
关注
161文章
4363浏览量
120254
原文标题:基于双目视觉的树木高度测量方法研究
文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论