APP下载

牧草观测自动化技术研究与系统设计

2022-08-22赵建凯马修才

中国农学通报 2022年22期
关键词:发育期绿草牧草

重 阳,赵建凯,马修才

(内蒙古自治区大气探测技术保障中心,呼和浩特 010051)

0 引言

内蒙古自治区是牧业大区,草原生态建设及牧业发展对气象服务提出了更高的要求,迫切需要生态气象、牧业气象为草原生态建设、现代牧业的发展提供时效更快、内容更多、水平更高、针对性更强的服务产品。因此,获取高精度、高密度、多要素、连续稳定的牧草观测信息势在必行。当前的牧草观测技术、手段、时效、内容以及观测站点密度等远不能满足草原生态建设、现代牧业气象业务和服务发展的需求,牧草观测自动化程度低,目前牧草观测仍以人工和手工方式为主[1-5],劳动强度大,费时费力;牧草观测精度有限,可比性不强,由于观测人员的专业素质、熟练程度、观测习惯和责任心等不同,造成观测精度差别较大。当前以目测或简单器测、手工记录和报表寄送、纸质存档等为主的牧草观测业务[4-5],与气象现代化建设要求相差甚远,亟需提高其自动化观测能力。

现代科学技术的发展使得自动观测能力和水平不断提高,新设备、新方法的应用越来越多,原有的以人工观测为主的业务体系正在发生根本性的变革[6-10]。目前国内在牧草观测自动化技术发面的研究大多是采用2个网络摄像头(带网络接口的工业或民用相机)采集图像[11-14],通过网络传向后端(即上位机,工控机或PC),在后端进行图像处理与模式识别[15-18]。用于观测的传感器并非智能图像传感器,未实现智能感知,采集到的观测图片完全依赖于后端计算机的图像识别处理能力,此技术思路设计的系统稳定性较差,功耗较大,数据传输压力大(高分辨率原始图片文件较大)。为满足专业观测业务现代化建设需求,实现为专业观测业务提供基础支撑,发展牧业、生态气象的自动化观测业务为目标,笔者在研究符合内蒙古特点的牧草观测自动化技术的基础上,设计基于嵌入式技术和并行计算技术的智能传感器的观测系统,采集完成直接在本地完成处理后再将结果向后端传输,以适应对体积、功耗、数据传输、工作环境及稳定性要求极高的野外观测场合。

1 系统结构及原理

本研究及系统设计总体技术思路遵循以下原则进行:适合用于对体积、功耗、工作环境及稳定性要求极高的野外观测场合;在超高速图像处理和大分辨率图像处理方面可实现牧草自动连续观测,能够满足实时业务要求;观测端到应用端可实现数据的高速实时传输。根据以上原则,本研究及系统设计包括算法研究设计、硬件结构设计、软件结构设计。

在技术研究及系统设计中,对草原地表面牧草形态进行自动识别检测的图像处理算法设计,是利用数理统计及图像处理技术实现牧草密度(盖度)的自动观测、牧草株高的自动测量、牧草发育期图像信息提取及定量化处理的方法。采用现代电子技术以及DSP技术、图像处理技术相结合的方式研制图像处理与模式识别的智能传感器,实现牧草覆盖度、层(株)高以及牧草生长期的自动观测功能,观测产品提供形式为OSD、图片文件、Excel表。系统设计主要包括硬件系统和软件系统2个部分的设计,硬件系统主要由图像采集模块、图像处理模块和网络传输模块组成;软件系统包括下位机(DSP)程序和上位机(VC++)程序。DSP程序实现图像的实时采集,覆盖度、株高的计算,生长发育期的判别;上位机程序实现相机的远程控制,图像的接收、存储,系统参数配置,检测结果的显示、记录及数据产品的生成。

2 系统硬件设计

2.1 硬件方案选择

按照总体设计技术思路,选择的硬件方案应遵循数据传输压力小、适合用于对体积、功耗、工作环境及稳定性要求极高的野外观测场合的设计原则。采用2个200万像素工业相机在前端采集图像,并在前端通过DSP进行图像处理与检测判别,将处理后的结果再通过网络传向客户端(即用户,智能手机或PC)。

面向嵌入式微型化视觉图像领域,系统由FPGA板块和DSP板块2块核心板块组成。FPGA扩展有2路Full Camera Link接口,其中一路为输入,一路为输出;DSP板进行图像处理,并通过网络口传输处理结果。2块板卡通过FMC接口连接,相机的图像数据先从Camera Link接口传输至FPGA板,FPGA对其进行预处理,然后通过FMC接口上的RapidIO传输至DSP板块。DSP板上的网络口将处理结果及图像传输给远程的客户(PC或智能手机)。此嵌入式方案相对于采用2个带网络接口的工业相机采集图像,通过网络传向后端(即上位机,工控机或PC),在后端进行图像处理与检测判别的非嵌入式方案,不但体积及功耗小、自带多种外设、运算速度快、鲁棒性好,而且能够大大减轻数据传输压力,在超高速图像处理和大分辨率图像处理方面具有领先优势。

2.2 硬件整体架构

整个系统的硬件部分主要由图像采集模块、图像处理模块和网络传输模块组成,如图1所示。工业相机通过CameraLink接口与DSP相连,相机采集到的数据通过DSP上的EDMA传送到片外的SDRAM,以便图像处理应用程序使用。图像处理应用程序对图像进行相应的处理之后,将处理后的图像及原图进行JPEG压缩,然后将JPEG图像及处理结果通过以太网控制器进行网络传输。

图1 硬件结构

系统的硬件部分包括2台200万像素智能工业相机(工业相机内自带DSP),2个200万像素C口镜头,1台交换机,1台服务器(可用PC机代替),以及支架、光源、相机防护罩等其他设备。其中工业智能相机内有1个网口,通过DSP编程对图像进行采集、处理,并通过网口传向远端的服务器端(上位机端),服务器端将2路信号进行同步、综合分析后再通过网络传给客户端。

2.3 电源

硬件系统共有3种供电方式,采用12 V 1.0 A直流电源供电,采用外接170~264 V 50/60 Hz的交流电源供电,实际在野外使用时采用太阳能供电。

3 系统软件设计

3.1 软件整体架构

软件系统包括下位机(DSP)程序和上位机(VC++)程序。上位机与下位机之间通过TCP/IP协议进行网络通信。下位机由2部完全相同的智能工业相机构成,2部相机的图像采集、牧草检测、网络传输等DSP程序基本相同,不同在于图像处理算法程序不同。2部相机的软件实现任务及分工如表1所示。

表1 系统2部相机任务划分

下位机的DSP程序的软件架构采用了TI的RF5参考框架。在本系统中,图像数据的压缩采用JPEG压缩算法。网络传输采用TI公司专门为C6000 DSP推出的NDK(Network Developer′s Kit)网络开发包。在操作系统方面,采用了基于DSP/BIOS的实时操作系统。首先,在DSP/BIOS配置工具中静态建立3个任务线程,包括图像采集线程、图像处理线程、网络初始化线程,如图2所示。网络传输线程由网络初始化线程在程序中动态创建。

图2 DSP任务线程

main函数主要完成整个程序的初始化工作,如片上L2缓存的分配,目标板的初始化,RF5模块的初始化,视频采集和显示的初始化与启动等。然后DSP把程序的控制权交给DSP/BIOS线程调度器(scheduler),由调度器按线程的优先级来调度执行。系统线程关系图如图2所示,线程之间通过RF5中的SCOM模块(synchronized communication)进行同步通信。图像帧在各个任务之间的传递是通过指针实现的,即通过SCOM消息将图像数据的指针(首地址)传递到下一个任务。

3.2 牧草模式识别算法设计

牧草模式识别是对草原地表面牧草形态的识别检测,其算法研究设计主要包括设计一套利用数理统计及图像处理技术实现牧草盖度的自动观测、牧草株高的自动测量、牧草发育期图像信息提取及定量化处理的方法。

3.2.1 牧草的检测 由相机采集的图像中的像素是否具备某些特征,从而直接在RGB空间上转换成二值化图像,分割出牧草与非牧草区域。这些特征应既考虑牧草的色度信息又考虑牧草的光照信息,这些特征由用户根据4个参数来定义,如表2。

表2 牧草检测图像参数

对绿色植被来说,dominant RGB component与dominated RGB component分别对应G(green)通道和B(blue)通道;而shadow和light代表了2个亮度门限值,这2个门限值能够将太暗(≤shadow)或太亮的(≥light)像素滤除掉。对于绿色和黄色,分别采用图3和图4的逻辑来检测[19]。

图3 绿色检测逻辑

图4 黄色检测逻辑

通过上述方法,将牧草区域用白色表示,非牧草区域用黑色表示,这样检测出牧草区域。light典型值取200,shadow典型值取50。此算法具有很好的通用性,只需根据要检测的特定目标调整相应的主导成分、受控成分、最小亮度和最大亮度,即可检测出黄色、紫色、红色等各种植被目标。

3.2.2 覆盖度检测 根据3.2.1小节方法检测出牧草后,再统计出图像中牧草区域的像素个数,与总像素的比值即为牧草(绿草)的覆盖度[20-22]。

3.2.3 层高与株高检测 对牧草层高的检测采用4个步骤实现。

(1)用一个相机水平放置(略偏上)拍摄牧草,要求能拍到天空背景。

(2)采用3.2.1节的方法将RGB图像转化为二值图[23],在二值图中用黑色(0)表示绿草区域,白色(255)表示非绿草区域。通过颜色空间提取到的绿草(里面混着非绿草的干扰以及不连通的绿草)如图5所示。

图5 通过颜色空间提取到的绿草示例

(3)通过每行绿色像素点数量的变化曲线(如图6所示)获得最高一层的高度信息,同时以横坐标为参考点,获得每个(每列)最高点的高度信息(最高的行号)。

图6 每行绿色像素点数量的变化

图6中横坐标是行号,纵坐标是该行的绿色像素的点数(图5图像左上角为第1行第1列,右下角是最后一行最后一列)。图5从最上面的第1行到最高点(最高行)置为255(非目标的白色),通过这种方法可以将非绿草的干扰滤除,滤波后的图像如图7所示。

图7 滤除非绿草干扰后

(4)计算每一列中最下一行到该列最高点的行的长度(即为这一列的绿草的高度),然后求所有列的平均高度,根据式(1)求出草的平均高度。

根据式(1)计算出图7中草的层高为95.3760个像素。当然,牧草可能不会这么密集,可能某些地方出现间断,因此图像中不是所有列都有牧草像素,此时若直接采用图像的宽度作为分母来获取牧草的层高显然会使其值偏大。为了解决这个问题,可以在程序中设置一个阀值,当该列的绿色像素个数少于该阀值时认为该列不应参与层高的运算。

注意这种方法得到的层高的单位是像素数,即图7中草的层高是N个像素的高度,每个像素的高度为H μm(这个由相机的CCD参数决定),因此图像中的层高为层高的像素数与像素高度的乘积,单位为μm。其实际高度需要相机标定后通过标定后的空间关系得到[24-25]。设一个由像高转物高的转换系数depthscale,则以mm为单位的层高为层高×转换系数。

对于株高的计算,可以采用二项式拟合的方式得到。即设y1=ax2+bx+c,其中x为层高,通过以上方法由系统直接得到;y1为株高,a、b、c为拟合系数。首先由本系统直接得到层高(x以mm为单位),然后人工测出与该图像对应的株高(以mm为单位)y。通过这种方法测得多组数据,例如12组,然后将x、y数据(分别有12个)代入到Matlab函数p=polyfit(x,y,2)中,这样就可得到了拟合系数,即a=p(1),b=p(2),c=p(3)。

3.2.4 生长发育期检测 生长发育期的检测利用水平和垂直2个方向上的特征提取。由水平放置的相机获取的绿色像素的密度、黄色像素的密度与垂直放置的相机获取的绿色覆盖度、黄色覆盖度,根据预设的阀值共同确定牧草的当前生长发育期。本研究需要实现牧草中返青、抽穗(或花序形成)、开花、种子成熟、黄枯的检测。春天牧草返青,然后经历抽穗(花序形成)、开花、种子成熟,秋天进入黄枯期。这5个生长发育期基本上是连续观测的一个生长周期,也是大部分牧草的发育期。但具体要判别所处发育期要按照牧草的种类确定。

检测牧草的生长发育期时需要采用数理统计的方法事先设置各个生长发育期的判别阀值。发育期的各个阶段条件设置如表3所示,表中gv0、gh1、gh4、yv2、yh2、yh3、yh4表示算法中预先设置的判别阈值(通过实验得到)。

表3 牧草发育期阶段判别

3.3 软件接口

远端相机采集的图像可以在上位机的控制下保存为bayer格式(RAW)图片、YUV格式图片以及JPEG图片。由于算法是在RGB彩色空间上处理的,为了降低数据量,减少网络传输压力,将DSP上图像处理的结果先转换成yuv420格式,然后通过jpeg压缩变成数据流,接着通过UDP或FTP将数据流传输到上位机,由上位机保存为jpeg图片文件。图像处理过的图片文件以jpg格式保存,其文件命名方式为:垂直放置的相机采集的图片以“年月日-时分秒-毫秒_V.jpg”方式,水平放置的相机采集的图片以“年月日-时分秒-毫秒_H.jpg”方式。

DSP处理后的结果(牧草自动化观测结果)以如下3种方式呈现,以便于后端的数据产品开发。

(1)OSD方式。可以在前端(DSP端)将检测结果(高度、覆盖度、发育期)直接叠加在图片上。除了叠加检测结果外,还可以叠加采集时间、站点等信息,叠加在图片上的位置、字符的显示颜色等均可以设置。

(2)存放于jpeg文件尾部。在DSP端将检测的结果存放于jpeg数据流的尾部。jpeg文件以“FF D9”结束,而“FF D9”之后的数据就是要通过网络传输给上位机的数据。通过WinHex软件读取jpeg文件,“FF D9”之后的最开始4个字节表示该结果数据的传输相机。“48 00 00 00”表示数据0x48,而0x48即为字符“H”的ASCII码,表示水平放置的相机,如这4个字节为56 00 00 00,则表示是垂直放置的相机(0x56即为“V”);紧接着的第2个4字节66 86 5E 41(0x415E8666,即为浮点数据13.90781),表示水平相机检测出的绿色像素密度;第3个4字节89 68 E9 40(0x40E96889,即浮点数7.294011)表示水平相机检测出的黄色像素密度;第4个4字节C2 17 16 40(0x401617C2,即浮点数2.3452)表示层高(单位为mm);最后一个4字节15 02 00 00(0x0215)表示一定点数据(533),代表以像素数为单位的层高。

(3)检测结果直接存储在Excel文件中。DSP检测的结果也可以直接保存到Excel文件result.xls中。这样更加有利于后端检测数据的可视化、分析统计以及相关数据产品生成。Excel文件中A列表示提供结果数据的相机,1表示垂直相机,2表示水平相机;B列表示数据产生的时间,用“年月日-时分秒”表示;C~F列分别是垂直相机产生的绿色覆盖度、黄色覆盖度以及水平相机产生的绿色密度、黄色密度;G、H列分别是以像素数为单位和以mm为单位的层高;第I列表示由第H列进行二项式拟合得到的以mm为单位的株高;最后一列表示检测判别出的当前牧草所处的生长发育期,0表示返青期、1表示抽穗期(或花序形成期)、2表示开花期、3表示种子成熟期、4表示枯黄期。

4 系统测试

选择一种天然牧草品种为自动观测研究对象,以其发育期、生长高度、及牧草覆盖度为主要观测要素运行本系统,测试本系统的软硬件及算法的正确性、实时性、稳定性。用本系统运行结果与人工检测结果进行对比,将本系统运行结果与实测覆盖度数值、实测株高数值进行显著相关检验。

4.1 算法仿真验证

在matlab中运行算法仿真程序,对提供的多张已知检测结果(已人工检测并给出检测结果)的图片进行算法验证,示例结果如图8~11所示,图中左图为原图,右图为对应二值图。

图8 示例1检测绿草覆盖度(30.8245)

大量检测数据结果表明,图像处理与实测覆盖度数值显著相关检验R0.05>0.90,图像处理与实测株高数值显著相关检验R0.05>0.85。

图9 示例2检测绿草覆盖度(74.1079)

图10 示例3检测绿草覆盖度(18.5507)

4.2 DSP程序RGB转换正确性测试

相机采集的是Bayer格式(每个像素只有R、G、B中的一个通道),通过内插,转换得到RGB图像(以便图像处理),图像处理后再转回yuv格式以便OSD以及jpeg压缩,在上位机这一端先jpeg解压才能显示图像。本研究基于RGB彩色空间进行检测,因此RGB转换的正确性很重要。检测DSP程序正确性时先检测RGB转换是否成功。方法是先注释掉图像处理算法,观察显示的结果是否与原图一致。经检测,基本无差别,表明RGB转换成功。

4.3 DSP图像处理程序正确性测试

检测DSP图像处理算法移植是否成功。方法是采集一张原图(图12a),然后将图像处理算法加入得到DSP处理后的图像(图12b)。再将相机采集的原图用Matlab仿真程序运行,得到matlab处理后的图像(图12c),将2种方法得到的处理结果、图片进行比较。在shadow=35、light=200时,dsp处理的覆盖度为39.58,matlab处理的覆盖度为41.5015。经比较,一般dsp处理的结果比matlab处理的结果稍偏小,差别不大,表明算法移植正确。

图11 示例4检测绿草覆盖度(26.8432)

图12 DSP图像处理算法移植效果对比

结果差异较大可能是光线过暗或过亮,因此需要调整参数shadow与light。shadow不能设置得太高,否则有些本来是绿草目标,但由于亮度太低,而门限值(shadow)设置得太高,从而将很多本来是绿草的目标剔除掉了。

4.4 DSP程序实时性测试

在程序中设置一个计时器,在需要测试运行时间的代码块前后通过PRD_getticks()函数得到运行代码前后的计时值,2个值相减即为这段代码运行的时间。经测试,运行覆盖度检测算法需要大约838个时钟周期。由于DSP的主频是600 MHz,因此覆盖度检测算法所需的时间大约为2 μs。

此外,也可以采用全帧连续方式触发,采用软件JPEG输出,启用OSD的时间标记功能,然后选中图像预览功能,在预览窗口中观察每帧图像时间字符串的变化,发现它们按照3 s左右变化,这个时间包括图像的采集、图像处理、jpeg编码、网络传输以及上位机的jpeg解码、图像显示,也就是说整个过程只需要3 s左右时间。因此处理速度能达到自动化观测要求,实时性较好。

5 结语

笔者根据草原生态及牧业气象业务服务需求,以内蒙古自治区特色的牧业气象观测项目——牧草观测为研究内容,依据牧草观测业务服务重点和观测要求,设计牧草模式识别算法与自动观测系统架构,以获取高精度、高密度、多要素、连续稳定的牧草观测信息,实现远距离、多样区、高精度自动监测,相比人工观测具有省时、省工、客观性强等优点,对提高观测资料的客观性、数据质量和降低观测人员野外劳动强度和工作量、提高观测效率等具有重要意义。

基于嵌入式技术和并行计算技术的系统设计相对于在后端PC系统进行图像处理的同类型自动化观测系统设计,不但运算速度快、鲁棒性好,而且能够大大减轻数据传输压力,并适合用于体积、功耗、工作环境及稳定性要求极高的场合。

该技术研究及系统设计是根据内蒙古牧业气象观测和草地生态系统观测内容,以牧业生产、草原生态环境保护提供气象服务为出发点开展的,初步研究设计主要针对影响牧业生产和草原生态的牧草生长状态的自动化观测,但不能涵盖所规定的所有牧草观测项目。目前,牧草的覆盖度与层高检测较准确,其中图像处理与实测覆盖度数值显著相关检验R0.05>0.90,图像处理与实测株高数值显著相关检验R0.05>0.85。

由于生长发育期需要连续观测至少1个周期(1年),且具体判别所处发育期要按照牧草的种类确定,因此还需大量连续观测实验才能确定牧草发育各个阶段的参数阈值,这也是今后的重点研究内容。

猜你喜欢

发育期绿草牧草
科学选种牧草品种提高养殖经济效益
牧草的种植管理与利用
人工牧草种植与管理技术
门源县油菜花期预测研究
阿勒泰市农作物播种期和发育期天数特征分析
初探优质牧草周年均衡供给高产栽培技术
游园
学诗
2016—2017年徐州市冬小麦发育期气象条件分析
与绿草相遇