錢昱成 符水波
(寧波市鎮(zhèn)海蛟川書院 浙江省寧波市 315201)
隨著人民生活水平的不斷提高,我國(guó)的垃圾產(chǎn)生量逐年急劇增加,由此帶來(lái)的環(huán)境污染,資源浪費(fèi)等問(wèn)題不斷突出,亟待解決。遵循減量化、資源化、無(wú)害化的原則,實(shí)施生活垃圾分類,可以有效改善城鄉(xiāng)環(huán)境,促進(jìn)資源回收利用,加快“兩型社會(huì)”建設(shè),提高新型城鎮(zhèn)化質(zhì)量和生態(tài)文明建設(shè)水平。在政策制定及社會(huì)環(huán)境驅(qū)動(dòng)下,根據(jù)實(shí)際特點(diǎn),采取不同分類及收運(yùn)方法,有效解決現(xiàn)代城市生活垃圾混合清運(yùn)單一模式,提高城市生活資源化及無(wú)害化水平,是未來(lái)發(fā)展的主旋律。隨著環(huán)保進(jìn)程的推進(jìn),如何將垃圾進(jìn)行快速準(zhǔn)確分類是當(dāng)下實(shí)現(xiàn)環(huán)保目標(biāo)首要考慮的問(wèn)題[1,2]。上海市生活垃圾條例推行至今,市容建設(shè)與環(huán)境的保護(hù)顯然取得較大成就[3]。但在目前大部分城市要求居民定時(shí)定點(diǎn)投放,對(duì)城市居民的生活造成極大不便。時(shí)間上的強(qiáng)制性使居民無(wú)法自由支配投遞行為,而在垃圾投擲點(diǎn)的設(shè)定上,位置的選擇與數(shù)量的安排,可能使居民需要行走比之前更多的路程進(jìn)行投放。大部分居民易對(duì)垃圾分類錯(cuò)誤,這就要求大量的管理人員投入,運(yùn)行效率低下,同時(shí)引進(jìn)的智能垃圾桶,雖然在一定程度上緩解了投放壓力,但目前完全智能化的設(shè)備還只是理想化的,不能適應(yīng)當(dāng)下的實(shí)際情形,造成了很大的資源浪費(fèi)問(wèn)題[4,5]。如何在復(fù)雜環(huán)境下提高視覺(jué)分類的準(zhǔn)確度,垃圾是商品的變異體,在居民投放垃圾時(shí),每個(gè)類別的垃圾是不完整、不規(guī)則的,在實(shí)際情況中數(shù)據(jù)集的獲取和模型識(shí)別結(jié)果都是非理想化的,這就造成了完全依賴人工智能技術(shù)在實(shí)際應(yīng)用中是有很大困難的。
針對(duì)以上問(wèn)題,本文基于SSD網(wǎng)絡(luò)研究了城市生活垃圾分類,在復(fù)雜場(chǎng)景下保證檢測(cè)準(zhǔn)確率的同時(shí),實(shí)現(xiàn)多尺度特征圖預(yù)測(cè),基于Pytorch框架,進(jìn)行了垃圾分類檢測(cè)準(zhǔn)確率測(cè)試。
SSD框架是當(dāng)下主流的目標(biāo)檢測(cè)框架之一,是一種one-stage的通用物體檢測(cè)算法。該算法基于前饋神經(jīng)網(wǎng)絡(luò),在網(wǎng)絡(luò)接收到圖片后,首先會(huì)生成一系列默認(rèn)固定尺寸大小的邊界框,根據(jù)生成的檢測(cè)框?qū)騼?nèi)物體進(jìn)行檢測(cè)分類,給與置信度評(píng)分。整個(gè)網(wǎng)絡(luò)的訓(xùn)練不斷的匹配真實(shí)框,以達(dá)到最好的識(shí)別效果,在最后檢測(cè)的框中使用非極大值抑制方法,得到最終的預(yù)測(cè)結(jié)果[6]。該算法主要由兩部分構(gòu)成,第一部分是基于VGG16的特征提取網(wǎng)路,第二部分將VGG16中的兩個(gè)全連接層(FC6,FC7)改成了卷積層Conv6,Conv7,同時(shí)增加了卷積Conv8、Conv9、Conv10、Conv11共4個(gè)特征層,從而實(shí)現(xiàn)在不同特征層的預(yù)測(cè)。訓(xùn)練中每張圖片送進(jìn)網(wǎng)絡(luò)后獲得多個(gè)特征圖(feature map),對(duì)于正樣本訓(xùn)練來(lái)說(shuō),需要先將先驗(yàn)框(prior box)與真實(shí)標(biāo)注框(ground truth box)做匹配,當(dāng)預(yù)測(cè)框與真實(shí)標(biāo)注框重疊的比值大于閾值0.5時(shí),該目標(biāo)為正樣本,通過(guò)閾值分類正負(fù)樣本,使正負(fù)樣本按3:1的比例參與網(wǎng)絡(luò)訓(xùn)練。匹配成功說(shuō)明這個(gè)先驗(yàn)框所包含的是目標(biāo)物體,但離完整目標(biāo)的真實(shí)標(biāo)注框不能完全匹配,訓(xùn)練的目的是保證先驗(yàn)框分類置信度的同時(shí),將先驗(yàn)框盡可能回歸到真實(shí)標(biāo)注框。
為更好的適應(yīng)解決垃圾分類問(wèn)題,對(duì)該框架做出相應(yīng)的修改,以提高檢測(cè)精確度。其主要思路就是均勻地在圖片上不同位置進(jìn)行密集抽樣,抽樣時(shí)可以采用不同尺度和長(zhǎng)寬比,然后經(jīng)過(guò)特征提取網(wǎng)絡(luò)后直接進(jìn)行分類和回歸。在特征提取過(guò)程中使用應(yīng)用于要素圖的小卷積濾波器來(lái)預(yù)測(cè)固定的默認(rèn)邊界框的類別得分和框偏移,從不同尺度的特征圖中快速檢測(cè)不同尺度的準(zhǔn)確度,并通過(guò)縱橫比明確區(qū)分預(yù)測(cè),即使在低分辨率輸入圖像上,這些設(shè)計(jì)特征也可實(shí)現(xiàn)端到端訓(xùn)練和高精度,從而進(jìn)一步提高速度與精度之間的權(quán)衡。首先考慮到圖片數(shù)據(jù)的采集和應(yīng)用初始時(shí)很大程度上是不適應(yīng)網(wǎng)絡(luò)輸入和訓(xùn)練的,采用圖像調(diào)整的方法對(duì)送入網(wǎng)絡(luò)的圖片進(jìn)行重塑,另外考慮到圖像數(shù)據(jù)可能是不完整、不規(guī)則的、甚至是不清晰的?;趯?duì)該問(wèn)題的分析,采用對(duì)圖像數(shù)據(jù)進(jìn)行增強(qiáng)的一些操作,包括圖像的等比填充縮放裁剪,水平翻轉(zhuǎn)、高斯噪聲等方法。先將原始圖像以最大邊為基準(zhǔn)做等比縮放,不足的地方填充0,這里縮放后的邊是最終輸入邊長(zhǎng)的256/224倍,然后在進(jìn)行剪切,輸入模型的圖像數(shù)據(jù)大小為300*300。在特征提取階段采用resnet101網(wǎng)絡(luò)作為基礎(chǔ)主干網(wǎng)絡(luò),在垃圾識(shí)別算法中加入基于特征金字塔(Pyramidal Feature Hierarchy)的檢測(cè)方式,特征層從低到高,其感受野由小到大,不同特征層用于檢測(cè)不同尺寸的物體,即在不同感受野的特征圖上進(jìn)行物體預(yù)測(cè)。在n個(gè)特征圖進(jìn)行預(yù)測(cè)時(shí)每個(gè)特征圖先驗(yàn)框的尺寸(scale)大小是不一樣的,最低層的scale=0.2,最高層的scale=0.95,其他層的計(jì)算公式如下:
在n個(gè)特征層得到8732個(gè)先驗(yàn)框的預(yù)測(cè)結(jié)果,然而大部分預(yù)測(cè)結(jié)果是無(wú)用的,需要對(duì)這些預(yù)測(cè)結(jié)果進(jìn)行篩選:
(1)對(duì)于某個(gè)類別,將分類預(yù)測(cè)的<置信度閾值的框刪除;
(2)將該類別篩選后的框按照置信度降序排序;
(3)對(duì)篩選后的框采用非極大值抑制(NMS)。
模型損失函數(shù)為多任務(wù)損失函數(shù),包含了分類損失和定位損失:
分類損失為:
定位損失為:
如圖1為基于SSD算法的垃圾分類檢測(cè)系統(tǒng)的架構(gòu)圖,首先通過(guò)裝載在垃圾桶上的攝像頭對(duì)所投放垃圾進(jìn)行圖像的采集,將采集到的圖像使用OpenCV算法進(jìn)行預(yù)處理,之后送入SSD框架進(jìn)行識(shí)別,得到識(shí)別結(jié)果后判斷此次垃圾投放是否正確,若正確則投放完成,否則提示投放者重新投放。
圖1:系統(tǒng)架構(gòu)圖
實(shí)驗(yàn)使用的操作系統(tǒng)環(huán)境為Ubuntu16.04,選擇Pytorch作為深度學(xué)習(xí)框架。該框架語(yǔ)法簡(jiǎn)便,開(kāi)發(fā)環(huán)境容易搭建。封裝多個(gè)神經(jīng)網(wǎng)絡(luò)模塊,能夠快速搭建網(wǎng)絡(luò)。做到CPU與GPU資源切換。顯卡型號(hào)為 Nvidia GTX2080Ti 11G,實(shí)驗(yàn)基于GPU運(yùn)行,開(kāi)發(fā)工具為PyCharm,使用OpenCV處理圖片。
訓(xùn)練模型所采用數(shù)據(jù)集使用開(kāi)源的垃圾分類相關(guān)圖像和真實(shí)場(chǎng)景下的垃圾分類數(shù)據(jù)圖像??紤]到現(xiàn)實(shí)場(chǎng)景中的垃圾分類圖像與開(kāi)源數(shù)據(jù)集的圖像有所差異,為了更好的訓(xùn)練網(wǎng)絡(luò),滿足現(xiàn)實(shí)場(chǎng)景中垃圾分類的要求,我們使用攝像頭在小區(qū)的投放站點(diǎn)采集一部分實(shí)時(shí)數(shù)據(jù)用于構(gòu)成訓(xùn)練集和測(cè)試集,由于SSD網(wǎng)絡(luò)接受圖像大小尺寸是固定的,因此為了保證在網(wǎng)絡(luò)訓(xùn)練中小目標(biāo)物體也能得到很好的訓(xùn)練,圖像的分辨率沒(méi)有設(shè)置的很高。圖像數(shù)據(jù)的格式為JPG。獲取到的圖像使用開(kāi)源工具LabelImage軟件進(jìn)行人工標(biāo)注,數(shù)據(jù)集的格式為PASCAL VOC,每個(gè)圖像對(duì)應(yīng)一個(gè)XML文件。
為了驗(yàn)證模型是否有效,通過(guò)在57種垃圾類別共30000張圖像上訓(xùn)練垃圾分類模型,3500張圖像用于測(cè)試,最終所有類別均值平均精度(mAP)為75.45%,表1為測(cè)試的部分類別平均精度(AP)數(shù)據(jù)。
表1:部分類別平均精度(AP)數(shù)據(jù)
將得到的SSD模型應(yīng)用到實(shí)際生活中,通過(guò)垃圾桶上攝像頭采集垃圾投放圖像,將圖像中垃圾進(jìn)行識(shí)別以判斷投放垃圾是否符合垃圾分類標(biāo)準(zhǔn),效果如圖2所示。
圖2:垃圾目標(biāo)檢測(cè)
隨著社會(huì)的快速發(fā)展,環(huán)境惡化問(wèn)題日益突出,而垃圾分類也成為人們對(duì)環(huán)境最直接的影響。本文在垃圾分類中應(yīng)用SSD算法,減輕定點(diǎn)定時(shí)投放帶來(lái)的人力資源消耗,通過(guò)實(shí)驗(yàn)以及實(shí)際應(yīng)用證明了該算法在確認(rèn)人們垃圾分類是否投放正確上具有可行性,模型具有高準(zhǔn)確率與魯棒性。但是,垃圾中不乏有更小的目標(biāo)難以識(shí)別,所以,將來(lái)有必要在小目標(biāo)檢測(cè)上進(jìn)一步對(duì)算法進(jìn)行優(yōu)化,從社會(huì)發(fā)展來(lái)看,基于人工智能算法的垃圾分類檢測(cè)系統(tǒng)會(huì)被廣泛使用。