刘 辉,魏 莉
(安徽广播电视大学 信息与建筑工程学院,合肥 230022)
各类植物病害在农业生产中不可避免,导致农业减产和农产品质量下降,这对农民收入造成很大影响。面对植物病害,一些有经验的农业生产者及农业技术人员也要花费大量的工作和时间来处理,如检测、分析和喷洒农药等。而喷洒农药对人身体会产生一定的伤害,因此需要研究新的喷洒农药的方法。另外,目前大量的农村劳动力进城务工,这就使得农业劳动力人口大量减少,人力资源的可用性越来越少[1],寻找替代人工喷洒农药的方法显得尤为迫切,本文研究的喷药机器人技术是替代人工方法之一。
本文研究的喷药机器人结构主要是由伺服电机、潜水泵、喷雾器、喷嘴和浮动传感器等组成。喷药机器人采用无线传输的方式连接到工作人员的电脑和智能手机上,它的主要功能是:接收有关任务的指令和将实时视频流传输到工作人员的电脑上。本研究中,我们对喷药机器人采集到的图像利用MATLAB软件进行处理,具体做法是利用安装在喷药机器人上的USB网络摄像头,将拍摄到的视频无线传输到电脑上,在电脑上捕获图像并使用MATLAB软件对其进行处理,以检测作物疾病。
关于植物病虫害图像处理的技术,王帅帅采用阈值分割方法对高光谱图像进行处理,利用BP神经网络对鲜桃进行病害检测[2],来自高光谱数据的植被指数已显示用于间接监测植物病害,但是他们无法区分作物上的不同疾病。为了找到疾病作物对应的波长,黄林生等人使用RELIEF-F算法,分析小麦染病早期最敏感波段和波段差,得出白粉病病害指数[3]。而在图像处理过程中,由于原始图像是RGB格式,其灰度范围为0至255,因此很难处理,需要将其转换为灰色图像作为增强图像,从而获取更高的质量和清晰度。为了增强图像灰度,杨森等人使用高密度采样法和K-均值聚类算法对图像进行了分割识别[4]。对于甘蓝遭受虫害的状况,高雄等人使用数码相机捕获叶片图像,并使用MATLAB软件处理图像,识别虫害的种类,确保化学药品使用的准确性[5]。为了精准检测植物中的病害,SANKARAN S等人将人工神经网络用于检测植物的疾病[6],BARBEDO J G A使用模式识别技术来识别水稻疾病[7]。
本文考虑了四种不同的情况(链格孢菌、炭疽病菌、细菌枯萎病和尾孢属真菌叶斑病)对作物的伤害,采用MATLAB图像处理技术,建立HIS模型对图像进行分割,然后进行边界和点检测,以识别作物的感染部分,最后通过远程操控喷药机器人对病害作物进行精准农药喷洒,达到植物保护的目的。
喷药机器人的研究与后期的使用不仅能够减少农业生产者的工作强度,还会提高喷洒农药的效率和准确性。本文研究与开发的喷药机器人采用Raspberry Pi和Arduino UNO用作微处理器单元[8],结构框架如图1所示。
喷药机器人采用HC-05蓝牙模块连接到Arduino UNO,后者又连接到工作人员的智能手机。工作人员可以通过智能手机控制喷药机器人执行前进、后退或转向运动以及农药喷洒的动作。USB摄像头采集到的视频信息,经过蓝牙传输到电脑端[9],工作人员使用MATLAB软件在电脑上对图像进行处理,通过分析得到作物虫害疾病的情况,过程如图2所示。
图2 图像采集过程
本文设计的喷药机器人主要有三个功能,分别是喷药机器人行进、视频采集和农药喷洒。工作人员通过Android应用程序操作喷药机器人实现机器人的运动和农药喷洒的动作[10]。植物病害检测是在电脑端实现的,先将USB网络摄像头连接到Raspberry Pi,然后把Raspberry Pi放置在喷药机器人上,实现实时采集的视频流传输到工作人员的电脑上,利用MATLAB软件在电脑端运行疾病检测算法[11],获得植物病害信息。
喷药机器人行进,采用直流电机进行驱动。直流电机选择ZGB37RG型号,其转矩为55 Nm,转速300 r/min,这种配置能够保证喷药机器人合适的运行速度。另外,直流电机由Arduino UNO在L293D(电机驱动装置)协助下进行控制的。HC-05蓝牙模块接收输入信号,并将其发送到处理器,处理器通过接收信号发出指令,启用特定引脚来打开和关闭直流电动机,控制电机运转或停止。
借助USB网络摄像头和Raspberry Pi,将视频流传输到工作人员电脑端。视频流传输可以通过多种方式来进行,可以通过安装GSTREAMER软件来实现,或是在发送器端和接收器端都安装VLC播放器。通过比较,我们选择使用VLC播放器的形式传输视频,这种方式既简单又方便,工作人员可以从视频流中获取快照,以便对作物病害进行检测。
蓝牙模块通过接口连接到Arduino UNO的数字引脚,该数字引脚与远程工作人员的智能手机相连,并从安装在智能手机上的Android应用程序接收信号。喷药机器人的喷药机构是由浮动传感器、潜水泵、喷嘴和软管组成。浮动传感器和潜水泵保持在农药箱内。软管的小直径一端连接到潜水泵,另一端连接到喷雾器喷嘴。工作人员在电脑上运行MATLAB程序算法,如果算法结果显示植物受到某种疾病的侵害,则可以利用Android应用程序启动喷药机器人喷洒特定的农药。
疾病检测程序算法分为两个阶段,第一个阶段是将健康作物与受病害影响的作物的分离,第二个阶段是专注于在植物叶片上病害程度的分析。 我们使用MATLAB软件开发了一种高效且快速的响应程序算法,具体使用图像处理进行分类的基本步骤如下:
任何视觉系统的第一阶段都是图像采集阶段,计算机获得图像后,可以将各种处理方法应用于图像,以执行所需的不同视觉任务[12]。如果未获取令人满意的图像,则可能无法完成预期的任务,即使借助某种形式的图像增强技术也难以实现。本次研究捕获的图像采用RGB形式(红色、绿色和蓝色),为了研究方便,我们将图像从一种颜色空间转换为另一种颜色空间。MATLAB包含了图像处理所需的所有工具,这些工具涵盖了所有色彩空间的转换。图3显示了图像加载到MATLAB软件中呈现的样式。
图3 图像采集
图像预处理是考虑由于图像采集可能不理想而需要增强图像视觉质量的处理过程。在这个过程中,运用图像边缘增强、噪声过滤、锐化等技术,使得图像增强结果比原始图像更适合特定的应用[13]。用于图像处理的输入颜色是原色,即红色、绿色和蓝色,由于它们的灰度范围是0到255,而输入的灰度图像只包含一个颜色通道信息,无法使用RGB来实现应用程序的加载。因此,使用以下颜色转换公式将RGB图像转换为灰度图像。
F(X)=0.2989*R+0.5870*G+0.1140*B
其中,F(X)表示图像灰度值,0.2989,0.5870,0.1140分别表示像素点R分量、G分量、B分量对应的权值。
本研究考虑采用以累积分布函数变换法为基础的直方图修正法来消除诸如裁剪之类的噪声,并进行图像平滑和增强处理以增加图像对比度,如图4所示。
图4 图像预处理
图像分割与其组成要素(处理对象)有关,可以分为需要处理的部分与不需要处理的部分[14]。本研究使用MATLAB算法进行图像分割及特征区域提取,包括:边缘检测、阈值化、边界提取、区域增长、分割和合并,结果如图5所示。
图5 图像分割
在经过图像分割得到我们感兴趣的区域之后,进行图像特征提取,通过降维,用较为紧凑的特征向量来表示分割图像部分的颜色、纹理、熵、均值偏差等。将参数输入到MATLAB程序中,生成相关数据如图6所示。
特征提取完成后,将获得的值与健康叶子的预加载值进行比较,通过比较获得的值的差异,进行疾病分类。
图6 特征提取与数值计算
表1中列出植物虫害的类型和处理方法,是基于文中提出的分析与处理方法得出的最终工作模型。从流视频中获取的图像被加载到MATLAB算法中,以进行疾病检测。使用MATLAB进行图像处理的结果如表1所示。
表1 虫害的类型和处理
本研究通过使用MATLAB图像处理技术对植物病害进行检测,实现在植物生长阶段及时发现虫害,采用喷药机器人对植物虫害进行灭杀,达到植物保护的目的。图像处理的过程是基于MATLAB算法进行的,包括图像采集、图像预处理、图像分割、特征提取与数值计算,最后将获得的病害图像的颜色、纹理、熵、均值偏差等与健康叶子的预加载值进行比较,从差异中进行疾病分类,发现病害。工作人员利用智能手机中安装的Android应用程序来控制喷药机器人的行进运动并向植物喷洒农药,达到灭杀虫害的目的。