0引言食物是保障人类生存与活动的重要物质来源,与人类日常生活关系密切。相比普通图片识别,食物图片具有形态复杂、颜色不固定、目标体积较小等特点。即使是同一种食物,由于地区等差异,也可能具有不同的特征。目前,利用计算机视觉技术进行食物图片识别已经成为一个热门研究领域。早期的食物图片识别主要是先采用手工设计特征的方法,然后使用支持向量机(SVM)等分类器进行分类[1-5]。常用的手工设计特征包括颜色特征、LBP(local binary pattern)特征、HOG(histogram of oriented gradient)特征等简单的单一特征。由于手工设计特征无法建立各个特征之间的关联性,即使是一些集成特征方法,也只是将各种特征简单地叠加,所以在各个食物图片数据集上的识别准确率最高仅为70%左右。自2012年深度卷积神经网络在图片分类领域取得重大突破以来,将卷积神经网络应用于食物图片识别领域开始成为主流的方法,人们开始利用深度卷积神经网络提取食物图片特征并进行分类[6-13]。当前使用深度卷积神经网络进行食物图片分类的方法都是将食物图片直接输入卷积神经网络提取特征,由于食物图片往往具有较为复杂的背景,此时背景干扰信息就会对识别结果造成很大的影响。除了以上的识别方法,也有一些关于细粒度识别的工作将食物图片作为一项实验结果进行对比[14],但主要是针对CUB-200-2011数据集进行分类,没有针对食物图片的特点设计模型,也没有针对食物识别进行相关分析。本文针对食物图片的特点,设计了一种多级卷积特征金字塔神经网络的细粒度食物图片识别模型,可以自动定位食物图片区分度较大的区域,融合食物图片的全局与局部特征,实现了食物图片的细粒度识别。该模型的核心是利用卷积神经网络自带注意力机制的特点,通过注意力区域定位网络定位食物图片细粒度区域。为了提高模型的识别效果,主要从两个方向进行了改进:1) 通过特征金字塔网络提高细粒度区域的表示与定位能力。对于相似度较高的食物图片,高区分度细粒度区域的定位尤为重要。本文采用特征金字塔结构,综合利用卷积神经网络浅层高分辨率结构信息与深层低分辨率语义信息,获得了更好的细粒度区域定位能力。2) 设计特征融合网络,融合食物图片全局粗粒度信息与局部细粒度信息。食物图片的细粒度信息虽然可以提高相似度较大的食物的区分能力,但是丢失了全局的结构信息,过度依赖细粒度信息反而会造成模型识别精度的下降。所以采用特征融合网络对各级食物特征提取网络提取到的特征进行融合,获得食物图片更加全面的特征信息。1模型设计本文模型主要由食物特征提取网络、注意力区域定位网络和特征融合网络3部分组成,分别负责特征提取、细粒度局部区域定位和全局局部特征融合。由于单级食物特征提取网络无法同时获得食物图片全局与局部特征,因此采用3级食物特征提取网络级联的结构实现了特征由全局到局部的转移。针对食物图片尺度变化大的特点,在每级食物特征提取网络的特征图之间构建了特征金字塔网络,提高了网络的特征描述能力,在加入特征金字塔后,模型获得了2.4%的性能提升。图 1是本文模型的总体结构图,图中有3级特征提取网络,分别是Grade_1、Grade_2和Grade_3,每一级网络都加入了特征金字塔结构。AN1和AN2分别代表注意力区域定位网络。每级特征提取网络之间是注意力区域定位网络。图片右边是特征融合网络,负责融合食物图片全局和局部特征。因为食物图片特征较为复杂,为了获取更加细节的特征,第1级网络的输入样本尺寸为448×448像素。为了获取更大的感受野,在Grade_1的第1层卷积层使用大小为5×5像素的卷积核,步长为2个像素,感受野达到391×391像素,相比使用大小为3×3像素卷积核感受野的196×196像素扩大了将近4倍。第2级和第3级特征提取网络的输入样本都是在原始图片上裁剪和放大得到。 图1 模型总体结构图 The framework with three main partsFig 11.1食物特征提取网络图 1中每一级食物特征提取网络(简称特征提取网络)都由全卷积结构组成,网络的结构类似于VGG16,由5个卷积模块组成。同VGG16的命名方法一样,本文也采用Conv1_2,Conv2_2,Conv3_3,Conv4_3,Conv5_3分别命名每个卷积模块的最后一层特征。训练样本首先输入第1级特征提取网络,通过卷积神经网络提取图片特征,然后输出类别和每一类的概率值。 1 $p^{(i)}=\delta\left(\boldsymbol{X}_{i} \otimes \boldsymbol{W}_{i}\right)$ 2 $C^{(i)}=\delta\left(\boldsymbol{X}_{i} \otimes \boldsymbol{W}_{i}\right)$ 式中,输入图片为$\boldsymbol{X}$,$\boldsymbol{X}_{i}$和$\boldsymbol{W}_{i}$表示第$i$级卷积神经网络的输入和权重参数,$\otimes$表示在进行卷积过程中进行的一系列操作(卷积、池化、激活等),$δ$(·)表示特征提取网络。$p^{(i)}$($i$=1, 2, 3)表示第$i$级卷积神经网络对于每一类别的输出概率,$C^{(i)}$($i$=1, 2, 3)表示第$i$级卷积神经网络的输出类别标签。每一级网络都会生成关于输入图片的特征图,用$\boldsymbol{F}_{j}^{i}$表示每一级网络生成特征图的集合,$i$表示每一级网络最后一层输出的特征图个数,$j$表示模型包含的网络级数,本文中$j$=(1, 2, 3),因此输入图像$\boldsymbol{X}$可用以下特征图表示来描述 3 $\left\{\boldsymbol{F}_{1}^{i} \quad \boldsymbol{F}_{2}^{i} \quad \boldsymbol{F}_{3}^{i}\right\}$ 图 2为特征金字塔详细结构图。卷积神经网络通过每一层的卷积核逐层提取特征,不同卷积层的特征图对应图片的不同区域与目标。为了解决食物形状大小不一的问题,同时为了更好地利用浅层卷积层的物体边缘信息,本文在卷积神经网络各个卷积层之间构建了特征金字塔。由于卷积神经网络中浅层卷积层的尺度较大,而深层卷积层尺度较小,为了统一尺度,首先将后一层的卷积层进行反卷积操作,然后将两张特征图相加,生成的特征图就是整张图片的最终表示。 图2 特征金字塔结构图 The detail of feature pyramid networkFig 21.2注意力区域定位网络食物图片的全局信息可以提供食物的外观形状,局部细粒度特征可以提供精细化的细节信息。为了实现食物从全局特征到局部细粒度特征的过渡与转移,本文设计了注意力区域定位网络,如图 1所示,注意力区域定位网络在特征提取网络之间,负责定位原始图片中的细粒度食物区域,并将对应的区域裁剪送入下一级网络。目前大量的工作表明,深度卷积神经网络如同人类观察图片的方式一样,训练完成的网络可以自动将显著性区域(对识别效果有重要影响力的区域)激活[15]。文献[16]证明了在深度卷积神经网络中,特征图中响应最大的区域对应原始图片中对识别影响最大的区域。例如在行人识别时,网络会自动将激活区域集中在人的脸部区域。所以精准地定位特征图中响应最大的区域并将其映射到原始图片,即可得到原始食物图片的细粒度区域,对细粒度区域进行特征提取实现图片的细粒度识别。本文采用逐级定位的注意力网络自动定位对识别具有重要影响力的区域。注意力区域定位网络将输入的特征图映射为以$\left(t_{x}, t_{y}\right)$为中心、$t_{a}$为边长一半的正方形注意力区域,并将注意力区域映射到原始图片,进行裁剪、放大送入下一级网络,实现食物图片由粗粒度图片到细粒度区域的精细化识别[17]。将特征图中高响应区域映射到原始图片的关键是获得高响应区域的坐标。由于神经网络具有很强拟合能力,本文设计了一个2层全连接网络的注意力区域定位网络,网络输入为特征图,输出为高响应区域边界框的坐标,如图 3所示。通过该全连接网络可以实现高响应区域的自动定位。在高响应区域边界框生成的过程中,为了避免边界框太大超出图片边界或太小无法有效定位物体,本文对正方形的尺度进行了限制,正方形边长不能大于图片尺寸边长的3/4,不得小于边长的1/6。 4 $\left[\begin{array}{lll}{t_{x}} & {t_{y}} & {t_{a}}\end{array}\right]=\varphi\left(\boldsymbol{X} \otimes \boldsymbol{F}_{j}^{i}\right)$ 图3 注意力区域定位网络结构图 The structure of attention localization neural networkFig 3式中,$\left(t_{x}, t_{y}\right)$代表注意力区域正方形边界框的中心坐标,$t_{a}$表示注意力区域正方形边界框边长的一半,$φ$(·)表示注意力网络。神经网络权重参数的初始化对网络的收敛和性能有重要的影响。为了加快注意力网络的收敛,本文在初始时将第1级特征提取网络的最后1层输出的所有特征图相加,然后将相加后的特征图中数值较大的区域定位出来,拟合为一个正方形,最后获取正方形的中心坐标以及边长,并将其设置为注意力网络的初始参数。具体实现方式为 5 $\boldsymbol{S}=\sum\limits_{n=1}^{d} \boldsymbol{s}^{n}$ 6 $\overline{m}=\frac{1}{h \times w} \sum\limits_{i=0}^{h} \sum\limits_{j=0}^{v} S^{i, j}$ 7 $S^{i, j}=\left\{\begin{array}{ll}{1} & {S^{i, j} \geqslant \overline{m}} \\ {0} & {S^{i, j} \overline{m}}\end{array}\right.$ 式中,$\mathit{\boldsymbol{s}}$表示第1级网络最后输出的特征图,d表示特征图数量,$\mathit{\boldsymbol{S}}$为将每一张特征图按点相加后的汇总特征图。$h$和$w$表示特征图的宽和高,$\overline{m}$表示特征图的像素均值。本文将汇总后的特征图与均值比较,大于等于均值则置为1,否则置为0,然后将孤立的区域去掉,选择最大区域的最长边做正方形,最后得到中心坐标初始化注意力网络的参数。在注意力网络输入参数初始化后,接下来模型就可以自动优化。在定位出注意力区域后,对注意力区域裁剪、放大。为了使模型能够实现端到端的训练,本文采用注意力区域模板与原始图片的点积运算来实现原始图片高区分度区域的裁剪[18]。注意力网络可以自动定位特征图中响应最大的区域,但是仅仅能够定位特征图注意力区域还无法获得细粒度图片,还需要对注意力区域裁剪与放大。假设以图片的左上角为原点,水平方向为$x$轴,从左到右逐渐增大。竖直方向为$y$轴,从上到下逐渐增大,如图 4(a)所示。 图4 注意力模板示意图 The diagram of attention templateFig 4((a) coordinates of attention area; (b) attention template)为了实现注意力区域自动裁剪,首先计算正方形区域左上角和右下角坐标。根据之前得到的正方形注意力区域的3个参数,可以得到该正方形左上角与右下角的坐标。图 4(a)为正方形注意力区域的左上与右下坐标,图中的黑色圆点为正方形注意力区域的中心坐标。左上角和右下角坐标的计算方法为 8 $\begin{array}{l}{x_{\mathrm{L}}=t_{x}-t_{a}, y_{\mathrm{L}}=t_{y}-t_{a}} \\ {x_{\mathrm{R}}=t_{x}+t_{a}, y_{\mathrm{R}}=t_{y}+t_{a}}\end{array}$ 为了使模型能够实现端到端的训练,本文生成了一个注意力区域模板,注意力模板在前向传播时可以自动选择高区分度区域,反向传播时可以优化模板,使注意力区域更加精确地定位到高区分度区域。将注意力模板与原始图片做点积运算就可以实现原始图片高区分度区域的裁剪。图 4(b)为一个典型的注意力模板,可以发现在高区分度区域的值为1,其余的值全为0。注意力模板的计算方法为 9 $\boldsymbol{X}_{\mathrm{Att}}=\boldsymbol{X} \odot \boldsymbol{A}\left(t_{x}, t_{y}, t_{a}\right)$ 式中,⊙表示点积运算操作,$\boldsymbol{X}_{\mathrm{Att}}$表示裁剪后得到的图片,$\boldsymbol{A}$(·)为注意力模板生成函数,表达式为 10 $\begin{array}{c}{\boldsymbol{A}(\cdot)=\left[\sigma\left(x-x_{\mathrm{L}}\right)-\sigma\left(x-x_{\mathrm{R}}\right)\right] \times} \\ {\left[\sigma\left(y-y_{\mathrm{L}}\right)-\sigma\left(y-y_{\mathrm{R}}\right)\right]}\end{array}$ 式中,(x, y)表示特征图上任意一点的坐标,$\boldsymbol{A}$(·)的输出值为0或1,特征图上任意一点如果在正方形注意力区域内部则值为1,如果在外部则为0。为了使正方形注意力区域在反向传播时动态更新和移动,本文采用连续可导函数$σ$($x$)来自动将注意力区域置为1,其他位置置为0,$σ$($x$)的表达式为 11 $\sigma(x)=\frac{1}{1+\exp (-k x)}$ 通过上述方法可以实现注意力区域模板的生成。因为特征图中响应最大的区域是原始图片中对识别性能有重要影响的区域,所以接下来将特征图上的坐标映射回原始图片进行裁剪。卷积神经网络在卷积过程中没有改变图片目标的空间位置信息,所以可以将特征图看做是原始图像的缩小。目标在特征图中的空间位置比例与目标在原始图片中的空间位置比例是一致的,因此依靠比例一致性的特点可以将特征图注意力区域映射到原始区域,即 12 $\alpha=\frac{w_{X}}{w_{F}}, \quad \beta=\frac{h_{X}}{h_{F}}$ 式中,$w_{X}$和$h_{X}$分别代表原始输入图片的宽和高;$w_{F}$和$h_{F}$分别代表每一级特征提取网络最后一层提取到的图片特征图的宽和高;$α$和$β$分别表示$x$轴方向和$y$轴方向的缩放因子。则注意力区域对应的原始图片区域坐标为 13 $t_{x}^{*}=\alpha \times t_{x}, t_{y}^{*}=\beta \times t_{y}$ 式中,$\left(t_{x}, t_{y}\right)$为目标在特征图中的坐标信息,$\left({t_x^*, t_y^*} \right)$为目标在原始图中的坐标信息。经过以上操作,可以在原始输入图片上裁剪注意力区域,为了获得更加细粒度的图片,提取更加精细的特征,本文将裁剪后的图片放大输入下一级网络。为了兼顾速度与精度,本文采用双线性插值算法。根据图像的几何性质,原始图片注意力区域与放大后的图片的比例关系为 14 $\frac{p_{\text { Att }}^{(n, m)}}{p_{\text { Mag }}^{(i, j)}}=\frac{2 t_{a}}{B_{\text { wide }}}$ 式中,$p_{\mathrm{Mag}}^{(i, j)}$和$p_{\mathrm{Att}}^{(n, m)}$分别代表放大后的图片与原始图片注意力区域对应坐标的像素值;$B_{\text { wide }}$代表放大后图片的宽度,因为是正方形,所以长和宽是相同的。根据双线性插值算法可知,放大图片任意一个坐标可通过式(14)计算对应原始图片的坐标。2$t_{a} / B_{\text { wide }}$是原始图片注意力区域与放大后图片的放大比率,用λ表示,一般为小数,故原始图片的坐标会出现小数坐标,这与图片坐标实际情况不符合。将小数坐标分为整数部分与小数部分,[·)和(·]分别表示坐标的整数部分和小数部分。放大后图片的像素横纵坐标对应的原始图片的横纵坐标为 15 $p_{\mathrm{Att}}^{(n)}=p_{\mathrm{Mag}}^{(i)} \frac{2 t_{a}}{B_{\mathrm{wide}}}=p_{\mathrm{Mag}}^{(i)} \times \lambda\\\left[p_{\text { Mag }}^{(i)} \times \lambda\right)=z, \left(p_{\text { Mag }}^{(i)} \times \lambda\right]=u\\p_{\text { Att }}^{(m)}=p_{\text { Mag }}^{(j)} \frac{2 t_{a}}{B_{\text { wide }}}=p_{\text { Mag }}^{(j)} \times \lambda$ 16 $\left(p_{\mathrm{Mag}}^{(j)} \times \lambda\right]=c, \left(p_{\mathrm{Mag}}^{(j)} \times \lambda\right]=v$ 放大后图片的像素值为 17 $\begin{array}{l}{p_{\text { Mag }}^{(i, j)}=(1-u)(1-v) p_{\text { Att }}^{(z, c)}+u v p_{\text { Att }}^{(z+1, c+1)}} +\\ {u(1-v) p_{\text { Att }}^{(z+1, c)}+v(1-u) p_{\text { Att }}^{(z, c+1)}}\end{array}$ 将式(17)变形,可得 18 $\begin{array}{l}{p_{\mathrm{Mag}}^{(i, j)}=\sum\left|1-\alpha-\left(\frac{i}{\lambda}\right]\right| \times} \\ {\left|1-\beta-\left(\frac{j}{\lambda}\right]\right| p_{\mathrm{Att}}^{(i / \lambda]+\alpha, (j / \lambda]+\beta )}}\end{array}$ 根据以上所述就可利用双线性插值获得注意力区域的放大图片。1.3特征融合网络模型每一级特征提取网络都会提取食物图片的特征,第1级特征提取网络提取食物图片的全局特征,第2级网络提取食物图片的局部特征,第3级网络提取食物图片中食物目标更加细节的特征。将每一级网络提取的特征按通道对特征图中的每个元素相加,最终得到256个28×28像素的特征图。然后使用1×1像素大小卷积核进行特征融合和池化,接着使用两个3×3像素大小的卷积核进行卷积操作和激活函数激活,最后进行池化,得到512个7×7像素的特征图,该特征既包含食物的全局特征,也包含食物目标的局部特征。特征融合网络可以融合食物图片的特征,也可以通过池化将之前28×28像素的高分辨率特征图降低到7×7像素,减少了模型的参数。1.4损失函数设计按照上述方法设计好网络后,为了同时优化特征提取网络和注意力区域定位网络,本文采用了两种损失函数优化网络。使用分类损失函数优化每一级特征提取网络,级间损失函数用来优化特征提取网络之间的注意力区域定位网络。对于每一级特征提取网络,本文采用平方损失函数,具体为 19 $L_{\mathrm{cls}}^{i}=\sum\limits_{k}^{n} \frac{1}{2}\left|C^{k}-C^{*}\right|^{2}+\lambda\|w\|^{2}$ 式中,$i$表示第$i$级特征提取网络,$C^{*}$=1表示真实类别标签,$C^{k}$∈(0, 1]表示预测类别标签,$λ$表示正则化因子。分类损失函数可以使每一级分类网络获得更加优异的特征提取能力。分类损失函数只能优化每一级特征提取网络,无法优化每一级特征提取网络之间的注意力网络。为了更加精确地定位高分辨率区域,本文采用级间损失函数优化每一级之间的注意力网络。级间损失函数[19]为 20 $L_{\text { grade }}^{i}=\max \left\{0, p^{i}-p^{i+1}+\Delta\right\}$ 式中,Δ表示$p^{i}$与$p^{i-1}$之间的间隔,$i$=1, 2。当$p^{i} p^{i+1}$,且二者的差值超过间隔值时,损失为零,当$p^{i}p^{i+1}$,且差值超过间隔值时,产生损失。由此可知,级间损失函数可以促使下一级特征提取网络每一类输出概率值大于上一级特征网络输出概率值,即级间损失能够促进特征提取网络的特征学习能力,而特征提取网络在增强特征提取能力后又可提供更加精准的注意力区域定位,二者互相促进,不断提高网络的性能。当计算出类别损失与级间损失后,就可得到模型的总损失函数,具体为 21 $L=\gamma \sum\limits_{i=1}^{3} L_{\mathrm{cls}}^{i}+(1-\gamma) \sum\limits_{i=1}^{2} L_{\mathrm{grade}}^{i}$ 式中,权重因子γ∈(0, 1),用来平衡两种类型的损失。模型中包括裁剪在内的操作全部是可导的,可以实现端到端的训练。2实验结果与分析本文选取的数据集包括Food-172[11]、ChineseFoodNet[12]、UEC-100[20]和Food-101[21]。此外,为了使模型得到更加充分的训练,本文构建了一个类别为202类的食物图片数据集,每类食物图片数量大于1 000张,包括中国食物和西方食物,称为Food-202。数据集的部分样本如图 5所示。 图5 Food-202数据集部分样本 Partial samples of Food-202 datasetFig 52.1模型训练本文采用分步训练和交替训练的方法,分别训练特征提取网络、注意力区域定位网络和级联模型。1) 分步训练。首先在食物数据集上训练特征提取网络。用特征提取网络提取训练样本的特征作为注意力区域定位网络的输入,计算每一个训练样本特征注意力区域的坐标信息,并将此作为注意力区域定位网络的监督信息,然后训练注意力区域定位网络。网络的具体训练细节如表 1所示。表 1中的每一行代表模型中的1个子网络,第2列和第3列分别表示网络的输入和输出,参数的初始化采用xavier方式。本文使用了常用的数据增强方法,包括随机裁剪、添加噪声、平移、旋转等。在训练模型时,在保持长宽比不变的情况下,本文将训练图片的短边调整为512像素。 表1 模型训练细节 模型 输入 输出 Grade_1 448×448像素训练样本 类别概率值,图片的特征向量 Grade_2 224×224像素训练样本 类别概率值,图片的特征向量 Grade_3 224×224像素训练样本 类别概率值 AN1 高响应区域坐标值,Grade_1输出的图片的特征向量 高响应区域坐标值 AN2 高响应区域坐标值,Grade_2输出的图片的特征向量 高响应区域坐标值 Training details for our modelTable 12) 交替训练。当训练好独立的特征提取网络与注意力区域定位网络后,开始交替训练。设置$Margin$=0.005,注意力模板生成函数的$k$=20。本文首先固定特征提取网络参数,训练注意力区域定位网络;接着固定注意力区域定位网络参数,训练特征提取网络,如此交替训练直到收敛。学习率为0.001,迭代次数为50 000次,正则化系数为0.1,使用随机梯度下降(SGD)优化器,特征提取网络采用xavier初始化的方式。2.2实验分析目前关于食物图片识别的文献很多,各个文献之间没有统一的检验标准。为了验证本文设计模型的性能,且使对比结果可靠科学、公平合理,本文分别在文献[11]和[12]使用的食物图片数据集上进行训练与测试。训练集和测试集的分割与原始数据集提供的完全相同,具体结果如表 2所示。 表2 本文模型与其他模型在Food-172和ChineseFoodNet数据集的比较 /% 模型 数据集 Top-1正确率 Arch-D [11] Food-172 82.12 本文模型(2级) Food-172 90.30 本文模型(3级) Food-172 88.20 TastyNet [12] ChineseFoodNet 81.55 本文模型(2级) ChineseFoodNet 80.70 本文模型(3级) ChineseFoodNet 82.80 Comparisons between our model and other models on Food-172 and ChineseFoodNet datasetsTable 2 加粗字体为最优结果。表 2中前3行对比了本文模型与文献[11]中的模型在Food-172数据集上的Top-1正确率。由表 2可知,在使用2级模型时达到最高的Top-1正确率90.3%,提高了8.18%,即使是3级模型也达到了88.2%的识别精度。后3行与文献[12]提出的模型在ChineseFoodNet数据集上进行了比较,精度提高了1.25%。图 6分析了全局损失函数取不同权重因子时Top-1正确率的变化。实验结果表明,当$γ$=0.6时,本文模型在Food-172和ChineseFoodNet数据集上的Top-1正确率最高。因此,全局损失函数的权重因子$γ$=0.6。 图6 权重因子$γ$对Top-1正确率的影响 The effect of weights on the Top-1 accuracyFig 6((a) model with two feature extraction networks; (b) model with three feature extraction networks)此外,本文同时在食物图片识别领域与经常使用的食物图片数据集Food-101进行了比较,并取得了最好的结果,具体如表 3所示。目前在Food-101数据上的识别率最高达到90.27%,该模型使用了基于残差算法的宽残差网络。本文采用以注意力网络为基础的多级卷积神经网络识别模型,在只有两级网络的情况下达到89.5%的正确率,在3级网络的时候达到91.4%的正确率,超过了其他所有模型。文献[14]采用基于注意力机制在同一张图片上生成多个注意力区域,然后对每个区域提取特征进行分类,达到了86.5%的正确率,低于本文的91.4%,主要原因是食物图片与鸟类图片的结构完全不同,没有清晰、明显的物理结构。同一张食物图片上多个区域的特征相关性很高,造成特征利用效率降低。同时也证明了本文设计的模型可以较好地定位食物目标细粒度区域。 表3 本文模型与其他模型在Food-101数据集的比较 /% 模型 主干网络/层数 Top-1正确率 文献[7] GoogLeNet/22 74.75 文献[8] 集成模型 72.12 WISeR [10] — 90.27 文献[14] — 86.50 CNNs Fusion(S2) [9] — 86.07 本文模型(2级) VGG/13 89.50 本文模型(3级) VGG/13 91.40 Comparisons between our model and other models on Food-101 datasetTable 3 加粗字体为最优结果。为了更加全面地验证模型的性能,在本文构建的Food-202数据集对模型进行了训练。首先将数据集按照2 :8的比例划分为测试集和训练集,然后从训练集中划分20%作为验证集。与之前相同,模型中的特征提取网络也在ILSVRC数据集上进行了预训练,具体结果如表 4所示。 表4 模型在Food-202数据集的识别率 /% 模型 Top-1正确率 本文模型(无特征金字塔2级) 81.0 本文模型(2级) 83.4 本文模型(3级) 81.6 The accuracy of our model on Food-202Table 4 加粗字体为最优结果。表 4的实验结果表明,在没有特征金字塔的情况下,模型识别正确率下降了2.4%。特征金字塔对模型的主要影响体现在注意力区域的定位精度方面。从表 4可以看出,本文模型在3级网络的情况下获得了81.6%的正确率,低于2级网络的83.4%。这是因为本文模型是通过不断定位高区分度区域,然后进行裁剪、放大注意力区域对应的目标送入下一级网络进行识别,当食物在图片中所占的比例较小时,过多级数会使注意力网络不断地裁剪图片,反而会造成食物信息的丢失,从而造成识别正确率下降。为了验证平方损失函数的有效性,本文模型在不同的数据集上对特征提取网络采用平方损失函数与交叉熵损失函数时相应的Top-1正确率进行了对比,如表 5所示。实验结果表明,本文模型的特征提取网络采用平方损失函数进行优化时,Top-1正确率的整体表现比交叉熵损失函数高0.6%~2.5%。 表5 平方损失函数与交叉熵损失函数的Top-1正确率对比 /% 数据集 本文模型(2级) 本文模型(3级) 平方损失函数 交叉熵损失函数 平方损失函数 交叉熵损失函数 Food-172 90.3 89.7 88.2 86.4 ChineseFoodNet 80.7 80.9 82.8 80.3 Food-101 89.5 88.3 91.4 90.7 Food-202 83.4 82.6 81.6 80.1 Comparison of Top-1 accuracy between squared loss function and cross entropy loss functionTable 52.3区域定位与特征金字塔的有效性在本文模型中,每一级特征提取网络提取食物图片特征,注意力网络负责定位细粒度区域。为进一步证明注意力网络的有效性,本文选取UEC-100食物图片数据集作为训练样本。UEC-100数据集的每张图片中的食物目标都有人工标记的边界框,便于进行评估,本文模型在训练时仅使用了图片的类别标签信息,没有使用任何的边界框标注信息。但是UEC-100数据集存在一个严重问题,该数据集样本量极少。由于本节主要研究注意力区域网络的定位能力,所以选取了UEC-100数据集中数量最高的4类(green salad, miso soup, rice, ramen noodle)作为训练样本。按照数据集中的分割方法将数据集分为训练集和测试集,在UEC-100数据集上,加入特征金字塔结构的模型在3级网络时,达到了81.4%的Top-1正确率。为了获取注意力区域定位网络输出的注意力区域坐标,本文将图片输入模型前向传播,提取第1个注意力区域定位网络输出的坐标信息。注意力区域信息的可视化结果如图 7所示。 图7 注意力区域定位网络定位结果 The result of the attention localization networkFig 7图 7中红色框为数据集标注的标准框,蓝色框是没有特征金字塔结构的特征提取网络定位的细粒度区域,绿色框是使用特征金字塔结构的特征提取网络定位的细粒度区域。由图 7可以发现,使用特征金字塔的模型定位的食物图片细粒度区域包含更少的背景信息,对食物目标的覆盖能力较为精准。这也解释了表 4中的结果,说明使用特征金字塔的模型识别结果优于不使用特征金字塔的模型,主要原因是特征金字塔使食物细粒度区域的定位能力更加准确。观察图片还可以发现另外一个问题,当同一张食物图片中有多个食物目标时,注意力网络的定位能力会下降,如图 7第1行中的第3幅图片。因为注意力网络仅输出一个区域的中心坐标与边长,当图片中有多个目标时,需要多个注意力区域坐标,所以出现了该种情况。这种现象也引出了另外一个问题,即注意力网络的多目标定位能力。为了对结果进行统一评价,选取目标检测领域的常用指标$\mathrm{IOU}$(intersection over union)作为目标定位能力的评价标准,$\mathrm{IOU}$的计算方法为 22 $\mathrm{IOU}=\frac{\boldsymbol{G} \cap \boldsymbol{A} \boldsymbol{t}}{\boldsymbol{G} \cup \boldsymbol{At} }$ 式中,$\boldsymbol{G}$表示数据集中给定的边界框区域,$\boldsymbol{At}$表示注意力网络输出的区域。$\mathrm{IOU}$的取值范围为[0, 1],当$\mathrm{IOU}$接近0时,说明两个框几乎没有重叠。当$\mathrm{IOU}$接近1时,说明两个框几乎重叠。但是对于本文,该指标存在一个问题。由于在UEC-100数据集中边界框内往往包含图片背景或其他非食物目标(例如食物容器),而注意力网络的目标是定位出食物目标的细粒度区域,该区域并不是全部与数据集的标准框完全吻合。一般而言,数据集中标准框区域要大于注意力网络输出的区域。此时又会出现另外的情况,当注意力网络定位区域大于数据集的标准框区域,此时$\mathrm{IOU}$越接近0,定位能力反而是越差。基于以上分析,对于本文$\mathrm{IOU}$的衡量标准是,尽量使$\mathrm{IOU}$值小。但是注意力区域$\mathrm{IOU}$不可以太小,太小会造成食物信息的丢失或定位区域噪声太大。同时$\mathrm{IOU}$也不能太大,太大也会加入噪声。同上一部分一样,本文选取第1个注意力网络的输出参数,具体结果如表 6所示。表 6中第4列和第5列是注意力网络输出定位区域的面积。通过实验表明,IOU_FP和IOU_NFP之间的关系与图 7有着密切关系,当图片中只包含1个目标时,IOU_FP<IOU_NFP,如表 6中的第3行和第4行所示。 表6 注意力网络$\mathrm{IOU}$指标评价 类别 IOU_FP IOU_NFP 注意力区域面积(FP) 注意力区域面积(NFP) Green salad 0.488 0.254 2042 2932 Miso soup 0.609 0.526 2492 2962 Rice 0.336 0.448 1972 2272 Ramen noodle 0.343 0.497 2112 2542 $\mathrm{IOU}$ indicator evaluation for attention neural networkTable 6表 6中,IOU_FP表示每一级特征提取网络加入特征金字塔结构,IOU_NFP表示没有加入特征金字塔结构。当图片中只有一个目标时,注意力区域小于数据集标准框,此时,加入特征金字塔结构的模型具有更好的定位能力,如图 7中第1行第1张图片和第2行第3张图片。当图片包含多个目标时,注意力区域与数据集标准框部分重叠,此时$\mathrm{IOU}$值越大,说明重叠值越大,越接近数据集标准框,定位性能越好。如表 6中第1行和第2行所示,IOU_FP>IOU_NFP,对应的图片为图 7中的第1行第3张、第2行第1、第2张。通过以上分析,证明了特征金字塔对细粒度区域定位的有效性,这也是加入特征金字塔结构的模型识别正确率较高的原因。从表 6中的第4列和第5列可知,有特征金字塔结构的模型的注意力区域面积都小于没有特征金字塔结构模型注意力区域的面积。图 8为注意力区域裁剪放大效果图。图 8(c)是注意力区域过度裁剪的情况,此时全局信息丢失较为严重,这也是3级模型正确率低于2级模型的原因。 图8 注意力区域裁剪放大效果图 Attention area cropping enlargement effect diagramFig 8((a) original pictures; (b) attention areas; (c) attention areas enlargement)3结论本文采用以注意力机制为基础的多级卷积神经网络模型对食物图片进行细粒度的识别。为了适应食物图片形状大小变化较大的特点,在每级网络中加入了特征金字塔结构,利用各个卷积层中不同尺度的特征图,使模型对目标大小的鲁棒性更高。卷积神经网络中各层特征图分别表示不同的特征,由简单到复杂逐步递进。为了避免所有特征图的同一化,本文采用反卷积的方法将深层低分辨率的特征图与前一层较高分辨率的特征图归一化到同一尺度,然后进行融合。在每级特征提取网络提取食物图片特征后,通过特征融合网络将食物图片的全局特征与局部特征融合。实验结果表明,本文模型在主流食物图片数据集上获得了最好的结果。然而,本文模型也存在一些问题。本文模型对多目标食物图片的定位效果差,而且,特征提取网络的技术需要手动设计,有时会出现过度裁剪的问题造成食物目标结构信息的丢失,导致模型识别正确率下降,解决这些问题是下一步工作的重点。

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读