删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

基于深度可分离卷积的实时农业图像逐像素分类研究

本站小编 Free考研考试/2021-12-26

刘庆飞, 张宏立, 王艳玲. 基于深度可分离卷积的实时农业图像逐像素分类研究[J]. 中国农业科学, 2018, 51(19): 3673-3682 https://doi.org/10.3864/j.issn.0578-1752.2018.19.005
LIU QingFei, ZHANG HongLi, WANG YanLing. Real-Time Pixel-Wise Classification of Agricultural Images Based on Depth-Wise Separable Convolution[J]. Scientia Acricultura Sinica, 2018, 51(19): 3673-3682 https://doi.org/10.3864/j.issn.0578-1752.2018.19.005

0 引言

【研究意义】在农业生产过程中,除草剂等农药的大量使用给环境带来了极大的危害,减少农药的使用对农业可持续发展有着重要意义[1]。传统施药过程中,在整个田间均匀喷洒农药是造成农药使用过量的主要因素。而智能化感知除草系统能够通过传感器获取作物和杂草的位置,从而进行选择性施药,能够大量减少农药的使用[2,3]。智能化除草系统需要实时对田间图像数据进行识别,将植物标记为作物或杂草,针对作物与杂草的实时高精度识别的研究至关重要。【前人研究进展】农业图像中有着大量有用信息,常被用作植物或病虫害识别[4,5,6]。当前在作物与杂草识别研究中,基于计算机视觉的分割和识别方法被广泛采用。传统的计算机视觉方法根据作物与杂草的颜色、纹理、形态特征进行识别。孟庆宽等[7]采用基于二维直方图的模糊C均值聚类法进行图像分割,640pixel×480pixel图片耗时约为16.5 ms,但没有明确给出分割精度。刘哲等[8]使用时序 EVI(enhanced vegetation index)决策树分类与高分纹理对玉米进行识别。翟志强等[9]采用Census变换的双目视觉方法进行作物识别,在非地头环境下,作物行中心线的正确识别率不小于92.58%,但此方法对试验环境要求较高。王璨等[10]利用融合高度与单目图像特征的支持向量机模型进行杂草识别,此方法识别精度高,但有效的特征表示难度较大。陈亚军等[11]基于多特征的杂草逆向定位,使大豆田间杂草识别的准确率为90%以上。赵川源等[12]使用多光谱信息进行杂草识别,但传感器成本过高,不利于大面积推广应用。近年来,深度卷积神经网络方法逐步应用于农作物与杂草的分割。王璨等[13]使用卷积神经网络提取多尺度分层特征识别玉米杂草,他们从图像的高斯金字塔中提取多尺度分层特征作为识别依据,再与多层感知器相连接,实现图像中各像素的识别,平均目标识别准确率达98.92%,单幅图像的平均耗时缩短为0.72 s。MCCOOL等[14]使用深度卷积神经网络模型对作物与杂草进行分割,获得了先进的分类性能,同时使用模型压缩技术减少了模型参数,最终使平均识别精度大于90%,运行速度达到1.83 Hz。HAUG等[15]使用萝卜农场的RGB数据和近红外(near infrared,NIR)图像输入分割系统,通过70幅图像进行性能评估,使平均准确率达到94%。POTENA等[16]使用RGB+NIR数据输入,实现了两个不同的卷积神经网络对作物和杂草的分类。MILIOTO等[17]使用多项植被指数对农田彩色图像进行特征提取,将特征图像和彩色图像合并输入卷积神经网络进行作物与杂草分割,使平均准确率达到80.8%,工作频率20 Hz左右。【本研究切入点】前人已在作物和杂草识别方面做了较多的研究工作,并取得了一定研究成果。但传统方法依然存在处理过程复杂、人工设计的特征提取器识别效果差等缺点,卷积神经网络方法能获得非常高的识别精度,但已有方法在实时性方面不能达到应用需求。本研究在前人研究的基础上利用卷积神经网络优秀的特征提取能力,并在网络结构设计中考虑实时性要求,提取基于可分离卷积的实时农业图像逐像素分类方法,提高作物和杂草的识别效率与识别速度。【拟解决的关键问题】 本研究以苗期甜菜图像为例,设计基于卷积神经网络的土壤、杂草、作物逐像素分类模型,针对数据特点设计网络训练方案,针对实际应用的实时性要求设计逐像素分类网络模型压缩方案。通过与已有同类方法对比和对本研究所设的计网络模型进行探索试验,验证本研究方法的可行性与优势。

1 材料与方法

本文提出的逐像素分类方法是端到端。这意味着只需要将从农业现场采集好的图像数据送入逐像素分类网络,并提供输入数据的每个像素语义标记,即可获得其分类结果。本节介绍本研究使用的图像数据集和所提出的网络结构以及训练方法。

1.1 图像数据描述

本研究采用2016年春季由德国博士公司的农业机器人在Bonn附近的甜菜农场中记录的RGB图像数据[18]。这些图像数据中已经有283张图像进行了人工标注,图1-a中所示由JAI相机采集的RGB图像,图1-b是对应的原始标注信息。原始标注信息中包含甜菜(红色)、土壤(黑色)以及杂草(其他颜色,共9种)。
显示原图|下载原图ZIP|生成PPT
图1RGB图像及其标注图像
-->Fig. 1RGB image and its annotated image
-->

基于研究目标,我们只对杂草、农作物以及土壤进行逐像素分类,而不区分杂草的类别。对原始标注信息进一步处理,将3种类别分别置于图像的3个不同通道中,以实现不同类别的通道分离,结果如图1-c所示,其中红色、绿色、蓝色分别代表杂草、作物、土壤的标注信息。
在农业生产中不同时间,不同地点的植被覆盖率往往差距很大。这也导致处理杂草、农作物以及土壤的逐像素分类任务时,各个类别覆盖率分布不均匀,使得总体分类精度高,覆盖率较低的类别分类精度差。本研究使用的数据集中,各个类别在总体样本中的覆盖率如表1所示。其中土壤占93.92%、农作物占4.13%、杂草仅占1.95%,并且杂草的标注信息共包含9种不同植物(图1-b),其形态差异大,同时可用的训练样本少。直接使用3个通道的标注数据在同一个网络中训练,杂草的识别精度相对较低。
Table 1
表1
表1数据集信息
Table 1Dataset information
图像总数
Image number
所占像素比例 Percentage of pixels
Proportion of the occupied pixels(%)
土壤Soil杂草Weed作物Crop
28393.921.954.13


新窗口打开
针对这个问题,本研究提出单通道语义标记输入方法。图2中将每一个种类的语义标记通道通过一个逐像素分类网络来学习单一分类任务,将一个多分类问题分解成多个二分类问题。图2-a中白色区域表示对土壤的逐像素标注信息,黑色区域表示对非土壤的逐像素标注信息。图2-b中白色区域表示对作物的逐像素标注信息,黑色区域表示对非作物的逐像素标注信息。图2-c中白色区域表示对杂草的逐像素标注信息,黑色区域表示对非杂草的逐像素标注信息。试验表明,将单通语义标记输入引入逐像素分类系统中,不仅有助于低覆盖率分类类别学习网络参数,而且使网络具有更好的泛化性能,从而提高农作物和杂草的识别精度。
显示原图|下载原图ZIP|生成PPT
图2单通道标注信息
-->Fig. 2Single channel annotation information
-->

为了评估网络性能,将使用数据集中的80%作为训练集,20%作为测试集。同时使用数据增强技术,在网络训练过程中对训练数据进行随机旋转20°、随机缩放尺度0.2、随机剪切0.2以及设置随机水平翻转,并且在整体数据集上做标准化处理。

1.2 网络结构

近年来卷积神经网络在图像分类、目标检测、图像分割等领域取得了突破性进展[19]。FCN(fully convolutional networks)[20]的提出使卷积神经网络在图像语义分割总得到应用。随后****提出了多种网络结构实现更准确的图像分割任务[21]。本研究在已有研究的基础上提出基于深度可分离卷积的逐像素分类网络对农业图像进行语义分割。
本研究提出了一个端到端的逐像素分类网络,它可以执行准确的分割任务,对土壤、杂草、作物同时识别的运行速度可以达到20 fps以上,单一类别识别速度可以达到60 fps以上。此网络结构借鉴了U-Net[22]和MobileNet[23]设计思想,网络结构由编码器部分和解码器部分组成。此网络基于以下模块构建:
输入:网络输入仅使用RGB图像数据。将原图重新定义其大小为192×192×3,并对每个通道进行去中心化和标准化操作。输出结果作为第一个卷积层的输入。
标准卷积模块:在网络输入层之后和输出层之前使用3×3常规卷积层,后面跟着BN[24]层以及RELU层(图3-a)。
显示原图|下载原图ZIP|生成PPT
图3标准卷积模块和深度可分离卷积模块
-->Fig. 3Standard convolution module and depth-wise separable convolution module
-->

深度可分离卷积模块[25]:由3×3的深度方向卷积跟着BN层以及RELU层和1×1点卷积层跟着BN层以及RELU层组成,点卷积步长为1(图3-b)。
反卷积[26]:反卷积用于构成网络结构中的解码器部分,对通过编码的特征图进行上采样。为了更好地考虑空间位置信息,进行反卷积操作后的特征图与解码器相应部分拼接后再输出到下一层。
输出:使用三通道标记数据输入网络进行训练时,设置最后一个卷积层的卷积核数为3,连接一个soft-max激活函数输出,用于同时得到土壤、杂草以及农作物3个类别的逐像素分类结果。使用单通道标记数据输入网络进行训练时,设置最后一个卷积层的卷积核数为1,连接一个sigmoid激活函数输出,用于预测每个像素的分类属性。对于所描述的单通道语义标记输入,本质上是二分类的,输出结果表示对应通道中每个像素属于此通道分类结果的概率。3个单通道网络独立训练,预测阶段分别输出不同类别的二分类结果,最终得到对各个类别的逐像素分类输出。
本研究使用上述结构块来创建图4中描述的网络,该网络由编码器-解码器结构组成。其编码器部分与MobileNets一致,仅去掉了全连接层。同时设置宽度乘数和分辨率乘数用于权衡整个网络参数规模、运行速度以及识别精度。解码器部分由反卷积模块与深度可分离卷积构成,所有的反卷积操作的卷积核大小为2×2,步长为2,以保证与MobileNets相应层中的特征图尺度一致。网络结构中的详细参数请参见电子附表1
显示原图|下载原图ZIP|生成PPT
图4网络结构
-->Fig. 4network architecture
-->

1.3 网络训练

本文使用Keras实现了本文在网络结构中提到的所有模块[27]。在网络训练过程中,使用随机梯度下降算法作为参数优化器,设置学习率为0.001,动量为0.9,训练批次为16,在整个训练集上进行240次训练。
单通道标注信息输入网络训练时最后一层激活函数为sigmoid,定义为公式(1):
$y(x)=\frac{1}{1+e^{a(x)}}$ (1)
式中,a(x)表示图像上像素点x对某一类别预测的输出值,y(x)表示图像上像素点x属于此类别的概率。损失函数为Dice系数的相反数,定义为公式(2):
$L=-\frac{2\times|y_{true}\cap y_{pred}|}{|y_{true}|+|y_{pred}|}$ (2)
式中,ytrue表示经归一化的单一类别标注图像,ypred表示由sigmoid层输出的预测图像。
三通道标记输入训练时,最后一层激活函数为soft-max,定义为公式(3):
$y_{i}(x)=\frac{e^{a_{i}(x)}}{\sum^{c}_{k=1}e^{a_{i}(x)}}\forall i\in1-C$ (3)
式中,ai(x)表示第i个类别通道上的一个像素点x输出
值,C表示类别,在本文中C=3,yi(x)表示此像素x属于第i个类别的概率。损失函数为交叉熵函数,定义为公式(4):
$L=-\sum^{n}_{k=1}\sum^{C}_{i=1}t_{ki}log(y_{ki})$ (4)
式中,n为单幅图像的像素总数,tki是像素点k属于类别i的概率,yki是模型对像素点k预测为属于类别i的概率。
本研究通过平均交并比(mIoU)、单一类别均交并比(IoU)、精确率(precision)、召回率(recall)对训练结果进行评估。同时文中所述的准确率均通过交并比指标衡量。且试验结果中所有的数据都是使用NIVIDIA GTX1080TI GPU获得的。

2 结果

2.1 逐像素分类结果与分析

为了便于与其他卷积神经网络对比,笔者在相同环境下实现了SegNet[28]以及U-Net网络,并使用相同的数据进行训练和测试。图5中给出了不同逐像素分类方法的输出结果。表2中给出了SegNet方法、U-Net方法以及本文方法在测试数据上的各项评估指标。其中也对比了单通道标注输入和三通道标注输入在测试集上的各项指标。
显示原图|下载原图ZIP|生成PPT
图5不同方法对测试数据逐像素分类输出结果对比
-->Fig. 5The results of pixel classification output of test data compared with different methods
-->

Table 2
表2
表2不同方法在测试数据中的表现
Table 2Performance of different methods in test data
方法
Method
平均准确率
Mean Accuracy (mIou) (%)
准确率Accuracy (IoU) (%)精确率Precision (%)召回率Recall (%)
土壤
Soil
杂草Weed作物
Crop
土壤
Soil
杂草
Weed
作物
Crop
土壤
Soil
杂草
Weed
作物
Crop
Segnet90.0695.4418.3956.4397.5549.5478.6998.5118.9876.78
Unet92.0696.2018.3361.0098.1640.1579.8598.5819.8382.33
三通道标注训练
Three channel annotation training
92.7096.3622.8765.1598.1951.7684.1698.6927.8983.85
单通道标注训练
Single channel annotation training
94.9997.0341.9473.6697.9953.7582.8099.0363.6584.42


新窗口打开
图5中不同方法对测试数据逐像素分类输出结果表明,SegNet方法输出结果能反应预测类别的基本形态,但其形态边缘模糊;U-Net方法输出结果对作物的预测比较准确,其边缘清晰,但对杂草的预测精度较低,对杂草预测的部分区域被认为是作物的错误分类;使用本文提出的方法通过三通道标记信息训练网络,输出结果显示出此网络能够对杂草和作物进行更准确地分类,尤其对杂草类别的分类能力有明显提高,只有少部分错误分类结果出现;图3中最后一列是使用本文所提出的方法先通过单通标记信息分别训练得到预测结果,而后将3个网络输出结果同时呈现在图(图5-f)中,其表现出对边缘预测更加准确,表明本文所使用的方法能够对图像中的杂草、农作物以及土壤进行更有效逐像素分类。
表2表明,SegNet和U-Net对土壤、杂草、农作物具有一定的逐像素分类能力,但对杂草的逐像素分类性能不佳。使用三通道标注信息输入对本文所提出的逐像素分类网络进行训练,对杂草和作物的分类性能上有一定的提升,此方法在土壤和作物精确率指标上获得最高精确率,但在杂草的准确率以及召回率仍然保持着较低的水平。使用单通道标注信息输入对本文所提出的逐像素分类网络进行训练,在测试结果上,除土壤和作物精确率指标有所降低,其余各项评估指标均有提升,尤其在杂草分类性能上有明显的提高,论证了使用单通道标注信息输入训练网络,有助于提高形态差异较大且覆盖率较小的杂草类别的逐像素分类精度。

2.2 参数规模

文献[23]中论述了深度可分离卷积可以大量减少网络参数。点卷积部分占有大部分参数,因此论文中提出使用宽度乘数来控制点卷积的个数,用以进一步减小网络参数规模。本试验通过编码器部分设置不同的宽度乘数观察网络对土壤、杂草以及作物的逐像素分类准确率的影响以及网络参数尺度的变化。表3中给出了不同宽度乘数条件下逐像素分类网络对测试数据输出准确率以及相对应的参数规模。
Table 3
表3
表3参数乘数对准确率和参数量的影响
Table 3The influence of the width multiplier on the IoU and the parameter quantity
宽度乘数
Width multiplier
准确率Accuracy (IoU) (%)参数量
Parameter quantity (×104)
土壤 Soil杂草 Weeds作物 Crop
196.8942.3872.07676.8
0.7596.6942.4371.11382.9
0.597.2441.7969.15172.2
0.2597.7343.3774.9645.5
0.194.0839.5168.377.72
0.0593.7229.7668.842.16


新窗口打开
对比表3中结果,原始网络参数规模达到6.768×106。随着宽度乘数的下降,网络参数规模大幅减小。宽度乘数下降到0.25时,网络参数已下降到4.55×105,但准确率没有下降反而上升,这表明本文提出的逐像素分类网络容量大,对复杂问题有较强的泛化能力。当宽度乘数下降到0.1时,准确率有小幅下降,网络参数下降至7.72×104。网络乘数下降至0.05时,网络参数仅有2.16×104,杂草的准确率下降了9.97%,其结果仍然优于表2给出的前3种方法。

2.3 运行频率

为了测试本文方法的实时性,对本文提出的逐像素分类网络设置不同的宽度乘数,同时对输入图像设置不同的分辨率,分别训练后再对测试数据进行预测,记录运行频率,试验结果如表4所示。表中数据表明,在相对应的宽度乘数和分辨率条件下,本文所提出的逐像素分类网络计算频率可达20 fps,单一类别计算频率可达60 fps。
Table 4
表4
表4宽度乘数与输入分辨率对运行频率的影响
Table 4The influence of width multiplier and input resolution on running frequency (fps)
分辨率
Resolution
宽度乘数 Width multiplier
10.750.50.250.1
25615.2916.2717.5718.4419.25
22416.5217.6818.3318.6119.79
19217.7618.2819.3520.1320.66
16018.7019.3320.6120.9421.00
12819.3320.2020.9021.3521.38


新窗口打开

3 讨论

传统方法处理进行图像分割需要经过图像预处理、特征提取、特征分类等步骤。其中每一个环节对最终精度有着很大的影响。已有的深度卷积神经网络方法需要额外传感器以提高识别精度,而且网络模型参数规模较大不利于实时在线进行图像逐像素分类。
本研究利用卷积神经网络结构实现以编码器-解码器为基础的逐像素分类网络模型。该模型直接接受原始的摄像机采样图像,无需对其做任何预处理和数据转换,避免了因此带来的信息损失。利用RGB图像输入,无需多光谱相机和NIR相机进行辅助预测,有效地降低了设备制造成本。编码器部分进行大量特征自学习,不依赖任何人工设计的特征。解码器部分通过反卷积操作实现对特征图的上采样,同时结合编码器部分局部特征输出,获得对杂草与作物在空间位置上的准确预测。此网络实现了对作物、杂草和土壤的逐像素分类,平均准确率达到94.99%。
应用本研究提出的网络结构和单通道标注输入训练方法,能够有效解决小覆盖率样本识别准确度差的问题,为解决样本不平衡问题提供了新思路。此方法将多分类问题分解成多个二分类问题,这对本文研究成果实际应用与部署有着十分重要的意义。同时此方法不仅能提高识别精度,而且能进一步减小网络参数规模,提高运行效率。
通过对本研究所使用的数据集进行统计分析得到数据集中最大植被覆盖率为29.15%、最小覆盖率为0.41%、平均覆盖率为6.08%,表明此方法网络输入图像的植被覆盖率至少在0.41%到29.15%有效。
通过对杂草、作物和土壤识别准确率的对比,得出覆盖率高的分类类别识别准确率较高,反之亦然。本研究所使用的数据中杂草的覆盖率较低,所以相对其他类别识别精度较低,这也符合实际应用中分类类别不平衡的具体情况,其识别精度可以满足应用需求。
深度可分离卷积与编码器-解码器结构相结合的方法不仅有效提高了逐像素分类精度,而且可以通过宽度乘数以及输入分辨率权衡网络参数规模、识别精度以及运行时间的关系。试验结果表明,在NVIDIA GTX1080ti GPU加速条件下,对土壤、杂草、作物同时识别的运行速度可以达到20 fps以上,单一类别识别速度可以达到60 fps以上。

4 结论

为了提高土壤、杂草、农作物识别的准确率和实时性,探索具有实用价值的作物和杂草识别方法,本研究提出了基于深度可分离卷积神经网络对农业图像进行逐像素分类。该方法对土壤、杂草、作物的平均识别精度达到94.99%,3个通道同时识别的速度可以达到20 fps以上,单一通道识别速度可以达到60 fps以上,为智能化除草设备和智能化作物监测设备提供有益的参考。
(责任编辑 杨鑫浩)
The authors have declared that no competing interests exist.

参考文献 原文顺序
文献年度倒序
文中引用次数倒序
被引期刊影响因子

相关话题/网络 图像 作物 数据 土壤