基于目標(biāo)檢測(cè)的智能垃圾分類垃圾桶的設(shè)計(jì)
1 研究背景
隨著科技的快速發(fā)展,人們的生活水平得到了很大的改善,城市生活中的垃圾數(shù)量也隨之飛速增長(zhǎng)。近年來(lái)我國(guó)提出了全民垃圾分類的政策并在全國(guó)進(jìn)行試點(diǎn)推廣,為解決垃圾處理問(wèn)題,各個(gè)城市相繼出臺(tái)了垃圾分類的地方標(biāo)準(zhǔn),但實(shí)際執(zhí)行起來(lái)依然有不小難度,用戶的習(xí)慣和對(duì)垃圾分類知識(shí)了解的不足帶來(lái)垃圾分類的現(xiàn)實(shí)困難,而設(shè)置專門的管理人員則會(huì)大量浪費(fèi)人力資源。如果可以通過(guò)相關(guān)的設(shè)計(jì)實(shí)現(xiàn)自動(dòng)分類的垃圾桶,將有助于大幅提升垃圾分類的準(zhǔn)確率和效率。
深度學(xué)習(xí)技術(shù)的高速發(fā)展,它的功能也逐漸增強(qiáng),尤其是在目標(biāo)檢測(cè)和圖像識(shí)別等領(lǐng)域上發(fā)揮著重要作用。本文提出的基于深度學(xué)習(xí)的智能垃圾分類垃圾桶,該設(shè)計(jì)將人工智能與垃圾分類進(jìn)行有機(jī)結(jié)合,提出了一種能夠自動(dòng)進(jìn)行垃圾分類的垃圾桶的設(shè)計(jì)方案。方案的關(guān)鍵在于如何對(duì)目標(biāo)準(zhǔn)確而有效地識(shí)別,特別是應(yīng)用性能較為優(yōu)異的卷積模型作為目標(biāo)檢測(cè)的模型,對(duì)其在目標(biāo)檢測(cè)識(shí)別領(lǐng)域的應(yīng)用具有十分關(guān)鍵以及重要的研究?jī)r(jià)值。
2 分類垃圾桶簡(jiǎn)介
2.1 分類垃圾桶的總體設(shè)計(jì)
分類垃圾桶整個(gè)方案分為PC(個(gè)人計(jì)算機(jī))端和硬件端兩大部分組成,總體設(shè)計(jì)圖如圖1 所示。
圖1 總體設(shè)計(jì)框圖
PC 端主要是實(shí)現(xiàn)垃圾的分類,主要處理過(guò)程如下:
(1)攝像頭捕捉到含有垃圾的圖片;
(2)圖片傳入到模型中進(jìn)行處理;
(3)處理完后會(huì)通過(guò)藍(lán)牙發(fā)送信號(hào)給硬件端。
硬件部分的設(shè)計(jì)如圖2 所示,STM32 上電后串口、定時(shí)器進(jìn)行初始化。當(dāng)STM32 收到電腦端發(fā)送的垃圾類型數(shù)據(jù)時(shí),對(duì)收到的數(shù)據(jù)進(jìn)行判斷,用于區(qū)別出被識(shí)別垃圾的種類。當(dāng)垃圾成功識(shí)別種類時(shí),STM32 通過(guò)控制垃圾桶底部的垃圾旋轉(zhuǎn)控制裝置。旋轉(zhuǎn)不同的角度使垃圾投放進(jìn)不同分類的格子中。實(shí)現(xiàn)不同垃圾的分類效果。在實(shí)際執(zhí)行中,系統(tǒng)將通過(guò)控制垃圾旋轉(zhuǎn)裝置旋轉(zhuǎn)到一定角度來(lái)進(jìn)行下方垃圾格子的選擇,如干垃圾時(shí)旋轉(zhuǎn)0° 、濕垃圾時(shí)旋轉(zhuǎn)90° 、可回收垃圾旋轉(zhuǎn)180° 、有害垃圾時(shí)旋轉(zhuǎn)270° ,從而將垃圾投入下方系統(tǒng)定的格子中。
3 模型分析和實(shí)際應(yīng)用
3.1 Two Stage目標(biāo)檢測(cè)算法
在人工智能方面較出名的目標(biāo)檢測(cè)模型有R-CNN(區(qū)域卷積神經(jīng)網(wǎng)絡(luò))、OverFeat、Fast R-CNN、FasterR-CNN、YOLO(You Only Look Once)v1、YOLOv2、SSD(single shot multibox detector)。早期的目標(biāo)檢測(cè)模型(較典型的是2013 年的R-CNN)是通過(guò)人工技術(shù)得到物體特征,其中有三個(gè)主要步驟。
(1)區(qū)域選擇:隨機(jī)生成多個(gè)固定大小的窗口然后采用滑動(dòng)窗口對(duì)圖像進(jìn)行遍歷。
(2)特征提?。篠IFT(尺度不變特征轉(zhuǎn)換,scale-invariant feature transform) 是常用特征。
(3)分類器:主要是Adaboost、SVM(支持向量機(jī),support vector machines)。
3.2 YOLOv3模型
YOLOv3 作為近期發(fā)布的模型,它對(duì)之前的算法既有保留又有改進(jìn)。YOLOv3 保留的結(jié)構(gòu)如下所述。
(1)YOLOv1 中保留的結(jié)構(gòu)是劃分單元格來(lái)做檢測(cè),區(qū)別是劃分的數(shù)量不一樣。采用”leaky ReLU”作為激活函數(shù),進(jìn)行端到端地訓(xùn)練。一個(gè)loss function 即可搞定訓(xùn)練,因此只需關(guān)注輸入端和輸出端。
(2)YOLOv2 中保留的結(jié)構(gòu)是用batch normalization(批量歸一化,BN)作為正則化、加速收斂和避免過(guò)擬合的方法,把BN 層和leaky relu 層接到每一層卷積層之后。
YOLO 每一代的提升主要取決于backbone 網(wǎng)絡(luò)的提升,從YOLOv2 的darknet-19 到Y(jié)OLOv3 的darknet-53。YOLOv3還提供替換backbone——tiny darknet。backbone用Darknet-53 提高性能,用tiny-darknet 提高速度。以下將從三個(gè)方面來(lái)講述YOOv3 模型。
DBL(Darknetconv2d_BN_Leaky):如圖3 所示,是YOLOv3 的基本組件,包含了卷積+BN+Leaky relu。在YOLOv3 中,BN 和leaky relu 已經(jīng)是和卷積層不可分離的部分( 最后一層卷積除外),共同構(gòu)成了最小組件。其中BN 結(jié)構(gòu)起到關(guān)鍵作用,它可減少訓(xùn)練計(jì)算量。計(jì)算公式如下:
圖3 YOLO內(nèi)部結(jié)構(gòu)展示
res_n:n 代表數(shù)字,有res1,res2,…,res8 等等,表示這個(gè)res_block里含有多少個(gè)res_unit。這是YOLOv3的大組件,YOLOv3 開始借鑒了ResNet 的殘差結(jié)構(gòu),使用這種結(jié)構(gòu)可以讓網(wǎng)絡(luò)結(jié)構(gòu)更深。殘差結(jié)構(gòu)相當(dāng)于把圖片中一些無(wú)用特征給過(guò)濾掉,提取出有用特征,從而增加本實(shí)驗(yàn)的識(shí)別精度。殘差構(gòu)如圖4 所示。
圖4 殘差結(jié)構(gòu)
concat:張量拼接。將darknet 中間層和后面的某一層的上采樣進(jìn)行拼接。拼接的操作和殘差層add 的操作是不一樣的,拼接會(huì)擴(kuò)充張量的維度,而add 只是直接相加不會(huì)導(dǎo)致張量維度的改變。
3.3 實(shí)際應(yīng)用方面的解決方法
在實(shí)際應(yīng)用中,本實(shí)驗(yàn)在設(shè)計(jì)中碰到兩個(gè)問(wèn)題,并且找到了對(duì)應(yīng)的解決方法。
(1)當(dāng)把YOLOv3 模型訓(xùn)練完成后,開始進(jìn)行測(cè)試部分。訓(xùn)練出來(lái)的參數(shù)加載到測(cè)試部分時(shí),可通過(guò)在電腦上的攝像頭識(shí)別出不同種類垃圾。但是此垃圾識(shí)別過(guò)程不只是在電腦端完成的,它需要部署到硬件端。從圖5 可看出實(shí)物中的大垃圾桶是裝有可回收垃圾桶、有害垃圾桶、廚余垃圾桶、其他垃圾桶這四個(gè)小型垃圾桶的,系統(tǒng)是通過(guò)旋轉(zhuǎn)小垃圾桶再把黑色平臺(tái)上的垃圾倒入對(duì)應(yīng)類別的特定垃圾桶中,而這個(gè)過(guò)程不可避免存在攝像頭會(huì)拍到小垃圾桶中垃圾的可能,進(jìn)而致誤識(shí)別操作。
圖5 垃圾桶模型圖
為解決此問(wèn)題,本設(shè)計(jì)在垃圾被成功識(shí)別并發(fā)送了指令后用了一個(gè)中斷操作,當(dāng)識(shí)別完成后,識(shí)別的測(cè)試代碼將停止運(yùn)行,而硬件端的STM32 芯片將執(zhí)行倒垃圾操作,倒完后又會(huì)反饋給識(shí)別代碼端繼續(xù)開啟識(shí)別過(guò)程,從而避免了存在拍攝到垃圾桶內(nèi)垃圾影響識(shí)別準(zhǔn)確度的問(wèn)題。
(2)測(cè)試代碼中用的是開啟攝像頭識(shí)別模式,但是其本質(zhì)還是把視頻中的每幀圖片逐一識(shí)別出來(lái),這就涉及到識(shí)別靈敏度的操作問(wèn)題。整個(gè)倒放垃圾的過(guò)程并不是一瞬間的,而是連續(xù)的。在每段識(shí)別過(guò)程中,可大致分為三種情形,一是垃圾完全沒(méi)有出現(xiàn)在攝像頭下,二是垃圾部分出現(xiàn)在攝像頭下,三是垃圾全部出現(xiàn)在攝像頭下。因?yàn)楫?dāng)垃圾只漏出部分時(shí),識(shí)別所需要的特征是不清楚的,因此在這三種情況中第二部分最容易出現(xiàn)誤識(shí)別操作,而如果按照每幀圖片識(shí)別的話必定會(huì)出現(xiàn)垃圾還沒(méi)放到黑色平臺(tái)上,垃圾桶就開始運(yùn)轉(zhuǎn)的現(xiàn)象。為解決這個(gè)問(wèn)題,本實(shí)驗(yàn)通過(guò)計(jì)算攝像頭每秒多少幀和放垃圾這個(gè)動(dòng)作大概需要多少時(shí)間,預(yù)先設(shè)置識(shí)別時(shí)間并改善識(shí)別靈敏度。經(jīng)過(guò)多次的實(shí)踐結(jié)果是,攝像頭每秒30 幀,放垃圾的時(shí)間大約是2 秒左右,這個(gè)過(guò)程中識(shí)別到的圖片大約為60 張,而60 張中一定會(huì)有誤操作圖片。本實(shí)驗(yàn)通過(guò)控制總的識(shí)別數(shù)量來(lái)控制最后發(fā)送給STM32 微控制器的指令。實(shí)驗(yàn)結(jié)果表明,最佳值是在2秒內(nèi)有20 張圖片全部識(shí)別到同一物體時(shí)可發(fā)送對(duì)應(yīng)指令給STM32 微控制器。
經(jīng)過(guò)上面兩點(diǎn)改進(jìn)后,分類垃圾桶在實(shí)際應(yīng)用中的誤判斷進(jìn)一步減小,有效提升了識(shí)別準(zhǔn)確率。
4 實(shí)驗(yàn)結(jié)果
4.1 系統(tǒng)設(shè)計(jì)
智能垃圾分類垃圾桶系統(tǒng)設(shè)計(jì)包含硬件和軟件兩部分,在測(cè)試過(guò)程中,我們主要對(duì)軟件部分進(jìn)行了模型實(shí)驗(yàn)。將YOLOV3模型實(shí)驗(yàn)進(jìn)行結(jié)果對(duì)比,在VGG(Visual Geometry Group)16 實(shí)驗(yàn)中用到了tensorflow、VGG16模型,并采用華為的垃圾識(shí)別數(shù)據(jù)集一共包括19 800張圖44 個(gè)類別,先通過(guò)訓(xùn)練得出權(quán)重再分析實(shí)驗(yàn)結(jié)果對(duì)模型進(jìn)行了一些微調(diào),之后開始進(jìn)行測(cè)試實(shí)驗(yàn)。在YOLOV3 模型中用的是torch、YOLOV3 模型,華為垃圾識(shí)別的數(shù)據(jù)集一共為19 800 張圖44 個(gè)類別,先訓(xùn)練凍結(jié)部分為了加快訓(xùn)練,再使用解凍實(shí)驗(yàn)加強(qiáng)識(shí)別率和先驗(yàn)框,最后進(jìn)行測(cè)試實(shí)驗(yàn)。硬件用到了STMF103、語(yǔ)音播放、舵機(jī)、藍(lán)牙模塊和攝像頭。
4.2 YOLOv3實(shí)驗(yàn)
4.2.1 實(shí)驗(yàn)前的準(zhǔn)備工作
第一步 實(shí)驗(yàn)前的準(zhǔn)備
在訓(xùn)練階段,本實(shí)驗(yàn)基于Windows 操作系統(tǒng), 硬件采用Intel Core i7-8750H 處理器、NVIDIA 2060ITX 獨(dú)立顯卡、16GB 顯存、16GB 內(nèi)存,在Pycharm 軟件上運(yùn)行程序,環(huán)境是torch1.8.1 版本和cuda1.1.1。
第二步 訓(xùn)練過(guò)程
構(gòu)建完模型后把train 和val 的數(shù)據(jù)集劃分為9 比1,epoch 一共為50,凍結(jié)和解凍的Batch_size 分別為8 和3,經(jīng)過(guò)8 小時(shí)的訓(xùn)練。
第三步 測(cè)試
通過(guò)攝像頭輸入圖片到測(cè)試代碼中對(duì)物體進(jìn)行識(shí)別,得出結(jié)果后發(fā)出信號(hào)給硬件,硬件部分做出反應(yīng)。
4.2.2 實(shí)驗(yàn)結(jié)果
訓(xùn)練出來(lái)的training loss 數(shù)值、val loss 數(shù)值與訓(xùn)練輪數(shù)的關(guān)系如圖6 所示。
圖6 training loss數(shù)值、val loss數(shù)值與練輪數(shù)的關(guān)系
從圖7 中可以看出訓(xùn)練集和驗(yàn)證集的loss 值都在同時(shí)下降,在實(shí)驗(yàn)中能夠很好地排除背景干擾。
圖7 精確率和召回率的線性圖
5 結(jié)論
從YOLOv3 的實(shí)驗(yàn)結(jié)果可以得出,在訓(xùn)練輪數(shù)增加的同時(shí)模型沒(méi)有出現(xiàn)過(guò)擬合狀態(tài),并且精確率與召回率也在不斷增加,進(jìn)而證明了模型優(yōu)良。通過(guò)在實(shí)際應(yīng)用上做出了具體改進(jìn),使得該垃圾識(shí)別系統(tǒng)更接近于應(yīng)用到實(shí)際生活中。由于該系統(tǒng)的構(gòu)造新穎,YOLOv3 模型的表現(xiàn)優(yōu)異,打破了人們對(duì)傳統(tǒng)垃圾桶的理解,使人們?cè)谏钪须S處可見(jiàn)的垃圾箱變得更加人性化。采用該系統(tǒng)設(shè)計(jì)的智能垃圾分類垃圾桶更容易受大眾接首,通過(guò)將垃圾在源頭進(jìn)行分類投放,并經(jīng)過(guò)分類回收,使之重新變成資源,實(shí)現(xiàn)垃圾的二次甚至多次利用,符合國(guó)家號(hào)召的實(shí)現(xiàn)科學(xué)垃圾分類的既定目標(biāo)。
參考文獻(xiàn):
[1]Wang Xuehao,Li Shuai,Chen Chenglizhao,etc.Depth Quality-awa「e Selective Saliency Fusion fo「 RGB-D Image Salient Object Detection[J].Neurocomputing, 2020,(4):72-74.
[2]孟丹.基于深度學(xué)習(xí)的圖像分類方法研究[D].上海:華東師范大學(xué),2017.
[3]馮子勇.基于深度學(xué)習(xí)的圖像特征學(xué)習(xí)和分類方法的研究及應(yīng)用[D].廣州:華南理工大學(xué),2016.
[4]吳正文.卷積神經(jīng)網(wǎng)絡(luò)在圖像分類中的應(yīng)用研究[D].成都:電子科技大學(xué),2015.
(本文來(lái)源于《電子產(chǎn)品世界》雜志2022年2月期)
評(píng)論