枣园视觉导航路径提取软件的设计与实现

2018-06-07 02:47彭顺正李景彬
江苏农业科学 2018年10期
关键词:基准线枣园函数

彭顺正, 李景彬

(1.石河子大学信息科学与技术学院,新疆石河子 832000; 2.石河子大学机械电气工程学院,新疆石河子 832000)

视觉导航路径提取是果园间农业机器人自主导航研究核心内容。视觉导航系统主要由硬件控制机构和图像分析处理软件机构组成[1-4],逻辑层面上,图像分析处理软件结构主要是通过相关图像算法提取视觉导航路径的相关参数,而后将相关参数通过软件系统传输给硬件控制机构,硬件控制程序结构根据相关参数执行相应命令,最终实现农业机器人自主导航。

导航软件结构返回参数的准确性和可靠性直接影响整个导航系统的性能,这主要取决于算法优越性,然而路径提取的分析软件功能设计的合理性有助于获取一套实用性较强的视觉导航路径提取算法。路径提取分析软件的需求一般考虑目标区域分布规律、边缘特征点提取、边缘线拟合、基准线生成、基准线与人工拟合导航直线之间的偏差角、算法耗时等参数。

目前,国内外针对田间、果园、林间的环境复杂性设计了相关视觉导航算法[5-10]。为开展基于视觉技术的智能装备研发奠定基础,研究人员针对棉田收获时期的环境复杂性设计出一套采棉机视觉导航路径检测算法[11],根据温室环境复杂性提出一种移动机器人视觉导航路径提取算法[12],依据田间作物行特征设计了一种基于边缘扫描滤波的农机导航基准线提取算法[13],结合林间乔木环境特征设计了一套视觉导航路径提取算法[14],根据乔化果园环境特点制定了一套果园移动机器人视觉导航路径提取算法[15]。

以上研究方法均是根据特定环境特点定制出一套适应性强的路径提取算法。近年来,为了提高果品质量、稳产增产,提高果品产业经济效益,国内很多地方大力推广果园矮化密植种植模式,其中植保、中耕、收获环节都离不开机械化作业,但是,果园环境比较恶劣,作业时间长,对果农的身体健康不利,目前迫切需要实现机械装备智能化,以代替果农完成相应的机械化作业。然而针对矮化密植果园农业机器人自主导航的研究相对较少,加之与田间、林间、果园的环境有一定区别,与林间、果园、田间等研究的视觉导航路径提取算法无法完全适应,因此,针对矮化密果园设计一套针对性强的农业机器人自主导航路径提取算法具有实际意义。

本研究针对红枣矮化密植果园环境的复杂性,利用MFC和Opencv设计一套视觉导航路径提取分析软件,以便探讨出适合于矮化密植枣园的视觉导航路径提取算法。

1 系统软件设计

1.1 软件设计目标

枣园视觉导航路径提取软件的设计目标主要有下面几点:(1)通过滑动控件实时设置图像横向剖面线位置,并且能够实时绘制剖面线上各像素点的RGB分量曲线图,便于分析目标区域的像素分布规律,并计算相应RGB分量的相关统计参变量,最终确定图像处理方案。(2)具备图像颜色空间的转化、灰度化、滤波、目标图像分割、枣树骨架提取、边缘信息及拟合、基准线生成、人工拟合基准线、偏差角计算、算法耗时等功能。(3)软件使用Opencv实现图像处理算法,MFC负责设计界面外壳,使用Opencv窗口嵌入MFC技术将显示界面与Opencv窗口进行关联,界面上的图像能够接受鼠标消息并传递给Opencv函数处理,最终实现鼠标绘制人工拟合基准线。

1.2 系统功能需求分析及设计

软件功能设计需立足于需求分析,保证所设计功能没有冗余,力求达到简洁实用,是软件质量的根本要求。

读取图像和保存功能是系统的2个基本功能,枣园植保时期和收获时期的环境差异很大,路径提取算法也不同,软件开发将分2个阶段算法进行;视觉导航通常需要对目标像素分布规律作分析,为整个路径提取方法找到突破口,因此,软件设计基于绘制剖面线上RGB各分量的曲线图功能分析目标所在区域的分布规律,为后续目标和背景分割提供重要线索;综合对枣园植保时期和收获时期图像剖面线各分量像素曲线分析,设计了色差法分割、大津法分割及基于扫描行自适应分割方法;分割后的图像,通常伴随噪声,另外矮化密植枣园线性分布特性明显,根据视角规律,由近及远看作物行时,整体上呈现梯形分布(图1)。

根据图1-c可以看出,行边缘所围成的区域为1个梯形加1个矩形,图1-d行边缘围成1个梯形区域,基于这2种模式分别设计了“行间区域扫描去噪方法”和“梯形扫描去噪方法”;基于上述2种方法去噪后,在行边缘附近有少量的噪声,树干为纵向分布,且所在区域白色像素点分布稠密,易于和其他区域区分,根据这个特性,设计了灰度垂直投影方法去除树干边缘噪声,以提取树干骨架,但仍有部分相对较大闭合区域噪声无法去除,设计了小面积去噪方法;树干区域内部存在孔洞,为了填充孔洞,设计形态学处理功能;骨架提取后,找出行边缘临界点,需要对这些候补点群进行拟合,采用最小二乘法对直线进行拟合,路径提取需要对算法性能进行评估,系统主要考虑偏差角、耗时、拟合基准线方程和人工拟合直线方程系统采用模块化结构设计(图2)。

1.3 图像处理算法

本软件涉及多个图像处理算法,为节约篇幅,仅写出下列几个提出的核心算法。

1.3.2 行间扫描去噪方法 设Si和Ei分别为第j行起点和终点横坐标,起始扫描行S0=20,E0=M-S0-1,M为图像的长,由下往上逐行扫描图像。

①从每行起始点(Sj,j)开始扫描,若当前点(i,j)为白色像素点,将其置0,若当前点坐标为(Ej,j),跳转至下一行。

②若是当前行j=0,则终止扫描,否者转步骤③。

③若Sj+5=Ej-5,则Sj+1=Sj+1,Ej+1=Ej-1,j=j-1;否则j=j-1。

④根据更新后的Sj+1、Ej+1、j跳转步骤①。

1.3.3 梯形扫描去噪 设图像分辨率为M×N,利用灰度垂直投影方法求取图像y=20水平线以上部分区域的波谷点Pbattom(ic,0),计算波谷点左右两侧的点ls(ic-6,0),rs(ic+6,0)在直线x=ic的两侧,图像底边分别找出点le(20,N-1)和点re(M-20,N-1),将点ls和点le利用两点式方程求取去梯形左侧腰的一般方程ALx+Bly+Cl=0,同理,利用点rs、re求取梯形右侧腰的一般方程Arx+Bry+Cr=0;由上往下逐行扫描图像,点(i,j)为当前扫描位置,若满足Ali+Blj+Cl≥0,且Ali+Brj+Cr≥0,则将点(i,j)像素点置0(图3)。

2 系统功能的实现

本软件图像处理算法使用Opencv实现,界面使用MFC实现。软件参数显示界面使用Opencv窗口嵌入MFC技术,即是将Opencv活动窗口与MFC可视化界面的Pictcture控件绑定,首先使用Opencv的cvNameWindow函数创建1个活动窗口并设置窗口名称及外观属性参数,而后使用cvGetWindowHandle函数获取窗口句柄标志,并将获取的句柄传给1个HWND类型变量hWnd,使用GetDlgItem函数获取MFC可视化界面Picture控件的句柄指针,使用MFC中GetParent函数获取父窗口句柄,使用SetParent函数通过已获取的窗口句柄和Picture控件句柄绑定关联,实现界面窗口“一体化”,核心代码如下:

cv::namedWindow(‘show’,cv::WINDOW_NORMAL);//设置依附关系

HWND hWnd=(HWND)cvGetWindowHndle(‘show’);

HWND hParent =::GetParent(hWnd);//设置窗口和Picture控件关联

::SetParent(hWnd,GetDlgItem(IDC_PICSHOW)->m_hWnd);

::ShowWindow(hParent,SW_SHOW);//设置窗口属性

系统读取图像使用OpenCV中cvLoadImage函数,得到的图像类型为IplImage*,但是这种类型不便于算法处理,为此使用强制类型转化为Mat,在算法中可以更加方便灵活地运用矩阵运算高效率的处理图像,使用自定义函数SetImageSize(IplImage* img,int flag)将图像分辨率设置为230×168,使用cvSaveImage函数保存图像,访问像素点或为像素点赋值使用Mat.at()函数,原因是语法简单,效率高。软件使用到的绘图函数涉及cvLine函数,负责绘制直线,例如边缘线、基准线等。算法分为两大类,分别是枣园收获时期路径提取算法和植保时期路径提取算法。收获时期自定义算法主要核心函数简要:void ImagePreProcess(Mat& src,Mat& dst)函数功能是将图像灰度化并使实现基于行扫描的行自适应分割方法;void CenterPixelToZero(Mat& src,Mat& dst,int step=0)函数功能实现“行间去噪”功能,即是消除分割图像中枣树行间存在随机分布的噪声;void ScaningWind_LR(Mat& src,int step)函数功能是计算局部窗口的灰度垂直投影以实现树干骨架的提取,使用Opencv函数void cvMorphologyEx(const CvArr* src,CvArr* dst,CvArr* tmp,IplConvKernel* element,int operation,int iterations=1)实现形态学运算,目的是消除孤立点或填充孔洞;Void GetScatterPointSetPos(Mat&src_8u1c,Mat&dst_8u3c,intendScanPos,CArray&ptarrR,CArray&ptarrL,float&fit_k,float& fit_b)功能是提取树干与地面的交点,并采用最小二乘法对这些候补点用最小二乘法拟合及导航基准线提取。植保时期自定义算法函数主要有void ImageReverse(Mat&src)实现图像反转功能;void AutoTrangleDennoise(Mat& src,float ceff,int step,int&border_pt)实现“梯形扫描去噪”功能,void LabelSetting(Mat& src,int th=200)功能是“面积去噪”;void GetSumerTrendLine(Mat& src,int x_pos,Carray&LCandidatePt,Carray&RCandidatePt,float& LA,float& LB,float& RA,float& RB,CvPoint& lp,CvPoint& rp,int flag)功能是确定行边缘“趋势线”;void DrawSummerNavLine(Mat& src,int& x_pos,float &LA,float& LB,float& RA,float& RB,float& CA,float& CB)是绘制导航基准线。

3 各个时期路径提取流程图

系统视觉导航路径提取流程图如图4所示。

4 软件运行实例

打开系统,进入主界面菜单,用户可以根据需求进行相关操作。

例如需要分析图像分布,选中“RGB分布”按钮进入对话框向导,选择“加载图片”按钮,向左右打滑动条,选择当前“剖面线”的位置,最后“确认”,即可绘制当前位置剖面线及其分量分布图(图5);点击“路径提取”进入路径提取对话框,点击“读取图像”,获取边缘及路径提取图像(自动保存图像至工程文件夹中),用鼠标在图像上进行人工拟合基准线,点击“确定当前点”按钮,获取人工拟合基准线,绿色线条为人工拟合直线,紫色为算法提取基准线,右侧显示算法性能参数(图6)。图7是工程文件夹中保存路径提取结果图像,其中图7-a~图7-e为收获时期路径提取算法过程,分别为原图像、基于行扫描“自适应分割”、“行间去噪”、“灰度垂直投影法”提取树干骨架、路径提取结果;图7-f~图7-j、图7-k~图7-o为植保时期环境路径提取算法过程,图7-f~图7-j分别为原图像、大津法分割、“梯形扫描”去噪、“灰度垂直投影”提取树干骨架、路径提取结果;图7-k~图7-o分别为原图像、|R-G|色差法分割结果、“梯形扫描去噪”、路径提取结果。

5 结论

本系统界面简单友好,能够分析图像目标像素分布规律,检测枣园植保时期及收获时期视觉导航路径,系统采用模块化结构开发,各个子功能模块相对独立;系统拓展性好,后续可以根据实际需求添加相关功能模块,系统需要考虑枣园图像环境的变化情况改进和完善植保时期和收获时期路径提取算法功能模块,以增强算法健壮性和可靠性;该系统的研发可为类似行业自主导航作业提供参考。

参考文献:

[1]吴长雷,雷 勇,梁银丽. 移动机器人视觉导航系统的设计与实现[J]. 四川大学学报(自然科学版),2010,47(6):1289-1294.

[2]孙贤刚,伍锡如,党选举,等. 基于视觉检测的苹果采摘机器人系统设计与实现[J]. 农机化研究,201638(9):151-155,160.

[3]徐庆增,杨世凤,杨美艳. 采摘机械手离线轨迹智能优化——基于改进差分进化算法[J]. 农机化研究,2017,39(2):191-195.

[4]李碧青,朱 强,郑仕勇,等. 杂草自动识别除草机器人设计——基于嵌入式Web和ZigBee网关[J]. 农机化研究,2017,39(1):217-221.

[5]赵 颖,孙 群,陈兵旗,等. 基于机器视觉的非结构化道路导航路径检测方法[J]. 农业机械学报,2007,38(6):202-204.

[6]宋怀波,何东健,辛湘俊. 基于机器视觉的非结构化道路检测与障碍物识别方法[J]. 农业工程学报,2011,27(6):225-230.

[7]吴佳艺. 基于机器视觉的农林环境导航路径生成算法研究[D]. 杭州:浙江工业大学,2009.

[8]张方明. 田间路径识别算法和基于立体视觉的车辆自动导航方法研究[D]. 杭州:浙江大学,2006.

[9]张伟华. 基于视觉的农用轮式移动机器人导航路径识别[D]. 杨凌:西北农林科技大学,2009.

[10]王新忠,韩 旭,毛罕平,等. 基于最小二乘法的温室番茄垄间视觉导航路径检测[J]. 农业机械学报,2012,43(6):161-166.

[11]李景彬,陈兵旗,刘 阳,等. 采棉机视觉导航路线图像检测方法[J]. 农业工程学报,2013(11):11-19.

[12]高国琴,李 明. 基于K-means算法的温室移动机器人导航路径识别[J]. 农业工程学报,2014,30(7):25-33.

[13]何 洁,孟庆宽,张 漫,等. 基于边缘检测与扫描滤波的农机导航基准线提取方法[J]. 农业机械学报,2014(S1):265-270.

[14]吴佳艺,杨庆华,鲍官军,等. 基于机器视觉的林间导航路径生成算法[J]. 农业机械学报,2009,40(7):176-179.

[15]He B,Liu G,Ji Y,et al. Auto recognition of navigation path for harvest robot based on machine vision[M]//Computer and computing technologies in agriculture Ⅳ. Springer Berlin Heidelberg,2011:138-148.

猜你喜欢
基准线枣园函数
碳交易市场体系中的碳排放基准线:应用实践、研究进展与展望
低产枣园如何改造
二次函数
二次函数
函数备考精讲
山地枣园节水保墒措施
三种土壤改良剂对盐碱地冬枣园的影响
利用野生酸枣兴建大枣园技术