基于视觉图像的田间甘蓝计数
Field Cabbage Counting Based on Visual Image
DOI: 10.12677/CSA.2022.126162, PDF, HTML, XML, 下载: 251  浏览: 449 
作者: 宋雨轩*, 江 田:重庆师范大学计算机与信息科学学院,重庆;重庆市数字农业服务工程技术研究中心,重庆
关键词: 蔬菜识别自适应阈值分割视觉图像形态学操作Vegetable Detection Adaptive Threshold Segmentation Visual Image Morphological Operation
摘要: 田间蔬菜计数是预估产量的重要技术手段,可以帮助农民提前规划销售、仓储和运输,提高收益。本文以甘蓝为例,实现基于视觉图像的田间蔬菜识别计数。算法是:首先对图像b通道高斯平滑滤波,然后应用b通道直方图实现蔬菜与非蔬菜的自适应阈值分割,再利用改进极限腐蚀算法对分割出的蔬菜二值图像腐蚀,最后用动态生成腐蚀核划分连通域实现蔬菜计数。航拍甘蓝图像的分割、计数实验结果显示:本文算法分割蔬菜与非蔬菜的精度为82.41%,高于OTSU对比算法;本文算法计数准确率达100.00%,召回率为96.08%,F1-score为0.98。实验结果表明,算法是有效的。
Abstract: Field vegetable counting is an important technical means to estimate yield, which can help farmers’ plan sales, storage and transportation in advance and improve income. Taking cabbage as an example, this paper realized the recognition and counting of field vegetables based on visual image. The algorithm is: firstly, the image b-channel Gaussian smoothing filter was used, then the b-channel histogram was used to realize the adaptive threshold segmentation of vegetables and non-vegetables, then the segmented binary image of vegetables was corroded by the improved limit corrosion algorithm, and finally, the connected domain was divided by dynamically generated cor-rosion core to realize the counting of vegetables. The experimental results of aerial cabbage image segmentation and counting showed that the accuracy of this algorithm is 82.41%, which is higher than that of OTSU comparison algorithm; the counting accuracy of this algorithm is 100.00%, the recall rate is 96.08%, and the F1-score is 0.98. Experimental results show that the algorithm is effective.
文章引用:宋雨轩, 江田. 基于视觉图像的田间甘蓝计数[J]. 计算机科学与应用, 2022, 12(6): 1610-1622. https://doi.org/10.12677/CSA.2022.126162

1. 引言

蔬菜是人们日常生活中不可缺少的副食品。我国既是蔬菜生产大国,又是蔬菜消费大国 [1]。科技水平的提升促进农业现代化的发展我国蔬菜种植水平不断提升,种植规模不断扩大,种植种类繁多。若在种植过程中能比较精确地预估蔬菜产量,无疑将给后续的销售、仓储、运输带来好处。甘蓝是重要的种植蔬菜,单颗计数是甘蓝产量预估的技术手段之一。目前,主要采用人工计数,技术落后,耗时耗力。随着,我国城镇化进程的加快和农村富余劳动力向非农产业的转移,叶菜生产劳动力短缺和老龄化日趋严重,出现用工荒,生产用工成本增加,进一步提高了蔬菜的种植成本,阻碍种植业的持续发展 [2]。因此,基于视觉图像的田间甘蓝计数值得研究,以提高甘蓝产量预估的效率。

基于视觉图像的田间蔬菜计数算法较少,视觉图像的其它计数方法有很多,可借鉴用于田间甘蓝计数研究。任亚飞等 [3] 通过采集样本图像,图像降噪并分割,基于形态学的钢球识别计数环节,实现在光照适宜的条件下,少量简单的钢球100%精度的数目统计工作。王海燕等 [4] 针对千粒重种子在光照不同的条件下图像分割的问题,提出了HSV色彩空间转换与二维直方图的OTSU自适应阈值分割算法,提高了图像分割的准确性,并通过极限腐蚀实现种子的识别计数。实验结果最终达到99.5%的精度。徐惠荣等 [5] 提出了基于彩色信息的树上柑橘识别方法,能识别自然环境中树上的柑橘,为机械手提供信息完成果实的自动采摘,方法首先提取柑橘和树叶树枝的颜色特征分析,接着调用动态阈值算法分割图像,分离出柑橘区域,最后通过形状检测识别柑橘并计数,实验达到了96%的精度。

目前国内市场上甘蓝品种繁多 [6],且甘蓝的大小、形状与种子、橘子相差较大,不同甘蓝植株之间也有大小和形状的差异,现有检测方法均不适用,大规模视觉图像的田间甘蓝计数尚需进一步研究。

2. 田间甘蓝计数总体思路

首先将图像从RGB色彩空间转到Lab色彩空间;接着对图像做高斯滤波平滑操作,抑制图像噪声;然后获取图像的直方图,使用自适应阈值分割算法,获取分割植物区域与非植物区域;使用形态学闭运算去除甘蓝菜心部分中的噪声;并提出自适应腐蚀核生成算法,获得单颗甘蓝植株的平均直径大小,调用改进的极限腐蚀算法逐步调整腐蚀核的大小,记录腐蚀过程的连通域状态,完成田间甘蓝的识别计数。田间甘蓝计数流程如图1所示:

Figure 1. Overall flow of cabbage counting algorithm in the field

图1. 田间甘蓝计数算法的总体流程

3. 田间甘蓝图像分割

3.1. 颜色特征分析

在果蔬分割研究中,目前常用的颜色空间主要包括:RGB、归一化RGB (rgb)、HSI、Lab、YIQ、YCbCr、HSV和LCD (Luminance and color difference)等 [7]。研究对采集的甘蓝图像分析发现:大部分甘蓝图像在Lab颜色空间下表现出良好的可分离特性。Lab颜色模型由三个要素组成:亮度(L)与a、b两个颜色通道。a颜色通道由深绿色(低亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);b通道颜色通道从亮蓝色(低亮度值)到灰色(中亮度值)再到黄色(高亮度值)。根据不同果蔬与背景的颜色特征差异,可依据图像的a或b通道,有效地分割出图像中的甘蓝区域。其中L、a和b的通道直方图分别如图2(a)~(c)所示。

Figure 2. Sample Lab color space histogram

图2. 样本Lab色彩空间直方图

由直方图可见,b通道下的灰度差异较明显,区分性较好,利于本研究的色彩分割。颜色空间与分割图像的颜色通道确定后,设计阈值分割算法,实现甘蓝区域与非甘蓝区域的图像分割。

3.2. 图像预处理

由于图像采集设备的特性及外界环境的干扰会使图像产生一定的噪声, 降低图片的质量 [8],因此需要在图像分割前对其降噪处理。常见的图像降噪主要由均值滤波器、中值滤波器、高斯滤波器等对图像的平滑操作实现。高斯函数具有中心对称性, 距离中心越远对信号的加权作用越小 [9]。因而,高斯滤波器的模板系数,也随着距离模板中心的增大而减小,加权平均生成新像素的过程中,极大程度地保留了本身的灰度值,保持原图颜色。本实验采用高斯滤波器降噪,实验采用的卷积模板由如式1所示高斯函数生成:

f ( x , y ) = A exp ( ( ( x x 0 ) 2 2 σ x 2 + ( y y 0 ) 2 2 σ y 2 ) ) (1)

其中,A是幅值,x和y是中心点坐标, σ x σ y 是方差,根据此公式得到不同 σ 的高斯模板,本文中 σ x σ y 都为0.5,A取1。

运用高斯滤波器平滑处理b通道下的灰度图,有效减弱了图像中的噪声,降噪前后对比如图3所示。

Figure 3. Comparison diagram before and after Gaussian filtering

图3. 高斯滤波前后对比

3.3. 自适应阈值分割

经实验发现,所有图像都由间地块和甘蓝区域组成,甘蓝区域的灰度值与田间地块的灰度值相差较大,且两部分区域内部像素分布均匀,图像的灰度直方图呈现出双峰特性。研究选取位于两个峰值中间的谷底灰度值T作为阈值,比较阈值与图像中各个像素的灰度值,实现灰度图二值化,甘蓝区域和非甘蓝区域得以被标记区分。阈值化操作简化样本图像,尽量多地过滤掉冗余信息,同时保留有效信息,帮助放大蔬菜与田间背景在所选的颜色特征上的差异,实现两类对象的图像分割。阈值化操作如式2所示:

χ ( x , y ) = { 1 , f ( x , y ) > T 0 , f ( x , y ) T (2)

其中, χ ( x , y ) 为阈值化分割的田间甘蓝图像; f ( x , y ) 为输入的样本;T为选取的分割阈值。

根据分割阈值选择方式的不同,又可分为固定阈值法和自动阈值法 [7]。固定阈值法需要人工指定阈值,若实验样本更改,阈值就需要重新测量,灵活性较差。自适应阈值法能较好地适用于不同的样本图像,比人工设置效率更高,获得的阈值也更接近直方图的波谷,对象分割更加准确。

本文提出自适应阈值分割算法:首先找到直方图中的极大值点,因在原图中只存在土地背景区域和甘蓝区域,因此平滑直方图直至图中只保留数值最大的两处波峰,根据直方图的可分离特性确定两处波峰间的极小值点为最终的分割阈值。详细描述如算法1所示。

Algorithm 1. Adaptive threshold segmentation algorithm

算法1. 自适应阈值分割算法

4. 甘蓝计数

4.1. 自适应甘蓝半径获取

田间环境下,外界光强的变化、果蔬、枝叶表面病斑和污点都会给二值化的图像留有噪声和孔洞。若不加以进一步处理,会影响后续识别 [7]。因此,用形态学中先膨胀再腐蚀的闭操作填充物体内细小空洞、连接邻近物体、平滑其边界的同时保留原有单个甘蓝的面积。腐蚀和膨胀操作公式分别如式3和4所示,腐蚀前后图像分别如图4(a)和图4(b)所示。

X Y = { z | ( Y ) z X c Φ } (3)

X Θ Y = { z | ( Y ) z X c = Φ } (4)

(a) (b)

Figure 4. Comparison before and after closing operation

图4. 闭操作前后对比图

甘蓝样本图像中甘蓝都是成行地排列,只需要估计出每行甘蓝的宽度,计算均值后就可得到图中甘蓝的平均宽度。具体操作如下:

计算图像在竖直方向上的积分,绘制一维直方图,如图5(a)所示。选择直方图的均值作为二值化图像,得到如图5(b)所示直方图。对比图6图7可以发现,,每个波峰对应的是每行植物的宽度,因此,取波峰长度的均值就可以计算出甘蓝的平均宽度r。

Figure 5. Binary histogram

图5. 二值化的直方图

Figure 6. Original drawing of collected samples

图6. 采集样本原图

Figure 7. Binary sample image

图7. 二值化样本图像

4.2. 改进的极限腐蚀法

由于甘蓝的形状大小不一致,仅以甘蓝平均大小做腐蚀核做一次腐蚀操作,会导致甘蓝区域分割结果不太理想,标记到的连通域个数较少,识别到的甘蓝个数较实际值更少。因此,本研究改进了极限腐蚀法,根据甘蓝图像的特征调整了腐蚀核的变化幅度,通过循环反复腐蚀,标记极限腐蚀集合Ult(A)得到甘蓝植株的颗数,详细描述如算法2所示。

Algorithm 2. Improved limit corrosion algorithm

算法2. 改进的极限腐蚀法

本方法有两处优点,第一,传统方法的极限腐蚀核大小固定且偏小,需多次腐蚀才能得到结果。本研究定义第一次腐蚀的直径为r/2,对连续的植物图像做了初处理,减少了循环的次数和时间。第二,样本中存在着非甘蓝植株的植物(如杂草等),大小形状较甘蓝有明显不同,第一次腐蚀时,利用直径为r/2椭圆腐蚀核,可以过滤掉非甘蓝植物,提高代码的鲁棒性。甘蓝的标记计数结果如图8所示。

Figure 8. Cabbage mark counting results

图8. 甘蓝标记计数结果

5. 实验结果与分析

5.1. 样本的获取

在光照条件较好的亮度下,使用消费级无人机对田间甘蓝样本拍照。采集的样本如图9所示。

(a) (b) (c) (d)

Figure 9. Collected sample image

图9. 采集的样本图像

在真实的田间环境中一般存在杂草,杂草不仅与蔬菜争夺水分和养料,而且促进病虫鼠害的滋生 [10]。杂草的存在更会影响到甘蓝的识别计数,本研究将数据集划分为常规样本和鲁棒样本,来验证本研究提出的算法的精度与鲁棒性。

数据集1 (常规样本):采集样本图片中只包含甘蓝与田间地块的20张图像构成一般样本集;

数据集2 (鲁棒样本):样本中除甘蓝和田间地块外,还含有与单颗甘蓝植株颜色相近,外形相似的杂草堆。选择随机20张含有杂草堆的图像构成鲁棒样本集。

5.2. 实验设计

5.2.1. 实验设计

实验1:分割精度对比实验

为对比本实验提出的自适应阈值分割算法和OTSU阈值分割法的精度,选择其中一组样本,分别使用自适应阈值分割法和OTSU阈值分割法分割图像,计算两者与固定阈值分割结果的甘蓝区域重合率,重合率越高,算法精度越高。

实验2:常规样本计数

将样本集1的20张样本做计数实验,对比本文提出的改进的极限腐蚀法与固定腐蚀核法计数结果,精确度越高,算法越有效。

实验3:鲁棒样本计数

为检验算法对田间杂草的抗干扰能力,将所有样本集2中的鲁棒样本进行识别计数,分别利用本文提出的改进的极限腐蚀法与固定腐蚀核法完成鲁棒性验证实验。识别到的甘蓝植株数量越贴近真实值,计数越准确,算法鲁棒性越强。

5.2.2. 实验结果评价指标

1) Precision

精确率是指分类正确的正样本个数占分类器判定为正样本的样本个数的比例。精确率是对部分样本的统计量,侧重对分类器判定为正类的数据的统计。

Precison = TP TP + FP (5)

其中TP为样本为正,预测结果为正的样本个数;FP为样本为负,预测结果为正的样本个数。

2) Recall

召回率是指分类正确的正样本个数占真正的正样本个数的比例。召回率也是对部分样本的统计量,侧重对真实的正类样本的统计。

Recall = TP TP + FN (6)

其中,TP含义与式5一致,FN指的是样本为正,预测结果为负的样本的个数。

F1-score是精准率和召回率的调和平均值,其值域为[0, 1],通常值越大越准确。比较两个Recall和Precision各有优势的模型时,可以使用F1-score指标判断使用的模型。

F1 = 2 × Precision × Recall Precision + Recall (7)

5.3. 实验环境

完整的实验框架是在Python:3.8.5和Opencv-python:4.5.1.48上构建的。所有实验均在以下计算机硬件环境下完成:

·CPU:Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz 1.80 GHz;

·RAM:8.00 GB;

·OS:Windows 11.

5.4. 实验结果与分析

5.4.1. 分割精度对比实验结果与分析

选择一组常规样本分别用自适应阈值分割法和OTSU阈值分割法,分割结果如图10(b)和图10(c)所示,图10(a)为人工标记样本。

(a) (b) (c)

Figure 10. Comparison of cabbage regions segmented by different threshold segmentation methods

图10. 不同阈值分割法分割后的甘蓝区域对比

计算自适应阈值分割法和OTSU阈值分割法结果图像与固定阈值分割结果图像的重合率,实验结果如表1所示,本研究提出的自适应阈值分割算法甘蓝区域重合率远高于OTSU阈值分割法,更贴近固定阈值法的分割结果:

Table 1. Experimental results of segmentation accuracy

表1. 分割精度实验结果

5.4.2. 常规样本计数实验结果与分析

分别利用本文提出的改进的极限腐蚀法和固定腐蚀法的完成常规样本的计数实验,随机抽取2张样本对计数结果展示。改进的极限腐蚀法计数结果如图11(a)和图11(b)所示,固定腐蚀法计数结果如图11(c)和图11(d)所示。

(a) (b) (c) (d)

Figure 11. Comparison of counting results of conventional samples by different corrosion methods

图11. 不同腐蚀法对常规样本的计数结果对比

分别计算改进的极限腐蚀算法与固定腐蚀核算法对常规样本计数结果的Precision、Recall和F1-score得分,随机选择其中四张样本图像的数据展示算法精度。改进的极限腐蚀算法结果如表2所示,固定腐蚀核算法对常规样本计数结果如表3所示。

Table 2. Conventional sample method counting experiment based on improved limit corrosion

表2. 基于改进的极限腐蚀的常规样本法计数实验

Table 3. Conventional sample method counting experiment based on fixed corrosion method

表3. 基于固定腐蚀法的常规样本计数实验

由上表计数结果显示,本实验提出的计数算法对常规样本的平均召回率达96.08%,平均精确率高达100%,平均调和均值0.98;基于固定腐蚀法的对常规样本的平均召回率达82.98%,平均精确率高达100%,平均调和均值0.91。可见,本文提出的计数算法在田间甘蓝常规样本的识别计数准确率远大于固定腐蚀核法,计数效果更好。

5.4.3. 鲁棒样本计数实验结果与分析

分别利用本文提出的改进的极限腐蚀法和固定腐蚀法的完成鲁棒样本的计数实验,随机抽取2张样本对计数结果展示。改进的极限腐蚀法计数结果如图12(a)和图12(b)所示,固定腐蚀法计数结果如图12(c)和图12(d)所示。

(a) (b) (c) (d)

Figure 12. Comparison of counting results of robust samples by different corrosion methods

图12. 不同腐蚀法对鲁棒样本的计数结果对比

分别计算改进的极限腐蚀算法与固定腐蚀核算法对鲁棒样本计数结果的Precision、Recall和F1-score得分,随机选择其中四张样本图像的数据展示算法精度。改进的极限腐蚀算法结果如表4所示,固定腐蚀核算法计数结果如表5所示。

Table 4. Rrobust sample method counting experiment based on improved limit corrosion

表4. 基于改进的极限腐蚀的鲁棒样本法计数实验

Table 5. Rrobust sample method counting experiment based on fixed limit corrosion

表5. 基于固定腐蚀法的鲁棒样本法计数实验

由上表计数结果显示,本实验提出的计数算法对鲁棒样本的平均召回率达95.23%,平均精确率高达100%,平均调和均值0.98;基于固定腐蚀法的对鲁棒样本的平均召回率达80.31%,平均精确率高达100%,平均调和均值0.89。本研究提出的算法在田间甘蓝鲁棒样本的识别计数准确率远大于固定腐蚀核法,且杂草堆未明显影响甘蓝植株的识别与计数,算法鲁棒性较好。

6. 结论

本研究选择在基于Lab色彩空间的b通道,结合使用自适应阈值分割算法二值化图像,较准确地将样本图像分割为甘蓝菜和土地两部分。腐蚀、膨胀等形态学操作将连片的甘蓝分割成用于计数的单个连通域。常规样本和鲁棒样本的计数准确率都超过了95%,算法鲁棒性得到验证,召回率、精确率和调和均值数据良好,算法精度得到确认。

目前国内对蔬菜的识别计数的相关研究不是很充足,本实验通过视觉图像、图像分割和数学形态学操作,能够做到在短时间内实现对样本图像内甘蓝的计数,相比于人工肉眼计数更高效,更精准。希望以后有更多的相关研究,提出更优的算法,并可适应各种形态的蔬菜,实现更大面积的田间蔬菜计数。

NOTES

*通讯作者。

参考文献

[1] 金月, 肖宏儒, 曹光乔, 宋志禹, 张健飞, 杨光. 我国叶类蔬菜机械化水平现状与评价方法研究[J]. 中国农机化学报, 2020, 41(12): 196-201.
https://doi.org/10.13733/j.jcam.issn.2095-5553.2020.12.031
[2] 肖体琼, 何春霞, 崔思远, 陈永生, 曹光乔, 胡桧. 蔬菜生产机械化作业工艺研究[J]. 农机化研究, 2016, 38(3): 259-262.
https://doi.org/10.13427/j.cnki.njyi.2016.03.054
[3] 任亚飞, 郑玉丽, 姚雷博. 基于图像识别的淬火过程中钢球计数研究[J]. 拖拉机与农用运输车, 2021, 48(6): 52-54+58.
[4] 王海燕, 张瑜慧. 基于机器视觉的颗粒识别计数[J]. 长春工程学院学报(自然科学版), 2013, 14(4): 101-104.
[5] 徐惠荣, 叶尊忠, 应义斌. 基于彩色信息的树上柑橘识别研究[J]. 农业工程学报, 2005, 21(5): 98-101.
[6] 曾爱松, 夏彭飞, 严继勇, 许园园, 邢苗苗, 卢昱宇. 我国甘蓝品种市场需求变化分析[J]. 长江蔬菜, 2022(8): 1-3.
[7] 项荣, 应义斌, 蒋焕煜. 田间环境下果蔬采摘快速识别与定位方法研究进展[J]. 农业机械学报, 2013, 44(11): 208-223.
[8] 高雄, 汤岩, 陈铁英, 崔红梅, 王洪波. 基于图像处理的甘蓝虫害识别研究[J]. 江苏农业科学, 2017, 45(23): 235-238.
https://doi.org/10.15889/j.issn.1002-1302.2017.23.065
[9] 欧仁侠, 陈洪斌, 鲍捷. 高斯滤波器特性分析及应用研究[J]. 中国新通信, 2015, 17(24): 135.
[10] 刘文, 徐丽明, 邢洁洁, 史丽娜, 高振铭, 袁全春. 作物株间机械除草技术的研究现状[J]. 农机化研究, 2017, 39(1): 243-250.
https://doi.org/10.13427/j.cnki.njyi.2017.01.048