謝正璽 盧欣 李建行
摘要:本文開發(fā)了一款名為“環(huán)保圾分”的垃圾分類App,該系統(tǒng)包含常規(guī)的文字查詢、語音查詢和圖像查詢三種工作形式,其特色之處在于其圖像查詢功能運用了目前先進的深度學習理論和技術,將神經網絡模型運用到垃圾分類圖片的識別上,大大提高了圖像識別和分類的準確程度,彌補了目前垃圾識別App市場的不足,具有較高的社會價值。
關鍵詞:App;垃圾分類;神經網絡;深度學習
引言
繼上海垃圾分類新政實施后,隨著全國各地加速推行垃圾分類制度,垃圾分類APP、小程序等如雨后春筍般迅速出現[1]。然而這一市場充斥著不少粗制濫造,甚至收集個人信息的涉嫌的作品。僅僅2019年7月份,蘋果商城上架的垃圾分類App,就從十幾款上漲到近50款。
目前常規(guī)的垃圾分類軟件以文字查詢、語音查詢、圖片查詢?yōu)橹?。其中文字和語音檢索功能主要依靠檢索其垃圾分類數據庫。圖片識別垃圾的功能則更為實用,由用戶拍攝垃圾圖片,APP根據圖片識別功能判斷垃圾類別并告知用戶。但現有APP的主要問題是軟件的圖像識別準確度不高,由此影響了對垃圾的分類效果。
1 項目研究的主要內容
本項目“環(huán)?;帧盇PP為2020年湖北省大學生創(chuàng)新創(chuàng)業(yè)的訓練項目,旨在響應國家垃圾分類新政,幫助普通市民在生活中做到垃圾正確分類,實現資源順利回收。在功能方面,本項目仍然提供文字查詢、語音查詢、圖片查詢這三類垃圾檢索方式,但開發(fā)的重點在于提高圖片識別的準確性上。即以深度學習的理論和技術為基礎,將神經網絡模型運用到垃圾分類圖片的識別上,從而更好地達到垃圾分類的要求。
本設計的垃圾分類APP將以Android studio作為開發(fā)平臺,以Java作為開發(fā)語言,搭配內嵌的SQLite數據庫, Flask作為后臺服務器。從用戶角度,本系統(tǒng)圖像識別垃圾分類功能需求如下:
(1)可讀取本地相冊中存儲的圖片;
(2)可讀取相機拍照圖片;
(3)根據圖片判斷垃圾類別和預測概率;
(4)將分類結果顯示給用戶。
2 系統(tǒng)設計與實現
2.1 客戶端設計
(1)輪播圖:頁面中上部是一個輪播圖,以圖片形式展示最新的熱點信息。點擊不同的輪播圖頁面可以打開一個本地頁面。
(2)文字識別:點擊“文字識別”按鈕搜索框進入搜索頁面,手動輸入垃圾名稱進行搜索,下方將出現含有該物品或者含有該物品關鍵詞的所有物品信息,極其對應的垃圾分類結果。
(3)語音識別:點擊“語音識別”按鈕,出現麥克風圖標后用戶說出想要搜索的物品名稱,語音識別成文字后,按照文字識別方式下方出現垃圾分類結果。
(4)圖片識別:點擊“圖片識別”按鈕,會出現圖片識別的三種選項,分別是“網絡圖片”、“相冊圖片”、“拍照圖片”,方便用戶從不同來源獲得照片,進行識別。其中網絡圖片選項,要求用戶輸入圖片的準確地址;相冊圖片選項,使用戶可以從手機的本地相冊中選擇照片;拍照圖片選項,使用戶調用手機的相機功能,拍攝現場照片。系統(tǒng)對所獲得的圖片進行識別,判斷圖片中物體的類別。
(5)熱點新聞推送:爬取并轉發(fā)主流新聞網站上有關垃圾分類的新聞和發(fā)帖。
2.2 圖像垃圾識別模塊設計
根據對系統(tǒng)的主要功能和需求的分析可知,服務器端兼具了模型和web服務兩個任務。管理員在本地收集分類所需的圖片數據,將數據分為訓練集和驗證集。將搭建模型的需要的訓練集數據直接輸入到所搭建的模型中,保存訓練好的模型參數在指定的本地文件夾中。手機端收集到圖片數據,將訓練好的參數加載到神經網絡中,調用系統(tǒng)的分類模型來直接輸出結果。而手機端主要用于收集圖片和顯示結果。據此將系統(tǒng)結構設計如下:
(1)用戶界面層。是系統(tǒng)和用戶之間交互的平臺,包括了上傳圖片和結果展示兩個功能。
(2)數據處理層。實現圖片數據讀取和將圖片數據送入加載好的分類模型來實現分類。
(3)數據準備層。用于讀取圖片并將其轉換為標準數據形式,和存儲已經訓練好的模型的參數。
系統(tǒng)具體流程如下:
(1)數據預處理
在圖像分類訓練和評估的過程中,原始圖片的長度和高度不一致,而對神經網絡的模型來說,需要固定規(guī)格的數據。因此,當圖片數據被讀取后,需要調用數據處理的方法才能讓圖片進行模型的訓練或評估;用戶在傳入圖片到后臺時,也需要經過數據處理才能調用模型進行分析。系統(tǒng)使用的是深度學習框架PyTorch中 transforms 模塊進行數據處理。
(2)模型的訓練
使用PyTorch深度學習框架搭建了圖像分類模型,進行模型的參數設置和初始化。
在分類模型搭建好之后,定義模型的訓練和評估。在訓練數據較少的情況下,使用了在圖像方面正確率較高的開源的卷積神經網絡ResNeXt-101結構作為圖像分類的預訓練模型。首先定義好損失函數、優(yōu)化函數。輸入所調用的預訓練網絡模型名稱,給定學習率的值,指定優(yōu)化器算法和迭代次數來進行模型的訓練。
(3)模型的評估
模型的評估與模型的訓練大致相同。不同的是評估模型時,需要加載驗證集數據,調用model.eval( )方法,沒有反向傳播和參數更新的操作。驗證集數據進入模型后得到預測分類結果。根據結果得到損失函數,可以計算模型的正確率。
3 結語
實施垃圾分類處理引導人們形成綠色生活方式,可以有效改善城鄉(xiāng)環(huán)境,促進資源回收利用。[2]設計一個便捷、高效的垃圾分類App,能提高民眾對垃圾進行分類的意識和效率,符合國家智能化的發(fā)展需求以及建設綠色生態(tài)的發(fā)展理念。[3]
參考文獻:
[1] 高文超,王子聰,劉昊天.垃圾分類助手APP的設計與實現[J].信息與電腦(理論版),2020,32(19):58-61.
[2] 楊會玲,葉利華,劉小晶. 智能垃圾分類系統(tǒng)的研究設計 [J]. 電腦知識與技術,2020,16(04):261-264.
[3] 王華,李健,張佳禾. 基于 Android 的智能垃圾識別 App 的設計與實現[J].信息記錄材料,2020,21(9):211-212.
本項目為2020年湖北省大學生創(chuàng)新創(chuàng)業(yè)訓練項目【項目編號:S202013239002】,指導老師:楊玉蓓。
作者簡介:謝正璽、盧欣、李建行,武漢工程大學郵電與信息工程學院2018級計算機科學與技術專業(yè)在校生,本項目成員。