基于Caffe的猪肉新鲜度分级的设计与实现

2019-09-10 07:22邱洪涛孙裴侯金波辜丽川乔焰焦俊
江苏农业学报 2019年2期
关键词:新鲜度图像识别框架

邱洪涛 孙裴 侯金波 辜丽川 乔焰 焦俊

摘要:为了提高猪肉新鲜度检测的实时性,提出了基于Caffe框架与ResNet残差神经网络的猪肉新鲜度分级的新方法。根据理化试验结果将猪肉的新鲜度分为7级,并在理化试验前拍摄对应的猪肉照片作为样本进行网络训练。在网络训练完成后分别用同源和异源样本图片对系统分级准确率进行验证,结果显示系统分级的准确率均达到95%以上,说明该系统能够很好地对猪肉新鲜度进行分级。与传统的理化试验检测新鲜度的方法相比,在保证了分级准确率较高的同时,检测过程简单,实时性高、无损,是一种更高效的猪肉新鲜度分级方法。

关键词:Caffe 框架;新鲜度;图像识别;残差神经网络

中图分类号:TS251.5+1

文献标识码:A

文章编号:1000-4440(2019)02-0461-08

猪肉的新鲜度对肉的安全、风味是至关重要的。常用的肉品新鲜度检验需要大量的专家技术人员,检测工序复杂且不具备实时性。为此,研究者们也在尝试改进传统的检测方法,使其操作简单省时,节约检测成本[1-2]。

近年来,计算机技术在图像识别方面取得了较大成果,在食品新鲜度分级领域也有了较好的应用。2011年王彦闯等[3]运用改进的BP神经网络算法建立猪肉新鲜度智能检测的数学模型,通过检测试验构建样本数据集,并对识别模型进行训练测试,结果表明预测准确率大于90%,但试验中主要检测猪肉挥发的氨气浓度等指标,实时性不高。2012年,肖珂等[4]以计算机视觉为基础,通过对采集到的猪肉图像使用聚类算法检验图像特征与新鲜度的相关性,并计算出分类阈值用于新鲜度检测,但该方法在分类阈值附近的肉品新鲜度分级不准确。2012年马世榜等[5]利用可见红外光谱检测系统结合支持向量机分类方法,对牛肉新鲜度进行判别分类,所建支持向量机分类模型对训练集和测试集的回判识别率和测试识别率分别为96.30%和100.00%,验证集的识别率为88.89%,但采集过程中对操作员专业性要求高。2018年3月,兰韬等[6]将深度学习的图像识别方法应用于牛肉大理石纹的特征提取和分类上,将牛肉分为5个等级,评级正确率分别达到84.2%(1级)、89.4%(2级)、81.9%(3级)、84.1%(4级)、82.6%(5级),该试验是运用深度学习的图像识别方法对牛肉分级,由于猪肉与牛肉并不完全相同但有相似之处,对本研究有宝贵的借鉴之处。

本研究将深度学习的图像识别方法运用在猪肉新鲜度分级上,设计了基于Caffe框架的猪肉新鲜度分级系统,通过修改近年来在图像分类算法上优秀的ResNet残差神经网络使网络更适合本次分级试验,使得网络的训练时间短,准确率高,不用人工筛选训练部位,网络能对猪肉的新鲜度图像进行分级,使得人们可以方便、准确地对猪肉新鲜度进行分级,便于人们在日常生活中判断猪肉的新鲜度。

1 材料与方法

1.1 猪肉的生物学分类试验

本次试验作为样本的猪肉来自肥西县的土杂猪,采样过程中随机选取饲养环境和饲料均相同的同一批次、同一时间、现宰杀的土杂猪的后腿部位肉46份,每过一定时间从几份样本中取出一定数量的猪肉作理化试验,测量出不同存放天数下猪肉微生物总量、大肠菌数量和pH值,通过测得的这些微生物总量和大肠菌数量以及pH值,对比国家标准,从生物学角度对这一批猪肉的新鲜度做一个分级7]。同时,在微生物计数与pH测试之前,拍摄每次做试验前的猪肉样本图片,作为深度学习的训练样本图片[8]。

待微生物计数试验完成后,根据所测得结果,放置了24 h的猪肉,pH值5.6~6.2,稀释度为1/10000条件下微生物菌群总量2.46~16.20 CFU/ml、大肠菌数量3.48~5.97 CFU/ml判断为新鲜肉;放置了48 h的猪肉,pH值6.1~6.3,稀释度为1/10000条件下微生物菌群总量16.20~28.40 CFU/ml大肠菌数量5.97~9.20 CFU/ml判断为次鲜肉一级;放置了72 h的猪肉,稀释度为1/10000条件下微生物菌群总量28.40~142.00CFU/ml、大肠菌数量9.20~28.00 CFU/ml,且pH值6.2~6.5判断为次鮮肉二级;放置了96 h的猪肉,稀释度为1/10000条件下微生物菌群总量142.00~370.00CFU/ml、大肠菌数量28.00~93.00 CFU/ml,且pH值6.4~6.7判断为次鲜肉三级;放置了120 h的猪肉,pH值6.7~6.8,稀释度为1/10000条件下微生物总量370.00~1040.00 CFU/ml、大肠菌数量93.00~240.00CFU/ ml判断为腐败肉一级;放置了144 h的猪肉,稀释度为1/10000条件下微生物菌群总量1040.00~1420.00CFU/ml、大肠菌数量240.00~290.00 CFU/ml,且pH值6.8~7.0判断为腐败肉二:级;放置了168 h的猪肉,稀释度为1/10000条件下微生物菌群总量1420.00~3070.00CFU/ml、大肠菌数量大于1100 CFU/ml,且pH值大于7.0判断为腐败肉三级。

依据国家肉品分类标准把猪肉样本对应拍得的图片(图1)分为新鲜肉、次鲜肉一级、次鲜肉二级、次鲜肉三级,腐败肉一级、腐败肉二级、腐败肉三级共7类,为后续划分训练集和测试集做准备。

1.2 样本数据预处理

数据扩充:为保证数据相对平衡并增加数据量,采用多种图像数据扩充方法,包括顺时针旋转、逆时针旋转、水平镜像翻转垂直镜像翻转、随机剪裁。

同时为了确保图片清晰,我们选用高清摄像机,所拍照片大小为1920x1080,在试验过程中我们发现虽然图片较大,清晰,这对于人眼识别猪肉的颜色、纹理非常有利,但是过大的图片尺寸对于计算机训练网络的运算量也较大,导致训练速度会变慢,从而效率低下。因此我们对采集的样本图片进行等比例缩小从而不破坏图片本身的尺寸比例,然后再利用传统图像算法识别出图片中肉的位置,裁出所需要的部分,使图片缩小。经过处理后的样本图片大小为400x300,内存为13kb左右,大大提高了训练速率[9,12]。

2 结果与分析

2.1 Caffe框架与深度神经网络

Caffe是为了应用于计算机视觉任务而开发的,是一种开源软件框架,对比大多数深度学习框架,开源与运行速度快是明显的优势,使得本系统搭建系统方便,训练时间较短[13]。

深度残差网络:在网络中,网络的深度增加随之而来的是梯度消失、梯度弥散等问题,而浅层网络的识别效果不是很好,因此我们需要解决在加深网络的情况下又解决梯度的问题。深层网络后面的网络层如果是恒等映射,那么模型就退化为一个浅层网络,但是直接让一些层去拟合一个潜在的恒等映射函数H(x)=x比较困难,如果把网络设计为H(x)=F(x)+x,就能转换为学习一个残差函数F(x)=H(x)-x,在一个浅层网络基础上叠加y=x的层,即恒等映射。

ResNet网络结构如图2、图3所示:

将2个3x3的卷积层替换为1x1+3x3+1x1。新结构中的中间3x3的卷积层首先在一个降维1x1卷积层下减少了计算,然后在另一个1x1的卷积层下做还原,既保持了精度又减少了计算量,同时提供丰富的特征结合[14]。

经典的ResNet网络有151层,但是,实际运用上并不是层数越多效果就越好,过多的层数不仅会消耗大量的时间,准确率并不一定高。为了使网络能提取丰富的特征,对4个残差块进行反卷积得到该残差块卷积之前的特征,然后利用加权的方式把反卷积得到的特征融合,使得训练中能获取更多的特征,分级更加准确,最终网络总层数共30层,共有23个卷积层,4个反卷积层,2个池化层,1个全链接层。

原始图片为RBG图像,是3个通道的原始数据,大小为224x224x3,在conv1中,填充是3,通道为3的卷积核,步长是2,64个卷积核,在卷积的时候,得到的特征图大小为(224-7+6)/2+1≈112,获得的最终特征图是112x112,并且由于64个卷积核获得了64个112x112特征图,之后通过ReLU激活函数,数据源大小不变,再经过步长为2的池化层,卷积核大小为3x3,得到输出特征大小为56x56x6415]。

在后面的卷积层中,图片在每层的计算过程都与conv1一样,不同之处在于之后的层数卷积核等参数设置不同,如在残差块中,res2a共有2个卷积层,卷积层的卷积核64个,res2b有3个卷积层,每个卷积层的卷积核都是128个,res3a有2个卷积层,每层卷积核128个,res3b有3个卷积层,卷积层的卷积核都是256个,rea4a有2个卷积层,每层卷积核256个,res4b有3个卷积层,每个卷积层的卷积核都是512个。1x1的卷积不改变图片大小,经过3x3的卷积图片大小缩小为之前1/2,则经过一个残差块图片缩小为之前的1/4,经过3个残差块后变成原来的1/64,最后输出变成1x1x7的预测结果。通过网络学习后,得到的特征是具有辨别性的特征,试验要区分猪肉的新鲜度,主要在于颜色特征。

图4为原始ResNet网络,图5为修改过的Res-Net网络。为了将丢失的特征还原,我们把res3a、res4a、res5a、res5b 4个残差块的输出特征,增加了1个反卷积,通过反卷积得到卷积之前的特征,然后利用加权的方式把各特征融合,最后把融合的特征送到分类器进行分类。

2.2 基于Caffe的猪肉新鲜度分级试验

2.2.1 训练集与测试集使用Python语言编程给样本图片生成标签,生成标签程序打乱所有文件的次序,再根据训练样本:测试样本:验证样本=95:4:1的比例生成本次分级试验用的图片标签,选择7个级别猪肉新鲜度样本图片再加上一个标签为error的空白对照样本,总共8个级别,每个级别约为2000张图片。

生成LMDB数据库时用到Caffe框架中convert_imageset.exe文件,用于将训练数据和验证数据转换成Caffe可以处理的LMDB或levelDB的数据库。生成数据库时用convert_imageset文件设置参数,确定彩色图片或灰度图片,把标签文件和图片结合,利用convert_imageset文件生成LMDB数据庫。

2.2.2 网络训练网络开始训练后,可以通过观察学习率、loss(损失函数)参数等指标去了解当前网络训练的效果。为了防止过拟合,给误差函数添加1个权重衰减的惩罚项,它的值越大,则模型损失函数的值也就越大。

训练过程中记录迭代次数、学习率、loss参数,在网络迭代到1000次的时候,训练的loss达到0.005735,所以在迭代1000次时停止训练[16]。画出loss图像(图6):

图6可看出迭代次数100次之前loss值都在上下来回震荡,但是总体是下降的,而且下降特别快,这要归咎于试验样本在训练之前先进行裁剪,然后利用传统算法识别猪肉位置再次进行裁剪。随后迭代100~400次,loss虽然还来回震荡但是仍然呈下降趋势,只是下降比较缓慢,在迭代400次以后loss基本趋于0.001~0.009。从图6也可以看出试验中随机梯度下降中的batch size(批尺寸)设置比较合理,学习率的选择也比较合理[17]。

在观察loss曲线时会发现在训练初期上下波动较大,特别不稳定,随机梯度下降时候设定的batchsize不同会导致loss曲线上下波动。此次最初考虑到硬件问题设置训练batchsize为16,后期试验把batchsize改为32。因为batchsize设置比较小时,会导致训练处的模型学习不稳定,如果把batchsize设定稍微大一些,训练的loss值相对稳定。

2.2.3 训练效果准确率的验证是从样本文件中随机抽取1%比例的图片用来验证,其中验证样本与训练样本不重复。在验证准确率的试验中,我们采集了同源数据和其他数据进行验证,分别进行了4次试验:用原始的ResNet网络和修改后的ResNet网络分别训练得到训练模型,再分别用同源和异源图片去测试训练模型。训练数据总计19951张图片,同源验证数据420张图片,异源验证数据362张图片。

测试识别结果如下:基于原始网络的同源数据验证识别率96.43%,基于改进网络的同源数据验证识别率96.90%,基于原始网络的异源数据验证识别率93.90%,基于改进网络的异源数据验证识别率95.30%。试验的识别率验证程序如图7~图10。

本次試验对网络训练迭代1000次生成的模型,文件进行测试,异源样本测试图片362张,分别用没有修改的原始ResNet网络和增加了反卷积的修改ResNet网络测试,对比可以发现,修改的网络准确率95.30%,比原始网络的93.90%高了1.40个百分点。同源测试图片420张,修改网络测试准确率96.90%,比原始网络准确率96.43%高了0.47个百分点。根据测试结果我们可以发现修改后的网络在同源测试图片测试精度非常高,而且在异源测试图片的准确率也达到了95%以上,说明修改后训练的网络结构设计符合试验的要求,试验参数设置合理。

表1是异源样本数据准确率验证的结果,每一级的测试图片在52张左右,共362张。在测试时记,录下每一级测试失败的图片数量,并计算每级的准确率。表2是同源样本数据的准确率验证,每级测试图片都是60张,共420张。

2.2.4 可视化分析

2.2.4 .1识别成功的图片可视化分析用上述修改的网络模型训练样本图片迭代到100次,抽取模型中间3个卷积层作为可视化特征,查看在训练网络中每一层学习的特征。图11是成功分级的一张样本图片。图12~图14是该图片在网络中部分卷积层的可视化结果:

通过可视化就可以看到提取到的特征忽视了背景,提取到了关键的信息。Conv1和res2a_branch2a学习到的特征基本上是颜色、边缘等低层特征,而靠后的卷积层如res4b_branch2b开始稍微变得复杂,学习到的是纹理特征,比如上面的一些网格纹理,每一层学习到的内容不一样。层与层之间进行比较,低层次卷积层在训练过程中学习的特征较为简单,比较容易收敛,由于卷积核个数较少,所以可视化图片较大。高层次的卷积层学习到的特征较多,卷积核较多,可视化图片较小[18]。

2.2.4 .2识别失败的图片可视化分析在测试结果中虽然准确率较高,但还是有许多分级失败的图片,找到这些图片加以分析,图15是两张分级失败的图片。

对比图11与图15,可以发现在清晰度上两张图有显著差距,分级失败的图片明显模糊不清,再利用可视化观察这些图片在网络训练时学习到的特模糊图像是由于图像拍摄过程中相机的移动等原因造成的原图片模糊,由于图片本身是模糊的,在网络中无法学习到好的特征来分级。由可视化过程可以看出这些分级失败的图片在卷积层没有提取到明显的特征,不能表征原图的任何特征导致无法根据学习特征进行分类,最终导致不能成功分出是哪一个等级的肉品[19]。

3 讨论

本研究提出了基于深度学习的猪肉新鲜度分级试验,通过在网络中增加对残差块的反卷积,获取更多的学习特征。通过对比发现改进的网络相较于原始网络识别率有所提升且整个网络对同源样本和异源样本都有较高的准确率,可以用来对猪肉新鲜度进行分级。在本试验中也对分级失败的图片进行分析,为今后的改进提供了思路。同时,利用深度学习来识别猪肉新鲜度,比依靠肉眼识别更加准确、可靠,速度更快,节省了人力物力,具有较高的应用价值。

参考文献:

[1]TOMOSHIGE S,0OST E,SHIMIZU A,et al.A conditional statistical shape model with integrated error estimation of the conditions:application to liver segmentation in non-contrast CT images[J].Medical Image Analysis,2014,18(1):130-143.

[2]RAJWADE A,RANGARAJAN A,BANERJEE A.Image denoising using the higher order singular value decomposition[J].IEEE Trans on Pattern Analysis and Machine Intelligence,2012,35(4):849-862.

[3]王彦闯,刘敬彪,蔡强,等.基于BP神经网络的猪肉新鲜度检测方法[J].计算机应用与软件,2011,28(9):82-84.

[4]肖珂,段晓霞,高冠东.基于图像特征的猪肉新鲜度无损检测方法[J].河北农业大学学报,2012,35(4):111-113.

[5]马世榜,徐杨,彭彦昆,等.基于光谱技术的支持向量机判别牛肉新鲜度[J].食品安全质量检测学报,2012,3(6):603-607.

[6]兰韬,初侨,刘文,等.基于深度学习的牛肉大理石纹智能分级研究[J].食品安全质量检测学报,2018,9(5):1059-1064.

[7]JIAOJ,MA H,QIAO Y,et al.Design of farm environmental monitoring system based on the internet of things[J].Advance Journal of Food Science & Technology,2014,6(3):368-373.

[8]高雅,焦俊,孟珠李,等.基于HE和MSR的玉米病虫害图像预处理[J].合肥学院学报(综合版),2016,33(4):47-53.

[9]孙永海,赵锡维,鲜于建川.基于计算机视觉的冷却牛肉新鲜度评价方法[J].农业机械学报,2004,35(1):104-107.

[10]郭培源.曲世海.猪肉新鲜度的智能检测方法[J].农业机械学报,2006,37(8):78-81.

[11]龚丁喜,曹长荣.基于卷积神经网络的植物叶片分类[J].计算机与现代化,2014(4):12-15

[12]潘婧,钱建平,刘寿春,等.计算机视觉用于猪肉新鲜度检测的颜色特征优化选取[J].食品与发酵工业,2016,42(6):153-158.

[13]魏正.基于Caffe平台深度学习的人脸识别研究与实现[D].西安:西安电子科技大学,2015.

[14]欧先锋,向灿群,郭龙源,等.基于Caffe深度学习框架的车牌数字字符识别算法研究[J].四川大学学报(自然科学版),2017,54(5):971-977.

[15]杨晓旭,高巍,顾题.基于卷积神经网络Caffe框架的图像分类[J].电子技术与软件工程,2017(24):73-73.

[16]焦俊,张水明,杜玉林,等.物联网技术在农田环境监测中的应用[J].中国农学通报,2014,30(20):290-295.

[17]倪力,张政云,焦俊,等.基于可穿戴设备的山羊行为分类[J].山东农业大学学报(自然科学版),2018,49(2):235-239.

[18]秦丰,刘东霞,孙炳达,等.基于深度学习和支持向量机的4种苜蓿叶部病害图像识别[J].中国农业大学学报,2017,22(7):123-133.

[19]朱启兵,肖盼,黄敏,等.基于特征融合的猪肉新鲜度高光谱图像检测[J].食品与生物技术学报,2015,34(3):246-252.

猜你喜欢
新鲜度图像识别框架
基于计算机视觉的图像识别技术研究
框架
人工智能背景下图像识别技术浅析
浅谈框架网页的学习
基于Jmeter对Node框架性能的测试研究
基于字典学习的正则化鲁棒稀疏表示肿瘤细胞图像识别
傅里叶变换近红外光谱技术快速检测金枪鱼新鲜度
基于电子鼻技术的秋刀鱼新鲜度评价
图像识别交互系统
应用挥发胺/氧化三甲胺摩尔比值评价大菱鲆的新鲜程度