






摘要:文章針對環境污染日益嚴峻的問題,提出使用YOLOv5輔助清理水面垃圾。YOLOv5使用Mosaic數據增強和自適應錨框計算,具有較高的處理精度。利用YOLOv5目標檢測網絡對水面垃圾檢測,可快速準確地搜尋水面垃圾,從而減輕環衛工人的負擔。筆者利用Labelimg軟件對水面垃圾圖像數據進行標注,整理并獲得訓練集。實驗結果表明:基于YOLOv5的水面垃圾目標檢測在檢測精度和速率上都取得良好的結果。
關鍵詞:目標檢測;圖像處理;深度學習;YOLOv5;水面垃圾
中圖分類號:TP319" " " " 文獻標識碼:A
文章編號:1009-3044(2022)33-0028-03
隨著人們逐步認識到環保的重要性,清理水面垃圾成為人們需要解決的一大難題,如何快速尋找水面垃圾成為提高清理工作效率的一個重要問題。目前,水面目標的檢測算法大致可以分為三類,分別是基于紅外成像傳感器、基于激光雷達和基于視覺可見光的方法。然而,通過基于激光雷達和紅外成像傳感器的方法獲取的圖像在顏色、紋理和角點等圖像處理特征上不具備顯著差異,所以本項目使用一種基于深度學習的水面垃圾檢測算法——YOLOv5,該算法具有檢測精度高、體積小、速度快等優勢,與本項目的垃圾目標檢測最為契合[1]。
1 YOLOv5
YOLO算法用一個神經網絡實現目標檢測的分類和定位,在目標檢測領域有較為廣泛的應用。Ultralytics公司于2020年5月推出的YOLOv5繼續沿用 YOLOv3和YOLOv4 的整體布局,它的優點是速度快、體積小、精度高等,其圖像處理速度最快可達0.007s,即連續處理140幀圖片僅需要1s。YOLOv5中共有四種模型,分別是YOLOv5s、YOLOv5m、YOLOv5x和YOLOv5l[2]。本文采用YOLOv5s。
YOLOV5s模型的基本組成部分:Input(數據輸入端)、Backbone(主干部分)、Neck、Prediction(數據輸出端)。YOLOv5的網絡模型如圖1。
1.1 Input
輸入端使用Mosaic的處理方式來增強數據,對多張水面垃圾圖片先進行隨機的縮放和裁剪處理,之后再進行隨機分布和拼接,極大地擴充并充實了模型數據集,提升了對較小的水面漂浮物的檢測能力。
YOLOv5在訓練過程中添加自適應計算錨框功能,每次訓練都自動計算不同訓練集中的最優錨框值。
YOLOv5在對原始水面垃圾圖片進行縮放操作時,會根據圖片的尺寸,自適應地添加黑邊,使得黑邊最少。經過這樣處理后,計算量大幅降低,從而使水面垃圾檢測工作的執行速率得到大幅度的提高[3]。
1.2 Backbone
Backbone中包含有CSP結構與Focus結構。Focus的切片操作為,將原始尺寸為608*608*3的水面垃圾圖片輸入Focus結構,先采用切片操作,再經過一次卷積操作,最后結果為304*304*32的水面垃圾特征圖[3]。
使用CSP模塊能夠提高網絡的機器學習能力,在確保模型具有較高準確性的同時,也使模型輕量化,而且還能減少內存成本和計算瓶頸。
YOLOv5中主要設計并實現了CSP1_X和CSP2_X兩種CSP結構,其中,Backbone主干網絡中主要應用的是CSP1_X結構,可解決主干部分網絡優化的梯度信息重復的問題[3]。有效提高了模型對空間布局和對象變形的魯棒性。
1.3 Neck
在水面垃圾的檢測系統中,在Backbone和輸出層之間插入一些層能夠更好地提取融合特征,稱為“Neck”。是目標檢測網絡的頸部,也是算法組成中十分重要的一部分。
YOLOv5s的Neck采用FPN(自上而下)+PAN(自底向上結構的特征金字塔)的結構[4-5]。通過自頂向下的FPN層傳達強語義特征;利用自底向上的特征金字塔傳達強定位特征,在不同的主干層對應于不同的檢測層,實現參數的整合,可縮短推理周期,減少內存占用[6]。
1.4 Prediction
輸出端主要由兩大部分組成:非極大值抑制[7]和Bounding box。GIOU_Loss函數作為Bounding box的損失函數,可以有效解決水面垃圾圖片邊界框不重合的問題[8]。GIOU_Loss函數采用相交尺度的衡量方式有利于解決邊界框可能不重合的問題[9]。而針對出現的多目標框的挑選,采用NMS函數把GIOU_Loss貢獻值不是最大的預測結果都去掉,從而獲得最優目標框。
2 實現水面垃圾檢測流程
2.1 水面垃圾檢測框架圖
本文中的水面垃圾檢測框架圖如圖2所示。由圖2可以看出,實現水面垃圾檢測的步驟首先通過Labeling對圖片標注水面垃圾,然后建立數據集并將其轉變為YOLO格式,數據集經過YOLOv5訓練后可以獲得權重數據,然后使用YOLOv5s利用水面垃圾權重數據對無人機回傳的視頻圖像進行處理,最終輸出檢測結果。
2.2 樣本集訓練
水面垃圾的樣本集是水面垃圾檢測效果優秀與否的關鍵,樣本集是否可行會對訓練后模型的質量產生重大影響。為保證訓練后的模型質量,本文采集的樣本集盡量選用接近實際應用場景的圖片。最后經過篩選,共收集水面垃圾圖片790張,對收集的圖片按順序編號后進行重命名,組合為訓練集和測試集,訓練集和測試集的比例為7:3,通過Labelimg軟件對水面垃圾進行標注,并將圖片的標注的圖片格式由 xml 轉換成 YOLOv5s 的格式。
2.3 網絡訓練
首先,搭建水面垃圾檢測環境并對模型進行訓練,文中實驗應用的操作系統為Windows10,開發語言選擇Python語言。本文實驗所使用具體配置情況見表1。
在訓練的過程中,具體的訓練參數及參數設置情況說明如下:網絡模型訓練階段,物體檢測驗證集不衰減,總迭代次數為50次。輸入圖片尺寸為640*640,batch-size為4。
2.4 實驗操作流程
首先,使用Labelimg軟件對數據集圖片中的垃圾分類框選,并對框選的垃圾標注其垃圾種類名稱,最后將圖片的標注格式轉換為YOLOv5格式。圖3為部分數據集的標注情況。
之后,通過YOLOv5s對數據集進行訓練獲得水面垃圾的權重數據。
如圖4,使用Python調用train.py文件,通過VOC_rubbish.yaml和YOLOv5s_rubbish.yaml對訓練模型的檢測種類進行定義,之后對預訓練權重文件的路徑進行設置,同時設定size=4,epoch=50。通過訓練即可獲得水面垃圾的權重數據。
最后,通過YOLOv5s利用水面垃圾的權重數據對無人機回傳的視頻進行處理。
如圖5,通過Python調用detect.py文件,設置檢測視頻的路徑為testfiles/2.mp4 ,調用權重文件的路徑為weights/best.pt,并且將檢測的置信度設置為0.4。
3 處理結果及總結
通過使用YOLOv5s算法對水面垃圾進行檢測,所得結果如圖6所示。
通過對比處理前后的圖像可以發現,YOLOv5s算法檢測可以較為準確地識別圖片中的水面垃圾,并且對不同種類的垃圾分類標注。如圖6(a)中存在較小的水面垃圾,圖6(b)中不但將其一一框選標注,而且精確地識別出框選的垃圾種類。當水面垃圾數量較多時,如圖6(c),圖片中共有水面垃圾8處,而圖5(d)中不僅將所有水面垃圾成功框選出來,而且對框選水面垃圾的種類識別全部正確。同時,由圖6(b)和(d)可以發現,YOLOv5s對水面垃圾識別的平均置信度為0.6,基本可以滿足輔助環衛工人搜尋水面垃圾的需求。所以采用這種方法可以準確迅速地搜尋并識別水面垃圾,從而極大提高環衛工人搜尋水面垃圾的效率。
4" 結束語
本文介紹了基于YOLOv5的水面垃圾目標檢測方法,初步看來,此模型在水面垃圾的檢測方向是極具可行性的。可實現對水面垃圾的智能化搜尋,輔助環衛工人清理水面垃圾,提高工作效率,減少人力物力的投入。但仍有待完善的地方,比如在大片水面垃圾堆積的水面有概率出現垃圾識別不完全的情況,在水面情況復雜的地方有較小概率出現識別錯誤的情況等。計劃下一步將從網絡模型的方面修改Loss函數 , 從而提高性能,同時對數據集中水面垃圾的種類進一步細分,從而提高精確度。
參考文獻:
[1] 周飛.水面清污機器人垃圾檢測算法的研究[D].綿陽:西南科技大學,2020.
[2] 吳志新,聶留陽,董容君,等.基于深度學習的機場道面表觀缺陷檢測[J].電子技術與軟件工程,2021(8):174-177.
[3] 馬琳琳,馬建新,韓佳芳,等.基于YOLOv5s目標檢測算法的研究[J].電腦知識與技術(學術版),2021(23):100-103.
[4] 楊曉玲,蔡雅雯.基于YOLOv5s的行人檢測系統及實現[J].電腦與信息技術,2022,30(1):28-30.
[5] 王莉,何牧天,徐碩,等.基于YOLOv5s網絡的垃圾分類和檢測[J].包裝工程,2021,42(8):50-56.
[6] 趙冬.基于改進目標檢測算法的吸煙行為檢測[J].電子技術與軟件工程,2021(24):116-117.
[7] 楊曉玲,羅順利,梁皓添.基于YOLOv5的交通路面障礙物目標檢測[J].智能城市,2021,7(20):121-122.
[8] 談世磊,別雄波,盧功林,等.基于YOLOv5網絡模型的人員口罩佩戴實時檢測[J].激光雜志,2021(2):147-150.
[9] 肖博健,萬爛軍,陳俊權.采用YOLOv5模型的口罩佩戴識別研究[J].福建電腦,2021,37(3):35-37.
【通聯編輯:唐一東】