基于DCNN和迁移学习的食物图像识别

2019-07-02 12:12:52张石清
实验室研究与探索 2019年6期
关键词:图像识别直方图卷积

张 钢, 张石清

(1.广州质量监督检测研究院, 广州 511447; 2.台州学院 电子与信息工程学院, 浙江 台州 318000)

0 引 言

近年来,随着人工智能的发展,以及无人自动售货机等智能设备的普及,自助餐厅中对饭菜种类的自动识别技术开始备受研究者的关注。目前,自助餐厅对顾客所选的食物价格进行结算时,大多是通过收银员人工计价的方式实现,如扫描食物包装的条形码或用识别托盘底部的射频芯片方式来计算出价格。这种人工计价方式,效率低下,在就餐人员数量多的时候会给收银员工作带来诸多不便。

为了克服上述不便,近年来有研究者开始从计算机视觉方法[1-10]的角度来实现食物图像的自动识别。例如,Joutou等[3]提出采用多核学习(Multiple Kernel Learning,MKL)方法融合颜色、纹理以及尺度不变特征变换(Scale Invariant Feature Transform,SIFT)等特征用于食物图像识别。Yang等[4]提出采用多维度的直方图统计参数作为局部特征用于食物图像识别。Herranz等[5]提出一种基于局部约束线性编码(Locality-constrained Linear Coding,LLC)特征的概率图模型用于实现食物图像的分类。Matsuda等[6]采用融合梯度方向直方图 (Histogram of Oriented Gradient,HOG)和Gabor小波变换特征用于食物图像的边缘检测和识别。郭礼华等[10]对SIFT特征、颜色直方图特征、梯度方向直方图、Gabor特征等在食物图像识别方面的性能进行了分析与比较。然而,这些方法都是采用手工设计的特征用于食物图像识别,而手工特征是一种低层次的特征,用于食物图像识别的判别力还不够。

为了解决上述问题,近年来发展起来的一种深度学习方法,如深度卷积神经网络(Deep Convolutional Neural Networks, DCNN)[11]可能提供了线索。DCNN利用多层次的卷积和池化操作来自动学习出图像数据的高层次属性特征,捕获数据本身的丰富内涵信息,同时也避免了复杂的手工特征的设计过程。目前,DCNN已经被广泛用于图像检测与分割[12]、人脸识别[13]、医学图像诊断和识别[14]等领域,但在食物图像识别领域中的应用还很少见。

此外,深度学习方法性能的发挥依赖于海量的数据支持。由于获取大量有标签的数据样本较为困难,现有的食物图像数据库的规模往往不是很大,属于小样本数据集。在这种数据量不足的情况下,训练出的深度学习网络模型容易出现“过拟合”,无法发挥出深度学习方法的优势,即对于深度学习方法存在所谓的“数据瓶颈”问题。

近年来,迁移学习(Transfer Learning)[15]作为一种新兴发展起来的机器学习理论,备受学术界和工业界的关注。在当前大数据时代背景下,有些领域已存在大规模的标注过的数据样本可用来训练和建立学习模型,而在一些其他一些领域难以得到所需要的大量标注过的数据样本。可见,迁移学习可以从现有的数据中迁移知识,用来帮助将来的学习。近年来,迁移学习理论已被成功用于跨域(cross-domain)的文本分类[16]、图像分类[17]、生物医学[18]等领域。

考虑到深度学习与迁移学习方法各有优势的特点,本文提出一种基于深度卷积神经网络(DCNN)和迁移学习的食物图像识别方法。该方法首先采用ImageNet图像数据(集100万张图片,1 000种类别)上预训练好的AlexNet[11]深度模型初始化所采用的网络参数,然后利用微调(Fine-tuning)的训练方式在自建的小规模食物图像数据库集上进行迁移学习。这样不仅可以减轻食物图像数据不足的压力,也可以充分利用DCNN强大的特征学习能力,使得DCNN能够从原始的食物图像中学习得到高层次的属性特征。最后,采用线性支持向量机(Support Vector Machines, SVM)实现食物图像的分类。在自建的食物图像数据集上的实验测试结果,表明了该方法的有效性。

1 基于DCNN和迁移学习的食物图像识别模型

图1给出了本文提出的基于DCNN和迁移学习的食物图像识别模型。该模型选取AlexNet深度模型作为基础网络架构,用于获取食物图像的高层次属性特征,从而实现食物图像的识别。该方法包括3个步骤:① 食物图像的预处理;② AlexNet的训练和迁移学习;③ 基于SVM的食物图像分类。

图1 基于DCNN和迁移学习的食物图像模型

(1) 食物图像的预处理。在建立食物图像数据集的时候,对每一张相机拍摄采集到的食物图像进行人工裁剪处理,保留包含碗碟部分的食物图像作为图像样本。然后对每一张图像样本统一采样到像素为64×64×3的大小。由于AlexNet模型的输入图像像素大小是227×227×3,因此还需将每一张像素为64×64×3的图像缩放到227×227×3的大小,作为DCNN的输入。

(2) AlexNet网络的训练和迁移学习。AlexNet网络主要由5个卷积层(Conv1~Conv5)、3个池化层(Pool1、Pool2、Pool5)以及两个全连接层(FC6、FC7)构成。假如输入数据为X,网络对应的输出为Z,该网络通过训练学习得到一个参数为Θ的非线性映射函数F(·|Θ),即

Z=>F(X|Θ)=

fl(…f2(f1(X|θ1)|θ2)|θl)

(1)

式中,fl(·|θl)表示网络中第l层。

卷积层的作用是特征提取,由一些经数据驱动进行自主学习的卷积核所组成。卷积层提取特征的计算过程表示如下:

Zl=fl(Xl|θl)=h(W⊗Xl+b)

(2)

式中:参数θl=[W,b];W为卷积核;b为矢量偏差;h(·)为激活函数;⊗为二维卷积运算。

池化层通常用于卷积层之后,对卷积特征图进行下采样后构成池化特征图。常用的两种池化方法是平均池化(Average-pooling)和最大池化(Max-pooling),即计算出卷积核的激活函数在某一区域范围内输出的平均值或最大值。本文采用最大池化方法。

全连接层实际上就是传统神经网络层的隐藏层部分,它的每个神经元结点都与上一层的每个神经元结点相连接,同一层的神经元结点互不相连。全连接层的激活函数一般采用sigmoid或tanh函数,其输出可表示为:

Zl=fl(Xl|θl)=h(WXl+b)

(3)

式中,W和Xl之间为矩阵乘积,而不是卷积运算。对于AlexNet的训练过程如下:① 将ImageNet数据上预训练好的AlexNet模型参数拷贝到本文采用的网络,从而实现网络参数初始化任务。② 将AlexNet中的softmax输出层的类别数,改成目标食物图像数据的类别数。③ 采用后向传播(Back Propagation, BP)算法在目标食物图像数据集上进行迁移学习,实现网络参数的更新。

(3) 基于SVM的食物图像分类。当完成AlexNet的训练之后,提取其最后一层全连接层(FC7)产生的4096-D 属性特征作为DCNN最终学习到的高层次属性特征,然后输入到线性支持向量机(SVM)分类器,用于实现食物图像的识别任务。

2 实验结果及分析

为了测试本文提出方法的有效性,我们建立了一个小规模的食物图像数据集。该数据集包含6种饭菜:豆芽(2 135个)、红烧狮子头(2 012个)、黄豆猪脚(2 343个)、鸡蛋羹(2 007个)、麻婆豆腐(2 105个)、莴苣炒肉(2 214),共计12 816个食物图像样本。图2列出了这6种饭菜的食物图像样例。

(a) 豆芽

(d) 鸡蛋羹

此外,为了与其他手工提取的特征性能进行比较,本文也测试了梯度方向直方图(HOG)和Gabor小波两种手工类特征输入到线性支持向量机所取得的食物图像识别性能。对于HOG和Gabor小波特征的提取,按照文献[6]中的参数设置,最终提取2 916维度的HOG特征和1 536维度的Gabor小波变换特征。表1列出了不同方法所取得的食物图像识别的性能。由表1可见,本文方法取得的正确识别率为94.20%,而HOG和Gabor小波两种手工特征取得的正确识别率分别为87.29%和89.80%。这表明了DCNN学习到的食物图像特征比手工特征具有更好的判别力。主要原因是DCNN利用多层次的卷积和池化操作,能够有效提取食物图像的高层次属性特征用于食物图像的分类。

表1 不同方法所取得的食物图像识别性能的比较

为进一步获取每种食物图像的正确识别率,图3所示给出了本文方法所取得的食物图像识别结果的模糊矩阵。

图3 本方法取得的识别结果的模糊矩阵

由图3可见,本文方法对这6种食物图像的识别都取得了较高的性能,大部分食物图像的正确识别率都达到了93%以上。这表明了该方法的有效性。不过,识别率最低的是“红烧狮子头”,只有88.52%。主要原因是它与“黄豆猪脚”视觉上比较相似,导致这两者容易相互混淆。

3 结 语

本文设计了一个基于DCNN和迁移学习的食物图像识别方法。在自建的小规模的食物图像数据集上的测试实验中,本文方法取得的食物图像识别率达到了94.20%,优于其他两种手工类特征,如梯度方向直方图(HOG)和Gabor小波。这表明本文采用深度卷积神经网络和迁移学习用于实现食物图像的分类,能够取得较好的识别性能。

猜你喜欢
图像识别直方图卷积
统计频率分布直方图的备考全攻略
高中数理化(2024年1期)2024-03-02 17:52:40
符合差分隐私的流数据统计直方图发布
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于Resnet-50的猫狗图像识别
电子制作(2019年16期)2019-09-27 09:34:50
高速公路图像识别技术应用探讨
从滤波器理解卷积
电子制作(2019年11期)2019-07-04 00:34:38
用直方图控制画面影调
图像识别在物联网上的应用
电子制作(2018年19期)2018-11-14 02:37:04
图像识别在水质检测中的应用
电子制作(2018年14期)2018-08-21 01:38:16
基于傅里叶域卷积表示的目标跟踪算法