基于机器视觉的叶菜类蔬菜菜垄识别算法

2020-04-18 12:50李亚军林洁雯胡正方龙震寰
中国农业大学学报 2020年3期
关键词:基准线菜地光照

李亚军 向 阳 林洁雯 胡正方 龙震寰

(湖南农业大学 工学院,长沙 410128)

近年来,我国蔬菜产业发展迅速,蔬菜生产和消费均居世界首位[1]。2010—2018年我国蔬菜出口量持续增长,2018年蔬菜出口量达948 万t,其中叶菜类蔬菜约占蔬菜生产总量的1/3[2]。但目前我国叶菜类蔬菜的生产作业基本靠人工完成,生产环节机械化自动化水平和综合效益较低[3]。

现代农业生产工作中,自主导航是农业机械实现施肥、打药、收获自动化的重要保障[4]。目前农机自主导航技术主要包括卫星定位导航和机器视觉导航。其中,卫星定位导航适用于定轨迹的导向,对于垄间精确定位行走适用性不好[5];机器视觉导航采集、处理和分析田间图像提取导航基准线,实现自主行走[6],相对于前者,具有局部定位优势,更适合复杂的垄作环境[7]。

已有研究对基于机器视觉的田间导航提出了许多方法:1) 基于YUV、HIS等颜色空间光照无关分量进行作物灰度特征提取,减少了外界光照环境的干扰[8-9];2) 基于行列扫描、聚类等归类算法对作物区域提取,实现多列作物目标的检测与感兴趣区域提取[10-11];3) 基于Hough变换或最小二乘法可实现对作物轮廓离散点进行直线拟合[12-13]。而上述研究仍然存在一些问题,如Hough变换和最小二乘法拟合直线均对噪声敏感、检测精度低和适应性差[14]。同时上述的田间视觉导航技术研究主要针对小麦、玉米等粮食作物,目前未见针对叶菜类蔬菜的菜垄导航技术的研究和报道。

基于以上问题,本研究以蕹菜菜地为研究对象,提出一种基于机器视觉的叶菜类蔬菜菜垄识别算法。选用改进的超绿算法对图像进行灰度化处理,再利用中值滤波进行图像去噪,并通过二值形态学变换和连通区域提取获得菜垄区域和边界,最终基于Huber损失函数对菜垄边界进行直线拟合,提取导航基准线。

1 图像获取及灰度化处理

1.1 图像获取

菜地图像采集平台由映美精DFK 21BU618彩色相机、康标达(Computar) 8.5 mm工业镜头以及相机支架等构成,相机输出为BMP格式的RGB彩色图像,分辨率为640像素×480像素。图像获取过程中,采集平台安装在农业机器人上,相机距地面高度为1 m,倾角为20°。试验菜地虽然经过平整,但是依旧存在凹凸不平的地方,机器人在图像获取过程中相机倾角会发生偏移,偏移量在±5°以内。用于图像处理的计算机为Intel(R) Core(TM) i5-3230 M CPU,主频2.60 GHz,4 G内存,安装Windous10 64位操作系统,视觉导航测试系统基于Microsoft Visual Studio 2015平台,并搭建OpenCV 3.0开发环境进行图像处理。

1.2 基于改进超绿算法的灰度化处理

获取菜地原始图像后,为准确地把菜垄从菜地背景中提取出来,需要选择合适的颜色空间和转换算法进行图像灰度化处理,以减少复杂背景和光照的影响。从采集的图片(图1(a1)~(a4))可以看出,菜垄区域相比于垄间区域具有明显绿色特征,且垄间区域亮度相对偏暗。

传统突出图像中绿色特征的方法常采用超绿算法[15-17]进行灰度化处理,即利用RGB颜色空间R(红色)、G(绿色)和B(蓝色)3个通道分量,构建超绿分量2G-R-B进行图像灰度化运算,效果见图1(b1)~(b4)。可以看出,随着光照强度的变化,2G-R-B分量图亮度也发生相应变化,尤其是当菜地存在阴影时(图1(b4)),阴影区灰度值更接近垄间灰度值,为后期的图像二值化处理增加了难度。

出现上述灰度图像亮度不同情况的主要原因是RGB 颜色空间对于光照的变化比较敏感,易受到高光和阴影的影响[18]。目前常用的颜色空间还包括HIS、YUV等。HIS空间以H(色调)、S(饱和度)和I(强度) 3种基本特征量来感知颜色,其中S分量可以把蔬菜和背景的对比度体现出来,但是RGB格式转HIS格式为非线性转换,处理时间长,效果见图1(c1)~(c4);YUV又称为YCrCb,最大优势是可以把RGB图像中的色度信息与亮度信息区分开[19],可以有效去除光照的影响,且YCrCb与RGB之间转换为线性,算法简单、计算量小[20]。

针对以上特性,本研究引入一种改进超绿算法[14]对蔬菜图像进行灰度化处理,在YCrCb空间中引入Cg(绿色色度)分量,把超绿算法中的R、G、B转化为Cr(红色色度)、Cg(绿色色度)、Cb(蓝色色度),构建改进超绿分量2Cg-Cr-Cb进行图像灰度化运算,在消除光照或阴影的情况下,加大绿色信号,减少红色和蓝色信号的影响。

YCrCb空间颜色各通道分量可以通过对RGB颜色空间进行简单线性转换得到,同时为保证YCrCb空间颜色各通道分量非负,通常会在原值基础上增加偏移量[19,21],转换公式为:

(1)

式中:Y为YCrCb空间颜色亮度分量;Cr为YCrCb空间颜色红色色度分量;Cb为YCrCb空间颜色蓝色色度分量;其中,Cr与Cb表示RGB输入信号红色、蓝色部分与RGB信号亮度值之间的差异,且相互独立。

同时YCrCb空间格式可由R、G、B3个分量表示:

(2)

式中:Kr、Kg和Kb为YCrCb颜色空间加权因子。3个加权因子之间的关系为:

Kr+Kg+Kb=1

(3)

联立式(2)、(3),得到Cg在YCrCb空间颜色绿色色度分量的表达式:

(4)

根据国际电信联盟-无线电通信部(ITU-R)的BT.601协议,本研究定义加权因子Kr的值为0.299,Kb为0.114。所以联立式(1)、(3)和(4),可以得到YCrCb颜色空间中Cr、Cg和Cb分量关于RGB格式的表达式:

(5)

(a1)~(a4)为晴天、高光、阴天和晴天(带阴影)菜地原始图像;(b1)~(b4)为2G-R-B分量图像;(c1)~(c4)为S分量图像;(d1)~(d4)为2Cg-Cr-Cb分量图像。(a1)-(a4) are the original images of vegetable field in sunny, highlight, cloudy and sunny with shadows; (b1)-(b4) are 2G-R-B component images; (c1)-(c4) are S component images; (d1)-(d4) are 2Cg-Cr-Cb component images.图1 4种光照条件下菜地不同颜色空间分量图Fig.1 Component graph of different color space of vegetable field under four illumination conditions

将式(5)带入到改进超绿分量2Cg-Cr-Cb对蔬菜原始图像进行灰度化处理,效果见图1(d1)~(d4)。

为对比各颜色空间分量在不同光照环境下对背景噪声的抑制效果,分别针对晴天、高光、阴天以及晴天(带阴影)4种光照条件下菜地图像进行试验(图1),对比各分量图像可以发现,2G-R-B分量和2Cg-Cr-Cb分量图像相对于S分量图像目标与背景对比度更清晰,更能清晰地显示菜地垄间特征。

基于上述分析,本研究对4种光照条件下,灰度化处理后的2G-R-B分量和2Cg-Cr-Cb分量图像绘制灰度直方图(图2)。可以明显发现,在不同光照条件下,传统超绿算法的2G-R-B分量亮度变化相对于2Cg-Cr-Cb分量更加明显,受光照干扰较大,因此本研究选用改进超绿算法对菜地图像进行灰度化处理。

图2 4种光照条件下菜地2G-R-B分量和2Cg-Cr-Cb分量灰度直方图Fig.2 Gray histograms for 2G-R-B component and 2Cg-Cr-Cb component of vegetable field under four illumination conditions

2 图像分割与菜垄边界提取

2.1 中值滤波与二值化

为进一步提取菜垄图像,本研究选用自适应阈值的大津(OTSU)法[4]进行二值化,效果见图3。图像中存在大量的细小孤立噪声(图3(b)),因此本研究选用5×5的滤波窗口对图3(a)进行中值滤波,再进行图像二值化,效果见图4,二值图像中(图4(b))细小孤立噪声基本上被去除。

图3 晴天菜地2Cg-Cr-Cb分量图像和OTSU法处理后二值图像Fig.3 Gray image of 2Cg-Cr-Cb component and binary image processed by OTSU of vegetable field under sunny condition

图4 中值滤波处理后的菜地灰度图像(a)和二值图像(b)Fig.4 Gray image (a) after median filtering and binary image (b) of vegetable field

2.2 菜垄边界提取

本研究以中间菜垄为研究对象,提取二值化图像中最大连通区域并进行填充,实现中间菜垄区域提取。但是田间环境复杂,存在菜叶遮挡垄间的情况,导致菜垄粘连,影响菜垄区域提取,效果见图5。针对这一问题,本研究采用5×5的矩形结构元对二值图像(图5(a))进行腐蚀处理,可以有效解决菜叶遮挡的问题(图6(a)、(b)),为了补偿因为腐蚀处理造成的边界信息损失,同样选用5×5的矩形结构元对图6(b)进行膨胀处理,效果见图6(c)。

(a)为阴天(图1(a3))经灰度化处理、中值滤波和二值化后的图像,红色圆圈内为菜垄区域粘连时情况;(b)为对图(a)提取连通区域后的图像。(a) is the image after gradation processing, median filtering and binarization of Fig.1 (a3). The red circle in the image shows the situation when the vegetable ridge area adheres to each other; (b) is the image obtained by extracting the connected area from the image (a).图5 菜叶遮挡垄间条件下菜地二值图像和连通区域提取图像Fig.5 Binary image and connected area extraction image of vegetable field with leaves shaded between ridges

图6 菜叶遮挡垄间条件下菜垄区域形态学处理过程Fig.6 Morphological processing of vegetable ridge with leaves shaded between ridges

以图6(c)中黑色区域为研究对象,找到最大和第二大连通区域,并基于Canny算法对图7(a)进行处理,获得菜垄边界曲线(图7(b))。

图7 菜垄区域提取图像和边界提取图像Fig.7 Vegetable ridge area extraction image and boundary extraction image

3 菜垄边界曲线拟合和导航基准线的生成

3.1 基于Huber损失函数的边界曲线直线拟合

为更好获取导航基准线,对提取的菜垄边界曲线进行直线拟合。直线拟合主要有Hough直线变换和最小二乘法直线拟合。Hough直线变换计算量较大,且生成多条直线[10];而最小二乘法具有计算公式简单明确,运算速度快的特点,更满足循迹机器人在菜地快速获取导航信息的需求,但易受到误差点的影响[8]。因此本研究提出一种基于Huber损失函数的菜垄边界直线拟合方法。

Huber损失函数结合了线性回归损失函数和绝对值损失函数,是为了增强平方误差损失函数(最小二乘法)对噪声(或叫离群点)的鲁棒性提出的[22]。当拟合直线与边界曲线上点之间的距离很小时,就是最小二乘拟合函数,当距离较大时,为二次函数。对于边界曲线中的异常点没有最小二乘拟合函数敏感,且相比其他损失函数具有效率高的特点[23]。其中Huber函数的公式为:

(6)

式中:α为残差,在直线拟合中即为生成直线与离散点之间的距离;δ为边界值,用于判断是否为误差点。

本研究基于OpenCV 3.0函数库,利用最小化代价函数的方式来进行直线拟合[24]。函数定义如下:

(7)

(8)

传统的最小二乘损失函数公式为:

(9)

利用Huber损失函数进行距离度量时,拟合函数公式为:

(10)

式中:C为边界值,可设置C=0,函数自动为选中的拟合方法提供最优C值。

因此,本研究基于式(10)分别对两侧菜垄边界曲线进行直线拟合,每侧拟合直线输出结果均由Vx、Vy、X、Y4个值组成,其中(Vx,Vy)为生成直线的单位矢量,(X,Y)为通过该测拟合直线的一点,则可得到该侧拟合直线函数(单侧菜垄边界线方程)为:

(11)

式中:x表示生成的菜垄边界线上的点坐标列像素序号;y表示生成的菜垄边界线上的点坐标行像素序号。分别采用最小二乘和Huber损失函数,对菜垄离散点簇进行直线拟合,生成菜垄边界线,结果见图8和图9。

图8 基于最小二乘法的菜垄边界提取图像Fig.8 Vegetable ridge boundary extraction image based on least square method

图9 基于Huber损失函数的菜垄边界提取图像Fig.9 Vegetable ridge boundary extraction image based on Huber loss function

3.2 导航基准线生成

在得到左右两条菜垄边界线方程后,联立两直线方程求解角平分线,即为导航基准线。角平分线斜率计算公式为:

(12)

式中:k为中心导航基准线斜率;k1为左边菜垄边界线斜率;k2为右边菜垄边界线斜率。再求得左右菜垄边界线方程的交点,即可得到中线方程。生成的菜地导航基准线见图10。

4 试验与结果分析

为验证叶菜类蔬菜菜垄识别算法的准确性,于2019年5月在湖南农业大学耘园拍取蕹菜菜地图片,并进行试验。

黑线为两侧菜垄边界线,红线为生成的导航基准线。The black line is the border line of vegetable ridges on both sides, and the red line is the navigation datum line.图10 菜地导航基准线Fig.10 Navigation datum line in vegetable field

4.1 光照因素影响试验

光照条件是影响田间成像效果的重要因素,除了受到天气、时间的影响,还受到遮挡物甚至工作机具自身阴影的影响。本试验分别采集晴天、高光、阴天以及晴天(带阴影)图像,每种情况抽取20张图片,共80张图片,进行不同光照环境下的导航基准线提取试验。

试验结果显示,80张图片中,78张图片可以正常获取菜垄边界线,识别成功率为97.5%。部分结果见图11,可以看出在不同光照环境下,本研究提出的叶菜类蔬菜菜垄识别算法可以准确提取菜垄边界线。对于不能正常获取菜垄边界线的2张图片,主要原因为蔬菜长势过于旺盛,遮挡了大部分垄间区域,导致菜垄区域粘连严重,从而造成菜垄识别结果失败。

图11 4种光照条件下菜垄识别图像Fig.11 Vegetable ridge recognition image under four illumination conditions

4.2 导航基准线提取精度验证试验

在精度验证试验中,基于本研究提出的叶菜类蔬菜菜垄边界曲线提取算法,对78幅图片进行处理,并基于Huber损失函数对边界曲线进行直线拟合,生成菜垄边界线与导航基准线,验证提取精度。

试验结果以生成的导航基准线相对于实际菜垄中心线的角度与横向偏差来衡量导航基准线精度,其中选用均方根误差来衡量横向偏差程度。

均方根误差RMSE的计算公式为:

(13)

角度偏差:

Δθ=||θ1|-|θ2||

(14)

式中:μi为生成导航基准线中第i点的坐标行、列像素序号;ωi为实际菜垄中心线中第i点的坐标行、列像素序号;n为样本数;θ1为生成导航基准线在图像坐标系中的偏转角度,(°);θ2为实际菜垄中心线在图像坐标系中的偏转角度,(°);Δθ为图像坐标系下的角度偏差,(°)。

对于菜垄实际中心线的构造,本研究选用人工标定的方法获取:首先人工划定菜垄区域,并去除其他区域,然后根据提取到的图像获取边界直线方程,最后通过得到的两条边界曲线角平分线的方式,实现菜垄中心线的提取。具体过程见图12。

图12 菜垄实际中心线人工提取过程Fig.12 Artificial extraction process of real center line of vegetable ridge

试验结果见表1。本研究提出的基于Huber损失函数的直线拟合方法,最大均方根误差为6.864像素,最大角度偏差为2.749°。用最小二乘法对同一批次图片进行导航基准线提取,最大均方根误差为 11.663 像素,最大角度偏差为4.734°。本研究提出的基于Huber损失函数的导航基准线提取方法,平均均方根误差为0.668像素,比最小二乘法高72.5%,平均角度偏差为0.273°,比最小二乘法高72.6%,处理单张图片耗时277.1 ms,与最小二乘法处理速度相似。

在试验的78张图片中包含4种光照条件,本研究对这4种光照条件下的导航基准线提取进行分析,结果见表2。可见,在晴天、高光和阴天3种天气情况下,平均均方根误差最大差值为0.068像素,平均角度偏差最大差值为0.028°,图像处理速度相似,且3种天气情况的平均均方根误差和平均角度偏差均低于78张图片的整体偏差平均值。在晴天(带阴影)条件下进行航基准线提取,平均均方根误差为0.930像素,平均角度偏差最大差值为0.377°,平均耗时290.7 ms,相对于晴天无阴影条件,提取精度较低,耗时更久。

表1 2种菜地导航基准线提取算法性能评估Table 1 Assessment performance under two kinds of vegetable field navigation baseline extraction algorithm

表2 4种光照条件下菜地导航基准线提取算法性能评估Table 2 Assessment performance of vegetable field navigation datum line extraction algorithm under four illumination conditions

5 结 论

本研究提出了一种基于机器视觉的叶菜类蔬菜菜垄识别算法。选用改进的超绿算法对菜地图像进行灰度化处理,再利用中值滤波进行图像去噪,并通过二值形态学变换和连通区域提取获得菜垄区域和边界,最终基于Huber损失函数对菜垄边界进行直线拟合,提取导航基准线。试验结果表明:

1)采用改进超绿算法在进行灰度化处理,可有效降低光照条件影响。在不同光照条件下,相对于传统超绿算法和HIS空间S分量,本研究采用的改进超绿算法受光照变化的影响最小,菜垄边界线识别成功率为97.5%,具备较好的鲁棒性。

2)基于Huber损失函数实现导航基准线的提取,在保证处理速度的同时提高了识别精度。对78幅图片进行导航基准线提取精度验证试验,并与最小二乘法对比发现,本研究提出的导航基准线提取算法平均均方根误差为0.668像素,较最小二乘法高72.5%,平均角度偏差为0.273°,较最小二乘法高72.6%,处理单张图片耗时277.1 ms,与最小二乘法处理速度相似。

猜你喜欢
基准线菜地光照
菜地游乐园
菜地的面积
碳交易市场体系中的碳排放基准线:应用实践、研究进展与展望
节能环保 光照万家(公益宣传)
菜地的周长
节能环保光照万家(公益宣传)
菜地里的狂欢
春光照瑶乡
服装CAD系统中的光照面向对象分析