基于HALCON的树木检测方法应用研究
2015-05-07马继东李淑红朱玉杰
马继东,李淑红,朱玉杰
(东北林业大学工程技术学院,哈尔滨150040)
机器视觉是一门涉及诸多领域的交叉学科,其主要工作方式是利用计算机来模仿人或完成与人类视觉智能相关的某些职能行为,计算机从需要处理的物体的图像中提取信息并且进行处理,再加以理解和分析,最终用于实际生活和生产中的检测和控制。机器视觉技术主要应用于工业探伤、精密测控、自动化生产线、邮政自动化、粮食选优、纤维一些操作等。机器视觉技术作为一种先进的检测技术,其主要的作业方法包括尺寸测量、缺陷检测、模式识别、图像融合、目标跟踪及三维重构等,本文主要运用到机器视觉尺寸测量的方法。
HALCON是由德国MVtec公司开发的一套完善的标准的机器视觉算法包软件,拥有应用广泛的机器视觉技术集成开发环境。它节约了产品成本,缩短了软件开发周期。在欧洲大多数国家以及日本的机器视觉使用者中被称为最佳效能的Machine Vision软件。
由于HALCON源自学术界,其有别于市面其他的商用软件包。由一千多个各自独立的功能强大的函数,以及底层的数据管理核心构成。其包含了各种各样的基本的几何以及影像计算识别功能,例如滤波,校正,数学转换色彩以及几何,形态学计算分析,分类辨识,形状搜寻等等。由于这些功能绝大部分并非针对特定工作设计的,因此只要需要图像处理的地方,就可以用HALCON强大的计算分析判断能力来完成工作。应用范围几乎没有任何限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测。
1 传统树木检测方法的缺陷
基本测树因子就是树木直接测定因子以及派生的因子,其中包括树干的直径、树高等因子。这些因子均为直接测定因子。还有一些测树因子,例如形数、树木材积、树干的横断面积等因子就是在直接测定因子的基础上根据计算公式和数据处理派生的。
对于树木的胸径等测定直径的工具常用的有轮尺、直径卷尺和钩尺等。树高一般使用树高器进行测定,常用的有布鲁莱斯测高器和超声波测高器等。在传统的尺寸测量方法中,被检测的物体的外形通常情况下都是具有某种几何形状的,典型的方法是利用尺子在被测工件上针对某个参数进行多次测量后取得的平均值。这种测量方式虽然具有简便和成本低的优点,但是其测量精度低,测试速度缓慢,数据无法及时得到处理;同时对于树高的测量来说,还存在着精度较差等缺点。
2 实验过程
(1)图像预处理。由于被测树木周围有许多背景与目标树木的颜色相近,不利于经过在HALCON测量时直接对目标树木进行选定和测量,故使用图像处理软件将拍摄图像进行处理。处理中将背景淡化,将被测树木颜色加深,这样识别时更加简便。处理后的图像如图1所示。
图1 预处理后的被测树Fig.1 The measured tree after pretreatment
(2)标尺测定。由于机器视觉测量所得到的被测物体的尺寸单位为像素,而在不同距离和角度拍摄的照片的像素是不一样的,故拍摄时将一个已知尺寸的物体放置于被测物体附近,称之为标尺,将标尺物体的实际尺寸测量出来,然后运用软件将其像素尺寸测量出来通过换算得出比例尺。这次使用一个篮球作为标尺物,标准篮球直径为24.6cm。经机器视觉软件测量篮球的像素直径为65.0cm,经过简单计算其比例尺为65∶24.6=1∶0.38。
(3)阈值的处理。测量尺寸之前主要使用阈值算子来获取功能获取图上树木的轮廓和剔除不必要的背景为下一步的测量创造条件。过程如下:
由于目标图像尺寸比较大,不利于进行测量,所以先对其进行缩小,处理缩小到一个400×500(单位:像素)的利于操作的窗口中。缩小只是视觉上缩小并没有影响被测图片中被测物体尺寸。
dev_set_color(‘black’)
将窗口颜色设置为黑色,为了下一步选取目标树木,将选取部分与其他部分的颜色区分。
threshold(Image,Region,30,100)
在图片中选取灰度值为30到100的部分,最开始时对图片进行了处理被测部分相比背景图片颜色深很多,所以灰度值选取比较低的部分。阈值处理后的图像如图2所示。
图2 阈值处理后的树木图片Fig.2 The tree image after threshold processing
图3 树木轮廓图片Fig.3 The outline of the tree
由于经过阈值处理之后的图像还有很多不需要的图像需要将其剔除掉,其中目标树木的面积比较大,而其余的不必要的物体的面积比较小,利用面积的不同再次剔除出那些面积较小的物体以得到所需要的目标树木轮廓。最后处理完的树木轮廓如图3所示。
(4)树高的测量。获取树木的轮廓图片以后,首先进行树高的测量。
get_region_contour(SelectedRegions,Rows,Columns)
将树木轮廓上的点识别出来用横(Columns)纵(Rows)坐标表示,并记录各点的横纵坐标。
disp_line(WindowID,RowLine1,ColLine1,RowLine2,ColLine2)
在测量时,选用的方法是测量线和点的距离,所以将树根部用一条直线标注出来,选择坐标为(2670,500)和(2670,1500)的两点画一条直线,直线颜色为红色。
将树梢的点标记出来,标记方法为获取该点的的横纵坐标暨Rows[0]、Columns[0](纵坐标为由于树梢是整个轮廓图片上最高的一点所以为0号点)。通过其横纵坐标各加减20个单位长度画出两条线段以标记该点。如图4所示。
图4 地面与树梢的标记Fig.4 The ground and the top mark
distance_pl(Rows[0],Columns[0],Row-Line1,ColLine1,RowLine2,ColLine2,Distance1)
测量树梢点和地面的距离暨树高,记录在Distance1,其结果为2472.0;根据比例尺换算其真是树高为2472×0.38=939.36cm,所以测量出树高大约为9.39m。
(5)直径的测量。获取树木的轮廓图片以后,再进行树木直径的测量。
经过对已标记的树木轮廓点的筛选,从编号15200到15600点为树干右侧的各点,从编号16000到17000为树干左侧各点,因为纵坐标相同的点在树木干部的高度是一样的,其距离就是在该高度时树木的直径。选出树干左右两边纵坐标相同的点。
利用与标记树梢点同样的方法标记出树干左右两侧纵坐标相同的点。
distance_pp(Rows[i],Columns[i],Rows[u],Columns[u],Distance2)
测量两点距离记录在Distance2中。
3 实验结果
最后将所测直径高度位置与树根位置的差和该位置的直径数值分别两两一组记录下来,得到最后的结果数表,见表1。
表1 测试结果 像素Tab.1 The measurement results(unit:pixel)
经过比例尺换算得到树木直径实际单位下数值,见表2。
表2 测试结果 cmTab.2 The testing results(unit:cm)
为了保证测量的准确性,使用轮尺对树木的直径进行了测量,测量结果见表3。
表3 树木直径传统测量结果 cmTab.3 The tree diameter measurement results by traditional method(unit:cm)
经过对比平均直径测量相对误差为0.18%。
4 结论
通过对HALCON软件对树木树高和直径等数值的测量研究,可以得出以下的结论:
(1)利用机器视觉技术特别是HALCON软件的使用,是可以完成树木基本测树因子的测量的。
(2)机器视觉测量出的结果与传统测量方法测量的结果相比,误差较小相对误差为0.18%,是可以接受的。
(3)并且避免了人工测量的不准确和复杂性,避免了人工测量造成的很多不准确的因素。
(4)使用机器视觉测量后可以更快更准的测量出所需要测量的各项数值,并且测量出的数值可以直接进行数据处理,减少了录入等步骤,可以提高作业效率。
[1]刘 敏,何高波.树木测量的作业流程和方法研究[J].矿山测量,2009,6(3):50-54.
[2]席 斌,钱 峰.机器视觉测量系统在工业在线检测中的应用[J].计算机信息,2005,18(11):75-76.
[3]王 剑.果树枝干三维重建关键技术研究[D].北京:中国农业科学院,2009.
[4]郝慧鹏,田 跃,张 南,等.基于HALCON的双目视觉株高测量[J].电子技术与软件工程,2013(22):108-109.
[5]杨 磊,李文彬,阚江明.基于数学形态学的立木树枝信息提取方法[J].森林工程,2008,24(3):1-2.
[6]孙仁山.立木枝干机器视觉识别技术研究[D].北京:北京林业大学,2006.