段枕貞 吳珺泓 朱雅薇 鄧清佩



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