邵美芝 王豐碩 楊美華 古文潔
摘? 要: 在日常生活中,人們常常在種植盆栽中遇到種種麻煩,比如不了解植物目前的生長(zhǎng)狀態(tài),不清楚是否需要澆水等。針對(duì)這些情況,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)多功能智能盆栽養(yǎng)護(hù)系統(tǒng)。該系統(tǒng)利用遷移學(xué)習(xí)技術(shù)進(jìn)行花卉識(shí)別,并通過(guò)多種傳感器和單片機(jī)檢測(cè)和傳輸盆栽的相關(guān)信息,還具有社區(qū)交流、線(xiàn)上商城等功能。
關(guān)鍵詞: 遷移學(xué)習(xí); 單片機(jī); 傳感器; 微信小程序; SpringBoot
中圖分類(lèi)號(hào):TP311.1? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2021)09-46-05
Abstract: In daily life, people often encounter various troubles in potting, such as not knowing the current growth state of plants, and whether watering is needed. In view of these situations, a multi-function intelligent pot cultivation system is designed and implemented. The system uses transfer learning technology to identify flowers, and detects and transmits pot planting information by various sensors and MCU, and it also has the functions of community communication and online shopping mall.
Key words: transfer learning; MCU; sensor; WeChat Mini Program; SpringBoot
0 引言
伴隨著人們對(duì)品質(zhì)生活的追求,盆栽成為了室內(nèi)必不可少的一道風(fēng)景。人們?cè)诜N植盆栽方面的問(wèn)題也接踵而至,如時(shí)間成本、種植知識(shí)盲區(qū)等問(wèn)題亟待解決。為了解決這些問(wèn)題,盆栽養(yǎng)護(hù)智能管家系統(tǒng)采用了基于神經(jīng)網(wǎng)絡(luò)的花卉識(shí)別技術(shù)、多種傳感器以及單片機(jī)技術(shù),來(lái)實(shí)現(xiàn)對(duì)盆栽的智能識(shí)別、實(shí)時(shí)監(jiān)控、提供栽培意見(jiàn)等功能,此外,該系統(tǒng)基于微信小程序以及SpringBooot框架實(shí)現(xiàn)了一個(gè)具有社區(qū)交流、商城購(gòu)買(mǎi)的多功能平臺(tái)。
1 功能需求分析
系統(tǒng)的使用權(quán)限包括普通用戶(hù)、商家和系統(tǒng)管理員三種,針對(duì)不同的用戶(hù)提供了不同的功能服務(wù)。
1.1 普通用戶(hù)模塊
⑴ 用戶(hù)可以通過(guò)AI識(shí)別技術(shù)拍攝生活中的盆栽實(shí)體,然后通過(guò)在線(xiàn)上商城購(gòu)買(mǎi)專(zhuān)門(mén)的傳感器對(duì)盆栽進(jìn)行生長(zhǎng)環(huán)境數(shù)據(jù)的采集,這些數(shù)據(jù)通過(guò)服務(wù)器傳輸?shù)接脩?hù)界面顯示盆栽的現(xiàn)實(shí)狀態(tài),并提供對(duì)應(yīng)的養(yǎng)護(hù)小貼士,每一個(gè)上傳到本系統(tǒng)的盆栽都會(huì)存儲(chǔ)到用戶(hù)的“私人陽(yáng)臺(tái)”中。對(duì)于“陽(yáng)臺(tái)”上的每一個(gè)盆栽,用戶(hù)都能夠記錄對(duì)應(yīng)的盆栽日記,可以用拍照和文字的形式記錄盆栽的生長(zhǎng)歷程。
⑵ 用戶(hù)能在線(xiàn)上商城中查看各類(lèi)盆栽、養(yǎng)護(hù)工具以及相關(guān)書(shū)籍,能選擇商品加入購(gòu)物車(chē)或直接購(gòu)買(mǎi)。用戶(hù)能夠通過(guò)積分等渠道獲得不同商鋪的優(yōu)惠券,在對(duì)應(yīng)商鋪中購(gòu)買(mǎi)相關(guān)商品能享受一定優(yōu)惠。
⑶ 用戶(hù)能夠通過(guò)社區(qū)模塊發(fā)表盆栽養(yǎng)護(hù)相關(guān)的文章,擁有評(píng)論文章,點(diǎn)贊文章的功能。除此之外,用戶(hù)還能在社區(qū)中發(fā)現(xiàn)其他用戶(hù),并能夠通過(guò)查看其他用戶(hù)的頭像瀏覽他人主頁(yè),并且能夠關(guān)注其他用戶(hù),與其他用戶(hù)交流養(yǎng)護(hù)經(jīng)驗(yàn)。
⑷ 用戶(hù)還能查閱植物百科,通過(guò)搜索或者分類(lèi)查閱的形式可以閱讀相關(guān)植物的具體信息,更加有利于增加用戶(hù)對(duì)植物的了解,有助于更好實(shí)現(xiàn)盆栽栽培和養(yǎng)護(hù)。
⑸ 用戶(hù)能夠查閱和修改自己的基本個(gè)人信息,包括修改頭像、昵稱(chēng)、個(gè)性簽名、城市和手機(jī)號(hào)。能夠查看自己的優(yōu)惠券、訂單、已有積分。另外用戶(hù)還能管理自己的收貨地址、發(fā)表的文章和評(píng)論。
1.2 商家模塊
面向商家,每個(gè)入駐商家都能夠建立一家或多家商店,有權(quán)制定本店專(zhuān)屬優(yōu)惠券的數(shù)量和額度,能夠?qū)ι啼佒械纳唐沸畔⑦M(jìn)行維護(hù)和管理,也能夠處理與用戶(hù)的相關(guān)訂單信息。
1.3 管理員模塊
⑴ 管理員能夠查閱有關(guān)用戶(hù)人數(shù),文章數(shù)量以及商品數(shù)量等信息的數(shù)據(jù)統(tǒng)計(jì)情況。
⑵ 管理員有權(quán)管理和審核用戶(hù)發(fā)表的文章和評(píng)論。管理員可以對(duì)植物百科信息庫(kù)進(jìn)行更新和修改,并進(jìn)行數(shù)據(jù)維護(hù)管理。
⑶ 管理員有權(quán)管理所有的商家以及其商鋪日常經(jīng)營(yíng)活動(dòng),維護(hù)商品交易秩序,維護(hù)商家和用戶(hù)雙方的利益。
⑷ 管理員能通過(guò)發(fā)布系統(tǒng)通知的權(quán)限來(lái)通知用戶(hù)相關(guān)信息。
根據(jù)需求分析獲得系統(tǒng)功能模塊分解圖,如圖1所示。
2 系統(tǒng)方案設(shè)計(jì)
前端采用基于MINA框架的微信小程序[1]。后端采用SpringBoot作為架構(gòu)框架,此外,我們使用MySQL為數(shù)據(jù)服務(wù)器,并采用MyBatis為數(shù)據(jù)持久層框架。
2.1 MINA
MINA是一款騰訊開(kāi)發(fā)的框架,是目前IT界最被推崇的MVVM模式框架,它提供了自己的視圖層描述語(yǔ)言WXML和WXSS,以及基于JavaScript的邏輯層框架,在視圖層和邏輯層之間提供了數(shù)據(jù)傳輸和事件系統(tǒng),可以讓開(kāi)發(fā)者更方便的關(guān)注于數(shù)據(jù)和邏輯。
2.2 SpringBoot
SpringBoot[2-3]是由Privotal團(tuán)隊(duì)提供的全新JAVA框架,是一個(gè)輕量級(jí)的框架技術(shù),他能夠以jar包的形式獨(dú)立運(yùn)行,而且可以嵌入Tomcat、Jetty等web容器,簡(jiǎn)化了Spring大量繁雜的配置工作,使得部署更加簡(jiǎn)單,能夠讓開(kāi)發(fā)人員將更多的經(jīng)歷投入到功能實(shí)現(xiàn)方面。
2.3 MySQL
MySQL是當(dāng)今最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,由瑞典MySQL AB公司開(kāi)發(fā),現(xiàn)屬于Oracle公司。它采用SQL語(yǔ)言作為訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)語(yǔ)言。MySQL數(shù)據(jù)庫(kù)具有體積小,速度快,成本低,開(kāi)放源代碼的特點(diǎn),備受中小型軟件應(yīng)用開(kāi)發(fā)商的青睞。
2.4 MyBatis
MyBatis是一個(gè)支持普通SQL查詢(xún),存儲(chǔ)過(guò)程和高級(jí)映射的數(shù)據(jù)持久層框架,它使用簡(jiǎn)單的XML或注解用于配置和原始映射,避免了幾乎所有的JDBC代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集,是一款沒(méi)有任何第三方依賴(lài)的,靈活易學(xué)的數(shù)據(jù)持久層框架。
3 數(shù)據(jù)庫(kù)的設(shè)計(jì)
根據(jù)系統(tǒng)的功能需求分析設(shè)計(jì)該系統(tǒng)的數(shù)據(jù)庫(kù),用Gliffy Diagrams工具繪制出該系統(tǒng)的E-R圖如圖2所示。
4 關(guān)鍵技術(shù)的設(shè)計(jì)和實(shí)現(xiàn)
4.1 花卉圖像識(shí)別技術(shù)
傳統(tǒng)的深度學(xué)習(xí)識(shí)別圖像技術(shù)需要大數(shù)量的數(shù)據(jù)集來(lái)進(jìn)行模型的訓(xùn)練,數(shù)據(jù)集較少時(shí)很容易出現(xiàn)過(guò)擬合現(xiàn)象,而花卉圖像由于種類(lèi)繁多,背景復(fù)雜并且樣本數(shù)量較少的原因,很難采集大規(guī)模的數(shù)據(jù)集完成傳統(tǒng)的深度學(xué)習(xí)模型訓(xùn)練獲得較好的識(shí)別結(jié)果。所以我們采用遷移學(xué)習(xí)技術(shù)利用相關(guān)領(lǐng)域的圖像識(shí)別網(wǎng)絡(luò)模型來(lái)實(shí)現(xiàn)較小規(guī)模數(shù)量的花卉分類(lèi)實(shí)驗(yàn)[4-5]。
首先,我們的花卉數(shù)據(jù)集通過(guò)python網(wǎng)絡(luò)爬蟲(chóng)百度圖片獲取,先對(duì)抓取的數(shù)據(jù)進(jìn)行人工篩選,刪除一些無(wú)關(guān)的數(shù)據(jù),然后對(duì)其進(jìn)行歸一化處理,為避免過(guò)擬合問(wèn)題,我們還要對(duì)圖片進(jìn)行隨機(jī)翻轉(zhuǎn),調(diào)整它的色調(diào),飽和度等數(shù)據(jù)增強(qiáng)操作,最終獲得300種植物一共6萬(wàn)張花卉圖片數(shù)據(jù)。
我們以Tensorflow2為訓(xùn)練工具,采用ImageNet大型圖像數(shù)據(jù)集在谷歌推出的EfficientNet-B7網(wǎng)絡(luò)[6]訓(xùn)練出來(lái)的模型作為預(yù)訓(xùn)練模型。凍結(jié)前面的網(wǎng)絡(luò)層,改變最后三層全連接層以適應(yīng)自己的300分類(lèi)數(shù)據(jù)集,優(yōu)化器和損失函數(shù)分別采用Adam和交叉熵?fù)p失函數(shù)。進(jìn)行多輪模型訓(xùn)練后,最后將訓(xùn)練好的模型保存為pb格式文檔運(yùn)用在應(yīng)用端的圖像識(shí)別功能中。
4.2 ESP8266單片機(jī)及傳感器
傳感器收集到的溫濕度、光強(qiáng)數(shù)據(jù)傳輸?shù)紼SP8266單片機(jī),再通過(guò)mqtt協(xié)議將其發(fā)送到云服務(wù)器,客戶(hù)端通過(guò)訂閱主題可以得到相關(guān)數(shù)據(jù),并對(duì)其進(jìn)行處理。這里使用mqtt協(xié)議是因?yàn)樗容^輕量級(jí),節(jié)約能耗,很適合物聯(lián)網(wǎng)的使用場(chǎng)景[7-8]。
根據(jù)上述定義畫(huà)出傳感器數(shù)據(jù)傳輸?shù)目傮w架構(gòu)圖如圖3所示。
4.2.1 硬件設(shè)備
硬件設(shè)備的組成一共包括一種單片機(jī)和四種傳感器,分別實(shí)現(xiàn)物聯(lián)網(wǎng)連接功能、探測(cè)空氣溫度、空氣濕度、土壤濕度,光度的功能,具體信息如表1所示。
4.2.2 mqtt服務(wù)器配置信息
選用由EMQ X Cloud提供的公共MQTT Broker服務(wù)作為broker接入地址,具體信息如表2所示。
4.2.3 ESP8266單片機(jī)代碼實(shí)現(xiàn)
ESP8266WiFi庫(kù)能夠?qū)SP8266連接到Wi-Fi網(wǎng)絡(luò),PubSubClient 庫(kù)能使ESP8266連接到MQTT服務(wù)器發(fā)布消息及訂閱主題[9]?;跇?lè)鑫提供的SmartConfig以及EspTouch APP實(shí)現(xiàn)自動(dòng)配網(wǎng)連接wifi。通過(guò)MQTT服務(wù)器連接地址和端口,設(shè)置MQTT Broker信息。讀取傳感器數(shù)據(jù)并以json格式上傳至服務(wù)器,存儲(chǔ)到數(shù)據(jù)庫(kù)。
5 實(shí)驗(yàn)結(jié)果或者系統(tǒng)演示
5.1 花卉識(shí)別界面效果
總共訓(xùn)練的花卉數(shù)據(jù)集以溫帶和亞熱帶植物為主一共300種植物,利用遷移學(xué)習(xí)技術(shù),以基于ImageNet數(shù)據(jù)集的EfficientNet-B7模型為預(yù)訓(xùn)練模型訓(xùn)練10輪,最后獲得植物識(shí)別準(zhǔn)確率為81.25%。前端功能界面展示如圖4所示。
通過(guò)照相或相冊(cè)功能獲得的圖片,進(jìn)行模型識(shí)別返回三種準(zhǔn)確率最高的植物信息,以實(shí)現(xiàn)花卉識(shí)別功能。
5.2 獲取傳感器數(shù)據(jù)界面效果
通過(guò)傳感器綁定盆栽,傳輸環(huán)境溫度和濕度,以及植物土壤的濕度值,展示如圖5所示。
5.3 其他部分功能模塊界面效果
社區(qū)交流模塊主頁(yè)、植物百科模塊主頁(yè)以及個(gè)人主頁(yè)的界面展示如圖6所示。
6 結(jié)束語(yǔ)
本文設(shè)計(jì)并實(shí)現(xiàn)了一款基于多種傳感器技術(shù)的智能盆栽養(yǎng)護(hù)系統(tǒng),通過(guò)深度模型的遷移學(xué)習(xí)技術(shù)實(shí)現(xiàn)花卉識(shí)別功能,再通過(guò)ESP8266單片機(jī)和多種傳感器實(shí)現(xiàn)盆栽狀態(tài)的識(shí)別以及植物信息的傳輸。此外還提供給用戶(hù)一個(gè)線(xiàn)上交流互動(dòng)和在線(xiàn)購(gòu)買(mǎi)商品的多功能平臺(tái)。
目前,本系統(tǒng)仍有不足之處,主要在于識(shí)別花卉數(shù)據(jù)較少,只能識(shí)別300種花卉,另外,對(duì)于商家模塊的功能還需要增加,日后有待改進(jìn)。
參考文獻(xiàn)(References):
[1] 倪紅軍.微信小程序案例開(kāi)發(fā)[J].計(jì)算機(jī)教育,2021.2:193
[2] KANJ. Design and implementation of teaching quality?evaluatuin system based on Spring Boot [C].第七屆計(jì)算與信息科學(xué)國(guó)際學(xué)術(shù)會(huì)議,2019.
[3] 熊永平.基于SpringBoot框架應(yīng)用開(kāi)發(fā)技術(shù)的分析與研究[J].電腦知識(shí)與技術(shù),2019.15(36):76-77
[4] 曹曉杰,么嬈,嚴(yán)雨靈.應(yīng)用遷移學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)花卉圖像識(shí)別[J].計(jì)算機(jī)應(yīng)用與軟件,2020.37(8):142-148
[5] 秦敏.基于深度學(xué)習(xí)的花卉圖像分類(lèi)識(shí)別模型研究[D].廣西師范大學(xué),2020.
[6] Tan, Mingxing, and Quoc V. Le. "Efficientnet: Rethinking model scaling for convolutional neural networks." arXiv preprint arXiv:1905.11946,2019.
[7] 丘源,經(jīng)本欽,李精華.基于ESP8266WiFi模塊和MQTT協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點(diǎn)設(shè)計(jì)[J].物聯(lián)網(wǎng)技術(shù),2019.9(6):24-26,29
[8] 董志剛,宋維,周新虹.基于MQTT協(xié)議的智慧校園多傳感器融合監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù)與信息化,2020.11:113-116
[9] 張琥石,林偉龍,楊發(fā)柱,黃向軍,金星伊,陳潔,羅曉春,張盈盈,甘辛.基于ESP8266 WiFi模塊的物聯(lián)網(wǎng)體溫監(jiān)測(cè)系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2020.10(12):32-35