章 玲, 張 勇, 黃靈鈞
(閩南理工學院, 福建 石獅 362242)
人類每天都會產(chǎn)生許多垃圾,在一些垃圾管理較好的地區(qū),大部分垃圾會得到衛(wèi)生填埋、焚燒以及堆肥等無害化處理,而更多地方的垃圾則常常被簡易堆放或填埋,導致臭氣蔓延,并且污染土壤和地下水。垃圾分類的目的就是為了將廢棄物分流處理,通過現(xiàn)有的生產(chǎn)制造能力進行回收利用,包括物質利用和能量利用,以減少環(huán)境污染。傳統(tǒng)垃圾分類主要由人工進行分揀和分類,勞動強度大、分選效率低。為了提高垃圾分類的效率,保護生態(tài)環(huán)境,垃圾分揀的自動化勢在必行。
基于深度神經(jīng)網(wǎng)絡的垃圾分類系統(tǒng),可以實現(xiàn)垃圾自動分類[1-3]。該系統(tǒng)包括以下模塊:
1)以K210 為主控的圖像識別模塊。
2)最大供電功率為30 W 的太陽能板供電模塊。
3)以STM8 為主控的分揀模塊。
在垃圾分類系統(tǒng)中,圖像識別模塊通過串口與分揀模塊進行通訊,接收到指令的STM8 單片機通過紅外對管檢測,確認垃圾桶未滿。然后,用PWM信號控制由2 個舵機組成的二維分揀云臺,將垃圾倒入指定的垃圾桶。為方便部署,該系統(tǒng)的供電模塊采用太陽能板加電池的模式。為了提高太陽能的利用率,采用MPPT 算法讓太陽能電池板工作在最大功率點。
垃圾分類系統(tǒng)中的圖像識別模塊基于深度神經(jīng)網(wǎng)絡(DNN)實現(xiàn)垃圾分類,有大量卷積、批歸一化、激活以及池化的數(shù)學運算。K210 內(nèi)部搭載一個KPU(即通用的神經(jīng)網(wǎng)絡處理器),可以在低功耗情況下實現(xiàn)卷積神經(jīng)網(wǎng)絡計算,并且可計算加速。因此,該模塊的主控芯片采用K210。
該系統(tǒng)中的垃圾分揀模塊采用STM8S00K3T6C作為主控,垃圾桶主要結構采用亞克力板搭建而成,結構如圖1 所示。分揀云臺動力部分采用180°舵機驅動,控制方式則是通過STM8S00K3T6C 主控發(fā)出50 Hz 不同占空比的方波進行控制[4]。
圖1 垃圾分類系統(tǒng)結構
在垃圾分揀模塊中還集成了自動補光電路、降壓電路、垃圾桶防溢出檢測電路以及報警電路,電路結構如圖2 所示。
圖2 垃圾分類系統(tǒng)電路結構
1)在自動補光電路中可分為兩部分,一是LED驅動電路,該電路采用的是S8050 和AMC7135 的方案,AMC7135 為LED 提供一個350 mA 的恒流驅動電源,S8050 則用于放大STM8 的驅動電流。二是光強度傳感器電路,該電路采用光敏電阻實時監(jiān)測光強度,通過STM8 自帶的硬件ADC 讀取光敏電阻的電壓值,并轉換成光強度,進而在光線暗的時候打開補光燈,協(xié)助圖像識別系統(tǒng)完成垃圾的分類。
2)降壓電路則是采用線性穩(wěn)壓的形式為單片機等元器件提供穩(wěn)定的工作電壓。
3)垃圾桶防溢出檢測電路采用紅外對管檢測垃圾桶是否已裝滿垃圾,若滿,則停止垃圾分揀。
4)報警電路是由蜂鳴器和垃圾已滿指示燈組成,若紅外對管檢測到垃圾桶已滿,則指示燈亮起,并發(fā)出警報。
該系統(tǒng)中的供電模塊使用的是一塊尺寸為600 mm×400 mm、峰值電壓為18 V、峰值電流為1.66 A的單晶太陽能發(fā)電板。電池采用的是能量密度大且較為安全的18650 鋰電池,將3 個容量為2 600 mAh、放電倍率為5C 的18650 鋰電池串聯(lián)成電池組,較大的電池容量確保了在連續(xù)陰雨天氣垃圾分類系統(tǒng)也能依靠電池正常工作。
當然,除了太陽能發(fā)電板和蓄能電池,給電池充電還必須由控制器將太陽能板發(fā)出的電能轉化成電池能接受的形式。在該垃圾分類系統(tǒng)中,采用的是MPPT 控制器。普通的控制器一般采用的是PWM控制方式,該方式與MPPT 控制器相比,明顯的缺點就是效率較低。原因就在于太陽能發(fā)電板在不同溫度下最大功率輸出點的電壓值是不一樣的(如圖3 所示),普通PWM 控制器無法追蹤太陽能發(fā)電板的最大功率點,而MPPT 控制器可以。本系統(tǒng)中采用MPPT 控制器的參數(shù)為輸入電壓,為20 V,最大恒流電流為3 A,輸出電壓為12.6 V(電池充滿時)。
圖3 光伏電池輸出特性隨溫度的變化曲線
采用MobileNet V1 網(wǎng)絡實現(xiàn)垃圾目標分類,Mo bileNet 網(wǎng)路是一種輕量級網(wǎng)絡,專門為嵌入式設備設計,可以在稍微降低準確度的情況下大大縮減模型的參數(shù)量。MobileNet V1 版本將標準卷積替換為深度可分離卷積,能夠有效減少計算量和模型參數(shù)。使用深度可分離卷積的MobileNet,相比于使用標準卷積的MobileNet,在ImageNet 數(shù)據(jù)集上的精度下降了1.1%,但是,模型參數(shù)減少了約7 倍,加乘計算量減少了約9 倍。
模型的訓練采用TensorFlow作為訓練框架,流程如圖4 所示。
圖4 基于TensorFlow 框架的模型訓練與部署
訓練集使用了總共1 600 張照片,分為有害、可回收、廚余和其他垃圾四大類,每類各準備2 個垃圾樣品,每個樣品200 張照片。本地訓練環(huán)境使用了顯卡進行加速,大大提升了模型訓練速度。由于Tensor-Flow 框架訓練得到的模型是.h5 或.tflite 格式,而K210 中的KPU 只認.kmodel 格式的模型,因此,必須將模型轉化為.kmodel 格式的模型。這里可以用NNCase 工具來完成模型的轉化。
通訊部分采用的是串口通訊,通訊格式為頭幀+垃圾類別+垃圾編號+結束幀。其中,垃圾編號由4字節(jié)組成,可存入大量生活中的垃圾。校驗方式采用的是奇校驗,能夠有效避免數(shù)據(jù)傳輸出現(xiàn)錯誤。
垃圾分類模塊程序部分采用C 語言編寫,主要實現(xiàn)了垃圾桶是否裝滿檢測、光照條件是否滿足圖像識別、舵機云臺驅動以及報警驅動等功能,程序框架如圖5 所示。
圖5 垃圾分揀模塊程序框架
垃圾分類模型的訓練以MobileNet 0.75 為主干網(wǎng)絡,訓練參數(shù)如下:訓練次數(shù)為100、批量大小為32、學習率為0.001。
從圖6 中可以看出,當所有訓練集都訓練過200次后,模型精度可以接近100%。為了探究實際效果,我們將該模型部署于K210 上,并進行了100 次分類識別測試,最終的測試結果僅有3 次識別錯誤。由于采用了輕量級網(wǎng)絡MobileNet,分類速度大大加快。
圖6 模型訓練過程
近年來,隨著科技水平的不斷發(fā)展,人們的生活水平不斷提高,物質需求得到很好的滿足,同時,生活垃圾的產(chǎn)生量也在不斷增長,生態(tài)環(huán)境污染不斷加重,成為制約我國新型城鎮(zhèn)化發(fā)展的重要因素[5-6]。妥善有效地處置生活垃圾可有效提升環(huán)境承載力,促進資源回收利用,為人民群眾營造干凈整潔的宜居環(huán)境,從而加快提高我國新型城鎮(zhèn)化發(fā)展質量和生態(tài)文明建設水平。
深度學習是近十年來人工智能領域取得的重要突破。它在語音識別、自然語言處理、計算機視覺、圖像與視頻分析和多媒體等諸多領域的應用取得了巨大成功。現(xiàn)有的深度學習模型屬于神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡的起源可追溯到20 世紀40 年代,曾經(jīng)在20 世紀八九十年代流行。神經(jīng)網(wǎng)絡試圖通過模擬大腦認知的機理解決各種機器學習問題。1986 年,魯梅爾哈特(Rumelhart)、欣頓(Hinton)和威廉姆斯(Williams)在《自然》雜志發(fā)表了著名的反向傳播算法用于訓練神經(jīng)網(wǎng)絡,該算法直到今天仍被廣泛應用。如今深度學習算法已經(jīng)發(fā)展成熟,為此本文對基于深度學習算法的垃圾分類系統(tǒng)的整體設計進行了說明,介紹了具體可行的軟硬件方案,并通過實驗測試驗證系統(tǒng)的穩(wěn)定性和準確性。