姚偉盛 沈宇帆 彭玉波 沈煒



摘 要: 隨著社交網絡的快速發展,人們通常會上傳、分享和記錄食物圖片,因此食物圖像分類的應用價值也越來越大,對食品推薦、營養搭配、烹飪文化等方面都產生了積極的影響。盡管食物圖像分類有著巨大的應用潛力,但從圖像中識別食物仍然是一項具有挑戰性的任務。為了解決食物的細粒度識別問題,本文提出了一種基于自我監督預處理的食物圖像分類模型,通過自我監督的學習方式更高程度地學習食物圖像特征。該模型在基于密集連接網絡的食物圖像分類模型DenseFood基礎上搭建,采用上下文恢復的自我監督策略,將訓練好的網絡權重用于初始化DenseFood模型,訓練微調完成分類任務。上下文恢復的自我監督策略和密集連接網絡都是專注于圖像特征的提取,同時結合兩者,充分學習食物圖像特征,來達到更好的食物圖像分類精確度。為了進行性能比較,使用VIREO-172數據集對基于自我監督預處理的食物圖像分類模型、未預處理的食物圖像分類模型DenseFood以及基于ImageNet數據集訓練預處理的DenseNet、ResNet這四個模型進行訓練。實驗結果表明,本文提出的食物圖像分類模型優于其他策略。
關鍵詞: 圖像分類; 自監督學習; 卷積神經網絡
文章編號: 2095-2163(2021)03-0009-07 中圖分類號:TP183 文獻標志碼:A
【Abstract】With the rapid development of social networks, people usually upload, share and record food images, so the application value of food image classification is also increasing, which has a positive impact on food recommendation, nutrition collocation, cooking culture and so on. Although food image classification has great application potential, it is still a challenging task to recognize food from images. In order to solve the problem of fine-grained food recognition, this paper proposes a food image classification model based on self supervised preprocessing, which can learn food image features to a higher degree through self supervised learning. The model is based on DenseFood, a food image classification model based on dense connected network. The self-monitoring strategy of context recovery is adopted. The trained network weight is used to initialize DenseFood model, and fine-tuned trained to complete the classification task. The self-monitoring strategy of context recovery and dense connection convolution network are both focused on the extraction of image features. The research combines them to fully learn the food image features to achieve better classification accuracy of food image. In order to compare the performance, VIREO-172 data set is used to train four food image classification models: self supervised preprocessing based food image classification model, non preprocessed food image classification model densefood, and ImageNet data set based training preprocessing DenseNet and ResNet. The experimental results show that the proposed food image classification model is superior to other strategies.
【Key words】 image classification; self supervised learning; convolution neural network
0 引 言
食物是人類生活的必需品,關系到人民群眾的身體健康和生命安全。隨著社交網絡的快速發展,人們通常會記錄、上傳和分享食物圖片,因此食物圖像分類的應用價值也越來越大,對營養搭配、食品推薦、餐飲、社交等方面都產生了積極的影響,受到了廣泛的關注。在營養搭配方面,營養習慣被認為是導致糖尿病和肥胖癥等健康問題的主要原因。因此,食物攝入評估是肥胖管理的一個重要方法[1],可以幫助人們了解和保持良好的飲食習慣,在跟蹤卡路里消耗量的日常健身中進行使用[2]。在食品推薦方面,可以幫助社交媒體平臺為餐館和飲料公司針對其用戶提供食品推薦方案。在餐飲方面,通過客戶提供的圖像樣本幫助餐廳和食堂識別食物,并通過識別托盤中的食物幫助出納自動計費。使用自動計費可以在保證減少錯誤的前提下提高工作效率[3]。在社交方面,可以通過社交媒體與朋友分享食物照片,根據其食物偏好對使用者進行聚類。此外,還可以幫助人們使用圖像搜索食物。
盡管食物圖像分類有著巨大的應用潛力,但從圖像中識別食物仍然是一項具有挑戰性的任務,挑戰來自3個方面:
(1)缺乏用于食物識別的大規模數據集。現有的工作主要集中在利用較小的數據集進行食物識別,如ETH-food-101[4]和Vireo-food-172[5]。例如,Bossard等人[4]發布了一個來自西餐的食物數據集ETH food-101,包含101個食物類別和101 000張圖片。Chen等人[5]介紹了來自172個中國食品類別的Vireo Food-172數據集。這些數據集缺乏食品類別的多樣性和覆蓋面,沒有包括廣泛的食品圖像。因此,可能并不足以構建更復雜的食物識別深度學習模型。
(2)不同種類的食物可能從外觀上看極其相似,但是類間相似性非常高,如圖1所示。由圖1可知,麻婆豆腐和紅燒豆腐從外觀上看基本上無法分辨。雖然已經有許多方法用于解決食物識別問題,但這些方法大多側重于提取特定類型或某些類型的特征,而忽略了其他方面。例如,研究[6]的工作主要是提取顏色特征,而Martinel等人[7]設計了一個用于食物識別的網絡來捕獲特定的垂直結構。
(3)一種特定的食物可能有數千種不同的外觀,但其本質上是相同的食物,如圖2所示。由圖2可知,烤魚以不同形式的外觀表現出來。因為相同食物的配方可以根據位置、食材成分以及最后但并非最不重要的個人口味而有所不同。食物圖像中有細微的辨別細節,在很多情況下很難捕捉到。食物識別屬于細粒度識別,其中有很多細微差別的細節,現有的圖像分類技術還無法很好地獲取并區分圖像細節特征[8]。
由于有監督學習需要大量的手動數據注釋,這一要求耗時耗力,因此無監督學習越來越受到了關注,尤其是在自我監督學習方面。自我監督學習是一種特殊的無監督學習,其目標是監督特征學習,其中監督任務是從數據本身生成的。模型必須充分學習圖像特征,才能有效完成這類監督任務,所以基于自我監督的卷積神經網絡預訓練會產生有用的權重,有助于后續的學習任務[9]。
本文主要研究食物圖像的自我監督,提出了一種基于自我監督預處理的食物圖像分類網絡模型。文中的方法是將上下文恢復作為一項自我監督任務,上下文恢復策略訓練的卷積神經網絡專注于學習有用的語義特征,學習的卷積神經網絡特征對后續分類任務有用[10]。同時由于基于密集連接網絡的食物圖像分類模型DenseFood在食物識別應用中表現出的優異性能[11],研究中選擇其作為后續的分類任務。建立自我監督預處理模型,訓練好的網絡權重初始化DenseFood網絡,訓練微調完成分類任務。通過使用VIREO-172數據集,對基于自我監督預處理的食物圖像分類網絡、無預處理的DenseFood網絡模型以及基于ImageNet數據集訓練預處理的DenseNet、ResNet這四個模型進行評估,實驗結果表明,所提出的基于自我監督預處理的食物圖像分類網絡模型優于其他策略。
1 相關研究
自我監督學習的關鍵挑戰是確定一個合適的自我監督任務,即通過數據生成模型輸入輸出對。Chen等人[10](2019)提出了一種醫學圖像自監督學習策略。具體來說,給定一幅圖像,隨機選擇并交換2個補丁。多次重復此操作會產生一個新的圖像,該圖像的強度分布被保留,但其空間信息被改變,然后通過訓練卷積神經網絡將改變后的圖像恢復到原來的版本。所提出的上下文恢復策略有3個優點:在該任務中訓練的卷積神經網絡專注于學習有用的語義特征;在該任務中學習的卷積神經網絡特征對后續不同類型的任務(包括分類、定位和分割)有用;實現簡單明了。
針對醫學圖像分析中的3個常見問題,即:分類、定位和分割,對該自監督學習策略進行了評估。評估使用了不同類型的醫學圖像:對二維胎兒超聲(US)圖像進行圖像分類;對腹部計算機斷層掃描(CT)圖像進行器官定位;對腦磁共振(MR)圖像進行分割。在這三個任務中,基于上下文恢復策略的預訓練都優于其他的自監督學習策略,也優于沒有自監督訓練的學習策略。
食物圖像分類方面,卷積神經網絡取得了廣泛的成功,其性能優于其他方法。卷積神經網絡有許多不同的架構,如AlexNet[12]、VGG[13]、GoogleNet[14]、ResNet[15]、DenseNet[16]等,其中DenseNet的性能表現優異。密集連接網絡DenseNet在2017年的ImageNet大規模視覺識別大賽(ILSVRC)上表現出出眾的效果。DenseNet專注于圖像特征的提取與復用,加強了圖像特征的傳遞,一定程度上減輕了梯度消失的問題,通過對圖像特征的極致利用達到了更少的參數和更好的效果。Metwalli等人[11](2020)提出了基于DenseNet的食物圖像識別模型DenseFood,使用了softmax損失函數和中心損失函數相結合的方法,該模型從頭開始訓練就達到了81.23%的準確率,僅次于基于大規模ImageNet數據集訓練的ResNet和DenseNet。
基于此,本次研究中針對食物圖像分類,提出了一種基于自我監督預處理的網絡模型,使用基于上下文恢復的自我監督預處理方法,訓練好的權重用于初始化食物分類網絡模型DenseFood,再進一步訓練微調完成分類任務,來達到更好的分類效果。
2 本文方法
研究中基于自我監督預處理的食物圖像分類網絡模型由2部分組成,分別是:基于上下文恢復的自我監督預處理模型和食物圖像分類模型。對此擬展開研究論述如下。
2.1 基于上下文恢復的自我監督預處理模型
基于上下文恢復的自我監督預處理是將原始的圖像進行打亂,再利用卷積網絡將其上下文訓練恢復為原始圖片[10]。打亂的方式是選取圖像中隨機的2個小塊進行交換,迭代多次,保證所有小塊不會出現重疊,防止圖片打亂過于復雜,最終將會生成一個亂序的圖片。亂序算法的偽代碼如圖3所示,其中,x為原圖,取小塊大小為10×10,迭代次數N為10。亂序圖像生成過程如圖4所示。通過上下文恢復的自我監督學習,卷積神經網絡可以更加專注地學習食物圖像的語義特征。如圖5所示,基于上下文恢復的自我監督預處理模型由2部分組成,即:預處理部分和恢復部分。
預處理部分主要由初始化層、密集連接塊和過渡層組成,訓練出的權重用于初始化后續的圖像分類網絡。初始化層由卷積層和匯聚層組成,在將信息輸入密集塊層之前從圖像中提取出大量的信息,特征映射被下采樣以減少參數的數量。密集連接塊由批標準化、激活函數和卷積層組成。如圖6所示,每一層的輸出都作為輸入提供給后續層,因此,第k層接受來自先前所有層的特征映射。將X0,X1,...,Xk-1視為輸入,即:
為了降低特征映射的維數,將網絡結構劃分為4個密集連接塊,密集連接塊之間通過過渡層銜接,過渡層由批處理歸一化、ELU、1×1卷積層和2×2最大池化層組成。池化層使用最大池、而不是平均池來減少特征映射的數量,避免過擬合,以使模型更具通用性。值得一提的是,簡單模型可能無法很好地擬合數據,因此可能會出現欠擬合,而層數較多的模型可能會產生較高的計算成本,通常需要更大的數據集來避免過度擬合,提高精度,并實現可推廣的性能[17]。考慮到本次研究的數據集不夠大,無法訓練一個復雜的模型,因此分別構造了4個6層、12層、24層和16層的密集連接塊,以避免過度擬合和欠[CM(22]擬合。由于密集連接網絡較深,導致圖像恢復效果[CM)]
較差,研究中就選取了前三個密集連接塊作為預處理部分,既加強了圖像特征學習,又保證了圖像恢復效果。恢復部分主要由upSampling上采樣層、過渡層和Min-Max標準化層組成,輸出為圖片。由于恢復部分不會應用于后續的分類工作,所以相對預處理部分較為簡單,upSampling上采樣層采用重采樣和插值方法,過渡層由批處理歸一化、ELU、1×1卷積層組成,Min-Max標準化層將輸出進行標準化,Min-Max標準化公式見如下:
其中,x1,x2,...,xn為輸入序列,對其進行變換得到標準化序列y1,y2,...,yn。由于該模型訓練的數據標簽是圖片,會占用大量內存,導致可訓練的數據集容量較小,因而將網絡輸出的圖片大小以及做比對的原始圖片都縮小為原來的1/4(寬和高各縮小為原來的1/2),來保證可以訓練更大的數據集,提高訓練效率及效果。同時由于恢復部分的網絡權重并不會應用到后續的分類工作中,因此縮小輸出圖片所帶來的像素損失對分類結果的影響較小。
2.2 食物圖像分類模型
將上下文恢復預處理模型中的預處理部分的網絡權重對食物圖像分類網絡進行初始化,再進一步訓練微調。如圖7所示,主要由4部分組成,即初始層、密集連接塊層、過渡層和完全連接層。前面介紹過,為了避免過度擬合和欠擬合,研究中構造了4個6層、12層、24層和16層的密集連接塊,初始層、前三個密集連接塊層、過渡層組成了預處理部分,由預處理模型權重進行初始化。最后一部分包括一個密集連接塊層、過渡層和2個完全連接層,第一個完全連接層使用全局平均池將特征映射展平成一個包含1 024個節點的數組,然后將其作為分類器輸入到第二個完全連接層,該層包含172個神經元,每個神經元代表一個食物類。
2.3 損失函數
對于自我監督預處理模型,文中采用L2損失訓練網絡來完成上下文恢復任務,L2損失可以預估出圖片的恢復程度:
其中,xi和yi分別表示恢復圖和原圖的像素值;L2損失函數又稱為最小平方誤差,把目標值和估計值的平方和最小化。盡管上下文恢復的輸出可能是模糊的,但是L2損失對于特征學習來說是足夠的了。
對于分類網絡模型,考慮到食物圖像具有類間相似性和類內變化,采用softmax損失和中心損失相結合,并使用λ來平衡2個損失函數[18-19],如下所示:
softmax損失可以最大化類間差異[19]:
2.4 圖像預處理
研究中使用的數據集的大小有限,平均每個類641張圖像的172個類只包含110 241個圖像。為了解決這一問題,防止訓練中的過度擬合,通過使用水平翻轉、旋轉、錯切變換、縮放和平移等方法來增加數據,如圖8所示。圖像的大小總是調整為224×224,以適應模型。
3 實驗與結果
3.1 數據集
VIREO-FOOD數據集是一個大型的公共中餐食品數據庫,包含172類的110 241張圖片,如圖9所示,用于訓練卷積神經網絡有不錯的效果。文中將數據集分為2個子集,即:80%用于分類網絡訓練,20%用于分類網絡測試。同時用于訓練的子集部分中,80%作為訓練集,20%作為校驗集。分類網絡的訓練集的40%用于自我監督預處理的訓練,校驗集的30%用于自我監督預處理的校驗。
3.2 實驗平臺
文中使用TensorFlow實現了研究中的分類網絡模型,TensorFlow是由Google開發的一個端到端開放源代碼機器學習平臺,具有靈活和全面的工具、庫和資源生態系統[20]。訓練過程是在Intel CoreTM i7 2.8 GHz CPU、32 GB RAM和一個6 GB的Nvidia GeForce GTX 1060 GPU。訓練以平均52.48張圖像/s的速度進行。
3.3 卷積神經網絡訓練
自我監督預處理模型的訓練初始學習率設置為0.01,分類網絡模型是在預訓練基礎上訓練的,為了避免權重失真,初始學習率改為0.005。此外,在學習速率表中使用余弦衰減來降低學習速率。同時使用中心損失函數和softmax分類交叉熵函數相結合進行分類,其中λ的值設為0.5,以平衡損失函數,因為大多數食品類別的類內變化較小。為了避免過度擬合和提高精度,在訓練期間使用了數據擴充,使用隨機的水平翻轉、旋轉、錯切變換、縮放和平移。由于計算資源有限,批量大小設為16,訓練時長設為40個周期。
3.4 實驗結果
研究中,在VIREO-172數據集上評估了上下文恢復模型以及分類網絡模型,上下文恢復訓練結果如圖10所示,還原圖較為模糊,但對于預訓練分類網絡已經足夠了。緊接著,訓練了無預處理的食物圖像分類網絡模型DenseFood、基于ImageNet數據集預處理的DenseNet121、ResNet50和基于自我監督預處理的食物圖像分類網絡四個模型,提供Top-1和Top-5精度,實驗結果見表1。由表1可以看出,基于自我監督預處理的食物圖像分類網絡的Top-1和Top-5精度分別為84.25%和96.97%,準確率高于其他模型,驗證了本文的網絡模型具有更有效的食物圖像特征學習。在此基礎上,還繪制了這4個模型的損失曲線和精確度曲線,如圖11、圖12所示,文中的模型對損失值做到了更好的最小化,其損失值為0.69。
4 結束語
本文提出了一種基于自我監督預處理的食物圖像分類網絡。研究中構建模型訓練食物圖片的上下文恢復能力來學習圖像特征,將該模型訓練出的網絡權重在分類網絡中進行初始化,再進一步訓練微調,使用密集連接卷積網絡進一步提取和復用圖像特征,充分實現對食物圖片細節上的圖像特征的學習和提取,來提高食物圖像分類的精確度。實驗結果也驗證了本文的論點,文中研發的模型Top-1和Top-5精確度高達84.25%和96.97%,優于其他模型。
參考文獻
[1] HE Hongsheng, KONG Fanyu, TAN Jindong. DietCam: Multiview food recognition using a multikernel SVM[J]. IEEE Journal of Biomedical and Health Informatics, 2015, 20(3):848-855.
[2] PANDEY P, DEEPTHI A, MANDAL B, et al. FoodNet: Recognizing foods using ensemble of Deep Networks[J]. IEEE Signal Processing Letters, 2017, 24(12):1758-1762.
[3] AGUILAR E, REMESEIRO B ,BOLAOS M, et al. Grab, Pay and eat: Semantic food detection for smart restaurants[J]. IEEE Transactions on Multimedia, 2018,20(12):3266-3275.
[4] BOSSARD L, GUILLAUMIN M, GOOL L V. Food-101-Mining discriminative components with Random Forests[C]//European Conference on Computer Vision.Zurich:Springer,2014:446-461.
[5] CHEN Jingjing, NGO C W. Deep-based ingredient recognition for cooking recipe retrieval[C]//Proceedings of the 24th ACM on International Conference on Multimedia (MM'16). New York, NY, United States:ACM,2016: 32-41.
[6] BETTADAPURA V, THOMAZ E, PARNAMI A, et al. Leveraging context to support automated food recognition in restaurants[C]// IEEE Winter Conference on Applications of Computer Vision. Waikoloa, HI, USA:IEEE,2015:580-587.
[7] MARTINEL N, FORESTI G L, MICHELONI C. Wide-slice residual networks for food recognition[C]// IEEE Winter Conference on Applications of Computer Vision.Lake Placid,NY,USA: IEEE Computer Society, 2016: 567-576.
[8] MIN Weiqing, LIU Linhu, WANG Zhiling, et al. ISIA Food-500: A dataset for large-scale food recognition via stacked global-local attention network[C]// Proceedings of the 28th ACM International Conference on Multimedia(MM '20).2020:393-401.
[9] ?GIDARIS S, SINGH P, KOMODAKIS N. Unsupervised representation learning by predicting image rotations[J]. arXiv preprint arXiv:1803.07728,2018.
[10]CHEN L, BENTLEY P, MORI K, et al. Self-supervised learning for medical image analysis using image context restoration[J]. Medical Image Analysis, 2019,58(11):101539.
[11]METWALLI A S, SHEN W, WU C Q. Food image recognition based on densely Connected Convolutional Neural Networks[C]// 2020 International Conference on Artificial Intelligence in Information and Communication (ICAIIC).Fukuoka, Japan:IEEE, 2020:27-32.
[12]KRIZHEVSKY A, SUTSKEVER I, HINTON G. ImageNet classification with Deep Convolutional Neural Networks[C]// Neural Information Processing Systems(NIPS). USA:Morgan Kaufmann Publishers, Inc., United States of America, 2012,141:1097-1105.
[13]SIMONYAN K, ZIEEERMAN A. Very Deep Convolutional Networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.
[14]SZEGEDYC, IOFFE S, VANHOUCKE V, et al. Inception-v4, inceptionresnet and the impact of residual connections on learning[C]// AAAI Conference on Artificial Intelligence (AAAI). San Francisco, California,USA: AAAI, 2017:4278-4284.
[15]SZEGEDY C, LIU W, JIA Y, et al. Going Deeper with Convolutions[C]//Proceedings of The IEEE Conference On Computer Vision and Pattern Recognition, Boston, MA:IEEE, 2015:1-9.
[16]HUANG G, LIU Z, LAURENS V D M, et al. Densely Connected Convolutional Networks[C]// Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition(CVPR 2017). Washington, DC: IEEE Computer Society,2017:2261-2269.
[17]KABKAB M, HANDS E, CHELLAPPA R. On the size of Convolutional Neural Networks and generalization performance[C]// 2016 23rd International Conference on Pattern Recognition (ICPR). Cancun, Mexico:IEEE, 2016:3572-3577.
[18]WANG F, XIANG X, CHENG J, et al. NormFace: L2 hypersphere embedding for face verification[C]//Proceedings of the 2017 ACM on Multimedia Conference. Mountain View, CA, USA:ACM, 2017: 1041-1049.
[19]ZHANG Tong, WANG Rong, DING Jianwei, et al. Face recognition based on densely Connected Convolutional Networks[C]// IEEE Fourth International Conference on Multimedia Big Data(BigMM). Xi'an, China:IEEE Computer Society, 2018:1-6.
[20]Google. Tensorflow[EB/OL]. [2019]. http://tensorflow.google.cn.