一種基于貝葉斯的渦旋自動(dòng)追蹤方法
【專利摘要】本發(fā)明公開(kāi)了一種基于貝葉斯的渦旋自動(dòng)追蹤方法,采用基于貝葉斯的Kalman濾波對(duì)渦旋的運(yùn)動(dòng)過(guò)程進(jìn)行建模,通過(guò)預(yù)測(cè)位置與觀測(cè)結(jié)果進(jìn)行跟蹤匹配,并采用Hungarian最優(yōu)化算法解決多目標(biāo)渦旋追蹤的匹配沖突問(wèn)題。本發(fā)明克服了多目標(biāo)渦旋追蹤過(guò)程中的復(fù)雜匹配難題,提高了追蹤結(jié)果的準(zhǔn)確性。
【專利說(shuō)明】
一種基于貝葉斯的渦旋自動(dòng)追蹤方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及一種基于貝葉斯的渦旋自動(dòng)追蹤方法,屬于海洋渦旋自動(dòng)提取算法領(lǐng) 域。
【背景技術(shù)】
[0002] 中尺度渦(簡(jiǎn)稱渦旋)是海洋中分布廣泛且非常重要的一種動(dòng)態(tài)現(xiàn)象,它不僅能傳 遞熱量、傳播營(yíng)養(yǎng)物質(zhì),同時(shí)也是海洋動(dòng)能的主要體現(xiàn)?,F(xiàn)代遙感觀測(cè)技術(shù)的發(fā)展和應(yīng)用為 研究海洋渦旋的演變演化規(guī)律,提供了長(zhǎng)時(shí)間豐富的觀測(cè)資料。從這些海量的觀測(cè)資料中 挖掘提取出渦旋的演化過(guò)程,是研究渦旋運(yùn)動(dòng)演化規(guī)律的基本前提。
[0003] 目前,渦旋演化過(guò)程的追蹤方法主要有三種:1)距離搜索法,主要以當(dāng)前追蹤渦旋 中心點(diǎn)為參考設(shè)定搜索半徑,在下一個(gè)時(shí)刻搜索落入半徑范圍內(nèi)的渦旋,選取距離最近的 渦旋作為演化后繼(Chelton et al. 2011); 2)相似性追蹤,在距離搜索方法的基礎(chǔ)上,加入 渦旋之間相似程度的度量,以最相似的渦旋左右演化后繼(Chaigneau et al.2008);3)面 積重疊法,根據(jù)渦旋演化前后空間形態(tài)是否存在重疊,來(lái)判斷是否同屬于一個(gè)渦旋演化過(guò) 程(Henson et al.2008)。
[0004] 現(xiàn)有的這些方法,算法思想簡(jiǎn)單,應(yīng)用廣泛,但存在兩點(diǎn)不足:一是忽略了渦旋移 動(dòng)的本質(zhì),不管是半徑搜索還是面積重疊,若是以當(dāng)前渦旋的位置為參考來(lái)追蹤下一個(gè)時(shí) 亥IJ,本質(zhì)上是假設(shè)渦旋下個(gè)時(shí)刻仍然停留在原地沒(méi)有移動(dòng),而這與事實(shí)不符;二是當(dāng)多個(gè)渦 旋位置接近時(shí),容易形成復(fù)雜的跟蹤匹配問(wèn)題,如兩個(gè)渦旋在下一個(gè)時(shí)刻追蹤到三個(gè)潛在 后繼,究竟哪種匹配才最符合渦旋移動(dòng)特征,這個(gè)問(wèn)題在現(xiàn)有三種方法中都沒(méi)有相應(yīng)的應(yīng) 對(duì)辦法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明解決的技術(shù)問(wèn)題:提供一種基于貝葉斯的渦旋自動(dòng)追蹤方法,采用Kalman 濾波對(duì)渦旋運(yùn)動(dòng)過(guò)程進(jìn)行建模,解決渦旋下一時(shí)刻位置的預(yù)測(cè)的問(wèn)題,同時(shí)采用Hungarian 最優(yōu)化匹配算法,解決多個(gè)渦旋目標(biāo)追蹤時(shí)的匹配沖突問(wèn)題,提高了追蹤結(jié)果的準(zhǔn)確性。
[0006] 本發(fā)明的技術(shù)方案:一種基于貝葉斯的渦旋自動(dòng)追蹤方法,首先構(gòu)建基于貝葉斯 的Kalman濾波(Bar-Shalom et al .2001)對(duì)禍旋的運(yùn)動(dòng)過(guò)程進(jìn)行建模,從概率上預(yù)測(cè)禍旋 下一個(gè)時(shí)刻最可能出現(xiàn)的位置和有效誤差范圍,再與觀測(cè)的結(jié)果進(jìn)行跟蹤匹配,如果出現(xiàn) 多目標(biāo)追蹤匹配,則采用Hungarian最優(yōu)化匹配算法(J.Munkres 1957)搜索每一個(gè)禍旋目 標(biāo)的最佳后繼。
[0007] 具體步驟如下:
[0008] 步驟1、初始化,建立一個(gè)空的渦旋跟蹤器集合,一個(gè)渦旋觀測(cè)值集合和一個(gè)空的 跟蹤結(jié)果集合。每一個(gè)渦旋跟蹤器將在自動(dòng)追蹤的過(guò)程中記錄一個(gè)渦旋演化過(guò)程的前序后 繼關(guān)系。禍旋觀測(cè)值集合將記錄每個(gè)時(shí)刻觀測(cè)到的渦旋信息(位置、屬性等)。跟蹤結(jié)果集合 將存儲(chǔ)記錄生命過(guò)程追蹤完成的渦旋跟蹤器。對(duì)首個(gè)時(shí)刻觀測(cè)到的每個(gè)渦旋,構(gòu)建渦旋跟 蹤器,記錄渦旋的位置信息,并創(chuàng)建默認(rèn)參數(shù)的Kalman濾波用于跟蹤預(yù)測(cè),然后將跟蹤器添 加到渦旋跟蹤器集合中;
[0009] 步驟2、啟動(dòng)追蹤,從下一個(gè)時(shí)刻開(kāi)始,按時(shí)間幀進(jìn)行循環(huán),若是循環(huán)至最后一幀, 追蹤停止,跟蹤結(jié)果集合收集的渦旋追蹤器,記錄了追蹤渦旋的生命演化過(guò)程信息;否則, 進(jìn)行自動(dòng)追蹤,執(zhí)行步驟3-4;
[0010] 步驟3、獲取當(dāng)前時(shí)間幀的所有渦旋觀測(cè)值,添加到觀測(cè)值集合中;
[0011 ] 步驟4、數(shù)據(jù)關(guān)聯(lián),遍歷跟蹤器集合中的每一個(gè)渦旋跟蹤器,先進(jìn)行Kalman濾波的 跟蹤預(yù)測(cè),再將預(yù)測(cè)的渦旋位置及誤差范圍與當(dāng)前時(shí)刻的渦旋觀測(cè)值集合中的所有渦旋, 進(jìn)行關(guān)聯(lián)匹配:
[0012] ?若渦旋跟蹤器的預(yù)測(cè)誤差范圍內(nèi)沒(méi)有匹配到觀測(cè)值集合中的渦旋,則將該跟蹤 器從集合中取出,加入到步驟1建立的跟蹤結(jié)果集合中,表明該渦旋的生命演化過(guò)程已經(jīng)追 蹤結(jié)束;
[0013] ?若渦旋跟蹤器的預(yù)測(cè)誤差范圍內(nèi)有且僅有一個(gè)匹配的渦旋觀測(cè)值,則從渦旋觀 測(cè)值集合中取出該渦旋,作為跟蹤器跟蹤到的后繼渦旋,并采用Kalman濾波器對(duì)該渦旋的 觀測(cè)位置進(jìn)行修正,獲得濾波后的渦旋位置及誤差范圍,并以此為準(zhǔn)進(jìn)行之后的過(guò)程追蹤;
[0014] ?若渦旋跟蹤器的預(yù)測(cè)誤差范圍內(nèi)存在多個(gè)匹配的渦旋觀測(cè)值,則首先采用 Hungarian算法對(duì)該跟蹤器與禍旋觀測(cè)值構(gòu)成的二分圖(bipartite graph)進(jìn)行最優(yōu)化匹 配,對(duì)于匹配到觀測(cè)值的渦旋跟蹤器,將該觀測(cè)值從觀測(cè)值集合中取出,作為跟蹤器跟蹤到 的后繼渦旋,并采用Kalman濾波器對(duì)該渦旋的觀測(cè)位置進(jìn)行修正,獲得濾波后的渦旋位置 及誤差范圍,并以此為準(zhǔn)進(jìn)行之后的過(guò)程追蹤;
[0015] ?若觀測(cè)值集合中存在未匹配跟蹤器的渦旋,則新建一個(gè)渦旋跟蹤器,添加到渦 旋跟蹤器集合中。
[0016]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:采用基于貝葉斯的Kalman濾波,更準(zhǔn)確地模 擬渦旋的運(yùn)動(dòng)過(guò)程;采用Hungarian算法解決多目標(biāo)追蹤的復(fù)雜匹配沖突難題,提高了追蹤 的準(zhǔn)確性。
【附圖說(shuō)明】
[0017]圖1為本發(fā)明的實(shí)現(xiàn)流程圖。
【具體實(shí)施方式】
[0018] 如圖1所示,本發(fā)明的具體實(shí)施步驟如下:
[0019] 步驟1、初始化,建立一個(gè)空的渦旋跟蹤器集合(trackerList),一個(gè)渦旋觀測(cè)值集 合(observeList)和一個(gè)空的跟蹤結(jié)果集合(completeList)。每一個(gè)禍旋跟蹤器將在自動(dòng) 追蹤的過(guò)程中通過(guò)在Ids屬性中記錄渦旋ID,存儲(chǔ)渦旋生命過(guò)程的前序后繼關(guān)系。渦旋觀測(cè) 值集合將記錄每個(gè)時(shí)刻觀測(cè)到的渦旋位置。跟蹤結(jié)果集合將存儲(chǔ)記錄生命過(guò)程追蹤完成的 渦旋跟蹤器。對(duì)首個(gè)時(shí)刻觀測(cè)到的每個(gè)渦旋,構(gòu)建渦旋跟蹤器,在〇bs屬性中記錄渦旋的位 置矢量,并創(chuàng)建默認(rèn)參數(shù)的Kalman濾波用于跟蹤預(yù)測(cè),然后將跟蹤器添加到渦旋跟蹤器集 合中。
[0020] 跟蹤器、觀測(cè)值的數(shù)據(jù)結(jié)構(gòu)如下,跟蹤結(jié)果集合將收集、存儲(chǔ)已跟蹤完成的渦旋跟 蹤器:
[0021]跟蹤器
[0023] 觀測(cè)值
[0025] 步驟2、啟動(dòng)追蹤,從下一個(gè)時(shí)刻開(kāi)始,按時(shí)間幀進(jìn)行循環(huán),若是循環(huán)至最后一幀, 追蹤停止,跟蹤結(jié)果集合收集的渦旋追蹤器,記錄了追蹤渦旋的生命演化過(guò)程信息;否則, 進(jìn)行自動(dòng)追蹤,執(zhí)行步驟3-4;
[0026] 步驟3、獲取當(dāng)前時(shí)間幀的所有渦旋觀測(cè)值,添加到觀測(cè)值集合observeList中; [0027] 步驟4、數(shù)據(jù)關(guān)聯(lián)。遍歷跟蹤器集合trackerList中的每一個(gè)渦旋跟蹤器,先進(jìn)行 Kalman濾波的跟蹤預(yù)測(cè),將預(yù)測(cè)的渦旋位置和協(xié)方差矩陣分別存儲(chǔ)到跟蹤器的Pre和Cov屬 性中,并計(jì)算與渦旋觀測(cè)位置的mahalanobis(馬氏)距離。馬氏距離計(jì)算公式如下:
[0029] 其中,X表示預(yù)測(cè)值向量,Y表示觀測(cè)值向量,2表示Kalman濾波器的協(xié)方差矩陣。 由于馬氏距離符合卡方分布,所以當(dāng)渦旋跟蹤器的預(yù)測(cè)值向量與觀測(cè)值向量的馬氏距離大 于0.05的顯著水平時(shí),認(rèn)為觀測(cè)值在預(yù)測(cè)的誤差范圍外,跟蹤匹配時(shí)應(yīng)排除在外,反之,渦 旋觀測(cè)值在預(yù)測(cè)的誤差范圍內(nèi),按以下幾種情況進(jìn)行跟蹤匹配:
[0030] ?若渦旋跟蹤器的預(yù)測(cè)誤差范圍內(nèi)沒(méi)有匹配到觀測(cè)值集合中的渦旋,則將該跟蹤 器從trackerList中取出,加入到步驟1建立的跟蹤結(jié)果集合completeList中,表明該禍旋 的生命演化過(guò)程已經(jīng)追蹤結(jié)束;
[0031] ?若渦旋跟蹤器的預(yù)測(cè)誤差范圍內(nèi)有且僅有一個(gè)匹配的渦旋觀測(cè)值,則從渦旋觀 測(cè)值集合observeList中取出該渦旋,作為跟蹤器跟蹤到的后繼渦旋,用該渦旋的空間位置 更新跟蹤器的〇bs屬性,同時(shí),用跟蹤器中的Kalman濾波器對(duì)渦旋的位置進(jìn)行修正,用濾波 后的渦旋位置及誤差矩陣更新跟蹤器的Upd和Cov屬性,并以此為準(zhǔn)進(jìn)行之后的過(guò)程追蹤;
[0032] ?若渦旋跟蹤器的預(yù)測(cè)誤差范圍內(nèi)存在多個(gè)匹配的渦旋觀測(cè)值,則首先采用圖遍 歷算法提取出二分圖中的跟蹤器和觀測(cè)值,計(jì)算跟蹤器與觀測(cè)值之間的馬氏距離得到距離 成本矩陣,然后采用Hungarian算法對(duì)該距離成本矩陣進(jìn)行最優(yōu)化匹配。對(duì)于匹配到觀測(cè)值 的渦旋跟蹤器,從渦旋觀測(cè)值集合observeList中取出該渦旋,作為跟蹤器跟蹤到的后繼渦 旋,用該渦旋的空間位置更新跟蹤器的〇bs屬性,并用跟蹤器中的Kalman濾波器對(duì)渦旋的位 置進(jìn)行修正,用濾波后的渦旋位置和誤差矩陣更新跟蹤器的Upd和Cov屬性,并以此為準(zhǔn)進(jìn) 行之后的過(guò)程追蹤;
[0033] ?若觀測(cè)值集合中存在未匹配跟蹤器的渦旋,則新建一個(gè)渦旋跟蹤器,添加到渦 旋跟蹤器集合中。
[0034]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本鄰域的技 術(shù)人員來(lái)說(shuō),本發(fā)明可以更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等 同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種基于貝葉斯的渦旋自動(dòng)追蹤方法,其特征在于步驟如下: 步驟1、初始化,建立一個(gè)空的渦旋跟蹤器集合,一個(gè)渦旋觀測(cè)值集合和一個(gè)空的跟蹤 結(jié)果集合;每一個(gè)渦旋跟蹤器將在自動(dòng)追蹤的過(guò)程中記錄一個(gè)渦旋演化過(guò)程的前序后繼關(guān) 系;渦旋觀測(cè)值集合將記錄每個(gè)時(shí)刻觀測(cè)到的渦旋信息,跟蹤結(jié)果集合將存儲(chǔ)記錄生命過(guò) 程追蹤完成的渦旋跟蹤器;對(duì)首個(gè)時(shí)刻觀測(cè)到的每個(gè)渦旋,構(gòu)建渦旋跟蹤器,記錄渦旋的位 置信息,并創(chuàng)建默認(rèn)參數(shù)的Kalman濾波用于跟蹤預(yù)測(cè),然后將跟蹤器添加到渦旋跟蹤器集 合中; 步驟2、啟動(dòng)追蹤,從下一個(gè)時(shí)刻開(kāi)始,按時(shí)間幀進(jìn)行循環(huán),若是循環(huán)至最后一幀,追蹤 停止,跟蹤結(jié)果集合收集的渦旋追蹤器,記錄了追蹤渦旋的生命演化過(guò)程信息;否則,進(jìn)行 自動(dòng)追蹤,執(zhí)行步驟3-4,直至結(jié)束時(shí)間才結(jié)束循環(huán),停止追蹤; 步驟3、獲取當(dāng)前時(shí)間幀的所有渦旋觀測(cè)值,添加到觀測(cè)值集合中; 步驟4、數(shù)據(jù)關(guān)聯(lián),遍歷跟蹤器集合中的每一個(gè)渦旋跟蹤器,先進(jìn)行Kalman濾波的跟蹤 預(yù)測(cè),再將預(yù)測(cè)的渦旋位置及誤差范圍與當(dāng)前時(shí)刻的渦旋觀測(cè)值集合中的所有渦旋,進(jìn)行 關(guān)聯(lián)匹配。2. 根據(jù)權(quán)利要求1所述的基于貝葉斯的渦旋自動(dòng)追蹤方法,其特征在于:所述步驟4中 數(shù)據(jù)關(guān)聯(lián),遍歷跟蹤器集合中的每一個(gè)渦旋跟蹤器,先進(jìn)行Kalman濾波的跟蹤預(yù)測(cè),再將預(yù) 測(cè)的渦旋位置及誤差范圍與當(dāng)前時(shí)刻的渦旋觀測(cè)值集合中的所有渦旋,進(jìn)行關(guān)聯(lián)匹配的過(guò) 程: (41) 若渦旋跟蹤器的預(yù)測(cè)誤差范圍內(nèi)沒(méi)有匹配到觀測(cè)值集合中的渦旋,則將該跟蹤器 從集合中取出,加入到步驟1建立的跟蹤結(jié)果集合中,表明該渦旋的生命演化過(guò)程已經(jīng)追蹤 結(jié)束; (42) 若渦旋跟蹤器的預(yù)測(cè)誤差范圍內(nèi)有且僅有一個(gè)匹配的渦旋觀測(cè)值,則從渦旋觀測(cè) 值集合中取出該渦旋,作為跟蹤器跟蹤到的后繼渦旋,并采用Kalman濾波器對(duì)該渦旋的觀 測(cè)位置進(jìn)行修正,獲得濾波后的渦旋位置及誤差范圍,并以此為準(zhǔn)進(jìn)行之后的過(guò)程追蹤; (43) 若渦旋跟蹤器的預(yù)測(cè)誤差范圍內(nèi)存在多個(gè)匹配的渦旋觀測(cè)值,則首先采用 Hungarian算法對(duì)該跟蹤器與禍旋觀測(cè)值構(gòu)成的二分圖(bipartite graph)進(jìn)行最優(yōu)化匹 配,對(duì)于匹配到觀測(cè)值的渦旋跟蹤器,將該觀測(cè)值從觀測(cè)值集合中取出,作為跟蹤器跟蹤到 的后繼渦旋,并采用Kalman濾波器對(duì)該渦旋的觀測(cè)位置進(jìn)行修正,獲得濾波后的渦旋位置 及誤差范圍,并以此為準(zhǔn)進(jìn)行之后的過(guò)程追蹤; (44) 若觀測(cè)值集合中存在未匹配跟蹤器的渦旋,則新建一個(gè)渦旋跟蹤器,添加到渦旋 跟蹤器集合中。
【文檔編號(hào)】G06T7/20GK105894535SQ201610191428
【公開(kāi)日】2016年8月24日
【申請(qǐng)日】2016年3月30日
【發(fā)明人】易嘉偉, 杜云艷, 周成虎
【申請(qǐng)人】中國(guó)科學(xué)院地理科學(xué)與資源研究所