柳攀 丁懷寶
摘要:垃圾分類是對垃圾收集處置傳統(tǒng)方式的改革,是對垃圾進行有效處置的一種科學管理方法。本文以谷歌TensorFlow為框架,設計了一款能夠進行垃圾分類正確識別的軟件。文中對垃圾分類軟件的設計及實現過程進行了簡要介紹,重點是對其中的神經網絡訓練系統(tǒng)的設計、選擇等進行了詳細說明。該軟件在大量測試數據的驗證下,證明了其具有較高識別準確率,具有良好的市場應用前景,同時也可為同類研究提供了一定的借鑒和參考。
關鍵詞:垃圾分類;TensorFlow;神經網絡訓練
1 引言
2019年9月,為深入貫徹落實習近平總書記關于垃圾分類工作的重要指示精神,國家機關事務管理局印發(fā)通知,公布了《公共機構生活垃圾分類工作評價參考標準》。由于人們對垃圾分類意識的薄弱以及受到知識的限制,這項工作并沒能夠很好的完成?;诖?,本研究的設計思想是完成一個具有普適性的部署在安卓客戶端的能夠自動識別垃圾種類的應用程序,以便人們能夠更方便的進行日常的垃圾分類。
2 設計概述
2.1 處理流程設計
如圖1所示,按照MVC架構,軟件大致分為三層:Model層為核心層,主要是通過TensorFlow Lite接口實現軟件的模型推理部分;View層是視圖顯示部分,為軟件的UI層,主要呈現分析結果,參數設置等;Controller層為控制層,主要實現對本地相機的調用并得到實時數據流,傳回Model層進行模型推理。
軟件處理流程設計如下:啟動程序后,系統(tǒng)將詢問是否開啟攝像頭權限,若拒絕退出程序,同意則進入程序;進入程序后,調用攝像頭進行拍攝,將拍攝的圖片經過簡單分析計算,得到適合TensorFlow Lite識別的數據格式,轉而交給推理模塊進行深度計算;在計算之前,用戶可以選定一些參數來控制計算的導向,最終將分析結果在顯示模塊中顯示出來;點擊關閉則退出程序,否則進入下一個物體的識別,具體見圖2所示。
2.2 神經網絡訓練系統(tǒng)的設計
該系統(tǒng)是軟件中最重要的部分,能夠為軟件提供準確的神經網絡模型,以便軟件能正確分析出垃圾的類別,其主要包含數據集獲取、模型訓練和模型遷移三個部分。
2.2.1數據集獲取
本研究主要是針對生活垃圾進行分類,但由于生活垃圾的范圍過于龐大,因此數據集的獲取就通過Python語言從網絡上大量爬取樣例,預分類后對每一張數據集進行人工標注,見圖3所示。雖然人工標注的步驟比較繁瑣,但可以為TensorFlow建立神經網絡模型提供更精準的識別條件,從而提高軟件識別的準確率。
2.2.2模型訓練
該部分又分為四個小功能,分別是數據預處理、導入數據集、產生初步模型、模型訓練與優(yōu)化。
(1)數據預處理
數據預處理包含數據增強處理、數據標準化處理和數據歸一化處理。
數據增強可防止在數據集較少時出現過擬合,主要使用各種函數對圖像進行相關調整,如裁剪、放大、縮小、旋轉等。
數據標準化處理通過標準化公式得出,其公式如式1,在該式中,μ為全體圖像數據的均值,σ為全體圖像數據的方差。
(1);
數據歸一化處理由歸一化公式得出,其公式如式2,在該式中,Xmin是數據最小值,Xmax是數據最大值。
(2)
(2)導入數據集
圖像數據通過TensorFlow.data類載入。將人工標注后的數據集處理轉化為相應CSV數據,然后得到一個數據庫,應用預處理函數可以從中得到可供訓練的數據集。
(3)產生初步模型
該部分設計采用MobileNetV2神經網絡模型實現,相較其他版本的神經網絡模型,其具有速度快、參數少、方便使用等優(yōu)點。
將深度可分離卷積分解為Depthwise Convolution與Pointwise Convolution兩部分,可有效減少參數量。在傳統(tǒng)卷積運算中,總運算量為一個卷積核與一張?zhí)卣鲌D的按位相乘再相加,即DF*DF*DK*DK*M*N,其中DF是特征圖的尺寸,DK是卷積核的尺寸,M是輸入通道數,N是輸出通道數。而在深度可分離卷積中,一個卷積核的總運算量是DK*DK*M*DF*DF+M*N*DF*DF。
對比傳統(tǒng)卷積計算量和深度可分離卷積計算量可得公式見式3,在該式中,由于輸入通道數較大,??珊雎圆挥嫛H羰褂?*3的卷積核,則傳統(tǒng)卷積的運
(3)
(4)模型訓練與優(yōu)化
設計把數據集導入并且分成多個批次,以便內存讀取圖像數據。優(yōu)化器采用Nadam,損失函數選擇交叉熵損失函數,二者均由Keras接口來實現。為防止訓練停在局部最優(yōu)點,將采取余弦退火學習率。這種模式能和學習率相互配合,以一種十分有效的計算方式來產生很好的訓練效果。;;;
2.3模型遷移
該部分用于將上述訓練得到的最優(yōu)模型進行格式轉換,提供給適用該軟件的格式進行分析與顯示。使用TensorFlow Lite converter轉換器將最優(yōu)模型轉換為TensorFlow Lite能夠識別的tflite格式,該格式的模型文件可直接應用于軟件。
3 軟件的實現
視圖模塊主要為軟件的UI設計,由于要顯示的內容只有所拍攝物體和識別結果以及一些參數的設置,因此布局結構并不需要特別復雜。
攝像頭模塊通過Camera2 API調用系統(tǒng)攝像頭權限,同時將拍攝的圖像數據流傳到推理模塊進行推理。系統(tǒng)通過管道連接到攝像頭,并與之建立會話連接,之后通過CaputerRequest和CameraMetadata進行會話。
推理模塊是軟件的重點,對攝像頭拍攝的圖片使用經過訓練后的神經網絡模型進行處理,然后顯示推理結論。模型是已經訓練好的,數據的輸入則是攝像頭拍攝的圖像流。而對模型進行預測還需要用到TensorFlow Lite提供的interpreter庫,它可以實現用訓練模型對拍攝物體的類別進行推理并顯示到視圖模塊。
4 總結
本文介紹的軟件是基于TensorFlow框架實現對模型的訓練以及推理識別過程,能夠比較有效的識別垃圾的種類,降低了垃圾分類工作的難度,具有良好的市場應用前景。
參考文獻
[1]趙方圓,劉洪浩.基于垃圾分類的APP設計研究[J].計算機產品與流通,2020(07):18+55.
[2]葛程,孫國強.基于卷積神經網絡的圖像分類研究[J].軟件導刊,2018,17(10):27-31.
[3]李江昀,趙義凱,薛卓爾,蔡錚,李擎.深度神經網絡模型壓縮綜述[J].工程科學學報,2019,41(10):1229-1239.
[4]林景棟,吳欣怡,柴毅,尹宏鵬.卷積神經網絡結構優(yōu)化綜述[J].自動化學報,2020,46(01):24-37.
[5]陳麗麗,韓潤萍.基于卷積神經網絡的服飾圖像分類[J].北京服裝學院學報(自然科學版),2018,38(04):31-36+58.
基金項目
安徽文達信息工程學院校級科研項目(項目編號:XZR2020A08);安徽文達信息工程學院校級教研項目(No.2019xjy06)。
作者簡介
柳攀(1997年),男,安徽宿州人,安徽文達信息工程學院計算機工程學院軟件工程專業(yè),本科在讀;丁懷寶(1985年),女,安徽懷寧人,安徽文達信息工程學院計算機工程學院,講師,碩士,主要研究方向為軟件工程。