段枕貞 吳珺泓 朱雅薇 鄧清佩
摘? 要:菜單圖像分割是進行菜單識別的首要步驟,分割的準確性會影響菜單識別的效果。該文對線下餐飲店菜單識別不準確問題進行研究,利用深度學習的卷積神經(jīng)網(wǎng)絡技術(shù)對餐飲店菜單進行識別。首先利用數(shù)字圖像處理技術(shù)對拍照菜單圖片進行預處理,其次通過卷積神經(jīng)網(wǎng)絡技術(shù)預處理后的圖像進行識別。實現(xiàn)準確反饋給店家顧客具體的點餐信息,以實現(xiàn)服務人員直接上傳點餐照片,便可以直接在本店系統(tǒng)上完成點餐的功能,提高了識別的準確性。
關(guān)鍵詞:深度學習;卷積神經(jīng)網(wǎng)絡;數(shù)字圖像處理技術(shù);菜單識別
Abstract:Menu image segmentation is the first step of menu recognition,and the accuracy of segmentation will affect the effect of menu recognition. This article studies the problem of inaccurate menu recognition in offline restaurants,and deep learning convolutional neural network technology was used to identify menu in restaurants. Firstly,digital image processing technology is used to preprocess the photo menu image,and then the pre-processed image is identified by convolutional neural network technology. Realizing accurate feedback to the store customersspecific order information,so that the service staff can directly upload the order photos,and then the ordering function can be completed directly on the store system,which improves the accuracy of recognition.
Keywords:deep learning;convolutional neural network;digital image processing technology;menu recognition
0? 引? 言
近年來,我國餐飲行業(yè)飛速發(fā)展,隨著人民生活水平的提升,餐飲行業(yè)市場需求不斷擴大。同時,餐飲行業(yè)的從業(yè)門檻相對較低,是大眾創(chuàng)業(yè)的首選之一。其中,傳統(tǒng)中小型餐飲店具有分布廣、受眾大、數(shù)量多等特點。該類餐飲店普遍采取的服務經(jīng)營模式為現(xiàn)場服務人員通過紙質(zhì)菜單或肉眼人腦記憶顧客需要的菜品和消費金額,存在人力物力投入較大、耗時長且出錯率高的問題。
傳統(tǒng)的工作方式已經(jīng)不能適應高速發(fā)展的經(jīng)濟,需要將工作方式與人工智能相結(jié)合,進一步減少投入的人力物力,以更低的成本創(chuàng)造更高的利潤。本項目基于人工智能技術(shù),應用目標檢測方法改善傳統(tǒng)餐飲企業(yè)需要人工統(tǒng)計點餐信息、結(jié)算金額的低效運營方式。
本項目應用于成都理工大學周圍的餐飲行業(yè),該餐飲行業(yè)以成都碼頭故事餐飲管理有限公司為代表,使用紙質(zhì)菜單為顧客點單,進而實現(xiàn)顧客點餐的記錄。但是由于使用紙質(zhì)菜單記錄需要大量人力物力,甚至還會出現(xiàn)“上錯菜”和紙質(zhì)菜單丟失的情況,導致顧客用餐不愉快現(xiàn)象產(chǎn)生,造成餐飲店顧客流失。作者基于上述現(xiàn)狀進行研究,旨在減少該類餐飲店人力物力的消耗,讓顧客用餐更加愉快。
1? 基于深度學習的卷積神經(jīng)網(wǎng)絡模型
近年來,對于深度學習的研究在人工智能領域逐漸變得火熱,尤其是在學術(shù)界和工業(yè)界的推廣應用[1]。卷積神經(jīng)網(wǎng)絡是深度學習中使用較為廣泛的一種神經(jīng)網(wǎng)絡[2],它是一類包含卷積計算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡[3],具有較強的學習能力,被廣泛用于數(shù)字圖像處理、計算機視覺[4]、自然語言處理[5]等領域。隨著深度學習理論的不斷加強,TensorFlow和NumPy等矩陣運算包運算效率的提升,CPU和GPU的硬件并行運算能力的不斷提升,促進了深度學習算法的效率和速度的不斷提升,深度學習的相關(guān)研究也變得火熱。因此,本文基于卷積神經(jīng)網(wǎng)絡進行研究。
卷積神經(jīng)網(wǎng)絡包括輸入層、卷積層、池化層、全連接層和輸出層。一般情況下,卷積神經(jīng)網(wǎng)絡在一個卷積層后面會有一個池化層,然后將池化層的結(jié)果再一次輸入到卷積層進行卷積,以此類推;當經(jīng)過最后一個池化層之后,一般情況下會有一個全連接層,對圖像的信息進行區(qū)分,并將最后的輸出結(jié)果輸入到輸出層。
本文使用的卷積神經(jīng)網(wǎng)絡是Le-Net5[6],Le-Net5是一種經(jīng)典的手寫數(shù)據(jù)集識別的卷積神經(jīng)網(wǎng)絡模型,通過該神經(jīng)網(wǎng)絡對經(jīng)典的MNIST手寫數(shù)據(jù)集[7]識別的準確率可達到95%以上。由于前期的模型訓練數(shù)據(jù)集比較簡單,具體數(shù)據(jù)集如圖1和圖2所示,圖1作為測試集和訓練集標簽為1的圖像;圖2為測試集和訓練集中標簽為0的圖像;其中測試集中兩種標簽的訓練集圖像共有4 000張,兩種標簽的測試集共有1 000張,數(shù)據(jù)集足夠保證模型的數(shù)據(jù)需求。由于菜單中顧客是否點單的數(shù)據(jù)集和MNIST數(shù)據(jù)集類似,為此,初期嘗試運用該神經(jīng)網(wǎng)絡模型,對其模型的學習率、輸入圖像大小和池化層窗口大小等模型參數(shù)進行修改,并將其運用到菜單的點餐圖像識別中,經(jīng)過測試后,發(fā)現(xiàn)對菜單圖像識別的準確率高達95%,且能夠快速地實現(xiàn)對模型準確的收斂。
本文的菜單識別的卷積神經(jīng)網(wǎng)絡模型是基于Le-Net5模型基礎上進行修改,具體模型結(jié)構(gòu)大致如圖3所示。
Input:讀入需要被處理的圖像信息,具體圖像信息如圖1所示。將其進行預處理后作為該神經(jīng)網(wǎng)絡模型的輸入值。經(jīng)過預處理之后的圖像大小為30像素×30像素的黑白圖像,即為Le-Net5神經(jīng)網(wǎng)絡的輸入矩陣大小。
C1:輸入圖片大小為30像素×30像素,圖片的通道數(shù)為1;卷積核Convolutions1的維度為3×3×1×16,卷積核的大小為3×3,卷積核的通道數(shù)為1,卷積核的個數(shù)為16;stride=[1,1,1,1],表示卷積核在原圖像矩陣每一次左右移動的步長為1,上下移動的步長為1;padding=‘SAME,表示為了保證經(jīng)過卷積處理后圖像矩陣的大小保持不變,使用邊緣全0填充;使用的激活函數(shù)是ReLU函數(shù)。
Max Pool 1層:具體結(jié)構(gòu)示意圖如圖4所示。將C1層的輸出結(jié)果輸入到最大池化層;其中維度為1×2×2×1,維度的batch和channel都為1,表示我們一般不在batch和channel上進行池化操作,池化窗口的大小為2×2;stride=[1,2,2,1],表示池化窗口每一次左右移動的步長為2,上下移動的步長為2。padding=‘SAME,表示為了保證經(jīng)過卷積處理后圖像矩陣的大小保持不變,使用邊緣全0填充。
C2層:將C1層的輸出結(jié)果作為該層的輸入;卷積核維度為3×3×16×32,卷積核的大小為3×3,卷積核的通道數(shù)為16,卷積核的個數(shù)為32;stride=[1,1,1,1],表示卷積核每一次左右移動的步長為1,上下移動的步長為1;padding=‘SAME,表示為了保證經(jīng)過卷積處理后圖像矩陣的大小保持不變,使用邊緣全0填充;使用的激活函數(shù)是ReLU函數(shù);
Max Pool 2層:將C2層的輸出結(jié)果輸入到最大池化層;維度參數(shù)設置同Max Pool 1。
最后兩層F1和F2層為全連接層,將P2層最大池化的結(jié)果進行全連接處理,利用ReLU激活函數(shù)和Dropout損失函數(shù)進行處理,得到最終的預測得分。在其輸出結(jié)果的基礎上使用softmax概率函數(shù),將所有的預測結(jié)果歸一化,使得所有的概率結(jié)果相加值等于1。
模型的基本原理是:隨機選取一張數(shù)據(jù)集里面的圖片,圖片經(jīng)過預處理之后變成了30像素×30像素大小的圖片,且該圖片是黑白圖片,通道數(shù)量為1。通過第一層卷積通道為16,所以原圖像的通道數(shù)量變?yōu)?6。輸出的公式為:
其中,N為輸出圖像的大小,W為輸入圖片的大小,其值為30像素×30像素;F為3像素×3像素卷積核;P為填充的像素,其值為1像素;S為移動的步長,其值為1像素。則輸出圖像大小為30像素×30像素。
輸出的圖片通過最大池化層,使得圖像大小變?yōu)樵瓉淼囊话氪笮?。池化窗口的大小?×2,步長為2×2,所以經(jīng)過卷積處理后的圖像大小變?yōu)樵瓉淼亩种淮笮?。輸出的公式為?/p>
其中,N為輸出圖像的大小,W為輸入圖片的大小,其值為30像素×30像素;K為池化窗口的大小,其值為2像素×2像素卷積核;P為填充的像素,其值為1像素;S為移動的步長,其值為2像素。則輸出圖像大小為15像素×15像素。
2? 實驗調(diào)配與結(jié)果
本實驗在Windows 10操作系統(tǒng)進行,實驗的配置環(huán)境為Python 3.5.0,實驗工具為GTX 1080Ti GPU。
完成初期的傳統(tǒng)餐飲業(yè)市場調(diào)研后,進行人工智能點菜系統(tǒng)的開發(fā)。收集大量顧客點餐的菜單圖像數(shù)據(jù),建立深度學習的目標檢測模型,采用Python語言和TensorFlow框架開發(fā)點菜識別算法程序,并對識別準確度進行不斷調(diào)整,以達到較高的識別準確度。在點菜識別程序識別的準確度達到95%以后,進行線下模型的驗證。通過與少數(shù)幾家商家合作,并向他們提供相應的技術(shù)支持和產(chǎn)品服務,商家向我們反饋的使用情況和數(shù)據(jù)情況、用戶體驗感等一系列問題,在基于該反饋的基礎上進行修改,進而優(yōu)化程序代碼。系統(tǒng)完善后,進行市場的推廣,技術(shù)可通過接口與APP兼容或通過餐飲服務系統(tǒng)進行搭建,可以實現(xiàn)商業(yè)化,同時也為不同類型、不同規(guī)模的餐飲企業(yè)的靈活推廣發(fā)展提供可能。以下介紹具體實現(xiàn)技術(shù)搭建過程。
通過對本地運行環(huán)境的搭建,使用程序命令控制程序的運行,最終對原有數(shù)據(jù)進行訓練和測試,生成最終的針對菜單識別的卷積神經(jīng)網(wǎng)絡模型。對該模型進行封裝打包,將其核心內(nèi)容移植到手機或者平板等帶有攝像頭設備中,保證該模型能夠在該設備中正常運行工作,并將其運用到線下的餐飲店中。圖像識別系統(tǒng)具體流程如圖5所示。
該項目團隊與成都某餐飲公司合作,后者提供數(shù)據(jù)資料、實驗場景等相關(guān)支持。收集大量實地拍攝和餐廳提供的大量產(chǎn)品圖像數(shù)據(jù),并對這些圖像進行標記處理,標記出圖像中各種商品的名稱,對各種商品的各個角度選取不同數(shù)量圖片。以下展示一張菜單圖像識別的效果圖,具體圖像如圖6所示。
通過這些設備在各大餐飲業(yè)的應用,我們從服務器獲得識別數(shù)據(jù),并且獲取商家反饋的結(jié)果,對其數(shù)據(jù)和反饋的結(jié)果進行分析和總結(jié),該識別模型菜單識別正確率能夠達到95%以上,能夠?qū)崿F(xiàn)在不同的餐飲企業(yè)使用。
3? 結(jié)? 論
菜單識別作為目標檢測的一種,屬于計算機視覺這一熱門領域。為了實現(xiàn)菜單圖像能夠準確地識別,本文引入了深度學習中的卷積神經(jīng)網(wǎng)絡模型,提高了菜單圖像的識別準確度。選取了成都碼頭故事餐飲管理有限公司的菜單作為研究對象,進行了進一步地檢測和試驗,得出了以下結(jié)論:
(1)菜單圖像數(shù)據(jù)集簡單,運用數(shù)字圖像處理的圖像增強技術(shù)、圖像去噪技術(shù)、旋轉(zhuǎn)、剪裁、翻轉(zhuǎn)等,對初始數(shù)據(jù)集進行增強,得到訓練所用到的數(shù)據(jù)集,通過這些圖像處理技術(shù),使得不同標簽的數(shù)據(jù)集差異特征明顯。
(2)針對圖像預處理后樣本數(shù)據(jù)集標簽為0的未點單數(shù)據(jù)和標簽為1的已點單數(shù)據(jù)樣本過少的問題,程序通過對數(shù)據(jù)進行旋轉(zhuǎn)和翻轉(zhuǎn)等圖像處理,使得數(shù)據(jù)集可以均勻的增加,訓練的準確度從90%提高到95%。通過這一處理,會使得菜單識別的準確率提高。
(3)采用經(jīng)典的Le-Net5卷積神經(jīng)網(wǎng)絡技術(shù),通過對其結(jié)構(gòu)的參數(shù)進行修改,在初期數(shù)據(jù)集識別的準確度可達99%,且訓練時間只有1 000秒。對于該項目而言,可以得出以下結(jié)論:程序具有魯棒性,能夠避免欠擬合和過擬合現(xiàn)象,可以應用于不同的企業(yè)。
本文的不足之處在于沒有利用其他相似的卷積神經(jīng)網(wǎng)絡進行預測,沒有考慮其他的模型方法是否適用于該領域。下一步的研究工作是使用其他的卷積網(wǎng)絡模型和遷移學習進行評判,并且將其推廣到更多的使用紙質(zhì)菜單的行業(yè)進行使用,以獲得更多的數(shù)據(jù),使得模型在多方面使用具有更強的穩(wěn)定性。
參考文獻:
[1] 劉萬海,靳蔭雷.近十年國內(nèi)教育領域深度學習研究綜述——基于CNKI的文獻計量可視化分析 [J].教育理論與實踐,2020,40(16):54-59.
[2] 李嘉寧,劉楊,胡馨月,等.基于深度學習的無人駕駛視覺識別 [J].工業(yè)技術(shù)創(chuàng)新,2020,7(4):54-57.
[3] 吳志強,王波.基于優(yōu)化前饋神經(jīng)網(wǎng)絡的鐵路建設風險評估 [J].軟件工程,2020,23(10):26-29.
[4] 趙敏清.人工智能領域下計算機視覺發(fā)展與應用 [J].計算機產(chǎn)品與流通,2020(11):57.
[5] 林莉.人工智能時代背景下自然語言處理技術(shù)的發(fā)展 [J].電子世界,2020(22):24-25.
[6] 張睿愷,吳克河.基于優(yōu)化特征集的LeNet-5攻擊檢測模型的態(tài)勢感知技術(shù) [J].計算機應用研究,2020,37(S1):287-289.
[7] 尹曉偉,王真真,孟慶林,等.基于改進的LeNet-5手寫數(shù)字識別研究 [J].信息通信,2019(3):17-18.
作者簡介:段枕貞(2000.11—),男,漢族,江西撫州人,本科在讀,研究方向:數(shù)字媒體技術(shù);吳珺泓(2000.09—),男,漢族,山東青島人,本科在讀,研究方向:軟件工程;朱雅薇(2000.12—),女,漢族,江蘇泰州人,本科在讀,研究方向:數(shù)學與應用數(shù)學;鄧清佩(1999.12—),女,漢族,四川廣漢人,本科在讀,研究方向:應用統(tǒng)計學。