基于决策树与卷积神经网络的害虫识别算法

2020-06-11 07:52郑丽丽
洛阳师范学院学报 2020年5期
关键词:决策树害虫卷积

郑丽丽

(闽南科技学院计算机信息学院, 福建南安 362332)

0 引 言

将计算机图形识别运用于农业生产可以降低害虫对农业的影响, 并推动农业自动化的发展[1-2]. 以前, 农业害虫的防治, 往往依靠人工或者机器大范围的农药喷洒成本较高.

目前已提出的害虫图像识别算法中, 张永玲等人提出了基于多特征融合和稀疏表示的农业害虫图像识别系统, 其采用HSV颜色特征、 HOG特征、 Gabor特征和LBP特征, 经过融合, 建立稀疏数据集, 完成对农业害虫的识别, 其优点是能覆盖多种特征, 具有抗干扰能力, 但是当背景干扰和目标采集环境发生较大变化时, 算法识别能力往往大受影响[3]. 张苗辉等人提出基于深度学习和稀疏表示的害虫识别算法, 其使用耦合网络模型、 caffe框架, 利用稀疏表示算法得到样本训练模型, 在一定程度上达到了害虫识别目的, 但是该技术未考虑训练模型的欠拟合性, 往往缺乏普适性, 当害虫图像特征变化较大时, 往往不能较好完成害虫识别任务[4]. 程曦等人提出基于深度卷积神经网络的储粮害虫图像识别算法, 其使用耦合深度卷积神经网络和数据预处理, 在熟悉样本前提下, 识别精确度方面达97.61%, 但是该技术过度依赖样本熟悉度, 当害虫种类亚型增加或者图像特征微弱时, 识别精确度往往受到影响[5]. 基于此, 本文提出了一种基于决策树与卷积神经网络的害虫识别算法.

1 农业害虫识别系统的架构

系统硬件架构图如图1所示. 首先, 由无人机的机载摄像头完成对害虫图形采集, 然后使用ZigBee通信协议, 将图像数据传输至数据处理服务器, 之后通过服务器上的识别分析系统, 完成对害虫的最终识别确认, 最后将识别信号发给报警器和害虫清除执行机构.

系统硬件架构图如图2所示. 首先, 基于决策树分类模型, 对先验样本库和经验知识库进行有监督式机器学习训练, 以得到基于决策树的机器学习算子;随后, 基于卷积神经网络分类模型, 设计迭代学习终止准则, 以得到基于卷积神经网络的深度学习算子;然后, 基于Boosting集成, 将深度学习算子作为机器学习算子的加强项, 形成本文基于多层识别模型的加强型算子;最后, 基于OpenCV和TensorFlow实现核心识别算法.

图1 系统硬件架构图

待检测图像如图3所示. 图中存在的农业害虫为蚜虫, 以红框标注显示, 其特征不明显, 背景具有较强干扰性, 本文主要针对这类害虫图像的识别展开研究和讨论.

图2 害虫识别算法的流程图

图3 待检测图像

2 害虫识别算法

为了达到准确识别害虫的目的, 首先引进决策树分类模型. 其原理是每次选择单个属性进行判断, 如无结论, 选择其他属性继续进行判断, 直到能够相对有把握地判断出目标类型或者是所有属性已判断完[6-7]. 本文的决策树构建方式为: 将所有害虫图像特征数据看作一个节点, 特征数据种类有颜色特征、 形态特征和灰度特征. 特征提取非本文重点, 在此不予以赘述;之后选择一个数据特征分成多个子节点,子节点满足停止分类条件, 则输出结果为该节点数量占比最大的类别, 如果不满足, 则再次挑选一个特征进行分割. 本文选择特征的依据之一为信息增益, 表示分裂前后数据复杂度的变化值, 其计算公式为

(1)

其中,Info_Gain代表信息增益;n代表节点数量;Gain代表节点复杂度. 信息增益增大, 代表分裂后复杂度减小, 分类效果越佳[8-9]. 选择特征的依据之二为熵, 描述了数据混乱程度, 其数学计算公式为

(2)

其中,Entropy代表图像特征熵,p代表目标种类占比. 图像特征熵越小, 代表特征数据混乱程度低, 纯度越高, 即分类效果越好. 接着进行依据之三, 其基尼值的计算公式为

(3)

其中,Gini代表基尼值,p代表目标种类占比. 基尼值越小, 特征数据越纯, 分类效果越好. 完成特征数据节点选择后, 进行停止分类条件的设定: 熵和基尼值代表数据复杂度, 熵或者基尼值越小, 数据纯度越大, 熵或者基尼值过小时, 节点停止分裂[10-11].

对于上述的决策树分类模型, 本文主要采用OpenCV开源视觉机器学习函数库, 模型创建使用函数DTrees∶∶create()来实现. 数据训练主要是使用函数model->train(data)来实现, 识别分类使用函数dtree->predict()来实现. 完成机器学习训练后, 为避免欠拟合学习的风险, 需进行深度学习训练.

卷积神经网络分为5层: 数据输入层、 卷积计算层、 ReLU激励层、 池化层和全连接层[12-13]. 本文首先在数据输入层对原始图像帧数据进行预处理, 即去均值、 归一化和PCA白化.然后进行卷积计算层, 通过局部关联, 将每个神经元看作滤波器, 经过窗口滑动, 完成滤波器对局部数据的计算. 激励层为基于卷积神经网络的深度学习算子核心, 即对输出结果进行非线性映射卷积操作, 其数学函数为:

F(x,y)=f(x,y)*K

(4)

(5)

其中,f代表卷积前图像;F代表卷积后图像;K代表卷积核函数. 随后进行池化层计算, 即压缩图像, 即特征不变性、 特征降维和过拟合防止. 最后进行全池化连接, 其数学函数为

(6)

其中,ga代表最大池化后的图像局部结果;c、d、e、f代表局部区域像素, 并在此基础上完成全网络的有权重连接.

卷积神经网络的优点是, 共享卷积核对高维数据处理无压力, 无需手动选取特征, 特征分类效果好[14]. 本文采用TensorFlow作为深度学习框架, 其具有可视化方便, 数据和模型并行化好, 速度快的优点. 本文提出的卷积神经网络是一种图像输入到数据结果输出的映射, 其能够学习大量的输入与输出数据之间映射关系, 不需精确的数学表达式, 只要用已知模式对卷积神经网络进行训练, 网络就具有对害虫有较好的图像识别能力.

Boosting算法可在决策树分类和卷积神经网络识别基础上, 进行集成学习, 其将前两种学习识别算法进行融合. Boosting(集成学习)通过结合多学习模型识别器来完成识别任务, 集成学习融合多个学习器, 往往比单一学习器更为优化[15].

本文在利用集成学习对决策树和卷积神经网络进行加权时, 首先令所有样本权重一致, 以得到第一个基分类器, 即决策树;从第二轮开始, 每轮开始前都根据上一轮结果调整每个样本的权重, 并提高上一轮分类错误样本的权重, 降低分类正确样本的权重;之后根据新得到样本权重指导本轮中基分类器训练, 即卷积神经网络操作. 在考虑样本不同权重的情况下, 计算得出本轮错误率最低的融合分类器;最后重复以上步骤, 直至样本正确时结束. 害虫识别结果如图4所示, 系统需要自动识别害虫, 并用红色线标注害虫图像区域, 以指示报警.

图4 害虫识别结果

害虫图像识别的关键代码如下:

import tensorflow as tf

def readPatches(fileNameList, patchSize):

nFile = len(fileNameList)

x = np.zeros([nFile, patchSize, patchSize, 3])

for it in range(nFile):

fileName = fileNameList[it]

imPatch = imread(fileName)

x[it, ∶, ∶, ∶] = imPatchreturn x

testingFeatureVectors.push_back( feature );

globalPixelXList.push_back(globalPixelX);

globalPixelYList.push_back(globalPixelY);}

atsoft∶∶itkRegionType region(start, sz);

atsoft∶∶itkRGBImageType∶∶Pointer patchAroundCell = atsoft∶∶itkRGBImageType∶∶New();

patchAroundCell->SetRegions(region);

patchAroundCell->Allocate();

3 实验结果及分析

为了评估所提算法对害虫的识别能力, 在此次实验中, 本文将文献[3]和文献[4]作为对照组, 分别记为A、 B技术. 害虫识别系统界面如图5所示, 该系统功能有: “图像采集”、 “决策树分类”、 “卷积神经网络分类”和“Boosting集成识别”. 待识别图像如图6所示, 其中标注指示红框内有一个蚜虫, 即待识别目标. 本文算法的究识别结果如图7所示, 文献[3]的识别结果如图8所示, 文献[4]的识别结果图如图9所示. 根据对比, 本研究可以更加精准定位害虫轮廓. 笔者经过多次实验, 得到了一个性价比较高的系统硬件配置. 计算机配置选型为Intel i7的四核中央处理器, 32GB的内存.

图5 害虫识别系统界面

图6 待识别图像

图7 本文算法的究识别结果

图8 文献[3]的识别结果图

图9 文献[4]的识别结果图

4 结 语

为了提高害虫图像识别能力, 本文设计了一种基于决策树与卷积神经网络的害虫图像识别算法. 利用传统机器学习, 完成了数据分类;通过采集大数据样本, 引入卷积神经网络, 完成了基于深度学习的害虫图像识别;通过Boosting集成, 自主研发多模型学习算法, 完成了对害虫图像准确识别. 并通过VS平台实现了该系统, 之后可以通过融合农业无人机、 ZigBee通信协议、 摄像头、 数据分析服务器, 构建起一个以计算机视觉算法为核心的智能硬件系统. 对标实验结果表明, 本文系统在害虫图像准确方面具有较高的准确性. 当然, 本文仅对一种害虫展开数据标签和模型训练, 多种害虫分类识别需要做进一步研究.

猜你喜欢
决策树害虫卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
蜗牛一觉能睡多久?
冬季果树常见蛀干害虫的防治
卷积神经网络的分析与设计
一种针对不均衡数据集的SVM决策树算法
从滤波器理解卷积
决策树和随机森林方法在管理决策中的应用
基于傅里叶域卷积表示的目标跟踪算法
枣树害虫的无公害防治
基于决策树的出租车乘客出行目的识别