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