基于OpenCV的施肥铲精准对行系统设计*

2022-12-02 06:03徐鑫李春晖赵丽清孙颖段东瑶郑映晖
中国农机化学报 2022年12期
关键词:坐标值像素点轮廓

徐鑫,李春晖,赵丽清,孙颖,段东瑶,郑映晖

(青岛农业大学机电工程学院,山东青岛,266109)

0 引言

有研究表明,使用分层施肥对冬小麦的成长有着巨大的好处,能够极高地增强小麦的产量,还能减少肥料的浪费。分层施肥能够让根系均匀生长,有效减少肥料残留[1]。农作物的根系是其生长的根本,根系越大,长势越好,最后的产量也越高[2]。如果能够将肥料在土壤下分层,分阶段的供给小麦根系的每一处地方,那对小麦的成长帮助将是非常可观的[3]。

分层施肥技术在国内国外都有了一定程度的发展[4],智能化的分层施肥农机装置是提升小麦产量的关键技术之一[5]。2019年5月,由青岛某公司研制的2BUF-2/4型施肥机测试成功,实现了分层施肥的效果,可以分别在地下50 mm和150 mm的地方进行施肥,但在对行控制上还是有所欠缺。2017年,王冲研究了基于图像对行控制的玉米割台设计,实现了将图像检测技术应用到对行控制上。2013年,德国汉诺威(Hanovre)在农机展会上,首次出现了一种全自动操纵控制的双盘式施肥机[6],可以对各种肥料进行施肥,施肥精度得到了提高,但并没有使用分层施肥技术。因此,对于小麦断根施肥,需要一种图像处理识别技术,能够精准定位小麦土层的具体位置。

本文介绍了加装在小麦施肥机施肥铲上的一种基于OpenCV的图像识别处理技术,通过摄像头采集到的小麦图像,对土地和小麦进行颜色的区分,通过边缘检测算法提取小麦轮廓的边缘信息,再经过颜色空间转换、滤波等得到小麦的二值化图像,通过膨胀腐蚀得到土壤的外轮廓,最后利用区域生长算法提取小麦的中心坐标。并通过对比试验验证该识别方法的准确性。此方法对于将来小麦断根施肥机的分层施肥精准定位提供了研究基础和理论依据。

1 总体结构与控制系统

1.1 总体结构

施肥机主要有分层施肥铲、摄像头、肥料箱等结构[7],如图1所示,但没有自己的动力系统,只能通过悬挂支架被拖拉机带动前进。

图1 施肥系统机械结构示意图

施肥铲通过支架放在同一排上,然后每个施肥铲根部上带有液压控制器[8],在本次设计中,将摄像头安装在施肥铲的前部,拍摄前下方图像,通过OpenCV图像算法来找出施肥铲的相对作业位置,然后通过继电器控制施肥铲横向运动,找到较为准确的前进路径。肥料箱在最上层,然后通过导管连接到施肥铲的不同位置,达到分层施肥的效果。限深轮使施肥机的下地深度得到有效的控制。还有一个辅助轮带动编码器进行转动,去测量实际的运行速度,进而控制施肥量[9]。

1.2 控制系统

返青小麦的分层施肥系统主要有2个电气控制部分:一是在Jetson Nano微处理器上通过Python语言使用OpenCV将图像进行处理,首先初始化摄像头,将其打开,然后获取一帧图像,对图像进行截取,获得中心的部分图像,让图像处理更加容易。再对其进行HSV颜色空间转换,转换完成后提取其中的S分量图像,进行滤波操作,使图像信息更加准确。再通过腐蚀膨胀等形态学操作处理,然后二值化处理、寻找边界、求取中心坐标等一系列处理得到两排小麦中间土地的中心点位置,通过UART通信将此坐标传输到STM32F103C8T6单片机,进行逻辑运算,最后通过继电器控制液压阀,继而控制施肥铲的横向移动;二是使用编码器传感器,通过STM32F103C8T6单片机的FTM脉冲计数模块采集编码器单位时间内的数值,再将其换算成实际的速度,然后通过一定的函数对应,将速度与舵机的控制联系到一起,通过速度的大小决定施肥量的多少,最后通过驱动控制肥料口打开的范围大小,以节省肥料的成本。控制流程如图2所示。

图2 整体控制框图

2 图像预处理

图像预处理的目的是改善图像数据,抑制不需要的变形和增强某些对于后处理有重要作用的图像特征,通过边缘检测算法、HSV颜色空间转换、滤波等得到二值化图像。

2.1 Laplacian算子边缘检测

在图像识别方法中常用Sobel算子对图像进行边缘检测,Sobel算子对灰度渐变和噪声较多的图像处理效果较好,但是Sobel算子对边缘定位不是很准确,检测的精度不够,得不到好的边缘检测结果。本文选用的是拉普拉斯算子,本算法被分成4个和8个邻域[10],分别应用于小麦边缘需求邻域中央附近的方向和梯度。其方向和梯度可完全满足提取的小麦边缘信息的需要。处理的图像如图3所示。

图3 图像边缘检测

2.2 HSV颜色空间转换

HSV(Hue Saturation Value)是一种比较直观的颜色模型,在图像领域中有较为广泛的应用。小麦图像都是RGB图像,将小麦图像RGB值映射到HSV颜色空间上的色域值来进行小麦施肥铲的精准对行[11],颜色空间分别由色调、饱和度和透明度这3种属性组成[12]。转换到HSV空间后再抽取其S分量图像继续进行处理,并且抽取的是S分量图像中的绿色元素。HSV的颜色空间如图4所示。

图4 HSV颜色空间

两种颜色空间的转换公式如式(1)~式(3)所示。

(1)

(2)

IV=Imax

(3)

式中:Imax——I(x,y)处(R,G,B)的最大值[11];

Imin——I(x,y)处(R,G,B)的最小值[11];

IH——I(x,y)处的色调值;

IS——I(x,y)处的饱和度值;

IV——I(x,y)处的透明度值;

IR——I(x,y)处的红色值;

IG——I(x,y)处的绿色值;

IB——I(x,y)处的蓝色值。

其小麦的HSV图像如图5所示,S分量图像如图6所示。

图5 小麦HSV图像

图6 S分量图像

2.3 图像滤波

像素的中值作为基准进行滤波[13],在图像的像素点中,先选取一像素点,然后以该像素点为中心取一个n×n的矩阵,经过中值处理后,以中值作为该像素点的数值。在这里,选取一个3×3的像素点矩阵,将9个像素点的大小进行排列,然后去中值作为中心像素点的数值。中值滤波的过程如图7所示,小麦经过中值滤波后的图像如图8所示。

图7 中值滤波

图8 图像滤波

2.4 图像二值化

阈值分割处理一般看作是灰度图像的二值化处理[14],输出图像只有2种灰度值:0和255。图像分割方法基于图像中前景与背景的像素值差异,通过设定合适的阈值实现目标与背景的分割,提取图像中有用的信息,常用方法有全局阈值分割和自适应阈值分割。本文小麦与土地颜色差别较大,光线条件相对均匀且所选取的B通道灰度图的前景与背景灰度级相差较大,故选取处理时间短、速度快的全局阈值分割进行二值化操作,其计算公式如式(4)所示。

(4)

其中I为输入图像,设其高为H,宽为W,I(r,c)代表图像中第r行第c列的灰度值,其中0≤r

(5)

利用OpenCV的全局阈值分割函数Threshold()完成图像的二值化处理,效果如图9所示。

图9 二值化图像

3 小麦中心坐标识别

获得小麦的二值化图像后,为了得到更加明显的图像特征,来更好地确定小麦轮廓的绘制方法,还要对图像进行膨胀腐蚀,从而可以更好地确定小麦垄行之间的中心坐标值。

3.1 膨胀腐蚀

腐蚀操作和膨胀操作为图像的形态学操作[15],主要用来明确所需要的图像信息。腐蚀操作是在二值化的黑白图像中,以黑白两颜色的边界为中心像素点,选取一定的矩阵范围,将范围内的像素点都转变为黑色像素,这样白色图像就会去除一部分,相当于被腐蚀了一样。

膨胀操作与腐蚀操作的做法正好相反,是将边界向外扩张,增加目标面积,常用于消除分割后目标范围内存在的空洞[16]。它是以边界像素点为中心,选取一定的矩阵范围将其全部转变成白色像素,这样白色图像就会往外扩张一部分,像是膨胀一样。通过这两个操作可以使小麦中夹杂的土壤颜色部分得到去除,使图像特征更加明显,效果如图10所示。

图10 膨胀腐蚀

3.2 图像轮廓绘制

为了寻求小麦图像中土壤的中心坐标点,这里需要将土壤的外轮廓先行绘制出来。选中土壤的一部分区域,使用OpenCV的find Contours()函数[17]可以很方便地解决这一问题。本文用的轮廓检测方法是轮廓逼近方法,函数只保留它们的终点部分。通过此轮廓绘制算法,将土壤的外围轮廓进行描绘,并用红色的线条将其描绘在图像上,如图11所示。在土壤轮廓绘制完后,不可避免地会有小部分土壤轮廓隐藏在小麦中。这些小部分土壤轮廓并非所需要的,所以需要进行滤除,最后只留下中央最大的轮廓是为所求,如图12所示。

图11 外轮廓绘制

图12 滤除

3.3 求中心坐标

在进行小麦中心点提取过程中,采用了区域生长算法[18],步骤如下:(1)经图像预处理后得到小麦轮廓区域,应用二次加权灰度重心法提取小麦轮廓区域中心的初始点;(2)根据小麦中心坐标初始点,利用区域增长法生成小麦中心坐标的小范围圆形区域,使用主成分分析代替多次求解高斯卷积过程求得小麦中心亚像素坐标。

3.3.1 小麦中心初始点提取

在获得小麦区域轮廓后,通过检测轮廓的边界像素值继续求取轮廓的中心坐标值,可以得到轮廓边缘的非零灰度值对应点的坐标值,并将其标记为(xi,yj),采用二次加权灰度重心法提取小麦轮廓区域中心的初始位置,可以表示为

(6)

(7)

式中:g(xi,yj)——图像中的第xi行第yj列坐标点的灰度像素值;

Xcenter——小麦中心初始点的横坐标值;

Ycenter——小麦中心初始点的纵坐标值。

3.3.2 小麦中心坐标提取

将加权灰度重心法提取的小麦中心坐标初始值作为区域生长的种子点,将灰度阈值作为生长准则,以种子点为圆心,以3邻域像素值(经实地测量施肥铲半径得到)为半径辐射形成一生长连通域,通过判断像素点灰度差值,将小于灰度阈值的点归为一个连通域,可有效防止过度生长。其生长域如图13所示。

图13 中心生长域示意图

(8)

式中:Wp——生长连通域的宽度值。

要注意,得到的小麦中心坐标值为像素点坐标。将此像素点坐标求出后,这一流程实时执行后就可以一直得到中心位置,相对的也就确定了施肥铲的位置,以此作为反馈信息,再进一步去控制移动施肥铲,达到想要的效果。

4 小麦中心坐标对比试验

4.1 试验材料

本文所进行的对比试验是在山东省青岛市枞森农业机械研究所合作的青岛清保农机专业合作社进行,所种植的小麦品种为鲁麦15号,每垄种植4行小麦,行距为25 cm。

4.2 坐标转化

为了验证小麦垄行中心坐标的识别效果,将摄像头采集的像素点坐标与实际测量的中心点坐标做比对,借助试验对这种检测方法进行评估。

为了试验方便进行,将摄像头得到的像素点坐标转化为图像坐标。其中,像素坐标系和预想坐标系都在成像平面上,只是各自的原点和度量单位不一样,图像坐标系的远点为摄像头光轴与成像平面的交点,图像坐标系的单位为mm,属于物理单位,而像素坐标系的单位是pixel,平常描述一个像素点都是几行几列。所以这两者之间的转换如下:其中dx和dy表示每一列和每一行分别代表多少mm,即1 pixel=dxmm。坐标转换示意图如图14所示。

根据像素点坐标可以分别表示其图像坐标,表达式如下

(9)

具体求解表达式如下

(10)

图14 坐标转换示意图

4.3 试验验证

随机选取一片麦田,并在该区域中随机选取一段区域,划线或是标记好即可,在选定的区域每隔20 cm取一个中心坐标点,总计取100个,也就是100幅图片。给定不同的光照条件,即良好、一般、昏暗。将摄像头在选定的区域内移动,实际测量如图15所示。并标记好要记录的点数,记下该点的像素坐标值,并通过式(9)、式(10)转化为相应的图像坐标值,用游标卡尺在相应的坐标点上人为测量,对这两组值进行比对,计算识别准确率,并分析该识别方法的准确性。试验数据如表1所示。

图15 试验测量图

表1 试验数据坐标对比Tab. 1 Comparison of experimental data coordinates

由表1可以看出,当环境照度在10 Lux以上时,光照强度的变化对图像识别的效果影响不大,当照度低于10 Lux时,图像识别的坐标值正确率不高,基本无法正常工作;而光照强度足够时,识别的正确率均在90%以上。由此可见,此方法对小麦中心坐标位置的确定具有较高的识别正确率。

5 结论

1) 本文利用OpenCV图像处理技术获取小麦垄行之间的中心坐标值,将获得的小麦垄行的图像值经过HSV颜色空间转换、滤波等得到二值化图像,经膨胀腐蚀得到清晰的小麦垄行轮廓坐标图像,最后采用区域生长算法得到小麦中心区域坐标值。

2) 经过人工测量的验证,可以证明在白天也就是光照充足的情况下(室外太阳照射条件下),光照强度的变化对中心坐标的影响效果不大,识别正确率可以达到90%以上,具有较高的检测精度。

3) 本文研究了一种基于OpenCV的新型小麦施肥铲自动对行分层施肥系统,使得返青小麦能够进行自动化对行分层施肥,有助于解放人力,提高耕作效率,提高小麦产量,在当前我国小麦由中产向高产、超高产迈进的道路上具有十分重大的意义。

猜你喜欢
坐标值像素点轮廓
基于局部相似性的特征匹配筛选算法
OPENCV轮廓识别研究与实践
探讨数控铣床操作实训中零件装夹及对刀方法
基于实时轮廓误差估算的数控系统轮廓控制
探讨Excel2007与ArcGis10.0结合提取小班四至界限的坐标值
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
高速公路主动发光轮廓标应用方案设计探讨
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于宏程序的数控车削加工应用