日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

目标跟踪算法

發(fā)布時(shí)間:2023/11/28 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 目标跟踪算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目標(biāo)跟蹤算法

一.互相關(guān)運(yùn)算

給你一張我的正臉照(沒有經(jīng)過美顏處理的),你該如何在人群中找到我呢?一種最直觀的方案就是:“誰長得最像就是誰”。但是對于計(jì)算機(jī)來說,如何衡量“長得像”,并不是個簡單的問題。這就涉及一種基本的運(yùn)算——互相關(guān)(cross-correlation)。互相關(guān)運(yùn)算可以用來度量兩個信號之間的相似性。在離散的圖像空間中,它的數(shù)學(xué)定義是這樣的:

h和 f分別為核和圖像,代表著要搜索的目標(biāo)模版和存在要搜索的目標(biāo)的圖像。如果這個公式對你來說有點(diǎn)難以理解,那你又能否記起離散圖像空間卷積運(yùn)算的定義:

從公式看,它倆不就是把 h水平、垂直分別翻轉(zhuǎn)一下的關(guān)系嘛!實(shí)際上,在很多機(jī)器學(xué)習(xí)庫的實(shí)現(xiàn)中,所謂的“卷積”就是通過互相關(guān)運(yùn)算來實(shí)現(xiàn)的——反正卷積核中的所有參數(shù)都是通過優(yōu)化得到的、物理意義不明的值,它要做的僅僅是“在卷積核合適的位置學(xué)習(xí)合適的值”。嚴(yán)格使用卷積運(yùn)算學(xué)習(xí)得到的核,等價(jià)于使用互相關(guān)運(yùn)算學(xué)習(xí)到的核的180度翻轉(zhuǎn)。

互相關(guān)運(yùn)算讓得以衡量 h與 f的相似度,互相關(guān)得到的響應(yīng)圖中每個像素的響應(yīng)高低代表著每個位置相似度的高低。假設(shè)目標(biāo)存在于新一幀圖像
f中的話,那么在 h和 f對得最齊的地方就應(yīng)該是目標(biāo)中心的位置了!

一些難點(diǎn):目標(biāo)的形狀、大小甚至身處的環(huán)境都是在不斷發(fā)生變化的。在考慮這些變數(shù)的同時(shí),如何學(xué)習(xí)目標(biāo)不變的那些特性,從而準(zhǔn)確地進(jìn)行定位呢?或者說,如何讓核
h能夠通過與 f的互相關(guān)運(yùn)算來最有效地得到響應(yīng)呢?這也就是單目標(biāo)跟蹤主流方法所嘗試的思路。

定義則是響應(yīng)圖的ground truth。因?yàn)樘幚淼氖且粋€連續(xù)的圖像序列,所以還存在下標(biāo)
i通過對上式中的 h對整個圖像序列進(jìn)行優(yōu)化,可以讓目標(biāo)跟蹤算法學(xué)習(xí)一個最優(yōu)的相關(guān)濾波器。為了提升優(yōu)化的速度,還可以把
h和f 投射到傅里葉頻域。空域中的互相關(guān)運(yùn)算在頻域中變成了逐項(xiàng)相乘,優(yōu)化目標(biāo)也就變了。

它等價(jià)于:

那么對于整個序列而言,可以解出最優(yōu)的:

但這并不一定對于每一幀圖像都是最優(yōu)的。為了讓隨著序列的進(jìn)行而適應(yīng)性地進(jìn)行更新,可以遞歸式地定義不斷更新中的:

二.在線跟蹤(Online Tracking)和離線跟蹤(Offline Tracking)

通過調(diào)整更新學(xué)習(xí)率參數(shù)
η,可以讓算法學(xué)得具有高魯棒性并且能夠快速適應(yīng)目標(biāo)外觀變化的。上述的過程就是首次在單目標(biāo)跟蹤問題上使用相關(guān)濾波的工作——MOSSE[1])(Minimum Output Sum of Squared Error, CVPR10, F. Henriques et al.)的基本思路。

多目標(biāo)跟蹤算法又可分為在線跟蹤(Online Tracking)和離線跟蹤(Offline Tracking)。在線跟蹤要求處理每一幀時(shí),決定當(dāng)前幀的跟蹤結(jié)果時(shí)只能利用當(dāng)前幀和之前的幀中的信息,也不能根據(jù)當(dāng)前幀的信息來修改之前幀的跟蹤結(jié)果。離線跟蹤則允許利用之后的幀的信息從而獲得全局最優(yōu)解。離線追蹤的設(shè)定也不太適合實(shí)際應(yīng)用場景,但是以一種“batch”的形式進(jìn)行的離線跟蹤(每次得到若干幀,在這些幀中求全局最優(yōu))也是可行的,只是會導(dǎo)致一點(diǎn)延遲。

按照處理方式分類。上:在線跟蹤;下:離線跟蹤

三.匈牙利與Kalman filter

主流的目標(biāo)跟蹤算法都是基于Tracking-by-Detecton策略,即基于目標(biāo)檢測的結(jié)果來進(jìn)行目標(biāo)跟蹤。DeepSORT運(yùn)用的就是這個策略,DeepSORT對人群進(jìn)行跟蹤,每個bbox左上角的數(shù)字是用來標(biāo)識某個人的唯一ID號。

這里就有個問題,如果視頻中不同時(shí)刻的同一個人,位置發(fā)生了變化,那么是如何關(guān)聯(lián)上的呢?答案就是匈牙利算法和卡爾曼濾波。

· 匈牙利算法可以告訴當(dāng)前幀的某個目標(biāo),是否與前一幀的某個目標(biāo)相同。

· 卡爾曼濾波可以基于目標(biāo)前一時(shí)刻的位置,來預(yù)測當(dāng)前時(shí)刻的位置,并且可以比傳感器(在目標(biāo)跟蹤中即目標(biāo)檢測器,比如Yolo等)更準(zhǔn)確的估計(jì)目標(biāo)的位置。

匈牙利算法(Hungarian Algorithm)

首先,先介紹一下什么是分配問題(Assignment Problem):假設(shè)有N個人和N個任務(wù),每個任務(wù)可以任意分配給不同的人,已知每個人完成每個任務(wù)要花費(fèi)的代價(jià)不盡相同,那么如何分配可以使得總的代價(jià)最小。

舉個例子,假設(shè)現(xiàn)在有3個任務(wù),要分別分配給3個人,每個人完成各個任務(wù)所需代價(jià)矩陣(cost matrix)如下所示(這個代價(jià)可以是金錢、時(shí)間等等):

怎樣才能找到一個最優(yōu)分配,使得完成所有任務(wù)花費(fèi)的代價(jià)最小呢?

匈牙利算法(又叫KM算法)就是用來解決分配問題的一種方法,它基于定理:

如果代價(jià)矩陣的某一行或某一列同時(shí)加上或減去某個數(shù),則這個新的代價(jià)矩陣的最優(yōu)分配仍然是原代價(jià)矩陣的最優(yōu)分配。

算法步驟(假設(shè)矩陣為NxN方陣):

  1. 對于矩陣的每一行,減去其中最小的元素

  2. 對于矩陣的每一列,減去其中最小的元素

  3. 用最少的水平線或垂直線覆蓋矩陣中所有的0

  4. 如果線的數(shù)量等于N,則找到了最優(yōu)分配,算法結(jié)束,否則進(jìn)入步驟5

  5. 找到?jīng)]有被任何線覆蓋的最小元素,每個沒被線覆蓋的行減去這個元素,每個被線覆蓋的列加上這個元素,返回步驟3

卡爾曼濾波(Kalman Filter)

卡爾曼濾波被廣泛應(yīng)用于無人機(jī)、自動駕駛、衛(wèi)星導(dǎo)航等領(lǐng)域,簡單來說,其作用就是基于傳感器的測量值來更新預(yù)測值,以達(dá)到更精確的估計(jì)。

假設(shè)要跟蹤小車的位置變化,如下圖所示,藍(lán)色的分布是卡爾曼濾波預(yù)測值,棕色的分布是傳感器的測量值,灰色的分布就是預(yù)測值基于測量值更新后的最優(yōu)估計(jì)。


在這里插入圖片描述

協(xié)方差(Covariance ):表示目標(biāo)位置信息的不確定性,由8x8的對角矩陣表示,矩陣中數(shù)字越大則表明不確定性越大,可以以任意值初始化。

·
卡爾曼濾波分為兩個階段:(1) 預(yù)測track在下一時(shí)刻的位置,(2) 基于detection來更新預(yù)測的位置。

下面將介紹這兩個階段用到的計(jì)算公式。(這里不涉及公式的原理推導(dǎo),因?yàn)槲乙膊磺宄??_?) ,只是說明一下各個公式的作用)

總結(jié)

以上是生活随笔為你收集整理的目标跟踪算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。