• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      智能高校健康食堂系統(tǒng)應用設計與實現(xiàn)*

      2022-01-14 07:20:08賈昀峰
      科技創(chuàng)新與應用 2022年2期
      關鍵詞:菜品食堂飲食

      任 捷,賈昀峰,李 萌,溫 馨,吳 淑

      (1.四川大學 軟件學院,四川 成都610207;2.四川大學 文學與新聞學院,四川 成都610207)

      近些年來,我國社會經(jīng)濟的快速發(fā)展,人們生活質(zhì)量不斷提高,膳食營養(yǎng)也越來越受到普遍重視。國內(nèi)外大量科研數(shù)據(jù)顯示,營養(yǎng)膳食能在極大程度上影響一個人的生活狀態(tài)和身體健康。合理膳食是健康的基礎,飲食風險導致疾病幾率在持續(xù)增長,已成為影響人們健康的主要危險因素?!丁敖】抵袊?030”規(guī)劃綱要》提出,要廣泛推廣合理膳食行動,針對一般人群、特定人群和家庭,加強營養(yǎng)和膳食指導[1]。

      高校學生在日常學習和生活中體力和腦力消耗大、身體基礎代謝快,需要保證合理的熱量和營養(yǎng)攝入。作為剛剛脫離父母而步入大學的群體,容易養(yǎng)成不良飲食習慣,危害身體健康。食物的選擇影響著大學生的身體健康,而食物的供應主要來源于高校食堂。目前,尚無以學生群體為受眾的、具有菜品檢測與識別功能的健康食堂系統(tǒng),來幫助學生更容易獲得菜品相關信息,從而更好地改善個性化健康飲食計劃。因此,本文選擇從高校食堂切入進行需求分析,設計實現(xiàn)一個可以識別記錄每日膳食,并分析其熱量營養(yǎng)的微信小程序,可以讓高校學生更方便的記錄并調(diào)整自己的飲食結構,養(yǎng)成良好的飲食習慣。

      本文使用前后端分離、目標檢測、推薦系統(tǒng)等技術,構建一個面向高校學生飲食的食堂健康系統(tǒng)。學生隨時可以查詢食堂菜品信息,也可通過拍照識別的方式對日常飲食攝入進行記錄。此外,系統(tǒng)還根據(jù)綜合數(shù)據(jù)提供菜品熱榜、熱量排行等,讓學生在制定個人飲食計劃上能有更完善的依據(jù),更好地滿足營養(yǎng)需求。

      1 相關知識

      1.1 前后端分離

      前后端分離的連接方式,即將軟件應用的前端與后端分為兩個獨立的模塊分別進行開發(fā)部署,并通過相關的通信技術(如HTTP 協(xié)議)進行交互對接,從而有效提高開發(fā)過程的靈活度和用戶體驗度[2]。

      本文采用基于前后端分離的C/S 架構(微信小程序/服務器)進行應用的開發(fā)。前端使用Vue.js+mpvue 框架構建,以方便工程化地處理頁面交互邏輯,解決常規(guī)前端開發(fā)中數(shù)據(jù)通信與dom 操作等問題。前后端交互上使用微信小程序官方封裝的請求API,能夠有效避免跨域訪問問題的產(chǎn)生,同時也較大程度地提升了接口的可讀性、安全性和可修改性。

      1.2 菜品目標檢測

      目標檢測,即找出圖像中所有感興趣的目標(物體)并確定它們的類別及位置,是目前計算機視覺領域的核心問題之一。常見的深度學習目標檢測算法分為兩大系列:RCNN 系列與YOLO 系列。分別為二階段(two-stage)基于區(qū)域檢測和一階段(one-stage)基于區(qū)域提取的代表性算法。目前,在面向餐飲領域的菜品圖片識別與檢測實現(xiàn)上,通常是基于這兩個系列進行開發(fā)與創(chuàng)新的[3]。

      本文的應用中,系統(tǒng)能夠獲取學生端上傳的菜品圖片,并識別出圖片中所有菜品的類別,隨后反饋相應信息,此處需要用到上述的目標檢測算法。實現(xiàn)過程中,本文使用了Faster RCNN 算法[4]來完成菜品目標檢測功能。Faster RCNN 算法是在最初的RCNN 算法的基礎上,采用自適應尺度池化對整個網(wǎng)絡進行優(yōu)化,從而規(guī)避了RCNN 中冗余的特征提取操作,提高了網(wǎng)絡識別的準確率。同時,使用SoftMax 非線性分類器,以多任務學習的方式同時進行分類和回歸。

      1.3 緩存與消息隊列

      本系統(tǒng)使用了Redis 緩存技術,將數(shù)據(jù)存儲在內(nèi)存中,從而大幅提高了數(shù)據(jù)讀取速度,也會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現(xiàn)了master-slave(主從)同步。從而不僅保證了數(shù)據(jù)讀取的效率,也保證的數(shù)據(jù)存儲的安全性[5]。此外,Redis 還支持豐富的數(shù)據(jù)類型,如string、list、hash 等,預防了多種數(shù)據(jù)類型產(chǎn)生沖突的可能性。

      同時,為防止模塊間高并發(fā)通信,本系統(tǒng)搭建了消息隊列中間件RabbitMQ,避免由于來不及同步處理請求發(fā)生阻塞的情況。通過消息隊列,可以緩解系統(tǒng)的壓力,提高系統(tǒng)的性能。RabbitMQ 具有消息集群等多種機制,支持多種協(xié)議和多種語言,保證系統(tǒng)的高可用性和高可靠性[6]。

      2 架構設計

      2.1 分層架構

      基于微信小程序和前后端分離技術,結合健康管理和菜品識別業(yè)務特點,并充分考慮師生和食堂工作人員的使用需求,本文采用分層思想設計了系統(tǒng)的總體架構,從上到下共分為四個層次:用戶層、業(yè)務層、數(shù)據(jù)庫、運行環(huán)境,具體如圖1 所示。

      圖1 系統(tǒng)架構圖

      用戶層:又稱表示層、界面UI 層,位于分層架構最上層,與用戶直接接觸。本文用戶層是基于微信小程序平臺進行設計開發(fā)的。微信小程序(Miniapp)是一種“觸手可及”的應用,即用戶使用微信掃一掃或者搜一下就可打開應用進行使用,具有很高的易用性和跨平臺性。相較于傳統(tǒng)的APP,它十分適應于高校應用場景[7]。

      業(yè)務層:又稱邏輯層,對具體問題進行邏輯判斷與執(zhí)行操作,是用戶層和數(shù)據(jù)庫層的橋梁,實現(xiàn)兩層之間的數(shù)據(jù)連接與指令傳達。此處劃分為四個子系統(tǒng)——食堂端、學生端、深度學習模塊和安全控制域。

      數(shù)據(jù)庫:即按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的一些倉庫。此處建立兩個關系型數(shù)據(jù)庫MySQL,作為存放主要數(shù)據(jù)信息的主備庫;同時,建立一個非關系型數(shù)據(jù)庫Redis,作為頻繁數(shù)據(jù)的緩存庫。

      運行環(huán)境:即系統(tǒng)所依靠的機器設備、操作系統(tǒng)、虛擬環(huán)境等。此處使用云服務器+Docker 技術進行多容器化部署,同時為保證系統(tǒng)較高可用性,利用Nginx 技術實現(xiàn)負載均衡,對流量進行平均分配。

      2.2 系統(tǒng)部署

      通過系統(tǒng)部署圖可以展現(xiàn)軟件系統(tǒng)中的物理架構,方便進行分級和關系處理。本系統(tǒng)的部署圖如圖2 所示。從后往前看,MySQL 部署在專門的數(shù)據(jù)庫服務器上;菜品目標檢測模塊使用python 實現(xiàn),并使用輕量級Web 框架Flask 配上uWSGI Web 服務器部署在專用的深度學習服務器上;而對于應用中的主要業(yè)務處理模塊與中間件則部署在統(tǒng)一的一臺應用服務器當中;前端依據(jù)具體用戶需求分為多個端提供訪問。

      圖2 系統(tǒng)部署圖

      如因設備成本、訪問量小等問題,需要將業(yè)務處理、深度學習和數(shù)據(jù)庫三大模塊放置在同一臺服務器當中,也直接可通過Docker 鏡像技術進行容器化部署。此方法單機管理,成本可控,比較適合小規(guī)模應用作業(yè),但模塊上具有較高耦合性,因此需要進行適當權衡。

      3 功能設計與實現(xiàn)

      3.1 模塊設計

      本系統(tǒng)在功能需求上劃分成兩個端:學生端、食堂端。

      學生端的前端為微信小程序,包含著例如飲食方案、健康報告、飲食計劃跟蹤、菜品識別、菜品推薦等重要功能內(nèi)容。值得注意的是,當中的“菜品拍照識別”與菜品飲食推薦兩大功能屬于系統(tǒng)架構中(見圖1)的深度學習模塊的功能。而食堂端可以設計成小程序端,也可以是Web 網(wǎng)頁端。在實際應用當中,通常為了滿足食堂管理后臺對食品和菜品信息進行批量化的展示與處理,適合構建成Web 界面;具體系統(tǒng)功能結構如圖3 所示。

      圖3 系統(tǒng)功能結構圖

      3.1.1 學生端

      學生端主要包含的功能介紹如下:

      (1)菜品拍照識別:用戶用餐時可對菜品進行拍照并上傳照片,系統(tǒng)將對照片進行識別分析,然后為用戶返饋本次用餐分析,包括菜品的食材、營養(yǎng)成分、常用調(diào)味品、熱量等信息。同時,用戶可以對識別的結果設置規(guī)格(單位克或份)。通過點擊記錄按鈕,本次識別將作為用戶的飲食統(tǒng)計數(shù)據(jù)并后續(xù)供用戶查看。

      (2)菜品飲食推薦:用戶在發(fā)現(xiàn)頁點擊推薦導航選項,系統(tǒng)通過用戶的飲食方案和使用歷史生成菜品推薦清單并向用戶展示。

      (3)選擇飲食方案:用戶可以在飲食方案處選擇適合自己的飲食方案,系統(tǒng)為用戶計算的每日推薦熱量攝入值和營養(yǎng)比例和分量值將根據(jù)用戶選擇的方案與用戶的身體數(shù)據(jù)得出。

      (4)每日飲食計劃跟蹤:用戶可查看到當日當前的早中晚三餐及加餐的用餐識別記錄,并且根據(jù)用戶的身體數(shù)據(jù)與用戶選擇的飲食方案查看當日的熱量上限、剩余可攝入熱量以及包含三大營養(yǎng)比例數(shù)據(jù)的營養(yǎng)分析等信息。

      (5)查看健康報告:系統(tǒng)根據(jù)用戶的用餐歷史數(shù)據(jù)定期為用戶生成一段時間內(nèi)的飲食報告,飲食報告包含用戶這段時間點過的菜品統(tǒng)計、攝入的營養(yǎng)統(tǒng)計、平均每日攝入的熱量、訪問次數(shù)最多的食堂等。

      (6)查看菜品食堂信息:用戶可以查看菜品和食堂的信息。

      (7)收藏菜品:學生用戶可以對自己中意的菜品進行收藏。

      (8)個人資料管理:用戶可以管理自己身體的基本信息,如年齡、身高、體重、性別等,為飲食推薦提供一定依據(jù)。

      3.1.2 食堂端

      食堂端主要包含的功能如下:

      (1)食堂信息管理:管理員可以新建編輯餐廳的主頁,添加餐廳圖片,餐廳特色信息,主打菜品介紹等。

      (2)菜品信息管理:可以進行菜品的編輯,菜品介紹中包括食材與調(diào)味品種類、展示圖片、烹飪方式、葷素類型等,方便用戶查看;且食堂端可以對菜品進行上架和下架處理操作,上架后也可以對菜品進行編輯處理。

      (3)查看用戶報告:可以對在本食堂使用過小程序的用戶特征進行搜集,并進行分析查看。

      3.2 主要模塊實現(xiàn)

      3.2.1 菜品拍照識別

      對于菜品的拍照識別模塊,大致有兩種可行方案。

      (1)自行算法訓練:自行通過線上或線下方式進行多類別大數(shù)目的菜品圖片數(shù)據(jù)搜集,并進行數(shù)據(jù)篩選、清洗和相應類別標注;然后尋找適合的目標檢測算法訓練模型,例如上文提到的Faster-RCNN 或者YOLO 系列算法;最后將訓練優(yōu)化好的模型部署到服務端,并放出接口以供邏輯層進行調(diào)用。

      (2)調(diào)取服務接口:調(diào)取公共的深度學習API 服務接口(如AI 菜品識別,果蔬識別),來滿足相應功能實現(xiàn)。

      第一種方法易得到更加靈活的模型和更高的場景適應性,例如可自定義標簽(label)以適應具體高校食堂的菜品信息;第二種方法穩(wěn)定的模型和接口能夠在一定程度上保證小程序性能和菜品檢測的準確性,但不具備靈活特點;本文使用的是第一種方案。

      3.2.2 菜品飲食推薦

      學生端共實現(xiàn)了三種推薦方式如下:

      內(nèi)容推薦:小程序首頁,系統(tǒng)將自動根據(jù)用戶的用餐記錄數(shù)據(jù)以及后臺生成的標簽,來生成菜品推薦清單并向用戶展示。本文采用基于內(nèi)容的推薦算法(Content-Based Recommendations,CBR),即根據(jù)用戶的收藏和識別記錄為用戶打上相應標簽,在推薦時計算用戶與菜品標簽的匹配程度,并反饋相似度最近的TopN 的序列以及與其相適應的菜品數(shù)據(jù)[8]。

      位置推薦:小程序“附近”界面,系統(tǒng)會調(diào)用地圖組件獲取用戶當前位置,并根據(jù)距離來推薦最近的TopN 食堂的菜品。

      熱門推薦:小程序“熱門”界面,系統(tǒng)會排序篩選出前TopN 瀏覽量和收藏量的菜品,并向用戶展示。

      3.2.3 生成健康報告

      系統(tǒng)根據(jù)用戶的用餐歷史數(shù)據(jù)定期為用戶生成一段時間內(nèi)的飲食報告,飲食報告包含用戶這段時間點過的菜品統(tǒng)計、攝入的營養(yǎng)統(tǒng)計、平均每日攝入的熱量、訪問次數(shù)最多的食堂等。此處關注的是,如何通過攝入量去計算評估身體健康狀態(tài)。本文借助營養(yǎng)和健身領域的經(jīng)驗,根據(jù)體質(zhì)指數(shù)(BMI)[9]和基礎代謝率(BMR)兩個指標對身體狀況進行衡量。

      BMI:身體質(zhì)量指數(shù)(Body Mass Index),是國際上常用的衡量人體胖瘦程度以及是否健康的一個標準。

      BMR:基礎代謝率(Basal Metabolic Rate),指人體在清醒而又極端安靜的狀態(tài)下,不受肌肉活動、環(huán)境溫度、食物及精神緊張等影響時的能量代謝率。通常使用Harris Benedict 公式進行計算,它是根據(jù)身高、體重、年齡及性別來計算健康人體基礎能量消耗的方法。計算公式如下所示,其中w 為體重(千克),h 為身高(厘米),a 為年齡(歲):

      男性BMR=66.47+13.75×w+5×h-6.775×a

      女性BMR=655.1+9.563×w+1.85×h-4.676×a

      在進行系統(tǒng)測算時,僅需要將公式轉化為對應語言(如java、python)代碼,傳入用戶數(shù)據(jù)進行運算即可得出結果。根據(jù)具體的BMI 和BMR 結果,可以對用戶提出針對性的飲食意見,如少食多餐多運動等。

      4 結束語

      結合高校學生營養(yǎng)膳食需求,本文基于前后端分離、菜品識別、菜品推薦等技術,完整設計并實現(xiàn)一個面向學生飲食健康的高校健康食堂系統(tǒng)小程序。學生可以選擇個性化的飲食方案,通過菜品檢測的方式獲取菜品信息,并記錄每餐的營養(yǎng)攝入量。同時,系統(tǒng)根據(jù)用戶使用歷史,產(chǎn)生對應的菜品推薦結果,生成的健康報告可以讓用戶量化地進行飲食結構的調(diào)整。綜上所述,本應用可方便學生對每日飲食進行識別、記錄與規(guī)劃,有利于其個人對自己的日常飲食獲得一個清晰直觀的統(tǒng)計,并針對其中的問題進行調(diào)整,起到均衡飲食結構,保障學生身心健康,養(yǎng)成良好的飲食習慣的作用,具有較高的應用價值和可擴展空間。

      猜你喜歡
      菜品食堂飲食
      “互助孝老食堂”值得推廣
      春節(jié)飲食有“三要”
      中老年保健(2021年2期)2021-08-22 07:30:48
      飲食如何搭配才健康
      迷惑菜品又來了
      食堂
      幸福食堂值得推廣
      三千食堂
      趣味(語文)(2019年3期)2019-06-12 08:50:16
      何為清淡飲食
      特別健康(2018年4期)2018-07-03 00:38:14
      假蒟葉系列菜品的開發(fā)利用現(xiàn)狀
      健康飲食
      寻甸| 黄浦区| 汉川市| 扬州市| 湟中县| 泌阳县| 津市市| 张家界市| 浪卡子县| 富锦市| 桃园县| 保山市| 双柏县| 新巴尔虎右旗| 靖州| 宜宾县| 玉门市| 邓州市| 溆浦县| 岫岩| 灌南县| 银川市| 锡林浩特市| 射阳县| 沈丘县| 绥宁县| 弋阳县| 中方县| 台州市| 延川县| 新乐市| 大关县| 密云县| 饶阳县| 肃宁县| 务川| 达日县| 台南市| 耒阳市| 弋阳县| 土默特右旗|