王一田, 唐開強, 留滄海,3, 劉 東
(1.西南科技大學 制造科學與工程學院,四川 綿陽 621000; 2.南京大學 工程管理學院 控制與系統(tǒng)工程系,江蘇 南京 210093; 3.制造過程測試技術省部共建教育部重點實驗室,四川 綿陽 621000)
近年來,隨著人口密度的增加和城市功能的復雜化,機場等大型公共場合不斷增多,清潔工作壓力巨大[1]。目前,地面清潔的自動化程度較低,大多公共場合仍采用人工清掃或者手推清掃車的方式,工作效率低,清潔效果判斷偏主觀性。雖然當今對于清潔機器人的研究眾多,但是在垃圾檢測與清潔度等級標定方面的相關研究較少。機器人在地面的清潔方式主要還是人為引導或全覆蓋式清潔,地面的清潔度依舊需要人為視覺判斷,缺乏一個自動的反饋過程,造成許多不必要的資源浪費。
因此,清潔機器人需要類似安裝了視覺傳感器[2],對地面的垃圾情況有較好的認識與感知。傳統(tǒng)的垃圾檢測方法主要有以下三種:1)人為視覺觀察法;2)圖像邊緣檢測法[3];3)特征匹配法[4]。其中,人為視覺觀察判斷的方法不能自動檢測,并且判斷的效率低;而邊緣檢測的方法雖可以檢測出垃圾,卻不能定量地標定出垃圾,因而檢測準確率低;特征匹配的方法則需要采集大量的樣本,因此效率非常低,并且無法識別出樣本庫里缺失的特征。近年來,基于深度學習的卷積神經網(wǎng)絡(convolutional neural network,CNN)[5~7]在目標檢測領域不斷發(fā)展,受到了研究者們的一致青睞。Ren S等人設計出基于候選區(qū)域的深度學習目標檢測算法Faster R-CNN[8],其在Fast R-CNN[9]檢測模塊上引入RPN(region proposal network)網(wǎng)絡以提取候選框,實現(xiàn)了端到端的網(wǎng)絡學習,但是檢測速度仍較慢,達不到實時的要求。期間,Redmon J等人在2016年提出基于回歸的目標檢測算法,YOLO(you only look once)[10],實現(xiàn)了目標識別與定位的統(tǒng)一,提高了實時性,但準確率卻差于Faster R-CNN。經過Redmon等人不斷地研究,先后提出改進版的YOLO v2[11]和YOLO v3[12],準確率進一步提高。YOLO v3目前已是目標識別與檢測方面最優(yōu)秀的算法之一,準確率高且實時性好。
為此,本文提出一種基于YOLO v3算法的地面垃圾檢測與清潔度評定方法與系統(tǒng),利用基于YOLO v3算法的Jetson TX2進行地面垃圾檢測分類和清潔度評定,將最終測出的清潔度等級結果反饋給STM32,經過控制中心的集中處理,實現(xiàn)通過獲取巡檢小車視覺信息來指揮清潔機器人完成定點清潔、再次清潔以及分類清潔等任務,以達到較好清潔效果的目的,同時更加節(jié)約資源和時間。
本文的地面清潔度檢測系統(tǒng)主要由遙控器、USB攝像頭、NVIDIA Jetson TX2,STM32F4單片機、垃圾巡檢小車、地面清潔機器人組成。其中Jetson TX2屬于圖像檢測模塊,STM32F4單片機屬于運動控制模塊,巡檢小車為攝像頭和Jetson TX2的載體,清潔機器人為動作執(zhí)行模塊。此外,Jetson TX2的GPU為NVIDIA Pascal架構、256 CUDA核心,操作系統(tǒng)為Ubuntu16.04;深度學習框架為PyTorch。
當用戶利用遙控器發(fā)起啟動命令,STM32響應并控制垃圾巡檢小車運動;當用戶要求檢測地面清潔度時,Jetson TX2調用攝像頭對地面垃圾圖像進行采集;同時,STM32響應命令并要求Jetson TX2讀取采集到的圖像信息,并且調用YOLO v3訓練好的模型進行垃圾檢測分類與清潔度等級的評定,然后將檢測結果通過串口通信方式下發(fā)給STM32;STM32根據(jù)用戶的清潔要求對清潔度等級不達標的位置做標記(讀取傳感器顯示的位置信息),并通過其藍牙模塊將標記的位置信息反饋給清潔機器人控制中心,進而控制機器人到達指定地點作業(yè)。期間,小車的位置標記和機器人的導向由各自配備的傳感器實現(xiàn),通過傳感器實時采集小車和機器人狀態(tài),并將狀態(tài)信息反饋給STM32,形成反饋控制。整個系統(tǒng)各模塊間緊密相連,其框圖如圖1所示。
圖1 清潔度檢測系統(tǒng)框圖
YOLO v3是YOLO系列目標檢測算法的第三代,其繼承了YOLO v2檢測速度快的優(yōu)點,同時檢測精度也有顯著提升,特別是對于小目標的檢測,因而比較適合本文的垃圾目標檢測。YOLO v3使用了殘差網(wǎng)絡結構,使網(wǎng)絡在很深的情況下仍能收斂,模型能訓練下去,從而提升檢測效果。
如圖2所示,在YOLO v3算法的檢測過程中,首先將輸入圖像統(tǒng)一歸一化為416像素×416像素,然后將圖像劃分成13×13的網(wǎng)格,輸入深度神經網(wǎng)絡進行訓練[13]。當某個垃圾的中心位置的坐標落入到某個網(wǎng)格,那么這個網(wǎng)格就負責檢查邊界框及其置信度,從而檢測出該垃圾。其中,置信度則體現(xiàn)該網(wǎng)格是否含有地面垃圾目標,是什么類別以及其檢測準確率。
圖2 YOLO v3檢測過程
截止目前,已經有許多基于YOLO v3算法的研究應用成果。Zhang X等人實現(xiàn)了一種自適應車道檢測方法[14],提高了復雜場景下車道檢測的適應能力;Li J等人實現(xiàn)PCB電子元器件檢測[15];潘衛(wèi)國等人提出基于感興趣區(qū)域的交通標志牌檢測方法[16],在無人駕駛和輔助駕駛領域做出了一定的貢獻。
本文根據(jù)Sevilla A等人提出的街道清潔度指數(shù)(cleanliness index,CI)的量化方法[17](該方法被西班牙省市聯(lián)合會認可為唯一能夠真實反映城市街道清潔度指數(shù)),來類似地評定地面清潔度等級。由此,地面清潔度指數(shù)(ground cleanliness index,GCI)被定義來量化地面的潔凈程度,該指數(shù)與地面垃圾數(shù)量、種類,以及地面擺設情況有關。表1劃分了5個地面清潔度指數(shù)值區(qū)間,以及對應的不同清潔度等級,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ū)域內的權重系數(shù),乘以相應垃圾類別的數(shù)量即可實現(xiàn)該類垃圾的量化,如表2所示。表中有機垃圾與無機垃圾都根據(jù)垃圾數(shù)量被細分為小、中、大三類,分別對應不同的權重值。當垃圾數(shù)量在0~3之間,將被歸為小類;在4~6之間歸為中類;大于等于7歸為大類。
表2 垃圾種類及其權重值
實驗平臺為11 GB NVIDIA GeForce RTX2080Ti GPU,Intel 酷睿I9—9900K,3.6 GHz處理器,64 GB運行內存,操作系統(tǒng)為Ubuntu 16.04。實驗的訓練和測試過程都是在同樣的軟件平臺下進行,即PyCharm和OpenCV 3.4.2。
為了驗證本文檢測方法的有效性,選擇1號實驗室和寢室的地面作為實驗對象,采用人工拍攝垃圾圖片的形式來組成地面垃圾檢測的數(shù)據(jù)庫。由于地面上的垃圾種類繁多且分布復雜,因此將常見的垃圾種類分為5種,即紙巾、廢塑料、煙頭、灰塵堆、黏性污漬。將垃圾樣本置于場地的各個方位與位置,進行不同角度和距離地采樣,共采集了2 348張RGB圖片。對所有圖片進行縮放、旋轉、翻轉和對比度變換等操作得到新的樣本數(shù)據(jù),這一步可提高檢測模型對于不同方向和光照下的魯棒性,并且豐富數(shù)據(jù)庫以及防止數(shù)據(jù)過擬合,最終得到共7 045張圖片數(shù)據(jù),其中5 285張作為訓練集,1 760張作為測試集。接下來將每一張圖片歸一化為416×416尺寸,并利用Labeling進行人工標注,框選出圖片中的垃圾,生成相應的標簽。注意需保證每張圖片中的一種垃圾只能對應一個標簽,最終導出.xml文件。
3.2.1 模型訓練與測試
本文采用YOLO v3網(wǎng)絡對地面垃圾數(shù)據(jù)集進行訓練,由于垃圾巡檢小車在運動過程中,采集的地面圖像中垃圾尺寸可能會大幅變化,因而利用多尺度訓練策略進行網(wǎng)絡訓練。經過20 000次迭代訓練,最終確定模型參數(shù)為:學習率0.001,訓練動量0.9,權重衰減參數(shù)0.000 5。
1)測試集檢測
將測試集的圖片輸入到模型中進行檢測,部分檢測效果如圖3所示。
圖3 測試集部分檢測效果
從圖3中可以看出,模型的檢測效果總體上比較好,但個別垃圾類型的檢測準確率不穩(wěn)定,矩形框框選得不太理想,尤其表現(xiàn)在廢塑料和紙巾類。從實驗結果分析,首先是因為檢測的目標不規(guī)則性較強(如灰塵堆、廢塑料),檢測難度大;其次目標反光或透明(如干凈的紙巾、塑料透明部分),易導致誤識或框選不好的情況;另外,采集的樣本數(shù)據(jù)集不夠豐富,模型的適應性還不足。
統(tǒng)計所有測試集圖片的檢測結果,計算各類垃圾的檢測準確率,結果分別為紙巾84.8 %,廢塑料84.1 %,煙頭93.6 %,灰塵堆91.3 %,黏性污漬87.7 %。
2)視頻實時檢測
為了測試模型的實時檢測效果,利用巡檢小車系統(tǒng)分別在1號實驗室和寢室兩個不同環(huán)境下采集視頻文件,然后通過抽幀處理得到連續(xù)的圖片,調用訓練好的垃圾檢測模型對圖像進行檢測。圖4為檢測效果圖,各視頻都是在不同距離或不同視角下拍攝的。
圖4 實時檢測效果
視頻一為紙巾、廢塑料和煙頭在1號實驗室的實時檢測效果,視頻共抽取1 600幀,最終準確率為81.12 %。可以看到由于廢塑料有一部分是透明的,導致模型對廢塑料的框選效果不太理想。此外,由于廢塑料的一端黑色部分與黏性污漬類垃圾相似度較高,存在誤識現(xiàn)象,共發(fā)生了189幀的誤識。
視頻二為煙頭在1號實驗室的實時檢測效果,共抽取1 360幀,由圖4(b)可知模型對于單類垃圾的檢測效果比較好,準確率達到了86.32 %。不過也存在將地面的反光點誤識為紙巾的現(xiàn)象,誤識幀數(shù)為175幀。
視頻三為煙頭和紙巾在寢室環(huán)境下的實時檢測效果,共抽取1 320幀,拍攝視角變化設置為沿順時針方向。從圖4(c)可以看出,模型偶爾誤識白色墻壁為紙巾,原因為兩者之間有一定的相似度;當攝像頭處于能拍到地面比較反光的視角時,存在誤識地面為紙巾的情況;此外,由于紙巾形狀不規(guī)則,在不同視角下的檢測準確率有較大變化,矩形框的框選也存在不太理想的情況。最終,誤識幀數(shù)達到了217幀,準確率為75.38 %。
3)算法對比檢測
為了進行算法對比評價,將本文的垃圾檢測模型與表現(xiàn)優(yōu)異的同類目標檢測算法Faster R-CNN在相同的測試集上進行對比測試,如表3。
表3 網(wǎng)絡對比結果
分別用準確率(P)、召回率(R)、平均精度(mAP)、交并比(IoU)和平均幀率(fps)來評估模型性能,檢測結果如表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ù)集,模型擁有了較強的適應能力,各項指標表明其基本能夠滿足地面垃圾檢測的要求。
3.2.2 實際場地的清潔度檢測
選取2號實驗室的地面作為實際測試場地,攝像頭搭載在小車上的拍攝范圍取為12.5 m2,拍攝點設定為每隔3.5 m距離拍攝一組圖片,其中同組各圖片的拍攝位置和角度不固定,最終遍歷整個場地。
運行Jetson TX2并調用YOLO v3訓練好的模型,對地面圖像進行檢測。最終,在模型檢測后的圖片中,被檢測到的垃圾會被標記上矩形框,同時以標簽形式顯示出垃圾種類及其置信度。為方便后續(xù)地面清潔度指數(shù)的計算,需分別對各個觀測區(qū)域內的垃圾數(shù)量進行統(tǒng)計,也即統(tǒng)計模型檢測出的矩形框數(shù)量,并計算出各區(qū)域的清潔度指數(shù),最后匯總得出整個測試場地的清潔度指數(shù)。
最終各觀測區(qū)域的地面垃圾檢測統(tǒng)計結果為:3塊紙巾,1個廢塑料,2個煙頭,一個灰塵堆,以及3塊黏性污漬。對于一個觀測區(qū)域內的地面清潔度指數(shù)(GCIOA)可由式(2)表示
(2)
式中i為垃圾種類數(shù),Ni為區(qū)域內該類垃圾的數(shù)量,Ci為該類垃圾所對應的權重值。λ和n見2.2節(jié)所介紹,本文均取1。
根據(jù)所分的5種垃圾類別,在表2中找到它們相應的權重值,從而可以加權出總的清潔度指數(shù)。按照垃圾分類方法,將紙巾歸類為有機垃圾,把廢塑料和煙頭歸類為無機垃圾,灰塵堆為未收集的清掃廢物,黏性污漬歸類為黏性殘留物。
根據(jù)2號實驗室的檢測統(tǒng)計結果,利用式(2)計算測試場地各觀測區(qū)域的GCIOA值并匯總,表4所示為垃圾數(shù)量及其加權總值。因此,2號實驗室的匯總后的地面清潔度指數(shù)可計算為
查表1可知,2號實驗室的地面清潔度等級屬于低等的4級。本文設定當清潔度等級低于2級時,就認為地面不夠干凈,需要清潔機器人進行垃圾定點清潔,以及不同垃圾分類清潔。對于廢塑料、煙頭和紙巾類垃圾可以直接采用清掃的方式清潔,灰塵堆則需要采用吸除的方式,而黏性污漬則首先需要采用物理刮除或清潔劑清洗,然后再清掃或吸除。
表4 垃圾數(shù)量及其加權總值
通過自建數(shù)據(jù)集來訓練地面垃圾檢測模型,實驗檢測結果表明:模型在測試集上的mAP達到了88.3 %,平均幀率達到了28幀/s,基本能夠滿足地面垃圾檢測的要求。在實際場地測試中實現(xiàn)了對地面垃圾的分類與量化,評定出了清潔度等級,以便于清潔機器人高效地完成定點清潔、再次清潔以及分類清潔等作業(yè)。本文為避免機器人盲目清潔作業(yè)而浪費時間和資源提供了一種解決方案。未來研究可以增加實際的垃圾類別與場景,提高垃圾檢測模型對各種垃圾特征和屬性的檢測適應性,使清潔機器人達到更高效、更高質量的自主和協(xié)作作業(yè)能力。