崔 杰,胡長青,徐海東,呂銀杰
(1.中國科學院聲學研究所東海研究站,上海201815;2.中國科學院大學,北京100049;3.嘉興易聲電子科技有限公司,浙江嘉興314000)
隨著海洋資源開發(fā)和軍事安全的需求,水下安防工作受到越來越多的重視。多波束前視聲吶分辨率高,成像速度快,既能在高速的運動狀態(tài)下快速成像,又能針對高速運動中的目標快速成像[1-2]。多波束前視聲吶通常采用寬波束發(fā)射,通過同時預成多個接收波束來得到大扇面的方位-距離圖像,可以在固定不動時得到同一場景的多幀視頻圖像[1]。因此多波束前視聲吶的出現(xiàn)使得蛙人探測、小型潛器監(jiān)視等偵察警戒任務得以實現(xiàn),基于圖像序列綜合處理的水聲視覺智能技術受到國內(nèi)的極大關注。
目標跟蹤的方法是按照目標特征,根據(jù)顏色、紋理、形狀等特征來進行跟蹤。從方法的角度來說,可分為基于濾波理論的跟蹤技術、基于Mean Shift的跟蹤技術、基于粒子濾波的跟蹤方法和基于偏微分方程的跟蹤技術等。基于水聲圖像的目標跟蹤技術起步較晚,并且多借鑒光學成像中的跟蹤技術。國外的研究比我國起步要早,有相對成熟的解決方案,但由于技術較為敏感,相關的研究報告和技術細節(jié)極少公開報道。國內(nèi)主要有中國科學院、中國船舶重工集團、高校等單位進行相關研究。
Mean Shift是一種基于密度梯度的非參數(shù)特征空間分析方法,算法的實時性好且容易集成,在目標跟蹤領域有著廣泛的應用。Mean Shift算法的跟蹤模型為核函數(shù)加權顏色直方圖,具有對邊緣遮擋、目標的旋轉(zhuǎn)、變形及背景運動都不敏感的特點。Mean Shift算法也存在局限性:缺乏必要的模板更新算法;跟蹤過程中窗口大小保持不變,當目標的形狀或者尺寸發(fā)生較大變化時,存在跟蹤失敗的可能;直方圖是一種較弱的目標特征,當背景和目標的直方圖分布相近時,算法的跟蹤效果欠佳[3-5]。
本文主要研究Mean Shift跟蹤算法在聲吶圖像目標跟蹤中的應用,并針對算法跟蹤框固定不變的缺點提出了一種更新策略。
Mean Shift算法需要在起始幀通過手動確定搜索窗口來選擇運動目標,計算搜索框內(nèi)的核函數(shù)加權顏色直方圖來建立目標模型,用同樣的方法計算下一幀對應窗口的直方圖分布,用巴氏(Bhattacharyya)系數(shù)來描述目標與候選目標之間的相似性,以兩個分布的相似性最大為原則,使搜索窗口沿密度增大最大的方向移動,通過Mean Shift迭代來得到目標的真實位置[4-5]。以下簡要介紹其過程。
給定跟蹤窗口T,x0為跟蹤窗口T的中心,{xi}i=1?n表示窗口內(nèi)各個像素的坐標,定義函數(shù)b:R2→{1,…,m},使b{xi}對應xi處像素的顏色索引,則跟蹤窗口T圖像的概率密度函數(shù)定義為
其中:u=1,???,m對應顏色索引;是Epanechnikov、高斯(Guassian)等核函數(shù);h是核函數(shù)的帶寬;δ是克羅內(nèi)克(Kronecherdelta)函數(shù),用于判斷xi處的顏色值是否屬于特征值;C是歸一化系數(shù)。
對應初始幀目標模型,假設當前幀中候選目標的中心為y,為候選目標中的像素位置,候選目標的模型可以表示為
式中:Ch對應式(1)中的C。
相似性系數(shù)用來度量目標與候選目標之間的相似度,目前在Mean Shift跟蹤中使用最為廣泛的是Bhattacharyya系數(shù),其定義為
Bhattacharyya系數(shù)的局部最大值點可以視為當前幀中的目標位置。以前一幀的目標中心y作為當前幀的目標中心,然后此處開始找尋最優(yōu)的匹配目標,在處對式(3)進行泰勒展開,可得:
式(4)中,第一項與y無關,而第二項表示坐標y處的含密度估計,其中每個像素點的權重用wi表示。因此,尋找最優(yōu)候選目標的問題就轉(zhuǎn)化為尋找概率密度函數(shù)局部極值位置的問題,它可以通過Mean Shift迭代的方法完成。令,得到Mean Shift的迭代形式:
其中:g(x)=-k'(x);y0是第N幀搜索窗口的中心坐標;y1表示尋找到新的搜索窗口的中心坐標。
背景消減法是一種常用的基于圖像序列的運動目標檢測算法,對智能監(jiān)控中的目標跟蹤識別和行為分析等后續(xù)處理十分關鍵。
背景消減法通過計算當前幀與背景模型的差來實現(xiàn)運動目標的檢測,因此背景建模是背景消減法的關鍵。目前已有的背景建模方法有均值背景模型、中值背景模型和混合高斯模型等,本文依據(jù)算法效果和復雜度選擇中值背景模型來構(gòu)建[6-8]。
中值背景模型適合背景變化不大的場景,同時也能很好地避免均值背景模型存在的“拖影”現(xiàn)象[7-8]。中值背景模型原理簡單,取一段時間內(nèi)的連續(xù)K(K為奇數(shù))幀圖像,I1(m,n),???,IK(m,n)表示像素點(m,n)的時域序列,I(1)(m,n),???,I(K)(m,n)表示像素點(m,n)按從小到大排序的序列,則像素點(m,n)的背景像素為:
將每一幀待檢測的圖像減去背景圖像,然后對差分圖像進行分割操作。設像素點(m,n)在第k幀的值為Ik(m,n),背景圖像的值為B(m,n),則差分圖像的值表示為
選用合適的閾值對差分圖像進行分割即可得到運動目標的二值圖像。在這里本文選擇最大類間方差(Otsu)算法對差分圖像進行分割,該算法是一種高效的圖像二值化算法。
對于圖像I,前景(即目標)和背景的分割閾值記為T,前景像素點數(shù)占整幅圖像的比例記為ω0,平均灰度為μ0,背景像素點數(shù)占整幅圖像的比例記為ω1,平均灰度為μ1,圖像的類間方差g為
用遍歷法求使得類間方差g最大的閾值T,然后用T對差分圖像進行二值化操作:
由式(10)得到的二值化圖像即為移動目標的二值圖像。
經(jīng)典的Mean Shift跟蹤算法缺乏有效的目標更新策略,并且無法有效地估計目標的尺度。本文針對以上缺點,結(jié)合背景消除算法的運動目標檢測算法,提出了跟蹤窗口隨目標大小實時更新的Mean Shift跟蹤算法。
算法的原理是利用Mean Shift迭代來完成幀間目標定位,然后在目標定位的范圍內(nèi)利用圖像分割對目標的尺寸和跟蹤模板進行更新,以實現(xiàn)跟蹤窗口隨目標大小和形狀的自適應變化[9-10]。具體算法流程如下:
(1) 初始化:選擇初始幀圖像,人工標記待跟蹤的運動目標,計算目標的最小跟蹤框,并依據(jù)1.1節(jié)的方法建立目標模型。
(2) Mean Shift迭代:依據(jù)1.2~1.4節(jié)的方法,選擇當前幀圖像進行Mean Shift迭代,計算出當前幀中目標中心和跟蹤框位置。
(3) 運動目標分割:根據(jù)第2節(jié)中的方法,對運動目標進行分割,實現(xiàn)運動目標的二值化。
(4) 匹配:根據(jù)步驟(2)中Mean Shift跟蹤框標記和(3)中的運動目標,計算被標記目標的最小外接矩形,如果最小外接矩形與跟蹤框長度和寬度的誤差不超過10%,則對跟蹤框進行更新,否則不更新。
(5) 更新:依據(jù)步驟(4)中新的跟蹤框重新建立目標模型。
(6) 循環(huán):回到步驟(2),對更新后的目標進行跟蹤。
本文實驗設備選擇Kongsberg 公司生產(chǎn)的M3多波束前視聲吶,實驗場地為某湖上的雙體實驗船。聲吶置于雙體船中部的實驗甲板中,水域處于自然環(huán)境狀態(tài),水體中存在線纜及魚群等干擾物。本文考慮的主要應用場景為海事設施周圍對蛙人、水下機器人的監(jiān)控和跟蹤。聲吶處于固定狀態(tài),受水域限制,前視聲吶的探測距離設置為40 m。
實驗選用兩個相同尺寸的鋼絲鐵籠作為目標,分別標記為目標1和目標2,其底部最大直徑為45 cm,籠口直徑為28 cm,籠口到籠子底部的高度為45 cm。目標在前視聲吶視野范圍內(nèi)由細繩牽引、人工拖曳進行上下運動,共采集228幀圖像。
本文選用經(jīng)典Mean Shift算法和本文改進后的算法對兩個目標進行跟蹤。下面通過跟蹤軌跡、目標框選和跟蹤誤差來對兩種算法進行評價。
在本次試驗中,目標先在水中下沉后經(jīng)人工拖曳上浮,采用經(jīng)典Mean Shift算法和改進后的算法完成了對目標的追蹤。目標的跟蹤軌跡如圖1所示,其中目標1的跟蹤軌跡為紅色,目標2的跟蹤軌跡為綠色。圖1(a)是中值背景下(聲吶固定,背景固定,但背景中存在魚群等運動目標的干擾)x-y平面的目標跟蹤軌跡,可以看出目標運動的軌跡基本為沿著y軸方向的上下運動。圖1(b)是目標的三維運動軌跡,可以看出目標隨時間的幀位置變化。
兩種算法的跟蹤軌跡效果通過肉眼很難看出明顯的差別。在下文中通過跟蹤框和跟蹤坐標的誤差來進行具體的對比。
圖1 目標跟蹤軌跡Fig.1 Target tracking trajectories
為了驗證本文算法對跟蹤框更新的效果,本文與經(jīng)典Mean Shift算法進行對比。圖2(a)和圖2(b)分別是目標1和目標2的跟蹤效果對比圖,圖中依次展示了第1,31,61,???,211幀共8幀圖像的目標圖像和跟蹤框,其中紅色跟蹤框是經(jīng)典Mean Shift的跟蹤框,綠色跟蹤框是改進后算法的跟蹤框。
圖2 經(jīng)典和改進Mean Shift算法的跟蹤框效果對比Fig.2 Comparison of tracking box effects of classical and improved Men Shift algorithms
如圖2(a)所示,目標1在運動過程中大小沒有發(fā)生明顯變化,跟蹤框的大小變化不明顯,跟蹤框的中心為Mean Shift算法迭代的目標位置。在Mean Shift算法迭代過程中,基于Bhattacharyya系數(shù)的概率密度函數(shù)相似性度量會收斂到局部極值。但該極值可能并不是最優(yōu)解,因此會出現(xiàn)定位偏差,并且Mean Shift的收斂位置多數(shù)情況下并不是目標的中心,因此經(jīng)典的Mean Shift算法存在定位誤差和跟蹤框無法準確框選運動目標的問題。改進后的算法能夠根據(jù)目標的大小和形狀對跟蹤框的位置和尺寸進行更新,并根據(jù)更新后的跟蹤框?qū)δ繕四0暹M行更新,因此跟蹤效果比經(jīng)典的Mean Shift算法更為準確。
如圖2(b)所示,目標2在運動過程中由于角度或姿態(tài)問題出現(xiàn)了逐漸變小的情況。經(jīng)典的Mean Shift算法在該情況下雖然完成了對目標的定位,但是由于固定跟蹤框的問題,在目標變小的情況下框選了較多的背景信息,而本文的改進算法可以對目標的大小進行實時更新,跟蹤框在目標變小的情況下進行了自適應調(diào)整,對目標的描述更為準確。
圖3 經(jīng)典和改進Mean Shift算法的跟蹤誤差對比Fig.3 Comparison of tracking error between classical and improved Mean Shift algorithms
圖3是兩種算法跟蹤坐標的歐式距離誤差,其中參考坐標為每幀圖像手動標定目標的最小外接矩形中心。其中圖3(a)和圖3(b)分別目標1和2的誤差,其中紅線表示經(jīng)典Mean Shift跟蹤算法的誤差,綠線表示由上一幀目標模型更新后Mean Shift跟蹤(簡稱更新后跟蹤)算法的誤差,藍線表示目標模型更新后跟蹤框(簡稱跟蹤框更新)的誤差(因為手動標定目標和自動分割目標存在不可避免的誤差)。由于目標1的形狀變化較小,目標更新對跟蹤結(jié)果的影響較??;而目標2在運動過程中后期有較明顯的伸縮變化,目標更新后的效果則比較明顯。
表1是兩種算法在不同方向上的均方根誤差(Root Mean Square Error, RMSE),參考坐標同樣是目標分割后的質(zhì)心。從表中可以看出,在x方向、y方向和歐式距離上,目標更新后跟蹤算法的算法誤差相比傳統(tǒng)的Mean Shift算法有了較大的改進,并且目標模型的更新能較準確地定位目標的真實位置。
表1 跟蹤結(jié)果的均方根誤差Table 1 Root mean square error of tracking results
本文將Mean Shift算法用于多波束前視聲吶的運動目標跟蹤問題,并對Mean Shift算法提出了一種改進方案。該算法利用Mean Shift實現(xiàn)目標的幀間定位,通過基于圖像序列的背景消減法實現(xiàn)運動目標分割,根據(jù)分割后目標的位置和大小對Mean Shift跟蹤框進行更新,并重新建立目標模型來迭代實現(xiàn)目標的準確跟蹤和框選。實驗數(shù)據(jù)表明,改進后的算法跟蹤框可隨目標的尺寸變化進行更新,對目標的定位和框選更加精準。
本文算法實現(xiàn)了簡單背景下跟蹤框隨目標變化的實時跟蹤??梢灶A見,本文算法在復雜場景下目標受背景干擾較大時的效果可能欠佳。因此,在下一步的工作中需要從魯棒性的角度出發(fā)對算法進行改進。