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

基于图像处理的道路绿化带自动浇灌方法及系统与流程

2022-11-23 14:12:00 来源:中国专利 TAG:


1.本发明涉及绿化带浇灌技术领域,具体地,涉及一种基于图像处理的道路绿化带自动浇灌方法及系统。


背景技术:

2.城市道路边经常能看到洒水车上工人在为绿化带浇水,作为道路绿化带茁壮成长、城市绿色发展的保障,浇灌车被广泛运用于城市各种道路绿化的浇灌工作。在查阅资料后,发现尤其新种下的幼苗在前三年需要持续高频率的浇灌,且目前完成这项工作主要由工人手持喷管跟随洒水车作业,绿化人员的工作单一且重复。在自动化高度发达的今天,这项工作有可能交给机器来自动完成,这样不仅能优化绿化工人的工作流程,更能减轻他们的工作压力;另一方面,更能够通过科学地水资源分配节省资源,解决现实社会需求。
3.参照图2所示,为城市道路绿化设计标准示意图,经过实地观察与向有关部门的调研,发现道路绿化带中以大段密集的矮小灌木与单株隔离空间大约为6米的较高乔木为主,而浇灌车的主要浇灌对象是矮小的、新种植的灌木或乔木幼苗,种类集中且颜色、形态相似。
4.而随着信号处理理论与计算机的出现,人们可以用摄像头获取环境图像并将其转换成数字信号,用计算机实现对视觉信息处理的全过程。通过设置参数和训练模型,计算机能够很好地对具有统一特点的事物进行识别和区分。因此,我们开始探索设计一台自动化的浇灌车,通过摄像头的图像实时获取、上下位机串口通讯,驱动浇灌臂定位浇水来实现道路绿化带浇灌的自动化。
5.目前调查文献得知,图像识别方面,山东农业大学学生设计了烟草图象识别的模型
1.,但其主要目的是对于静态固定的区域进行烟草浇灌,与我们道路绿化浇灌车的概念不同,但这证明了使用图像识别技术以及浇灌车使用的可行性,我们可以对这一方法加以改进,重庆科技大学也有关于道路绿植浇灌自动化的项目
2.,所以我们可以将图像识别的重点放在根据绿颜色像素点的处理来实现绿化带植物的识别。国外也有相关植物识别研究,如《detecting trees in street images via deep learning with attention module》
6.论文是使用深度学习网络完成对道路边树的识别,其中实验使用光强稳定器也给本文研究对于光强影响提供了一定的启示;另一篇《an assessment of water requirements,water sources and irrigation technology options for malawi's green belt irrigation(gbi)programme》对绿化带灌溉所需用水进行了分析。
6.依据烟草识别的报告
1.,以及在2019年,我国绿化部门根据《标准制修订计划文件》(建标标便〔2019〕21号),组织中国城市规划设计研究院等单位起草的行业标准《城市道路绿化设计标准(征求意见稿)》的反馈意见:道路绿化应以乔木为主,乔木、灌木、地被植物相结合的方式种植,密集种植的绿化带植物高度一般不会超过6米,枝叶的颜色特征是能够轻松获取的,而目前道路侧面绿化带土壤厚度以灌木为主,且高度必须小于60cm,土壤厚度(绿化带底高度)大于50cm。因此我们发现通过图像识别道路绿化带植物是一种可行方法。
此外,目前常见的绿化带浇灌方式是人工漫灌,这不仅浪费人力,增加灌溉成本,也降低了作业效率和水资源利用率。鉴于现在农田中都主要使用微灌、喷灌、滴灌的节约浇灌方式,经过实验,我们认为喷灌相对可行性在浇灌车上最高。但目前在田地中使用喷灌等装置在调查后发现仍存在一些问题:固定式安装需要大量的设备才能实现覆盖,并且缺乏灵活性;而在绿化带中增设规模庞大的浇灌管道,其中的建设资金与维护资金缺乏可行性。
7.综上,我们需要建立一个识别能力强、浇灌方式有效且适配于传统浇灌车的灵活绿化带浇灌装置。
8.[1]范连祥.基于机器视觉技术的烟草智能浇水机的研制[d].山东农业大学,2017(3);
[0009]
[2]王增娣,薛林.基于液压机械手的绿化带自动浇灌装置设计[j].机械工程与自动化,2012(6):83-85;
[0010]
[3]黄彦铭,宁媛.基于云平台的智能浇水系统设计[j].智能计算机与应用,2020(10):189-192;
[0011]
[4]新浪爱问共享资料.质心计算质点计算公式[db/ol]https://wenku.so.com/d/6ca2e7ae2298a0e1f7657e607c6fe21b.2021;
[0012]
[5]王双,韩冰冰.烟草移栽机浇水系统的设计[j].信阳农业高等专科学校学报,2013(2):104-105;
[0013]
[6]q.xie,d.li,z.yu,j.zhou and j.wang,"detecting trees in street images via deep learning with attention module,"in ieee transactions on instrumentation and measurement,vol.69,no.8,pp.5395-5406,aug.2020,doi:10.1109/tim.2019.2958580.
[0014]
公开号为cn110989601a的发明专利,公开了一种基于图像识别的道路绿化带修剪机,在现有修剪机基础上,在支撑立柱的下端设有能够驱动支撑立柱左右移动的电动横移结构,底板下段设有右车侧靠板右侧且处于右车侧靠板右侧的部分伸出承载车体,底板伸出承载车体的部分设有下寻线摄像头,电动修剪头上设有绿化带摄像头,而设置一个控制器分别与电动横移结构、下寻线摄像头和绿化带摄像头电性连接且分别接收下寻线摄像头和绿化带摄像头的视频信号,控制器以图像识别算法分别识别出两个视频信号中的道路白线和绿化带障碍物且控制电动横移结构,以横向调节电动修剪头。
[0015]
公开号为cn105766560a的发明专利,公开了一种具有智能识别功能的洒水车,包括洒水车和设置在洒水车上的智能控制系统,所述智能控制系统包括红外传感器、超声波传感器、滤波电路、放大电路、模数转换电路、图像采集设备、dsp和开关控制电路,所述红外传感器和超声波传感器检测到的信号依次经滤波电路、放大电路和模数转换电路传输至dsp,所述图像采集设备采集的信息传输至dsp,所述dsp的输出指令通过开关控制电路控制洒水车出水口处的开关。


技术实现要素:

[0016]
针对现有技术中的缺陷,本发明提供一种基于图像处理的道路绿化带自动浇灌方法及系统。
[0017]
根据本发明提供的一种基于图像处理的道路绿化带自动浇灌方法及系统,所述方
案如下:
[0018]
第一方面,提供了一种基于图像处理的道路绿化带自动浇灌方法,所述方法包括:
[0019]
图像采集步骤:由浇灌车上的拍摄图像,并由上位机截取摄像头画面;
[0020]
图像处理步骤:提取画面中绿化带植株颜色特征,并依次进行图像二值化、高斯模糊降噪处理;
[0021]
目标区域识别步骤:对经过处理后的图像判断有无目标区域,若没有,返回图像采集步骤,若有,则进入目标区域大小步骤;
[0022]
目标区域大小步骤:判断目标区域大小是否大于等于100000像素;
[0023]
执行步骤:目标区域大小判断完成后,通过高电频驱动浇灌车辆进行相应模式浇灌,由管理界面实时输出浇灌情况。
[0024]
优选地,所述目标区域大小步骤具体包括:判断目标区域大小是否大于等于100000像素;若大于,则获取目标区域质心位置,判定质心在图像分割的四块区域中的位置,灌溉车运行时需要对不同位置质心进行跟踪,然后进行上位机与下位机的通信。
[0025]
优选地,所述上位机与下位机的通信包括:将识别到的绿色图像质心区域分为四块,将摄像头分辨率设置为640*480,故据此质心所在区域可分为水平0~320,竖直240~480;水平0~320,竖直0~240;水平320~640,竖直240~480;水平320~640,竖直0~240这四种情况;
[0026]
定义四个函数,根据四种质心位置区间,上位机程序在循环结构中不断判断质心所处位置在a/b/c/d区域,向下位机发送四种不同的串口信号,再由下位机引脚输出驱动信号,经放大电路驱动浇灌车内的水泵与浇灌臂舵机,进行四种模式不同角度的转动。
[0027]
优选地,所述上位机对质心位置判断后由串口通讯驱动下位机,从而实现对绿植的主要所在区域进行定位的来回喷灌,在下位机程序横向来回浇灌的基础上增添纵向25度的来回浇灌;
[0028]
进行质心位置处于水平0~320,竖直0~240;水平320~640,竖直0~240两种情况的浇灌时,将纵轴角度最小值设置为水平向上30度。
[0029]
优选地,在上位机中加入绿植面积判断功能,当识别到的绿色像素点多于100000个时,舵机会进行对该角度范围多量喷灌,其中,底部舵机转动四次,水泵马达转速最高;
[0030]
反之,绿色像素点小于100000时,舵机则进行较少量喷灌,此时,底部舵机转动次数、水泵马达转速为多量情况的一半。
[0031]
优选地,所述图像处理步骤中提取画面中绿化带植株颜色特征,通过识别植物颜色,对绿化带进行浇灌,运用matplotlib库将图像中不同颜色区域的rgb值以及由其转换后的hsv值提取出来,并进行颜色直方图比较;
[0032]
得到所需要检测的三种颜色的合适hsv分度值范围后,通过在图像中找绿色像素点的方式设计算法,将除绿色像素点外的像素全部转化为黑色像素点;再由opencv库中的灰度化、二值化函数,将绿色像素点转化为白色像素点;
[0033]
再通过质心计算公式,将所有白色像素点的中心求取,即原先绿颜色所在的主要位置的中心。
[0034]
优选地,所述图像处理步骤中利用高斯模糊在python中的算法,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经
过加权平均后得到;
[0035]
高斯滤波模板计算公式:
[0036][0037]
其中,i表示像素模板横坐标;j表示像素模板纵坐标;g
ij
表示高斯模板;a表示1/2πσ(常数);σ表示高斯半径;e表示自然常数;u表示遵从正态分布的随机变量的均值;σ2表示μ变量的方差;
[0038]
在测试中,将公式中sigma1与sigma2设置值为1~10时,能够将面积较小的白色像素点与周围大面积的黑色部分相互交融,白色像素点的周围变得相对平滑,在高斯滤波模板数值的增大后,图像中原有的白色像素点就会彻底与周围黑色区域融合消失,从而将处理后二值化图像中的小型白色噪点去除;
[0039]
二维图像简化公式,其中sigma1=sigma2:
[0040][0041]
若在特定场地需要,只需更改高斯滤波模板公式中的sigma值。
[0042]
第二方面,提供了一种基于图像处理的道路绿化带自动浇灌系统,所述系统包括:总车体框架、车头、车身、车尾以及车底;
[0043]
所述总车体框架包括:铝合金框架和多个车轮;所述车头包括:上位机和下位机硬件;所述车身包括:水箱、水泵、广角摄像头、蓄电池以及nvidia板;所述车尾包括:舵机和浇水喷头;所述车底包括:多个车轮驱动电机;
[0044]
其中,在nvidia板上完成图像识别、测算深度的算法开发,并使用该板进行图像处理、上位机信号发射在内的相关操作。
[0045]
优选地,所述下位机硬件包括:
[0046]
电子调速器:控制车轮底盘电机转动;
[0047]
第一继电器:控制舵机;
[0048]
第二继电器:控制水泵;
[0049]
遥控接收板:控制行进;
[0050]
arduino单片机:作为下位机接收、驱动装置,控制驱动浇灌臂舵机。
[0051]
优选地,所述舵机设置为两个,全部选用工作扭矩为13kg
·
cm的mg995金属齿轮数字舵机;
[0052]
所述两个mg995数字舵机,与水管、浇水喷头和支撑结构组成双自由度浇灌臂,安装在车尾一侧。
[0053]
与现有技术相比,本发明具有如下的有益效果:
[0054]
1、本发明将图像识别和传统浇灌车结合,实现了自动化的道路植物浇灌,并根据绿植种植情况进行精准浇灌;
[0055]
2、实时监测自身一侧绿化带中的植物所在区域,并且通过双自由度浇灌臂,实现对不同尺寸绿化带内植物的定向定量的精确浇灌,达到浇灌自动化、节约人力物力的需求;
[0056]
3、浇灌车基于颜色识别,自主开发识别算法程序,能够实现快速准确的植物定位;
[0057]
4、当浇灌车在马路上行驶时,车上的检测系统会自动识别路边的绿化带,发现绿
化带后,车上浇灌系统能自动启动,及时对绿化带进行喷水浇灌;无绿化带的区域,车子会快速经过,从而大大提高了浇灌的效率。
附图说明
[0058]
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0059]
图1为整体程序流程图;
[0060]
图2为城市道路绿化设计标准示意图;
[0061]
图3为上下位机电路接线原理图;
[0062]
图4为浇灌车结构和工作原理示意图;
[0063]
图5为3d建模水箱;
[0064]
图6为多颜色识别实现效果图;
[0065]
图7为二值化图;
[0066]
图8为质心计算示意图;
[0067]
图9为质心计算示意图;
[0068]
图10为质心位置变化效果图;
[0069]
图11为摄像头获取示意图;
[0070]
图12为上下位机通讯主要代码;
[0071]
图13为摄像头获取图像像素分割区域;
[0072]
图14为分区浇灌示意图;
[0073]
图15为质心、状态输出参数;
[0074]
图16为图像二值化以及质心计算主要代码;
[0075]
图17为舵机多角度喷灌程序实现代码;
[0076]
图18为高斯模糊效果图;
[0077]
图19为浇灌时侧视图。
具体实施方式
[0078]
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
[0079]
本发明实施例提供了一种基于图像处理的道路绿化带自动浇灌方法,参照图1所示,该方法具体包括如下步骤:
[0080]
图像采集步骤:由浇灌车上的拍摄图像,并由上位机截取摄像头画面;
[0081]
图像处理步骤:提取画面中绿化带植株颜色特征,并依次进行图像二值化、高斯模糊降噪处理;
[0082]
目标区域识别步骤:对经过处理后的图像判断有无目标区域,若没有,返回图像采集步骤,若有,则进入目标区域大小步骤;
[0083]
目标区域大小步骤:判断目标区域大小是否大于等于100000像素;
[0084]
执行步骤:目标区域大小判断完成后,通过高电频驱动浇灌车辆进行相应模式浇灌,由管理界面实时输出浇灌情况。
[0085]
其中,目标区域大小步骤具体包括:判断目标区域大小是否大于等于100000像素;若大于,则获取目标区域质心位置,判定质心在图像分割的四块区域中的位置,灌溉车运行时需要对不同位置质心进行跟踪,然后进行上位机与下位机的通信。
[0086]
上位机与下位机的通信包括:将识别到的绿色图像质心区域分为四块,将摄像头分辨率设置为640*480,故据此质心所在区域可分为水平0~320,竖直240~480;水平0~320,竖直0~240;水平320~640,竖直240~480;水平320~640,竖直0~240这四种情况;
[0087]
定义四个函数,根据四种质心位置区间,上位机程序在循环结构中不断判断质心所处位置在a/b/c/d区域,向下位机发送四种不同的串口信号,再由下位机引脚输出驱动信号,经放大电路驱动浇灌车内的水泵与浇灌臂舵机,进行四种模式不同角度的转动。
[0088]
上位机对质心位置判断后由串口通讯驱动下位机,从而实现对绿植的主要所在区域进行定位的来回喷灌,在下位机程序横向来回浇灌的基础上增添纵向25度的来回浇灌;进行质心位置处于水平0~320,竖直0~240;水平320~640,竖直0~240两种情况的浇灌时,将纵轴角度最小值设置为水平向上30度。
[0089]
在上位机中加入绿植面积判断功能,当识别到的绿色像素点多于100000个时,舵机会进行对该角度范围多量喷灌,其中,底部舵机转动四次,水泵马达转速最高;反之,绿色像素点小于100000时,舵机则进行较少量喷灌,此时,底部舵机转动次数、水泵马达转速为多量情况的一半。
[0090]
具体地,图像处理步骤中提取画面中绿化带植株颜色特征,通过识别植物颜色,对绿化带进行浇灌,运用matplotlib库将图像中不同颜色区域的rgb值以及由其转换后的hsv值提取出来,并进行颜色直方图比较;得到所需要检测的三种颜色的合适hsv分度值范围后,通过在图像中找绿色像素点的方式设计算法,将除绿色像素点外的像素全部转化为黑色像素点;再由opencv库中的灰度化、二值化函数,将绿色像素点转化为白色像素点;再通过质心计算公式,将所有白色像素点的中心求取,即原先绿颜色所在的主要位置的中心。
[0091]
图像处理步骤中利用高斯模糊在python中的算法,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到;
[0092]
高斯滤波模板计算公式:
[0093][0094]
其中,i表示像素模板横坐标;j表示像素模板纵坐标;g
ij
表示高斯模板;a表示1/2πσ(常数);σ表示高斯半径;e表示自然常数;u表示遵从正态分布的随机变量的均值;σ2表示μ变量的方差。
[0095]
在测试中,将公式中sigma1与sigma2设置值为1~10时,能够将面积较小的白色像素点与周围大面积的黑色部分相互交融,白色像素点的周围变得相对平滑,在高斯滤波模板数值的增大后,图像中原有的白色像素点就会彻底与周围黑色区域融合消失,从而将处理后二值化图像中的小型白色噪点去除;
[0096]
二维图像简化公式,其中sigma1=sigma2:
[0097][0098]
若在特定场地需要,只需更改高斯滤波模板公式中的sigma值。
[0099]
本发明实施例还提供了一种基于图像处理的道路绿化带自动浇灌系统,其特征在于,包括:总车体框架、车头、车身、车尾以及车底;总车体框架包括:铝合金框架和多个车轮;所述车头包括:上位机和下位机硬件;所述车身包括:水箱、水泵、广角摄像头、蓄电池以及nvidia板;所述车尾包括:舵机和浇水喷头;所述车底包括:多个车轮驱动电机。
[0100]
其中,在nvidia板上完成图像识别、测算深度的算法开发,并使用该板进行图像处理、上位机信号发射在内的相关操作。
[0101]
下位机硬件包括:电子调速器:控制车轮底盘电机转动;第一继电器:控制舵机;第二继电器:控制水泵;遥控接收板:控制行进;arduino单片机:作为下位机接收、驱动装置,控制驱动浇灌臂舵机。
[0102]
舵机设置为两个,全部选用工作扭矩为13kg
·
cm的mg995金属齿轮数字舵机;两个mg995数字舵机,与水管、浇水喷头和支撑结构组成双自由度浇灌臂,安装在车尾一侧。
[0103]
接下来,对本发明结合研发过程进行更为具体的说明。
[0104]
本发明实施例提供的一种基于图像处理的道路绿化带自动浇灌方法及系统,采用usb摄像头实时获取浇灌车右下方道路绿化带的场景图像,并在摄像头上方安装光照稳定器,有效减缓环境光对图像处理的干扰,然后分别在个人计算机和英伟达jeson控制板(上位机)两个平台对场景进行逐帧图像分析,通过对植物绿颜色像素点的获取,以及对物体颜色识别与质心(绿植所在的主要位置)计算,得出绿色植物区域的质心,并将图像分为四个区域,通过上下位机串行通信驱动下位机,经放大电路驱动水泵与浇灌臂舵机进行不同角度四种模式的浇灌,提升灌溉效率,从而实现自动精确的绿化带维护灌溉。本发明具体如下:
[0105]
一、模块实现:
[0106]
(1)视觉部分设计:根据项目目标和实际使用情况考虑,使用一个90
°
摄像头,设置在模型车一侧。
[0107]
(2)软件设计:首先设计浇灌车浇水末端运作时的算法设计图,再经过测试对上下位机通讯分别设计图像识别、通讯以及下位机的程序进行编写和调整。
[0108]
(3)浇水末端设计:应用两个舵机,构成高自由度浇灌机械臂,可实现横向和纵向分别180度范围内的定向浇灌。
[0109]
(4)组装:将浇水末端与搭载摄像头设置于同一方向、水平面,确保精准识别浇灌。将水箱、电路下位机等置于车身内部,适应各种道路运作场景,安全且美观。
[0110]
(5)参照图3所示,为上下位机电路接线原理图,下位机硬件材料如下列表1所示:
[0111]
表1
[0112]
名称功能电子调速器控制车轮底盘电机转动继电器1控制舵机继电器2控制水泵遥控接收板控制行进
arduino单片机控制驱动浇灌臂舵机
[0113]
(6)初步模型
[0114]
nvidia板:具有速度快、体积小的优点,我们将在该板上完成图像识别、测算深度等的算法开发,并使用该板进行图像处理、上位机信号发射等相关操作。浇水车相关硬件如下:
[0115]
本技术所制的浇灌车模型的浇灌臂全部选用工作扭矩为13kg
·
cm的mg995金属齿轮数字舵机。
[0116]
数字舵从根本颠覆了舵机的控制系统体系,相对于传统模拟舵机,数字舵机有两个优势:
[0117]
1、因为微处理器的关系,数字舵机可以在将动力脉冲发送到舵机达之前,对输入的信号根据设定的参数进行处理。这意味着动力脉冲的宽度,就是说激励马达的动力,可以根据微处理器的程序运算而调整,以适应不同的功能要求,并优化舵机的性能。
[0118]
2、数字舵机以高得多的频率向马达发送动力脉冲。舵机马达以更高的频率响应发射机的信号,而且“无反应区”变小;反应变得更快;加速和减速时也更迅速、更柔和;数字舵机提供更高的精度和更好的固定力量。此外还有防抖动,响应速度快的优点。
[0119]
参照图4所示,为浇灌车结构和工作原理示意图,车辆结构材料列表如下表2:
[0120]
表2车辆结构材料列表
[0121]
车辆组成所用器材总车体框架铝合金框架;车轮*4车头arduino mega 2560开发板车身水箱水泵;90度广角摄像头;蓄电池;nvidia板车尾mg995舵机*2;浇水喷头车底车轮驱动电机*2
[0122]
车辆头部模型设计:
[0123]
将一块arduino mega 2560开发板安装于车辆头部位置,作为下位机接收、驱动装置。为完成更安全更稳定的浇灌,在车头一侧壁上安装了两块继电器,分别驱动双舵机运作以及水泵马达转动,第一继电器可以控制上下舵机的转动,第二继电器可以控制水泵。
[0124]
车身模型设计:
[0125]
将车身分为三块区域,分别为英伟达板及其显示器模块、水箱水泵模块以及摄像头模块。三者位置为前、中、后,可以确保摄像头与浇灌臂处于相对较近距离,保证识别准确同步。在模型的制作中主要使用的方式是三维建模以及3d打印,材质坚固、造型美观,参照图5所示。
[0126]
车尾浇灌臂设计:
[0127]
使用两个mg995数字舵机,与水管、喷头和支撑结构组成双自由度浇灌臂,安装在车尾一侧,充分利用双舵机的优势,使舵机能进行多维运动,覆盖面积较广。
[0128]
运动系统模型设计:
[0129]
考虑到车辆须在城市道路上行走,我们决定采用适宜城市道路的工作环境的轮胎运动。
[0130]
二、程序实现:
[0131]
将程序分为上位机与下位机两块,通过串口通讯以实现实时绿植图像获取与定位浇灌的同步,具体流程参照图1所示。
[0132]
1、识别判断机制设计——颜色
[0133]
初步程序考虑将绿化带边界识别出来,在相应区域内进行范围灌溉。但在实际实现过程中,发现灌溉时由于绿化带的不同宽度以及其中铺设的井盖、排水断点等情况会造成大量水资源的浪费,进而由于绿化带植物的特点在于颜色多样,且彩色为辅绿色红色为主,所以为了适应这一特点,将程序上位机图像识别算法设计为:通过识别植物颜色,对绿化带进行浇灌。
[0134]
由于是对绿化带的定位浇灌,所以将上位机图像识别算法的核心定位在对其特点——绿颜色的判断。为实现这一点,运用matplotl ib库将图像中不同颜色区域的rgb值以及由其转换后的hsv值提取出来,并进行颜色直方图比较,发现相较于rgb的颜色空间,hsv颜色空间得益于其三个参数:色相(hue)、饱和度(saturation)、明度(value)之间较为独立而更占优势。而在环境光干扰大的实际场景中,rgb颜色空间的三个分量都会随之相应改变,并不适合运用于图像处理,相反,hsv颜色空间中只有一个参数“hue”与颜色有关,且基本不受阴影或过高亮度的影响,还能够对色彩进行一定幅度上的纠偏。所以,对于感光元件来说,hsv相较rgb更能还原图像本来的颜色,所以选择利用hsv进行颜色提取,找到并实验测定了适合绿化带植物颜色识别的hsv分度值。hsv分度值对照表如下表3所示:
[0135]
表3 hsv分度值对照表
[0136][0137]
在测试得到所需要检测的三种颜色的合适hsv分度值范围后,通过在图像中找绿色像素点的方式设计算法,将除绿色像素点外的像素全部转化为黑色像素点;再由opencv库中的灰度化、二值化函数,将绿色像素点转化为白色像素点。这样的图形处理可以使复杂的图像变得简单准确,便于快速识别判断。再通过质心计算公式,将所有白色像素点的中心求取,即原先绿颜色所在的主要位置的中心。
[0138]
由于道路绿化带中的植物不仅仅是绿颜色的植物,经过向有关绿化部门的调研,发现红色与黄色在绿化带中也占一部分比例。为了扩大程序应用场景,在经过学习后将颜色分度值分为三个部分,分别识别上述三种颜色,同时使用了三种不同的区间(红色、黄色、绿色的hsv分度值),分别识别出颜色所在像素点后,令三个图像参数相加,得到的便是整合了三种颜色的二值化图,增加程序适应性。参照图6所示,多颜色识别实现效果图。
[0139]
为了更有效降低不同应用场景下环境光对于颜色提取的干扰,在摄像头区域增加了带有led灯条的光强稳定器。
[0140]
2、硬软件协调机制设计——位移延时
[0141]
考虑到摄像头获取图像的三个问题:1)实际场景中需要获得更加开阔的摄像头视野;2)光强稳定器的大小和浇灌臂转动范围之间存在有相互影响;3)图像处理判断、上下位机通讯大致需要2~3秒时间。所以选择将光强稳定器与摄像头安装在车头部分,减少上述因素带来的弊端。而因为车辆行进时摄像头与舵机浇灌臂是相对静止的特殊运动状态,安装在车头的摄像头获取的图像信息与舵机的理想浇灌范围不在同一区域,所以在程序中加入了位移延时的算法,根据摄像头与舵机浇灌臂形心之间的距离,车辆从摄像头采集植物图像到运行至植物正前方的时间为:
[0142]
t=s
·
v-1
[0143]
其中:参数t为车辆从摄像头采集植物图像到运行至植物正前方的时间;
[0144]
参数s为摄像头与舵机浇灌臂形心之间的距;
[0145]
v为车辆的平均运行速;
[0146]
3、图像处理流程:
[0147]
3.1、绿色提取:
[0148]
根据hsv红黄绿色分度值,将非此区域的颜色全部调整为黑色像素点。
[0149]
3.2、图像二值化过程:调用opencv库,将hsv三个分量的值做平均,得到合理的二值化图。参照图7所示,为二值化图。
[0150]
3.3、质心计算方法:
[0151]
如图8和9所示,建立坐标系,取任意两个白点a、b,坐标为(a,b),(c,d);求出中点
[0152]
4、位置跟踪:
[0153]
在图像处理完成后,灌溉车运行时需要设计程序对不同位置质心进行跟踪,根据该图像识别程序,已经实现了对绿植位置变化的跟踪,效果如图10所示。
[0154]
5、上下位机通讯与下位机程序:
[0155]
5.1、灌溉识别程序:
[0156]
参照图11所示,为实现对绿植的定位浇灌,将识别到的绿色图像质心区域分为四块,由于将摄像头分辨率设置为640*480,故据此质心所在区域可分为水平0~320,竖直240~480;水平0~320,竖直0~240;水平320~640,竖直240~480;水平320~640,竖直0~240这四种情况。并由此定义四个函数,根据四种质心位置区间,上位机程序在循环结构中不断判断质心所处位置在a/b/c/d区域,向下位机(arduino板)发送四种不同的串口信号,再由下位机引脚输出驱动信号,经放大电路驱动水泵与浇灌臂舵机进行四种模式不同角度的转动,从而实现自动准确的浇灌。
[0157]
5.2、与上下位机联调:
[0158]
参照图12所示,为上下位机通讯主要代码,经过实验,上位机对质心位置判断后可由串口通讯驱动下位机,从而实现对绿植的主要所在区域进行定位的来回喷灌,但仍然存在浇灌不到的区域,所以又在下位机程序横向来回浇灌的基础上增添了纵向25度的来回浇灌,充分利用双舵机的优势,覆盖面积扩大。在下位机程序的编写中,考虑到绿化带与道路之间有一定的隔断区域(花坛边沿),长度约10cm,而摄像头分辨率为640*480,所以进行质
心位置处于水平0~320,竖直0~240;水平320~640,竖直0~240两种情况的浇灌时,将纵轴角度最小值设置为水平向上30度,经过实验,水能够被喷灌到预定的区域,证明了其可行性,参照图13所示,为摄像头获取图像像素分割区域。参照表4所示舵机旋转情况:
[0159]
表4舵机旋转情况
[0160]
质心位置下舵机转向角度(水平)上舵机转向角度(竖直)画面左上(b)120-150度90-115度画面左下(a)120-150度30-55度画面右上(d)150-180度90-115度画面右下(c)150-180度30-55度
[0161]
初步将喷灌方式设置为不断执行围绕四个质心的循环,并且两舵机来回旋转角度具有一定比例关系。参照图14所示,设:竖直喷头倾斜角范围为θrad;舵机水平旋转角为αrad;覆盖整条绿化宽带,根据运行速度喷头倾斜角与旋转角来回需要时间相同,即δt相同。所以竖直喷头速度(v1)与水平舵机旋转速度(v2)应满足:
[0162]
v1:v2=θ:α
[0163]
在判断中由于图像有307200个像素点,区域较大,在后续进行高斯模糊的调整后仍可能存在较大的碎布条等绿色残存,在实际效果中发现其处理后所占区域较小,为了保证节约水资源这一设计理念能够在装置中体现,在上位机中加入了绿植面积判断功能,当识别到的绿色像素点多于100000个(总数为307200个)时,舵机会进行对该角度范围多量喷灌(底部舵机转动四次,水泵马达转速最高),反之,绿色像素点小于100000时,舵机则进行较少量喷灌(底部舵机转动次数、水泵马达转速为多量情况的一半)。这样的程序设计可以使浇灌方式更加多样、增加其灵活性的同时节约水资源,物尽其用。
[0164]
三、软件实现与测试:
[0165]
1、质心获取与测试:
[0166]
在运行上位机程序时,可以准确地获取质心位置并输出状态,发送控制字符串。参数如图15所示。
[0167]
下位单片机接收到信号后,开始运行编写的浇灌程序,按不同模式进行对质心周围区域的浇灌。
[0168]
2、二值化与质心计算实现:
[0169]
图像二值化以及质心计算主要代码参照图16所示,舵机多角度喷灌程序实现代码参照图17所示。
[0170]
四、迭代与结论:
[0171]
1、图像处理优化:
[0172]
在上位机程序的模拟、实际场地中测试时,发现程序中的特征色识别范围过高,如地面苔藓,绿化带一侧有大理石花纹的边框等,这些与绿化带浇灌无关的因素会干扰程序判别的准确度。
[0173]
而根据实地考察发现绿化带通常较为连贯浓密。所以为解决这一问题,我首先尝试使用了面积判断法。原理是上位机程序找出白色像素点的区域并判断像素点在其中的数量,如果数量小于给定值,则将像素点区域设置为黑色,以便于在判断时忽略干扰因素,但
在实际测试中发现效果并不是特别理想,在对于较大的噪点的去除有局限性。
[0174]
利用高斯模糊在python中的算法,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。这与把选中的图层整体模糊不同,而是可以达到利用动感模糊使图向左或右的模糊的效果。在测试中,将公式中s igma1与sigma2设置值为1~10时,可以将面积较小的小白点与周围大面积的黑色部分相互交融,小白点的周围变得较为平滑,所以我尝试将sigma值均改为49,在高斯滤波模板数值的增大后,图像中原有的小白点就会彻底与周围黑色区域融合消失,从而将处理后二值化图像中的小型白色噪点去除,避免了上述如大理石边框等情况对于质心坐标判断的影响的同时在灵活性和稳定性上也优于原使用的面积判断法,一定程度上增加了浇灌定位的精准度。
[0175]
程序效果图如下图18所示,原有的瓷砖上的白色噪点大部分都已被消除,质心准确地落在植物所在位置,图像也变得更为平滑,若在特定场地需要,只需更改高斯滤波模板公式中的sigma值即可。
[0176]
2、算法设计优化:
[0177]
在进行初步识别调试后,对算法的泛化性能进行了一定的提升。根据测试场景,测试得到喷灌最远有效距离为80cm,且以倾斜角为25
°
,并且喷头与竖直舵机臂始终保持垂直,喷头水流夹角为5
°
,相加得测试所用喷头覆盖倾斜角为30
°

[0178]
为了解决不同高度上自动喷灌问题,准备通过灵活调整伸缩臂长度l以控制喷灌覆盖范围,为此我们将算法进行修正,以下是算法的理论支撑:
[0179]
首先将模型抽象成几何图形,具体参照图19所示,可以发现,本模型在等比例缩小后满足∠bad=∠b=60
°
,则有ab=ad;
[0180]
而∠c=∠dac=30
°
,则有ad=dc,所以ab=dc=l;
[0181]
结论:
[0182]
在保证小车高度与绿化带平行且紧贴时,所需伸缩杆的长度l与实际绿化带宽度相等。
[0183]
3、图形用户界面设计:
[0184]
将优化后的图像识别算法进行测试后,为了符合道路浇灌的流程并使程序便于司机进行操作,整合应用了开发的图形用户管理界面。
[0185]
所运用的界面库为python中的tkinter库,自由度较高也使用方便。为了让司机能够实时看见所行驶绿化带中的植物,将opencv库中的图像实时获取和tkinter界面结合,使用cvtcolor函数将图片转化为rgb图像,再利用image库中的fromarray函数使图像可调整,从而可自由改变显示图像的大小为摄像头识别区域的640*480模式,最终使用update函数使图像实时更新于界面,驾驶人员可以准确判断所行驶区域是否需要浇灌。按钮设计在图像下方,关联了打包好的图像处理、上下位机通讯函数以及使程序更加人性化的label实时更新函数。在编写更新函数时,发现由于浇灌时程序仍未进入到循环中,会出现截面未响应,电脑系统报错的现象,而原先使用的算法代码是t ime库中的sleep函数,无法与tkinter界面很好的兼容,经过尝试,发现tk.after(“时间”)能够代替sleep,也不会影响界面显示。
[0186]
司机在需要浇水的位置按动界面上的“开始识别按钮”就可以轻松地进行图像识
别并完成浇灌。根据绿化带中实际存在的绿植位点和数量,将下位机程序调整完善。最后将上位机程序部署于浇灌车,实现上下位机通讯。
[0187]
4、模拟与实际场景测试:
[0188]
在室内的模拟测试中,搭建了一个1.3m
×
(3.8m 1.1m 3.8m)的浇灌车模拟场地,其中包括1.3m
×
3.8m
×
2长的双车道,1.1m横向的人行道以及一侧的道路绿化带,在绿化带之间有日常生活中常见的公交车站隔断、花坛间的间隔、阴井盖与不同颜色种类的绿化带植物。较真实地模拟了道路绿化带的场景。
[0189]
实验中,在不同光线环境下进行颜色识别对照,每一种光照情况对不同植株进行共10次的识别处理。发现led灯带的抗干扰效果佳,在较黑或强光环境下的识别准确度达到约90%。
[0190]
为检验高斯模糊的去除干扰物能力,在绿化带中分别摆放了一些不同尺寸体积较小的绿色卡片,并根据处理后绿色卡片的存在与否或剩余面积判断去除度。(参照下表5为抗光照干扰能力(前两列)以及抗绿色非植物物件干扰能力(后两列)的测试结果)。
[0191]
表5抗干扰能力测试结果
[0192][0193][0194]
5、更多场景下的运用:
[0195]
除了道路绿化带,在小区、医院等公共场所的绿化的维护也是必要的,可以设计更多适配的、搭载自动化浇水末端的可移动浇灌车。增加垂直浇灌臂,扩大覆盖面积,减少高度限制。
[0196]
本发明实施例提供了一种基于图像处理的道路绿化带自动浇灌方法及系统,将图像识别和传统浇灌车结合,实现了自动化的道路植物浇灌,并根据绿植种植情况进行精准浇灌,是城市建设中有较大实用前景的一个项目。浇灌车基于颜色识别,自主开发识别算法程序,能够实现快速准确的植物定位。
[0197]
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实
现方法的软件模块又可以是硬件部件内的结构。
[0198]
在本技术的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。
[0199]
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
再多了解一些

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

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

相关文献