耿欣 李君兴 董云哲 于海涛 孙玲 徐慧磊 谭杰
(吉林省农业机械研究院,吉林 长春 130011)
作为人口大国,人口的数量不断增长,各种粮食蔬菜等农副产品的消耗也随之增长,这就需要在有限的土地资源上,不断提高农作物产量、优化土壤环境,促使我国必须走精准农业的道路。精准农业,就是通过对农业生产环节中各项因素的调节,以推动高效农业的发展,在减少投入、降低成本、减轻环境污染的同时,不仅能提高农产品的产量、质量,还能使农产品可控化、标准化和批量化,对于农产品的加工、出口等方面均有重要的作用和意义。如,精准施肥可以减少肥料的使用[1],以达到保护土壤的目的,精准施药可以减少农药的使用,以达到保护环境的目的等。
随着计算机科学与图像处理技术的快速发展,为精准农业的发展提供了必要条件,机器视觉技术的研究与应用已在农业工程领域,监测农作物长势、病虫害防治、农作物的识别与检测、农作物自动收货、农产品品质分类、运输分拣加工存储[2]等,在减少人工成本的同时,提高了劳动质量和效率。
本文基于图像处理技术,采用一种自动化的识别方式,识别地垄横截面的主要特征,比传统的格尺测量效率更高,该方法得到的数据可以方便传给计算机做后处理。识别地垄特征主要意义是用于自动化智能农机设备,如东北很多农村的农田大小不一、形状各异,不同归属的农田交织相错,不适合大型农机的作业,只能用小型犁地机手动进行起垄操作,地垄的间距不一、高矮不同,并非像大型农机那样起垄非常标准,后续小功率智能农机进场,就需要对地垄基本形态做一个识别,如判断垄顶的位置,方便播种机或是施肥施药机进行精准作业;判断垄沟的位置,方便农机车轮实时调整间隙及方向,防止破坏地垄或是压苗。所以地垄截面特征自动化识别,对农机的智能化具有积极的意义。
本实验采用型号为1515的铝合金型材搭建辅助测量机构框架,方便调节;激光器垂直照射地垄,一字光线垂直于地垄延伸方向;激光器发射端面距框架底面距离700mm,激光器中心距工业相机安装孔距离500mm;工业相机安装孔距底面距离700mm,相机的拍摄方向为水平向下45°角。
图1 测量机构结构示意图
工业相机及镜头,接口USB 3.0,免驱动,200万像素(1920×1080),30帧·s-1;
一字激光器,3.3V供电,功率5mw,波长650nm,可以发射一字形状的激光;
笔记本电脑Win7 i5,带USB 3.0接口。
图2 辅助测量机构实物 图3 农田测量原始图像数据
QT5.9.1,QT是跨平台C++图形用户界面应用程序开发框架,可以制作漂亮的软件界面,各种2D/3D图表,也可调用OpenCV里的函数进行图像处理、数据分析。
OpenCV3.4.10,OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows等操作系统上,其轻量级而且高效,实现了图像处理和计算机视觉方面的很多通用算法。
实验所用相机存在图像畸变,用标准棋盘格进行校正标定,标定结果如下。
相机内参数矩阵:
畸变系数:
[-0.5640860668260472,1.334478592907218,-0.001954098647446536,
0.003381037536167425,-3.584386632028848]
2个矩阵参数作为常量保存在程序里,用作图像校正,以减少图像的畸变。
计算相机像素尺寸与标准尺寸的平均比值,具体如表1所示。
表1 像素尺寸与实际尺寸的比值ηi
平均系数计算公式:
(1)
式中,ηa为平均系数;ηi为每次测量得到的系数;n为测量的组数。
通过公式(1)计算,得相机像素尺寸与标准尺寸的平均比值ηa=2.75,即1mm≈2.75像素。
研究以图3原始图像数据为例,进行图像处理分析。
实验中的激光照射到土地上后偏红色,把原始图像数据转换成HSV颜色空间的图像,从而分离出红色元素,对HSV图像进行红色范围的二值化[3],得到了图4。图4是由不连续的点组成的图像,需要拟合处理生成一条连续的折线,从图片的左边起,每30个相机像素采集一个白点,首尾相连,拟合后的折线图像如图5所示。
图4 经过HSV处理的二值图 图5 生成连续折线
图6 特征检测与测量 图7 结果显示在原始图上
图6是通过对每段折线斜率的比较,得到连续折线的波峰和波谷,波峰即垄顶,用蓝色圆圈标注,波谷即垄沟,用绿色圆圈标注。地垄宽度为2个波谷的距离,像素尺寸为960,根据公式(2)得到相邻垄沟之间的距离为349mm,即地垄宽度尺寸。
地垄宽度计算公式:
(2)
式中,Lh为软件换算后得到的地垄宽度,mm;Lx为图像中垄沟的像素尺寸。
图7为识别后的结果映射到原始图数据上,方便直观观察。
表2 地垄宽度测量结果表
因为该实验每30个相机像素采集一个白点,30个相机像素对应标准尺寸为11mm,所以每个白点的位置误差为±11mm,由于地垄宽度是由2个白点的宽度计算得到的,所以该算法得出的地垄宽度误差为±22mm,因为算法也属于系统的一部分,所以也可看做系统误差为±22mm。通过对几组不同长度地垄宽度的测量,误差均在系统误差范围内,符合实验要求。
通过实验结果的比较与分析得出,该方法可以较为准确地识别出地垄的垄顶、两侧的垄底,以及计算出地垄宽度,对农机的自动化、智能化具有积极的作用。本实验由于采用识别激光线的方法测量,对光照要求较为严格,需要在灰暗的条件下进行。本实验算法,只对截面类似于三角形的地垄有效,截面是梯形及复杂形状的地垄该算法无法测量。