摘要:介绍了基于TMS320DM642的农药喷洒系统的工作原理,阐述了机器视觉硬件系统原理,分析了图像识别算法和基于RF5参考架构的软件框架设计方案。经论证,该识别算法可靠、稳定、实时性好,系统能实时对旱田作物(棉花、小麦、玉米等)及果树(或道路两旁林木)进行实时喷药。
目前使用的绝大多数喷药机械,其农药的喷洒过程是通过人工操作,由喷药员根据经验来决定化学药剂的使用时间、地点和剂量,而成熟经验的获得、传播、掌握受到积累年限、文化水平、传播媒介等因素的制约而难以得到普遍应用,造成农用化学剂的滥用。另外在整个农药喷洒作业中,操作人员劳动强度大,而且操作人员直接接触农药,人身极易受到农药的伤害。同时由于人工操作,整个农药喷洒作业效率不高。研究智能农药喷洒系统的目的是以旱田作物(棉花、小麦、玉米)、果树(或
图1 农药喷洒系统结构图
图2系统硬件框图
道路两旁林木)为施药目标,实时采集目标状态图像,利用图像处理技术对图像进行处理与分析,对何时、何处施药做出科学决策并自动控制完成施药作业。
农药喷洒系统工作原理
智能农药喷洒系统由数据采集系统、控制系统和机器视觉系统组成。数据采集系统和控制系统主要包括数据采集卡、调理电路、储液槽、液体泵、流量传感器、压力传感器、速度传感器、溢流阀、比例减压阀、喷杆、喷头等。系统如图1所示。储液槽内装有药液,当泵启动后,液体通过溢流调压阀、压力传感器、比例减压阀和流量传感器由喷头喷出。流量传感器和速度传感器经数据采集卡将药液流量、拖拉机行驶速度传送给计算机,然后由计算机调节比例减压阀,确定合适的压力值。计算机根据压力传感器的输入调节溢流调压阀保证管路中压力保持恒定。
机器视觉系统采用两路CCD视频输入,从两个角度采集作物图像,DM642实时处理图像数据,根据处理的结果向CPLD的扩展IO发出控制信号,判断是否喷洒农药。
机器视觉硬件系统原理
系统采用TI公司的TMS320DM642芯片作为主处理器。TMS320DM642是专用于数字媒体应用的高性能32位定点DSP,工作主频最高达720MHz,处理性能可达5760MIPS,强大的图像处理能力为系统的实时性和可靠性提供了有力的保证。
硬件组成
硬件基本框图如图2所示,这里简单介绍视频输入和视频输出部分。
视频输入部分
为准确、全面的辨别作物,本系统分别从两个不同角度采集棉籽的图像以进行识别。DM642有三个视频口,每个端口可以接两路视频,本系统采用VP2口作为视频输入端口,视频输入端将从摄像头采集的模拟信号由TVP5150转化为CIF(352×288),YUV (4:2:2),ITU-R BT.65格式,内嵌同步信号发送到DM642的VP2口。图3为TMS320DM642和TVP5150的硬件连接示意图[2]。
系统采用最为简化的连接线路,将双方的IIC总线接口SCL和SDA互连,TVP5150的视频输出端口D[0~7]和DM642的VP口相连。由于视频流采用ITU-R BT.65格式,图像的行同步、场同步信号均内嵌在视频数据流中的EAV和SAV时基信号中,视频口只需要视频采样时钟和采样使能信号(控制采样开始)即可,TVP5150用系统时钟SCLK提供采样时钟,用可编程输出引脚GPCL提供采样使能。
视频输出部分
本系统扩展了视频输出,用于本地回放,当系统调试完毕后此部分功能可以不用。视频输出由Philips公司的SAA7121实现。SAA7121将DM642端传送过来的PC信号转化为PAL(50Hz)制式或者NTSC(60Hz)送外部TV端输出。原理如图3所示,本系统用VP0口作为视频输出口,时钟由VP0CLK0为输入时钟,由TVP5150产生,VPOCLK1为输出时钟,用于给SAA7121提供。作为视频输出口时,视频口要为SAA7121提供视频时钟行/场同步信号,如图3所示,由VP0口预留的三个用以产生同步信号的VP0CTL0、VP0CTL1产生。
软件设计
绿色分割算法
在自然光条件下对绿色植物的实时识别,既需要减少亮度对图像的影响,也需要处理过程简单,减少处理时间。为此,采用改进的绿色识别方法对图像进行处理。其原理是根据绿色分量值在亮度值所占的比例数值是否达到阈值进行判定。运算方法如下:
(1)由于采集进来的是YCbCr信号,根据象素的Y、Cb、Cr的值,求出RGB色彩空间中的绿色信号G:
G=Y-0.34414*(Cb-128)-0.71414*(Cr-128)
(2)按照下式求出绿色分量与亮度的比值:
E=G/(Y+0.1)
(加0.1的目的是防止当像素为黑色(0,0,0)时Y为0,结果溢出)
判别E是否大于阈值,大于阈值则判别为绿色,否则为非绿。阈值的确定主要是通过试验。在实验中,选择多幅不同光线下不同深浅的绿色植物照片,并在照片上植物的不同位置选择十字形模板测其E值。十字形模板是指选择一个像素,并在它的上、下、左、右各取一点,共5个点组成一个十字形模板,然后取这五个像素的平均值作为试验数据。所测的100个数据构成I-E分布图,见图4可看出不同亮度下,不论是深绿还是浅绿,其E值97%大于1.05,因此我们确定阈值为1.05,此时二值化处理结果见图5。接着对得到的二值图像进行中值滤波和数学形态学中的开运算处理,去除图像中的斑点噪声,填充处理过程中产生的小孔[6]。最后计算图像中的植物区域与整个采样图像面积的比值,并将其与阈值K比较,确定是否喷药。
基于DSP/BIOS的软件框架
系统采用了CCS和DSP/BIOS,以及TI倡导的DSP软件架构RF5。软件系统分为输入、处理、输出等模块,流程如图3所示。
图3 视频输入输出原理图
输入模块将VP口采集到的图像写入指定内存,发送消息给处理模块,消息结构存储了图像数据所在的内存空间首地址。随后输入模块等待输出模块的回复,以继续采集下一帧图像;处理模块负责执行识别算法。从输入模块发送的消息结构中提取图像数据地址,以进行图像算法处理,最后发送消息给输出模块,同时根据图像处理结果发出信号给PLC控制器并继续等待输入模块的消息;输出模块将原始图像输出到LCD进行显示,随后发送消息给输入模块使其继续采集下一帧图像。此时输出模块将等待处理模块发送消息,线程处于挂起状态。
图4 I-E分布图
(a) 原图像之一 (b)二值化图像
图5 改进的绿色分割法处理结果
代码优化
程序主要用C编写,因此C语言优化的好坏直接影响程序效率。程序中广泛运用以空间换取时间的方法来提高代码运行效率,如将多重循环拆成单重循环,虽增加了代码量,但实现了软件流水;对常用的或者一些简单的函数尽可能的使用静态内联函数,或者在对程序进行编译时采用-pm -oe选项。内联函数被调用时不需进行入栈出栈操作,而是直接插入展开代码,从而提高运行速度。除以上几个方面,程序还尽可能用移位代替乘除法,查表法代替浮点运算等。
图6 软件框架图
实验与总结
为验证系统图像识别算法的可行性,在SEED-VPM642开发板上进行了试验。图7a~c是自然环境下采集到的一组植物图像,大小为400x320。图8a~c分别是图7中对应图像采用绿色分割算法二值化并加工处理后的最终图像。
图7 实际采集的植物图像
图8 最终识别结果示意图
从表1中得知,在拖拉机以每秒0.5米速度行进时,系统识别准确率几乎100%。以1m/s速度行进时,其准确率只有60%左右。单次检测最长时间为37ms,基本达到实时性的要求。
表1 识别结果比较
实验结果表明,基于机器视觉的智能喷雾机系统运用绿色分量分割法能完成对喷药期植物的正确识别及喷药,处理方法简单,满足系统对实时性的要求。■
参考文献:
1. 图像处理与自动控制技术在农药喷洒机中的研究 安永生著 2004.3
2. TMS320C6000系列DSPs原理与应用(第2版) 李芳惠著 电子工业出版社 2003.1
3. SEED-VPM642用户指南 (Rev. B) 合众达 2005.4
4. TMS320C64x Image/Video Processing Library Programmer's Reference (Rev. B) TI 2003.10
5. TMS320C6000 DSP/BIOS Application Programming Interface(API) Reference Guide TI 2001.12
6. 图像处理与分析--数学形态学方法及应用 崔屹著 科学出版社 2000