当前位置:首页 期刊杂志

基于改进卷积神经网络的食品异物自动识别方法

时间:2024-07-28

邓阿琴 胡平霞

(1. 湖南环境生物职业技术学院,湖南 衡阳 421005;2. 湖南农业大学,湖南 长沙 410013)

近年来,中国食品异物检测技术发展迅速,取得了一些较为突出的成果[1]。常见的异物检测方法包括磁性金属检测、高光谱成像和X射线技术[2-3]。冯喆等[4]提出的一种结合高光谱成像和深度学习的食品异物检测方法具有较高的检测准确率,高达98.50%。石吉勇等[5]提出一种用于检测人造肉中低色差异物的高光谱成像技术,SG预处理后的频谱在降噪方面优于其他预处理方法,结合BP-ANN模型对全波段主成分变量的检测效果最好,准确率为98.33%。张俊俊等[6]提出了一种用于检测方腿中异物的超声图像检测技术,虽然有无异物回波信号存在着一定差异,但检测准确率为96.39%。韩明等[7]提出了一种用于检测烟丝中异物的X射线检测技术,该方法能有效识别各种金属和非金属异物,烟丝中异物的平均识别率为99.5%。但上述方法均存在识别精度低、识别速度慢等问题。

研究拟基于X射线检测系统,建立一种改进的卷积神经网络CNN)模型来自动识别食品图像中的异物。在LeNet-5网络结构的基础上,增加批量归一化层以提高网络的学习速度,增加Dropout层避免过度拟合。通过试验分析改进模型的优越性,旨在为食品异物的快速、无损检测技术发展提供技术支撑。

1 系统概述

图1为食品异物检测系统结构[8]。以水饺为例,检测嵌入水饺中的异物(异物包括钢球、铁丝、螺钉、石头、玻璃等),当水饺在传送带上移动时,X射线源发出X射线能量,平板探测器将检测到的不同X射线能量转化为数字图像信号并传输到嵌入式系统,嵌入式系统将图像发送到计算机进行图像实时处理[9]。研究拟采用改进的CNN模型来自动识别水饺图像中的异物,若产品含有异物,系统则产生报警信号,并采取进一步的去除措施。

图1 X射线检测系统结构Figure 1 X-ray detection system structure

2 食品异物识别方法

2.1 图像预处理

在实际环境中,使用X射线成像系统进行图像采集时存在一定的干扰。图像预处理是指对图像进行去噪和增强,便于后期异物识别。根据样本的特点并参考文献[10-12]中图像预处理方法,研究采用中值滤波和对比度拉伸2种图像预处理方法。

2.2 改进卷积神经网络

CNN与传统神经网络的最大不同在于稀疏连接和权值共享。在不增加训练数据的情况下,CNN降低了模型参数的数量,增加了网络的规模,因此可以训练更复杂的模型[13]。典型的CNN网络结构(LeNet-5网络)如图2所示。

图2 LeNet-5结构Figure 2 LeNet-5 structure

典型的CNN一般具有较深的结构和较多的网络层,存在梯度消失问题。为了解决上述问题,在LeNet-5网络结构[14]的基础上,增加批量归一化层以提高网络的学习速度,并增加Dropout层以避免过度拟合。

(1) 输入层:将输入的300×200单幅食品图像进行缩放,大小为64×64,采用“1”和“0”对正、负样本进行标记,以减少复杂性和算法执行时间。

(2) 卷积层:卷积层通常是通过叠加多个卷积核对图像特征进行提取。假设通过j个卷积核卷积以生成j个不同的特征图,按式(1)计算特征图[15]。

(1)

式中:

Mj——特征量;

f()——激活函数。

Relu激活函数可以进一步加快网络的学习和计算速度,因此选用Relu激活函数计算特征图。

基于LeNet-5卷积核的尺寸设计不同的卷积模型并比较模型的识别精度,最后采用5个卷积层。参数如表1所示。

表1 卷积层参数Table 1 Disease dataset

(3) 批量归一化层:将批量归一化层放在卷积层(1~4)后可以加快网络训练和防止梯度消失,即在进入下一层之前,前一层的输入会被归一化。具体操作如式(2)~式(5)所示[16]。

(2)

(3)

(4)

(5)

式中:

X——原始数据;

m——每个标准化样本;

μ——平均值;

σ2——方差;

Z′——缩放后的数据;

ξ——常数;

α、β——学习参数,由 CNN 训练得到,用来代替偏置。

(6)

式中:

下采样操作选择最大池化,即使用最大值替换2×2内的像素,具体流程如图3所示。

图3 最大池化操作Figure 3 Maximum pooling operation

(5) Dropout 层:Dropout层在卷积层5的前面,以减少隐藏层节点之间的协作,提高网络性能和防止过拟合。通过设置阈值使隐含层节点间断出现,使权值更新不再依赖某些节点间的共同作用。

(6) 输出层:经过一系列卷积、池化和特征映射操作后,通过Softmax分类器对损失值进行计算,用于衡量误差。如果误差为0,则说明分类效果最好。同时,通过反向传播和链式求导,将损失值返回到池化层和卷积层,以更新各层的参数。设有k个不同的分类标签,Softmax计算如式(7)所示。

(7)

式中:

ψi——输入图像被分类为第i个类别的概率。

图4为改进的CNN模型。

图4 改进CNN模型Figure 4 The improved CNN model

3 结果与分析

3.1 试验参数

试验设备为华为PC,操作系统为windows 10 64位旗舰,第11代酷睿i7 CPU,主频2.5 GHz,内存16 GB,测试平台为matlab 2018a。以饺子为例,挑选直径1~3 mm的钢球、1 mm铁丝、2 mm螺钉、1~2 mm石头、1~2 mm玻璃嵌入水饺表面。为了避免因样本选择错误而导致的单一数据,选取正负样本各2 000个作为试验数据集,包括训练集、验证集和测试集,训练集∶验证集∶测试集=7∶2∶1。模型参数如表2所示。

表2 模型参数Table 2 Model parameters

3.2 试验分析

为了验证所提方法的优越性,使用改进的CNN网络结构和未改进的CNN结构对样本进行了60次迭代训练。训练和验证曲线如图5所示。

由图5可知,对于未优化的CNN模型,当迭代次数为2~22时,网络训练和验证误差稳定在0.32,此后随着迭代次数增加,训练误差快速降低,验证误差先增加后快速降低,最终在迭代次数为60时稳定在0.02;对于改进后的CNN模型,当迭代次数<10时,训练和验证误差快速降低而后趋于稳定。当迭代次数为20时,误差趋于0,模型的分类效果最好。

图5 训练和验证误差曲线对比Figure 5 Comparison of training and validation error curves

为了验证所建立模型的可靠性,采用训练后的CNN网络模型对测试集中200个有异物的饺子图像和200个无异物的饺子图像进行识别,并以识别精度作为测试的评价指标,识别效果见图6。识别数据表明,200个无异物饺子识别率为100%,200个有异物饺子识别率为99.5%,平均识别时间为0.332 s。在200个有异物饺子的识别中,120个含有金属异物饺子的识别率为100%,80个含有非金属异物饺子的识别率为99.5%,非金属异常漏检的是玻璃,这是因为玻璃在X射线中与水饺灰度相似,易造成混淆。 综上,所建立方法在食品异物检测中具有较高的检测精度。

图6 有无异物识别效果Figure 6 Recognition effects of presense of foreign bodies

为了验证改进CNN模型的性能,将其与BP神经网络[18]、SVM[19]、决策树(Decision Tree)分类器[20]进行比较。首先,提取饺子图像的LBP、HOG和GABOR特征,采用不同方法分别识别无异物的饺子和有异物的饺子。识别结果如表3所示,LBP提取特征维数最少,为59;改进的CNN提取的特征维数为500;HOG和GABOR提取的较多,分别为1 764,2 560。

表3 不同模型识别效果对比Table 3 Comparison of recognition effects of different models

由表3可知,采用LBP特征进行食品异物识别时,传统方法的识别效果较差,但平均识别时间最短。HOG特征的识别效果介于中间。采用GABOR特征进行食品异物识别时,识别效果较好,但平均识别时间较长,BP神经网络、SVM和DT的识别率分别为88.50%,92.50%,87.50%,识别时间分别为0.067,0.714,1.678 s。在几种传统的模型中,支持向量机识别准确率最高,BP神经网络识别时间最短。

与传统模型相比,所建立的饺子图像异物识别模型具有较好的检测速度和识别精度,识别率达到99.75%,识别时间仅为0.332 s。综上,改进的CNN模型优于传统方法,比LBP、HOG和GABOR提取的特征更加有效。

4 结论

通过在LeNet-5网络结构的基础上增加批量归一化层和Dropout层得到了改进的CNN模型,利用此模型建立了自动识别系统用于食品图像中异物自动识别。结果表明,与传统的模型相比,改进的CNN模型提高了检测速度和识别精度,识别准确率为99.75%,识别时间为0.332 s,比LBP、HOG和GABOR提取的特征更加有效。从目前的检测设备和数据规模来看,所建立的食品异物检测系统仅能检测单个食品异物,要进一步优化和改进,以适应种类繁多的食品检测。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!