王一田, 唐開強, 留滄海,3, 劉 東
(1.西南科技大學(xué) 制造科學(xué)與工程學(xué)院,四川 綿陽 621000; 2.南京大學(xué) 工程管理學(xué)院 控制與系統(tǒng)工程系,江蘇 南京 210093; 3.制造過程測試技術(shù)省部共建教育部重點實驗室,四川 綿陽 621000)
近年來,隨著人口密度的增加和城市功能的復(fù)雜化,機場等大型公共場合不斷增多,清潔工作壓力巨大[1]。目前,地面清潔的自動化程度較低,大多公共場合仍采用人工清掃或者手推清掃車的方式,工作效率低,清潔效果判斷偏主觀性。雖然當今對于清潔機器人的研究眾多,但是在垃圾檢測與清潔度等級標定方面的相關(guān)研究較少。機器人在地面的清潔方式主要還是人為引導(dǎo)或全覆蓋式清潔,地面的清潔度依舊需要人為視覺判斷,缺乏一個自動的反饋過程,造成許多不必要的資源浪費。
因此,清潔機器人需要類似安裝了視覺傳感器[2],對地面的垃圾情況有較好的認識與感知。傳統(tǒng)的垃圾檢測方法主要有以下三種:1)人為視覺觀察法;2)圖像邊緣檢測法[3];3)特征匹配法[4]。其中,人為視覺觀察判斷的方法不能自動檢測,并且判斷的效率低;而邊緣檢測的方法雖可以檢測出垃圾,卻不能定量地標定出垃圾,因而檢測準確率低;特征匹配的方法則需要采集大量的樣本,因此效率非常低,并且無法識別出樣本庫里缺失的特征。近年來,基于深度學(xué)習的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[5~7]在目標檢測領(lǐng)域不斷發(fā)展,受到了研究者們的一致青睞。Ren S等人設(shè)計出基于候選區(qū)域的深度學(xué)習目標檢測算法Faster R-CNN[8],其在Fast R-CNN[9]檢測模塊上引入RPN(region proposal network)網(wǎng)絡(luò)以提取候選框,實現(xiàn)了端到端的網(wǎng)絡(luò)學(xué)習,但是檢測速度仍較慢,達不到實時的要求。期間,Redmon J等人在2016年提出基于回歸的目標檢測算法,YOLO(you only look once)[10],實現(xiàn)了目標識別與定位的統(tǒng)一,提高了實時性,但準確率卻差于Faster R-CNN。經(jīng)過Redmon等人不斷地研究,先后提出改進版的YOLO v2[11]和YOLO v3[12],準確率進一步提高。YOLO v3目前已是目標識別與檢測方面最優(yōu)秀的算法之一,準確率高且實時性好。
為此,本文提出一種基于YOLO v3算法的地面垃圾檢測與清潔度評定方法與系統(tǒng),利用基于YOLO v3算法的Jetson TX2進行地面垃圾檢測分類和清潔度評定,將最終測出的清潔度等級結(jié)果反饋給STM32,經(jīng)過控制中心的集中處理,實現(xiàn)通過獲取巡檢小車視覺信息來指揮清潔機器人完成定點清潔、再次清潔以及分類清潔等任務(wù),以達到較好清潔效果的目的,同時更加節(jié)約資源和時間。
本文的地面清潔度檢測系統(tǒng)主要由遙控器、USB攝像頭、NVIDIA Jetson TX2,STM32F4單片機、垃圾巡檢小車、地面清潔機器人組成。其中Jetson TX2屬于圖像檢測模塊,STM32F4單片機屬于運動控制模塊,巡檢小車為攝像頭和Jetson TX2的載體,清潔機器人為動作執(zhí)行模塊。此外,Jetson TX2的GPU為NVIDIA Pascal架構(gòu)、256 CUDA核心,操作系統(tǒng)為Ubuntu16.04;深度學(xué)習框架為PyTorch。
當用戶利用遙控器發(fā)起啟動命令,STM32響應(yīng)并控制垃圾巡檢小車運動;當用戶要求檢測地面清潔度時,Jetson TX2調(diào)用攝像頭對地面垃圾圖像進行采集;同時,STM32響應(yīng)命令并要求Jetson TX2讀取采集到的圖像信息,并且調(diào)用YOLO v3訓(xùn)練好的模型進行垃圾檢測分類與清潔度等級的評定,然后將檢測結(jié)果通過串口通信方式下發(fā)給STM32;STM32根據(jù)用戶的清潔要求對清潔度等級不達標的位置做標記(讀取傳感器顯示的位置信息),并通過其藍牙模塊將標記的位置信息反饋給清潔機器人控制中心,進而控制機器人到達指定地點作業(yè)。期間,小車的位置標記和機器人的導(dǎo)向由各自配備的傳感器實現(xiàn),通過傳感器實時采集小車和機器人狀態(tài),并將狀態(tài)信息反饋給STM32,形成反饋控制。整個系統(tǒng)各模塊間緊密相連,其框圖如圖1所示。

圖1 清潔度檢測系統(tǒng)框圖
YOLO v3是YOLO系列目標檢測算法的第三代,其繼承了YOLO v2檢測速度快的優(yōu)點,同時檢測精度也有顯著提升,特別是對于小目標的檢測,因而比較適合本文的垃圾目標檢測。YOLO v3使用了殘差網(wǎng)絡(luò)結(jié)構(gòu),使網(wǎng)絡(luò)在很深的情況下仍能收斂,模型能訓(xùn)練下去,從而提升檢測效果。
如圖2所示,在YOLO v3算法的檢測過程中,首先將輸入圖像統(tǒng)一歸一化為416像素×416像素,然后將圖像劃分成13×13的網(wǎng)格,輸入深度神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練[13]。當某個垃圾的中心位置的坐標落入到某個網(wǎng)格,那么這個網(wǎng)格就負責檢查邊界框及其置信度,從而檢測出該垃圾。其中,置信度則體現(xiàn)該網(wǎng)格是否含有地面垃圾目標,是什么類別以及其檢測準確率。

圖2 YOLO v3檢測過程
截止目前,已經(jīng)有許多基于YOLO v3算法的研究應(yīng)用成果。Zhang X等人實現(xiàn)了一種自適應(yīng)車道檢測方法[14],提高了復(fù)雜場景下車道檢測的適應(yīng)能力;Li J等人實現(xiàn)PCB電子元器件檢測[15];潘衛(wèi)國等人提出基于感興趣區(qū)域的交通標志牌檢測方法[16],在無人駕駛和輔助駕駛領(lǐng)域做出了一定的貢獻。
本文根據(jù)Sevilla A等人提出的街道清潔度指數(shù)(cleanliness index,CI)的量化方法[17](該方法被西班牙省市聯(lián)合會認可為唯一能夠真實反映城市街道清潔度指數(shù)),來類似地評定地面清潔度等級。由此,地面清潔度指數(shù)(ground cleanliness index,GCI)被定義來量化地面的潔凈程度,該指數(shù)與地面垃圾數(shù)量、種類,以及地面擺設(shè)情況有關(guān)。表1劃分了5個地面清潔度指數(shù)值區(qū)間,以及對應(yīng)的不同清潔度等級,GCI值越大,地面越臟。

表1 地面清潔度指數(shù)分類
GCI的計算方法定義為式(1)所示
(1)
式中λ和n為考慮到影響地面清潔度的修正系數(shù)。λ考慮了地面的破損情況,本文實驗地面保護良好,無破損情況,即λ=1。n考慮到特殊情況下垃圾數(shù)量的突變,例如在垃圾桶附近可能增加垃圾數(shù)量,此系數(shù)取值在1~2之間,本文取n=1,即表示不存在此類情況的突變。S表示觀測區(qū)域(observation area,OA),本文具體表示為攝像頭的拍攝視角范圍,取為12.5 m2。C表示不同垃圾類別在觀測區(qū)域內(nèi)的權(quán)重系數(shù),乘以相應(yīng)垃圾類別的數(shù)量即可實現(xiàn)該類垃圾的量化,如表2所示。表中有機垃圾與無機垃圾都根據(jù)垃圾數(shù)量被細分為小、中、大三類,分別對應(yīng)不同的權(quán)重值。當垃圾數(shù)量在0~3之間,將被歸為小類;在4~6之間歸為中類;大于等于7歸為大類。

表2 垃圾種類及其權(quán)重值
實驗平臺為11 GB NVIDIA GeForce RTX2080Ti GPU,Intel 酷睿I9—9900K,3.6 GHz處理器,64 GB運行內(nèi)存,操作系統(tǒng)為Ubuntu 16.04。實驗的訓(xùn)練和測試過程都是在同樣的軟件平臺下進行,即PyCharm和OpenCV 3.4.2。
為了驗證本文檢測方法的有效性,選擇1號實驗室和寢室的地面作為實驗對象,采用人工拍攝垃圾圖片的形式來組成地面垃圾檢測的數(shù)據(jù)庫。由于地面上的垃圾種類繁多且分布復(fù)雜,因此將常見的垃圾種類分為5種,即紙巾、廢塑料、煙頭、灰塵堆、黏性污漬。將垃圾樣本置于場地的各個方位與位置,進行不同角度和距離地采樣,共采集了2 348張RGB圖片。對所有圖片進行縮放、旋轉(zhuǎn)、翻轉(zhuǎn)和對比度變換等操作得到新的樣本數(shù)據(jù),這一步可提高檢測模型對于不同方向和光照下的魯棒性,并且豐富數(shù)據(jù)庫以及防止數(shù)據(jù)過擬合,最終得到共7 045張圖片數(shù)據(jù),其中5 285張作為訓(xùn)練集,1 760張作為測試集。接下來將每一張圖片歸一化為416×416尺寸,并利用Labeling進行人工標注,框選出圖片中的垃圾,生成相應(yīng)的標簽。注意需保證每張圖片中的一種垃圾只能對應(yīng)一個標簽,最終導(dǎo)出.xml文件。
3.2.1 模型訓(xùn)練與測試
本文采用YOLO v3網(wǎng)絡(luò)對地面垃圾數(shù)據(jù)集進行訓(xùn)練,由于垃圾巡檢小車在運動過程中,采集的地面圖像中垃圾尺寸可能會大幅變化,因而利用多尺度訓(xùn)練策略進行網(wǎng)絡(luò)訓(xùn)練。經(jīng)過20 000次迭代訓(xùn)練,最終確定模型參數(shù)為:學(xué)習率0.001,訓(xùn)練動量0.9,權(quán)重衰減參數(shù)0.000 5。
1)測試集檢測
將測試集的圖片輸入到模型中進行檢測,部分檢測效果如圖3所示。

圖3 測試集部分檢測效果
從圖3中可以看出,模型的檢測效果總體上比較好,但個別垃圾類型的檢測準確率不穩(wěn)定,矩形框框選得不太理想,尤其表現(xiàn)在廢塑料和紙巾類。從實驗結(jié)果分析,首先是因為檢測的目標不規(guī)則性較強(如灰塵堆、廢塑料),檢測難度大;其次目標反光或透明(如干凈的紙巾、塑料透明部分),易導(dǎo)致誤識或框選不好的情況;另外,采集的樣本數(shù)據(jù)集不夠豐富,模型的適應(yīng)性還不足。
統(tǒng)計所有測試集圖片的檢測結(jié)果,計算各類垃圾的檢測準確率,結(jié)果分別為紙巾84.8 %,廢塑料84.1 %,煙頭93.6 %,灰塵堆91.3 %,黏性污漬87.7 %。
2)視頻實時檢測
為了測試模型的實時檢測效果,利用巡檢小車系統(tǒng)分別在1號實驗室和寢室兩個不同環(huán)境下采集視頻文件,然后通過抽幀處理得到連續(xù)的圖片,調(diào)用訓(xùn)練好的垃圾檢測模型對圖像進行檢測。圖4為檢測效果圖,各視頻都是在不同距離或不同視角下拍攝的。

圖4 實時檢測效果
視頻一為紙巾、廢塑料和煙頭在1號實驗室的實時檢測效果,視頻共抽取1 600幀,最終準確率為81.12 %。可以看到由于廢塑料有一部分是透明的,導(dǎo)致模型對廢塑料的框選效果不太理想。此外,由于廢塑料的一端黑色部分與黏性污漬類垃圾相似度較高,存在誤識現(xiàn)象,共發(fā)生了189幀的誤識。
視頻二為煙頭在1號實驗室的實時檢測效果,共抽取1 360幀,由圖4(b)可知模型對于單類垃圾的檢測效果比較好,準確率達到了86.32 %。不過也存在將地面的反光點誤識為紙巾的現(xiàn)象,誤識幀數(shù)為175幀。
視頻三為煙頭和紙巾在寢室環(huán)境下的實時檢測效果,共抽取1 320幀,拍攝視角變化設(shè)置為沿順時針方向。從圖4(c)可以看出,模型偶爾誤識白色墻壁為紙巾,原因為兩者之間有一定的相似度;當攝像頭處于能拍到地面比較反光的視角時,存在誤識地面為紙巾的情況;此外,由于紙巾形狀不規(guī)則,在不同視角下的檢測準確率有較大變化,矩形框的框選也存在不太理想的情況。最終,誤識幀數(shù)達到了217幀,準確率為75.38 %。
3)算法對比檢測
為了進行算法對比評價,將本文的垃圾檢測模型與表現(xiàn)優(yōu)異的同類目標檢測算法Faster R-CNN在相同的測試集上進行對比測試,如表3。

表3 網(wǎng)絡(luò)對比結(jié)果
分別用準確率(P)、召回率(R)、平均精度(mAP)、交并比(IoU)和平均幀率(fps)來評估模型性能,檢測結(jié)果如表3所示。從表中可以看出,本文模型檢測準確率為90.6 %,比Faster R-CNN高2.8個百分點;平均精度為88.3 %,比Faster R-CNN高2.7個百分點;IoU為87.5 %,比Faster R-CNN略高0.6 %;平均幀率達到了28幀/s。
本文YOLO v3模型的垃圾檢測性能優(yōu)于Faster R-CNN,通過豐富不同環(huán)境、光照、角度和距離等數(shù)據(jù)集,模型擁有了較強的適應(yīng)能力,各項指標表明其基本能夠滿足地面垃圾檢測的要求。
3.2.2 實際場地的清潔度檢測
選取2號實驗室的地面作為實際測試場地,攝像頭搭載在小車上的拍攝范圍取為12.5 m2,拍攝點設(shè)定為每隔3.5 m距離拍攝一組圖片,其中同組各圖片的拍攝位置和角度不固定,最終遍歷整個場地。
運行Jetson TX2并調(diào)用YOLO v3訓(xùn)練好的模型,對地面圖像進行檢測。最終,在模型檢測后的圖片中,被檢測到的垃圾會被標記上矩形框,同時以標簽形式顯示出垃圾種類及其置信度。為方便后續(xù)地面清潔度指數(shù)的計算,需分別對各個觀測區(qū)域內(nèi)的垃圾數(shù)量進行統(tǒng)計,也即統(tǒng)計模型檢測出的矩形框數(shù)量,并計算出各區(qū)域的清潔度指數(shù),最后匯總得出整個測試場地的清潔度指數(shù)。
最終各觀測區(qū)域的地面垃圾檢測統(tǒng)計結(jié)果為:3塊紙巾,1個廢塑料,2個煙頭,一個灰塵堆,以及3塊黏性污漬。對于一個觀測區(qū)域內(nèi)的地面清潔度指數(shù)(GCIOA)可由式(2)表示
(2)
式中i為垃圾種類數(shù),Ni為區(qū)域內(nèi)該類垃圾的數(shù)量,Ci為該類垃圾所對應(yīng)的權(quán)重值。λ和n見2.2節(jié)所介紹,本文均取1。
根據(jù)所分的5種垃圾類別,在表2中找到它們相應(yīng)的權(quán)重值,從而可以加權(quán)出總的清潔度指數(shù)。按照垃圾分類方法,將紙巾歸類為有機垃圾,把廢塑料和煙頭歸類為無機垃圾,灰塵堆為未收集的清掃廢物,黏性污漬歸類為黏性殘留物。
根據(jù)2號實驗室的檢測統(tǒng)計結(jié)果,利用式(2)計算測試場地各觀測區(qū)域的GCIOA值并匯總,表4所示為垃圾數(shù)量及其加權(quán)總值。因此,2號實驗室的匯總后的地面清潔度指數(shù)可計算為
查表1可知,2號實驗室的地面清潔度等級屬于低等的4級。本文設(shè)定當清潔度等級低于2級時,就認為地面不夠干凈,需要清潔機器人進行垃圾定點清潔,以及不同垃圾分類清潔。對于廢塑料、煙頭和紙巾類垃圾可以直接采用清掃的方式清潔,灰塵堆則需要采用吸除的方式,而黏性污漬則首先需要采用物理刮除或清潔劑清洗,然后再清掃或吸除。

表4 垃圾數(shù)量及其加權(quán)總值
通過自建數(shù)據(jù)集來訓(xùn)練地面垃圾檢測模型,實驗檢測結(jié)果表明:模型在測試集上的mAP達到了88.3 %,平均幀率達到了28幀/s,基本能夠滿足地面垃圾檢測的要求。在實際場地測試中實現(xiàn)了對地面垃圾的分類與量化,評定出了清潔度等級,以便于清潔機器人高效地完成定點清潔、再次清潔以及分類清潔等作業(yè)。本文為避免機器人盲目清潔作業(yè)而浪費時間和資源提供了一種解決方案。未來研究可以增加實際的垃圾類別與場景,提高垃圾檢測模型對各種垃圾特征和屬性的檢測適應(yīng)性,使清潔機器人達到更高效、更高質(zhì)量的自主和協(xié)作作業(yè)能力。