基于改进残差网络的中式菜品识别模型 下载: 532次
1 引言
随着人们对物质生活要求的不断提高,饮食健康问题越来越突出。为了精准记录每餐摄入的营养信息,可记录每餐的菜品图像并进行菜品名称标注以便后续的营养成分分析,从而为健康饮食提供有效的数据支撑[1]。同时,菜品名称标注如果仅依靠人为标注,不仅成本高而且效率低下。因此,如何实现有效的中式菜品图像识别成为研究热点。
近年来,机器学习与深度学习在菜品识别上的应用越来越广泛。对于菜品图像的识别,目前已经出现了一些比较优秀的算法模型。Yang等[2]使用传统的机器学习方法,将图像的软像素级分割成八种成分类型以计算局部特征之间的成对统计量,并且将结果积累在一个多维的直方图中,最后将这个多维直方图作为一个特征向量输入到分类器中 。Zheng等[3]提出了一种基于超像素的LDC(Linear Distance Coding)底层特征的方法,通过提取基于超像素分割的判别食物信息,对最大类间方差法进行了改进,该方法在PFID食物图像数据库上表现出很好的性能并对噪声和遮挡具有良好的鲁棒性。 Mezgec等[4]提出了一种基于AlexNet的改进的NutriNet深度卷积神经架构,该方法以高像素的图像作为输入,在AlexNet的第一个卷积层之前增加了一个额外的卷积层,最终在食物识别中获取了良好的识别准确率。 Martinel等[5]在残差网络(ResNet)的基础上添加一层以捕捉菜品的垂直结构,并且优化了残差模块,然后将新的结构与残差块结合起来以生成分类的得分,相比于传统的机器学习算法,此方法表现出更好的性能,在食物数据集Food-101上达到了90.27%的准确率。 Pan等[6]提出了一种基于图像增强神经网络的食物识别方法,该方法结合了仿射变换图像增强技术和高级特征向量,利用SMO分类器进行分类,在中小规模数据集上表现出优异的性能。Ng 等[7]在现有的卷积神经网络上对不同的数据集进行了大量的对比实验,发现深层网络Xception、Nasnet-Large的识别准确率较高,同时还发现,为了得到最佳的训练效果,训练集上每个类至少包含300幅图像且不改变形状的图像增强技术更有益。
以上方法针对的都是西餐菜品,由于西餐菜品的相似度相比于中式菜品较低,因此识别起来相对简单。中式菜品比较复杂,种类繁多,高相似度给识别带来了一定的困难[8]。为了解决这一问题,本文提出了一种基于改进残差网络的卷积结构RNA-TL (ResNet with Attention and Triplet-Loss) 模型。先在ResNet的基础上,利用不同结构与大小的卷积核(RNA-A、RNA-B和RNA-C)替换尺寸为3 pixel×3 pixel的卷积核,从而提取了多尺度的深层次特征,并增加了注意力机制分支,有效特征信息的权重得到增大。然后,利用人脸识别中的三元组损失(Triplet Loss,TL)的原理[9]对损失函数进行了改进,加大或缩小了不同类或相同类之间的相似度。最后,基于得到的训练参数,利用支持向量机(Support Vector Machine, SVM)进行菜品的分类。
2 模型结构
本文提出了一种基于改进残差网络的中式菜品识别模型。该模型分为三个部分。第一部分即RNA((ResNet with Attention))模块,通过融合多尺度特征以提取深层语义。第二部分即注意力机制层。通过添加注意力机制,动态强化或弱化权重,从而获取模型所关注的重要信息。第三部分,使用优化的TL函数计算类与类之间相似度,并将训练得到的特征信息输入到SVM [10]中进行菜品识别,根据准确率确定目标的最终分类。模型结构如
2.1 RNA模块
由于中式菜品的种类繁多、相似度高,而传统ResNet网络在进行菜品识别时会忽略不同尺度下的图像语义信息,且经过多层卷积操作后,语义会丢失。本文将改进后的残差网络RNA运用到中式菜品识别中,RNA模块的结构如
如
除了卷积层外,还有一个分支为恒等映射层,其作用是将上一层的输出直接与这一层卷积输出相加以作为这一层的输出,这样可以防止梯度消失或梯度爆炸,同时也能加快网络的收敛,具体结构如
式中:Wi 表示第i层的权重参数矩阵,i=1,2,3,…,n,其中n为卷积层中的网络层数;bi为第i层的偏置项;fi
2.1 注意力机制层
式中:wt是t 时刻隐含层的权重系数;vt是用来衡量t时刻特征点重要度的权重;bt是t时刻相应的偏移量。通过(2)式,就可以实现输入的初始特征到新的注意力特征的转换。
2.3 三元组损失
如
一个三元组经过RNA-TL模型的一系列特征提取及空间映射后,这个三元组中三个样本的特征表达分别记为f
式中:∀(
由此可得损失函数为
式中:N为样本的总个数;
由(5)式可以看出,最小化损失L=dap-dan +α,其中dap为类内距离,dan为类间距离。
在实际情况中,当数据量很大时,我们很难穷举所有数据。因此,在每次训练过程中,随机选取A个训练数据类别数并在每个类别中随机选取B个样本图像进行训练。(4)式只比较了xa和xp之间的欧氏距离及xa和xn之间的欧氏距离,为了加大类内距离与类间距离的差距以明显提升分类效果,对xn和xp之间的欧氏距离进行比较。针对(5)式进行如下优化:
经过大量实验,发现将损失函数中的欧式距离的平方去掉,得到的分类效果更好,查阅资料,在相关文献中也有类似结论[14]。所以最终的损失函数可以优化为
最终利用SVM进行分类。对于包含k个类别的分类问题,训练出
3 模型描述
本文提出的模型描述如下。
输入:中式菜品数据集(Food208、Food292)。
输出:训练后的菜品分类模型。
Step 1:对准备好的数据集进行图片预处理,包括对图像进行线性变换增强,将图像的亮区域变暗,暗区域变亮;对图像的像素尺寸进行统一裁剪。
Step 2:从处理好的数据集中随机抽取A个类别并从对应的每个类别中随机抽取B个样本,这些样本组合成一个批次(Batch)。然后在抽取的样本中进行三元组的组合,并将所有的三元组输入到RNA网络中以进行特征提取。
Step 3:基于提取的特征计算TL损失函数,进行同类别以及类别间的相似度计算比较,根据结果不断迭代更新权重系数。
Step 4:将上述训练好的参数模型输入到SVM中以进行菜品的分类。
4 实验结果与分析
4.1 实验数据准备与处理
为了验证RNA-TL模型的有效性,实验选用了一个公开的中国菜品数据集[15]和课题组采集的中式快餐菜品数据集。公开的中国菜品数据集一共有208个类,平均每个类有800张左右的图片,一共有16万张,这里简称Food208,对应的样例示图如
对图片进行预处理。先对图像进行线性变换增强,适当调亮图像中比较暗的区域并适当调暗图像中比较亮的区域。然后将所有的图像尺寸统一裁剪成224 pixel×224 pixel。最后将处理过的数据划分为训练集和测试集,按照8∶2的图片张数比例随机分配,具体分配数量如
表 1. 不同数据集中训练集与测试集的图片数量
Table 1. Image numbers of training dataset and test dataset for different datasets
|
4.2 实验环境与参数设置
本实验采用Tensorflow深度学习框架,用python3.6进行编程,在Win10系统上进行实验,硬件方面选用了CPU 9700K,显卡为GTX 1080 8G。
本次实验使用三元组的方法,因此每次输入必须是3的倍数,这里将批大小设置成90。每次训练随机选取40个类别,每个类别随机抽取150个样本,因此一个epoch需要迭代6000次。实验中使用Adam优化器对学习率进行优化,为了防止过拟合,增加了Dropout层,并将其参数设置为0.4。模型的具体参数如
表 2. 模型参数设置
Table 2. Model parameter setting
|
4.3 实验评价指标
本实验采用宏平均查准率(Macro average precision,P)作为实验评价指标,其指标表达式为
式中:Pk为第k个类别的查准率;m为总类别数。
4.4 实验结果对比与分析
4.4.1模型对比
为了比较改进卷积神经网络RNA的性能优劣,将卷积神经网络更换为当今比较成熟的几种卷积神经网络(inception-v3、inception-v4、resnet-18、inception-resnet-v1和inception-resnet-v2)进行实验。其中除epoch以外,其他训练参数不变,最后得到的最佳准确率如
表 3. 不同卷积神经网络在Food208、Food292数据集上的识别准确率
Table 3. Recognition accuracies of different CNNs on Food208 and Food292 datasets
|
由
其中,RNA在数据集Food292上的表现更好,准确率可以达到90.31%,相比于其在Food208上的准确率,高出了6.65个百分点。比较两个数据集可以发现,Food208数据集中带有很多无用背景信息,而Food292数据集中的菜品是盛装在形状类似的餐盘中,除去菜品部分,背景信息的干扰不大。由此可得,RNA更适合应用在场景变化不大的中式菜品识别中,比如大部分的中式餐厅以及中式食堂中。
对于
表 4. 当损失函数为(2)式时不同卷积神经网络的准确率
Table 4. Accuracies of different CNNs when loss function is formula (2)
|
对
4.4.2 参数对比
基于RNA-TL模型,利用上述参数设置,将epoch分别设置为50,100,150,200和250,在Food208和Food292数据集上进行实验,得到的结果如
表 5. 不同epoch下RNA-TL得到的准确率
Table 5. Accuracies obtained by RNA-TL under different epochs
|
由
4.4.3 训练时间对比
图 10. 不同卷积神经网络在数据集Food208和Food292上训练时所需的时间
Fig. 10. Time required for training different CNNs on Food208 and Food292 datasets
5 结论
针对中式菜品识别,提出了一种基于残差网络的改进RNA-TL菜品识别模型。利用残差网络的恒等映射方法,并在残差网络中融合多个不同大小的卷积核,从而提取了多尺度特征向量。通过添加一层注意力机制层,有效特征信息的权重得到增大。为了防止特征信息的丢失,将Add分支分别与RNA-A、RNA-B、RNA-C的输出进行拼接。接着基于所提取的特征信息,利用改进的TL函数比较类间的相似度,并不断迭代更新权重参数。最终将训练得到的特征输入到SVM中进行菜品识别分类。相比于现有的卷积神经网络,RNA-TL在数据集Food208以及Food292上表现出更加优异的性能。
中式菜品的种类繁多,且受材料以及制作菜品人员水平的影响,训练的数据集样本比较单一,所提算法是否能适应多样化的数据集还有待验证。通过结合先进的目标检测算法,所提算法能更好地应用于实际生活中。
[1] MezgecS, Seljak BK. Using deep learning for food and beverage image recognition[C] // 2019 IEEE International Conference on Big Data (Big Data), December 9-12, 2019 ,Los Angeles, CA, USA. New York: IEEE, 2019: 19393612.
[2] YangS, ChenM, PomerleauD, et al. Food recognition using statistics of pairwise local features[C] // 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, June 13-18,2010,San Francisco, CA, USA. New York: IEEE, 2010: 11500651.
[5] MartinelN, Foresti GL, MicheloniC. Wide-slice residual networks for food recognition[C] // 2018 IEEE Winter Conference on Applications of Computer Vision, March 12-15, 2018, Lake Tahoe, NV, USA. New York: IEEE, 2018: 17751381.
[7] Ng YS, Xue WQ, WangW, et al.Convolutional neural networks for food image recognition: an experimental study[C] // Proceedings of the 5th International Workshop on Multimedia Assisted Dietary Management, October 15-21, 2019, Nice, France. New York: ACM Press, 2019: 33- 41.
[8] 段雪梅, 朱明, 鲍天龙. 双线性模型在中国菜分类中的应用[J]. 小型微型计算机系统, 2019, 40(5): 1050-1053.
[9] SchroffF, KalenichenkoD, PhilbinJ. FaceNet: a unified embedding for face recognition and clustering[C] // 2015 IEEE Conference on Computer Vision and Pattern Recognition, June 7-12, 2015, Boston, MA, USA. New York: IEEE, 2015: 15524223.
[10] Rozi M F, Mukhlash I. Soetrisno, et al. Opinion mining on book review using CNN-L2-SVM algorithm[J]. Journal of Physics: Conference Series, 2018, 974: 012004.
[11] 吴琼, 李锵, 关欣. 基于多尺度残差式卷积神经网络与双向简单循环单元的光学乐谱识别方法[J]. 激光与光电子学进展, 2020, 57(8): 081006.
[13] 褚晶辉, 汤文豪, 张姗, 等. 一种基于注意力模型的面部表情识别算法[J]. 激光与光电子学进展, 2020, 57(12): 121015.
[14] HermansA, BeyerL, Leibe B. In defense of the triplet loss for person re-identification[EB/OL]. ( 2017-11-21)[2020-06-15]. https:∥arxiv.org/abs/1703. 07737.
[15] ChenX, ZhuY, ZhouH, et al. ( 2017-10-15)[2020-06-15]. https:∥arxiv.org/abs/1705. 02743.
[16] SzegedyC, VanhouckeV, IoffeS, et al. ( 2015-12-11)[2020-06-15]. https:∥arxiv.org/abs/1512. 00567.
[17] HeK, ZhangX, RenS, et al. Deep residual learning for image recognition[C] // 2016 IEEE Conference on Computer Vision and Pattern Recognition, June 27-30, 2016, Las Vegas, NV, USA. New York: IEEE, 2016: 16541111.
[18] SzegedyC, IoffeS, VanhouckeV, et al., inception-ResNet and the impact of residual connections on learning[EB/OL]. ( 2016-08-23)[2020-06-15]. https:∥arxiv.org/abs/1602. 07261.
Article Outline
邓志良, 李磊. 基于改进残差网络的中式菜品识别模型[J]. 激光与光电子学进展, 2021, 58(6): 0610019. Deng Zhiliang, Li Lei. Chinese Food Recognition Model Based on Improved Residual Network[J]. Laser & Optoelectronics Progress, 2021, 58(6): 0610019.