一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于halcon双目立体视觉的树木胸径测量方法

2022-12-06 22:11:44 来源:中国专利 TAG:


1.本发明涉及人工智能自动化尺寸测量领域,特别涉及一种基于halcon双目立体视觉的树木胸径测量方法。


背景技术:

2.在人工林种植过程中,及时充分掌握林木胸径信息非常必要,其数据信息能够直接反应林木生长速率和树木材积量,是衡量单棵林木价值的重要森林资源清单属性,也是判断林木群体是否正常生长的重要指标。
3.传统的人工林林木胸径数据的采集大多依赖于人力作业,主要利用轮尺、卡尺、直径卷尺等仪器进行手工测量与记录,效率极低、劳动强度大、准确率差。而利用深度学习和计算机视觉技术运用在林木胸径数据信息采集领域有积极意义,不仅能够在技术层面满足快速、高效、准确、自动化的采集需求,提高树木胸径测量效率,更对促进人工林行业的高效发展、高质生产具有显著的现实意义,进一步解放劳动力,减少劳动成本。


技术实现要素:

4.本发明要解决的技术问题是:克服现有技术的不足,提供一种通过双目相机采集林木的图像,并通过对图像进行处理和深度学习后可自动化得到林木胸径的尺寸,减少了人力劳动的工作量和成本,同时提高了测量效率与精度,避免了因测量误差而带来损失的基于halcon双目立体视觉的树木胸径测量方法。
5.为实现所述目的,提供基于halcon双目立体视觉的树木胸径测量方法,包括:
6.s1、双目相机标定
7.通过圆点型标定板对双目相机的内外参进行标定,基于halcon非线性模型句柄标定法得到标定参数,根据标定参数对图像进行校正,并采用block matching算法进行立体匹配与视差图计算;
8.s2、深度学习与模型训练
9.(1)对双目相机采集图像进行预处理,包括采用gen_rectangle算子进行左右图像分割,用smooth类算子或mean类算子平滑图像,去除噪点,用invert_image、scale_image等算子进行图像增强,并进行图像标注,完成深度学习图像数据集的构建;
10.(2)基于halcon深度学习网络框架进行树木目标检测训练,通过调节参数得到最优模型;
11.s3、林木胸径统计
12.(1)采用read_cam_par和read_pose算子,读取双目立体视觉标定获取到的左右相机的摄像机内部参数和右相机相对左相机的位姿;
13.(2)采用gen_binocular_rectification_map算子,获取非标准外极限图像和标准外极限图像之间的变换矩阵,即映射图像。根据变换矩阵对左右相机成像进行图像校正;
14.(3)采用read_dl_model算子,引入已训练好的林木胸径检测模型,并利用参数设
置set_dl_model_param算子设置相应参数;
15.(4)采用list_files、tuple_regexp_select算子进行摄像机的打开或图像的读取,其中图像读取类型可设置bmp、gif、jpg等多样类型;
16.(5)采用gen_dl_samples_from_images、preprocess_dl_samples算子对左右图像分别进行检测,通过形态学处理方法,获取阈值分割后的林木胸径以下边界区域,选取边界左上与右上两目标点坐标位置,定义其横坐标差值为胸径大小;
17.所述检测出树木图像目标,具体为:
18.采用gray_features(rectangler,v,“mean”,valuer)算子,计算指定区域的灰度特征值,其输入是一组区域,每个区域的特征都存储在一组value数组中,从而获取读到的图像区域灰度值,根据threshold(b,regionb,l1,255),threshold(h,regionh,l2,255)算子得到灰度值信息,之后进行树干胸径部分及以下区域两边界阈值的确定l1:=valuer/1.3,l2:=valuer/1.7,最后对两个通道分割,再取并集,即得到目标检测区域;
19.(6)采用open_framegrabber算子,在循环体中,从图像数据中依次读入林木图像,开始时选取头两帧图像;往后每次保留时间靠后的一张图像,读入新图像,覆盖时间靠前的一张图像;
20.(7)胸径均值计算
21.采用tuple_mean和disp_message算子,并定义all:=[all,mean]对识别次数进行统计,识别次数符合规定设定要求,进行林木胸径均值求取,否则视为识别无效,不进行胸径数值统计;
[0022]
(8)检测有效识别的林木,当目标林木在视野边缘消失且求取有效的胸径值时,相应的林木数量统计计数器加1;
[0023]
(9)采用open_file和fwrite_string算子进行excel表格导出统计数值,主要包括林木数量计数器数值和其所对应的林木胸径均值。
[0024]
优选的,所述的步骤s1,包括如下步骤:
[0025]
双目相机标定采用halcon校准数据模型,采集过程中,上张校准图像采集完毕后,进行采集的图像方向的转动,然后采集下张校准图像直至获得全部校准图像集,单张校准图像采集过程中控制保持静止状态确保没有移动,避免模糊和同步的问题。
[0026]
优选的,所述的步骤s2,包括如下步骤:
[0027]
步骤(1),所述图像增强主要是对比度与亮度的调节,所述图像标注利用mvtec deep learning tool标注工具,标注方式主要为针对胸径及以下区域矩形框标注;
[0028]
步骤(2)中,所述模型网络为squeezenet,其相应算子为pretrained_dl_classifier_compact.hdl,调节的主要参数为batch-size(批处理量)、iterations(迭代次数)和learning_rate(学习率)三个参数。
[0029]
优选的,所述的步骤s3,包括如下步骤:
[0030]
步骤(1)、(2)、(3)中,所述参数、变换矩阵和林木胸径检测模型,需放置电脑固定位置进行读取;
[0031]
步骤(4)中,所读取图像为彩色图像;
[0032]
步骤(5)中,根据标注方式得到林木胸径矩形框,根据灰度值信息和两边界阈值设定得到检测区域。
[0033]
本发明步骤s3的步骤(7)中,所述对林木识别次数进行统计是为防止误识别,同一棵林木会进行十次拍摄,如果低于六次识别次数,那么此图像一般不是林木为主体。
[0034]
与现有技术相比,本发明所具有的有益效果是:
[0035]
1、通过双目相机采集人工林林木的图像,并通过深度学习和双目视觉技术得到树木胸径的尺寸,减少了人工工作量,同时提高了测量精度,避免了因测量误差而带来的损失;
[0036]
2、采用深度学习卷积神经网络模型,在保证精度不损失的同时,更加高效、快速实现目标检测任务,获取目标矩形框区域;
[0037]
3、通过区域灰度值获取进行树干胸径部分及以下区域两边界阈值的确定,最后对两个通道分割,再取并集,能够使得所要提取的边缘轮廓更加明显,增强图像的区分度,尽可能的减小其他背景环境因素对所测对象的影响;
[0038]
4、使用双目立体视觉技术进行测距,较单目视觉而言没有识别率的限制,因为从原理上无需先进行识别再进行测算,而是对目标识别物直接进行测量。双目立体视觉在精度上比单目视觉高,直接利用视差计算距离;
[0039]
5、在对林木图像进行胸径测量时,能够处理较大数据量,自动化获取统计结果,并且对于一些灌木、障碍物等非林木目标,其识别次数不足,不进行实际的统计和胸径测量,避免了误识别和误测量。
[0040]
所述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的所述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
[0041]
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的台件。
[0042]
图1为本发明所述一种基于halcon双目立体视觉的树木胸径测量方法的硬件示意图。
[0043]
图2为本发明所述一种基于halcon双目立体视觉的树木胸径测量方法的流程图。
具体实施方式
[0044]
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0045]
参见图1,本实施例给出一种基于halcon双目立体视觉的树木胸径测量方法的装置示意图,包括林木图像采集平台、林木图像处理平台和林木胸径测量显示平台。林木图像采集平台负责图像获取,与工控机相连;林木图像处理平台内嵌halcon处理软件,对采集的图像数据进行处理,以求解出采集图像的胸径数据;林木胸径测量显示平台主要负责对图像采集和图像处理进行实时监测,以进行人机交互和显示结果,其主要包含显示屏,与工控
机相连。
[0046]
本实施例给出的林木图像采集平台通过开发板程序设定能够实现红外传感器与双目相机组合使用从而实时图像采集,针对林木间隔设置采集时长,达到每棵林木采集指定张数图像,再通过halcon自动在工控机创建文件夹,输入所采集的林木图像,并做好命名区分。其中红外传感器1被林木感知触发后对工控机传输指令,此时双目相机进行图像拍摄,当红外传感器2被感知触发,双目相机结束拍摄,具体地,红外传感器1感知被测目标通过时,利用传输线将号传输给工控机,经过工控机处理后启动双目相机,当双目相机开始拍照采集照片并且开始编号存储,采集频率和时间间隔由可触摸显示屏和工控机进行控制,红外传感器2被感知触发后对工控机传输信号,由工控机进行处理后控制双目相机结束采集照片。
[0047]
本实施例给出的林木图像处理平台中工控机核心算法为基于halcon目标检测框架的squeezenet卷积神经网络模型,用于获取目标检测识别矩形框,从而得到林木胸径及以下树干位置区域,结合gray_features和threshold算子,获取标准林木胸径及一下区域边界轮廓。
[0048]
本实施例给出的林木胸径测量显示平台中显示屏主要用于结果显示和图像处理进行实时监测。
[0049]
参见图2,林木胸径测量与统计的实现主要由四个部分组成:双目相机标定、深度学习与模型训练、林木图像识别与采集、林木胸径测量与统计。
[0050]
具体的实施步骤为:
[0051]
1.双目相机标定;
[0052]
通过圆点型标定板对双目相机的内外参进行标定,基于halcon非线性模型句柄标定法得到标定参数。根据标定参数对图像进行校正,获得校正后的图像,采用block matching算法对校正图像进行立体匹配与视差图计算。
[0053]
在完整的相机成像模型中,由相机和镜头组成,在本发明中,采用面阵相机和普通镜头的组合。要完成林木图像胸径的测量,需要确定林木胸径三维几何位置与其在拍摄图像中对应的相关系,主要是世界坐标系与相机坐标系、相机坐标系与成像平面坐标系、成像平面坐标系与图像坐标系之间的相互转换,经过4个坐标系之间的三次变换,从而实现三维空间点从世界坐标系转换到图像坐标系中。由于镜头加工工艺等原因,采集的图像会产生不同程度的畸变。在实际应用中工业镜头的畸变主要为径向畸变,畸变会使成像平面坐标系的点(u,v)
t
发生改变:
[0054][0055]
其中k为镜头径向畸变系数,为由于镜头畸变在成像平面上偏移的投影点坐标。
[0056]
因此,径向畸变会使图像中目标点的实际坐标产生偏移,而空间图像定位算法的精度与坐标信息密切相关,需要对相机进行标定以获取其内部相机单个像元的宽、高,相机的焦距,镜头光心在成像平面上的垂直投影以及镜头畸变系数6个参数,并对图像进行畸变校正。
[0057]
(1)选择160
×
160mm的圆点型标定板进行相机标定,其上圆的直径为10mm,圆心距
为20mm,左上角黑色三角形为其方向标记。通过halcon标定助手窗口,根据相机参数,设定摄像机模型为面扫描类型,确定焦距和单个像元的宽、高3个参数;
[0058]
(2)在相机视野中不断变换标定板位姿并且使用左、右相机各采集16幅标定图像,通过标定板图像对相机进行标定,获取了相机内部参数。并采用反投影误差的方法对相机标定精度进行计算,得出左、右相机标定平均误差;
[0059]
(3)通过gen_radial_distortion_map算子建立有、无畸变时相机内参映射关系,并通过block matching算法进行立体匹配与视差图计算,校正图像畸变,提高目标点空间定位的精度。
[0060]
2.林木图像识别与采集;
[0061]
红外传感器1信号线与开发板对应引脚连接,给出红外判断信号;开发板利用usb数据线与工控机连接,给工控机发送逻辑判断信号,判断是否保存图像;若上述判断为是,则双目相机利用usb连接线连接至工控机上,将采集到的图像传输到工控机中,当红外传感器2给出红外判断信号,单棵林木图像采集完成,程序循环直至程序关闭;
[0062]
3.深度学习与模型训练;
[0063]
(1)数据集构建。首先对采集图像进行预处理,因所采集图像为双目图像,因此采用gen_rectangle算子进行左右图像沿竖直方向中轴线平均分割;分割后采用smooth类算子或mean类算子平滑图像,去除噪点,以保证图像在训练前去除背景干扰等情况;用invert_image、scale_image等算子进行图像增强,主要是图像翻转、对比度和亮度变化等增强方式,从而增加数据集图像数据并提升模型鲁棒性;最后进行图像标注,采用mvtec deep learning tool标注工具进行胸径部分矩形框标注,完成深度学习图像数据集的构建;
[0064]
(2)模型训练与优化。基于halcon深度学习网络框架进行树木目标检测训练,通过算子pretrained_dl_classifier_compact.hdl引入squeezenet网络模型,通过调节batch-size(批处理量)、iterations(迭代次数)和learning_rate(学习率)三个参数不断优化模型,通过确定平均精度均值、准确率和召回率确定最优训练模型;
[0065]
(3)最优模型导出。在训练中,指定最优模型best_dl_model_detection.hdl保存路径,以确保训练中最佳模型的应用。
[0066]
4.林木胸径测量与统计;
[0067]
(1)采用read_cam_par和read_pose算子,读取双目立体视觉标定获取到的左右相机的摄像机内部参数和右相机相对左相机的位姿,以确保下一步实时进行双目图像的校正;采用gen_binocular_rectification_map算子,获取非标准外极限图像和标准外极限图像之间的变换矩阵,即映射图像,根据变换矩阵对左右相机成像进行图像校正,从而获取校正好的左、右相机图像界面;采用read_dl_model算子,引入已训练好的林木胸径检测模型,并利用参数设置set_dl_model_param算子设置相应参数,以适应实时测量胸径的工作要求;
[0068]
(2)实时图像界面读取,当双目相机识别不进行图像保存时,程序进行林木胸径测量过程,采用list_files、tuple_regexp_select算子打开双目相机实时读取图像数据,其中图像读取类型可设置bmp、gif、jpg等多样类型;
[0069]
(3)设置相应识别时间,当识别时间内识别到林木图像,进行图像检测环节。首先
采用invert_image、scale_image等算子进行图像增强,以确保检测过程的鲁棒性,再根据变换矩阵对左、右相机分别进行图像校正;随后采用gray_features算子进行指定区域的灰度特征值的计算,从而获取读到的图像区域灰度值。
[0070]
(4)采用gen_dl_samples_from_images、preprocess_dl_samples算子对左右图像分别进行检测,根据threshold(b,regionb,l1,255),threshold(h,regionh,l2,255)算子得到灰度值信息,之后进行树干胸径部分及以下区域两边界阈值的确定l1:=valuer/1.3,l2:=valuer/1.7,最后对两个通道分割,再取并集,最终得到目标检测区域。
[0071]
(5)通过形态学处理方法,采用get_dict_tuple和gen_circle获取阈值分割后的林木胸径以下边界区域和边界左上与右上两目标点坐标位置。
[0072]
(6)采用open_framegrabber算子,在循环体中,从图像数据中依次读入林木图像,开始时选取头两帧图像;往后每次保留时间靠后的一张图像,读入新图像,覆盖时间靠前的一张图像;
[0073]
(7)胸径均值计算。采用tuple_mean和disp_message算子,并定义all:=[all,mean]对识别次数进行统计,识别次数符合规定设定要求,进行林木胸径均值求取,否则视为识别无效,不进行胸径数值统计;
[0074]
(8)检测有效识别的林木,当目标林木在视野边缘消失且求取有效的胸径值时,相应的林木数量统计计数器加1;
[0075]
(9)采用open_file和fwrite_string算子进行excel表格导出统计数值,主要包括林木数量计数器数值和其所对应的林木胸径均值。
[0076]
与现有技术相比,本发明所具有的有益效果是:
[0077]
1、通过双目相机采集人工林林木的图像,并通过深度学习和双目视觉技术得到树木胸径的尺寸,减少了人工工作量,同时提高了测量精度,避免了因测量误差而带来的损失;
[0078]
2、采用深度学习卷积神经网络模型squeezenet,在保证精度不损失的同时,将原始alexnet模型大小压缩至原来的1/50,其参数比alexnet少50倍,能够更加高效、快速实现目标检测任务,获取目标矩形框区域;
[0079]
3、通过区域灰度值获取进行树干胸径部分及以下区域两边界阈值的确定,最后对两个通道分割,再取并集,能够使得所要提取的边缘轮廓更加明显,增强图像的区分度,尽可能的减小其他背景环境因素对所测对象的影响;
[0080]
4、使用双目立体视觉技术进行测距,较单目视觉而言没有识别率的限制,因为从原理上无需先进行识别再进行测算,而是对目标识别物直接进行测量。双目立体视觉在精度上比单目视觉高,直接利用视差计算距离;
[0081]
5、在对林木图像进行胸径测量时,能够处理较大数据量,自动化获取统计结果,并且对于一些灌木、障碍物等非林木目标,其识别次数不足,不进行实际的统计和胸径测量,避免了误识别和误测量。
[0082]
本实施例中,还提供一种计算机可读存储介质,其中,计算机可读存储介质存储一个或多个程序,一个或多个程序当被处理器执行时,实现所述的方法。
[0083]
本实施例中,还提供一种电子设备,其中,该电子设备包括:
[0084]
处理器;以及,
[0085]
被安排成存储计算机可执行指令的存储器,可执行指令在被执行时使处理器执行所述的方法。
[0086]
需要说明的是:
[0087]
本实施例所用的方法,可转化为可存储于计算机存储介质中的程序步骤及装置,通过被控制器调用执行的方式进行实施,其中所述装置应当被理解为计算机程序实现的功能模块。
[0088]
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0089]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0090]
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0091]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0092]
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0093]
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0094]
应该注意的是所述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献