陈相武,徐爱俊
(浙江农林大学 a.信息工程学院;b.浙江省林业智能监测与信息技术研究重点实验室;c.林业感知技术与智能装备国家林业与草原局重点实验室,浙江 杭州 311300)
树木高度是评价立木质量和林木生长状况的重要标志之一[1],在森林资源调查中已成为一项必须的工作[2-4]。树木测定工具及其算法作为获取基本测树因子的基本途径,其准确性、实用性极为重要,其现代化水平也体现了林业现代化水平[5]。目前,主流的测高仪器如布鲁莱斯式测高器[6]因价格低廉、操作简单、能够满足一般精度的要求,应用较为广泛,但其受到需要测量水平距离的限制,在实际森林测量中容易受到遮挡的影响。三维激光扫描技术通过快速准确的获取物体三维坐标点云,达到树木高度快速精确自动测量的目的,但激光雷达测量具有设备成本高,不易携带且处理时间较长等缺点[7-8]。近年来,机器视觉测量技术发展迅速,其在林业应用的深度与广度也在日益增大[9]。目前主流的视觉测量系统可以分为两类,主要包括单目视觉测量系统和双目视觉测量系统[10]。其中双目视觉测量系统的主要原理是利用两台相机从不同视觉对待测目标进行图像拍摄,通过两幅图像中相应的匹配点进行三维重建,从而获得待测目标在三维空间中的信息[11]。与双目视觉相比,单目视觉系统具有相机标定过程和系统构造简单的优点,并且避免了双目视觉测量系统中立体匹配困难的缺点,因此成为了摄影测量、计算机视觉领域的重要研究趋势之一[12]。实际中,单目视觉测量的测量灵活性,图像获取快捷性,解算方法普适性也使其广泛的运用于自然环境下的非接触测量[13]。朱冰琳等[14]利用机器视觉获取温室中植株三维表型,对不同时期生长的玉米,大豆植株进行三维重建,并基于手动测量值对叶长,叶最大宽进行精度评估。杨坤等[15]利用无人机高分辨率影像,采用PIX4D 软件生产三维点云,基于最大类间方差法把树木分割为树木点云以及地面点云,由此提取树木顶端高度和地面平均高度。周克瑜等[16]在测量树高时以相似三角形原理,基于三角函数根据已知标定物尺寸进行对比计算,在一定程度上完成了立木高度的快速测量。管昉立等[17]通过数字图像处理计算提取树木的最小外界矩形,标定并获取智能手机中相机的内外参数。根据相机的二维图像信息和已知参数进行三维世界的坐标重建实现立木高度的测量。但目前国内树木测定工具及其算法大部分存在精度较差、自动化程度不高、操作复杂等问题。在树高测量方面仍使用传统的测量原理和方法,并且要事先测得立木的距离信息,除此之外大多都需要复杂的运算,耗时较大,无法快速便捷的测量立木的高度。
针对上述问题,本研究以立木高度的自动获取为研究目标,提出一种借助智能手机结合机器视觉技术的立木高度测量方法。该方法利用Graph Cut 算法对立木图像进行分割[18],实现立木影像中立木高度像素的自动获取。通过几何相似模型自动获取的立木图像深度信息,再提取手机内置陀螺仪的角度信息解算测量树高,为森林资源调查提供了新的测量方法和技术手段。
研究区域位于浙江省杭州临安市浙江农林大学东湖校 区(29°56′~30°25′N,118°51′~119°55′E)。临安市为典型的亚热带季风气候,四季分明,雨水充沛,环境优美;年平均气温为16.4 ℃,年降水量1 613.9 mm,年平均降水日158 d,无霜期为237 d,全年光照充足。境内地势自西北向东南倾斜,北、西、南三面环山,东西100 km,南北50 km,总面积3 126.8 km2。研究区内有银杏Cinkgo biloba,玉兰Magnolia denudata,无患子等城市常用绿化树种;植被覆盖率达76.55%,树木组成丰富,具有良好的绿化基础,是典型的城市绿地类型。
在摄影测量中,为了确定对应点在针孔模型各坐标系之间的投影转换关系,需要利用相机参数构建投影几何模型。为了适应智能手机的相机镜头组的特点,研究采用改进的张正友标定法[19],引入带有非线性畸变项的相机标定模型进行相机标定,从而实现畸变矫正并获取相机内部参数。若图像坐标系(x,y)原点在像素坐标系(u,v)中的坐标为(u0,v0)。相机坐标系中任一点(Xc,Yc,Zc)投影到图像坐标系上的(x,y,f),图像坐标系平面与原点距离为f。且从物体的世界坐标Pw(XW,YW,ZW)到相机坐标Pc变换的过程是一种刚体运动,可以用物体的平移和旋转来描述。所以世界坐标系到相机坐标系的转换关系表示如下:
其中Mint,Mext分别是相机标定内、外参数,相机外参包括旋转矩阵R和平移矩阵T。dx,dy为平面上每个的物理尺寸(单位:mm)。
由于在自然场景中具有复杂的背景干扰,在采集立木图像时,需要对原始图像进行预处理,突出有用信息、抑制无用信息,从而改善图像质量来方便立木图像特征信息的提取。本节使用Graph Cut 算法对采集的立木图像进行前背景分割,以帮助获得待测立木底部中心点、立木在图像上的最高点。该算法能在不同光照强度等自然环境的影响中有效克服自然环境下的复杂背景干扰,准确分割出特定立木。如下图1所示:(a)为原始输入图像,图1(b)为经过Graph Cut 算法提取后得到的感兴趣区域轮廓图像。
图1 立木特征轮廓提取Fig.1 Feature extraction of standing trees
由于目标立木在图像中的存在形状不规则,位置,方向自由等情况。本研究通过扫描二维图像的坐标分布情况,输出图像中二个最值点,分别为像平面坐标系下Y轴方向上的最大值Smax(x,y)和最小值Smin(x,y),作为后续树高测量模型中的输入。
2.3.1 基于几何相似的深度信息获取
在树高测量模型中,几何相似法可以用来测量待测目标的形状、二维位置等信息。其主要原理是当待测目标的几何参数位于同一平面上,且相机的像平面与待测目标平行时,通过待测目标与图像之间的空间几何相似关系得到待测目标的实际参数。根据相机成像原理,以及相机与地平面的关系建立了图像像素坐标系与世界坐标系距离的几何模型,如图2所示。
图2 深度信息几何模型Fig.2 Depth information geometry model
其中,L 点所在直线代表地平面,d为相机到待测目标的水平距离(深度值),h为镜头中心到地面的垂直水平高度,γ为相机的垂直俯视角,β为相机投影与光轴的夹角。ABCD 为相机像平面,点(x0,y0)为光轴与图像像平面的交点,且光轴垂直于像平面,镜头中心到像平面的距离用f表示。取一点P,其在二维平面图像坐标系的投影点为(x,y)。通过上图的几何模型可以导出像素坐标与世界坐标距离的关系式:
其中β可以表示为三维图像中像素和焦距的关系表达式:
结合(2)(3)可以得出公式:
根据图3所示图像坐标与像素坐标之间的几何关系可知:
图3 图像坐标系与像素坐标系转换模型Fig.3 Transformation model of image coordinate system and pixel coordinate system
又知y0=0 ,可以得到:
在上述公式中,h是相机的高度,γ是手机的俯拍角度,这些都可以通过测量直接获得的。v为图像中的y轴坐标,v0是图像像平面y轴的主点,fy是图像平面y轴方向的焦距,v0和fy都是相机的内部参数,可以通过第一节的相机标定获得。
2.3.2 高度像素坐标映射模型
基于相机小孔成像的原理,建立高度像素坐标映射模型,如图4所示。其中PO为相机离水平面的垂直高度。在理想情况下,相机的俯视角γ为0 度,∠OPN=90 度,A1A2为理想成像面,PN为理想情况下光轴所在的直线,PN⊥A1A2,且A1A2所代表的长度就是三维空间中所求的树高H。在实际测量中,相机的俯视角会随着测量的需求发生变化。根据相机投影模型,当俯视角进行变化时,其中各成像面之间的相对夹角不会发生变化。若设俯视角为∠OPG=γ,则∠GPM=90 度,A3A4为实际成像面,PM为实际情况下光轴所在位置,PM垂直A3A4,所以∠NPM=γ,既可得出A3A4的高度公式:
图4 高度像素坐标映射模型Fig.4 Pixel coordinate mapping model
其中xy,xy′为立木在二维平面图像上的成像点,其中最大值为Smax(x,y)和为最小值Smin(x,y),yy′代表立木图像在像平面上的垂直方向的像素差。fy是相机标定所得的已知参数,v′v为图像中立木轮廓最高点到图像底部的像素值差值,单位/像素/pixel。
已知A3A4=H结合公式(10)(11)可以得出公式:
又已知PN=d,根据深度提取公式(11)可得公式:
以上公式通过获取立木图像在成像面上的像素差y′y和相机内部高精度陀螺仪获得的俯视角γ来获取立木的高度H,其中h的物理单位为米/m,y′y和fy的物理单位都是像素/pixel,H的距离单位为米/m。
本研究使用型号为MI 2S 的小米手机,Android 版本为4.1.2,通过Java 语言和C++语言结合进行项目功能的开发。经相机标定后求得相机内部参数为:fx= 3 486.563 7,u0= 1 569.038 3,fy= 3497.4652,v0=2 107.989 8,设定手机距离地面的垂直高度h=1.10 cm,图像分辨率为3 120× 4 208。输入待测立木图像,如下图所示,以测量数据为立木高度真值,测得立木实际高度为6.2 m,通过图像处理技术利用Graph Cut 对立木图像进行分割结果如图5所示:
扫描图5(b)二维图像的坐标分布情况,可以得出Y轴方向上的最大值Smax(977,365)和最小值Smin(1 299,3 463),可以得出y′y= 3 144.689 7,此时手机机俯视角γ=10.0°,手机距离地面垂直的垂直高度h=1.10 m。通过公式(12)可以得出立木高度H=6.281 5 m。
图5 立木图像分割结果Fig.5 Segmentation results of standing tree images
为了验证不同高度样木区间树高测量模型的精度,本研究以常见的样木高度范围为样木区间,从不同的角度测量待测立木的高度。对树木进行编号并与文献[15]基于无人机高分辨影响的立木高度提取方法做比较分析。结果如表1所示。
如图6所示,经过计算得出测量相对误差范围为-0.029~0.338 m,立木高度测量的最高相对误差为4.22%,最低相对误差为0.30%。文献[15]的最高相对误差为16.23%,最低相对误差为0.33%。其中本研究立木高度测量方法只有13.64%的误差在6%的以上,基于文献[15]的立木高度测量方法有72.74%的相对误差超过6%,具有较大的波动。通过对比分析可以得出用本研究方法进行立木高度的测量精度更高且测量结果更加稳定。且该方法在利用手机相机进行图像采集时,选取手机的旋转角度时应确保待测立木的图像能完整的成像在手机相机成像面,同时让图像中待测立木的底端的像素成像在光心平面的主点,以便能够准确地测得待测立木的高度。
表1 立木高度测量数据Table 1 Data for standing height measurement
图6 相对误差对比图Fig.6 Relative error comparison diagram
本研究提出一种基于智能手机的单目视觉立木高度测量方法。该方法首先利用相机标获得相机的内参和外参,以获得的相机参数来构建投影几何模型,并使用改进的Graph Cut 算法对采集的立木图像进行前背景分割,提取其立木的特征轮廓,做为树高测量中的输入图像。根据相机成像原理,以及相机与地平面的关系建立图像像素坐标系与世界坐标系距离的几何相似模型,由此推导出待测立木实际高度和已知参数之间的函数关系,解算出单株立木的高度值。
结果表明:1)基于Graph Cut 算法的立木轮廓提取方法,结合对处理后的图像进行二维坐标分布扫描能够有效获得立木在图像中垂直方向像素的最大值Smax和最小值Smin。2)以单目视觉为基础使用几何相似模型来提取图像深度信息,能够简便且准确的计算出目标点的三维深度信息。3)对于常见树高范围测量区间内的立木,本研究算法具有良好的稳定性,且该试验结果表明树高测量中最高相对误差为4.22%,能够满足国家森林资源二类调查中对树高测量精度的要求。
对比总结当前树木测量方法分析发现,不同研究学者采用多种方法进行尝试,如吕奇等[20]基于摄像头和CMOS 获取的立木图像,再结合数字图像处理技术,使用Roberts 边缘检测算子和Hough直线提取对树木的边缘直线进行提取,获取其图片上树干像素的宽度,根据相关高精度距离测高器和激光倾角测高器获得其他参数,最终事先在非接触条件下的立木高度测量。侯鑫新等[21]通过对摄像机进行内外参数的标定,基于双目视觉原理,建立了林木摄像系统的数学模型,借助CCD 和经纬仪,研发了林木图像识别系统。黄晓东等[22]利用集成电荷藕合器件图像传感器、倾角传感器、激光测距传感器、中央处理器、存储器、液晶显示屏,测量时可获取测站点到待测点的倾角和距离2 个参数值,通过仪器的嵌入式操作程序,实现树高测量的自动测量。以上研究对于硬件设备的条件较严格,需要集成多个硬件设备完成立木高度的测量。进行图片二维坐标恢复到实际空间的三维坐标时,难度较高,准确度也有影响,采集图片后再在图像传感器上分析处理,实时性、便捷性不够。
相较于以上测量方式,本研究的测量方法成本低且工作效率高,使用智能手机设备进行树高测量时不需要严格的硬件条件且设备集成便捷,整个树木高度测量的过程只需一人即可完成。但本研究仍然存在很多不足,在β(相机投影与光轴夹角)较大的情况下,本研究算法会产生较大的误差,且在实际读数中,对于手机俯视角的提取时的精度要求较高。此外研究对象仅限于单目图像上的单株立木,在后续研究中,可以针对以上不足尝试以单目视觉下多株立木的高度测量作为研究目标,同时对如何获取更高精确度的手机俯视角做进一步研究,检验本研究所提方法的适用性,以期更好的推广及进一步扩展本研究所提出的立木高度测量方法。