摘" 要: 為解決戶外水域垃圾自動回收船的垃圾目標定位與識別差的問題,提出一種結合YOLOv8與雙目測距算法的水面漂浮垃圾回收船的垃圾識別定位系統(tǒng)。該系統(tǒng)主要由攝像頭、上位機視覺處理單元和下位機控制單元三部分組成,通過對水域環(huán)境內(nèi)的垃圾進行視覺識別分類后,再進行定位和測距,實現(xiàn)水域垃圾的定位和識別;在定位和識別之后,控制機器收集垃圾。采用雙目相機獲取圖像,使用Jetson Nano嵌入式芯片作為上位機主控芯片,利用最新深度學習模型YOLOv8進行水面垃圾的提取與識別,并通過SGBM算法進行雙目測距,得到距離和角度信息;然后將上位機測得的距離和角度信息通過串口通信發(fā)送給下位機Arduino控制板,以控制船體做出轉向和航行。測試結果表明,收集裝置識別結果穩(wěn)定,準確率達到90.5%,測距結果準確,精度達到厘米級,能夠實現(xiàn)控制裝置自動收集的目標。
關鍵詞: 水面漂浮垃圾; 目標定位; 垃圾識別; YOLOv8; 雙目測距算法; 視覺檢測; 自動收集
中圖分類號: TN911.73?34; TP391.4" " " " " " " " " "文獻標識碼: A" " " " " " " " 文章編號: 1004?373X(2024)20?0001?07
Design of water surface floating garbage detection and positioning system combining YOLOv8 and binocular ranging algorithm
HE Junyao, WANG Wensheng, HAN Yihang
(Mechanical and Electrical Engineering School, Beijing Information Science and Technology University, Beijing 100192, China)
Abstract: In order to solve the problem of poor location and recognition of garbage target of automatic garbage recovery ship in outdoor waters, a garbage identification and location system of floating garbage recovery ship is proposed, which combines YOLOv8 and binocular ranging algorithm. The system is mainly consisted of three parts: camera, upper computer visual processing unit, and lower computer control unit. After visual identification and classification of garbage in the water environment, location and ranging are carried out to realize the location and identification of garbage in the water area. After positioning and recognition, the machine is controlled to collect garbage. Binocular camera is used to obtain images, Jetson nano embedded chip is used as the host computer main control chip, the latest deep learning model YOLOv8 is used to extract and identify surface garbage, and binocular distance is obtained by means of SGBM algorithm. The distance and angle information measured by the upper computer are sent to the lower computer Arduino control board by the serial communication to control the ship′s turning and navigation. The testing results show that the recognition result of the collection device is stable, the accuracy rate can reach 90.5%, the ranging result is accurate, the accuracy can reach centimeter level, and the automatic collection effect of the control device can be achieved.
Keywords: water surface floating garbage; target positioning; garbage identification; YOLOv8; binocular ranging algorithm; visual detection; automatic collection
0" 引 言
隨著計算機視覺技術的不斷迭代發(fā)展,視覺可以通過深度學習對不同的圖像進行識別、分類及追蹤操作。以視覺技術作為信息處理的手段變得越來越普遍,利用視覺進行目標識別就是最重要的應用之一。戶外水域生態(tài)保護尤其河流、濕地等是生態(tài)環(huán)境保護的重點,但河流、濕地這些水域中往往有很多的漂浮垃圾,目前主要采用人工開船打撈的方式,存在較多不足。而使用機器視覺進行自動垃圾識別是有價值的研究[1],將這種機器視覺的識別應用在無人船上,就可以實現(xiàn)水面漂浮垃圾的自動清理。
目前水面垃圾收集多依賴于人工和固定收集裝置,借助視覺技術進行垃圾的檢測定位是一項有價值的前沿研究。水面垃圾收集方向的研究集中在垃圾識別,主要分為三種:機器視覺法、GPS慣性導航結合機器視覺分類法和超聲波避障結合機器視覺法。GPS慣性導航結合機器視覺法主要使用自主導航模塊,即GPS結合慣性導航設備進行航行軌跡規(guī)劃,使用視覺判斷垃圾屬性并分類至不同存儲艙室。如陳玲等人設計了一種基于自助航行模塊的新型水面垃圾清理分揀船,使用導航算法規(guī)劃路徑來控制船體進行垃圾收集[2]。超聲波避障結合機器視覺法主要是安裝超聲波傳感器測量障礙物距離,使用攝像頭識別垃圾。如張芙蓉等人提出一種水面垃圾清理機器人,使用三軸重力加速度傳感器來控制船體姿態(tài),利用超聲波傳感器測距,采用攝像頭識別垃圾[3]。也有一些學者采用機器視覺的方式進行水面垃圾回收的研究,如谷湘煜等提出了一種融合空域先驗信息和頻域相位譜的水面垃圾顯著性檢測方法,來抵抗光照、水紋、倒影等對目標的干擾[4];同時,朱永強等提出了一種應用于海面垃圾清理船的機械設計,能夠對海面垃圾進行準確抓取、清理和回收[5]。此外,還有其他學者進行了相關研究[6?13]。
本文對垃圾識別和目標定位兩個模塊進行了軟件程序設計,在Jetson Nano平臺下設計識別算法的嵌入式硬件化,并添加到無人船上控制舵機方向,實現(xiàn)自動垃圾回收。軟件部分使用最新深度學習算法模型YOLOv8進行垃圾識別,垃圾定位采用雙目視覺方式,無需增加額外的雷達傳感器,使系統(tǒng)更簡單方便,從而實現(xiàn)水面漂浮垃圾自動回收。
1" 系統(tǒng)總框架設計與電路設計
本文設計的系統(tǒng)總框架如圖1所示,系統(tǒng)由上位機Jetson Nano進行雙目測距、立體匹配,并與下位機Arduino Mega2560嵌入式開發(fā)板進行通信。在前期準備工作中,使用攝像頭拍攝和互聯(lián)網(wǎng)收集得到足夠的樣本,并通過PC收集水面垃圾的圖像,將圖像進行標注制作成數(shù)據(jù)集,對數(shù)據(jù)集進行預處理和訓練。系統(tǒng)通過深度學習識別圖像,采用YOLOv8m算法模型得到權重文件與訓練結果,并對訓練結果進行分析。配置Jetson Nano的環(huán)境使其可以運行YOLOv8算法。將訓練好的YOLOv8算法權重放入Jetson Nano中,使用雙目攝像頭實時采集圖像,并將圖像傳遞給OpenCV,通過OpenCV校正輸入圖像;再將校正完成后的圖像傳入YOLOv8和OpenCV中,Jetson Nano通過權重對水面垃圾進行分類識別,并將識別結果傳遞至像素坐標。Jetson Nano經(jīng)過SGBM算法立體匹配之后生成深度圖(Depth Map),通過在深度圖內(nèi)進行像素坐標計算,得出世界坐標。再利用世界坐標計算得到距離和角度信息,并傳遞給下位機Arduino Mega2560,接收到信息之后,Arduino Mega2560計算距離和角度信息并控制驅動電機運動,從而進行垃圾收集。下位機循環(huán)讀取陀螺儀和水位傳感器的狀態(tài),水泵將水從抽水口抽至不同的浮箱隔倉中,調整吃水深度和重心。圖2展示了系統(tǒng)流程,而本文僅介紹上位機視覺系統(tǒng)部分。
2" YOLOv8模型與雙目視覺算法
上位機的識別程序使用YOLOv8模型進行水面垃圾分類識別。程序在Jetson Nano開發(fā)板上運行,當完成一次識別,會通過串口將識別結果發(fā)送給下位機Arduino Mega2560,并進行相關操作。
2.1" YOLOv8算法模型
2.1.1" 數(shù)據(jù)集制作
本文以常見水域垃圾為例,尤其針對小河流域(水渠、河流、湖泊、池塘等)所產(chǎn)生的垃圾為例進行算法研究。收集常見水域垃圾數(shù)據(jù),包括保溫杯、玻璃壺、玻璃瓶、玻璃器皿、購物袋、盒子、金屬罐、酒瓶、快遞紙袋、奶粉罐、塑料桶、拖鞋、鞋子、飲料瓶、一次性杯子共15類,數(shù)據(jù)集共計15 000張圖像,篩選出特征明確且清晰的圖像5 362張。
數(shù)據(jù)集按照1∶7∶2劃分,558張用于測試,4 286張用于訓練,518張用于檢驗。采集到圖像之后,使用Labelimg 軟件進行標注,軟件將物品類別和像素位置保存為txt文件。部分訓練數(shù)據(jù)集圖像如圖3所示。使用YOLOv8m模型進行500輪訓練(epochs),任務類別為檢測(detect),訓練大小為640,訓練批次(batch)為8。
2.1.2" YOLOv8網(wǎng)絡模型
圖4顯示了YOLOv8模型的網(wǎng)絡結構圖。YOLOv8建立在以前YOLO版本的基礎上,其引入了新的功能和改進以增強系統(tǒng)性能、靈活性和效率。YOLOv8支持檢測、分割、姿態(tài)分析、跟蹤和分類等功能。
1) Backbone結構
所有的C3模塊被新的C2f模塊所取代。C2f模塊在一定程度上豐富了梯度回傳時的支流,并且引入了更多的分支,更加簡化和高效。C2f的配置按照3/6/6/3的方式進行,將原先的9減小為6。
采用PaFPN結構來構建YOLO的特征金字塔網(wǎng)絡。PaFPN結構的應用使得多尺度信息能夠充分融合,相較于YOLOv5,YOLOv8在top?down過程中的上采樣操作中少了一層1×1卷積,并且將C3模塊替換為C2f模塊。除此之外,它們的結構基本保持一致。
3) Detection head結構
采用解耦頭的結構,兩條并行的分支分別提取類別特征和位置特征,然后各用一層1×1卷積完成分類和定位任務。YOLOx的解耦頭中,類別分支和回歸分支的通道數(shù)都設置為256,即類別分支和回歸分支具有相同的通道數(shù)。以L模型為例,L模型解耦頭的通道數(shù)配置為類別分支Ccls=256,回歸分支Creg=64。
4) 預測層
預測層能夠在單次檢測中預測物體的種類,識別出置信度和物體在圖像中的坐標值,從而得到最終的檢測結果,無需額外的多次檢測操作。
2.2" SGBM雙目測距
在目標識別過程中,YOLOv8算法會對得到的圖像進行縮放,與數(shù)據(jù)集圖像相匹配。所以當機器距離垃圾過遠時,所獲得的圖像經(jīng)過縮放后會丟失一部分特征,無法有效提取特征,從而導致識別不到或者識別不準確的情況發(fā)生。且機器需要依靠距離和角度信息驅動機器進行垃圾收集,所以需要在一定距離范圍內(nèi)對垃圾與機器的距離進行測量。
雙目匹配的目的是將左右視圖中對應的像素點進行匹配,以獲得視差圖。視差圖反映了同一場景在左右視圖中的像素位移差異。通過雙目匹配可以得到視差數(shù)據(jù),即左右視圖中對應像素點之間的水平位移量;利用視差數(shù)據(jù)可以相對容易地計算出場景中物體的深度信息。深度信息對于理解和分析三維場景非常重要。在拍攝到的圖像經(jīng)過校正之后,計算2幅圖像的視差,利用視差可以測量與前方物體的距離,視差的大小和被測物體與成像平面之間的距離相對應。如圖5所示,假設P是待測物體上的某一點,沿垂直于相機中心連線的方向進行上下移動,OR與OT分別是2個相機的光心。點P在2個相機CMOS上的成像點為XT和XR,f代表相機焦距,B代表相機中心之間的距離,Z表示深度信息,點P到點P'的距離是dis。點P在左右相機上的成像位置會不斷發(fā)生變化,即d=XT-XR的數(shù)值大小不斷變化,且點P與相機間的距離Z跟視差d存在著反比關系。雙目視覺測距實際操作分為相機標定、雙目校正、雙目匹配、深度信息計算4個步驟,具體公式如下:
[dis=B-(XR-XT)] (1)
式中:[XR-XT]為成像點距離,單位為mm。
[B-(XR-XT)B=Z-fZ] (2)
式中:Z為深度值,單位為mm;f為相機焦距,單位為mm。深度值計算公式如下:
[Z=fBXR-XT] (3)
lt;E:\2023\m20\2024年20期\Image\68t5.tifgt;
圖5" 雙目測距原理圖
2.2.1" 相機標定
由于光學透鏡的特性,攝像頭成像存在著徑向畸變,CMOS與光學鏡頭之間不是完全平行,故成像存在切向畸變。而雙目攝像頭標定需要得到每個攝像頭的內(nèi)部參數(shù)、旋轉矩陣和平移向量。
2.2.2" 雙目校正
為使2幅圖像在水平方向嚴格對齊,使2幅圖像的對極線恰好在同一水平線上,需要進行雙目校正。校正完成后2幅圖像的任一匹配點就必然具有相同的行號,只需在該行進行一維搜索就可匹配到對應點。徑向畸變公式如式(4)所示,切向畸變公式如式(5)所示。
[Xcorrected=x(1+k1r2+k2r4+k3r6)Ycorrected=y(1+k1r2+k2r4+k3r6)] (4)
[xcorrected=x+2p1y+p2(r2+2x2)ycorrected=y+2p1x+p2(r2+2y2)] (5)
打開攝像頭后得到左右攝像頭畫面,使用OpenCV中的cv2.remap()函數(shù)調用左右相機的內(nèi)參、左右相機的畸變系數(shù)、左右相機之間的旋轉矩陣、平移向量進行重映射來重建無畸變圖像。重映射就是把一幅圖像中某位置的像素放置到另一幅圖像指定位置的過程。
2.2.3" 雙目匹配
為了匹配左右視圖上的同一場景所對應的像素點,需要進行雙目匹配得到視差圖。本文雙目匹配采用半全局匹配(Semi?Global Block Matching, SGBM)算法,在OpenCV中實現(xiàn)。SGBM是BM(Block Matching)立體匹配算法的優(yōu)化版,屬于半全局匹配,相對于BM花的時間要更多,但效果更優(yōu)。
2.2.4" 深度信息計算
在完成半全局匹配并生成深度圖后,根據(jù)一組差異圖像構建3D空間,使用歸一化函數(shù)算法計算所得到的三維坐標值,三維坐標值需要乘以16,才等于現(xiàn)實中的距離。再根據(jù)YOLOv8所返回的像素坐標計算距離。為防止測距偏差,需篩選中心點一定范圍內(nèi)數(shù)據(jù),將其中較大和較小的距離測量數(shù)據(jù)剔除,在剔除后計算平均值并進行輸出。
3" 結果與分析
3.1" 垃圾雙目測距實驗結果分析
由于OpenCV中具有不同的SGBM算法模式,使用不同的SGBM算法模式運行20次,繪制得到的結果如表1所示。
從表1可以看出,SGBM算法模式運行時間由快到慢為SGBM_3WAY、SGBM_MODE_HH、SGBM_MODE_SGBM(本文),精度反之。本文裝置需要考慮識別精度問題,由以上的實驗數(shù)據(jù)可知,使用SGBM_MODE_SGBM算法模式為最優(yōu)解。
使用SGBM_MODE_SGBM算法經(jīng)過處理后所得的視差圖如圖6所示,識別背景為木門,識別物為懸掛的1.5 L礦泉水瓶。
3.2" 垃圾目標識別實驗結果分析
數(shù)據(jù)集訓練程序的運行環(huán)境為Ubuntu 18.04系統(tǒng)、CUDNN 8.2、CUDA 11.4,顯卡型號為16 GB的TeslaT4,PyTorch框架版本為1.9;垃圾圖像數(shù)據(jù)集的訓練過程中設置輪數(shù)為200輪,2次共400輪,每輪耗時96 s,共計耗時9.5 h;在訓練時將圖像輸入大小(Image Size)設定為640×640,單次傳遞的數(shù)據(jù)個數(shù)(Beatch Size)設定為8。
各項指標變化曲線及本文數(shù)據(jù)集訓練后的識別效果如圖7所示。共進行了2次200輪訓練,總訓練次數(shù)為400輪。
圖7反映了隨著次數(shù)的增加,訓練指標的變化趨勢。其中box_loss用于監(jiān)督檢測框的回歸,預測框與標定框之間的誤差(CIoU)值越小,誤差越小,識別越準確;cls_loss用于監(jiān)督類別分類,其目的是計算錨框與相應的標記分類是否準確,數(shù)值越小代表目標分類越精確;dfl_loss則用于迅速使網(wǎng)絡集中于目標y附近的值,增加這些值的概率,數(shù)值越小意味著集中速度越快;Precision表示訓練的精確度;而Recall則代表召回率。隨著訓練次數(shù)的增加,訓練精確度和召回率在波動上升,最終穩(wěn)定在約97%的數(shù)值水平。召回率最優(yōu)時達到98%數(shù)值附近,召回率在最后穩(wěn)定在80%的數(shù)值附近。mAP(mean Average Precision)即每個類別分別計算AP,然后平均,代表平均精度;而mAP50表示在使用0.5的IoU(損失函數(shù))閾值時,各類別圖像的平均精度值;mAP50?95則表示在0.5~0.95的IoU閾值范圍內(nèi),根據(jù)損失函數(shù)的平均mAP。當訓練達到大約100輪時,mAP提升至接近0.98,mAP50?95上升至0.78附近,并且隨著訓練輪次的增加而不斷波動上升,最終mAP50~95穩(wěn)定在0.75附近,最優(yōu)值在0.8附近;mAP最終穩(wěn)定在0.8附近,最優(yōu)值接近0.97。
在復雜的水體環(huán)境背景下,距離船體30~85 cm的距離內(nèi)檢測效果最優(yōu)。在模擬水面波動的情況下,間隔1 ms截取一幀圖像,如表2所示,共截取圖像482張,使用YOLOv8算法準確識別圖像中的垃圾436張、誤檢8張、漏檢數(shù)38張,準確率約為90.5%,基本滿足實際需求。
圖8所示為水面垃圾圖像識別及測距結果,圖中數(shù)字“13”表示垃圾種類編號,對應為“水瓶”;右側數(shù)字為雙目測距給出的距離和角度信息。在識別過程中,識別結果受圖像立體匹配和圖像校正的影響,當垃圾角度越偏離正前面時,識別越準確。
4" 結 論
本文設計了一種基于YOLOv8和雙目視覺的水面垃圾收集船定位識別系統(tǒng)。因為YOLOv8深度學習模型具有出色的穩(wěn)定性和準確性,所以它成為實現(xiàn)對水面垃圾的高效識別的理想選擇。
機器使用攝像頭采集圖像,使用Jetson Nano運行YOLOv8模型,同時使用雙目視覺對垃圾進行距離和角度的判斷,上位機將距離和角度同時通過串口發(fā)送給下位機控制器。
本文的主要創(chuàng)新點在于結合最新的深度學習模型YOLOv8和雙目視覺測距技術,以實現(xiàn)對水面垃圾的準確識別和距離測量,從而實現(xiàn)水面垃圾的自動收集。本文使用最新的YOLOv8算法進行垃圾識別,利用雙目視覺進行測距,從而達到實時控制船體,解決了傳統(tǒng)收集方式效率低的額問題,識別準確率可達到90.5%。本設計可為水域生態(tài)修復及水域垃圾收集提供理論和實踐參考。
注:本文通訊作者為王文勝。
參考文獻
[1] 王子濤,杜超,李振強,等.基于聚攏裝置的無人水面垃圾清理船設計與仿真[J].人民黃河,2023,45(z1):194?195.
[2] 陳玲,高潔.一種新型水面垃圾清理分揀船的設計[J].船舶工程,2020,42(2):39?43.
[3] 張芙蓉,湯澤軍.一種水面垃圾清理機器人設計[J].技術與市場,2022,29(9):8?11.
[4] 谷湘煜,祝禮佳,柳胡南,等.基于空時域信息融合的水面垃圾顯著性檢測[J].電子測量技術,2022,45(11):154?160.
[5] 朱永強,張平霞.海洋垃圾回收船設計[J].機械設計與制造,2020(1):18?20.
[6] 涂成鳳,易安林,姚濤,等.輕量化YOLOv5n的高精度垃圾檢測算法[J].計算機工程與應用,2023,59(10):187?195.
[7] 王莉,何牧天,徐碩,等.基于YOLOv5s網(wǎng)絡的垃圾分類和檢測[J].包裝工程,2021,42(8):50?56.
[8] 湯偉,高涵,劉思洋.基于樹莓派的小型水域智能垃圾清理機器人系統(tǒng)設計與實現(xiàn)[J].科學技術與工程,2019,19(34):239?247.
[9] 崔志遠,曹文康,張志高,等.基于視覺識別的水面垃圾處理裝置[J].智能城市,2022,8(8):1?3.
[10] 張方超,董振,張棟,等.基于圖像視覺的垃圾分類機器人識別控制系統(tǒng)算法設計[J].電子測量技術,2019,42(20):63?67.
[11] ZHU X, LYU S, WANG X, et al. TPH?YOLOv5: improved YOLOv5 based on transformer prediction head for object detection on drone?captured scenarios [C]// 2021 IEEE/CVF International Conference on Computer Vision Workshops (ICCVW). Montreal, BC, Canada: IEEE, 2021: 2778?2788.
[12] ALDRIC SIO G, GUANTERO D, VILLAVERDE J. Plastic waste detection on rivers using YOLOv5 algorithm [C]// 2022 13th International Conference on Computing Communication and Networking Technologies. Kharagpur, India: IEEE, 2022: 1?6.
[13] 王文勝,年誠旭,張超,等.基于YOLO v5模型的非住宅區(qū)自動垃圾分類箱設計[J].環(huán)境工程,2022,40(3):159?165.
作者簡介:何君堯(2001—),男,北京人,碩士研究生,研究方向為機械電子工程、計算機視覺。
王文勝(1990—),男,河北人,博士研究生,副教授,碩士生導師,研究方向為計算機視覺。
DOI:10.16652/j.issn.1004?373x.2024.20.001
引用格式:何君堯,王文勝,韓宜航.結合YOLOv8與雙目測距算法的水面漂浮垃圾檢測定位系統(tǒng)設計[J].現(xiàn)代電子技術,2024,47(20):1?7.
收稿日期:2023?12?28" " " " " "修回日期:2024?01?31
基金項目:國家重點研發(fā)計劃課題(2020YFB1713205);北京市教育委員會科研計劃項目資助(KM202411232023);2024年北京信息科技大學“青年骨干教師”支持計劃(YBT202403)