摘 要:針對水面無人船在復雜環(huán)境中的目標檢測和跟蹤問題,探索了基于光視覺的檢測跟蹤方法。利用改進的暗通道去霧方法和引導濾波進行圖像預處理,以提高后續(xù)圖像處理的準確性和效率。在目標檢測方面,采用了YOLOv7算法,該算法通過對損失函數(shù)的優(yōu)化,有效提高了目標檢測的精度和召回率。為實現(xiàn)精準多目標跟蹤,結合自訓練模型權重和Sort算法,成功實施了目標持續(xù)追蹤和中心點軌跡的精確標注。此外,通過無人船平臺搭建雙目相機系統(tǒng)進行目標測距,實驗結果表明,該方法可以實現(xiàn)測距功能,平均相對誤差為6.46%,這一成果不僅提升了無人船的導航與定位能力,還為水面安全監(jiān)控提供了技術支持。研究結果顯示,在水面無人船領域,通過融合先進的圖像處理技術和機器學習算法,能夠有效地解決目標檢測和跟蹤問題。
關鍵詞:目標檢測;多目標跟蹤;除霧
中圖分類號:U675.7;TN957.52 文獻標志碼:A DOI:10.3969/j.issn.1673-3819.2024.06.013
Research on detection and tracking methods of unmanned
ship water targets based on light vision
LIU Yibo1, QIU Xinyu2, WANG Tianhao1, GAOYAN Xiusong1, WANG Yintao2
(1. System Engineering Research Institute, China Shipbuilding Corporation Limited, Beijing 100036, China;
2. School of Marine Science and Technology, Northwestern Polytechnical University, Xi’an 710072, China)
Abstract:This study explores technical methods based on light vision to address the problem of target detection and tracking by surface unmanned ships in complex environments. We utilize an improved dark channel dehazing method and guided filtering for image preprocessing to improve the accuracy and efficiency of subsequent image processing. In terms of target detection, the YOLOv7 algorithm is used, which effectively improves the accuracy and recall rate of target detection by optimizing the loss function. In order to achieve accurate multi-target tracking, combined with self-trained model weights and Sort algorithm, continuous tracking of targets and accurate annotation of center point trajectories are successfully implemented. In addition, a binocular camera system is built on an unmanned ship platform for target ranging. Experimental results show that our method can achieve the ranging function with an average relative error of 6.46%. This result not only improves the navigation and positioning capabilities of unmanned ships, but also provides technical support for water surface safety monitoring. This research demonstrates that in the field of surface unmanned ships, target detection and tracking problems can be effectively solved by integrating advanced image processing technology and machine learning algorithms.
Key words:target detection; multi-target tracking; defogging
收稿日期:2024-07-15修回日期:2024-08-02
*基金項目: 國家自然科學基金項目資助(U2141238)
作者簡介:劉一博(1987—),男,博士,高級工程師,研究方向為水下無人航行器及集群系統(tǒng)。
通訊作者:王銀濤(1979—),男,博士,教授。
水面無人船采集的圖像背景包括天空、水天線和水面區(qū)域,目標主要出現(xiàn)在水天線和水面區(qū)域。由于水面紋理波動、倒影以及天氣和光照變化,圖像常出現(xiàn)模糊和噪聲。戶外照明和拍攝條件有限時,圖像質(zhì)量與實時天氣密切相關:天氣良好時,圖像清晰,目標鮮明;霧天時,能見度降低,目標模糊。因此,需要對霧天拍攝的圖像進行預處理,以提高目標檢測效果[1]。
近年來,隨著計算機視覺技術的發(fā)展,除霧技術取得了顯著進展,包括基于物理模型的去霧、顏色補償、深度估計以及基于深度學習的去霧方法。何凱明等提出了基于大氣物理散射模型[2]的暗通道先驗法[3],通過估算霧的厚度去除圖像中的霧,并采用優(yōu)化算法softmatting獲得霧圖的精細邊緣,引導濾波進一步優(yōu)化了除霧效果[4]。Hu等在傳統(tǒng)模型上增加了照明補償,增強了反射層細節(jié)并保留了照明層的自然性[5]。
早期目標檢測算法是基于手工特征,如V-J檢測器[6]、HOG檢測器[7]和DPM檢測器[8]。深度學習時代,目標檢測算法能夠自動學習特征表示,從海量數(shù)據(jù)中學習復雜特征,提高了檢測精度和魯棒性。R-CNN[9]、空間金字塔池化網(wǎng)絡[10]和Fast-RCNN[11]等方法推動了目標檢測的發(fā)展。YOLO算法[12]于2015年提出,其速度快且準確度高,通過單個神經(jīng)網(wǎng)絡完成目標檢測。
卷積神經(jīng)網(wǎng)絡(CNN)是YOLO目標檢測的核心,通過逐層卷積提取圖像特征。低層卷積層捕捉邊緣等基本特征,高層卷積層提取紋理等高級特征。激活函數(shù)的非線性特性幫助網(wǎng)絡學習復雜特征,池化層降低計算負擔和過擬合,增強魯棒性。CNN全流程見圖1。
多目標跟蹤(MOT)旨在從視頻序列中實時識別和跟蹤多個移動目標,同時匹配它們的身份和軌跡信息。MOT基于目標檢測,通過幀間信息來預測和定位目標,并記錄其軌跡。系統(tǒng)需要在連續(xù)的視頻幀中檢測目標、關聯(lián)目標、預測目標位置,并顯示其軌跡。
在一個完整的光學信息處理系統(tǒng)下,圖像增強通過提高圖像的信噪比,優(yōu)化目標檢測的特征提取和識別,減少誤檢和漏檢,提高檢測準確性。準確的目標檢測為跟蹤提供可靠的初始信息,檢測結果用于跟蹤算法的關聯(lián)和預測,保持跟蹤連續(xù)性和穩(wěn)定性。圖像增強不僅能提升檢測精度,還可以減少模糊和漂移,增強目標跟蹤性能。
1 針對海面的圖像預處理技術
1.1 水面圖像增強技術
1.1.1 基于暗通道的改進圖像去霧算法
暗通道去霧算法基于假設:無霧區(qū)域至少有一個通道某像素接近0。以最小值濾波的灰度圖實現(xiàn)。先驗表達式如下:
Jdark(x,y)=miny∈Ω(x)(minc∈{r,g,b}Jc(x,y))→0 (1)
大氣物理散射模型用來描述霧天成像的原理:
I(x,y)=J(x,y)t(x,y)+A(1-t(x,y)) (2)
式中,x為像素的空間坐標值,I(x,y)為觀察到的霧天圖像,A為大氣光值,J(x,y)為無霧圖像,t(x,y)為場景的透射率。而其中的大氣光值、透射率和無霧圖像都是未知量,暗通道先驗法可以求解出大氣光值與投射率。
通過暗通道圖和原始霧圖,利用亮度前0.1%的像素和對應最高亮度點來估計大氣光值,在估計透射率時設置下限值,防止過曝。除霧前后對比如圖2。
在此基礎上,我們還加入了引導濾波對傳輸函數(shù)進行優(yōu)化,加快運行速度。引入代價函數(shù)可求得線性模型的兩個系數(shù):
E(ak,bk)=∑i∈wk((akIi+bk-pi)2+εa2k) (3)
除此之外,由于得到的圖像偏暗,還需要加入伽瑪校正,伽瑪描述的是像素數(shù)值和像素實際亮度之間的關系,對比如圖3所示。
1.1.2 基于照明分解的圖像去霧算法
在海洋環(huán)境中,霧粒子較大,導致光多次散射,需考慮多層散射效應。而分離霧層和照明層可提升反射細節(jié)并保留自然光照。
基于照明分解的圖像去霧算法分為三個步驟,依次為輸入圖像的照明分解,分離出來的霧圖的去霧,除霧圖像的照明補償。流程圖如圖4。
引入常數(shù)大氣光值和殘差量,建立非均勻照明散射模型得
I(x)=F(x)+G(x) (4)
G(x)即為由于照明不均勻引起的照明項。
基于三個約束:1)海洋場景中,F(xiàn)的梯度應該為稀疏的;2)霧場景中散射光的強度分布呈“帶狀”分布,因此,由場景中的照明和透射確定的G應該是空間平滑的;3)G與透射和照明呈正相關;透射和F的梯度呈負相關。除了考慮透射外,可以從F的背景亮度推斷出照明變化。
本文構建罰函數(shù)等式來得到分離的F(分解霧層)與G(輝光照明層)。通過霧線先驗法得到除霧層。圖5展示除霧過程中得到的一些圖像。
初始圖像偏暗,此時的J需要加上照明補償,即為了避免模糊J(無霧圖像),這里需要將G進行調(diào)整為Gm(x),從而得到圖6所示的最終圖像。
1.2 水面圖像增強評價指標
對圖像進行預處理后,判斷圖像處理好壞需要評價標準,因此,引入了評價指標峰值信噪比PSNR。計算公式如下:
PSNR=20·log10MAXIMSE (5)
MSE為均值方差,MAXI為圖像的最大像素值,一般每個像素由8位二進制表示,對于灰度圖其值為28-1=255。PSNR的值越大,代表圖像越?jīng)]有失真。
表1可以看出,其實暗通道優(yōu)化去霧得到的圖像無失真,效果最好。圖7為去霧操作后目標檢測的效果圖,目標框的左上角數(shù)字為置信度。由圖7可知,暗通道和照明補償去霧均提升了目標檢測精度。暗通道去霧對遠處目標置信度更高,照明補償對近處目標圖像增強效果更好,使其特征更明顯。
2 基于YOLOv7的水面目標檢測算法
2.1 YOLOv7算法框架
YOLO作為深度學習時代第一個單階段檢測器,運行速度極快,將單個神經(jīng)網(wǎng)絡用于完整圖像。即基于卷積神經(jīng)網(wǎng)絡將圖像劃分為s*s個區(qū)域后,同時預測每個區(qū)域的邊界框和概率值,物體中心點落在哪個區(qū)域網(wǎng)格上,就由此網(wǎng)格對應的錨框負責檢測該物體,并且可以實時地處理高分辨率圖像。
由于背景設置是水面,水面目標相對于陸地較為單一,為了保障檢測速度的實時性和精度,采用YOLOv7網(wǎng)絡,主要架構包含正負樣本匹配策略、mosaic數(shù)據(jù)增強和ELEN模塊,在該架構的推理模塊添加測距和標注功能。YOLOv7網(wǎng)絡架構如圖8所示。
輸入處理階段將圖像調(diào)整大小為統(tǒng)一尺寸,并進行mosaic數(shù)據(jù)增強以及自適應縮放和自適應錨框增強。主干網(wǎng)絡由四個CBS模塊組成,包含卷積層、BN層、Silu激活函數(shù)層和ELEN模塊,用于提取特征并進行高效聚合。預測網(wǎng)絡包括SPPCPC層、CBS層、MP層、ELEN-W層和RepVGG block層,用于生成檢測結果。損失函數(shù)包括定位損失、分類損失和置信度損失,主要基于二值交叉熵損失BCEWithLogitsLoss。
loss=boxloss+clsloss+objloss (6)
正負樣本匹配策略首先基于anchor-based通過k-means聚類獲得錨框并進行樣本篩選。然后在anchor-free方面加入輔助頭,用先導頭預測來指導輔助頭和先導頭。
2.2 YOLO訓練模型與檢測結果
Labelimg標注三個類別,分別為buoy、sculpture、boat,其意義為檢測水面障礙物,識別岸邊和識別目標。在將自采集圖像輸入網(wǎng)絡時,借助OpenCV進行視頻抽幀得到685張圖像,然后進行一系列馬賽克、高斯模糊等處理操作,豐富數(shù)據(jù)集,讓網(wǎng)絡能多方面捕捉目標特征。在輸入網(wǎng)絡進行訓練之前YOLOv7也采用了mosaic數(shù)據(jù)增強和自適應縮放等,豐富數(shù)據(jù)集的同時減少GPU的使用。mosaic數(shù)據(jù)增強將四張圖片拼接到一張圖上作為訓練樣本,經(jīng)過增強的訓練集樣本展示如圖9。
卷積訓練時,設置 batches=4,subdivisions=8,輸入圖像的寬高經(jīng)縮放為640×640,圖像通道數(shù)為3,初始學習率 learning rate=0.01,動量因子momentum=0.937,權重正則衰減項為decay=0.000 5,采用Nvidia TX2作為計算單元硬件。
訓練所得的模型可視化結果如圖10,左邊六幅圖上面三張為訓練集的定位損失、置信度損失和分類損失;下面三張為回調(diào)集的三種損失??梢娙N損失最后都趨近于0,評估效果較好。上方第四張為模型預測精度;第五張為正樣本召回準確率檢測精度結果。波動較為平穩(wěn),大致呈現(xiàn)上升趨勢,訓練效果較好。下方最后兩張圖,mAP@0.5表示閾值大于0.5的平均mAP;mAP@0.5:0.95(mAP@[0.5:0.95])表示在不同IoU閾值(從0.5到0.95,步長0.05)上的平均mAP。最終精度為0.9719,召回率為0.990 2。
3 水面多目標跟蹤方法
3.1 多目標跟蹤方法流程
設置的背景是水面,水面檢測目標較少,且相互遮擋問題比較少見,因此,采用卡爾曼濾波算法對目標狀態(tài)進行估計預測;在匹配階段,考慮較低的時間和復雜度并避免局部最優(yōu)解,實現(xiàn)全局最優(yōu)化,選用匈牙利算法完成跟蹤功能。核心流程圖見圖11。
3.2 基于Kalman濾波算法的目標預測
卡爾曼濾波融合觀測和系統(tǒng)模型,估計目標狀態(tài),提供狀態(tài)均值和協(xié)方差信息。主要包括預測和更新過程,結合檢測框信息和狀態(tài)變化量進行多目標跟蹤。通過目標檢測得到的信息獲得目標框數(shù)據(jù):檢測框中心點橫坐標u、檢測框中心點的縱坐標v、檢測框的大小s(用目標框所占面積來表示)、長寬比r。由于多目標跟蹤不僅要關注當前幀的信息還要預測下一幀的目標框位置,因此在知道這些信息的基礎上還需要引入上述的四類狀態(tài)的變化量信息(變化速度)來進行運動狀態(tài)信息的描述。假設不同幀變化時長寬比不變,描述檢測框的狀態(tài)的公式如下:
x=[u,v,s,r,,,]T (7)
初始化狀態(tài),建立離散線性動態(tài)系統(tǒng)的模型;針對相應噪聲的協(xié)方差參數(shù),根據(jù)經(jīng)驗值設定如下(均為對角陣):先驗估計協(xié)方差矩陣P=diag([10 10 10 10 1×104 1×104 1×104]T),過程激勵噪聲協(xié)方差矩陣Q=diag([1 1 1 1 0.5 0.5 0.25]T),測量噪聲協(xié)方差矩陣R=diag([1 1 10 10]T)。隨后進行預測更新。
xk^=Axk-1^+Buk-1
Pk=APk-1AT+Qk
K′=PkHTk(HkPkHTk+Rk)-1
′k=k+K′(zk-Hkk)
P′k=Pk-K′HkPk (8)
3.3 基于匈牙利算法的跟蹤方法
通過卡爾曼濾波預測當前幀目標框位置,再用匈牙利算法匹配上一幀目標?;诮徊⒈龋↖oU)計算目標框相似度,構建代價矩陣,以最小化總匹配代價。根據(jù)IoU和距離計算各匹配組合的代價,實現(xiàn)目標與軌跡的關聯(lián)。
目標進出場景,根據(jù)IoU檢測新目標或移除失配目標軌跡,防止誤創(chuàng)建,提高算法效率。設置連續(xù)幀參數(shù),若一段時間內(nèi)無匹配,則目標消失,提高跟蹤效率。
匈牙利算法的核心為尋找增廣路徑,用增廣路徑求二分圖的最大匹配。 首先初始化二分圖(兩組集合,集合內(nèi)部的點不可以互相連接)。圖12表示當前幀可能匹配的目標框。不連通點表示IOU小于閾值,拒絕分配。遞歸找出一對一匹配,計算多種組合的cost。
cost=λiouLiou+λL1bi-σ(i)1 (9)
式中,cost為距離損失和IoU損失的和,λ分別為各自的權重。此時可以得到與真值之間cost最小的預測結果排列組合情況。
4 雙目相機信息感知定位與實驗驗證
4.1 相機選型及感知方法
深度相機(Depth Camera)是一種能夠同時獲取彩色圖像和深度信息的攝像設備。它使用不同于傳統(tǒng)相機的技術,如結構光、飛行時間或立體視覺等,獲取場景中物體的距離或深度信息。ZED2深度相機作為視覺傳感器進行目標檢測時,可獲取目標距離信息。ZED2相機是stereolabs公司制作的基于雙目視覺的產(chǎn)品,采用100 f/s的1 344×376(WVGA)像素分辨率。
雙目相機測距離原理在于通過兩個鏡頭同時拍攝同一場景,測量兩個攝像頭視野中同一物體的像素差異,獲得深度信息,可以計算出物體距離。
視差用于計算目標距離(視差是由相機在不同位置或角度下拍攝同一個場景時產(chǎn)生的像素位置移動偏差)。目標在相機坐標系下的三維坐標為
x-x0f=XZ
y-y0f=YZ→
X=x-x0fZ=x-x0ffBXR-XLY=y-y0fZ=y-y0ffBXR-XL (10)
得到以左鏡頭光心為原點的三維坐標后,可以計算出目標和左鏡頭光心的距離。由于設置的環(huán)境是相機搭載在船上,而檢測的目標也均處于水面,垂直方向(即為Y軸向量)上的變化可以忽略,相對方向角計算如下,位于中心左邊為負,右邊為正。
angle=arctanxz (11)
相機在捕捉圖像后,采用張正友相機標定方法。相機拍攝已知尺寸的標定板,自動檢測出角點坐標,建立成像方程關聯(lián)內(nèi)外參數(shù)與圖像、世界坐標,通過最小二乘法求解攝像機參數(shù)。
Matlab進行標定刪除一些誤差較大的標定圖像得到的相機采集的重投影誤差如圖13(平均誤差在0.14),對標定誤差修正得出相機內(nèi)參。
雙目立體匹配采用SGBM算法,在雙目立體圖像間建立點點對應,然后通過比較兩個圖像之間的像素差異來確定對應像素之間的視差,并計算出深度。
4.2 距離信息評價
首先在實驗室對無人船進行檢測和測距,對比真實距離和測試距離,求取平均誤差。實驗室真實場景如圖14。
調(diào)整雙目相機與船之間的距離記錄十組數(shù)據(jù)。最終得到平均相對誤差為6.46%,數(shù)據(jù)圖像見圖15。
4.3 實驗驗證
實驗方面的流程如圖16。
將雙目相機搭載到無人船上,在湖面上進行實驗,檢驗實時檢測的框選效果、測距效果,并檢驗目標跟蹤效果。
搭載的無人船平臺的船體尺寸為999 mm×530 mm×494 mm,將外接相機搭載到無人船的頂部,無人船內(nèi)艙放置電池和降壓模塊給計算設備NVIDIA TX2供電,相機與該計算設備串口連接,搭載在船的尾端頂部。
1.2節(jié)已驗證圖像增強去霧算法能有效去除圖像中的噪聲和干擾,有助于YOLOv7算法在目標檢測中的特征提取和識別過程。優(yōu)化圖像減少了誤檢和漏檢的發(fā)生,提高了檢測精度和召回率。
實時檢測和測距效果如圖17,依次選取視頻中目標船由近到遠的兩幀,左圖顯示距離和目標框,右圖顯示目標框。
實驗證明檢測算法得到的目標檢測距離信息可以用于引導跟蹤,為后續(xù)跟蹤算法(如Sort算法)提供可靠的輸入數(shù)據(jù),但在實時性和測距范圍方面還需改進。
多目標跟蹤效果見圖18,雙目相機左圖框出目標并畫出中心點軌跡,右圖只需標出目標框。通過多次實驗,發(fā)現(xiàn)算法可以準確捕捉到目標的運動軌跡。左圖目標框ID為2,右圖為1,由于湖面波浪的影響搭載相機船體,運動軌跡有抖動。實驗表明多目標跟蹤可以應用于水面上交通軌跡的實時監(jiān)測以便及時做出反應。
5 結束語
本文研究了一種水面機動目標的圖像增強檢測與多目標跟蹤方案,可用于有霧天氣的水面目標搜索與跟蹤。系統(tǒng)運用基于照明補償?shù)陌低ǖ婪椒ǔF,應用YOLOv7進行目標識別定位;采用卡爾曼濾波和匈牙利算法結合進行目標跟蹤,最后標定相機并搭載實物進行實驗,實驗結果驗證了算法的有效性和可行性。
參考文獻:
[1] ZOU Z, CHEN K, SHI Z W, et al. Object detection in 20 years: A survey[J]. Proceedings of the IEEE, 2023, 111(3): 257-276.
[2] HIDE R.Optics of the atmosphere: scattering by molecules and particles[J]. Physics Bulletin, 1977,28(11):521.
[3] HE K M, SUN J, FELLOW, et al. Single image haze removal using dark channel prior[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2011, 33(12):2 341-2 353.
[4] HE K M, SUN J, TANG X. Guided image filtering[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013(6):35.
[5] Hu H M, GUO Q, ZHENG J, et al. Single Image Defogging based on illumination decomposition for visual maritime surveillance[J]. IEEE Transactions on Image Processing, 2019, 28(6):2 882-2 897.
[6] VIOLA P, JONES M. Rapid object detection using a boosted cascade of simple features[C]//Proceedings of the 2001 IEEE computer society conference on computer vision and pattern recognition. CVPR 2001. Kauai, 2001.
[7] DALAL N, TRIGGS B. Histograms of oriented gradients for human detection[C]//2005 IEEE computer society conference on computer vision and pattern recognition (CVPR’05). San Diego, 2005, 1: 886-893.
[8] FELZENSZWALB P, MCALLESTER D, RAMANAN D. A discriminatively trained, multiscale, deformable part model[C]//2008 IEEE conference on computer vision and pattern recognition. Anchorage,2008: 1-8.
[9] GIRSHICK R , DONAHUE J , DARRELL T ,et al.Rich Feature hierarchies b1d6a6910ae69fced85fc84fa43bd9fa4a6cc58ffcbac774eb347b87d47ef482for accurate object detection and semantic segmentation[C].2014 IEEE Conference on Computer Vision and Pattern Recognition(CVPR).Columbus,2014: 580-587.
[10]He K M, ZHANG X Y, REN S Q, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015, 37(9):1 904-1 919.
[11]GIRSHICK R. Fast R-CNN[C]//2015 IEEE International Conference on Computer Vision(ICCV). Santiago,2015: 1 440-1 448.
[12]REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: Unified, real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition(CVPR). Las vegas, 2016: 779-788.
(責任編輯:張培培)