張兆屹,李和福,王明紅
(聊城大學物理科學與信息工程學院,聊城 252000)
2020年我國全面建成小康社會,人們對美好生活的向往及物質(zhì)的需求愈發(fā)強烈,導致目前我國生活垃圾產(chǎn)量逐年上漲,使得我國成為世界上垃圾圍城形勢最為嚴峻的國家之一。伴隨著生活垃圾數(shù)量劇增、垃圾分類困難、肆意丟棄污染環(huán)境等一系列問題的出現(xiàn),促使當前全面啟動垃圾分類工作迫在眉睫。
近年來,我國正加速推進垃圾分類工作,在“十四五”規(guī)劃中,生活垃圾分類和處理設(shè)施建設(shè)進入關(guān)鍵時期,垃圾分類工作已經(jīng)成為國家級的戰(zhàn)略目標。規(guī)劃明確到2025年底,46個重點城市基本建成生活垃圾分類處理系統(tǒng)。但目前的解決方案還是以居民主動分類和監(jiān)督員檢查的形式進行,無形之中也給居民及監(jiān)督員增加負擔。同時,相關(guān)法規(guī)的不健全,居民的垃圾分類意識不強,垃圾種類過多難以精確分類等問題,依舊限制著我國現(xiàn)階段垃圾分類的發(fā)展。
隨著計算機硬件水平的不斷提升,大量學者在視覺領(lǐng)域投身相關(guān)研究工作,且在圖像識別方向上獲得豐碩的成果,為垃圾分類工作、圖像識別及嵌入式相結(jié)合提供了可行性,同時基于物聯(lián)網(wǎng)技術(shù)的智能垃圾分類系統(tǒng)也會應(yīng)運而生。
綜上所述,需要尋求一種低成本、高靈敏度、智能化的垃圾分類技術(shù)以改善目前垃圾分類的現(xiàn)狀。
智能垃圾分類系統(tǒng)整體結(jié)構(gòu)采用“分布式”拓撲結(jié)構(gòu),相比于“主從式”與“集中式”的拓撲結(jié)構(gòu),其優(yōu)勢在于各部分相對獨立,可以避免干擾,減輕核心控制器的工作負擔。此外,為滿足日常調(diào)試、檢測方便以及便于硬件與軟件升級迭代等要求,本系統(tǒng)采用“分布式”拓撲結(jié)構(gòu)的智能垃圾分類系統(tǒng)具有開發(fā)簡易、應(yīng)用靈活、使用方便等優(yōu)勢。系統(tǒng)由舵機、顯示屏搭建的終端設(shè)備、主控板及機器視覺識別等三部分組成。終端設(shè)備與主控部分通過串口(USART)或IO口進行數(shù)據(jù)交換并執(zhí)行相應(yīng)操作;主控板與機器視覺識別模塊之間通過串口進行識別分類信息傳達。系統(tǒng)整體設(shè)計框圖如圖1所示。
圖1 系統(tǒng)設(shè)計框圖
主控板硬件由供電電路、WiFi傳輸單元、顯示模塊、控制模塊和微控制器(MCU)組成。主控板采用STM32F103ZET6主控芯片,負責對識別到的垃圾分類標簽進行處理,通過USART通訊協(xié)議將信息發(fā)送至顯示屏并由WiFi模塊上傳至云服務(wù)器。機器視覺識別模塊由OpenMV模塊與攝像頭組成,采用MobileNet v2的CNN分類模型進行識別分類。系統(tǒng)整體硬件框圖如圖2所示。
圖2 系統(tǒng)整體硬件框圖
1.2.1 終端設(shè)備模塊
終端設(shè)備模塊采用淘晶馳串口屏,該屏配有上位機開發(fā)套件,可拖動相應(yīng)控件進行自定義界面及顯示內(nèi)容。MCU僅需通過USART發(fā)送相應(yīng)指令便可完成組件屬性變更,極大地簡化了開發(fā)難度。使用MG90S舵機接入主控板的定時器(TIM)復用引腳,實現(xiàn)垃圾分類精準投遞的目的。為提高識別準確率,采用TCRT5000尋跡模塊與主控板IO口相連檢測投遞情況,避免在無垃圾情況下出現(xiàn)誤識別現(xiàn)象。終端設(shè)備模塊電路圖如圖3所示。
圖3 終端設(shè)備模塊電路
1.2.2 主控模塊
本系統(tǒng)采用STM32F103ZET6作為MCU主控核心。其具有足夠多的通用I/O口、豐富的復用接口功能、良好的數(shù)據(jù)處理能力以及成熟的開發(fā)環(huán)境和開發(fā)資料,滿足本系統(tǒng)對硬件資源的需求。該芯片內(nèi)含3個USART接口,可滿足本系統(tǒng)所需接口的需求。主控板硬件實物如圖4所示。
圖4 主控板硬件實物圖
1.2.3 機器視覺識別模塊
相比于其他處理器架構(gòu),Cortex M7處理器體系較為成熟且便于開發(fā)者應(yīng)用,因此選擇將圖像算法部署到搭載此處理器的嵌入式機器視覺平臺OpenMV上。圖像采集裝置使用帶有OV5640攝像頭模組的OpenMV模塊,搭載STM32H743II主控核心。該模塊主要功能是通過攝像頭采集圖像信息,并送入模塊主控核心內(nèi)搭建的神經(jīng)網(wǎng)絡(luò)模型進行識別。此外,模塊與單片機PA2和PA3相連,通過USART協(xié)議將識別結(jié)果傳送至STM32主控芯片中。OpenMV硬件電路圖如圖5所示。
圖5 OpenMV硬件電路
1.2.4 WiFi模塊
采用帶有AT指令的ESP8266-01S模塊,MCU通過USART發(fā)送AT指令即可實現(xiàn)聯(lián)網(wǎng)上傳等操作。WiFi模塊與STM32主控板PB10和PB11相連,主控板通過發(fā)送AT指令聯(lián)網(wǎng),通過MQTT協(xié)議報文內(nèi)容連接、訂閱服務(wù)器并上傳相關(guān)內(nèi)容。WiFi模塊硬件電路圖如圖6所示。
圖6 WiFi模塊硬件電路
垃圾分類的核心是圖像的處理和識別,本系統(tǒng)采用的深度學習人工智能模型使用Keras深度學習框架,并基于TensorFlow后端運行。由于本文所采用的機器視覺模塊其有限的RAM(1 MB)及flash(2 MB)致使無法運行較大的深度學習模型,為此輕量化模型的選擇至關(guān)重要。
MobileNet v2是谷歌團隊于2018年提出的輕量級神經(jīng)網(wǎng)絡(luò),其相較于MobileNet v1版本,準確率更高,模型更小。表1所示為在ImageNet數(shù)據(jù)集中不同分類網(wǎng)絡(luò)的性能比較。
表1 ImageNet數(shù)據(jù)集中不同分類網(wǎng)絡(luò)性能比較
由表1可知,MobileNet v2網(wǎng)絡(luò)在準確率極小幅度降低的情況下,可大量減少參數(shù)與計算量,并在移動端部署發(fā)揮更優(yōu)秀的綜合性能,因此更適合本文的應(yīng)用場景。MobileNet v2延續(xù)了MobileNet v1的深度可分離卷積的思想代替普通卷積,有效地減少模型的計算量與參數(shù)量。另外,MobileNet v2還提出了倒殘差結(jié)構(gòu)以提高精度等。在進行深度可分離卷積之前,先經(jīng)過1×1的逐點卷積操作將特征圖的通道進行擴張,豐富特征維度,最后再通過1x1卷積進行降維操作,將經(jīng)典的殘差塊順序顛倒,形成倒殘差結(jié)構(gòu)。倒殘差結(jié)構(gòu)如圖7所示。
圖7 MobileNet v2倒殘差結(jié)構(gòu)
本文以三分類為例,將數(shù)據(jù)集分為紙制品、塑料制品及鋁制品,共計3354張圖片,其中65%數(shù)據(jù)作為訓練集,用于訓練神經(jīng)網(wǎng)絡(luò);15%數(shù)據(jù)作為驗證集,用于驗證模型性能和調(diào)整神經(jīng)網(wǎng)絡(luò)參數(shù);20%數(shù)據(jù)作為測試集,用來測試已訓練完成的神經(jīng)網(wǎng)絡(luò)性能。將數(shù)據(jù)集上傳至Edge Impulse平臺,調(diào)整訓練集和驗證集圖像大小為160×160 RGB格式。使用圖像平移、翻轉(zhuǎn)及拉伸等操作完成數(shù)據(jù)集的增強擴充。訓練時,模型參數(shù)設(shè)置如下:epoch為50,學習率為0.001,α為0.75,final layer為16 neurons,dropout為0.1。訓練結(jié)果表明本模型的準確率可以達到93%,如圖8所示,可準確實現(xiàn)可回收垃圾的智能分類。
圖8 訓練結(jié)果
訓練完成后生成網(wǎng)絡(luò)模型,并將其加載到OpenMV機器視覺模塊中。當接收到STM32主控板通過USART通訊協(xié)議發(fā)送的識別信號時,OpenMV將調(diào)用攝像頭進行拍照,并將拍攝圖片載入訓練模型并進行識別,最后將輸出分類結(jié)果標簽值返回給主控板。分類流程如圖9所示。
圖9 分類軟件流程圖
使用顯示屏配備的上位機軟件對界面UI進行設(shè)計,界面如圖10所示。
圖10 界面UI設(shè)計
系統(tǒng)初始化后,當STM32主控板接收到機器視覺發(fā)送的標簽值時,通過USART通訊協(xié)議發(fā)送垃圾顯示控件文本屬性值至顯示屏,顯示屏接收并進行顯示,舵機完成投遞后清空顯示控件文本。軟件流程如圖11所示。
圖11 顯示模塊軟件流程圖
舵機在本平臺負責對垃圾進行精確投遞,對不同種類的垃圾投遞采用不同的PWM波形(即旋轉(zhuǎn)角度),通過控制定時器輸出不同占空比的PWM信號完成。STM32主控板編寫定時器函數(shù)調(diào)節(jié)占空比輸出不同波形的PWM信號,對OpenMV返回不同種類參數(shù)進行對應(yīng)處理。由主控板TIM接口產(chǎn)生PWM信號,與舵機相連,帶動舵機左右旋轉(zhuǎn)實現(xiàn)分類投放功能??刂屏鞒倘鐖D12所示。
圖12 控制軟件流程圖
本設(shè)計使用ESP8266-01S模塊與云端服務(wù)器進行數(shù)據(jù)交互,采用MQTT協(xié)議與服務(wù)器進行連接、訂閱與上傳。STM32主控板與ESP8266-01S經(jīng)過USART通訊協(xié)議,發(fā)送AT指令完成模塊操作,部分MQTT協(xié)議AT指令如表2所示。
表2 部分MQTT協(xié)議AT指令
系統(tǒng)配置IO口,發(fā)送AT指令設(shè)置STA模式并連接到路由器,根據(jù)所建立EMQ服務(wù)器設(shè)置MQTT服務(wù)器用戶屬性并進行連接,連接完成后訂閱所需主題,本文訂閱主題為test。系統(tǒng)完成一次投遞操作后,STM32主控板通過MQTT協(xié)議及AT指令將相關(guān)信息上傳至服務(wù)器。軟件流程圖如圖13所示。
圖13 WiFi模塊軟件流程圖
選取694張圖片(含261張塑料制品、227張紙制品、206張鋁制品)作為測試集檢驗分類準確性。導入模型權(quán)重參數(shù),加載測試集檢驗?zāi)P陀柧毿ЧT趯嶋H測試中,對紙制品和塑料制品的誤檢率最低,分別為8.8%,10.8%;對鋁制品誤檢率最高,為13.2%。平均誤檢率為10.9%,系統(tǒng)設(shè)計符合要求。模型測試結(jié)果如圖14所示。
圖14 模型測試結(jié)果
將模型文件導入OpenMV內(nèi)存中,使用OpenMV IDE上位機軟件編寫識別程序,采用上位機軟件進行仿真實驗,分別對三類垃圾進行識別,均可正確分類。仿真如圖15所示。
圖15 模型仿真測試
將各模塊組裝完成后進行系統(tǒng)性能測試,分別選取紙制品、鋁制品及塑料制品樣品放至回收板,檢測到有物體時發(fā)送識別信號至OpenMV模塊進行識別,返回識別結(jié)果并進行顯示及上傳云端。使用MQTTBox軟件連接EMQ服務(wù)器,訂閱同一主題,用以測試云端數(shù)據(jù)接收,系統(tǒng)測試如圖16所示。
圖16 系統(tǒng)測試
本文提出利用STM32主控板協(xié)同OpenMV機器視覺模塊進行智能垃圾分類的設(shè)計方案。選用MobileNet v2深度學習模型,在模型文件僅占697KB的情況下,模型準確率高達93%,符合本系統(tǒng)的設(shè)計需求。此外,該系統(tǒng)可實時地將識別結(jié)果展示在顯示屏中,并在云端對數(shù)據(jù)進行存儲為后續(xù)分析提供數(shù)據(jù)基礎(chǔ)。受訓練參數(shù)、數(shù)據(jù)集等影響,本模型仍存在部分判斷誤差,后續(xù)工作將對目標識別算法繼續(xù)優(yōu)化,進一步提高分類識別準確性、實時性、高效性。