APP下载

基于卷积神经网络的农机图像自动识别研究*

2022-05-18雷雪梅张光强姚旗刘伟渭邱帅

中国农机化学报 2022年5期
关键词:卷积机具神经网络

雷雪梅,张光强,姚旗,刘伟渭,邱帅

(1. 四川化工职业技术学院智能制造学院,四川泸州,646000; 2. 国家农业智能装备工程技术研究中心,北京市,100089; 3. 西北农林科技大学农学院,陕西咸阳,712100; 4. 西南交通大学机械工程学院,成都市,610031; 5. 西南大学人工智能学院,重庆市,400715)

0 引言

目前,以通讯网络和互联网为基础,通过卫星定位装置、农机作业工况传感器、图像传感器等感知农机实时运行状态,实现对农机装备集群作业的智能化识别、定位、监测和管理的物联网技术得到了快速发展和实践应用[1-2]。为了鼓励农户实施农业机械化作业,国家在多个省份相继展开农机作业补贴。然而在政策实施过程中,存在农机作业质量层次不齐、虚报作业面积、虚报农机补贴等情况,为了减少这种情况的出现,政府相关部门通过无线通讯和网络技术实现监管农机作业质量[3-5]。其中,利用图像识别技术自动识别农机机具类型和作业状态,能够降低人工抽检强度、加强监管力度、提高系统智能化水平,是农机作业监管系统的关键技术之一。

图像识别技术在农业科技方面有着非常广泛的应用,如病虫害识别[6-7]、果实品种识别[8-9]、产量估计[10-11]、农机路径规划[12]等都改变了传统的生产方式,提高了工作效率。基于卷积神经网络的图像识别算法[13-14]是以视觉系统的特征分层机制为依据,模拟神经元之间的连接来自动提取图像特征,通过多层迭代、特征抽象、最终实现分类识别。经典的卷积神经网络结构,如LeNet[15]、AlexNet[16]等,由卷积层、池化层、全连接层组成。卷积层使用不同的卷积核提取多种图像特征,池化层在保留主要信息的同时对特征图进行降维处理,通过多次的卷积—池化连接,提取的图像特征从具体的边缘信息到抽象的语义信息,再经过全连接层的迭代,实现分类识别[17-19]。卷积神经网络算法不需要手工提取特征,在图像识别[20-21]、语音识别[22-23]、自然语言处理[24-25]等方向已经有了非常好的应用效果。彭明霞等[26]采用Faster R-CNN方法对棉花杂草进行了识别,其平均目标识别准确率达到了95.5%。卢伟等[27]采用卷积神经网络方法检测拖拉机驾驶员面部特征,用于识别驾驶员的疲劳状态,其模型识别准确率为98.9%。孔庆好等[28]以拖拉机运行速度与发动机转速等信息为基础,采用卷积神经网络对拖拉机工况进行了识别检测,其准确率可以达到93.3%。然而采用卷积神经网络对农机图像识别报道文献较少。

本文采用基于卷积神经网络的图像识别技术,研究大量农机机具图像的自动分类方法。对农机机具图像进行预处理,构建农机机具图像标注数据集,设计卷积神经网络模型,实现农机机具图像的自动识别。

1 构建农机机具图像标注数据集

1.1 图像收集与整理

本文以农机机具图像作为识别对象,在农机作业过程中,车载摄像头每隔2 min拍摄一次作业机具图像并通过GPRS无线网络上传到监管系统中。通过分析农业机具作业图像,整理出多种作业背景下的播种机、翻转犁、起垄机、深松机和旋耕机5种类型的常用机具图像。构建了容量为73 970张的农机机具图像数据集,其中,55 000张图像用于构建训练集,18 970张图像用于构建验证集,二者互相独立且无重叠。每种类型的机具图像数量均按照收集的原始图像比例设置,同时为满足网络输入要求,所有图像尺寸均转换为64像素×64像素大小,表1为数据集中不同机具类型图像数量的具体分布情况。

表1 农机机具图像数量分布Tab. 1 Quantity distribution of agricultural machinery image

1.2 标注数据集

卷积神经网络算法属于监督分类,需要对大量数据集进行标注。本研究采用Tensorflow平台对农机机具图像数据集进行标注。首先,将整理好的训练集和验证集存放在两个文件夹下,每个文件夹包含前述的5种图像类型,即播种机、翻转犁、起垄机、深松机和旋耕机,并分别建立对应的文件夹标签。然后,使用Tensorflow的内置函数将每张图片转换成固定长度的二进制数据,其中第一个字节为图像标签,剩余64×64×3字节是图像信息。最终,本文将训练集和验证集分别转换为两个独立的二进制文件,得到完成标注的农机机具图像数据集。

1.3 农机机具图像预处理

与其他研究领域的图像数据相比较,农机作业环境较为恶劣,获取的机具图像质量较差、图像背景复杂、图像拍摄角度存在差异。图像预处理不仅可以消除背景、颜色及尺寸差异等噪声的影响,还能减少网络训练计算量,提高算法效率和网络准确率。本文针对农机机具图像存在的问题,分别进行了图像裁剪、图像色彩调整和运动模糊消除3个方面的图像预处理。

1.3.1 图像裁剪

原始机具图像是由不同地区的不同农机作业监控装置拍摄获得,因此存在图像尺寸差异。由于神经网络采用固定的输入节点,将机具图像输入给神经网络之前,需要统一图像尺寸。本文采用双线性插值法将机具图像裁剪为64像素×64像素。双线性插值法的核心思想是在x与y方向分别进行一次线性插值计算,相比于最邻近插值的粗糙以及双立方插值的计算量过大,该算法处理效果较稳定、计算难度低。

1.3.2 图像色彩调整

在训练农机机具图像识别网络时,通过调整机具图像的色相、亮度、对比度等属性,能够使训练后的网络尽可能少地受到无关因素的影响。本文采用Tensorflow API提供的图像预处理函数brightnes函数对原始机具图像进行处理。经过图像预处理,局部亮度偏高的图像(图1(a))、色相差的图像(图1(b))、对比度低的图像(图1(c))等,被恢复为清晰的农机机具图像(图1(d),图1(e),图1(f))。

图1 机具图像调整色彩前后对比图Fig. 1 Comparison of machine and tool images before and after color adjustment

1.3.3 运动模糊消除

农机机具图像是在农机作业过程中由车载摄像头拍摄获得,因此经常会出现运动模糊的机具图像。所谓运动模糊是指拍摄相机和被摄景物之间存在相对运动而造成的图像模糊。模糊图像的处理方法主要有图像超分辨率重构、图像增强、图像复原3种。其中,图像复原是根据图像退化的先验知识建立一个退化型,以该网络为基础,采用各种逆退化处理算法逐步进行恢复,从而达到改善图像质量的目的。

图2 机具图像去除运动模糊前后对比图Fig. 2 Comparison of machine and tool images before and after removing motion blur

本文采用了图像复原方法中的维纳滤波算法对运动模糊机具图像进行预处理,将运动模糊的播种机(图2(a))、深松机(图2(b))、翻转犁(图2(c)),处理为清晰的农机机具图像(图2(d),图2(e),图2(f))。

2 农机机具图像自动识别算法

2.1 卷积神经网络结构

本文设计的卷积神经网络结构如图3所示,共7层,包含4个卷积层和3个全连接层。其中,前2个卷积层后面连接池化层,最后1个全连接层使用Softmax函数做分类。

图3 卷积神经网络结构Fig. 3 Structure of convolutional neural network

若Xi表示卷积神经网络的第i层特征图,网络输入X0为64×64×3的原始图像,则卷积层Xi的计算过程可描述为

(1)

其中,Wi表示第i层卷积核的权值向量;运算符号⊗代表卷积核与第i层图像或特征图进行卷积操作,卷积的结果与神经元偏移量bi相加;然后通过非线性的激励函数f(x)得到第i层的特征图,本文卷积神经网络中选用Relu函数作为非线性激励函数,它具有收敛性能好、计算复杂度低等特点。常用的池化方式有平均池化和最大池化,本研究采用了最大池化法。若Xi是池化层,则Xi的计算过程可描述为

Xi=Maxpooling(Xi-1)

(2)

表2为卷积神经网络详细设计参数。

C1层采用了32个5×5×3的卷积核,步长为1,对输入图像卷积之后提取出32种特征,得到32个60×60的特征图,再经过S1层得到32个29×29的特征图。C2层有64个5×5×32的卷积核,对第S1层输出特征图做卷积,得到64个29×29的特征图,再经过S2层得到64个14×14的特征图。C3层有128个5×5×64的卷积核,对第S2层输出特征图做卷积,得到128个14×14的特征图;C4层使用256个5×5×128的卷积核,对C3层输出特征图做卷积,得到256个14×14的特征图,输出给F5层。F5层采用384个神经元,对256个14×14的特征图进行全连接处理;F6层采用192个神经元,对256个神经元进行全连接处理;F7层使用softmax函数将特征向量处理结果分为5类。

表2 卷积神经网络参数设计Tab. 2 Design of convolution neural network parameters

2.2 减少过拟合

卷积神经网络模型对训练集识别率很高,而对于验证集识别率很低的情况称为过拟合,通常是由于模型过于复杂,训练数据不足或训练集图像分布不均匀。本研究采用了增强数据集和模型正则化的方法来减少过拟合。

2.2.1 增强数据集

在本研究中,采用了2种方法增强数据集:增加数据集的数量和提高数据集的丰富性。数据集的丰富性能够保证模型对不同背景条件的机具图像都有良好的识别能力。通过采用随机裁剪和垂直翻转的方法来增大数据集的数量,具体方法如下:首先,在64×64大小的图像中心位置和4个边角等5个区域分别提取60×60区域用作训练,这样将数据集扩大了5倍;由于设备安装方式的不同,导致有部分机具图像是上下颠倒的,为了平衡这部分数据,提高模型对其识别能力,对所有图像进行垂直翻转,在保证数据丰富性的同时,又将数据集扩大了2倍。

2.2.2 模型正则化

正则化是降低模型复杂度的一种方法,通过给损失函数加上约束项来对参数引入先验分布,控制损失函数的优化倾向于选择较小参数的方向。本文所用的L2正则化就是在损失函数后面加一个正则化项,得到新的损失函数

(3)

式中:C0——原始的代价函数;

所有参数ω平方和除以训练集样本大小n,再乘以正则系数λ,λ的作用即是权衡正则项与原始代价函数C0的比重。按照梯度下降法更新参数的规则,先对新的损失函数求导,然后得到参数更新值

(4)

2.3 提高模型训练效率

2.3.1 归一化图像

图像归一化是计算机视觉中对数据集预处理的常用方法之一,主要利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响,也就是转换成唯一的标准形式来增强图像的仿射变换。在卷积神经网络算法中,将像素值为0~255的UNIT型数据归一化到0~1之间,可以简化计算,加快网络收敛性能,提高网络计算精度。归一化方法有离差归一化和标准差归一化,本研究中使用标准差归一化

(5)

式中:μ——所有像素的均值;

σ——所有像素的标准差。

归一化后的图像满足均值为0,标准差为1的标准正态分布。神经网络是以样本在事件中的统计概率来进行训练和预测的,将数据归一化到0~1之间统计概率分布,使得样本所有像素的均值为0,并且其标准差一致,可以提高网络学习速度,加快网络收敛。

2.3.2 多GPU训练

本文设计的机具识别网络模型需要训练的参数有2×105,处理完所有图片需要进行上亿次加乘运算,传统的CPU单线处理需要4~5 d的时间才能使模型达到收敛,效率太低不利于修改参数和调整网络。GPU计算模块专为处理大规模、高密度浮点数据而设计,其带宽大、数据并行计算的优势极大地提高了运算速度,减少了运算时间。本文采用2块GPU并行运算的方式训练网络模型,如图4所示。

图4 GPU计算模型Fig. 4 Model of GPU calculation

卷积神经网络的训练目标是最小化网络的损失函数。原始图像经过前向传输后得到预测值,使用平方误差代价函数计算预测值与实际值之间的差异,第n个样本的误差函数可表示为

(6)

式中:tkn——第n个样本对应标签的第k维;

ykn——第n个样本对应的网络输出的第k个输出;

c——分类数目。

训练过程中,使用随机梯度下降方法将loss值反向传播,逐层更新网络参数。参数更新规则为

(7)

(8)

式中:η——学习率。

将初始学习率η设为0.01,一次训练的数据集大小(batchsize)为128,以0均值,标准差0.01的高斯分布初始化每层权重Wi,神经元偏置量bi的初始值为0。以8个线程将数据分批、独立地分布在2块GPU上,2个GPU共享模型参数,同步运算。由于GPU之间传输数据比较慢,计算得到的参数全部存储在CPU上,并在CPU上更新所有参数。

3 试验与分析

3.1 模型训练试验与结果分析

本文网络模型在2块NVIDIA GeForce GTX 1080 GPU上训练,迭代100 000次之后,损失函数收敛到0.01。将本文所建的农机机具图像标注数据集在LeNet-5和ResNet-50上分别进行训练,与本文所用机具识别网络进行对比,3个网络的参数配置及训练结果见表3。

表3 3种卷积神经网络性能比较Tab. 3 Performance comparison of three convolutional neural networks

从表3的对比结果分析:LeNet-5结构简单,网络层数少,输入图像小,所需训练时间最少,但是其识别准确率较低,仅有81%,无法满足实际应用需求;ResNet-50网络和本文卷积神经网络识别准确率均超过98%,满足实际应用需求,但是ResNet-50网络比较复杂,参数较多,其训练时间需要58 h,相比之下,本文的机具识别网络训练时间比较少,只有30 h,并且测试一张图片的效率也高于ResNet-50。综上所述,从网络结构与参数、训练时间、识别准确率及效率上来说,本文设计的网络结构适用于农机机具图像识别,可满足实际监管需求。

3.2 模型测试试验与结果分析

为了描述网络的实际应用性能,本文从2021年9月江苏省农机深松作业图像中挑选出5种机具类型图像各200张对模型进行测试,并从召回率、鲁棒性2个方面对模型进行评价。

3.2.1 ROC曲线与AUC

ROC曲线的横坐标为假阳性率(False Positive Rate,FPR),纵坐标为真阳性率(True Positive Rate,TPR),该曲线下各部分的面积求和即为AUC。在图像识别评价精度指标中,ROC曲线能够尽量降低不同测试集带来的干扰,更加客观地衡量网络本身的性能。

FPR和TPR的计算方法分别为

(9)

(10)

式中:P——真实的正样本的数量;

N——真实的负样本的数量;

TP——P个正样本中被分类器预测为正样本的个数;

FP——N个负样本中被分类器预测为正样本个数。

AUC可通过对ROC曲线下各部分的面积求和得到,且ROC曲线是由坐标为{(x1,y1),(x2,y2),…,(xm,ym)}的点按顺序连接而形成,则AUC的计算为

(11)

式中:xi、yi——上述假阳性率(FPR)、真阳性率(TPR)取值。

ROC曲线经常作为二分类最重要的指标之一,对于本文多分类,将m个测试样本(m=2 600),n个类别(n=13)。在训练完成后,计算出每个测试样本在各类别下的概率,得到一个[m,n]形状的矩阵Q,每一行按类别标签排序,表示一个测试样本在各类别下概率值。相应地,将每个测试样本的类别转换为类似二进制的形式,每个位置按标签排序,用来标记是否属于对应的类别,由此也可以获得一个[m,n]的标签矩阵L。每种类别下,都可以得到m个测试样本为该类别的概率(矩阵Q中的列)。所以,根据概率矩阵Q和标签矩阵L中对应的每一列,可以计算出各个阈值下的假阳性率(FPR)和真阳性率(TPR),从而绘制出一条ROC曲线。这样总共可以绘制出n条ROC曲线。最后对n条ROC曲线取平均,得到最终的ROC曲线和AUC。本次农机机具识别网络测试试验中,农机机具图像分类的ROC曲线与AUC如图5所示。

在图5中,试验结果表明ROC曲线下的AUC均值为92%,且曲线靠近左上角,说明本文的机具识别网络分类的真阳性率很高,分类错误较少,该网络对5种机具图像的分类能力符合实际应用需求;同时ROC曲线是光滑的,说明农机机具识别网络训练后没有出现太大的过拟合。

图5 农机机具图像ROC曲线与AUC图Fig. 5 ROC curve and AUC diagram of agricultural machinery and tools

3.2.2 混淆矩阵和F1-score

在图像识别评价精度中,混淆矩阵主要用于比较真实结果和实际预测值。若M[t,p]表示混淆矩阵,第t行代表真实类别,每一行的总数代表该类别的真实数量。第p列代表预测类别,每一列的总数表示预测为该类别的数量;矩阵中的值,实际为t类的样本被判定为p类的数量。

F1-score用于评价分类网络性能,它考虑测试的精确度P和召回率R来计算分数,公式如式(12)所示。

(12)

采用农机机具识别网络对测试集的5类机具图像进行测试试验,试验结果的可视化混淆矩阵如表4所示。

表4 混淆矩阵Tab. 4 Confusion matrix

分别计算机具类别A~E的精确度、召回率和F1-score,计算结果见表5。其中,精确度表示该类别混淆矩阵对角线的值除以该类别对应列总和;召回率表示该类别混淆矩阵对角线的值除以该类别对应行总和,F1-score值作为参数指标精确度和召回率的调和平均。

在表5中,农机机具识别网络在测试集上精确度的平均值为98.47%,说明网络对负样本的区分能力很强;召回率的平均值为98.37%,说明网络对正样本的识别能力很强;F1-score的平均值为98.41%,说明分类网络对大部分机具类型、作业场景、非机具图像以及光影干扰等都能准确识别,具有良好的鲁棒性、稳健性、实用性较强,满足实际应用的要求。

表5 精确度、召回率和F1值Tab. 5 Precision, recall and F1-score %

3.2.3 讨论

识别错误的机具图像如图6所示,分析原因如下。

1) 采集图像时,由于摄像头倾斜等原因只拍到机具的一部分导致识别错误,图6(f)和图6(g)将翻转犁识别为起垄机,图6(o)将旋耕机识别为深松机。

2) 机具表面存在土壤、秸秆、人、草等,遮挡了大部分机具,图6(l)和图6(m)将旋耕机识别为翻转犁,图6(k)将深松机识别为起垄机。

3) 部分机具外形相似,如图6(k)将深松机识别为翻转犁,该类型的深松机和翻转犁均为三角框架形式,差别只在其安装的深松铲。

4) 数据集收集不够全面,如播种机图6(a)、图6(b)、图6(c)、图6(d)图像均会出现识别错误,此种现象的情况较少,可能是其纹理、颜色比例与其他机具相似,所以识别错误。

上述分析说明,模型仍存在不足之处:当机具图像有大面积遮挡或只拍摄到部分机具时,识别能力较弱。

图6 识别错误农机机具图像Fig. 6 Misrecognition image of agriculture machine

4 结论

1) 构建了包括播种机、翻转犁、起垄机、深松机和旋耕机5种类型的农机机具图像标注数据集,其中训练集55 000张,验证集18 970张,该数据集可以用于研究农机机具的自动识别、检测、跟踪等智能化应用。针对农机机具图像存在的质量问题,分别进行了图像裁剪、图像色彩调整和运动模糊消除3个方面的图像预处理。

2) 根据实际应用需求和数据特点,设计了能够自动识别农机机具的卷积神经网络。在2块GPU上训练了近80 000张机具图像,识别准确率超过98%,单张图片识别效率达0.1 s。训练集和验证集识别率均超过98%,说明网络对环境变化、光影干扰、小区域前景遮挡具有良好的鲁棒性,训练集和验证集样本不重叠,说明网络有良好的泛化能力。

3) 与经典网络LeNet-5和ResNet-50相比,本文设计的农机机具识别网络在保持较高识别准确率与效率的同时,结构相对简单,参数较少,所需训练时间较短。

4) 在训练集和验证集外,随机挑选5种类型的图像各200张作为测试集,设计测试试验验证模型的实用性,测得模型对各类机具图像识别精确度平均值为98.47%,召回率平均值为98.37%,F1-score平均值为98.41%,表明模型实用性较强;并分析了错误识别的原因。

综上所述,本文根据农机机具原始图像构建了基于卷积神经网络算法的农机机具图像标注数据集,设计卷积神经网络结构并训练模型实现了农机机具的自动识别,能够较好地满足实际应用需求。

猜你喜欢

卷积机具神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
基于人工智能LSTM循环神经网络的学习成绩预测
基于图像处理与卷积神经网络的零件识别
MIV-PSO-BP神经网络用户热负荷预测
试论农机化新技术新机具的推广发展
lMLQS-40/70起垄铺膜施肥联合作业机操作使用及维护
基于深度卷积网络与空洞卷积融合的人群计数
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
卷积神经网络概述