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