摘要:傳統(tǒng)的圖像識別技術在食物識別上有著準確率不高、計算速度慢的缺陷。深度學習自誕生以來,憑借其強大的機器學習特性,極大地推動了圖像識別的發(fā)展。近年來,隨著人工智能的高度發(fā)展,深度學習得到了更深入的發(fā)展。因此,采用深度學習技術進行食物識別的研究,既有實現的基礎,又有實際的意義。本文通過設計基于優(yōu)化卷積神經網絡算法的移動端食物識別系統(tǒng),解決了食物識別系統(tǒng)在移動設備中準確率低、存儲量高的難題,為食物識別技術的再發(fā)展提供借鑒與參考。
關鍵詞:移動端;食物識別;深度學習;CNN
食物是人類賴以生存的生命之源。隨著生活質量的提高與科技水平的快速發(fā)展,人們對食物的需求從攝入食物的數量向質量與營養(yǎng)均衡上轉移。如何實現均衡飲食,在保證人體營養(yǎng)需求充分且均衡的前提下使食物的利用率達到最大化,從而達到滿足各類人對食物攝取的個性化需求、減少食物浪費的目的,將成為當今飲食文化與科技創(chuàng)新結合的重難點與研究的目標[1]。而遺傳算法、蟻群算法、神經網絡等復雜人工智能算法的應用無疑為食物識別技術注入新的活力、提供研究方向,也讓移動端食物識別系統(tǒng)的設計成為可能。
1.傳統(tǒng)圖像識別技術與食物識別
1.1傳統(tǒng)圖像識別技術在食物識別的應用
圖像識別是人工智能應用于實際生活的重要領域之一,其主要依托圖像采集、圖像預處理、特征提取、圖像識別等四個關鍵步驟來進行圖像的傳統(tǒng)識別。自上世紀50年代開始,圖像識別就從文字識別層面發(fā)展起來,經過數字圖像處理與識別的過渡階段,向著更精細化的物體識別深入,并廣泛地應用于各類物體之中,其中以人物識別最為廣泛,并隨著人類的生活需求,擴展到對食物的識別中[2]。傳統(tǒng)的圖像識別技術主要依賴于圖像分割方法如直方圖、遺傳算法或小波變換的實現[3]。
1.2傳統(tǒng)圖像識別技術應用的優(yōu)劣勢
傳統(tǒng)圖像識別技術的圖像分割方法在食物識別上的準確性和精確度并不顯著,還遠遠達不到人們對食物識別的要求。但相比于人工識別手段,利用智能算法,可節(jié)省大量的人工成本,亦是人類在人工智能研究的階段性成果。而經過了較長時間的調試與大量的試驗,該類技術保有良好的穩(wěn)定性。由于同一食物的外在特征與內在屬性的差異,僅有的缺陷也是在于其較低的食物識別準確率。
2.CNN技術與食物識別
2.1CNN技術在食物識別的應用可行性
CNN(卷積神經網絡)算法[4]擁有輸入、卷積、激活、池化、全連接FC等五個不同類別的層次結構,是多分類的神經網絡。其中,卷積層通過局部感知來提取圖片的每個特征從而形成對圖片的全局訓練,并利用權值共享機制來減少模型計算參數;池化層通過降低圖片特征維度來降低過擬合風險、提高模型的容錯性;由于食物識別需要大量測試,這就需要隨機刪除神經網絡中的部分神經元來解決過擬合難題,這同時提高圖像的識別精度。因此,從理論上說,CNN技術完全適用于食物識別系統(tǒng)的設計與開發(fā),并且擁有廣闊的開發(fā)前景與應用市場。
2.2CNN技術應用的優(yōu)劣勢
CNN相比于傳統(tǒng)圖像處理技術,因其能隨機刪除神經元來保證高度擬合的復雜特性,更能滿足人們對食物識別的準確度要求。但由于大量的訓練和龐大的計算量,往往難以移植到移動設備。為此,在保證食物識別準確率的同時,降低計算量、精簡模型成為應用到移動設備的首要研究難題。
3.CNN技術在移動端食物識別中的優(yōu)化設計
CNN食物識別技術結合食物顏色和形狀的兩大特征來分類食物。為降低移動端的計算量并顯著提高分辨率,應針對原始CNN算法進行如下優(yōu)化:其一,利用DepthWise Separable(深度可分離卷積)方式卷積來降低計算量和存儲空間,使技術應用于小空間的移動設備上;其二,基于螢火蟲算法的迭代尋優(yōu)特性來優(yōu)化卷積神經網絡的初始閾值和權值,提高CNN的準確率。
3.1針對降低CNN計算量的優(yōu)化
根據VGG思想和特點,降低CNN計算量的原理就是將大卷積轉化為多個串聯的相同小卷積來減少計算次數,從而達到降低總運算量的目的。Depthwise Separable卷積[5]對降低計算量有顯著效果,其主要分為兩步,先是進行Depthwise卷積,再是進行Pointwise卷積。區(qū)別與常規(guī)卷積的每個卷積核對每個通道都進行計算的方式,Depthwise卷積中每個卷積核只對每個通道進行一次計算。由上可知,計算的通道數沒有改變,DW卷積各通道間的信息沒有得到交換,而引入Pointwise卷積可以保留關鍵信息、剔除冗余信息,這極大地降低了計算開銷。
這里假設CNN模型將物體DF*DF*M切割成N個DK*DK*M的大卷積核,DW再將每個大卷積核轉化為M個DK*DK*1的小卷積核,令DK*DK*1的張量為DN*DN,通過常規(guī)卷積CS和DWS卷積出來的計算開銷分別為:
由上述結果可知,DWS卷積通過Depthwise和Pointwise兩種卷積結合作用的方式,能在保留各通道信息的同時,降低計算開銷。
3.2針對提高CNN分辨率的優(yōu)化
螢火蟲算法[6]是復雜性的啟發(fā)式優(yōu)化算法,通過螢火蟲種群的迭代尋優(yōu)機制,搜索最佳的目標值,使其更逼近于最優(yōu)解,既可進行單純算法的獨立使用,亦可與其他算法混合使用,常見的有離散螢火蟲算法、混合算法、Memetic算法等。因此,它的應用領域非常廣泛。本文通過利用螢火蟲算法對CNN算法進行改進,可優(yōu)化CNN因易陷入局部優(yōu)解而造成整體識別精度較低的缺點。具體的優(yōu)化步驟如下所示:
初步設置螢火蟲種群的各參數:螢火蟲種群大小N、種群最大可迭代次數M等;
初步設置卷積神經網絡的各參數:權值、閾值、隱含層個數等;
由CNN的誤差RMSE計算螢火蟲個體的絕對發(fā)光強度,并將發(fā)光強度進行排序,構造個體間的相對吸引度函數[7];
判斷螢火蟲個體是否移動,若移動,則根據上述函數更新個體間相對位置。其中,每次群體位置更新后,最亮的螢火蟲位置為;
若迭代次數達到最大迭代次數M,則停止迭代。否則,繼續(xù)循環(huán)迭代;
將迭代后的最優(yōu)螢火蟲個體代入到CNN中計算結果并進行排序,并將最大亮度的螢火蟲個體的權值和閾值代入網絡進行訓練[8]。
通過以上優(yōu)化過程,可顯著提高CNN技術在食物識別中的分辨率,提高計算性能。
4.基于優(yōu)化CNN技術的移動端食物識別系統(tǒng)
優(yōu)化CNN技術以達到適應食物識別系統(tǒng)在移動設備中低存儲量、高分辨率的目標。針對以上兩點進行優(yōu)化,首先進行技術的計算量改進,通過改良模型的卷積方式來降低整體的計算次數來達到效果,這是針對算法的內部優(yōu)化;其次進行算法的混合使用,善用優(yōu)化算法改善網絡本身計算缺陷,這是針對算法的外部優(yōu)化。兩種優(yōu)化方式互不干擾,共同優(yōu)化整個神經網絡結構。移動端食物識別系統(tǒng)的整體設計理念如下圖所示:
5.結論
通過以上對移動端食物識別系統(tǒng)的詳細設計,本文的研究內容可概括為以下三點:
傳統(tǒng)的機器學習圖像識別有其存在的研究意義與參考價值,是未來研究方向的鋪墊與借鑒的里程碑;
CNN本身強大的識別優(yōu)勢和可混合性使其在食物識別有著巨大的應用前景;
CNN智能技術與傳統(tǒng)識別技術不是對立的,而是基礎與擴展的統(tǒng)一關系,兩者各有特點,而技術替代并非一朝一夕,更需要大量的嘗試與訓練。
本文驗證了引入CNN技術設計食物識別系統(tǒng)的方案是可行的,并且對其進行針對性改進與優(yōu)化,使其良性地適用于移動設備也是可行的。但從理論應用到完全技術實現,需要不斷地改進與優(yōu)化,探究CNN的無限創(chuàng)造性和包容性,打造更為適用的移動端食物識別系統(tǒng)。
參考文獻:
[1]汪聰. 基于機器視覺的菜品智能識別技術研究[D].華南理工大學,2019.
[2]張家怡.圖像識別的技術現狀和發(fā)展趨勢[J].電腦知識與技術,2010,6(21):6045-6046.
[3]楊迪. 基于隨機森林和SVM的食物圖像識別的研究[D].安徽理工大學,2017.
[4]楊洪臣,郝韻.卷積神經網絡的人臉超分辨率重建算法[J].中國刑警學院學報,2020(05):104-109.
[5]鞠聰,李濤.基于深度可分離卷積結構的人臉表情識別研究[J].電腦與電信,2020(06):1-5.
[6]紀子龍,冀俊忠,劉金鐸,楊翠翠.基于螢火蟲算法的腦效應連接網絡學習方法[J].哈爾濱工業(yè)大學學報,2019,51(05):76-84.
[7] LOKESH J,RAHUL K.Discover opinion leader in online social network using firely algorithm [J]. Expert Syst Appl,2019,122:1-15.
[8]孫永盛,劉鎮(zhèn).螢火蟲算法優(yōu)化的卷積網絡在圖像顯著性檢測中的應用[J].計算機與數字工程,2020,48(06):1474-1478.
基金項目:本文屬2019年國家級大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目:“基于CNN的移動端食物識別系統(tǒng)設計”(編號:201910378329)研究成果。
作者簡介:王永奇(1999-)男,漢族,安徽淮南人,單位:安徽財經大學管理科學與工程學院,2017級本科生,計算機科學與技術專業(yè)。