羅 亮, 許佳娜, 畢登峰, 黃耀鵬, 羅 慧
(韶關(guān)學(xué)院 數(shù)學(xué)與統(tǒng)計學(xué)院, 廣東 韶關(guān) 512005)
我國不僅是人口大國,還是垃圾產(chǎn)生大國,隨著經(jīng)濟逐步發(fā)展, 人們的生活消費水平和城鎮(zhèn)化率不斷提高,生活垃圾產(chǎn)生量不斷上升,但是由于人們長期缺乏垃圾分類的意識, 導(dǎo)致生活垃圾在投放的時經(jīng)常未被合理的分類,不僅造成了資源浪費,隨之而來的環(huán)境問題也日益突出。
目前, 基于傳統(tǒng)模式識別的圖像分類方法已被應(yīng)用到工業(yè)領(lǐng)域,但這些圖像識別分類方法的往往準(zhǔn)確度不高。 此外,由于設(shè)備算法的限制,垃圾自動識別的研究在很長一段時間停滯不前。而隨著計算機性能的快速發(fā)展,依托大數(shù)據(jù)和GPU 計算的深度學(xué)習(xí)取得了非常大的進展,成為學(xué)術(shù)界和工業(yè)領(lǐng)域的主流。
針對目前深度學(xué)習(xí)領(lǐng)域發(fā)展現(xiàn)狀并結(jié)合垃圾分類的現(xiàn)狀與難點,提出了基于YOLOv5 的智能垃圾分類系統(tǒng),通過圖像識別與嵌入式的結(jié)合, 很好的解決了生活垃圾在投放時遇到的難題, 同時也解決了垃圾處理方式上的難題,為進一步的垃圾回收提供了便利。
與傳統(tǒng)的垃圾分類方式相比, 該系統(tǒng)提高了垃圾分類的準(zhǔn)確度和垃圾資源的利用率, 對生活垃圾處理方式也有一定的幫助, 一定程度上解決了由于生活垃圾帶來的環(huán)境污染問題。 可以預(yù)見,在未來,隨著圖像識別技術(shù)的發(fā)展,基于圖像識別的垃圾分類技術(shù)將成為主流。
該系統(tǒng)使用基于Pytorch 的深度學(xué)習(xí)框架的YOLOv5模型進行生活垃圾圖像識別, 使用STM32F103 單片機作為控制器。 本文的垃圾回收裝置,使用的是圓形垃圾桶。在垃圾桶頂部,安裝了攝像頭模塊,在投放垃圾時,可以進行圖像采集;在垃圾桶內(nèi)部劃分四個扇形區(qū)域,每個區(qū)域使用擋板隔開; 在垃圾桶底部安裝了步進電機控制垃圾桶的旋轉(zhuǎn)。
當(dāng)系統(tǒng)運行時,使用攝像頭進行圖像采集,將采集到的圖像信息發(fā)送至在上位機即PC 端部署的YOLOv5 模型進行識別,識別完成后將識別到的結(jié)果信息(包含物體的類別信息以及坐標(biāo)信息)經(jīng)過串口通信發(fā)送給單片機,單片機接受到信息后, 通過判斷垃圾類別來控制步進電機進行旋轉(zhuǎn),旋轉(zhuǎn)到對應(yīng)的區(qū)域,再控制另一個步進電機打開垃圾擋板, 實現(xiàn)垃圾的自動識別和分揀功能。 系統(tǒng)設(shè)計如圖1 所示。
圖1 系統(tǒng)設(shè)計圖
硬件結(jié)構(gòu)主要的模塊有STM32 主控模塊、圖像采集模塊、步進電機模塊、紅外傳感器模塊。系統(tǒng)結(jié)構(gòu)設(shè)計如圖2 所示。
圖2 系統(tǒng)結(jié)構(gòu)設(shè)計圖
選用STM32F103ZET6 單片機作為控制器,該系列單片機構(gòu)造簡單、工具易用、低功耗、高性能且有豐富的拓展接口,可拓展性強,充分滿足本系統(tǒng)的需求。
選用分辨率為720×1280 的外接攝像頭作為圖像采集模塊,配置有自動降噪和自動對焦功能,使圖像采集更為精準(zhǔn)。 采集的生活垃圾示例如圖3 所示。
圖3 生活垃圾示例
選用紅外傳感器來判斷垃圾是否被投放進垃圾桶, 當(dāng)紅外傳感器檢測到光線變化時,將信號發(fā)送給單片機, 單片機接收到信號后將旋轉(zhuǎn)后的對垃圾桶進行復(fù)位, 使垃圾桶回到初始位置。 紅外傳感器具有體積小,穩(wěn)定性強等特點。 紅外傳感器原理圖如圖4 所示。
圖4 紅外傳感器原理圖
選用28BYJ48 型步進電機控制垃圾桶進行旋轉(zhuǎn)。 該型號步進電機的驅(qū)動方式為4 相8 拍,最大轉(zhuǎn)速能力大約14 圈每分鐘,額定電壓為12V,牽入轉(zhuǎn)矩≥34.3mN·m,在滿足系統(tǒng)需求的同時還兼具速度快、功率小、噪聲低等優(yōu)勢。 STM32 單片機接收數(shù)據(jù)后進行判斷,控制1 個步進電機旋轉(zhuǎn),使得垃圾桶轉(zhuǎn)到對應(yīng)區(qū)域, 再控制另一個步進電機轉(zhuǎn)動垃圾擋板進行投放。
YOLOv5 采用端到端網(wǎng)絡(luò)結(jié)構(gòu),并將目標(biāo)檢測任務(wù)轉(zhuǎn)換為回歸問題,以直接檢測和分類目標(biāo)。它是通過整個圖像應(yīng)用一個卷積神經(jīng)網(wǎng)絡(luò)(CNN),把圖像分劃為網(wǎng)格,預(yù)測每個網(wǎng)格的類概率和邊界框。 YOLOv5 有四種版本,由于深度和寬度的不同分為s、l、m、x 四種版本。 而本文使用YOLOv5s。
YOLOv5s 模型的基本組件有:輸入端(Input)、主干網(wǎng)絡(luò)(Backbone)、Neck、數(shù)據(jù)輸出端(Prediction)。 Yolov5s的整體網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示。
圖6 Focus 結(jié)構(gòu)
本文以YOLOv5 算法為基礎(chǔ), 了解并使用它進行檢測目標(biāo)生活垃圾圖片, 通過YOLOv5 算法對垃圾圖像進行預(yù)處理,得到一張垃圾特征圖。 通過相關(guān)算法分析,得出垃圾分類結(jié)果,從而對垃圾進行分類,達到本文所研究的目的。 具體過程為:攝像頭端口檢測到垃圾,識別垃圾后傳送到Y(jié)OLOv5 的輸入端輸入。 為了提高模型的訓(xùn)練速度和網(wǎng)絡(luò)的準(zhǔn)確性,在輸入端采用了Mosaic 數(shù)據(jù)增強的方法,使垃圾圖片的Mini-batch 不用很大,而獲得更好的結(jié)果。 同時提出了能夠?qū)D像進行預(yù)處理并豐富了檢測數(shù)據(jù)集的方法——自適應(yīng)錨框計算與自適應(yīng)圖像縮放,獲得更多的目標(biāo)。通過輸入端對垃圾圖像進行隨機縮放、裁剪、分布、拼接后,得到一張新的圖像,并根據(jù)圖像的尺寸自適應(yīng)地向縮放后的圖像添加最少的黑邊。 經(jīng)過這樣處理后,計算量會大幅度減少。 YOLOv5 的主干網(wǎng)絡(luò)使用了Focus 結(jié)構(gòu),是Backbone 所獨有的,結(jié)構(gòu)如圖2 所示。 Backbone 利用CSP_X 把輸入分為兩部分,一部分通過CBL 經(jīng)過多個殘差組件卷積而成,另一部分通過使用普通卷積運算,豐富了梯度形式的多樣性。經(jīng)過Backbone的切片和卷積操作后,進入Neck。 Neck 部分堆疊了許多能夠提取特征融合的層,通過FPN+PAN 結(jié)構(gòu)把上層和下層的垃圾信息融合起來形成垃圾特征圖, 極大地減少了提取垃圾信息特征的損失。從Neck 獲得預(yù)測的垃圾特征圖, 最后進入Prediction 進行最后的剔除多余的預(yù)測框,從而得到準(zhǔn)確的垃圾特征圖,在經(jīng)過后續(xù)一系列操作后,得到目標(biāo)垃圾的分類信息,完成垃圾分類。
YOLOv5 最大的優(yōu)點是速度快,它能夠直接對單個圖像、批處理圖像、視頻甚至網(wǎng)絡(luò)攝像頭端口輸入,快速的檢測識別垃圾圖像中的目標(biāo), 直接在網(wǎng)絡(luò)中提取特征來預(yù)測目標(biāo)垃圾的分類和位置。 所以本文使用YOLOv5 對生活垃圾進行檢測分類,提高生活垃圾檢測分類的速率,從而提高垃圾分類再利用的效率。
3.1.1 數(shù)據(jù)集
生活垃圾的樣本集是垃圾檢測是否有效的關(guān)鍵,樣本集會對訓(xùn)練后模型的質(zhì)量產(chǎn)生影響。 本文收集了各種環(huán)境下的生活垃圾圖像,分為可回收垃圾、有害垃圾、廚余垃圾和其他垃圾,保證訓(xùn)練后的模型更具實用性。最后經(jīng)過篩選,共收集到生活垃圾圖片2745 張,每一類收集了約550 張垃圾圖像。 對收集的垃圾圖片按順序編號后進行重新命名(例如,00001.xml,00002.xml,……,01067.xml), 并劃分為訓(xùn)練集與測試集。 其中, 訓(xùn)練集一共有2545 張圖像, 用于測試的測試集有200 張圖像。 之后通過LabelImg 軟件對生活垃圾圖片進行標(biāo)注, 標(biāo)注的信息主要是垃圾分類類別, 并將圖片標(biāo)注的圖片格式由xml轉(zhuǎn)換成YOLOv5 的格式。
3.1.2 訓(xùn)練環(huán)境
本文為構(gòu)建生活垃圾檢測環(huán)境并對模型進行訓(xùn)練,使用Windows 10 作為實驗應(yīng)用的操作系統(tǒng),開發(fā)語言選擇Python 語言。 硬件參數(shù)詳見表1。
表1 硬件參數(shù)
在網(wǎng)絡(luò)模型訓(xùn)練過程中,具體的訓(xùn)練參數(shù)及訓(xùn)練設(shè)置情況如下:網(wǎng)絡(luò)模型訓(xùn)練階段,物體檢測驗證集較平穩(wěn),總迭代次數(shù)為300 次。 輸入圖片尺寸為640×640,batch-size 為16。
本文的單片機程序主要包含了主程序以及步進電機程序、紅外傳感程序等子程序。在對程序進行編寫時實現(xiàn)各個功能的模塊化,使得系統(tǒng)易于調(diào)試。
為了驗證模型的正確識別率, 一共選取了200 張圖像,包含分別從各種環(huán)境中采集的可回收垃圾、有害垃圾、廚余垃圾、其他垃圾圖像,從中各取50 張進行了混淆。 將圖像隨機分為4 組,每一組圖像集包含50 張垃圾圖像,然后使用模型對圖像進行識別。 得到的結(jié)果如表2 的所示。
表2 測試結(jié)果
由測試結(jié)果分析可知,模型有較好的識別率,平均識別率達到了96%,識別效果很好。對于不同環(huán)境的垃圾圖像都有較好的識別率, 證明了模型能夠滿足日常生活中人們對生活垃圾的分類需求, 解決現(xiàn)實生活中人們對生活垃圾分類的遇到的問題。
本文將目前垃圾分類的痛點與深度學(xué)習(xí)和嵌入式設(shè)備結(jié)合,提出了基于YOLOv5 的智能垃圾分類系統(tǒng),利用STM32F103ZET6 單片機作為控制器, 通過訓(xùn)練YOLOv5模型進行圖像識別, 能夠?qū)崿F(xiàn)垃圾自動分類和分揀的功能,有較好的識別率,滿足了系統(tǒng)設(shè)計的需求,并且有較強的實用價值。
在之后的改造中, 可以增加語音識別模塊、 配套的APP 開發(fā),以適應(yīng)更加復(fù)雜的場景下的使用需求。