APP下载

基于X 射线和卷积神经网络的异物水饺识别

2019-09-06王新宇杨晓燕楼晓华

食品科学 2019年16期
关键词:水饺异物X射线

王 强,武 凯,*,王新宇,孙 宇,杨晓燕,楼晓华

(1.南京理工大学机械工程学院,江苏 南京 210094;2.南通四方冷链装备股份有限公司,江苏 南通 226300)

速冻食品是我国食品行业的重要组成部分,因其具有新鲜、卫生、营养合理、食用方便的特点,深受人们的喜爱,已经成为人们日常饮食生活中不可缺少的一部分[1]。同时随着中国饮食文化在国外影响的逐渐扩大,具有“中国特色”的速冻水饺深受国际市场的欢迎,出口量迅速增加。“民以食为天,食以安为先”,速冻食品行业的快速发展是建立在食品质量与食品安全的基础之上的。然而近年来因金属、石头、玻璃等异物[2]引发的食品安全事件,不但严重损害消费者的身心健康,而且给食品企业带来巨大的信誉和经济损失。因此在食品生产、加工等流程中增加对异物的检测,及时剔除含有异物的有害产品具有重要意义[3]。目前速冻水饺中的金属异物主要通过金属检测机利用电磁感应原理检测,存在很大局限性:1)只能够检测金属,无法检测石头、玻璃、骨头等异物;2)对于高含水量食品检测精度受到一定的影响;3)检测结果无法直观可视,无法实现异物的精确定位,一旦发现金属异物,整袋水饺即被丢弃,无法将不含异物的单个水饺重新利用,造成巨大浪费。基于X射线的无损检测技术因其具有穿透力强、检测速度快、检测精度高、检测结果直观、可实现在线自动检测等优点,广泛应用于食品、农业、工业等行业,为上述问题提供了一个高效、可靠的解决方法[4-5]。

目前利用X射线进行产品检测的研究报道已经很多。在农产品品质方面:Kotwaliwale等[6]将X射线应用于山核桃缺陷与虫害的无损检测;Tollner等[7]利用X射线检测洋葱内部缺陷,把图像的边缘特征和余弦特征作为检测因子,构建神经网络和贝叶斯分类器对其进行缺陷识别,正确率分别为90%和80%;Jiang等[8]利用X射线并提出了一种自适应阈值分割算法对感染亚洲果蝇虫卵的石榴、桃子进行检测,正确率高达95%和98%。在食品异物检测方面:洪冠等[9]以铝箔包装鸭肫X射线图像为研究对象,通过提取长宽比、圆度和方差等特征,利用BP神经网络对鸭肫中的金属丝、石子、骨头3 种异物进行检测;Nielsen等[10]利用X射线暗场成像和光栅干涉仪对碎肉和牛奶中的瓢虫、苍蝇、厚纸条、玻璃进行识别,以信噪比作为判断依据,取得了较好的实验结果。

传统上,利用X射线进行产品质量检测,很大程度上受到样本本身和人为提取特征的影响,不具有普适性,鲁棒性差。相比于常规方法,深度学习中的CNN模型无需人工提取特征,其网络可以根据输入的数据本身自动学习特征,对图像具有极强的表征能力,在解决许多传统人工智能和计算机视觉问题上取得了突破性进展,目前已经广泛用于手写字符识别[11-13]、人脸识别[14-16]、图像分类[17-19]和物体识别[20-22]。以上应用为CNN模型用于盒装水饺异物识别提供了依据,同时也表明CNN模型在图像识别中可以有效克服传统方法的不足。

图1 本实验算法整体识别流程图Fig. 1 Flow chart of overall recognition of algorithm

本实验通过X射线检测设备采集了大量水饺样本图像,根据X射线图像的特点,提出一种基于卷积神经网络的异物水饺识别模型,以实现对含有金属球、铁丝、铁钉、石头和玻璃5 种异物水饺的有效识别,为盒装水饺中的异物在线自动检测提供了一种新的方法。本实验算法的主要步骤包括:1)图像获取:使用X射线成像系统获取不含和含有异物的水饺数字图像,并储存在电脑中。2)图像预处理:对获取的X射线数字图像进行去噪、对比增强处理。3)构建正负样本集:根据盒装水饺的分布特点,对图像进行分块,获取单个水饺图像,并进行尺寸缩放以满足实验要求。4)构建CNN模型:确定各层参数,包括卷积层、批量归一化层、ReLu层、最大池化层、Dropout层等。5)利用构建好的CNN模型训练、验证无异物和异物水饺图像,并保存网络模型。6)利用训练好的CNN模型对整幅水饺图像进行测试,并显示结果。本实验算法的整体识别流程图如图1所示。

1 材料与方法

1.1 材料

选取某品牌的盒装速冻水饺作为本实验的研究对象并挑选直径分别为1、2、3 mm的金属钢球、直径为1 mm的细铁丝、直径为2 mm的螺钉以及长×宽×厚度为(2~3 mm)×(2~3 mm)×(1~2 mm)的石头与玻璃作为嵌入水饺中的异物。盒装水饺和异物图像如图2所示。

图2 实验材料Fig. 2 Experimental materials

1.2 仪器与设备

采用苏州科耐视智能科技有限公司KST-T半自动双转盘式X射线检测器采集水饺图像,其主要由X射线源、平板探测器、图像采集卡、主机、检测平台、射线防护箱等部件组成,如图3a所示。其中X射线源主要提供不同能量大小的X射线,其管电压为0~160 kV可调,焦点尺寸为0.8 mm。平板探测器主要用于接收X射线,完成光电信号转换,最后经过数字信号转换器形成所需要的数字图像。其最大检测尺寸为9 寸×9 寸,最小像素单位为200 μm,检测画面如图3b所示。

图3 检测设备Fig. 3 Testing equipment

1.3 方法

1.3.1 图像采集

图4 图像预处理与图像分块过程Fig. 4 Image preprocessing and blocking

在获取X射线图像之前,将盒装速冻水饺分成A、B两组放在常温下融化,待水饺松软时,使用剪刀和镊子将异物放入B组水饺内部。为最大化图像对比度和最小化图像噪声,使用10 组测试的X射线水饺图像调节X射线管电压与管电流参数,最终获得最佳的管电压范围为60~80 kV,管电流为0.8~1 mA。在设置最佳参数后,分别采集了300 幅X射线无异物水饺图像和300 幅X射线异物水饺图像。获取的原始图像大小为860×800,如图4a、e所示,为方便后期处理,将原始图像采用线性插值的方式放大至900×800。

1.3.2 图像去噪与对比拉伸变换

图4b、f为使用大小为3×3的窗口进行中值滤波后得到的去噪图像G(x,y);图4c、g为去噪后图像进行对比拉伸后的得到的图像,即Y(x,y)=c×lg(1+G(x,y)),其中c为尺度比例常数,取0.8,Y(x,y)为变换后的图像。经过去噪和对比拉伸变换处理后[23-24],图像中孤立的噪点得以消除,图像灰度更加均匀,目标异物边界清晰。

1.3.3 构建正负样本集

在采集的X射线水饺图像中各选取200 幅无异物和异物水饺图像作为样本采集对象,根据盒装水饺的分布特点,为方便后期图像中单个异物水饺统计和异物水饺的二次处理,将整幅水饺图像分成12 块尺寸大小为300×200的单个水饺图像,如图4d、h所示。随后对单个水饺图像进行筛选,避免数据样本的错误选定和单一性,最后选取了正、负样本各1 500 幅作为本实验的数据集,数据均用于构建的CNN模型的训练和参数优化验证。从正、负样本集随机选择80%的样本作为训练集,20%的样本作为验证集,部分正、负样本图样如图5所示。CNN模型训练完成后,将剩余的异物和无异物水饺图像各100 幅,作为模型效果验证的测试集。

图5 实验部分数据集样本示例Fig. 5 Sample images of selected datasets

1.3.4 构建CNN模型

CNN模型具有比例缩放、平移不变性的特点,其主要利用卷积运算提取目标不同层次的特征,并在网络训练的过程中自动调节网络的参数,产生最合适的分类特征,避免了传统识别方法中复杂的特征提取过程。CNN具有两种重要的特征:局部感知和参数共享。局部感知是指,网络中的每一个神经元不需要对整幅图像进行全连接,只需要对局部区域进行感知,然后在更高层将局部信息综合起来得到全局信息。参数共享是指所有神经元对局部区域采用相同的连接参数,即所有神经元提取的局部特征是同一性质的。在参数共享的基础上,为获取更多的特征映射特征图,往往给出不同的卷积核。同时为降低分辨率,减少冗余特征,需要对特征图进行池化操作,来加速网络的训练和学习。

LeNet是经典的CNN模型,最初成功用于手写字符识别,由于异物水饺识别也是对某一未知的水饺图像进行识别与匹配,该过程与手写字符识别相似,因此本实验将LeNet模型作为基础网络框架,使用MATLAB中的MatConvnet工具箱对其重要结构参数和训练策略进行优化,以获取适合的异物水饺识别模型框架。具体结构设计描述如下:

1)输入层:为减少计算量和加快算法运行时间,将尺寸大小为300×200单个水饺图像缩放至64×64,并将正负样本分别标记为“1”和“2”,作为卷积神经网络的数据输入。

2)卷积层:卷积层用于提取输入图像的特征,假设输入图像通过j个不同的卷积核进行图像卷积,生成j个不同特征图,则第l层的第j个特征图xlj的计算公式如下:

式中:f()为激活函数,本实验选择非饱和线性修正单元ReLu作为激活函数。ReLu函数可以训练层次比较深的网络模型,而且可以加快网络的学习和计算速度。Mj为输入图像的特征量,为卷积核,为输入特征图的偏置。在实验的过程中,本实验借鉴了LeNet卷积核大小的设计,针对不同结构的CNN模型进行训练,然后通过对比不同模型的识别准确率,最终设计了5 个卷积层。其中卷积层1,有50 个卷积核,即输出50 幅特征图,卷积核大小为3×3;卷积层2,有100 个卷积核,大小为4×4;卷积层3,有300 个卷积核,大小为5×5;卷积层4,有500 个卷积核,大小为5×5;卷积层5,卷积核大小为1×1。

3)批量归一化层:为加速网络训练、防止各层分布不均和梯度弥散,在网络的前4 个卷积层之后添加批量归一化层,即在上一层的输入进行归一化处理之后再进入网络的下一层。具体操作如下式所示[20]:

式中:x1,x2,...,xm为输入值,m为每次批量归一化的样本数量,γ和β为学习参数,μB为样本均值,σB为样本方差,为规范化后的数据,ε为常量,用来保证数值的稳定性,yi为输出。

4)池化层:为减少相邻卷积层连接单元的数量、减少冗余特征和网络的计算负担,需要进行池化操作。假设经过池化之后的特征图为,则池化操作的计算公式如下:

图6 最大池化操作Fig. 6 Max pooling operation

5)Dropout层:为提高CNN的性能和模型的泛化能力,防止过度拟合,在卷积层5之前引入了一个Dropout层。

6)输出层:经过一系列的卷积、池化和特征映射操作之后,本实验选取Softmax分类器来计算CNN的损失值,衡量模型分类估计值与真实值之间的误差,误差越趋近于0,表示所构建的模型对当前测试数据的分类效果越好。

根据实验结果,最终确定的CNN模型如图7所示。

图7 本实验设计的卷积神经网络模型Fig. 7 Convolution neural network model designed in this study

1.3.5 实验软件及硬件

本实验实验平台为台式计算机,PC处理器为Inter(R)Core(TM) i3-2000H(主频3.10 GHz),运行内存为4 GB,500 G硬盘,运行环境为Windows 7 64位,在MATLAB R2016b的编程环境下实现。

2 结果与分析

2.1 CNN模型的训练与验证

使用正负样本集来训练和验证构建的CNN模型,网络权重的初始化采用标准差为0.01,均值为0的高斯分布。样本的迭代次数设置为60 次,每次批处理的Batch Size为200,并设置权重参数的初始学习速率前期为0.001,后期为0.000 5,动量因子设置为0.9。分别使用经过批量归一化处理和没有批量归一化层的两种网络结构对样本进行60 次迭代训练,其变化曲线如图8所示。

图8 卷积神经网络训练和验证误差曲线Fig. 8 Convolution neural network training and verification error curves

从图8可以看出,随着迭代次数的增加,训练和验证的分类误差逐渐降低并趋于稳定。对于没有批量归一化层的网络结构,在前30 次迭代时,网络的训练和验证误差一直处于0.28~0.4之间,尤其是在第3~22次迭代期间,网络训练和验证误差一直保持在0.34,随后网络的误差急剧下降,在第60次迭代结束时,训练和验证误差达到0.02。对于含有批量归一化层的网络结构,在前10 次迭代时,网络的训练和验证误差就开始急剧下降,后面逐渐趋于平缓,当训练迭代到第30次时,网络可以实现对训练集和验证集的误识别率都降至0,之后模型分类准确率趋于稳定。这两种不同的网络结构表明,在网络结构中加入批量归一化层,可以有效地加快网络训练速度和降低网络误差,帮助网络提前收敛。模型在经过60 次迭代之后,训练损失收敛到稳定值,表明CNN达到了预期的效果。

2.2 特征图可视化分析

按照图7网络结构,使用训练好的CNN模型对异物水饺图像样本进行识别。图9为输入的异物水饺图像在5 个卷积层所对应的特征图的输出结果,输出1和2分别表示异物和无异物水饺。如图9所示,本实验构建的CNN模型通过局部感受野和权值共享,可以有效地提取异物水饺特征。

图9 异物水饺在CNN网络各卷积层的处理结果Fig. 9 Processing results of foreign body-containing dumplings in each convolution layer of CNN

2.3 模型测试结果与对比

为验证本实验网络模型的可靠性和稳定性,利用训练好的网络模型和滑动窗口,对测试集中无异物和异物水饺图像各100 幅进行识别,选择正确识别整幅水饺图像和正确对图像中异物水饺计数作为实验结果有效性的评价指标。图10a为无异物水饺识别结果,图10b从左到右依次为含有金属钢球一种异物和含有钢球、石头、螺钉、铁丝4 种异物以及含有全部5 种异物的水饺图像异物计数与识别结果。可以看出,本实验构建的CNN模型可以实现异物水饺的精确识别。

图10 水饺识别结果Fig. 10 Identification results of dumplings

为验证本实验的算法性能,与常规方法进行比较。首先,分别提取水饺图像的提取局部二值模式(local binary pattern,LBP)[25]、方向梯度直方图(histogram of oriented gradient,HOG)[26]和Gabor[27]纹理特征,作为识别无异物和异物水饺的特征向量,然后使用BP神经网络[28]、支持向量机(support vector machine,SVM)[29]、KNN分类器、AdaBoost分类器[30]、朴素贝叶斯分类器和决策树分类器对水饺图像进行识别,将识别结果与本实验算法进行对比;同时为了验证本实验CNN模型所提取特征的有效性,使用上述分类器用本实验提取的特征进行重新识别,如表1所示,不同方法对一幅水饺图像的平均识别时间如表2所示。

表1 不同特征和不同算法下异物水饺的识别率Table 1 Recognition rates of foreign body-containing dumplings with different characteristics and different algorithms

表2 不同特征和不同算法下异物水饺的识别时间Table 2 Recognition times of foreign body-containing dumplings with different characteristics and different algorithms

从表1、2可以看出,在相同的图像尺寸下,LBP特征向量的维数最少仅为59,其次为本实验CNN模型所提取的特征向量,维数为500,而HOG和Gabor的特征向量维数最多,分别为1 764和2 560。当把LBP特征作为识别无异物和异物水饺的特征向量时,常规方法所得到的识别效果最差、对一幅水饺图像的平均识别时间最短,其中朴素贝叶斯分类器的识别率仅为68.62%,识别时间为0.053 s,其次为HOG特征;当把Gabor特征作为特征向量时,常规方法所得到的识别效果最好,同时对一幅水饺图像的平均识别时间也最长,其中BP神经网络和SVM的识别率分别达到了88.82%和92.15%,识别时间分别为1.754 s和1.575 s。在几种常规方法中,使用SVM进行识别时,所获得的识别效果最好,表明在本实验问题中,SVM的分类效果优于其他传统方法。相比于常规方法,使用本实验模型对水饺图像进行识别,不仅避免了复杂的手动特征提取,而且所提取的特征向量的维数,相比于HOG和Gabor特征要少的多,在计算时可以有效节省内存,提高检测速度,识别率达到了99.78%,识别时间为0.332 s。综合识别率和识别时间,可以看出本实验CNN模型优于其他方法。同时,当各常规方法使用本实验所提取的特征进行识别时,识别率均得到了大幅度提升,表明本实验CNN卷积运算所提取的特征比LBP、HOG和Gabor特征更有效。

为检测本实验CNN模型对不同异物的识别效果,分别统计了5 种异物在该网络模型下的识别率,如表3所示。根据实验结果和5 种异物的特性可以发现,由于金属钢球、铁丝、螺钉的密度大、穿透性差,导致在X射线水饺图像中,呈现出灰度低、颜色暗,与周围物体和背景差异大、对比鲜明,识别率很高,分别为99.97%、99.91%、99.93%;石头的密度和穿透性次之,识别率稍低于金属异物,为99.72%,而透明玻璃密度低、穿透性好,在X射线图像中,呈现出的灰度与水饺灰度相似,易造成混淆,不易识别,识别率为98.85%,低于其他异物;因此本实验算法对于密度大、穿透性差的金属异物和石头具有很好的识别效果,而对密度小、穿透性好的玻璃的识别率稍低。

表3 不同异物的识别率Table 3 Recognition rates of different foreign bodies

3 结 论

本实验以盒装水饺为研究对象,通过X射线检测设备来获取水饺图像,对其进行去噪和对比拉伸变换处理;然后对经典的LeNet模型进行优化,在网络结构的设计中加入批量归一化层和Dropout层,以此提高网络学习速度,避免网络过度拟合;最后利用本实验构建的CNN模型对异物水饺进行识别,并与其他方法进行对比。结果表明,CNN模型的识别效果优于其他常规方法,而且可以自动地从复杂数据中学习到有效的特征,实现对盒装水饺的准确、快速、无损检测,为食品中的异物自动检测提供了新思路。

猜你喜欢

水饺异物X射线
实验室X射线管安全改造
食管异物不可掉以轻心
自制异物抓捕器与传统异物抓捕器在模拟人血管内异物抓取的试验对比
KEY G6型异物剔除机轴承损坏频次过高的分析及改进
虚拟古生物学:当化石遇到X射线成像
牛食道异物阻塞急救治疗方法
第一次包水饺
水饺加工厂
吃水饺
医用非固定X射线机的防护管理