吳 超 蔣鵬飛 呂 剛
(1.合肥學(xué)院生物食品與環(huán)境學(xué)院;2.合肥學(xué)院先進(jìn)制造工程學(xué)院 安徽合肥 230601)
隨著生活垃圾分類立法、執(zhí)法等工作的順利開展以及人工智能的飛速發(fā)展,視覺處理中的垃圾目標(biāo)檢測對垃圾處理工廠提升分揀效率、降低工人勞動(dòng)強(qiáng)度等方面有著重要的研究意義。近年來基于深度學(xué)習(xí)中目標(biāo)檢測準(zhǔn)確率高、模型學(xué)習(xí)速度快等特點(diǎn),?其在日常生活中的應(yīng)用場景越來越廣泛,眾多學(xué)者也轉(zhuǎn)向了目標(biāo)檢測的研究領(lǐng)域。深度學(xué)習(xí)目標(biāo)檢測根據(jù)設(shè)計(jì)理念的不同可分為有無anchor[1]兩大類:在anchor出現(xiàn)前,最初R-CNN[2]算法使用的Selective Search[3]方法以及滑動(dòng)窗口等方法,其中Selective Search方法是能夠分割出多達(dá)上千個(gè)候選區(qū)域,依據(jù)圖像顏色、紋理、合并后的最小總面積等原則生成兩個(gè)大概率存在目標(biāo)區(qū)域,最終輸出候選區(qū)域。Anchor的首次出現(xiàn)是在Faster R-CNN[1]中,一組3×3的Anchor框是人為地按照3種長寬比(0.5,1,2),3種縮放比(8,16,32)設(shè)置成,故并不適用于所有數(shù)據(jù)集。直到Y(jié)OLO(You Only Look Once)的出現(xiàn),在YOLO v2[4]中提出使用K-means聚類來自動(dòng)生成一組適用于特定數(shù)據(jù)集的特定尺寸的anchor,簡化工作量的同時(shí),可以使網(wǎng)絡(luò)的檢測效果更好。
深度學(xué)習(xí)目標(biāo)檢測識(shí)別算法飛速發(fā)展的成果也呈現(xiàn)在生活垃圾檢測識(shí)別領(lǐng)域:Ying Wang等人[5]采用RESNET作為特征提取網(wǎng)絡(luò),通過在城市自然環(huán)境中融合垃圾圖像的方式擴(kuò)充得到更多的數(shù)據(jù)集樣本,從而提高了模型的檢測精度和準(zhǔn)確率。彭昕昀[6]采用利用數(shù)據(jù)增強(qiáng)對SSD算法進(jìn)行垃圾識(shí)別檢測,但SSD的檢測框準(zhǔn)確率較低。Abeywickrama等人[7]將垃圾分類視為圖像分類,結(jié)合支持向量機(jī)與卷積神經(jīng)網(wǎng)絡(luò)對垃圾進(jìn)行了識(shí)別分類,得到較高的識(shí)別率。寧凱等人[8]對YOLO v3[9]網(wǎng)絡(luò)進(jìn)行輕量化改進(jìn)后在自制垃圾數(shù)據(jù)集上檢測準(zhǔn)確率較高,但是基于Darknet框架的YOLOv3在環(huán)境配置上較為復(fù)雜。
為了簡化生活垃圾目標(biāo)識(shí)別算法的網(wǎng)絡(luò)結(jié)構(gòu),選取了輕量化的YOLO v5[10]算法,并且為提高其在生活垃圾上的檢測精度,在識(shí)別外觀相似物體時(shí)擁有更高的的泛化性,本文提出了基于YOLO v5與層次化分類結(jié)合的生活垃圾識(shí)別算法。首先將部分相似類別的垃圾數(shù)據(jù)合并,并對類別較少的數(shù)據(jù)集進(jìn)行數(shù)據(jù)擴(kuò)充,在一定程度上緩解了數(shù)據(jù)分布不均衡的問題。對這些預(yù)處理數(shù)據(jù)使用VGG16[11]網(wǎng)絡(luò)依次訓(xùn)練得到八個(gè)分類器,將其與YOLO v5網(wǎng)絡(luò)模型的輸出融合,當(dāng)檢測網(wǎng)絡(luò)輸出類別與分類器對應(yīng)的類別相同時(shí),根據(jù)檢測模型輸出的位置信息將圖片進(jìn)行裁剪,輸入到對應(yīng)的分類器中進(jìn)行具體的分類,用于相似類別垃圾的具體分類。再將預(yù)測的類別提供給檢測模型的損失函數(shù)訓(xùn)練,以達(dá)到提升準(zhǔn)確率的目的,且此改進(jìn)算法結(jié)構(gòu)簡單清晰,訓(xùn)練方便。
(一)YOLO v5算法介紹。YOLO系列是非常經(jīng)典的one-stage[12]目標(biāo)檢測算法,YOLO v1[13]解決了通過直接擬合坐標(biāo)位置、寬高存在很明顯的缺陷;YOLOv2改為偏移量預(yù)測:采用了anchor機(jī)制局部預(yù)測,但YOLO v2還是存在小目標(biāo)預(yù)測不準(zhǔn)確的問題;YOLO v3隨著resnet[14]的出現(xiàn)網(wǎng)絡(luò)更深,backbone改為Darknet-53[15],檢測頭改為多尺度;YOLO v4[16]在bakbone更改為采用CSPDarknet53,數(shù)據(jù)增強(qiáng)采用了cutmix and mosaic,class label smoothing,網(wǎng)絡(luò)結(jié)構(gòu)采用了SPP、PAN、SAM網(wǎng)絡(luò)。
YOLO v5在YOLO v4的基礎(chǔ)上由Ultralytics公司提出,輸入端依然采用Mosaic的數(shù)據(jù)增強(qiáng)方式,即將四張圖片進(jìn)行隨機(jī)裁剪,再拼接到一張圖上作為訓(xùn)練數(shù)據(jù),提出了新的自適應(yīng)聚類設(shè)定anchor大小,將預(yù)測框和真實(shí)框的groundtruth進(jìn)行比對,計(jì)算兩者差距后反向更新迭代網(wǎng)絡(luò)參數(shù),同時(shí)能夠自適應(yīng)檢測圖片的大小縮放。如圖1所示,在Backbone上的主要是采用了Focus結(jié)構(gòu),主干網(wǎng)絡(luò)采用CSP1_X結(jié)構(gòu),在Neck上采用了FPN結(jié)構(gòu)和PAN結(jié)構(gòu)。由于YOLO v5模型的目標(biāo)檢測功能還能夠定位出垃圾所在位置,為我們生活垃圾識(shí)別的層次化分類算法研究提供了直接支持。
(二)基于YOLO v5與層次化分類算法的生活垃圾識(shí)別算法。YOLO v5極大地提升了算法的靈活性和速度的同時(shí),依然具有較高的識(shí)別準(zhǔn)確率。但是在實(shí)際實(shí)驗(yàn)過程中發(fā)現(xiàn),該算法在檢測外觀相似物體的過程中,類別的判定效果不佳,這極大的限制了垃圾目標(biāo)識(shí)別準(zhǔn)確率的提升。為了緩解這一不足,我們提出了基于YOLO v5與層次化分類算法的生活垃圾識(shí)別算法,該算法任務(wù)的框架如圖1所示。
圖1 改進(jìn)算法框架圖
算法核心是將原YOLO v5網(wǎng)絡(luò)輸出的三個(gè)不同尺寸的特征提取面,對特征提取面上的每個(gè)點(diǎn)構(gòu)建anchor,Anchor的構(gòu)建是通過K-mean聚類以及對應(yīng)本層特征提取面的尺寸得到的,再通過IOU和非極大值抑制篩選anchor,訓(xùn)練得到預(yù)測框和類別,根據(jù)預(yù)測框的位置對歸并類所指的位置區(qū)域進(jìn)行裁剪,將裁剪的圖片送入已訓(xùn)練好的VGG16網(wǎng)絡(luò)進(jìn)行精確分類,將得到的類別重新賦予YOLOv5的類別輸出,完成改進(jìn)網(wǎng)絡(luò)預(yù)測類別的替換。經(jīng)過類別損失函數(shù)優(yōu)化,進(jìn)行迭代訓(xùn)練,計(jì)算最終準(zhǔn)確率。
(三)損失函數(shù)。首先公式化定義基于YOLO v5與層次化分類算法的生活垃圾識(shí)別任務(wù)。由于希望控制在檢測過程中的時(shí)間成本,需要對分類模型傳入數(shù)據(jù)進(jìn)行訓(xùn)練,以得到預(yù)訓(xùn)練模型參數(shù)。假設(shè)N表示樣本數(shù),概率分布p為期望輸出,概率分布q為實(shí)際輸出,則分類任務(wù)可以公式化為:
其中L(p,q)表示交叉熵?fù)p失函數(shù),M表示類別數(shù),p(xij)表示變量如相同即為1,否則為0;q(xij)表示樣本i屬于類別j的預(yù)測概率。
而檢測識(shí)別部分class probability score采用了BCELoss(交叉熵?fù)p失),objectness score采用了BECWithLogitsLoss(BCEloss和sigmoid融合),bounding box采用了GIOU Loss:
其中A表示預(yù)測框,B表示標(biāo)簽框,C表示能夠把A與B圍起來的最小框,IoU表示預(yù)測框與真實(shí)框的交并比,C(A?B)表示C的面積減去(A?B)的面積。
改進(jìn)后的算法損失函數(shù)如式(6)所示:
其中Lcls(ci,)是基于原算法改進(jìn)的交叉熵?fù)p失函數(shù),表示檢測類別損失,其中表示真實(shí)類別,ci表示由(1)得到的預(yù)測類別。
改進(jìn)算法的損失函數(shù)主要在Lcls部分聯(lián)合分類網(wǎng)絡(luò)的輸出做了相應(yīng)的改進(jìn),簡化成更簡單的類別細(xì)分任務(wù),同時(shí)提高類別分類準(zhǔn)確率。
(一)實(shí)驗(yàn)數(shù)據(jù)與實(shí)驗(yàn)環(huán)境。本文試驗(yàn)數(shù)據(jù)集在VOC2007基礎(chǔ)上擴(kuò)充到44個(gè)類別包含19933張生活垃圾圖片,其中訓(xùn)練集13953張、測試集5980張分別用于原模型的訓(xùn)練和測試。后對其中的18個(gè)類別根據(jù)圖片的相似度合并為8個(gè)類別,制成總類別為34的數(shù)據(jù)集。通過對原數(shù)據(jù)標(biāo)簽格式轉(zhuǎn)換、劃分?jǐn)?shù)據(jù)類別、數(shù)據(jù)增強(qiáng)等方法完成數(shù)據(jù)預(yù)處理,緩解因數(shù)據(jù)不平衡對模型訓(xùn)練的影響。
本次實(shí)驗(yàn)操作系統(tǒng)為Ubuntu18,深度學(xué)習(xí)框架為Pytorch1.4,顯卡為 NVIDIA Quadro P5000,加速環(huán)境為CUDA11。
(二)改進(jìn)模型訓(xùn)練。本次實(shí)驗(yàn)分類模型的訓(xùn)練采用VGG16網(wǎng)絡(luò),根據(jù)數(shù)據(jù)標(biāo)簽的位置信息,將指定的目標(biāo)圖片對應(yīng)位置裁剪得到分類訓(xùn)練數(shù)據(jù),對類別較少的數(shù)據(jù)采用數(shù)據(jù)增強(qiáng)進(jìn)行圖片擴(kuò)充,圖片預(yù)處理后尺寸統(tǒng)一設(shè)置為90×90后輸入網(wǎng)絡(luò)得到8個(gè)預(yù)訓(xùn)練模型。檢測模型部分采用最小的YOLO v5s預(yù)訓(xùn)練模型,原始圖片尺寸統(tǒng)一設(shè)置為416×416,先后訓(xùn)練出原始44個(gè)類別的數(shù)據(jù)的檢測模型以及相似類別合并后改進(jìn)的34個(gè)類別的數(shù)據(jù)的檢測模型。圖2為改進(jìn)模型進(jìn)行3500次迭代的類別損失函數(shù)圖像。
圖2 改進(jìn)的YOLO v5損失函數(shù)圖像
訓(xùn)練參數(shù)betch size為32,共迭代次數(shù)為3500次,由圖中可以看出,改進(jìn)模型的損失函數(shù)在迭代到3000次左右時(shí)收斂到0.01附近,在迭代次數(shù)達(dá)到3500次后完成訓(xùn)練,得到最終檢測識(shí)別模型。
(三)實(shí)驗(yàn)測試及結(jié)果分析。訓(xùn)練得到的改進(jìn)模型通過在測試集上測試,得到的檢測效果如圖3所示。
圖3 多場景下檢測識(shí)別結(jié)果
圖4中顯示為多個(gè)類別在各種場景下的檢測識(shí)別結(jié)果,效果不錯(cuò),訓(xùn)練后的模型基本能夠準(zhǔn)確檢測出目標(biāo)位置,識(shí)別出其類別信息,且置信度較高。圖4中在光線不平衡的環(huán)境下依然能夠獲得不錯(cuò)的檢測識(shí)別結(jié)果,對于角落小物體的識(shí)別依然較為出色。說明改進(jìn)模型在應(yīng)對復(fù)雜環(huán)境下的生活垃圾檢測識(shí)別具有較高的普適性。
圖4 光線復(fù)雜環(huán)境下的檢測識(shí)別結(jié)果
為評估YOLO v5與層次化分類算法對生活垃圾識(shí)別的有效性,本文采用平均準(zhǔn)確率均值mAP(mean Average Precision)來作為衡量改進(jìn)的垃圾目標(biāo)識(shí)別模型性能的指標(biāo)。mAP是指所有類別目標(biāo)的準(zhǔn)確率AP(Average Precision)的均值。對改進(jìn)模型與原模型多次測試結(jié)果比較,繪制出表1。
表1 網(wǎng)絡(luò)模型改進(jìn)前后測試數(shù)據(jù)結(jié)果比較
由表1可以得出,原模型的AP88為33.1%,在垃圾目標(biāo)識(shí)別情景下取得了不錯(cuò)的識(shí)別準(zhǔn)確率。改進(jìn)后的模型的AP88比原模型高出了0.5%,比YOLO v3高出了26.2%。此外改進(jìn)模型的AP89、AP90較各模型均有較大程度的提高,且占據(jù)的優(yōu)勢越來越大,說明改進(jìn)的模型在預(yù)測框與真實(shí)框具有更大的重疊區(qū)域時(shí),表現(xiàn)得比原模型更為出色,準(zhǔn)確率也更高,其出現(xiàn)誤識(shí)別的幾率更小。
針對復(fù)雜環(huán)境下較多類別的垃圾檢測識(shí)別,本文采用了基于YOLO v5與層次化分類算法,包括對數(shù)據(jù)預(yù)處理、算法原理分析、檢測和分類模型的訓(xùn)練及后期優(yōu)化。通過大量的實(shí)驗(yàn)對比發(fā)現(xiàn),改進(jìn)后的YOLO v5算法能夠有效提升生活垃圾識(shí)別的準(zhǔn)確率,在復(fù)雜環(huán)境下依然能夠較原模型發(fā)揮出較大的優(yōu)勢。由于條件限制,本文所使用的數(shù)據(jù)集數(shù)量相對欠缺,對最終模型的表現(xiàn)關(guān)聯(lián)較大,導(dǎo)致小物體的特征學(xué)習(xí)較為困難,在測試數(shù)據(jù)集上的泛化性有所欠缺。接下來的工作中,還需要對數(shù)據(jù)樣本進(jìn)行擴(kuò)充優(yōu)化分類模型,在保障現(xiàn)有性能的基礎(chǔ)上解決更低IoU的識(shí)別準(zhǔn)確率問題,進(jìn)一步提高本算法的魯棒性。