章 玲, 張 勇, 黃靈鈞
(閩南理工學院, 福建 石獅 362242)
人類每天都會產生許多垃圾,在一些垃圾管理較好的地區,大部分垃圾會得到衛生填埋、焚燒以及堆肥等無害化處理,而更多地方的垃圾則常常被簡易堆放或填埋,導致臭氣蔓延,并且污染土壤和地下水。垃圾分類的目的就是為了將廢棄物分流處理,通過現有的生產制造能力進行回收利用,包括物質利用和能量利用,以減少環境污染。傳統垃圾分類主要由人工進行分揀和分類,勞動強度大、分選效率低。為了提高垃圾分類的效率,保護生態環境,垃圾分揀的自動化勢在必行。
基于深度神經網絡的垃圾分類系統,可以實現垃圾自動分類[1-3]。該系統包括以下模塊:
1)以K210 為主控的圖像識別模塊。
2)最大供電功率為30 W 的太陽能板供電模塊。
3)以STM8 為主控的分揀模塊。
在垃圾分類系統中,圖像識別模塊通過串口與分揀模塊進行通訊,接收到指令的STM8 單片機通過紅外對管檢測,確認垃圾桶未滿。然后,用PWM信號控制由2 個舵機組成的二維分揀云臺,將垃圾倒入指定的垃圾桶。為方便部署,該系統的供電模塊采用太陽能板加電池的模式。為了提高太陽能的利用率,采用MPPT 算法讓太陽能電池板工作在最大功率點。
垃圾分類系統中的圖像識別模塊基于深度神經網絡(DNN)實現垃圾分類,有大量卷積、批歸一化、激活以及池化的數學運算。K210 內部搭載一個KPU(即通用的神經網絡處理器),可以在低功耗情況下實現卷積神經網絡計算,并且可計算加速。因此,該模塊的主控芯片采用K210。
該系統中的垃圾分揀模塊采用STM8S00K3T6C作為主控,垃圾桶主要結構采用亞克力板搭建而成,結構如圖1 所示。分揀云臺動力部分采用180°舵機驅動,控制方式則是通過STM8S00K3T6C 主控發出50 Hz 不同占空比的方波進行控制[4]。

圖1 垃圾分類系統結構
在垃圾分揀模塊中還集成了自動補光電路、降壓電路、垃圾桶防溢出檢測電路以及報警電路,電路結構如圖2 所示。

圖2 垃圾分類系統電路結構
1)在自動補光電路中可分為兩部分,一是LED驅動電路,該電路采用的是S8050 和AMC7135 的方案,AMC7135 為LED 提供一個350 mA 的恒流驅動電源,S8050 則用于放大STM8 的驅動電流。二是光強度傳感器電路,該電路采用光敏電阻實時監測光強度,通過STM8 自帶的硬件ADC 讀取光敏電阻的電壓值,并轉換成光強度,進而在光線暗的時候打開補光燈,協助圖像識別系統完成垃圾的分類。
2)降壓電路則是采用線性穩壓的形式為單片機等元器件提供穩定的工作電壓。
3)垃圾桶防溢出檢測電路采用紅外對管檢測垃圾桶是否已裝滿垃圾,若滿,則停止垃圾分揀。
4)報警電路是由蜂鳴器和垃圾已滿指示燈組成,若紅外對管檢測到垃圾桶已滿,則指示燈亮起,并發出警報。
該系統中的供電模塊使用的是一塊尺寸為600 mm×400 mm、峰值電壓為18 V、峰值電流為1.66 A的單晶太陽能發電板。電池采用的是能量密度大且較為安全的18650 鋰電池,將3 個容量為2 600 mAh、放電倍率為5C 的18650 鋰電池串聯成電池組,較大的電池容量確保了在連續陰雨天氣垃圾分類系統也能依靠電池正常工作。
當然,除了太陽能發電板和蓄能電池,給電池充電還必須由控制器將太陽能板發出的電能轉化成電池能接受的形式。在該垃圾分類系統中,采用的是MPPT 控制器。普通的控制器一般采用的是PWM控制方式,該方式與MPPT 控制器相比,明顯的缺點就是效率較低。原因就在于太陽能發電板在不同溫度下最大功率輸出點的電壓值是不一樣的(如圖3 所示),普通PWM 控制器無法追蹤太陽能發電板的最大功率點,而MPPT 控制器可以。本系統中采用MPPT 控制器的參數為輸入電壓,為20 V,最大恒流電流為3 A,輸出電壓為12.6 V(電池充滿時)。

圖3 光伏電池輸出特性隨溫度的變化曲線
采用MobileNet V1 網絡實現垃圾目標分類,Mo bileNet 網路是一種輕量級網絡,專門為嵌入式設備設計,可以在稍微降低準確度的情況下大大縮減模型的參數量。MobileNet V1 版本將標準卷積替換為深度可分離卷積,能夠有效減少計算量和模型參數。使用深度可分離卷積的MobileNet,相比于使用標準卷積的MobileNet,在ImageNet 數據集上的精度下降了1.1%,但是,模型參數減少了約7 倍,加乘計算量減少了約9 倍。
模型的訓練采用TensorFlow作為訓練框架,流程如圖4 所示。

圖4 基于TensorFlow 框架的模型訓練與部署
訓練集使用了總共1 600 張照片,分為有害、可回收、廚余和其他垃圾四大類,每類各準備2 個垃圾樣品,每個樣品200 張照片。本地訓練環境使用了顯卡進行加速,大大提升了模型訓練速度。由于Tensor-Flow 框架訓練得到的模型是.h5 或.tflite 格式,而K210 中的KPU 只認.kmodel 格式的模型,因此,必須將模型轉化為.kmodel 格式的模型。這里可以用NNCase 工具來完成模型的轉化。
通訊部分采用的是串口通訊,通訊格式為頭幀+垃圾類別+垃圾編號+結束幀。其中,垃圾編號由4字節組成,可存入大量生活中的垃圾。校驗方式采用的是奇校驗,能夠有效避免數據傳輸出現錯誤。
垃圾分類模塊程序部分采用C 語言編寫,主要實現了垃圾桶是否裝滿檢測、光照條件是否滿足圖像識別、舵機云臺驅動以及報警驅動等功能,程序框架如圖5 所示。

圖5 垃圾分揀模塊程序框架
垃圾分類模型的訓練以MobileNet 0.75 為主干網絡,訓練參數如下:訓練次數為100、批量大小為32、學習率為0.001。
從圖6 中可以看出,當所有訓練集都訓練過200次后,模型精度可以接近100%。為了探究實際效果,我們將該模型部署于K210 上,并進行了100 次分類識別測試,最終的測試結果僅有3 次識別錯誤。由于采用了輕量級網絡MobileNet,分類速度大大加快。

圖6 模型訓練過程
近年來,隨著科技水平的不斷發展,人們的生活水平不斷提高,物質需求得到很好的滿足,同時,生活垃圾的產生量也在不斷增長,生態環境污染不斷加重,成為制約我國新型城鎮化發展的重要因素[5-6]。妥善有效地處置生活垃圾可有效提升環境承載力,促進資源回收利用,為人民群眾營造干凈整潔的宜居環境,從而加快提高我國新型城鎮化發展質量和生態文明建設水平。
深度學習是近十年來人工智能領域取得的重要突破。它在語音識別、自然語言處理、計算機視覺、圖像與視頻分析和多媒體等諸多領域的應用取得了巨大成功?,F有的深度學習模型屬于神經網絡。神經網絡的起源可追溯到20 世紀40 年代,曾經在20 世紀八九十年代流行。神經網絡試圖通過模擬大腦認知的機理解決各種機器學習問題。1986 年,魯梅爾哈特(Rumelhart)、欣頓(Hinton)和威廉姆斯(Williams)在《自然》雜志發表了著名的反向傳播算法用于訓練神經網絡,該算法直到今天仍被廣泛應用。如今深度學習算法已經發展成熟,為此本文對基于深度學習算法的垃圾分類系統的整體設計進行了說明,介紹了具體可行的軟硬件方案,并通過實驗測試驗證系統的穩定性和準確性。