王鑫龍,喻 恒,陳坤鵬,孫睿璁
(平頂山學(xué)院,河南 平頂山 467000)
隨著時(shí)代的發(fā)展、群眾生活消費(fèi)水平的提高,再加上我國人口眾多,生活垃圾的產(chǎn)生量與日俱增。初步統(tǒng)計(jì),2021年我國生活垃圾產(chǎn)量約有27 119萬噸。垃圾問題日益嚴(yán)重,政府針對(duì)此問題實(shí)施了垃圾分類等政策,但通過四川省統(tǒng)計(jì)局組織開展的一項(xiàng)專項(xiàng)調(diào)查發(fā)現(xiàn),受訪居民分辨可回收垃圾、廚余垃圾、有害垃圾的準(zhǔn)確率分別為13.0%、14.4%、20.5%,總體辨識(shí)準(zhǔn)確率僅有1.4%;有80%的受訪居民表示需要進(jìn)一步了解垃圾分類相關(guān)知識(shí)[1]。由此可知,大部分的居民缺乏執(zhí)行垃圾分類的知識(shí)。同時(shí),垃圾分類回收的一些流程還處于人工管控[2],仍不夠完善,導(dǎo)致居民區(qū)無法有效處理生活垃圾,未處理的垃圾堆積變質(zhì),之后直接焚燒,導(dǎo)致了污染環(huán)境等一系列問題,極大地影響了城市的環(huán)境質(zhì)量。垃圾不能正確分類,無法實(shí)現(xiàn)垃圾的回收價(jià)值利用,與我國的可持續(xù)發(fā)展觀相悖。隨著人工智能技術(shù)的不斷發(fā)展,在垃圾識(shí)別分類領(lǐng)域出現(xiàn)了越來越多的研究,如基于機(jī)器學(xué)習(xí)的垃圾識(shí)別分類系統(tǒng)[3]、基于視覺識(shí)別的垃圾分類系統(tǒng)[4]。如果將人工智能與垃圾分類相結(jié)合,既能減輕負(fù)擔(dān),又能加快效率,因此本文設(shè)計(jì)了一個(gè)基于樹莓派的智能垃圾分類亭。
本文設(shè)計(jì)的系統(tǒng)可以通過對(duì)垃圾圖像的處理進(jìn)行智能識(shí)別分類,主要流程為:用戶點(diǎn)擊垃圾亭的拍照按鈕進(jìn)行拍照,系統(tǒng)對(duì)該照片進(jìn)行識(shí)別,分類完成后自動(dòng)打開相應(yīng)的垃圾桶蓋。
通過調(diào)查發(fā)現(xiàn),近八成受訪群眾愿意進(jìn)行垃圾分類,但會(huì)擔(dān)心進(jìn)行垃圾分類時(shí)投放不夠準(zhǔn)確。為滿足智能分類和投放垃圾的需求,需要設(shè)計(jì)出智能垃圾分類亭。本文的設(shè)計(jì)解決了用戶因?yàn)槿狈诸愔R(shí)而無法準(zhǔn)確投放垃圾的困擾,使用者可以將垃圾放置在分類亭的臺(tái)面上,點(diǎn)擊拍照,系統(tǒng)就會(huì)通過拍照返回的結(jié)果,打開相應(yīng)的垃圾桶蓋[5],便于用戶將垃圾精準(zhǔn)投放至對(duì)應(yīng)的垃圾桶內(nèi)。
智能垃圾分類亭能讓垃圾分類變得簡單高效,對(duì)于后續(xù)的垃圾回收利用更加方便。據(jù)統(tǒng)計(jì),目前我國300多個(gè)城市中幾乎沒有城市使用此類分類亭。此設(shè)計(jì)相較傳統(tǒng)垃圾桶更加方便、智能、精準(zhǔn),用戶體驗(yàn)感得以提升,具有良好的前景,其市場潛力非常大。
智能垃圾分類亭的設(shè)計(jì)分為前后端兩部分,前端部分使用PyQt5進(jìn)行可視化界面的開發(fā)設(shè)計(jì),后端即神經(jīng)網(wǎng)絡(luò)端使用Python語言開發(fā)。通過python_flask傳輸轉(zhuǎn)發(fā)前后端數(shù)據(jù),采用數(shù)據(jù)庫保存用戶使用記錄。
本章主要對(duì)系統(tǒng)的整體架構(gòu)、主控電路、舵機(jī)控制模塊、舵機(jī)驅(qū)動(dòng)模塊、攝像頭垃圾圖像提取和識(shí)別模塊進(jìn)行詳細(xì)描述。對(duì)數(shù)據(jù)庫服務(wù)和軟件系統(tǒng)的部分也都作了詳細(xì)的介紹。
垃圾分類亭的設(shè)計(jì)分為硬件設(shè)計(jì)部分和軟件設(shè)計(jì)部分,系統(tǒng)硬件使用了USB攝像頭、SG90舵機(jī)、舵機(jī)驅(qū)動(dòng)板、樹莓派4B等主要硬件,軟件設(shè)計(jì)包括圖片分類識(shí)別算法的設(shè)計(jì)以及數(shù)據(jù)庫的設(shè)計(jì)。系統(tǒng)整體架構(gòu)如圖1所示,系統(tǒng)工作流程如圖2所示。
圖1 系統(tǒng)整體架構(gòu)
圖2 系統(tǒng)工作流程
為了穩(wěn)定且高效地實(shí)現(xiàn)垃圾分類識(shí)別,經(jīng)查閱資料,比較ESP32、STM32、樹莓派等幾款主流的主控芯片,發(fā)現(xiàn)樹莓派開發(fā)便捷、接口豐富、處理速度快,可以滿足垃圾分類算法運(yùn)行和硬件控制的需求,因此采用樹莓派作為主控處理器,系統(tǒng)主控電路如圖3所示。
圖3 系統(tǒng)主控電路
2.3.1 圖像采集識(shí)別模塊
圖像采集主要使用攝像頭,在本設(shè)計(jì)中使用的是一款USB免驅(qū)攝像頭(SD-SXT01),像素大約為500萬,分辨率為1 920×1 080,可以支持日常垃圾的識(shí)別,其通過攝像頭來捕捉視頻流,實(shí)現(xiàn)垃圾信息的實(shí)時(shí)傳遞。圖像采集流程如圖4所示。
圖4 圖像采集流程
2.3.2 舵機(jī)驅(qū)動(dòng)板
為了避免占用太多的引腳,進(jìn)而影響到樹莓派的處理效率,使用了一款PCA9685的16路PWM舵機(jī)驅(qū)動(dòng)版[6],是一款I(lǐng)2C接口的驅(qū)動(dòng)板;另外,它可以外接電源供電,本設(shè)計(jì)外接了一塊7 V的電池進(jìn)行供電。
2.3.3 SG90舵機(jī)
舵機(jī)控制又稱為伺服[7]控制,給其一定的PWM信號(hào),舵機(jī)按照要求轉(zhuǎn)至相應(yīng)角度,將垃圾自動(dòng)分類到對(duì)應(yīng)垃圾桶。經(jīng)過對(duì)幾款主流舵機(jī)的比較,選擇性價(jià)比最高的SG90舵機(jī)作為項(xiàng)目的控制舵機(jī)。舵機(jī)整體運(yùn)行流程如圖5所示。
圖5 舵機(jī)整體運(yùn)行流程
2.4.1 圖像分類算法的設(shè)計(jì)
深度殘差網(wǎng)絡(luò)在2015年被提出,一舉奪得了2015年世界最具影響力的計(jì)算機(jī)視覺大賽里的圖像分類領(lǐng)域的冠軍,并且首次出現(xiàn)錯(cuò)誤率比人類的極限還低的情況。因此,本項(xiàng)目使用在圖像分類領(lǐng)域表現(xiàn)較好的ResNet50網(wǎng)絡(luò)[9]作為項(xiàng)目的基礎(chǔ)網(wǎng)絡(luò)模型,使用Tensor flow框架搭建項(xiàng)目網(wǎng)絡(luò),使用3×3的卷積核對(duì)圖片進(jìn)行卷積操作,最后提取圖片的特征。
采用華為云垃圾分類大賽提供的數(shù)據(jù)集進(jìn)行模型的訓(xùn)練,里面大約有2萬多張圖片,基本包含了日常生活中的垃圾,具有一定的廣泛性,使用Tensor flow開源框架進(jìn)行訓(xùn)練,通過卷積層、池化層的不斷疊加后,最后由全連接層進(jìn)行降維提取特征值。使用ReLU激活函數(shù)能夠有效避免過擬合現(xiàn)象發(fā)生,通過多Echo的訓(xùn)練得到垃圾分類的權(quán)重模型文件。
當(dāng)系統(tǒng)進(jìn)行識(shí)別時(shí),樹莓派端使用OpenCV獲得實(shí)時(shí)視頻流,用OpenCV[8]讀取一張照片,并對(duì)其進(jìn)行轉(zhuǎn)碼操作;使用python_ flask進(jìn)行格式轉(zhuǎn)換,傳給電腦端,電腦端加載分類數(shù)據(jù),并對(duì)傳來的圖片進(jìn)行識(shí)別,最后將識(shí)別結(jié)果返回給樹莓派端。
網(wǎng)絡(luò)的深度對(duì)模型的性能至關(guān)重要,ResNet50網(wǎng)絡(luò)可以有效地解決深層次網(wǎng)絡(luò)退化問題,與AlexNet網(wǎng)絡(luò)和VGG16網(wǎng)絡(luò)相比,優(yōu)缺點(diǎn)見表1所列[8]。
表1 ResNet50與AlexNet和VGG16網(wǎng)絡(luò)的優(yōu)缺點(diǎn)對(duì)比
2.4.2 數(shù)據(jù)庫的設(shè)計(jì)
項(xiàng)目使用數(shù)據(jù)庫[10]對(duì)識(shí)別的垃圾種類的數(shù)據(jù)進(jìn)行存儲(chǔ)。利用SQL_Server2016創(chuàng)建數(shù)據(jù)庫,使用Python連接數(shù)據(jù)庫。垃圾分類亭系統(tǒng)將垃圾分類識(shí)別的結(jié)果數(shù)據(jù)上傳至數(shù)據(jù)庫,數(shù)據(jù)庫對(duì)上傳的數(shù)據(jù)進(jìn)行整理和保存。E-R關(guān)系如圖6所示。
圖6 E-R關(guān)系
系統(tǒng)測試的目的就是檢測基于樹莓派的智能垃圾分類系統(tǒng)是否符合預(yù)期目標(biāo)。首先,需要檢驗(yàn)系統(tǒng)的功能是否完整、性能是否穩(wěn)定;其次,需要測試系統(tǒng)采集并傳到后臺(tái)的數(shù)據(jù)是否準(zhǔn)確;最后,需要測試系統(tǒng)是否能實(shí)現(xiàn)預(yù)期的功能。通過測試之后,如果系統(tǒng)達(dá)到預(yù)期目標(biāo)則通過測試,否則需要對(duì)出現(xiàn)的問題進(jìn)行分析與調(diào)整,直至達(dá)到預(yù)期的目標(biāo)。
3.2.1 預(yù)期測試要求
(1)要求5 s內(nèi)完成對(duì)垃圾的捕獲和識(shí)別,使用戶獲得比較好的使用體驗(yàn)。
(2)要求可以在1 min內(nèi)連續(xù)地對(duì)10名用戶所投放的垃圾完成檢測。
(3)要求可以識(shí)別85%以上的垃圾種類。
3.2.2 測試數(shù)據(jù)
(1)攝像頭捕獲和識(shí)別的時(shí)間測試
由表2的測試結(jié)果可以發(fā)現(xiàn),攝像頭基本可以完成5 s內(nèi)捕獲并識(shí)別的任務(wù),其中存在識(shí)別時(shí)間略長現(xiàn)象的原因是離攝像頭過近,對(duì)焦耗時(shí)較長,調(diào)整距離后再次實(shí)驗(yàn),耗時(shí)在5 s之內(nèi)。
表2 圖像識(shí)別時(shí)間測試結(jié)果
(2)垃圾的連續(xù)識(shí)別投放測試
表3的測試結(jié)果中,從20:10:30到20:11:21一共進(jìn)行了10次連續(xù)檢測,每次檢測不同的垃圾,表明垃圾分類亭可以進(jìn)行高效率的負(fù)荷分類。
表3 垃圾投放測試結(jié)果
(3)識(shí)別率測試
在表4的測試結(jié)果中,第10次垃圾識(shí)別出現(xiàn)了問題,原因是舊衣物表面線頭較多,被識(shí)別系統(tǒng)誤判成了毛絨玩具,剪掉部分線頭之后再次測試,成功完成識(shí)別。
表4 圖像識(shí)別率測試結(jié)果
本文研究的是基于樹莓派的智能垃圾分類亭。對(duì)收集到的圖片和數(shù)據(jù),使用深度學(xué)習(xí)算法進(jìn)行多次訓(xùn)練,實(shí)現(xiàn)了對(duì)多類型垃圾的識(shí)別;使用的深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)模型,使系統(tǒng)具有高精度分辨率,能夠提高識(shí)別率。在系統(tǒng)設(shè)計(jì)的過程中,主要實(shí)現(xiàn)了以下功能:
(1)能夠正確識(shí)別用戶拍照上傳的圖片,同時(shí)反饋給用戶該拍照?qǐng)D片為哪種垃圾。
(2)在平臺(tái)上直接上傳需要分類的垃圾的圖片,平臺(tái)能夠快速識(shí)別出該垃圾的類型,分類亭可以自動(dòng)將垃圾投放至對(duì)應(yīng)的垃圾桶,同時(shí)對(duì)應(yīng)的垃圾桶等待10 s后自動(dòng)關(guān)閉。
(3)分類亭可以將識(shí)別到的垃圾上傳至數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的保存操作。目前,分類亭的設(shè)計(jì)已經(jīng)完成,功能已經(jīng)實(shí)現(xiàn),不足的是無法對(duì)多目標(biāo)同時(shí)進(jìn)行分類識(shí)別,后續(xù)會(huì)對(duì)其進(jìn)行升級(jí),提升用戶的體驗(yàn)感。