畢棟 邱子威
(湖北汽車工業(yè)學(xué)院汽車工程師學(xué)院 湖北省十堰市 442002)
車輛多目標(biāo)跟蹤是對傳感器感知的到的信息進(jìn)行計算與分析,通過確定目標(biāo)的位置、加速度、速度、位姿等運(yùn)動參數(shù),并持續(xù)估計車輛所在區(qū)域,最后實(shí)現(xiàn)目標(biāo)軌跡的跟蹤。目前多目標(biāo)跟蹤算法研究框架主要基于檢測跟蹤和基于深度學(xué)習(xí)這兩種框架[1‐2],傳統(tǒng)的數(shù)據(jù)關(guān)聯(lián)算法有最近鄰數(shù)據(jù)關(guān)聯(lián)算法[3]、概率數(shù)據(jù)關(guān)聯(lián)算法[4]、聯(lián)合概率數(shù)據(jù)關(guān)聯(lián)算法[5]等。
最近鄰數(shù)據(jù)關(guān)聯(lián)算法(Nearest Neighbor Data Association,NNDA)最早是由SINGGR 等1971年提出的簡單有效的數(shù)據(jù)關(guān)聯(lián)方法,該方法主要就是要解決關(guān)聯(lián)門的大小和關(guān)聯(lián)門內(nèi)目標(biāo)匹配這兩個問題,關(guān)聯(lián)門就是以上一幀的跟蹤目標(biāo)為中心劃分的空間區(qū)域。NNDA 算法簡單、計算量小并且易于實(shí)現(xiàn),但在目標(biāo)比較密集的情況下,算法容易出現(xiàn)對檢測目標(biāo)誤檢和漏檢的情況。后來很多學(xué)者針對NNDA 算法不足做了一些改進(jìn),胡朋啟[6]基于最近鄰數(shù)據(jù)關(guān)聯(lián)算法提出了一種最近鄰‐點(diǎn)拓?fù)鋱D的目標(biāo)關(guān)聯(lián)算法,該算法有效地克服了最近鄰方法對系統(tǒng)偏差敏感,顯著提高了存在系統(tǒng)誤差條件下的關(guān)聯(lián)成功率。
本次研究建立了基于多傳感器融合的車輛多目標(biāo)跟蹤系統(tǒng),可實(shí)現(xiàn)復(fù)雜場景下的多目標(biāo)跟蹤,有效融合數(shù)據(jù)關(guān)聯(lián)算法快速獲取可靠的軌跡數(shù)據(jù)。實(shí)驗(yàn)結(jié)果分析,本文算法可以有效解決目標(biāo)遮擋、漏檢的問題,并很好地獲取實(shí)時目標(biāo)軌跡,為智能駕駛提供可靠的軌跡數(shù)據(jù)。
在復(fù)雜交通場景下,車與車之間有較高的相似性和交互性,這使得多目標(biāo)跟蹤難度劇增,其主要是在解決檢測目標(biāo)集與已形成軌跡集關(guān)聯(lián)匹配問題的同時,算法也要保證匹配精度和實(shí)時性。
本次研究采用最近鄰關(guān)聯(lián)算法,在檢測目標(biāo)的同時根據(jù)當(dāng)前幀實(shí)時更新狀態(tài)軌跡,大大提高匹配精度和實(shí)時性。利用激光雷達(dá)和攝像頭獲取輸入序列的檢測結(jié)果,從第k 幀的檢測結(jié)果開始,計算目標(biāo)檢測集與前一幀已形成軌跡集之間的關(guān)聯(lián)矩陣,結(jié)合關(guān)聯(lián)判定準(zhǔn)則得到三種關(guān)聯(lián)結(jié)果,最后結(jié)合卡爾曼對目標(biāo)軌跡預(yù)測及更新,實(shí)現(xiàn)目標(biāo)軌跡的持續(xù)跟蹤。
數(shù)據(jù)關(guān)聯(lián)多目標(biāo)跟蹤過程如圖1所示。
圖1:數(shù)據(jù)關(guān)聯(lián)多目標(biāo)跟蹤過程
最近鄰數(shù)據(jù)關(guān)聯(lián)主要分為兩步,第一步是檢測每幀中移動的目標(biāo),第二步是通過計算損失函數(shù)將檢測到的目標(biāo)與之前正在跟蹤的同一目標(biāo)進(jìn)行關(guān)聯(lián)。損失函數(shù)閾值大小直接影響檢測目標(biāo)與已形成軌跡之間的關(guān)聯(lián)概率,因此損失函數(shù)閾值大小既要使真實(shí)檢測目標(biāo)計算的損失函數(shù)小于閾值,又要減少無關(guān)的檢測結(jié)果,損失函數(shù)閾值大小可以根據(jù)跟蹤場景的情況進(jìn)行相應(yīng)調(diào)整。在確定了損失函數(shù)閾值之后,車輛多目標(biāo)跟蹤系統(tǒng)將統(tǒng)計距離最近作為目標(biāo)檢測集與已形成軌跡集之間的判定準(zhǔn)則。
在跟蹤目標(biāo)i 的損失函數(shù)閾值之內(nèi),將檢測結(jié)果j 與目標(biāo)航跡預(yù)測位置i 這兩者之間的矢量差定義為殘差[7],表示為:
設(shè)Sij為殘差信息的協(xié)方差矩陣,于是可以得到統(tǒng)計距離平方值:
該值是判斷“最近鄰”的度量標(biāo)準(zhǔn),利用先驗(yàn)信息的最大似然概率。假設(shè)殘差服從零均值多維正太分布,則殘差的似然函數(shù)為:
近年,學(xué)生素養(yǎng)教育方面的問題成為高校人才培養(yǎng)和思想政治教育工作中存在的一個較為突出的問題,而職業(yè)素養(yǎng),對于學(xué)生求職、就業(yè)都起著至關(guān)重要的作用,也是大學(xué)培養(yǎng)體系不可缺少的部分。目前大學(xué)生大多為95后,獨(dú)生子女,家庭溺愛下成長,自主學(xué)習(xí)能力較差,職業(yè)素養(yǎng)相對欠缺。作為應(yīng)用型院校,培養(yǎng)的畢業(yè)生大多去企業(yè)工作,而企業(yè)對員工的品質(zhì)、綜合能力、職業(yè)素養(yǎng)越加重視,這就要求大學(xué)生不僅要具備較高的理論素養(yǎng),更要具備實(shí)踐能力及職業(yè)素養(yǎng)。
由公式(3)可知,先對其取對數(shù),然后再求導(dǎo),可計算得到最大似然函數(shù)值。于是就能得出殘差似然函數(shù)極大值與殘差極小值具有等效關(guān)系,它們分別使用gij與eij表示。為此在具體場景中,只要選取距離最近的檢測結(jié)果即可。
假設(shè)由檢測器得到的軌跡集合和檢測目標(biāo)集合,p 表示第t 幀中第i 個檢測目標(biāo),q 表示第t 幀中第j 個檢測目標(biāo),將巴氏距離作為相似性度量:
式中,xp和xq分別為p 和q 的橫坐標(biāo);yp和yq分別為p 和q的縱坐標(biāo);wq和hq分別為檢測目標(biāo)的寬和長。
根據(jù)關(guān)聯(lián)判定準(zhǔn)則最終三種關(guān)聯(lián)結(jié)果,其分別為:檢測目標(biāo)與前一幀軌跡匹配成功;前一幀軌跡集中的軌跡未與檢測目標(biāo)集匹配成功,目標(biāo)在當(dāng)前目標(biāo)檢測集中丟失,可能是目標(biāo)漏檢或者目標(biāo)離開當(dāng)前檢測范圍;目標(biāo)檢測集中的檢測目標(biāo)未與前一幀軌跡集匹配成功,這可能是當(dāng)前幀中出現(xiàn)一個新的跟蹤目標(biāo)。針對以上三種關(guān)聯(lián)結(jié)果,檢測目標(biāo)集和前一幀軌跡集的處理分為以下四種方式:
(1)檢測目標(biāo)與前一幀軌跡匹配成功,則將檢測目標(biāo)作為新軌跡進(jìn)行卡爾曼預(yù)測并更新,對目標(biāo)進(jìn)行持續(xù)跟蹤。
(2)設(shè)定跟蹤目標(biāo)連續(xù)不可見幀數(shù)閾值n,如果跟蹤目標(biāo)連續(xù)不可見幀數(shù)小于閾值,則認(rèn)為目標(biāo)檢測算法存在漏檢或者短時遮擋,需要將檢測目標(biāo)重新并入軌跡集中,然后根據(jù)目標(biāo)信息進(jìn)行位置預(yù)測。如果跟蹤目標(biāo)連續(xù)不可見幀數(shù)大于閾值,則認(rèn)為跟蹤目標(biāo)超出目標(biāo)檢測算法檢測范圍,刪除當(dāng)前幀中此軌跡信息,不再對其進(jìn)行預(yù)測和更新。
(4)設(shè)定兩跟蹤目標(biāo)出現(xiàn)遮擋時的距離為l,當(dāng)跟蹤目標(biāo)出現(xiàn)遮擋,持續(xù)對其進(jìn)行位置預(yù)測,當(dāng)目標(biāo)檢測算法再次檢測到跟蹤目標(biāo)時,重新關(guān)聯(lián)匹配并更新到軌跡集中。
在包含各種不確定信息的動態(tài)系統(tǒng)中,如目標(biāo)遮擋,卡爾曼濾波依靠運(yùn)動信息可以很好的對下一幀目標(biāo)所在位置進(jìn)行預(yù)測,即便存在諸多干擾卡爾曼濾波也能得到接近真實(shí)目標(biāo)的預(yù)測位置。在目標(biāo)的狀態(tài)短時間內(nèi)不會發(fā)生劇烈變化的情況下,將目標(biāo)速度、加速度、位置視作目標(biāo)狀態(tài)矢量,借助于動力學(xué)方程來對其狀態(tài)變化進(jìn)行描述,然后通過遞推算式預(yù)估出目標(biāo)狀態(tài)??柭鼮V波可以借助觀測結(jié)果對系統(tǒng)狀態(tài)進(jìn)行最優(yōu)估計,主要通過檢測與校正這兩步來完成目標(biāo)位置的估計,在預(yù)測階段使用上一幀跟蹤目標(biāo)的位置和狀態(tài)做出對當(dāng)前幀目標(biāo)的位置預(yù)測,在校正階段利用當(dāng)前幀的檢測結(jié)果狀態(tài)來修正預(yù)測階段得到預(yù)測位置。
由k‐1 時刻到k 時刻,系統(tǒng)狀態(tài)預(yù)測方程及狀態(tài)觀測方程為:
式中,A 表示狀態(tài)轉(zhuǎn)移矩陣;uk表示系統(tǒng)輸入向量;B 表示輸入增益矩陣;wk表示均值為0,協(xié)方差矩陣為Q,且服從正太分布的過程噪聲;H 表示測量矩陣;vk表示均值為0,協(xié)方差矩陣為R,且服從正太分布的過程噪聲。
通過上一狀態(tài)的最優(yōu)值和將要施加的控制量來預(yù)測當(dāng)前狀態(tài),而高斯噪聲均值為0,可以省略式(5)最后一項(xiàng)得到:
式中,xk為卡爾曼估計值。
卡爾曼濾波本質(zhì)是最小均方差估計,而均方差是Pk的跡,協(xié)方差矩陣求跡并兩邊對卡爾曼增益Kk求導(dǎo),可得卡爾曼增益:
最后更新估計誤差的協(xié)方差矩陣:
以此迭代并更新計算,完成目標(biāo)位置的持續(xù)跟蹤。卡爾曼濾波適用于連續(xù)變化的系統(tǒng)中,由于僅需保存前一幀的軌跡集,所以算法運(yùn)行速度較快,使車輛多目標(biāo)跟蹤系統(tǒng)有較好的實(shí)時性。
本次實(shí)驗(yàn)以MATLAB 為仿真平臺,首先通過代價矩陣計算對關(guān)聯(lián)結(jié)果進(jìn)行判定,然后將匹配成功的軌跡用卡爾曼濾波進(jìn)行更新,未匹配成功檢測軌跡更新成新的跟蹤目標(biāo),設(shè)定不可見幀數(shù)閾值為20,新目標(biāo)連續(xù)出現(xiàn)幀數(shù)閾值為3,兩跟蹤目標(biāo)出現(xiàn)遮擋時的距離為1.5m,最后綜合初步確定跟蹤軌跡。MATLAB 多目標(biāo)跟蹤仿真如圖2所示。
圖2:MATLAB 多目標(biāo)跟蹤仿真
仿真結(jié)果在GUI 顯示界面中顯示,紅色三角表示自身汽車位置,綠色方框及箭頭表示攝像頭跟蹤目標(biāo)位置及行駛方向,黃色方框及箭頭表示激光雷達(dá)跟蹤目標(biāo)位置及行駛方向,紫色方框及箭頭表示數(shù)據(jù)關(guān)聯(lián)后目標(biāo)位置及行駛方向。圖3 為連續(xù)兩幀汽車多目標(biāo)跟蹤仿真。
圖3:MATLAB 多目標(biāo)跟蹤仿真
仿真結(jié)果顯示本次研究的算法能夠?qū)崿F(xiàn)車輛多目標(biāo)的跟蹤,可以實(shí)現(xiàn)連續(xù)多幀良好的跟蹤效果,并且在行駛過程中,2 號目標(biāo)和3 號目標(biāo)短暫遮擋也能通過算法進(jìn)行識別跟蹤。
本次研究利用最近鄰數(shù)據(jù)關(guān)聯(lián)算法來匹配檢測結(jié)果與跟蹤目標(biāo),首先根據(jù)統(tǒng)計距離進(jìn)行關(guān)聯(lián)判定,然后結(jié)合卡爾曼濾波器的目標(biāo)遮擋模型,利用卡爾曼濾波更新快,能快速構(gòu)造預(yù)測位置的特點(diǎn),有效解決短時遮擋問題,多目標(biāo)跟蹤系統(tǒng)的魯棒性得到顯著提高,最后利用多幀信息對跟蹤目標(biāo)持續(xù)跟蹤,使關(guān)聯(lián)算法更穩(wěn)定。多組測試序列檢測結(jié)果表明,本文的跟蹤算法可以滿足實(shí)時性的要求,可應(yīng)用到實(shí)際工程中,下一步工作重點(diǎn)是提高準(zhǔn)確率。