基于深度学习卷积神经网络的花生籽粒完整性检测
2022-06-02张军锋尚展垒
张军锋 尚展垒
(1. 河南水利与环境职业学院,河南 郑州 450011;2. 郑州轻工业大学,河南 郑州 450002)
花生籽粒图像快速准确识别是花生籽粒完整性分选的关键[1]。近年来,随着深度学习理论的快速发展,卷积神经网络(CNN)作为一种具有代表性的深度学习技术逐渐被应用于图像识别领域[2-5]。与传统视觉图像检测技术相比,CNN蕴含着大量的图像特征信息,极大地提高了图像检测效率[6]。
学者们围绕CNN食品完整性检测开展了一系列研究并取得了一定成果。赵志衡等[1]提出了一种基于改进CNN的花生籽粒完整性识别算法,该算法对花生分类的准确率可以达到98.18%,但是并没有考虑真实应用环境对检测精确度的影响。张忠志等[7]采用双分支卷积神经网络对红枣缺陷进行检测,具有较好的分类识别效果,但是该方法依赖大规模训练数据集,而且模型参数配置过程耗时较长且得到的参数未必最优。张瑞青等[8]采用迁移学习卷积神经网络对花生荚果等级进行识别,分类识别准确率达到95.43%,但该模型采用随机梯度下降技术进行模型参数优化,效率较低。谢为俊等[9]在AlexNet网络基础上搭建适用于油茶籽完整性检测的CNN模型,并验证了该模型的有效性。因此,运用CNN技术进行食品目标识别检测具有广阔的应用前景。
研究拟结合花生籽粒完整性图像检测特点,提出深度卷积神经网络花生籽粒完整性检测方法,设计改进的密度峰值聚类算法和麻雀搜索算法,并对神经网络模型模型进行优化,最后通过对比试验来验证该方法的有效性,旨在为花生籽粒完整性检测研究提供理论依据。
1 花生籽粒检测系统和卷积神经网络
基于彩色色选设备研究花生籽粒完整性图像检测方法,以准确区分完整花生、果仁破损花生和表皮破损花生为目的,搭建如图1(a)所示的花生籽粒筛选系统,利用工业线阵彩色CCD相机实时获取花生籽粒图像信息,图像信息经边缘检测、图像分割以及滤波去噪处理后,采用提出的检测算法进行筛选分类,最后利用空气喷枪将判定为果仁破损花生、表皮破损花生进行剔除得到完整花生籽粒。
1.1 花生籽粒图像库
建立花生籽粒图像数据库,数据库中包括完整花生、果仁破损花生和表皮破损花生3类,如图1(b)所示。对采集得到的花生籽粒图像进行人工标记,为增加训练样本数量和多样性,采用镜像[10]、平移[11-12]、旋转[13-14]方法对图像进行有效数据增广,最终得到3 600幅花生籽粒图片(每个分类各1 200幅),统一设置图片格式为224像素×224像素正方形图像。模型训练时,从图像数据库中随机选取80%(每类840幅,共2 520幅)样本为训练集,剩余20%为测试集。
图1 花生籽粒检测系统和图像数据库示意图Figure 1 Schematic diagram of peanut grain detection system and image database
1.2 卷积神经网络
卷积层、池化层、全连接层是CNN的主要组成部分,其中,卷积层和池化层交替出现,实现对数据的特征学习;全连接层采用全连接的方式与最后一个池化层进行连接,实现对提取特征的分类。
1.2.1 卷积层 对于大小为M×N的输入图像,用矩阵x描述,设卷积核为m×n的矩阵w,偏置为b,卷积层通过多个卷积核w和激活函数f(·),实现对输入数据的卷积运算和构建特征映射关系,得到一系列特征图h(如图2所示)。卷积计算表达式为:
图2 卷积核提取特征过程示意图Figure 2 Schematic diagram of convolution kernel feature extraction process
h=f(x⊗w+b),
(1)
式中:
h——输入图像经卷积计算后的特征图;
f(·)——激活函数;
x——卷积核M×N的矩阵;
w——卷积核m×n的矩阵;
b——偏置项。
1.2.2 池化层 池化层主要用来压缩卷积层输出特征,保留主要特征,池化层不改变卷积层输出的特征图数量。通过式(2)和式(3)分别定义最大值池化ymax和平均值池化yave的数学表达式:
ymax=max(x1,…,xl),
(2)
(3)
式中:
x1——池化区域第1个元素像素值;
xl——池化区域第l个元素像素值;
l——步长。
1.2.3 全连接层 全连接层将特征映射到标记空间,包含隐含层和输出层,对于全连接隐含第k层,设定输入值为xk-1,权值向量为ωk,偏置为ck,利用激活函数f(·)得到k层输出zk:
zk=f(ωkxk-1+ck)。
(4)
当k=1时,xk-1为最后一层池化层铺展后值。全连接输出层通常采用Softmax函数[15]进行概率分布处理以便于计算损失函数。
1.2.4 卷积神经网络存在的主要问题 主要问题有:① 多个卷积核得到的图像特征冗余度缺乏定量分析,影响了网络运算效率;② 网络结构和参数设置对分类结果影响较大,传统网络参数设定方式很容易导致网络陷入局部最优;③ 扩展网络深度能够提升网络性能,但是也增加了网络参数规模和计算复杂度。
2 改进卷积神经网络
为提升卷积神经网络性能,结合花生籽粒图像相对简单的特点对传统AlexNet模型进行改造:设计2层卷积层、2层池化层,采用2层全连接层替代原有3层全连接层;将批归一化(BN)[16]置于卷积层激活函数后,加快网络训练速度;利用改进的密度峰值聚类(IDPC)算法对卷积核特征进行自适应压缩,采用改进的麻雀搜索算法对网络超参数结构进行优化配置。图3为改进卷积神经网络示意图。
图3 改进卷积神经网络结构示意图Figure 3 Structure diagram of improved convolutional neural network
2.1 密度峰值聚类压缩卷积核提取特征
(5)
(6)
γi=ρiδi,
(7)
式中:
ρi——特征图的hi的局部密度;
ρj——特征图的hj的局部密度;
dij——数据点hi与hj的距离;
δi——数据点hi的最近点距离;
dc——截断距离;
γi——聚类中心判定参数。
确定每个数据点的ρi、δi后,DPC按照γi大小,选取前C个点为聚类中心,其余点划分到距离最近聚类中心所在分类。
研究[19]表明,DPC对大规模数据集的聚类结果是稳健的,但对小规模数据集较为敏感,即当出现某个点分配错误时,可能会使得更多的点分配错误。为此,对数据点分配过程进行改进,引入核距离度量Dij替代dij,其数学表达式见式(8),并定义hi和hj的相似性ζij,其数学表达式见式(9)。
Dij=‖Φr(Xj)-Φr(Xi)‖2,
(8)
ζij=1/(1+Dij),
(9)
式中:
Φ——核函数。
从式(9)可以看出,hi与hj距离越近,它们的相似性越高,因此属于同一聚类的可能性越大。定义数据点hi属于第c(c=1,…,C)个聚类的概率pi,c,其数学表达式为:
(10)
式中:
yi——hi的分类标号,yi=c表示hi属于第c个聚类;
KNNj——hi的k近邻集合[20]。
确定hi的所有概率{pi,1,…,pi,C}后,将其划分到概率最大的聚类中。
采用改进的DPC(IDPC)算法对卷积核进行提取,使得网络参数规模由n降到C,最大限度地降低了卷积核冗余度,简化了网络参数。图4为改进密度峰值聚类压缩卷积核提取特征示意图。
图4 改进密度峰值聚类压缩卷积核提取特征示意图Figure 4 Feature extraction diagram of IDPC compressed convolution kernel
2.2 网络超参数、网络结构优化配置
2.2.1 改进SSA更新进化策略 以训练误差作为SSA目标函数F(SSA),麻雀个体X编码定义为:
(11)
式中:
M1、M2——2层卷积层卷积核数大小类型,且M1(M2)=1,2,3分别表示大小为3×3、5×5、7×7;
f1、f2——激活函数类型,且f1(f2)=1,2,3,4分别表示激活函数为f1、f2、f3、f4;
A1、A2——2层池化层操作类型,且A1(A2)=1,2分别表示P1最大值池化、P2平均值池化。
(12)
(13)
式中:
麻雀种群内一部分个体采用加速进化机制进行更新,直接向最优个体进行学习,提升了算法收敛效率;一部分个体采用深度搜索机制,向更多个体进行学习,扩展了样本搜索空间,提高了算法收敛精度。
(14)
其中,[·]表示向下取整数。
(15)
(16)
(17)
(18)
2.2.2 改进卷积神经网络实现 利用IDPC算法提取每层最佳卷积核,采用ISSA优化网络超参数和网络结构,最终得到适用于花生籽粒完整性检测的CNN模型。其实现过程如图5所示。
图5 改进卷积神经网络实现流程图Figure 5 Implementation flow chart of improved convolutional neural network
3 仿真试验
3.1 优化网络参数
使用图像识别领域基准MNIST数据集、CIFAR-10数据集和花生籽粒图像库训练集进行模型训练,其中MNIST数据集包括60 000张单通道灰度图像训练集、10 000张测试集,CIFAR-10数据集包括60 000张3通道彩色图像训练集、10 000张测试集。采用深度学习卷积神经网络(DL-CNN)、只利用ISSA优化网络结构的卷积神经网络(ISSA-CNN)对3种数据集的训练集进行模型训练。
由表1和图6可知,DL-CNN、ISSA-CNN能够给出优化后的网络参数。对于MNIST、CIFAR-10以及花生图像测试数据集,DL-CNN给出的激活函数优化结果为f2、f1、f3(第一层)、f3、f1、f2(第二层);对于每层卷积核数目,DL-CNN优化后的参数明显小于ISSA-CNN,这表明,IDPC算法的引入能够降低卷积核数目规模,简化网络结构。
图6 卷积核数目优化对比结果Figure 6 Comparison results of convolution kernel number optimization
表1 参数优化范围及DL-CNN算法优化结果Table 1 parameter optimization range and optimization results of DL-CNN algorithm
利用花生籽粒图像库训练集验证归一化方法和全连接层层数分别对模型性能的影响,其中归一化方法选取BN、LRN[15],全连接层层数分别设置为1层、2层,其他网络参数选取DL-CNN优化后的参数,结果见表2。由表2可知,归一化方法LRN的引入对模型准确率影响较小,但是大幅增加了网络参数训练时间;而BN的引入能够大幅度提升模型准确率,而且模型训练时间小于LRN;2层全连接层准确率高于1层全连接层,但是两者的模型训练时间相近。综上,采用BN归一化方法和2层全连接层使模型具有更高的准确率和训练时间。
表2 归一化方法、全连接层对模型性能影响结果Table 2 Effects of normalization method and full connection layer on model performance
3.2 对比试验结果
为进一步验证DL-CNN性能,选取标准CNN、ISSA-CNN和文献[9]提出的CO-Net,对MNIST数据集、CIFAR-10数据集和花生籽粒图像库中的训练集进行对比试验。
由图7可知,对于MNIST数据集,DL-CNN能够在迭代250次时找到全局最优解,要快于其他3种算法,而且收敛精度(分类准确率)达到了97.63%,高于其他3种算法。对于CIFAR-10数据集,DL-CNN收敛精度与CO-Net相当,均超过97%,明显高于其他2种算法,而且DL-CNN仅需迭代200次左右就能够找到全局最优解,收敛速度更快。对于花生籽粒图像库训练集,DL-CNN无论是在收敛速度上还是收敛精度上都优于其他3种算法,且其他3种算法的收敛精度低于94%,表明这4种算法中DL-CNN陷入局部最优的可能性最小。由表3可知,DL-CNN无论是对于训练集还是测试集,分类准确率均高于其他3种算法,分类准确率几乎保持在97%以上,对于花生籽粒图像识别准确率提高了约5.41%~13.92%。而CNN准确率最低,仅为86.03%,未达到实际应用要求。综上,DL-CNN对单幅图像的运算速度与其他3种算法相当,能够以14.1 ms左右的速度实现对单幅图像的检测识别。
表3 4种模型测试集试验结果Table 3 Experimental results of four model test sets
图7 4种模型准确率收敛曲线Figure 7 Convergence curves of accuracy of four models
3.3 真实环境试验结果
对构建的花生籽粒筛选系统进行真实环境试验仿真。CCD相机得到线阵图像经过处理后得到单粒花生图像,耗时约2~3 s,然后采用DL-CNN进行图像筛选,最后利用空气喷枪将判定为破损花生进行剔除,最终实现花生籽粒完整性检测。对一批花生籽粒进行筛选,得到图像检测准确率为97.63%,实际筛选出完整籽粒正确率为91.14%,表明在真实环境下DL-CNN模型仍然能够以97.63%的准确率实现对花生图像的高精度识别。考虑空气喷枪精度、传输带稳定性等因素,整个花生籽粒完整性筛选准确率仍然能够达到了91.14%。因此,该系统能够很好地实现对花生籽粒的筛选,具有一定推广应用价值。
4 结论
对花生籽粒筛选问题进行研究,提出了基于DL-CNN的花生籽粒完整性检测方案。通过引入IDPC算法对卷积核进行自适应压缩处理和ISSA对网络参数配置和网络结构进行优化,有效提升了识别准确率,而且基于DL-CNN的花生籽粒完整性筛选系统能够以91.14%的准确率实现真实环境下的花生完整性检测,证明了该方案的有效性和可行性。下一步将重点研究提升筛选系统的稳定性。