闫如忠,林宇超
(东华大学机械工程学院,上海 201620)
随着社会的发展,人们生活水平的提高,对于环境污染以及身体健康问题也愈来愈重视,绿色蔬菜已然成为了人们日常关注的物品。在这环境和商业的压力下正在推动着蔬菜的种植者摆脱对除草剂的依赖性。然而在实际培育过程中,缺少去除作物行间杂草有效方法,往往需要人工去除,这效率低下且劳动成本高,难以实现大规模生产。因此机器视觉导航技术已经成为解决蔬菜行间杂草问题的关键技术。
早在20世纪70年代末,计算机视觉技术便开始应用在农业中。BONTESEMA等[1]利用非成像光学原理确定每一个作物的坐标位置并使用高速除草刀片去除行间杂草。LEE等[2]通过叶片的伸长度和紧凑性的不同分别来识别出番茄种植区中的番茄苗和杂草,其中番茄苗的识率为73%,但杂草识别率只有68.8%。纪寿文等[3]分析玉米苗期田地间杂草的形态特征,依据植株投影面积,叶片的叶长和叶宽完成田间杂草识别。金小俊等[4]综合考虑作物和杂草的高度特征以及植株空间分布特征完成作物的识别,实验表明,作物的识别率为88%。
综合考虑,在以前的研究中,植株识别过程中位置的判断都是通过植株的几何中心确定,但在植株实际生长过程中,由于叶片形状等原因,其几何中心往往不是其根部位置。为减少智能除草机的除草误差,准确定位植物根部位置,研究设计了一个植株图像识别及根部定位测量系统,首次提出植株根部定位与测量的概念,为除草机提供机器视觉导航的理论依据。
系统主要的功能是识别出植物根部的位置,判断出两株植物根部间的距离以及距离除草机最近的植株根部与机器人间的距离。考虑到系统要求的实时性以及计算机的硬件配置,该系统主要由4个模块组成,分别是图像采集模块、目标识别模块、目标根部定位模块、目标测距模块(如图1)。图像采集模块主要是打开摄像头显示实时视频,并获取其中一帧图像;目标识别模块通过目标植株与杂草的形态特征的区别采集到的图片中区分出目标植株;目标根部定位模块则基于植株的叶片生长特征和叶片的形态特征确定植株根部在坐标系上的位置;目标测距模块依据前面获取的坐标信息进行坐标转换,判断出目标的实际距离大小。
图1 系统构成
该系统是在Visual C++平台上,通过OpenCV设计完成。OpenCV是一个开源的计算机视觉库,采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上。OpenCV还提供了Python、Ruby、MATLAB以及其他语言接口[6-7]。
除草机整体由机器视觉系统、刀具控制系统、行走系统以及防撞系统四大系统组成。各个系统间主要通过PCI总线进行相互之间的数据通信。机器视觉系统主要由摄像头,图像处理系统以及用户界面组成。首先打开摄像头,将摄像头中数据通过PCI传输到图像处理系统中,同时在用户界面上显示。图像处理系统处理后的结果经过PCI传输到刀具控制系统和行走系统上,依据这个结果调整刀具的位置及旋转速度,以及除草机的前进方向和速度。
图2 除草机整体设计
图像采集模块中的摄像头是罗技C170,最高分辨率可达1 024×768,通过USB接口直接连接到PC机上。该模块主要通过在Visual C++上运行的OpenCV完成图像采集工作,采集频率为每秒30帧。为从摄像头中获取图像,则必须从第一帧开始一帧一帧地按顺序读取。通过函数cvCaptureFormCam读取摄像头中的信息数据,将获取的实时视频显示在用户界面上,观测摄像头的拍摄情况。用函数cvQuery-Frame从摄像头中抓取一帧,然后解压并返回这一帧,显示并保存这帧的信息,其采集到的图像如图3所示。
图3 原始图像
3.2.1 预处理
原始图像在信息采集、传输和终端处理的过程中,容易受到噪声、光线的因素的影响,从而导致图像出现降质[8]。在系统进行图像信息研究前需进行图像预处理,选择性地突出图像中有用的信息,去除干扰信息。一般包括图像灰度化、去噪、二值化、边缘检测等。
3.2.1.1 图像灰度化
由于彩色图像信息量会远高于灰色图像,在彩色图像中直接进行计算工作量较大,很难满足除草机器人的实时性与快速识别的要求。在实际应用中,为取出图像不必要信息干扰,加快图像处理速度,在目标识别之前,应先对图像进行灰度化处理,突出目标物体信息,抑制图像中的干扰信息,并简化后期计算的工作量。
因为光波原因,绿色植物与周边非绿色植物之间有着明显的颜色差异,绿色植物的绿色特征因子要远远高于其他。研究采用WOEBBECKE等提出的超绿特征法[9]对彩色图像进行背景分割处理。通过研究采集到的彩色图像的RGB模型可以发现图像中G分量的像素值总大于R分量和B分量像素值,其背景分割的算法主要如下:
首先将彩色图像中的每个像素点取出来,然后取该像素的R、G、B三维颜色分量的灰度值,并计算灰度值Y,计算公式(1)。最后,使像素中的R、G、B的值等于灰度值Y就可以了。最终处理后的结果如图4(a)所示。
图4 预处理图像
3.2.1.2 图像二值化
图像二值化,就是讲图像上的像素点的灰度值设置为0或255,即将整个图像呈现出只有黑和白的视觉效果,使得整个图像突出绿色植物。对图像进行阈值分割,通过滑动条判定最合适的阈值大小T,将背景分割后的图像中的每个像素点的像素值与阈值进行比较,如果大于T,则设置其灰度值为255,否则灰度值为0。其结果如图4(b)所示,其中灰度值为255的白色区域即绿色植物。
3.2.1.3 图像去噪
在摄像机采集图像过程中,由于光线的照射、设备本身的噪声以及背景中与超绿特征值类似的干扰物等因素,会导致二值化后的图像出现噪声,如图5(a)中的白色小斑点,这些噪声会对后面的计算过程产生干扰,所以需要去除,去除的方法主要有:
(1)用一个奇数点的移动窗口按顺序扫描整个图像,在每次扫描的过程中将窗口的中心的灰度值设置为这个窗口内所有像素点灰度值的中值,结果如图5(b)。
(2)通过实验,设置一个合理的阈值。将图像进行连通区域标记,而后计算每个连通区域所包含的像素点的个数值。并与设置的阈值进行比较,如果大于阈值,则在标记的区域中保留该区域,否则去除,最终得到的图像如图5(c)。
图5 二值化图像去噪
对比图5(a)、图5(b)和图5(c)这3张图片可以看出,虽然图5(b)去除噪声有一定的效果,但还有少数的噪声保留下来,不能够完全去除,图5(c)中噪声已经被完全去除,绿色植株清晰可见,方便后面的处理过程,所以第二种方法更适合本研究中的去除噪声。
3.2.1.4 图像边缘提取
所谓边缘,是指其周围像素灰度有极具变化的那些像素的集合。本研究中采用Canny算子边缘检测的方法获取植物与目标的边界,即将某个像素点的灰度值与其梯度方向前后的像素灰度值比较,如是最大则是边缘,优点是在提高植物边缘的敏感性的同时,可以很好地抑制噪声,如图4(d)所示。
3.2.2 目标识别与分离
基于形态特征的杂草识别主要通过研究叶片的边缘样式(曲率或叶状特征)和整个叶片形状(面积、长度、宽度、周长、矩、无量纲比值等)来实现[10]。对于同一时期的同一种植物,其几何特征,特别是叶片的形状基本是一致的。同一时期的不同植物,在叶片的形状上有着明显的差异,这为作物的识别提供了理论依据。
研究主要利用图像中绿色植物的最小外接矩阵(如图6)近似地描述不规则目标的形状。通过最小外接矩阵的面积、周长和长宽比实现作物与杂草的识别。对面积、周长和长宽比均设置一个范围,只有同时满足这3个范围的区域才保留下来,否则将图像灰度值设置为0。最终识别后的效果如图7所示。
图6 植株识别
图7 植株分离
一般情况,植株幼苗的叶片均是围绕着植株的茎均匀分布,植株单茎,茎垂直连接着植株根部,且连接叶片与茎的叶柄要远远细于叶柄,因此整个图像则可被描述成一个轮廓凸形缺陷的结构体,两个叶片之间一定是这个轮廓中一个凸缺陷,该凸缺陷最低点应该是两片叶片间的交点。且叶片均环绕着茎,故几个轮廓点的中心便是茎的所在位置,也是植株根部位置。
目标根部定位的具体算法过程如图8所示。
图8 植株识别与根部定位算法流程
首先用cvConvexHull2确定植株轮廓像素点集的凸外形,而后判断出图像中对于凸包的各个凸缺陷。在植株生长过程中,其叶片边缘有可能存在缺口,这也可能形成一个凸缺陷。需要选择一个合适的阈值T,如果谷底距离凸形的深度L大于T,则在这个缺陷中距离凸形最远的轮廓点的位置画上一斑点,这个斑点就表示为植株两个叶片的交点处。再求每颗植株上的标志斑点的中心处,即斑点横坐标和纵坐标的平均值,并在这个点上画上一个更大的斑点,这个斑点就是植物的根部位置(图9)。
图9 植株根部定位
通过前面植株特征提取,可以获取植株根部的坐标信息。摄像机固定在小车上,其镜头中心距离小车的位置固定不变,且镜头水平于地面,因此图像的中心对应的便是镜头中心。通过摄像机成像原理(如图10),f是摄像机焦距,Z是摄像机到物体的距离,X是物体长度,x是平面上物体图像。
图10 摄像机成像原理
根据前面得到的图像中植株根部的坐标信息,便可确定出两颗植株间水平面上的横向和纵向间的实际距离,与图像上中心坐标比较,便可以得出植株与摄像机中心的水平距离,从而确定出于除草机的距离。
为了验证该系统的测距效果,用该系统在植株间固定距离约为100 cm的田地间进行多次测量,并将测量结果与真实测量值进行了比较,验证系统的准确度。测量的结果如表1所示,分析数据,绘制系统测量距离与直接测量距离的数值情况图(图11),计算误差值并绘制误差分布情况(图12)。
表1 测量统计cm
图11 测量距离与实际距离
图12 误差值分布
从测量值与实际值的分布图,以及误差值分布情况可以看出,虽然该视觉系统的测量还存在一定的误差,并且系统测量结果与实际测量结果相比数值大多数偏大,但是所有的误差值均在±5 cm范围内,属于除草机可接受范围,验证了该系统的可行性。
经过实验分析,面向智能除草机的植株图像识别及根部定位测量系统可以完成植株识别,植株根部定位,确定植株根部间以及最近植株根部与除草机的距离,将误差控制在可行的范围内,完全可以满足除草人的要求,为除草机的视觉导航提供了有力的理论依据。但是该系统现在只能在PC机上运行,在实际生产中,由于PC机的原因会导致整个除草机过于笨重,因此将该系统移植到DSP上是下一步要研究的内容。
[1]BONTSEMA J,VAN Asselt C J,LEMPENS P W J,et al.Intra-row Weed Control:a Mechatronics Approach[J].First IFAC Workshop on Control Applications and Ergonomics in Agriculture,1998:15-17.
[2]LEE W S,SLAUGHTER D C,Giles D K.Robotic Weed Control System for Tomatoes[J].Precision Agriculture,1999,1(1):95-113.
[3]纪寿文,王荣本,陈佳娟,等.应用计算机图像处理技术识别玉米苗期田间杂草的研究[J].农业工程学报,2001,17(2):154-156.
[4]金小俊.基于双目立体视觉的除草机器人行内杂草识别方法研究[D].南京:南京林业大学,2012.
[5]王占全,徐慧.Visual C++数字图像处理技术与工程案例[M].北京:人民邮电出版社,2009.
[6]BRADSKI G,KAEHIER A.学习OpenCV(中文版)[M].于仕琪,刘瑞祯,译.北京:清华大学出版社,2009.
[7]陈胜勇,刘盛.基于OpenCV的计算机视觉技术实现[M].北京:科学出版社,2008.
[8]胡帆.基于轮廓的物体识别算法研究[D].河北:华北电力大学,2012.
[9]WOEBBECKE D M,MEYER G E,BARGEN K Von,et al.Color Indices for Weed Identification under Various Soil,Residue,and Iighting Conditions[J].Transactions of the ASAE,1995,38(l):259-269.
[10]SLAUGHTER D C,GILESD K,DOWNEY D.Autonomous Robotic Weed Control Systems:A Review[J].Computers and Electronics in Agriculture,2008,61(1):63-78.