基于机器视觉的穴盘苗检测试验研究
2020-10-19张国栋范开钧
张国栋,范开钧,王 海,蔡 峰,辜 松
(1.北京华农农业工程技术有限公司,北京 100125;2.华南农业大学 a.工程学院;b.南方农业机械与装备关键技术省部共建教育部重点实验室,广州 510642 )
0 引言
穴盘育苗技术具有节约土地、幼苗易成活及有利于规模化生产等优势,现已被广泛应用于蔬菜、花卉的生产。国家标准对蔬菜种子发芽率要求大于85%,受种子质量、育苗环境及播种质量影响,穴盘苗的空穴率将超过15%[1],不利于成品苗的出售或后续机械化移栽。目前,剔苗、补苗多以人工方式为主[2],由于不合格穴孔位置幼苗长势差或未出苗,人手不易将基质取出,费时费力,而采用自动化剔苗方式可以提高剔苗效率、节省劳动力、提高效益[3-4]。为此,提出了利用机器视觉技术检测穴盘苗空穴与不合格苗及传输检测结果的方法,为穴盘苗自动化剔除空穴与不合格苗及补苗作业提供技术基础。
为了保证自动化剔苗装置能够准确将不合格穴孔中的基质剔除,需要利用机器视觉对不合格穴孔位置进行准确检测,并将检测结果传输到控制器中,控制相应机构对不合格穴孔进行操作。 穴盘育苗在前期及中期时,幼苗叶面积适中,未遮挡穴盘,适合机器视觉进行缺苗检测。为准确判断不合格穴孔位置并将判断结果传输给控制器,开发了基于机器视觉的穴盘苗检测系统。
1 检测系统构成
1.1 硬件组成
搭建如图1所示的试验平台,包括机架、输送带、穴盘定位气缸等。
1.输送带 2.定位气缸 3.穴盘 4.CCD工业相机 5.机架图1 试验平台结构Fig.1 The structure of test platform
系统采用CK-JV200CI型CCD工业相机,有效像素200万,具有千兆以太网口用于与PC机通讯,可将拍摄照片传输到PC机指定目录中。PC 机作为工业相机与PLC的桥梁,分析采集图像后将结果传输给PLC。三菱FX1N-40MT型PLC为一款小型PLC,占用空间小,控制指令灵活丰富,在系统中用于直接控制机构对不合格穴孔进行操作。图2所示为检测系统构成。
图2 视觉系统构成Fig.2 The Composition of Vision System
1.2 软件系统构成
CKVisionBuilder软件是一款智能图像处理软件,提供了丰富的图像处理指令,允许自定义操作界面。系统的检测程序在CKVisionBuilder环境中编写,通过调用内部不同的图像处理指令函数对采集到的穴盘苗图片进行阈值分割、腐蚀运算、像素统计。在图像进行分析前,需要对其进行一系列预处理,图像阈值分割是重要步骤之一,具有计算模型简单、运行效率高的优点。在数字图像处理中,对于确定的结构元素,通过腐蚀运算方法可以消除小于结构元素的点。
2 穴盘苗检测方法
统计每一个穴孔中的像素数量,然后比较每穴像素数量是否低于设定值来判断穴孔内是否为好苗,将“好苗”“坏苗”“空穴”信息通过“1”“0”数字量传输给PLC数据寄存器。具体分析流程如下:
1)软件读取CCD相机采集到的彩色图像;
2)对彩色图像进行灰度化处理;
3)对灰度化处理后的图片进行阈值分割与腐蚀运算,消除干扰点;
4)统计每个穴孔中的像素数量;
5)设定标准像素数量N,若检测像素数量大于等于N,判断结果为该穴孔有好苗;反之,则为无苗或者坏苗[5];
6)标记无苗或坏苗穴孔区域;
7)将“好苗”“坏苗”“空穴”结果转换为“1”“0”数字量,通过串口通信将每个穴孔的“0”“1”结果传递给PLC对应的数据寄存器,供PLC作判断,控制执行部件动作。
2.1 图像预处理
2.1.1 图像阈值分割
阈值的选取直接影响图像分割的效果[6]。阈值化是输入图像f到输出图像g的如下变换,即
本文取T=187,阈值分割效果明显,能够较好地反应穴盘苗叶片的投影特征。由于基质中含有珍珠岩及其他颗粒物,图像中出现很多干扰点,如图3所示。
图3 预处理后图像Fig.3 Pre-processed image
2.1.2 腐蚀运算
分别沿图像X、Y方向对其进行腐蚀运算处理,设定处理次数为2次,删除穴盘中大量干扰像素点,提高图像分析的准确性,如图4所示。
图4 腐蚀运算处理后图像Fig.4 Image after erosion operation
2.2 检测区域的确定
标准72穴穴盘穴孔形状非标准正方形,为最大范围识别每个穴孔的图像信息,选取穴孔四边直线相交后形成的正方形为每个穴孔的识别范围;阈值分割处理后,穴盘与基质在图像中已全为黑色,在选取区域中统计幼苗像素数量时不会受到穴盘的影响,如图5所示。正方形框内为每穴的检测区域。
图5 单个穴孔检测区域Fig.5 Detection area of each hole
2.3 结果判定与输出
图像预处理后,统计每个穴孔检测区域中像素数量[7]。提前测定一株最小合格苗的像素,设定“好苗”情况下像素数量为大于等于N,像素数量小于N的穴孔均为“坏苗”或“空穴”。通过比较运算指令,比对每个穴孔检测区域,像素数量小于N的穴孔均为“坏苗”或“空穴”,在采集原图像上框选出来,运算输出数值“0”;像素数量大于等于2 500的穴孔,运算输出数值“1”。72个穴空的检测结果通过RS232通讯传输到PLC中的指定数据寄存器中[8-10]。设定的“好苗”的标准像素数量N可以根据不同品种、不同时期穴盘苗的实际情况进行修改。
3 穴盘苗检测试验
3.1 材料与方法
检测对象为13天意大利生菜、白玫瑰白菜、广府1号油菜心,幼苗培育用穴盘为标准72穴,基质为椰糠,拍摄时光源为温室内自然光。
将待检测穴盘放上输送带,穴盘定位气缸伸出,将穴盘输送到定位气缸处输送带停止;工业相机拍下整盘苗图像,传输到PC机中;拍摄完成后,定位气缸缩回,输送带启动,将穴盘输出,然后放置下一盘苗继续拍摄。
3.2 结果与讨论
3.2.1 检测结果
设定72穴意大利生菜穴盘苗标准像素数量N=2 500,图像经预处理及像素统计后,采集到每穴的像素数量如表1所示。由表1可以看出:行列号为(1,2)、(2,5)、(3,4)、(3,5)、(3,6)、(6,3)、(6,4)、(6,6)、(7,1)、(8,2)、(8,3)、(9,6)、(114)、(12,1)、(12,3)处的像素数量均小于2 500,为“无苗”或“坏苗”,输出数值“0”;其余穴孔像素数量均大于2 500,为“好苗”,输出数值“1”。
表1 72穴意大利生菜每穴像素数量统计Table 1 Statistics of pixel number of each hole of Italian lettuce planted in plug tray with 72 holes
由于植物形态差异,对白玫瑰白菜与广府1号油菜心图像设定不同的像素数量标准,白玫瑰白菜图像设定为5 000,广府1号油菜心图像设定为9 000,在相同环境条件下进行检测。图6为三种作物的检测结果,框选区域为不合格穴孔,检测准确率统计如表2所示。
表2 检测准确率统计Table 2 Statistics of detection accuracy
图6 检测结果Fig.6 Detection results
3.2.2 讨论
幼苗叶片生长过大可能过界长到邻穴区域,会对检测结果造成一定影响。若邻穴位置为好苗,即使部分区域被遮挡,像素数量也不会减少,故这种情况下不会影响判断;若邻穴位置为坏苗或空穴,伸出的叶片会增加邻穴的像素数量,可能导致误判断检测结果为“好苗”,降低检测准确性。图7所示为相邻穴孔为好苗或空穴时叶片过界的情况。
图7 叶片过界Fig.7 Leaf exceeds boundary
基质混合时会混入珍珠岩或其他颗粒物,颗粒物孤立地出现在基质表面时,通过腐蚀运算可以消除由颗粒物产生的干扰点;若干颗粒物连成联通区域时,可以通过增加腐蚀运算次数的方法来消除,但增加次数后可能会将面积较小的叶片误认为是干扰点将其消除,导致穴孔内像素数量减少,将好苗判断为坏苗。
3类不同幼苗在苗龄为13天时,意大利生菜叶片面积最小,叶片过界遮挡情况对机器视觉检测影响较小;广府1号油菜心叶片面积最大,若干幼苗叶片生长进入邻穴检测区域,对机器视觉检测“空穴”“坏苗”产生较大干扰。
4 结论
1)搭建了基于机器视觉的穴盘苗检测试验平台,检测苗龄13天的72穴的意大利生菜、白玫瑰白菜及广府1号油菜心穴盘苗坏穴的准确率达到了95.8%以上。
2)将检测结果“好苗”“空穴”“坏苗”转换为“1”“0”数字量,方便传输到PLC中,由PLC作执行动作的判断。对于72穴穴盘苗,将每穴的检测信息通过RS232传输到PLC中的数据寄存器中,传输时间小于3s。
3)对比3种幼苗检测准确率,意大利生菜>白玫瑰白菜>广府1号油菜心。相同苗龄下广府1号油菜心叶面积更大,出现过界的现象严重,会降低机器视觉检测准确性。幼苗叶片展开且不遮挡穴盘时,为穴盘苗检测的最佳时期。