郭心悅 胡沁涵 劉純平 楊季文
(蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 江蘇 蘇州 215006)
菜肴類App成為人們?nèi)粘I顝V泛使用的一類App,其中菜肴查詢是這類App的一個(gè)基本功能。菜肴圖像自動(dòng)識(shí)別是提升這類App用戶體驗(yàn)的必經(jīng)之路。利用菜肴圖像識(shí)別技術(shù)獲取用戶輸入可以簡(jiǎn)化用戶操作,減少手動(dòng)輸入偏差[1]。同時(shí),眾多學(xué)者為了研究如何提升菜肴圖像識(shí)別的準(zhǔn)確率發(fā)布了一些菜肴圖像數(shù)據(jù)集,其中具有代表性的有UEC-Food100[2]、ETH Food-101[3]和VireoFood172[1]。
本文菜肴圖像識(shí)別涉及到的菜肴包括主食、湯類、蔬菜、肉類等多個(gè)方面。鑒于菜肴圖像識(shí)別屬于細(xì)粒度識(shí)別[1],菜肴圖像受拍攝角度、光照、位置和形狀等不確定因素變化而影響圖像關(guān)鍵細(xì)微差別,這將導(dǎo)致識(shí)別的難度大幅提升[4-5]。此外,不同的菜肴可能同時(shí)包括多種相同的食材,或是盛放菜肴的器皿相似,但由于菜肴食材的形狀、顏色和盛放方式不同,同種菜肴在外觀方面也存在很大的差異;這些因素都會(huì)給菜肴的識(shí)別帶來(lái)相當(dāng)大的難度。因此,SIFT[6](尺度不變特征變換)和HOG[7](方向梯度直方圖)等傳統(tǒng)手工提取特征的方法都難以在菜肴圖像識(shí)別領(lǐng)域取得較高的準(zhǔn)確率[1]。為了提升菜肴圖像識(shí)別的準(zhǔn)確率,研究者們將DCNN(深度卷積神經(jīng)網(wǎng)絡(luò))與傳統(tǒng)特征提取方法結(jié)合運(yùn)用到菜肴圖像識(shí)別中,并取得了突破性的進(jìn)展。如Kawano等[8]將DCNN與傳統(tǒng)手工提取特征的方法RootHoG-FV以及Color-FV結(jié)合,在UEC-Food100數(shù)據(jù)集[2]上準(zhǔn)確率高于純手工提取特征。但是該方法還是借助了傳統(tǒng)特征提取的方法,識(shí)別過(guò)程中存在一定的局限性。
鑒于目前深度學(xué)習(xí)在菜肴圖像識(shí)別中的問(wèn)題,本文提出將遷移學(xué)習(xí)和批歸一化相結(jié)合的深度學(xué)習(xí)框架,實(shí)現(xiàn)自動(dòng)的菜肴識(shí)別。本文的主要貢獻(xiàn)在于:
1) 借助已有的VGG-16預(yù)訓(xùn)練模型,將遷移學(xué)習(xí)應(yīng)用到菜肴圖像識(shí)別,把已在ImageNet1000級(jí)圖像分類競(jìng)賽中發(fā)布的最終模型各項(xiàng)參數(shù)導(dǎo)入新模型中作為初始化參數(shù),解決菜肴圖像深度學(xué)習(xí)中存在的過(guò)擬合現(xiàn)象,獲得更具有鑒別性的特征。
2) 對(duì)部分卷積層以及全連接層的輸出結(jié)果做批歸一化處理。該批歸一化操作首先通過(guò)計(jì)算這批數(shù)據(jù)的均值及方差,再對(duì)這批數(shù)據(jù)做規(guī)范化處理,最終得到尺度變換和平移后的結(jié)果。
與本文研究密切相關(guān)的工作是菜肴圖像特征的自動(dòng)提取和深度學(xué)習(xí)中梯度消失問(wèn)題。
為了彌補(bǔ)特征提取過(guò)程中存在的不足,眾多研究者將深度卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到特征的提取中。這種模型自動(dòng)提取特征的方式在細(xì)粒度圖像分類問(wèn)題上能夠有更好的表現(xiàn)[9]。但是如果直接在相關(guān)數(shù)據(jù)集上進(jìn)行訓(xùn)練可能會(huì)帶來(lái)嚴(yán)重的過(guò)擬合現(xiàn)象。對(duì)此,引入了遷移學(xué)習(xí)從而一定程度上緩解過(guò)擬合。
Yanai等[10]從ILSVRC 1000 ImageNet數(shù)據(jù)集[11]和ImageNet 21000數(shù)據(jù)集中抽取出1 000種食物相關(guān)的圖像,將其合并組成預(yù)訓(xùn)練數(shù)據(jù)集。將在該預(yù)訓(xùn)練集上訓(xùn)練成熟的AlexNet模型[12]應(yīng)用到UEC-Food100數(shù)據(jù)集和UEC-Food256數(shù)據(jù)集上,并再次取得了當(dāng)時(shí)最好的分類結(jié)果。Szegedy等[13]提出的GoogleNet模型獲得了ILSVRC冠軍,之后又對(duì)其核心結(jié)構(gòu)進(jìn)行改進(jìn)得到Inception V3模型[14]。Hassannejad等[15]將Inception V3模型應(yīng)用到了菜肴圖像識(shí)別領(lǐng)域,top1準(zhǔn)確率在ETH Food-101、UEC-Food100和UEC-Food256這三個(gè)菜肴圖像數(shù)據(jù)集上分別提升了17.87%、2.68%和8.6%。Chen等[1]注意到菜肴識(shí)別和菜肴對(duì)應(yīng)的食材的識(shí)別是兩個(gè)相互促進(jìn),并且會(huì)互相影響的過(guò)程,據(jù)此提出了一個(gè)多任務(wù)的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)。該方法偏重于識(shí)別食材和菜肴,而不是單一的菜肴圖像識(shí)別。
以上三種導(dǎo)入預(yù)訓(xùn)練模型的方法都屬于遷移學(xué)習(xí)在深度學(xué)習(xí)中的應(yīng)用,可以適當(dāng)緩解過(guò)擬合。但是這些方法忽略了數(shù)據(jù)分布變化而帶來(lái)的梯度消失問(wèn)題。在預(yù)處理過(guò)程中對(duì)數(shù)據(jù)做歸一化處理可以讓初始數(shù)據(jù)大多分布在梯度較大范圍內(nèi),但是隨著深度神經(jīng)網(wǎng)絡(luò)不斷加深,每一層的數(shù)據(jù)分布不斷變化,仍然會(huì)出現(xiàn)梯度消失問(wèn)題。對(duì)此,Ioffe等[16]提出了批歸一化處理數(shù)據(jù)的方法,可以在網(wǎng)絡(luò)中的任意一層進(jìn)行歸一化操作,從而一定程度上減弱中間層數(shù)據(jù)發(fā)生改變的情況。
為了自動(dòng)提取菜肴圖像中的具有鑒別性的特征和解決現(xiàn)有深度學(xué)習(xí)框架下菜肴圖像識(shí)別訓(xùn)練過(guò)程中梯度消失問(wèn)題,本文在VGG-16模型的基礎(chǔ)上引入了遷移學(xué)習(xí)和批歸一化處理方法提升模型的圖像識(shí)別準(zhǔn)確率。提出模型的框架如圖1所示。
圖1 基于VGG-16(ft+BN)菜肴圖像識(shí)別模型框架
考慮到VGG-16是2014年ILSVRC競(jìng)賽的第二名,同時(shí)VGG-16在遷移學(xué)習(xí)中的表現(xiàn)優(yōu)于當(dāng)年的冠軍GoogleNet模型,所以本文選用VGG-16作為基礎(chǔ)模型。一方面,為了緩解過(guò)擬合現(xiàn)象,將已在ImageNet數(shù)據(jù)集[10]上完成預(yù)訓(xùn)練的VGG-16模型[17]中的卷積核參數(shù)和偏置項(xiàng)系數(shù)提取出來(lái),并把這些系數(shù)導(dǎo)入到原始的模型中作為初始化參數(shù);另一方面,對(duì)每一個(gè)卷積層和全連接層(除了最后一個(gè)全連接層)的輸出都做批歸一化處理[16]。最后,用激活函數(shù)來(lái)處理歸一化結(jié)果,得到該層的最終輸出。
目前,菜肴圖像識(shí)別研究涉及的數(shù)據(jù)集包含的圖像數(shù)量非常有限,如果采用隨機(jī)方式初始化模型中的參數(shù),然后直接在菜肴圖像數(shù)據(jù)集上訓(xùn)練會(huì)導(dǎo)致過(guò)擬合[18]。
為了優(yōu)化原始模型,將遷移學(xué)習(xí)應(yīng)用到深度卷積神經(jīng)網(wǎng)絡(luò)中。與傳統(tǒng)的機(jī)器學(xué)習(xí)不同,遷移學(xué)習(xí)的源域和目標(biāo)域、源任務(wù)和目標(biāo)任務(wù)均可不同[19]。所以,本文中使用的成熟神經(jīng)網(wǎng)絡(luò)模型為VGG-16,其已在2014年ILSVRC競(jìng)賽中使用的數(shù)據(jù)集上訓(xùn)練成熟。該數(shù)據(jù)集為ImageNet的子集,其數(shù)據(jù)集圖像總量達(dá)到140萬(wàn)幅,共1 000個(gè)分類。在這樣龐大的數(shù)據(jù)集上訓(xùn)練過(guò)的模型具有較強(qiáng)的泛化能力。
遷移學(xué)習(xí)在VGG-16模型上的應(yīng)用分為參數(shù)導(dǎo)入和輸出節(jié)點(diǎn)修改兩個(gè)部分。VGG-16模型由13個(gè)卷積層、3個(gè)全連接層和5個(gè)池化層組成,其分類器采用Softmax,所有卷積層和全連接層的激活函數(shù)采用ReLU函數(shù),具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1右側(cè)所示。每個(gè)全連接層后都添加了一層dropout層,以抑制過(guò)擬合[20]。將在ImageNet數(shù)據(jù)集上經(jīng)過(guò)預(yù)訓(xùn)練的VGG-16模型的所有卷積層參數(shù)和前兩個(gè)全連接層的參數(shù)導(dǎo)入到初始模型中。由于本文中使用的數(shù)據(jù)集分類個(gè)數(shù)與ILSVRC競(jìng)賽所用數(shù)據(jù)集分類個(gè)數(shù)不同,所以需要將模型最后一個(gè)全連接層(fc8)輸出節(jié)點(diǎn)個(gè)數(shù)改為數(shù)據(jù)集分類個(gè)數(shù)(VireoFood172中為172,UEC-Food100中為100)。最后將這些導(dǎo)入的參數(shù)都設(shè)定為可訓(xùn)練參數(shù)。
為了捕捉更多的圖像特征信息,神經(jīng)網(wǎng)絡(luò)不斷加深。在訓(xùn)練的過(guò)程中,由于淺層的神經(jīng)網(wǎng)絡(luò)參數(shù)不斷變化,深層神經(jīng)網(wǎng)絡(luò)的輸入信息的分布也隨之不斷變化。這導(dǎo)致在訓(xùn)練網(wǎng)絡(luò)的過(guò)程中需要設(shè)置更加合理的初始可訓(xùn)練參數(shù)以及采用更小的學(xué)習(xí)速率以保證梯度能合理地傳播[16]。事實(shí)上,這樣調(diào)節(jié)超參數(shù)需要花費(fèi)很多的時(shí)間和精力,并且存在很大的偶然性。
對(duì)此,本文將批歸一化處理方法引入VGG-16模型中。在訓(xùn)練階段批歸一化處理分為歸一化處理和線性變換兩個(gè)步驟。
1) 經(jīng)過(guò)式(1)的歸一化處理后讓每批數(shù)據(jù)整體都服從均值為0、方差為1的正態(tài)分布。
(1)
(2)
經(jīng)過(guò)歸一化處理,大部分?jǐn)?shù)據(jù)都能被映射到[-2,2]區(qū)間中。在該區(qū)間內(nèi),激活函數(shù)(ReLU)的導(dǎo)數(shù)有一半概率為0,一半概率為1,從而一定程度上緩解了梯度消失問(wèn)題。但是,對(duì)每批數(shù)據(jù)做簡(jiǎn)單的歸一化操作可能會(huì)讓數(shù)據(jù)丟失自己原來(lái)攜帶的信息,通過(guò)步驟2的仿射變換可以彌補(bǔ)部分丟失信息。
在訓(xùn)練的過(guò)程中,針對(duì)每一批訓(xùn)練數(shù)據(jù)求出樣本均值和樣本方差后再對(duì)單個(gè)樣本做處理,使這批訓(xùn)練數(shù)據(jù)服從于(0,1)正態(tài)分布。然而在測(cè)試過(guò)程中,已經(jīng)不存在“批”這個(gè)概念,同樣也不存在這一批數(shù)據(jù)的樣本均值和樣本方差,因此,測(cè)試過(guò)程中需要先估算整體的均值和方差,再對(duì)輸入數(shù)據(jù)進(jìn)行批歸一化處理。
E[x]←EB[μB]
(3)
(4)
式中:m為該批次中圖像數(shù)量。
2) 針對(duì)測(cè)試集數(shù)據(jù)xT,對(duì)其做與訓(xùn)練集數(shù)據(jù)相同的歸一化處理。其中均值和方差是式(3)和式(4)中得到的無(wú)偏估計(jì)值。
(5)
(6)
本節(jié)主要展示實(shí)驗(yàn)的各項(xiàng)數(shù)據(jù)并分析實(shí)驗(yàn)結(jié)果。根據(jù)以上方法在VireoFood172和UEC-Food100數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。結(jié)果表明,以上改進(jìn)方法能有效提升圖像識(shí)別的準(zhǔn)確率。所有的實(shí)驗(yàn)均在Linux環(huán)境下進(jìn)行,GPU為NVIDIA TITAN Xp,深度學(xué)習(xí)框架為TensorFlow。
VireoFood172數(shù)據(jù)集由Chen等發(fā)布,包含172種中式菜肴。這172種菜肴可分為蔬菜、湯類、豆制品、雞蛋、肉類、海鮮、魚類和主食八大類,各類具體菜肴數(shù)量在表1中展示。數(shù)據(jù)集中圖像原始分辨率為256×256,共計(jì)110 241幅,平均每種菜肴大約有641幅圖像。數(shù)據(jù)集發(fā)布者將各類菜肴按照6 ∶3 ∶1的分割方式將數(shù)據(jù)集劃分為訓(xùn)練集、測(cè)試集和驗(yàn)證集。
表1 VireoFood172數(shù)據(jù)集菜肴分類
UEC-Food100數(shù)據(jù)集由Matsuda等發(fā)布,其涵蓋了100種日式菜肴,共計(jì)9 060幅。每種菜肴都有至少100個(gè)樣本。與VireoFood172不同,UEC-Food100數(shù)據(jù)集中,所有菜肴都有一個(gè)標(biāo)注框記錄目標(biāo)菜肴在圖片中的準(zhǔn)確位置,并且一幅圖片中可能包含多個(gè)菜肴。對(duì)此,按照數(shù)據(jù)集提供的標(biāo)注框,將目標(biāo)菜肴從原始圖像中切割,然后利用抗鋸齒算法重新調(diào)整大小,使其分辨率變?yōu)?56×256。最后將重新調(diào)整大小后的圖片用順序編號(hào)作為文件名,以.jpg格式保存到各個(gè)分類的文件夾中。具體操作流程在圖2中展示。將最后得到的各類菜肴圖像隨機(jī)地分為訓(xùn)練集和測(cè)試集,比例為8 ∶2。
圖2 UEC-Food100數(shù)據(jù)集圖像處理流程
遷移學(xué)習(xí)的相關(guān)實(shí)驗(yàn)在VireoFood172和UEC-Food100數(shù)據(jù)集上進(jìn)行。訓(xùn)練過(guò)程中以驗(yàn)證集準(zhǔn)確率和loss作為評(píng)價(jià)標(biāo)準(zhǔn)對(duì)比兩種方法。VGG-16表示原始模型,VGG-16(ft)表示導(dǎo)入預(yù)訓(xùn)練模型參數(shù)的網(wǎng)絡(luò)。
(1) VireoFood172數(shù)據(jù)集結(jié)果。對(duì)VireoFood172數(shù)據(jù)集中的圖像做如下操作:在開始訓(xùn)練之前,對(duì)訓(xùn)練集中圖像做隨機(jī)水平翻轉(zhuǎn)、隨機(jī)剪切(將256×256格式的圖片隨機(jī)剪切成224×224)等數(shù)據(jù)增強(qiáng)操作,并將從.tfrecords文件中讀取得到的訓(xùn)練數(shù)據(jù)打亂。以上操作可以使得模型的泛化能力增強(qiáng),減少過(guò)擬合。
VireoFood172數(shù)據(jù)集實(shí)驗(yàn)中各項(xiàng)參數(shù)如下:每批64幅圖片,初始學(xué)習(xí)率設(shè)定為0.000 1,每8 000次迭代衰減為之前學(xué)習(xí)率的十分之一,優(yōu)化方法為Adam。由于超過(guò)25 000次迭代驗(yàn)證集的準(zhǔn)確率趨于穩(wěn)定,并且loss不再下降,將迭代次數(shù)設(shè)定為27 000。根據(jù)經(jīng)驗(yàn),將L2正則化系數(shù)設(shè)定為0.002效果最好。
圖3為訓(xùn)練過(guò)程中驗(yàn)證集loss變化趨勢(shì)圖,其中:loss(raw)曲線代表未導(dǎo)入預(yù)訓(xùn)練模型的VGG-16網(wǎng)絡(luò)的loss變化趨勢(shì);loss(ft)曲線代表導(dǎo)入預(yù)訓(xùn)練模型的VGG-16網(wǎng)絡(luò)變化趨勢(shì)。
圖3 VGG-16與VGG-16(ft)在VireoFood172上loss走勢(shì)
可以看出,同等情況下,與未導(dǎo)入預(yù)訓(xùn)練模型數(shù)值相比,導(dǎo)入預(yù)訓(xùn)練模型參數(shù)值的網(wǎng)絡(luò)loss下降更快,并且最終趨于穩(wěn)定的值比前者更小。
圖4為訓(xùn)練過(guò)程中驗(yàn)證集上top1準(zhǔn)確率變化趨勢(shì)圖,其中:accuracy(raw)曲線代表未導(dǎo)入預(yù)訓(xùn)練模型的VGG-16網(wǎng)絡(luò)的準(zhǔn)確率變化趨勢(shì);accuracy(ft)曲線代表導(dǎo)入預(yù)訓(xùn)練模型的VGG-16網(wǎng)絡(luò)準(zhǔn)確率變化趨勢(shì)。
圖4 VGG-16與VGG-16(ft)在VireoFood172上準(zhǔn)確率走勢(shì)
可以看出,導(dǎo)入預(yù)訓(xùn)練模型參數(shù)后,模型的準(zhǔn)確率提升速度更快,并且最終驗(yàn)證集的準(zhǔn)確率與未使用遷移學(xué)習(xí)的模型相比提升了大約30%。
最終測(cè)試集的各項(xiàng)結(jié)果如表2所示。top1準(zhǔn)確率和top5準(zhǔn)確率均有大幅提升,而損失也下降了約0.7。表2中實(shí)驗(yàn)結(jié)果可以證明將遷移學(xué)習(xí)應(yīng)用到VGG-16模型中能有效地緩解VireoFood172數(shù)據(jù)集上存在的過(guò)擬合問(wèn)題,從而提升圖像識(shí)別準(zhǔn)確率。
表2 遷移學(xué)習(xí)在VireoFood172數(shù)據(jù)集結(jié)果
(2) UEC-Food100數(shù)據(jù)集結(jié)果。類似地,在UEC-Food100數(shù)據(jù)集上,對(duì)菜肴圖像做與VireoFood172數(shù)據(jù)集上相同的數(shù)據(jù)增強(qiáng)操作。
由于UEC-Food100數(shù)據(jù)集較小,很多分類的圖像數(shù)據(jù)只有100條左右,所以在遷移學(xué)習(xí)的過(guò)程中凍結(jié)卷積層部分參數(shù)(即VGG-16中conv1_1-conv3_3),僅訓(xùn)練之后兩個(gè)卷積層和全連接層參數(shù)。超過(guò)10 000次迭代后驗(yàn)證集的準(zhǔn)確率趨于穩(wěn)定,所以將迭代次數(shù)設(shè)定為13 000,每3 000次學(xué)習(xí)速率衰減為之前的一半。
圖5為訓(xùn)練過(guò)程中驗(yàn)證集loss變化趨勢(shì)圖,其中:loss(raw100)曲線代表未導(dǎo)入預(yù)訓(xùn)練模型的VGG-16網(wǎng)絡(luò)在驗(yàn)證集上loss變化趨勢(shì);loss(ft100)曲線代表導(dǎo)入預(yù)訓(xùn)練模型的VGG網(wǎng)絡(luò)在驗(yàn)證集上變化的趨勢(shì)。
圖5 VGG-16與VGG-16(ft)在UEC-Food100上loss走勢(shì)
未導(dǎo)入預(yù)訓(xùn)練模型的參數(shù)網(wǎng)絡(luò)的loss整體呈上升趨勢(shì),最終穩(wěn)定在數(shù)值較大的區(qū)間,與訓(xùn)練集的loss差距較大。而loss(ft100)與loss(raw100)相比初始下降幅度較大且整體呈下降趨勢(shì),并最終穩(wěn)定在3附近。最終,loss(ft100)比loss(raw100)穩(wěn)定值小4.5左右。
圖6為訓(xùn)練過(guò)程中驗(yàn)證集上top1準(zhǔn)確率變化趨勢(shì)圖,其中accuracy(raw100)曲線代表未導(dǎo)入預(yù)訓(xùn)練模型的VGG-16網(wǎng)絡(luò)的準(zhǔn)確率變化趨勢(shì),accuracy(ft100)曲線代表導(dǎo)入預(yù)訓(xùn)練模型的VGG-16網(wǎng)絡(luò)準(zhǔn)確率變化趨勢(shì)。
圖6 VGG-16與VGG-16(ft)在UEC-Food100上準(zhǔn)確率走勢(shì)
accuracy(ft100)曲線與accuracy(raw100)曲線均呈上升趨勢(shì),但accuracy(ft100)初始上升幅度更大,并最終穩(wěn)定在數(shù)值相對(duì)較高的區(qū)間。
最終在測(cè)試集上各指標(biāo)結(jié)果如表3中所示。與VireoFood172數(shù)據(jù)集的結(jié)果類似,top1和top5準(zhǔn)確率均有大幅提升,損失下降。實(shí)驗(yàn)結(jié)果表明,將遷移學(xué)習(xí)應(yīng)用到VGG-16模型中能提升在UEC-Food100數(shù)據(jù)集上圖像識(shí)別的準(zhǔn)確率。
表3 遷移學(xué)習(xí)在UEC-Food100數(shù)據(jù)集結(jié)果
通過(guò)在VireoFood172和UEC-Food100數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果可以證明,在原模型的基礎(chǔ)上使用遷移學(xué)習(xí),即導(dǎo)入預(yù)訓(xùn)練模型可以緩解過(guò)擬合現(xiàn)象并大幅提升測(cè)試集上的準(zhǔn)確率。
按照3.2節(jié)中的方法將訓(xùn)練成熟模型的參數(shù)導(dǎo)入初始模型中,并將這些導(dǎo)入的參數(shù)設(shè)定為可訓(xùn)練的,數(shù)據(jù)增強(qiáng)操作與3.2節(jié)中相同。訓(xùn)練過(guò)程中以驗(yàn)證集準(zhǔn)確率作為評(píng)價(jià)標(biāo)準(zhǔn)對(duì)比兩種方法。VGG-16(ft+BN)表示不僅對(duì)原始VGG-16模型做了微調(diào),并且加入了批歸一化層。
(1) VireoFood172數(shù)據(jù)集結(jié)果。在VireoFood172數(shù)據(jù)集上訓(xùn)練時(shí),除了最后一層全連接層(fc8),在所有卷積層和全連接層中都添加了批歸一化處理。由于加入批歸一化層后參數(shù)變多以及顯卡存儲(chǔ)量的限制,所以將每批處理的圖像數(shù)量調(diào)整為32幅。使用批歸一化層后,訓(xùn)練速度明顯變快,所以設(shè)定學(xué)習(xí)速率每2 000次衰減為之前的一半,迭代次數(shù)設(shè)定為25 000。其余各項(xiàng)參數(shù)設(shè)定及數(shù)據(jù)增強(qiáng)方式不變。
圖7展示了加入BN層和未加入BN層訓(xùn)練過(guò)程中驗(yàn)證集準(zhǔn)確率變化趨勢(shì),accuracy(ft)代表未添加BN層的模型驗(yàn)證集上準(zhǔn)確率變化曲線;accuracy(ft+BN)代表添加BN層后模型的在驗(yàn)證集上準(zhǔn)確率變化曲線。在添加BN層后,準(zhǔn)確率最終會(huì)穩(wěn)定在一個(gè)更高的值附近。最終,在其他各項(xiàng)參數(shù)相同的情況下,得到了如表4所示的各項(xiàng)數(shù)據(jù)。
圖7 VGG-16(ft)與VGG-16(ft+BN)在VireoFood172上準(zhǔn)確率走勢(shì)
表4 批歸一化在VireoFood172數(shù)據(jù)集結(jié)果 %
可以看出,使用批歸一化的模型的準(zhǔn)確率達(dá)到了83.45%,與未使用批歸一化層的模型相比提升了4.26個(gè)百分點(diǎn)。
(2) UEC-Food100數(shù)據(jù)集結(jié)果。與3.2節(jié)中訓(xùn)練方法類似,僅訓(xùn)練全連接層部分參數(shù),并且僅在每個(gè)卷積塊最后一層和全連接層中第二層(fc7)添加批歸一化層。每批處理64幅圖像,每3 000次迭代后學(xué)習(xí)速率衰減為之前的一半,迭代總次數(shù)設(shè)為13 000。其余各項(xiàng)參數(shù)設(shè)定及數(shù)據(jù)增強(qiáng)方式不變。
圖8為使用批歸一化前后驗(yàn)證集上圖像識(shí)別準(zhǔn)確率變化趨勢(shì)。其中:accuracy(ft100)代表未添加BN層的模型在驗(yàn)證集上準(zhǔn)確率變化曲線;accuracy(ftBN100)代表添加BN層后模型的在驗(yàn)證集上準(zhǔn)確率變化曲線。添加批歸一化后準(zhǔn)確率明顯有所提升,最終得到表5中相應(yīng)的結(jié)果。
圖8 VGG-16(ft)與VGG-16(ft+BN)在UEC-Food100上準(zhǔn)確率走勢(shì)
表5 批歸一化在UEC-Food100數(shù)據(jù)集結(jié)果 %
可以看出,VGG(ft+BN)模型top1準(zhǔn)確率達(dá)到80.02%,與VGG-16(ft)相比,在UEC-Food100數(shù)據(jù)集上提升了8.15個(gè)百分點(diǎn)。
通過(guò)在兩種菜肴圖像數(shù)據(jù)集上的結(jié)果可以證明,批歸一化處理可以有效提升模型的穩(wěn)定性和識(shí)別的準(zhǔn)確率,并且VGG-16(ft+BN)無(wú)須經(jīng)過(guò)繁雜的調(diào)參過(guò)程就可以取得優(yōu)于普通卷積神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確率。
為了能夠更加直觀地展示實(shí)驗(yàn)結(jié)果,引入了其他三種深度學(xué)習(xí)方法作為對(duì)比實(shí)驗(yàn)展示可視化實(shí)驗(yàn)對(duì)比結(jié)果。
(1) VireoFood172數(shù)據(jù)集結(jié)果。在VireoFood172數(shù)據(jù)集上采用AlexNet[11]、VGG-16[17]和Arch-D[1]模型作為對(duì)比。AlexNet是2012年ImageNet競(jìng)賽冠軍獲得者,與傳統(tǒng)的機(jī)器學(xué)習(xí)方法相比識(shí)別率有大幅提升。VGG-16與AlexNet相比擁有更多的卷積層,在ImageNet數(shù)據(jù)集上圖像識(shí)別準(zhǔn)確率也有了大幅提升。Arch-D算法在VGG-16的基礎(chǔ)上略做調(diào)整,使得該模型可以同時(shí)識(shí)別菜肴和食材。表6第1列展示了5道具有代表性的菜肴圖像以及菜肴對(duì)應(yīng)的名稱,第2-5列羅列了以上提及的三種模型以及本文中的模型對(duì)第1列圖像識(shí)別概率最高的5個(gè)結(jié)果及其對(duì)應(yīng)的概率值。
表6 各模型在VireFood172數(shù)據(jù)集上可視化結(jié)果
續(xù)表6
所有神經(jīng)網(wǎng)絡(luò)在識(shí)別較為清晰并且干擾較少的菜肴圖片時(shí)都能較為準(zhǔn)確地給出菜肴的正確標(biāo)簽。如表6中“fried beans with eggplant”標(biāo)簽對(duì)應(yīng)的圖像,所有的網(wǎng)絡(luò)都能準(zhǔn)確地識(shí)別出該菜肴,在正確分類上除Arch-D算法外均取得較高的概率。圖像中有少許干擾項(xiàng)或是圖像中關(guān)鍵部分被遮擋,部分算法將不能十分準(zhǔn)確地識(shí)別菜肴。表6中除了VGG-16(ft+BN)算法可以將“braised sea cucumber with scallion”以較高的準(zhǔn)確率識(shí)別,其他算法均不能將正確標(biāo)簽以top1識(shí)別出。同樣,Arch-D算法和AlexNet未能以top1識(shí)別“sweet mung bean soup”;VGG雖然以top1識(shí)別出該菜肴,但是概率只有0.36;只有VGG(ft+BN)以相對(duì)較高的概率識(shí)別出該標(biāo)簽,概率值為0.69。如果圖像中存在較多干擾因素,或是菜肴只占據(jù)圖像中極小部分,那么網(wǎng)絡(luò)將很難識(shí)別這些圖像。除VGG(ft+BN)模型在top5中識(shí)別出“fried and stewed hairtail in soy sauce”對(duì)應(yīng)的菜肴圖像,其他模型均未在top5中識(shí)別出該菜肴。由于拍攝角度、光線和圖中其他干擾信息的影響,所有網(wǎng)絡(luò)均未能對(duì)最后的“deep fried lotus root”在top5中進(jìn)行正確分類。
最終各網(wǎng)絡(luò)在VireoFood172數(shù)據(jù)集上的識(shí)別準(zhǔn)確率如表7所示。VGG-16(ft+BN)擁有最高的top1識(shí)別率和最高的top5識(shí)別準(zhǔn)確率。比VireoFood172數(shù)據(jù)集的發(fā)行者Chen提出的Arch-D算法在top1準(zhǔn)確率上高出1.39個(gè)百分點(diǎn),top5準(zhǔn)確率上高出0.56個(gè)百分點(diǎn)。
表7 各模型在VireFood172數(shù)據(jù)集上結(jié)果 %
(2) UEC-Food100數(shù)據(jù)集結(jié)果。在UEC-Food100數(shù)據(jù)集上采用AlexNet[11]、VGG-16[17]和DCNN-FOOD(ft2)[12]方法做對(duì)比實(shí)驗(yàn)。部分圖像識(shí)別結(jié)果如表8所示。與VireoFood172數(shù)據(jù)集不同,由于UEC-Food100數(shù)據(jù)集中所有的菜肴圖像都包含標(biāo)注框,所以圖像中包含的干擾信息較少,但是UEC-Food100數(shù)據(jù)集中各類菜肴之間相似度更高,并且同類菜肴在外形方面差距較大。與VireoFood172數(shù)據(jù)集類似,表8第1列展示了UEC-Food100數(shù)據(jù)集中五道具有代表性的菜肴,第2-5列是各個(gè)模型對(duì)相應(yīng)圖像識(shí)別概率最高的5道菜肴名稱及其對(duì)應(yīng)的概率值。表8中“rice ball”標(biāo)簽對(duì)應(yīng)的圖像和訓(xùn)練集中的圖像在顏色和形狀方面差距大,所以四種模型均未能在top5中給出正確標(biāo)簽?!癰eef steak”圖像中主食被其他食材遮擋,導(dǎo)致除VGG-16(ft+BN)以外的模型未能在top5中識(shí)別。由于“fried shrimp”和“stew”中用到的食材和其他菜肴中相似度很大,VGG-16(ft+BN)以外的模型雖然在top5中將標(biāo)簽識(shí)別但并未以top1識(shí)別圖像。“tensin noodle”中包含的各類食材都已經(jīng)清晰地陳列在圖像中,所有模型均以較高的準(zhǔn)確率將標(biāo)簽以top1識(shí)別出,VGG-16(ft+BN)擁有最高的識(shí)別概率。
表8 各模型在UEC-Food100數(shù)據(jù)集上可視化結(jié)果
續(xù)表8
最終各網(wǎng)絡(luò)在UEC-Food100數(shù)據(jù)集上的識(shí)別準(zhǔn)確率如表9所示。VGG(ft+BN)擁有最高的top1識(shí)別率和最高的top5識(shí)別準(zhǔn)確率,并且比UEC-Food100數(shù)據(jù)集發(fā)布者之一Yanai等在文獻(xiàn)[12]中的top1準(zhǔn)確率高1.25個(gè)百分點(diǎn),top5準(zhǔn)確率高0.56個(gè)百分點(diǎn)。
表9 各模型在VireFood172數(shù)據(jù)集上結(jié)果 %
本文提出一種基于遷移學(xué)習(xí)和批歸一化處理的菜肴圖像識(shí)別方法。為了緩解過(guò)擬合現(xiàn)象,將2014年ILSVRC競(jìng)賽數(shù)據(jù)集上訓(xùn)練成熟的VGG-16模型的各項(xiàng)參數(shù)導(dǎo)入初始模型中從而大幅提升了識(shí)別的準(zhǔn)確率,同時(shí)又將批歸一化處理數(shù)據(jù)的方法引入VGG-16中緩解梯度消失的問(wèn)題。在VireoFood172和UEC-Food100數(shù)據(jù)集上top1準(zhǔn)確率分別提升了1.39個(gè)百分點(diǎn)和1.25個(gè)百分點(diǎn)。