高莉平 徐爱俊
(浙江农林大学,杭州,311300) (浙江省林业智能监测与信息技术研究重点实验室(浙江农林大学))
在森林资源调查中,林业的精准测量往往是森林经营[1]中的重要环节。如何快捷精准地获取立木的高度等测树因子一直是林业工作者及专家探讨的研究热点[2-3]。传统的人工接触[4]式测绘方法劳动强度大、人力成本高、效率低。使用全站仪[5-8]等精密测量设备存在操作复杂、不易携带、成本较高等问题。近景摄影测量方法[9-12]可以较好地解决这些问题,但传统近景摄影测量方法主要基于双目视觉测量[13-16]原理,双目测量精度受到相机性能、光照和基线长度的影响,算法程序复杂,应用限制偏多。近年来,传感器性能得到提升,从单目图像[17]中测量物体尺寸成为可能,王忠亮等[18]基于单目机器视觉研究定位高压输电线路障碍物,但目前单目测量还是主要针对摄像机等专业的拍摄仪器。随着智能终端设备迅速发展,运用非专业设备的智能终端测量立木高度成为可能。目前,大部分智能终端方面研究基于Android平台[19]开发研究的测树软件或方法,李亚东等[20]研究基于Android手机传感器的实现林木单株树高测量的技术,周玉晨等[21]设计与研究基于Android的角规测树及数据处理软件,这类方法的原理主要基于三角函数原理和相似三角形原理建立进行立木高度计算,这类方法需要对立木进行多次拍摄,操作复杂,鲁棒性有待提高。
基于以上讨论,为了满足林业资源过程中立木高度测量的普适率和精度要求,以快速、实时、自动获取立木高度为目标。提出一种基于智能终端,结合测树学原理、单目视觉测量技术、图像处理技术及摄影测量学原理,运用智能终端——普通Android手机采集单幅的单株立木图像,由内嵌程序获取相机参数、倾角,运用阈值突变三点法获取立木图像感兴趣区域,根据改进的非线性畸变校正模型[22-24]和基于点运算扩展透视变换模型实现立木高度测量。以期提升森林资源外业调查的作业精度和效率,达到让非专业测量人员借助非专业设备实现立木树高测量的目的。
根据单目视觉测量技术、图像处理技术、摄影测量学技术和光学成像原理构建立木高度测量方法。通过智能终端设备相机对待测的单株立木进行图像采集,因智能手机相机与单株立木呈一定角度进行拍摄,导致立木图像产生图像失真问题。由于立木生存环境复杂,不利于图像边缘检测,通过图像视觉显著性分析图中HSV调节原始图像的亮度和对比度;结合去噪算法和Canny算子进行图像轮廓边缘检测,通过立木的边缘阈值突变的三点法选取立木图像感兴趣区域;根据移动端相机特点改进的非线性畸变项的相机标定模型[24]获取高精度的相机的参数,校正图像偏移像素,结合光学成像系统和点运算处理对图像进行透视校正;将校正后图像进行轮廓边缘检测,获取立木图像边缘垂直方向阈值突变最大值,得到垂直像素高度值(h),测量目标距离(L),带入构建的立木高度测量函数,实现立木高度测量。立木高度测量方法流程图如图1所示。
图1 立木高度测量方法流程图
在自然环境下移动端设备采集立木图像,相比工业环境下的机器视觉图像处理,具有目标图像光照不均和噪声干扰因素多等特点,依据这些信息特性,文中主要采取图像显著性增强处理、数学形态学变换、阈值突变三点法选取图像感兴趣区域4个步骤。
将智能手机采集的图像进行视觉显著性分析,利用分析图调整HSV空间特征分量和Lab颜色空间分布增加颜色的对比度和图像亮度。获取增强后图像,进行灰度转换,获取灰度统计直方图,通过图像中目标物和背景在灰度中的差异,对直方图进行遍历,计算每个(t,s)组合所得到的矩阵离散度,也就是一维大津法中所谓的最大类间方差求得使“类间方差”最大的(t,s),由于t代表灰度值、s代表改点在其邻域内的灰度均值,选择最佳阈值s。灰度图像转化为二值化图像,采用数学形态学变化进行缺陷处理,在立木图像垂直方向进行增厚和减薄。将获取图像进行开运算处理(先腐蚀后膨胀),使联通区域进行分离,删除噪声像素,再将图像中目标物体增大处理,减小空洞,将分离区域进行连通。
Canny算子具有良好的轮廓边缘检测效果,在人脸识别和农业产品识别方面广泛运用。利用算子中的G(i,j)函数与图像像素f(x,y)进行卷积处理,通过3×3模板求取f(x,y)在x和y方向上的偏导数x′和y′,利用偏导数的平方根得到梯度K(i,j),结合灰度阈值锐化图像;利用二维傅里叶方法变换图像,得到图像直流分量F(0,0),通过傅里叶谱对数进行函数变换,直流分量被减弱,保持直流分量(DC),增强其他分量,增加图像细节部分;利用高斯滤波函数与图像I(x,y)进行卷积处理得到I2(x,y),利用公式(1)、(2)求出图像梯度大小P(x,y)和梯度方向Δθ(x,y),用3×3窗口在8个方向的领域内对P(x,y)的所有像素沿梯度方向进行习惯梯度幅值的插值,利用像素点(x,y)梯度幅值P(x,y)小于沿梯度方向Δθ(x,y)两个相邻像素点幅值插值比较判定边缘点;P(x,y)与非极大值抑制后的梯度幅值进行处理后的高阈值T1和低阈值T2进行比较,小于T1或T2,得到两幅图像F1、F2,在F2基础上将两幅图对应位置像素进行8邻域的对比计算,连接轮廓,得到图像的轮廓边缘检测图像。
(1)
(2)
将图像通过以上算法进行处理之后,将获取得到图像在y轴方向上发生阈值突变的像素最大值坐标点P1(x1,ymax),在x轴方向上发生阈值突变的像素最小值坐标点P2(xmin,y2)、在x轴方向上发生阈值突变的像素最大值坐标点P3(xmax,y3)。获取图像感兴趣区域,加快图像畸变校正运算速度。阈值突变三点法感兴趣区域选取流程如图2所示。
图2 阈值突变三点法感兴趣区域选取
通过智能终端设备采集立木图像,获取待测立木的图像信息,通过阈值突变三点法获取图像中感兴趣区域,方便立木图像畸变的速度,减少不必要图像像素的畸变校正。但因镜头制造工艺的问题,造成图像通过光学透镜拍摄的图像从中间边缘部分产生不同程度的变形和失真,形成图像畸变。基于单株立木所处环境,使得获取图像信息的林业操作人员的拍摄单株立木图像获取完整图像时,手机相机拍摄不平行与立木所在平面并且与水平面成一定仰视角度进行立木图像的获取,造成了图像的透视失真。畸变的存在不利于操作人员对于图像的辨认、分析和判断,所以需要对畸变进行一定的校正,从而减少因为像的失真影响的对于图像定量分析的精度。基于图像处理算法,将手机相机所拍摄的图像产生的因透视原理产生得到几何畸变和摄影镜头产生的镜头畸变,结合光学小孔成像原理,利用改进的非线性畸变校正模型对图像进行镜头校正,进一步运用基于点运算的透视畸变校正模型进行透视校正。
因实际的工艺制作问题,导致实际镜头的小孔成像模型并不是理想化的成像模型,往往带有不同程度的畸变,从而导致空间实际图像点坐标偏离理想针孔模型计算所得的坐标值。因此,为了确定空间物体表面某点的三维几何位置与其在图像中对应点之间的投影关系,需要利用相机参数构建相机成像模型。本研究采用Zhang[22-23]标定法中的方法进行相机标定,并且针对移动端相机镜头组的优缺点,引入一种改进的带有非线性畸变项的相机标定模型来实现相机标定[24],从而获取高精度相机参数和实现镜头畸变校正。
用移动端设备拍摄标定板,采集模板图像信息和已知的模板平面建立有约束关系的函数模型,获取内、外参数矩阵。考虑到透镜径向畸变的问题,将最大似然估计法和非线性最小二乘法的L-M算法进行结合运用,获取移动设备相机的内、外参数。
(3)
公式(3)中,(xw,yw,zw)表示坐标点在三维世界坐标中的坐标,图像坐标系上的点(x,y)在像素坐标系(u,v)中的坐标为(u0,v0),像面上每一个像素点在x轴、y轴方向上的物理尺寸为dx、dy;f表示相机焦距;R表示旋转矩阵;T表示平移向量。
相机畸变又分为径向畸变和切向畸变两种:
径向畸变:这是由于透镜先天条件原因(透镜形状),成像仪中心(光学中心)的畸变为0,随着向边缘移动,畸变越强。
(4)
切向畸变:这是摄像机安装过程造成的,如当透镜不完全平行于图像平面的时候产生的。切向畸变数学模型:
(5)
(6)
公式(6)中,Δu=xu/dx,Δv=yv/dy,为图像中每一个像素点和它在x轴、y轴方向上的物理尺寸dx、dy的比值。
(7)
公式(7)中坐标点在实际图像中的值为(x,y),(xu,yu)为理想图像坐标点,主要通过线性小孔成像模型计算出,其中(δx,δy)为坐标点具有的非线性畸变值;k1、k2、k3代表径向畸变系数;p1、p2代表切向畸变系数。
已知相机的内、外参数,将获取的特定区域畸变图像中的坐标(x,y)带入相机校正模型,对图片中的所有像素进行偏移纠正,从而将图像的镜头畸变进行校正的理想图像坐标(xu,yu)。标定图像的反投影误差和每幅模板图像的平均像素误差如图3和表1所示。
图3 棋盘格标定图像的反差投影
标定图片像素平均误差标定图片像素平均误差图10.4200图110.5300图20.4400图120.4700图30.5800图130.4400图40.4600图140.4500图50.5100图150.4800图60.5200图160.5000图70.4800图170.5700图80.4900图180.5100图90.4700图190.4900图100.4500总体平均误差0.4873
智能终端Android手机相机形成一定仰视角度拍摄单株立木,导致立木的图像产生透视几何畸变,影响后期利用图像获取信息和目标的定位、立木因子测量等。理想景物成像面和实际景物成像面的几何关系见图4。校正透视几何畸变,需了解图像在理想情况下的几何坐标和图像在畸变情况下的几何坐标,在一定情况下的相互转换关系。在光学成像原理图中,实际畸变图像上的图像点的坐标为x′和y′,理想图像上的图像点的坐标为x和y,理想图像和畸变图像成像在同一像面中。手机相机的镜头光轴与y坐标轴在像面中投影重合,x轴通过原点并始终与y坐标轴垂直。在理想成像情况下,手机相机的拍摄镜头的光轴与成像物面垂直。但是因拍摄因素的影响,导致畸变的存在,实际物体成像平面并不垂直于光轴,即β≠90°。
图4 手机相机成像的几何关系
根据图4中的几何关系,则得到以下公式:
(8)
(9)
(10)
根据图4得到,fy为手机镜头在y轴上的焦距;L1为理想物面到镜头的距离;l是光轴与实际物成像面的交点物体成像面上A′的距离;β为实际物体成像面与光轴所称的夹角;h为物点A′到光轴的垂直距离。联立以上公式(8)、(9)、(10)得到相应的理想坐标点y′和实际畸变坐标点y的关系:
(11)
由于x坐标轴始终与光轴垂直,因此,理想像面上的像点坐标x和实际像面上的畸变点的像点坐标x′的比值取决于透镜到通过相应物点并且垂直于光轴的平面之间的距离L,即:
(12)
由以上公式中的(9)、(10)、(12)可以得到畸变图像坐标系x′和理想图像坐标系x之间的转换关系如下:
(13)
由公式(11)和(13)得到相应的理想图像和畸变图像之间的坐标关系:
(14)
(15)
利用编程的高效率和实际处理功能对畸变图像进行校正,从而恢复图像一定的信息。根据图4的手机成像几何图可以分析出,从理想图像中的x′和y′出发,然后利用以上推导公式中的(14)、(15)可以得出,畸变图像像素相对应的校正后的像素坐标x和y,然后利用双线性插值法的方法将原畸变图像的灰度值进行算法处理从而得到与之相对应的理想的校正图像。将所有的畸变图像像素通过插值算法处理,得到选定区域的所有的理想像素的灰度等级,并进行赋值,从而裁剪图像得到一副透视畸变校正的理想图像。
透视坐标变换原理的(14)、(15)公式可得到校正后的理想图像的坐标和相关的灰度值,得到新的灰度图像。图像中像素坐标进行转换时,需建立以图像中心为原点的坐标轴,通过函数关系进行计算,将畸变图像像素坐标校正到理想图像像素坐标上,赋予正确像素值,最终得到理想校正图像。因误差因素影响,理想图像中坐标(x′,y′)经过相关的算法转换得到数值并非对应图像的整数像素值,为提高图像校正精确度,需对得到的畸变图像坐标进行插值运算处理获取非整数像素灰度值。基于文中图像感兴趣区域选取的基础上,结合运算精度和速度考虑选用双线性插值法进行灰度插值运算。与一般最邻近插值法相比,双线性插值法获取得到图像更加平滑,有利于后期对图像的信息提取。因为,图像感兴趣区域选取,减轻了双线性插值法的工作量,加快了程序运算的速度。手机相机成像的校正对比如图5所示。
图5 手机相机成像的校正对比图
基于Android智能手机设备,结合光学系统成像模型和图像移位视差法,建立立木高度测量模型示意图(图6)。设备OP为设备离开地面的距离,直线OM为相机拍摄的光轴线,OA1为视线,∠MOA1=1/2α(α为视场角)。因为设备FG和光轴OM垂直,OP和ON垂直,所以∠GOM和∠PON都为直角。因∠POG+∠GPN=90°,∠NOM+∠GON=90°,所以∠POG=∠NOM=θ(手机重力传感器获取的手机倾斜角)。目标距离L,即PA1数据为实际量测获取,立木实际高度为A1A3,AA2为理想情况下立木高度(立木于拍摄设备相互平行共同垂直于光轴情况),并且AA2//FG//y′y″。
图6 树高测量模型示意图
将因手机相机拍摄造成的畸变进行校正后,立木图像从实际图像A1A3转变为在垂直与光轴的理想物面上进行成像AA2,所以AA2=A1A3。立木图像AA2经过相机成像原理在成像面上形成图像y′y″,分别与光轴OM垂直于点y0和点M,Oy0=fy(手机垂直方向上的焦距,单位/像素(pixel))。其中光轴与理想物面和实际物面的交点都为点O,AA2=A1A3,所以AM=A3M,A1M=A2M。
因为A1A3为所求立木高度,即立木高度H=A1A3。
(16)
式中:fy为已知由相机标定所得参数获取;y′y″为图像中立木轮廓最高点到图像底部的像素差值,单位:像素。
ON=PA1,
(17)
OM=ON·cosθ,
(18)
OM=PA1·cosθ,
(19)
H=A1A3。
(20)
由式(16)、式(20)可得立木高度计算公式:
(21)
式(21)中,通过获取的实际目标距离PA1和手机获取的倾斜角度θ(其中PA1的物理单位为m;倾斜角θ的物理单位为°;y′y″和fy的物理单位都是像素。其中公式中得到最后距离H,单位为m。
在本试验中验证使用的客户端测试手机是小米手机,型号为MI 2S,Android版本为4.1.2,通过Java语言和C++语言结合进行项目功能的开发。
立木图形的校正过程如图2所示,校正图像如图5所示,根据以上立木高度测量方法实现立木高度测量,测量对比如图7所示。
图7 树高测量方法对比图
在校园林区内随机选取12棵样本进行立木树高的测量,对文中算法进行试验验证。选用改进的布鲁莱斯测高器和皮尺对12棵立木进行树高测量。因周围环境等额外因素影响,布鲁莱斯测高器水平距离均选用15 m进行测量,皮尺测量用梯子爬到树上进行测量,每一颗样本树都用两种测量仪器进行3次测量,选取平均值作为立木的树高真值。然后利用校准的试验手机对这12棵立木进行测量,利用皮尺获取实际立木目标距离L为5 m,每棵立木在拍摄点距离固定不变的情况下,对立木进行拍摄测量,测量时应保持立木和测量人员处于同一水平面。测量结果如表2所示,由表2可知,测量结果的最大误差为6.42%。
表2 树高试验测量数据
注:样本的目标距离通过实际皮尺进行测量获取。
综上所述,利用文中的立木树高测量方法进行试验验证发现,试验测量满足精准林业和数字林业的资源调查要求。测量结果如表2所示。由表2可知,测量结果的相对误差均小于6.42%。
本研究结合图像处理技术、单目视觉测量技术、近景摄影测量技术和光学成像原理,提出一种利用智能终端设备采集单幅立木图像自动测量立木高度的方法。经验证,该方法进行立木高度测量的精度误差小于6.42%,满足国家森林资源二类调查的精度要求。
文中方法与现有的智能终端的Android平台的测树方法相比,该方法采用了图像处理中的图像视觉显著性增强,感兴趣区域选取及图像校正等技术,校正了因拍摄仪器和操作方式产生的图像畸变,提高了测量精度和测量的鲁棒性;将机器视觉技术应用于林业资源调查工作,在实现立木高度快速测量的同时,获取并保存了立木图像信息,为林业提供了直观可视的存档资料,方便后续复查。与传统双目摄影测量的测树方法比较,该方法采用单目视觉测量技术,设备成本低廉、体积小,数据结果采集过程简单、处理便捷;采用普适率高的智能终端手机代替专业测量工具,将操作步骤简单化,易于非专业人士使用和推广林业知识。由于时间和试验条件限制,文中测量方法目前只涉及立木高度测量,后续可扩展到立木其他因子的尺寸测量。