王梁 韋春明 陳俊潔
(1.梧州學院電子與信息工程學院,廣西 梧州 543000;2.廣西機器視覺與智能控制重點實驗室,廣西 梧州 543000)
在垃圾總量日益增多的背景下,如何能更好地減少垃圾造成的污染,提高固體廢物的利用率是亟待解決的問題。發(fā)展環(huán)保能源、對垃圾進行分類是經(jīng)常被提及的垃圾處理方法[1]。而在所有垃圾處理方法中,垃圾分類是能有效解決“垃圾圍城”以及提高資源利用率、實現(xiàn)可持續(xù)發(fā)展的方法之一。
目前,我國垃圾分類常用的方法有2 種,一是把垃圾分為可回收垃圾、不可回收垃圾以及有害垃圾3 類,并用不同顏色的垃圾桶對垃圾進行分類;二是由人工對混雜垃圾進行分揀。但這2 種方法的分揀效率低,且需要大量的人工,且采用第一種方法分類后的垃圾依然比較混雜。
為了提高資源的利用率,減少人工分揀的工作量,本研究以STM32 單片機為基礎(chǔ),利用OpenMV對目標物體進行實時識別,設(shè)計出一款基于OpenMV 的垃圾分類小車系統(tǒng),從而實現(xiàn)對垃圾的識別分類。
本研究設(shè)計的小車系統(tǒng)是由STM32主控模塊、2個霍爾編碼器電機、MPU605傳感器、降壓模塊、電機驅(qū)動模塊、電池電壓檢測、藍牙模塊、OLED顯示屏以及12 V鋰電池等元件組成(見圖1 和圖2)。該小車系統(tǒng)主要通過串口與小車進行通信,將小車識別到的垃圾的坐標信息通過串口通信上傳到電腦上。
圖1 系統(tǒng)框架圖
圖2 小車模型圖
該小車系統(tǒng)以STM32F103C8T 芯片為模塊控制核心,STM32103FC8T 的工作頻率可達72 MHz,具有ARM32 位內(nèi)核架構(gòu),方便系統(tǒng)存儲各種程序和數(shù)據(jù)[2-3]。通過制作單片機的最小系統(tǒng)(見圖3)來實現(xiàn)控制[4],該模塊對其他模塊傳輸過來的數(shù)據(jù)進行整合,并對其進行處理,從而對其他模塊進行調(diào)控與控制,執(zhí)行其他模塊發(fā)出的指令,從而實現(xiàn)小車的功能。
圖3 系統(tǒng)單片機最小系統(tǒng)
對二輪平衡小車進行姿態(tài)檢測是小車實現(xiàn)平衡的重要條件。采用MPU6050 六軸姿態(tài)傳感器來采集小車的姿態(tài)信息[5-6],數(shù)字運動處理器(DMP)用于獲取傳感器信息,ADC會將采集到的姿態(tài)模擬信息轉(zhuǎn)化為數(shù)字量,最后讀取相應的寄存器。運用PID算法計算出相應的PWM波,并通過負反饋來驅(qū)動電機轉(zhuǎn)動,從而實現(xiàn)小車平衡[7]。
本研究選擇TB6612FNG 芯片來驅(qū)動電機[8],該芯片擁有2 個通道的電路,且集成度高、驅(qū)動能力強[9],可同時控制2個電機對小車進行調(diào)試和轉(zhuǎn)換,從而實現(xiàn)小車的直行或轉(zhuǎn)彎功能。通過降壓模塊電路來提供電機驅(qū)動所要的12 V 電壓,使用LM2596 降壓芯片和主控板降壓芯片把5 V 電壓降為直流3.3 V電壓,供給芯片使用。
小車系統(tǒng)是通過OpenMV4 H 7 plus的OV5640的攝像頭模組(見圖4)和WiFi擴展板(見圖5)來對垃圾進行識別。攝像頭模組處理器為STM32H743Ⅱ,其主頻率為480 MHz,通過python 語言編寫程序來實現(xiàn)圖像識別和目標跟蹤。本研究通過對OpenMV 攝像頭采集到的數(shù)據(jù)集進行在線訓練,從而實現(xiàn)對垃圾圖像的識別[10]。
圖4 OpenMV攝像頭模組
圖5 WiFi擴展板
OpenMV 模塊的圖像識別使用的是SSD 框架,采用基于前饋神經(jīng)網(wǎng)絡的one-stage 物體檢測算法[11-12]。在圖像識別系統(tǒng)中,將垃圾分為可回收、不可回收、有害3 大類。對分類后的每種垃圾實物拍取50~100 張圖片,并從網(wǎng)上尋找一些素材,從而構(gòu)成3 大垃圾分類數(shù)據(jù)集(見表1),并對采集到的圖像進行訓練,從而生成神經(jīng)網(wǎng)絡模型。
表1 神經(jīng)網(wǎng)絡訓練數(shù)據(jù)集圖片組合類別
用OpenMV對目標物體進行跟蹤[13-15],OpenMV基于神經(jīng)網(wǎng)絡框架的目標跟蹤框架圖見圖6。利用卷積神經(jīng)網(wǎng)絡來搭建跟蹤框架,對圖像中的物體目標進行實時預測與追蹤,OpenMV 攝像頭可獲取每幀圖像的特征,對圖像的顏色、紋理、形狀大小等特征點進行神經(jīng)網(wǎng)絡訓練,將訓練好的數(shù)據(jù)模型和原圖進行對照,對垃圾進行分類,并通過串口將坐標數(shù)據(jù)傳輸?shù)絾纹瑱C,單片機在接收到坐標數(shù)據(jù)后,會驅(qū)使小車走到目標物體所在的位置。
圖6 目標跟蹤框架圖
垃圾識別系統(tǒng)的精度可用3 個指標進行評價,即垃圾識別系統(tǒng)訓練集精確率(TR)、垃圾識別系統(tǒng)測試集精確率(TA)、選取的相對誤差數(shù)目(N)。垃圾圖像識別系統(tǒng)的相對誤差和平均相對誤差的計算方式見式(1)、式(2)。
式中:RS為垃圾圖像識別系統(tǒng)的相對誤差;SRE為系統(tǒng)的平均相對誤差。
用式(1)和式(2)中的RS和SER來評估圖像識別模型訓練結(jié)果的準確率。其中,SER越低,系統(tǒng)的準確率就越高?;谏窠?jīng)網(wǎng)絡的小車垃圾識別系統(tǒng)訓練效果見圖7。3 類垃圾的識別準確率分別為0.96、0.97、0.95。
圖7 模型訓練效果數(shù)據(jù)
測試集效果數(shù)據(jù)如圖8 所示。其中,隨機抽取訓練集中20%的圖片組成測試集進行測試。3 類垃圾的識別準確率均較高,誤判率較低。
圖8 測試集效果數(shù)據(jù)
從中抽取9 樣物品對訓練好的模型進行測試,部分類別平均精度見表2,神經(jīng)網(wǎng)絡模型損失函數(shù)曲線見圖9。在移動過程中,攝像頭會出現(xiàn)一定誤差,且訓練集選取的圖片背景較為混雜,會導致訓練出來的神經(jīng)網(wǎng)絡跟實際識別出的平均精確度存在一定的誤差。
圖9 神經(jīng)網(wǎng)絡模型損失函數(shù)
由表2 可知,可回收垃圾的RS為-2%~10%、SER在-6.25%左右;不可回收垃圾的RS為-0.1%~14%、SER在7.2%左右;有害垃圾的RS為0.6%~5%、SER在3.1%左右;整個系統(tǒng)的SER在5.5%左右。
表2 部分類別平均精度
本研究以分類好的單一垃圾為研究對象,以O(shè)penMV 為圖像識別模塊、SSD 為神經(jīng)網(wǎng)絡框架,設(shè)計出一款基于OpenMV 圖像識別的垃圾分類小車系統(tǒng),從而解決垃圾分類準確率低的問題,可有效提高分類后垃圾的資源利用率。
本研究通過設(shè)計一個以STM32 為主控芯片的可接收坐標的自動循跡二輪小車,當OpenMV識別到垃圾后,會將垃圾的坐標傳遞給小車,并通過STM32 驅(qū)使小車到達垃圾所在的位置。用以SSD 框架為主的神經(jīng)網(wǎng)絡模型對500 張不同種類的垃圾圖像進行訓練,可將其分為有害垃圾、可回收垃圾以及不可回收垃圾。并采用200 張垃圾圖像進行檢測,試驗結(jié)果表明,訓練好的垃圾圖像識別系統(tǒng)的平均精度為89%~98%,SER在10%以內(nèi)。
該系統(tǒng)在有害垃圾類別中雖然存在一定的誤差,但其神經(jīng)網(wǎng)絡模型還有很大的提升空間,且該設(shè)計可提高垃圾二次分類后的資源利用率,具有一定的實用性。