邵美芝 王豐碩 楊美華 古文潔



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