謝小明 徐建輝 陳飛燕
技術(shù)應(yīng)用
基于視覺識別的垃圾分類箱系統(tǒng)*
謝小明1徐建輝2陳飛燕2
(1.廣州市真光中學(xué),廣東 廣州 510380 2.廣州慧谷動力科技有限公司,廣東 廣州 510000)
針對生活垃圾混合收集造成的資源浪費(fèi)和環(huán)境污染問題,以基于PyTorch的智能垃圾分類箱為例,設(shè)計一套基于視覺識別的垃圾分類箱系統(tǒng)。采用PyTorch框架對電池、金屬、塑料和紙4類常見生活垃圾進(jìn)行模型訓(xùn)練與識別;通過Arduino控制Jetson Nano開發(fā)板、Arduino mega2560開發(fā)板、舵機(jī)、USB高清攝像頭等硬件完成這4類垃圾的分類。
垃圾分類;PyTorch框架;模型訓(xùn)練;視覺識別
隨著我國經(jīng)濟(jì)的快速發(fā)展,城市化進(jìn)程不斷加快,人們的生活水平日益提高,生活垃圾數(shù)量也隨之增長,對環(huán)境造成較大壓力,我國很多城市面臨“垃圾圍城”的困擾。目前,我國的垃圾處理方式主要有垃圾填埋、垃圾焚燒和垃圾堆肥3種。雖然這3種處理方式都可以減少一定的垃圾數(shù)量,但都不能很好地從生活源頭減少垃圾數(shù)量,進(jìn)而減輕生活垃圾引起的環(huán)境問題。通過對垃圾進(jìn)行分類,實現(xiàn)生活垃圾減量化、資源化和無害化,對城市的可持續(xù)發(fā)展至關(guān)重要[1]。2019年《公共機(jī)構(gòu)生活垃圾分類工作評價參考標(biāo)準(zhǔn)》公布,全國推進(jìn)垃圾分類工作,但實施效果并不理想,各地區(qū)仍然存在生活垃圾混合收集的情況,造成不必要的資源浪費(fèi)和環(huán)境污染。
智能垃圾分類旨在實現(xiàn)垃圾分類的自動化和智能化,有效促進(jìn)垃圾分類的普及,減少不可回收垃圾的數(shù)量和減輕垃圾污染的環(huán)境問題。目前,國內(nèi)外已有的智能垃圾分類系統(tǒng),實用性不強(qiáng)、功能較單一[2],普遍存在的問題有:識別準(zhǔn)確率不高導(dǎo)致分類錯誤;識別速度慢;受溫度、光照等環(huán)境影響較明顯,性能不穩(wěn)定;缺少詳細(xì)數(shù)據(jù)分析,與回收環(huán)節(jié)難以高效對接。其中,識別準(zhǔn)確率低與識別速度慢是該類系統(tǒng)難以實用的關(guān)鍵痛點[2]。
本文基于視覺識別技術(shù),利用深度學(xué)習(xí)訓(xùn)練垃圾分類模型,提高智能垃圾分類的準(zhǔn)確性。在垃圾分類模型中,收集了大量不同類別的垃圾圖像,通過手動標(biāo)注方式,使計算機(jī)學(xué)習(xí)并得到數(shù)據(jù)隱含的內(nèi)部關(guān)系,提取出更高維、更抽象的數(shù)據(jù),使學(xué)習(xí)特征更具有表達(dá)力[3]。
基于視覺識別的垃圾分類箱系統(tǒng)采用軟、硬件相結(jié)合的方式實現(xiàn)生活垃圾的智能分類。系統(tǒng)軟件使用Python和Arduino語言編寫。其中,Python是一種解釋性高級編程語言;Arduino是一款擁有多個輸入輸出端的開源開放式硬件可編程控制器。系統(tǒng)整體設(shè)計運(yùn)用Python跨平臺的特點,Python給出一個信號,通過串口傳送給硬件設(shè)備,硬件設(shè)備收到該信號后,利用已經(jīng)燒錄好的程序自動處理。通過采集常見的生活垃圾圖像集,利用PyTorch深度學(xué)習(xí)框架訓(xùn)練模型,從海量數(shù)據(jù)中學(xué)習(xí)復(fù)雜特征;經(jīng)過反復(fù)學(xué)習(xí),最終得到訓(xùn)練模型[4],實現(xiàn)垃圾準(zhǔn)確識別分類。系統(tǒng)硬件部分主要包括Jetson Nano開發(fā)板、Arduino mega2560開發(fā)板、舵機(jī)、USB高清攝像頭等?;谝曈X識別的垃圾分類箱系統(tǒng)框圖及實物設(shè)計圖如圖1、2所示。
圖1 基于視覺識別的垃圾分類箱系統(tǒng)框圖
圖2 基于視覺識別的垃圾分類箱實物設(shè)計圖
當(dāng)生活垃圾放到識別區(qū)域時,USB高清攝像頭采集垃圾圖像,Jetson Nano開發(fā)板識別垃圾類別,Arduino mega2560開發(fā)板控制舵機(jī)動作,使垃圾傾斜掉落到相應(yīng)的垃圾箱,舵機(jī)復(fù)位到初始位置,實現(xiàn)生活垃圾的智能分類[5]。
基于視覺識別的垃圾分類箱系統(tǒng)包含視覺預(yù)處理模塊、模型訓(xùn)練模塊、檢測識別模塊、串口通信模塊及控制模塊等,工作流程如圖3所示。
圖3 基于視覺識別的垃圾分類箱系統(tǒng)工作流程圖
為使垃圾分類模型更專注于一般細(xì)節(jié)并獲得更高的準(zhǔn)確度,需對垃圾圖像進(jìn)行預(yù)處理。預(yù)處理方法有模糊、閾值、形態(tài)轉(zhuǎn)換等[6],達(dá)到去除噪聲,控制像素值強(qiáng)度的目的。
基于視覺識別的垃圾分類箱系統(tǒng)的視覺預(yù)處理模塊主要由Jetson Nano開發(fā)板、垃圾圖像數(shù)據(jù)集和USB高清攝像頭組成,實現(xiàn)訓(xùn)練集創(chuàng)建。
視覺預(yù)處理模塊利用Jetson Nano開發(fā)板控制USB高清攝像頭工作,啟動圖像拍攝功能,采集垃圾圖像。通過人工標(biāo)注,對垃圾圖像進(jìn)行預(yù)處理,包括灰度化處理、圖像分割處理等[7],以減少Jetson Nano的GPU計算量,提取物體特征,制作訓(xùn)練集。視覺預(yù)處理模塊效果圖如圖4所示。
圖4 視覺預(yù)處理模塊效果圖
圖像灰度化處理方式主要有分量法、最大值法、平均值法和加權(quán)平均法4種。本文分別對這4種方式進(jìn)行測試,得到人眼對綠色敏感性最高,對藍(lán)色敏感性最低。因此,使用RGB三分量進(jìn)行加權(quán)平均能得到較合理的灰度圖像。根據(jù)重要性及其他指標(biāo),將3個分量以不同的權(quán)值進(jìn)行加權(quán)平均[3]。
在真實圖像中存在噪聲點或者其他干擾因素,視覺預(yù)處理模塊采用基于形態(tài)分水嶺的分割算法,從背景中提取近乎一致(類似水滴的)的對象,效果較好。本文目標(biāo)物體是連接在一起的,圖像分割比較困難。形態(tài)分水嶺分割算法把圖像看作一幅地形圖,亮度強(qiáng)的區(qū)域像素值較大,亮度暗的區(qū)域像素值較小,通過尋找匯水盆地和分水嶺界線對圖像進(jìn)行分割,逐步完善一個迭代標(biāo)注過程。本文采用的計算方法由Vincent L.提出,是比較經(jīng)典的形態(tài)分水嶺分割算法。在該算法中,分水嶺計算分排序過程、淹沒過程2個步驟。首先,對每個像素的灰度級進(jìn)行從低到高排序;然后,在從低到高實現(xiàn)淹沒的過程中,采用先進(jìn)先出(first input first output, FIFO)結(jié)構(gòu)對每一個局部極小值在階的影響域進(jìn)行判斷及標(biāo)注。
基于視覺識別的垃圾分類箱系統(tǒng)的模型訓(xùn)練模塊主要由訓(xùn)練集和PyTorch深度學(xué)習(xí)框架組成,實現(xiàn)電池、金屬、塑料和紙4類垃圾模型的創(chuàng)建。
垃圾模型利用PyTorch深度學(xué)習(xí)框架學(xué)習(xí)視覺預(yù)處理模塊制作的訓(xùn)練集,捕捉并記錄圖像上垃圾的形狀、材質(zhì);通過反復(fù)學(xué)習(xí),對訓(xùn)練集中的圖像進(jìn)行分類;同時將圖像素材進(jìn)行卷積、激勵、池化等[7],再輸出到輸出層。為在保持模型性能較好的前提下降低模型大小,同時提升模型速度,首先,采用輕量級神經(jīng)網(wǎng)絡(luò)MobileNet模型,利用深度卷積對不同輸入通道分別進(jìn)行卷積;然后,采用逐點卷積將上層的輸出進(jìn)行結(jié)合;最后,修改模型輸出層維度為所需分類的個數(shù),使識別準(zhǔn)確率提升,從而解決垃圾分類箱系統(tǒng)分類準(zhǔn)確率低、識別速度慢、受環(huán)境影響等問題[8-13]。
基于視覺識別的垃圾分類箱系統(tǒng)的檢測識別模塊主要由紅外對射傳感器和USB高清攝像頭組成,實現(xiàn)垃圾檢測和識別功能。通過紅外對射傳感器檢測垃圾是否進(jìn)入垃圾分類箱采集區(qū),當(dāng)檢測到有垃圾放入時,Jetson Nano開發(fā)板控制USB高清攝像頭采集垃圾圖像,利用OpenCV函數(shù)庫捕獲垃圾圖像當(dāng)前幀,將當(dāng)前垃圾與垃圾模型進(jìn)行比對,判斷垃圾類別,輸出最終結(jié)果。
基于視覺識別的垃圾分類箱系統(tǒng)的串口通信模塊主要由Python代碼和Arduino代碼組成,實現(xiàn)Python與Arduino之間的數(shù)據(jù)通信[12]。
為實現(xiàn)該模塊功能,分別需要在Jetson Nano開發(fā)板、Arduino開發(fā)板、Python編寫代碼,配置USB0為端口,開發(fā)板和Python的波特率一致,為9600。Python發(fā)送垃圾類別識別數(shù)據(jù)給Arduino開發(fā)板。在串口通信中為該信息加上奇偶校驗位,使“1”的位數(shù)為偶數(shù)(偶校驗)或奇數(shù)(奇校驗),以此來校驗信息傳送的正確性。
基于視覺識別的垃圾分類箱系統(tǒng)傳輸數(shù)據(jù)信息格式為:1 bit 起始位(一般為0) + 8 bits 數(shù)據(jù)位(一字節(jié)) + 1 bit 校驗位(可有可無) + 1 bit結(jié)束位(一般為1),一個字節(jié)的數(shù)據(jù)要分為8次,由低位到高位按順序一位一位地進(jìn)行傳送。
基于視覺識別的垃圾分類箱系統(tǒng)的控制模塊主要由Arduino mega 2560開發(fā)板和舵機(jī)組成。
當(dāng)Arduino mega 2560開發(fā)板接收到Python發(fā)送的垃圾類別識別數(shù)據(jù)時,基于該數(shù)據(jù)控制舵機(jī)對垃圾進(jìn)行分類。Arduino開發(fā)板產(chǎn)生可變寬度的脈沖控制舵機(jī)。舵機(jī)的基準(zhǔn)信號周期為20ms,寬度為1.5ms。當(dāng)舵機(jī)接收的脈沖小于1.5ms,輸出軸以中間位置為標(biāo)準(zhǔn),逆時針旋轉(zhuǎn)一定角度;當(dāng)舵機(jī)接收的脈沖大于1.5 ms,輸出軸以中間位置為標(biāo)準(zhǔn),順時針旋轉(zhuǎn)一定角度。通過設(shè)置不同的脈沖時間將識別出來的垃圾由采集區(qū)轉(zhuǎn)入對應(yīng)類型的分揀箱內(nèi)。
本文采用實際測試驗證垃圾分類箱系統(tǒng)的功能和運(yùn)行狀態(tài)是否符合設(shè)計預(yù)期。分別使用電池、金屬、塑料和紙4類常見生活垃圾進(jìn)行各50次隨機(jī)測試,垃圾分類測試準(zhǔn)確率結(jié)果分析如表1所示。
由表1可知,基于視覺識別的垃圾分類箱系統(tǒng)運(yùn)行正常,整體分類準(zhǔn)確率較高,可較為準(zhǔn)確地完成垃圾分類識別。
表1 垃圾分類測試準(zhǔn)確率結(jié)果分析 單位:次
基于視覺識別的垃圾分類箱系統(tǒng)能準(zhǔn)確識別4大類常見生活垃圾,達(dá)到智能分類的設(shè)計目標(biāo)。下一步將繼續(xù)完善系統(tǒng)功能,如增加無線網(wǎng)絡(luò)模塊;采用傳送履帶、機(jī)器臂相結(jié)合的方式解決混合垃圾分類問題等[14]。
[1] 張莉萍,張中華.城市生活垃圾源頭分類中居民集體行動的困境及克服[J].武漢大學(xué)學(xué)報(哲學(xué)社會科學(xué)版),2016,69(6): 50-56.
[2] 李航,徐園園.國內(nèi)分類垃圾桶發(fā)展現(xiàn)狀與分析[J].安陽工學(xué)院學(xué)報,2019,18(2):37-39.
[3] 鄭遠(yuǎn)攀,李廣陽,李曄.深度學(xué)習(xí)在圖像識別中的應(yīng)用研究綜述[J].計算機(jī)工程與應(yīng)用,2019,55(12):20-36.
[4]DEREK Runberg,透鏡.擴(kuò)展基于NVIDIA Jetson Nano的JetBot智能車功能[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2021,21(10):4-6.
[5] 孟丹.基于深度學(xué)習(xí)的圖像分類方法研究[D].上海:華東師范大學(xué),2017.
[6] 黃一天,陳芝彤.Pytorch框架下基于卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)手寫數(shù)字識別[J].電子技術(shù)與軟件工程,2018(19):147.
[7] 林穎,黃澤豪,曾文軒,等.基于視覺識別的垃圾分類系統(tǒng)[J]. 電子技術(shù)與軟件工程,2021(10):78-79.
[8] 王小燕,謝文昊,楊藝芳,等.基于深度學(xué)習(xí)的垃圾分類檢測方法[J].現(xiàn)代電子技術(shù),2021,44(21):110-113.
[9] 戴聰玲,唐琳杰,謝正華,等.基于Easy-DL平臺+樹莓派的景區(qū)智能垃圾分類系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2021,11(9):67-70.
[10] 李鋮.基于Arduino Mega 2560設(shè)計的智能循跡探險小車[J].中國新技術(shù)新產(chǎn)品,2021(13):36-38.
[11] 李泉坊,姚澤康,陳媛媛,等.一種通過USB監(jiān)控串口通信的方法:中國,CN113778796A[P].2021-12-10.
[12] 黃鵬,徐燕.基于Arduino和語音識別的智能垃圾分類系統(tǒng)[J].電子技術(shù)應(yīng)用,2021,47(8):72-75,80.
[13] 劉旭東,張艷芬,趙俊杰.基于ROS和計算機(jī)視覺的智能垃圾分類系統(tǒng)設(shè)計[J].電子制作,2020(23):45-46,60.
[14] 余驍,劉碩.基于深度學(xué)習(xí)與單片機(jī)的智能垃圾分類系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2021,11(12):107-109.
Garbage Sorting Bin System Based on Vision Recognition
XIE Xiaoming1XU Jianhui2CHEN Feiyan2
(1.Guangzhou True Light High School, Guangzhou 510380, China 2.Guangzhou High Genius Dynamics Co., Ltd. Guangzhou 510000, China)
Aiming at the waste of resources and environmental pollution caused by the mixed collection of domestic waste, taking the intelligent waste sorting bin based on PyTorch as an example, a set of waste sorting bin system based on visual recognition is designed. The PyTorch framework is used to train and identify the models of four kinds of common domestic waste: battery, metal, plastic and paper; Arduino controls Jetson Nano development board, Arduino mega2560 development board, steering gear, USB HD camera and other hardware to complete the classification of these four types of garbage.
refuse classification; PyTorch framework; model training; visual recognition
廣州市荔灣區(qū)科技計劃項目(201904009)
謝小明,徐建輝,陳飛燕.基于視覺識別的垃圾分類箱系統(tǒng)[J].自動化與信息工程,2022,43(1):49-52.
XIE Xiaoming, XU Jianhui, CHEN Feiyan. Garbage sorting bin system based on vision recognition[J]. Automation & Information Engineering, 2022,43(1):49-52.
謝小明,男,1981年生,本科,中學(xué)一級,主要研究方向:中小學(xué)人工智能科普教育、中小學(xué)信息技術(shù)與學(xué)科融合。E-mail: mingo.x@qq.com
徐建輝,男,1994年生,本科,工程師,主要研究方向:人工智能與機(jī)器人。E-mail: xjhmax@126.com
陳飛燕,女,1997年生,專科,助理工程師,主要研究方向:中小學(xué)STEM人工智能教育。E-mail: 842233583@qq.com
TP242.6
A
1674-2605(2022)01-0009-04
10.3969/j.issn.1674-2605.2022.01.009