摘 要:為了有效處理廢棄物,本文設(shè)計、制作了垃圾分類的硬件設(shè)備,包括K210模板、攝像頭、電路以及4個舵機,4個舵機分別連接廚余垃圾、有害垃圾和其他垃圾。針對垃圾數(shù)據(jù)集較少的問題,本文采用基于VGG16的卷積神經(jīng)網(wǎng)絡(luò)算法,在自建的垃圾數(shù)據(jù)集上進行訓(xùn)練和測試。結(jié)果顯示,利用該方法可以準確識別垃圾種類,平均準確率為93%。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);圖像識別;垃圾分類
中圖分類號:TP 393" " " 文獻標志碼:A
1 系統(tǒng)總體結(jié)構(gòu)
1.1 整體方案
垃圾分類是垃圾分類系統(tǒng)的重要一環(huán),實施垃圾分類有助于增強公眾的環(huán)保意識,保護生態(tài)環(huán)境,促進經(jīng)濟可持續(xù)性發(fā)展。進行垃圾分類還可以降低垃圾處理成本,提高垃圾的循環(huán)利用和再生價值,減少資源浪費,提高垃圾處理的效率。
本文將機器視覺技術(shù)取代傳統(tǒng)的人工分類進行垃圾自動分類,以降低用戶的垃圾分類學(xué)習(xí)成本。本文使用目前較常用的VGG16深度神經(jīng)網(wǎng)絡(luò)算法,其特點是在訓(xùn)練過程中使用的參數(shù)較少,其非線性層能夠提升模型訓(xùn)練速度,擴大模型的應(yīng)用范圍。設(shè)計采用STM32單片機、K210模塊,利用卷積神經(jīng)網(wǎng)絡(luò)對垃圾進行識別與分類,同時驅(qū)動舵機轉(zhuǎn)動,實現(xiàn)4種垃圾的分類。
1.2 主控選擇
本文系統(tǒng)必備硬件組件包括2個核心模塊。1) 圖像采集模塊。該模塊的主要功能是連接攝像頭,以捕獲攝像頭實時拍攝的圖片[1]。2) 舵機控制模塊。該模塊負責連接并獨立控制4個舵機,其核心作用是根據(jù)后端處理模塊對垃圾種類的識別結(jié)果,驅(qū)動相對應(yīng)的舵機工作,從而使對應(yīng)的垃圾桶蓋開啟,保證各類垃圾能夠準確無誤地投入對應(yīng)的垃圾箱中。
K210模塊是基于嘉楠科技邊緣計算芯片K210(RSIC-V架構(gòu),64位雙核)方案的一款開發(fā)板,由01Studio設(shè)計研發(fā),采用硬件一體化設(shè)計(K210核心板、攝像頭和LCD集成在一個PCB上)。為了保證后端處理服務(wù)程序正常運行,需要較高的硬件處理能力,K210內(nèi)部搭載了一個KPU(即通用的神經(jīng)網(wǎng)絡(luò)處理器)[2],可以快速檢測圖像中的模板,并使用算法提取特定的對象特征,能夠?qū)崿F(xiàn)自動識別,因此本文將K210模板作為系統(tǒng)的開發(fā)板,訓(xùn)練模型對元器件圖像進行識別和分類,為后續(xù)的分揀工作提供準確的數(shù)據(jù)支持。K210具有較高的計算速度和處理能力,可以對元器件圖像進行實時分析與處理,分揀和判斷速度較快。K210也應(yīng)用于嵌入式、人工智能等場景,并擁有良好性能,例如功耗性能、處理能力和圖形處理能力,能夠提高采集數(shù)據(jù)、識別數(shù)據(jù)等操作的穩(wěn)定性與可靠性。
本文系統(tǒng)主要基于機器學(xué)習(xí)領(lǐng)域常用的機器視覺,主要包括圖像采集部分、圖像信息處理部分和執(zhí)行機構(gòu)控制部分。系統(tǒng)的工作流程如圖1所示。
基于機器視覺的智能垃圾分類系統(tǒng)主要由攝像頭、圖像處理模塊、分類執(zhí)行模塊和數(shù)據(jù)處理模塊組成。攝像頭能夠采集和捕捉垃圾圖像;圖像處理模塊能夠?qū)D像進行預(yù)處理和特征提??;分類執(zhí)行模塊能夠根據(jù)提取的特征對垃圾進行分類;數(shù)據(jù)處理模塊能夠記錄和分析分類結(jié)果,為垃圾分類系統(tǒng)的優(yōu)化提供依據(jù)。
圖像采集部分。該部分主要包括4個垃圾分類桶、設(shè)置在主控中的攝像頭和K210模板等,主要功能是圖像實時攝取。流程是開機后進入投放準備階段,將垃圾一件一件置于攝像頭面前,將信號傳送給K210模板來捕捉圖像。
圖像處理部分。圖像處理模塊先對采集和捕捉的垃圾圖像進行預(yù)處理,包括去噪、增強等操作,以提高后續(xù)特征提取的精準性。然后選用機器的學(xué)習(xí)算法,對預(yù)處理后的圖像進行特征提取,識別垃圾種類。該部分主要基于K210模塊所開發(fā)的圖像識別分類系統(tǒng),并與提前在VGG16卷積神經(jīng)網(wǎng)絡(luò)模型上訓(xùn)練的圖像進行比較,從而得出分類信息。
執(zhí)行機構(gòu)控制部分。由于K210引腳控制舵機會導(dǎo)致舵機抖動,控制不夠穩(wěn)定,因此需要使用STM32F103C8T6單片機進行控制。當STM32單片機接收K210識別后發(fā)出的引腳電平時,能夠控制舵機執(zhí)行分類動作。
分類執(zhí)行部分。該部分的主要作用是執(zhí)行分類動作并接受完成分類的垃圾。主要過程如下:當K210處理完圖像信息后,將所得出的分類結(jié)論通過引腳并以高、低電平的形式發(fā)送給下位STM32單片機,單片機接受到信號后打開舵機,開、關(guān)垃圾桶蓋,完成垃圾的準確分類。
2 硬件電路設(shè)計
由于K210在執(zhí)行實時控制任務(wù)過程中有一定局限性,因此本文在設(shè)計中引用一個輔助執(zhí)行控制單片機,以執(zhí)行其對舵機的旋轉(zhuǎn)控制,避免舵機在工作過程中發(fā)生抖動。此外,主控部分需要體積小且控制性能優(yōu)越,同時能夠高效處理和分析來自各模塊的信號與指令,因此選用STM32F103C8T6單片機作為其輔助控制單片機,以保證控制系統(tǒng)的穩(wěn)定性和準確性。
該設(shè)計所需硬件模塊如下所示。1) 圖像采集模塊。該模塊的功能是連接攝像頭,以獲得攝像頭采集的圖片。攝像頭由K210模塊自帶。2) 舵機。需要連接4個舵機,并分別進行控制,能夠按照要求打開相應(yīng)的垃圾箱蓋,使垃圾進入對應(yīng)的垃圾箱。舵機型號為SG90,能夠滿足垃圾箱蓋開啟的角度。
連接K210和STM32并進行通信,必須對控制線路進行布局和定義,以保證通信流暢、穩(wěn)定,不被干擾,各個模塊均能工作在相應(yīng)的額定電壓下。
3 算法設(shè)計
3.1 VGG16卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)是深層次學(xué)習(xí)中具有代表性的網(wǎng)絡(luò)結(jié)構(gòu)之一,在圖像處理領(lǐng)域中具有廣泛應(yīng)用。卷積神經(jīng)網(wǎng)絡(luò)是一種特殊的深度神經(jīng)網(wǎng)絡(luò),擁有多層網(wǎng)絡(luò)結(jié)構(gòu),上一層與下一層間的神經(jīng)元具有聯(lián)系,而同一層神經(jīng)元相對獨立。
卷積神經(jīng)網(wǎng)絡(luò)通常分為5個層次,即輸入層、卷積層、池化層、全連接層和輸出層。這是一個深層次的神經(jīng)網(wǎng)絡(luò)運算過程,通過層層計算,反復(fù)提取圖像的特征、邊緣線條、顏色和圖像等,不斷進行運算處理,最終提取出深層次的特征并獲取結(jié)果。卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
VGG是牛津大學(xué)計算機視覺組與谷歌一起研究、設(shè)計的深度卷積神經(jīng)網(wǎng)絡(luò),如圖3所示。VGG結(jié)構(gòu)包括13個卷積層和3個全連接層,因此稱為VGG16。VGG-16具有每次經(jīng)過池化層后特征圖的尺寸縮小1倍、通道數(shù)增加1倍(最后一個池化層除外)的顯著特點。圖3中的conv為卷積層,pool為池化層,第一次卷積核為64個,最后一次卷積核為512個,最后3個fc4096為全連接層。VGG16改進了之前的網(wǎng)絡(luò),以3個3*3卷積核代替7*7卷積核,以2個3*3卷積核代替5*5卷積核,其主要目的是在具有相同感知野的條件下減少參數(shù),提升網(wǎng)絡(luò)的深度。該模型可以較好地適用于分類和定位任務(wù)。
卷積神經(jīng)網(wǎng)絡(luò)具備三重特性。1) 卷積神經(jīng)網(wǎng)絡(luò)具有局部連接機制。與傳統(tǒng)的全連接神經(jīng)網(wǎng)絡(luò)不同,卷積神經(jīng)網(wǎng)絡(luò)不會使每個神經(jīng)元均與前一層所有神經(jīng)元相連,而是選擇性地與部分神經(jīng)元建立連接。2) 卷積神經(jīng)網(wǎng)絡(luò)引入了權(quán)值共享的概念,利用部分相連得到卷積核,這些卷積核在特征提取過程中會重復(fù)使用相同的權(quán)值。3) 具有多卷積核,每個卷積核均攜帶不同參數(shù),因此能夠提取圖像中不同類型的特征。組合多個卷積核能夠使卷積神經(jīng)網(wǎng)絡(luò)更好地捕獲圖像中豐富的信息。在處理大型圖像和降低模型復(fù)雜度等方面,卷積神經(jīng)網(wǎng)絡(luò)的這些特點起到了較大作用。
3.2 垃圾分類算法過程
針對傳統(tǒng)垃圾分類方法的局限性,本文設(shè)計了一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的垃圾分類算法,旨在為垃圾分類提供更高效、精確的方案,其內(nèi)容如下所示。1) 對垃圾圖像進行預(yù)處理,使圖像尺寸和灰度保持統(tǒng)一,以提高算法的準確度。2) 將卷積神經(jīng)網(wǎng)絡(luò)作為特征提取器,經(jīng)過多層卷積運算后進行池化,提取更深層特征,便于后續(xù)獲取結(jié)果。3) 使用全連接神經(jīng)網(wǎng)絡(luò),對提取的特征進行訓(xùn)練,利用多層全連接操作,將垃圾圖像分類為可回收垃圾、有害垃圾、其他垃圾或廚余垃圾。4) 對模型進行訓(xùn)練,并多次試驗,不斷調(diào)試模型[3]。
3.3 卷積神經(jīng)網(wǎng)絡(luò)層數(shù)的建立
一個完整的卷積神經(jīng)網(wǎng)絡(luò)包括卷積層、2層池化層和2層全連接層,最后由1個softmax層做分類,每層間均使用最大池化分隔。
本文使用卷積神經(jīng)網(wǎng)絡(luò)圖像做分類算法,訓(xùn)練不同垃圾圖像模型。該網(wǎng)絡(luò)的基本架構(gòu)為深度卷積結(jié)構(gòu),包括多次重復(fù)的卷積-卷積-池化組合,以捕捉和提取圖像中的多層次特征,其中通道數(shù)分別為64、128、512、512、512、4096、4096和1000。卷積層通道數(shù)翻倍,直到通道數(shù)達到512時不再增加。
在VGG16卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)中,特征提取的核心部分是13層卷積層,和5層池化層共同進行特征提取。最終通過3層全連接層來完成分類任務(wù)。
4 系統(tǒng)的搭建與調(diào)試
4.1 網(wǎng)絡(luò)層數(shù)的建立
采用Python編程,可以實現(xiàn)基于K210的各種算法。本文將pycharm作為開發(fā)工具,采用Python的Keras庫,版本號為2.15,用以開發(fā)基于VGG16的卷積神經(jīng)網(wǎng)絡(luò)。
本文將卷積神經(jīng)網(wǎng)絡(luò)(CNN)圖像作為分類算法,對4種不同種類的垃圾圖像模型進行訓(xùn)練。采用VGG16網(wǎng)絡(luò),其基本構(gòu)架為conv1^2(64)→pool1→conv2^2(128)→pool2→conv3^3(256)→pool3→conv4^3(512)→pool4→conv5^3(512)→pool5→fc6(4096)→fc7(4096)→fc8(1000)→softmax[4]。
4.2 模型訓(xùn)練與識別
搭建好所有環(huán)境后進行模型訓(xùn)練。本文將所有垃圾分為4類,即廚余垃圾、有害垃圾、其他垃圾和可回收垃圾,其中有害垃圾以生活中常見的電池、煙頭等為主;廚余垃圾以香蕉皮、骨頭等為主;其他垃圾以牛奶袋、廢棄口罩為主;可回收垃圾以易拉罐、塑料瓶等為主。所涉及的垃圾種類幾乎涵蓋了生活中所有常見的東西,并在識別背景中拍攝所有需要識別的模型,每個模型的拍攝角度應(yīng)盡量全面,完整展現(xiàn)所有特征,以保證最終的識別效果和識別準確率。
垃圾分類數(shù)據(jù)集是用于訓(xùn)練和評估垃圾分類算法的重要一句,構(gòu)建和處理該數(shù)據(jù)集需要考慮以下4種因素。1) 數(shù)據(jù)集中應(yīng)該包括不同種類的垃圾樣本,以保證算法能夠全面學(xué)習(xí)各種垃圾的特征。2)垃圾樣本的圖片應(yīng)該從不同角度、在不同光線下來拍攝,以增加數(shù)據(jù)集的多樣性,提高算法在不同條件下的垃圾分類能力。3)在構(gòu)建數(shù)據(jù)集的過程中,應(yīng)該對數(shù)據(jù)進行標準化和歸一化處理,以保證算法能夠更好地學(xué)習(xí)和分類。4) 要充分考慮垃圾分類的實時性和實用性要求,為保證數(shù)據(jù)集的真實性和實用性,應(yīng)定期更新并豐富數(shù)據(jù)集內(nèi)容,以貼合生活實際。
模型訓(xùn)練完成后,本文進行了驗證試驗,將垃圾一件件放入攝像頭拍攝范圍內(nèi)進行自動識別,最后觀察其識別效果。
4.3 試驗數(shù)據(jù)記錄
本文進行了實際測試,以驗證垃圾分類系統(tǒng)的功能和運行狀態(tài)是否符合設(shè)計預(yù)期。首先,采用Python對垃圾圖像進行收集,顯著提高了收集數(shù)據(jù)的效率。其次,采用K210模塊收集實際生活中垃圾圖像的數(shù)據(jù),以避免在訓(xùn)練模型中使用網(wǎng)絡(luò)圖片所帶來的誤差。在試驗過程中分別使用電池、骨頭、香蕉皮、塑料瓶、紙和各種包裝袋等共12類常見生活垃圾,進行各50次隨機測試。垃圾分類測試準確率結(jié)果見表1。
由以上試驗數(shù)據(jù)可知,所有垃圾的平均識別正確率為93%,其中可回收垃圾的正確識別率為96.66%,其他垃圾的正確識別率為89.5%,廚余垃圾的正確識別率為90.66%,有害垃圾的正確識別率為95%。
由上述數(shù)據(jù)可知,在試驗所測試的所有垃圾中,可回收垃圾的正確識別率較高,其他垃圾和廚余垃圾的正確識別率相對較低。進一步分析可知,當垃圾種類較少且其形態(tài)比較固定時,垃圾的識別率較高;當垃圾種類較多且形態(tài)復(fù)雜、不固定時,垃圾的識別率較低。
5 結(jié)語
本文利用機器視覺技術(shù)設(shè)計了一種智能分類垃圾處理裝置,能夠進行垃圾智能化分類,解決了居民的日常垃圾分類問題。該設(shè)計主要基于發(fā)展較成熟的神經(jīng)網(wǎng)絡(luò)算法,利用VGG16在K210模塊上進行訓(xùn)練,對日常垃圾進行識別分類處理,降低垃圾對環(huán)境的污染。
本文在研究過程中還發(fā)現(xiàn)了一些需要改進的問題。首先,在垃圾數(shù)據(jù)方面,需要一個更龐大且不斷更新的垃圾數(shù)據(jù)集,以增加垃圾種類的多樣性,提高垃圾圖像背景的復(fù)雜程度。其次,試驗裝置尺寸與原始垃圾箱尺寸不一致,在后期設(shè)計中需要對外觀進行改進,以提高機器整體的協(xié)調(diào)性。
參考文獻
[1]蔡昊辰.基于計算機視覺的垃圾分類識別系統(tǒng)研究[D].武漢:武漢工程大學(xué),2022.
[2]王科,劉豐儉.基于樹莓派的垃圾智能分類系統(tǒng)設(shè)計[J].南通職業(yè)大學(xué)學(xué)報,2023,37(3):71-75,81.
[3]王燕.基于深度卷積神經(jīng)網(wǎng)絡(luò)的垃圾分類算法研究[J].造紙裝備及材料,2024,53(1):104-106.
[4]潘鵬,胡運峰,秦金志,等.一種基于NB-IOT的智能垃圾桶[J].科技風(fēng),2019(1):11.