跟蹤演算法指數
A. 視覺追蹤的典型演算法
(1)基於區域的跟蹤演算法
基於區域的跟蹤演算法基本思想是:將目標初始所在區域的圖像塊作為目標模板,將目標模板與候選圖像中所有可能的位置進行相關匹配,匹配度最高的地方即為目標所在的位置。最常用的相關匹配准則是差的平方和准則,(Sum of Square Difference,SSD)。
起初,基於區域的跟蹤演算法中所用到的目標模板是固定的,如 Lucas 等人提出 Lucas-Kanade 方法,該方法利用灰度圖像的空間梯度信息尋找最佳匹配區域,確定目標位置。之後,更多的學者針對基於區域方法的缺點進行了不同的改進,如:Jepson 等人提出的基於紋理特徵的自適應目標外觀模型[18],該模型可以較好的解決目標遮擋的問題,且在跟蹤的過程中採用在線 EM 演算法對目標模型進行更新;Comaniciu 等人[19]提出了基於核函數的概率密度估計的視頻目標跟蹤演算法,該方法採用核直方圖表示目標,通過 Bhattacharya 系數計算目標模板與候選區域的相似度,通過均值漂移(MeanShift)演算法快速定位目標位置。
基於區域的目標跟蹤演算法採用了目標的全局信息,比如灰度信息、紋理特徵等,因此具有較高的可信度,即使目標發生較小的形變也不影響跟蹤效果,但是當目標發生較嚴重的遮擋時,很容易造成跟蹤失敗。
(2)基於特徵的跟蹤方法
基於特徵的目標跟蹤演算法通常是利用目標的一些顯著特徵表示目標,並通過特徵匹配在圖像序列中跟蹤目標。該類演算法不考慮目標的整體特徵,因此當目標被部分遮擋時,仍然可以利用另一部分可見特徵完成跟蹤任務,但是該演算法不能有效處理全遮擋、重疊等問題。
基於特徵的跟蹤方法一般包括特徵提取和特徵匹配兩個過程:
a) 特徵提取
所謂特徵提取是指從目標所在圖像區域中提取合適的描繪性特徵。這些特徵不僅應該較好地區分目標和背景,而且應對目標尺度伸縮、目標形狀變化、目標遮擋等情況具有魯棒性。常用的目標特徵包括顏色特徵、灰度特徵、紋理特徵、輪廓、光流特徵、角點特徵等。D.G. Lowe 提出 SIFT(Scale Invariant Feature Transform)演算法[20]是圖像特徵中效果較好的一種方法,該特徵對旋轉、尺度縮放、亮度變化具有不變性,對視角變化、仿射變換、雜訊也具有一定的穩定性。
b) 特徵匹配
特徵匹配就是採用一定的方式計算衡量候選區域與目標區域的相似性,並根據相似性確定目標位置、實現目標跟蹤。在計算機視覺領域中,常用的相似性度量准則包括加權距離、Bhattacharyya 系數、歐式距離、Hausdorff 距離等。其中,Bhattacharyya 系數和歐式距離最為常用。
Tissainayagam 等人提出了一種基於點特徵的目標跟蹤演算法[21]。該演算法首先在多個尺度空間中尋找局部曲率最大的角點作為關鍵點,然後利用提出的MHT-IMM 演算法跟蹤這些關鍵點。這種跟蹤演算法適用於具有簡單幾何形狀的目標,對於難以提取穩定角點的復雜目標,則跟蹤效果較差。
Zhu 等人提出的基於邊緣特徵的目標跟蹤演算法[22],首先將參考圖像劃分為多個子區域,並將每個子區域的邊緣點均值作為目標的特徵點,然後利用類似光流的方法進行特徵點匹配,從而實現目標跟蹤。
(3)基於輪廓的跟蹤方法
基於輪廓的目標跟蹤方法需要在視頻第一幀中指定目標輪廓的位置,之後由微分方程遞歸求解,直到輪廓收斂到能量函數的局部極小值,其中,能量函數通常與圖像特徵和輪廓光滑度有關。與基於區域的跟蹤方法相比,基於輪廓的跟蹤方法的計算復雜度小,對目標的部分遮擋魯棒。但這種方法在跟蹤開始時需要初始化目標輪廓,因此對初始位置比較敏感,跟蹤精度也被限制在輪廓級。
Kass 等人[23]於 1987 年提出的活動輪廓模型(Active Contour Models,Snake),通過包括圖像力、內部力和外部約束力在內的三種力的共同作用控制輪廓的運動。內部力主要對輪廓進行局部的光滑性約束,圖像力則將曲線推向圖像的邊緣,而外部力可以由用戶指定,主要使輪廓向期望的局部極小值運動,。
Paragios 等人[24]提出了一種用水平集方法表示目標輪廓的目標檢測與跟蹤演算法,該方法首先通過幀差法得到目標邊緣,然後通過概率邊緣檢測運算元得到目標的運動邊緣,通過將目標輪廓向目標運動邊緣演化實現目標跟蹤。
(4)基於模型的跟蹤方法[25]
在實際應用中,我們需要跟蹤的往往是一些特定的我們事先具有認識的目標,因此,基於模型的跟蹤方法首先根據自己的先驗知識離線的建立該目標的 3D 或2D 幾何模型,然後,通過匹配待選區域模型與目標模型實現目標跟蹤,進而在跟蹤過程中,根據場景中圖像的特徵,確定運動目標的各個尺寸參數、姿態參數以及運動參數。
Shu Wang 等人提出一種基於超像素的跟蹤方法[26],該方法在超像素基礎上建立目標的外觀模板,之後通過計算目標和背景的置信圖確定目標的位置,在這個過程中,該方法不斷通過分割和顏色聚類防止目標的模板漂移。
(5)基於檢測的跟蹤演算法
基於檢測的跟蹤演算法越來越流行。一般情況下,基於檢測的跟蹤演算法都採用一點學習方式產生特定目標的檢測器,即只用第一幀中人工標記的樣本信息訓練檢測器。這類演算法將跟蹤問題簡化為簡單的將背景和目標分離的分類問題,因此這類演算法的速度快且效果理想。這類演算法為了適應目標外表的變化,一般都會採用在線學習方式進行自更新,即根據自身的跟蹤結果對檢測器進行更新。
B. 多假設追蹤方法mht是什麼演算法
多假設跟蹤演算法是一種數據關聯類型的多目標跟蹤演算法,實現方式分為面向假設的MHT和面向航跡的MHT兩種。
MHT演算法的實現流程包括航跡關聯和航跡維護兩個步驟。
MHT演算法計算量龐大,隨著量測數和目標數呈指數級增長,但對於雜波密集環境下的多目標跟蹤具有很高的准確率。
C. 如何看指數基金跟蹤的是哪一個指數
一個最簡單的辦法,就是在天天基金網上搜索該基金的代碼,然後,在「跟蹤標的」就可以看到該指數基金跟蹤的指數。
股市指數可以說是,就是由證券交易所或金融服務機構編制的、表明股票行市變動的一種供參考的數字。
通過查看指數,對於當前各個股票市場的漲跌情況我們將瞭然於胸。
股票指數的編排原理是比較復雜的,這里就不展開講了,點擊下方鏈接,教你快速看懂指數:新手小白必備的股市基礎知識大全
一、國內常見的指數有哪些?
由股票指數的編制方法和性質來分類,股票指數有這五種形式的分類:規模指數、行業指數、主題指數、風格指數和策略指數。
這五個里,規模指數是大家最常見到的,比如我們熟知的「滬深300」指數,它反映的整個滬深市場中代表性好、流動性好、交易活躍的300家大型企業股票的整體狀況。
再次,「上證50 」指數也是常見的規模指數,也就是說其意味著上海證券市場代表性好、規模大、流動性好的50隻股票的整體情況。
行業指數代表就是它某個行業的一個整體狀況。舉個例子,「滬深300醫葯」就是典型的行業指數,代表滬深300指數樣本股中的17個醫葯衛生行業股票整體狀況,同時也是在反映了這個行業公司股票的整體表現。
主題指數,則代表某一主題(如人工智慧、新能源汽車等)的整體情況,那麼還有一些相關指數「科技龍頭」、「新能源車」等。
想了解更多的指數分類,可以通過下載下方的幾個炒股神器來獲取詳細的分析:炒股的九大神器免費領取(附分享碼)
二、股票指數有什麼用?
根據上述的文章內容可以知道,指數所選的一些股票都具有代表意義,所以,指數能夠將市場整體漲跌的情況快速的反應給我們,這也是對市場的熱度做一個簡單的了解,甚至還能對未來的走勢進行預測。具體則可以點擊下面的鏈接,獲取專業報告,學習分析的思路:最新行業研報免費分享
應答時間:2021-09-06,最新業務變化以文中鏈接內展示的數據為准,請點擊查看
D. 目標跟蹤檢測演算法(一)——傳統方法
姓名:劉帆;學號:20021210609;學院:電子工程學院
https://blog.csdn.net/qq_34919792/article/details/89893214
【嵌牛導讀】目標跟蹤演算法研究難點與挑戰在於實際復雜的應用環境 、背景相似干擾、光照條件的變化、遮擋等外界因素以及目標姿態變化,外觀變形,尺度變化、平面外旋轉、平面內旋轉、出視野、快速運動和運動模糊等。而且當目標跟蹤演算法投入實際應用時,不可避免的一個問題——實時性問題也是非常的重要。正是有了這些問題,才使得演算法研究充滿著難點和挑戰。
【嵌牛鼻子】目標跟蹤演算法,傳統演算法
【嵌牛提問】利用目標跟蹤檢測演算法要達到何目的?第一階段的單目標追蹤演算法包括什麼?具體步驟有哪些?它們有何特點?
【嵌牛正文】
第一階段
目標跟蹤分為兩個部分,一個是對指定目標尋找可以跟蹤的特徵,常用的有顏色,輪廓,特徵點,軌跡等,另一個是對目標特徵進行跟蹤。
1、靜態背景
1)背景差: 對背景的光照變化、雜訊干擾以及周期性運動等進行建模。通過當前幀減去背景圖來捕獲運動物體的過程。
2)幀差: 由於場景中的目標在運動,目標的影像在不同圖像幀中的位置不同。該類演算法對時間上連續的兩幀或三幀圖像進行差分運算,不同幀對應的像素點相減,判斷灰度差的絕對值,當絕對值超過一定閾值時,即可判斷為運動目標,從而實現目標的檢測功能。
與二幀差分法不同的是,三幀差分法(交並運算)去除了重影現象,可以檢測出較為完整的物體。幀間差分法的原理簡單,計算量小,能夠快速檢測出場景中的運動目標。但幀間差分法檢測的目標不完整,內部含有「空洞」,這是因為運動目標在相鄰幀之間的位置變化緩慢,目標內部在不同幀圖像中相重疊的部分很難檢測出來。幀間差分法通常不單獨用在目標檢測中,往往與其它的檢測演算法結合使用。
3)Codebook
演算法為圖像中每一個像素點建立一個碼本,每個碼本可以包括多個碼元(對應閾值范圍),在學習階段,對當前像素點進行匹配,如果該像素值在某個碼元的學習閾值內,也就是說與之前出現過的某種歷史情況偏離不大,則認為該像素點符合背景特徵,需要更新對應點的學習閾值和檢測閾值。
如果新來的像素值與每個碼元都不匹配,則可能是由於動態背景導致,這種情況下,我們需要為其建立一個新的碼元。每個像素點通過對應多個碼元,來適應復雜的動態背景。
在應用時,每隔一段時間選擇K幀通過更新演算法建立CodeBook背景模型,並且刪除超過一段時間未使用的碼元。
4)GMM
混合高斯模型(Gaussian of Micture Models,GMM)是較常用的背景去除方法之一(其他的還有均值法、中值法、滑動平均濾波等)。
首先我們需要了解單核高斯濾波的演算法步驟:
混合高斯建模GMM(Gaussian Mixture Model)作為單核高斯背景建模的擴展,是目前使用最廣泛的一種方法,GMM將背景模型描述為多個分布,每個像素的R、G、B三個通道像素值的變化分別由一個混合高斯模型分布來刻畫,符合其中一個分布模型的像素即為背景像素。作為最常用的一種背景建模方法,GMM有很多改進版本,比如利用紋理復雜度來更新差分閾值,通過像素變化的劇烈程度來動態調整學習率等。
5)ViBe(2011)
ViBe演算法主要特點是隨機背景更新策略,這和GMM有很大不同。其步驟和GMM類似。具體的思想就是為每個像素點存儲了一個樣本集,樣本集中采樣值就是該像素點過去的像素值和其鄰居點的像素值,然後將每一個新的像素值和樣本集進行比較來判斷是否屬於背景點。
其中pt(x)為新幀的像素值,R為設定值,p1、p2、p3….為樣本集中的像素值,以pt(x)為圓心R為半徑的圓被認為成一個集,當樣本集與此集的交集大於設定的閾值#min時,可認為此為背景像素點(交集越大,表示新像素點與樣本集越相關)。我們可以通過改變#min的值與R的值來改變模型的靈敏度。
Step1:初始化單幀圖像中每個像素點的背景模型。假設每一個像素和其鄰域像素的像素值在空域上有相似的分布。基於這種假設,每一個像素模型都可以用其鄰域中的像素來表示。為了保證背景模型符合統計學規律,鄰域的范圍要足夠大。當輸入第一幀圖像時,即t=0時,像素的背景模型。其中,NG(x,y)表示空域上相鄰的像素值,f(xi,yi)表示當前點的像素值。在N次的初始化的過程中,NG(x,y)中的像素點(xi,yi)被選中的可能次數為L=1,2,3,…,N。
Step2:對後續的圖像序列進行前景目標分割操作。當t=k時,像素點(x,y)的背景模型為BKm(x,y),像素值為fk(x,y)。按照下面判斷該像素值是否為前景。這里上標r是隨機選的;T是預先設置好的閾值。當fk(x,y)滿足符合背景#N次時,我們認為像素點fk(x,y)為背景,否則為前景。
Step3:ViBe演算法的更新在時間和空間上都具有隨機性。每一個背景點有1/ φ的概率去更新自己的模型樣本值,同時也有1/ φ的概率去更新它的鄰居點的模型樣本值。更新鄰居的樣本值利用了像素值的空間傳播特性,背景模型逐漸向外擴散,這也有利於Ghost區域的更快的識別。同時當前景點計數達到臨界值時將其變為背景,並有1/ φ的概率去更新自己的模型樣本值(為了減少緩慢移動物體的影響和攝像機的抖動)。
可以有如下總結,ViBe中的每一個像素點在更新的時候都有一個時間和空間上隨機影響的范圍,這個范圍很小,大概3x3的樣子,這個是考慮到攝像頭抖動時會有坐標的輕微來回變化,這樣雖然由於ViBe的判別方式仍認為是背景點,但是也會對後面的判別產生影響,為了保證空間的連續性,隨機更新減少了這個影響。而在樣本值保留在樣本集中的概率隨著時間的增大而變小,這就保證了像素模型在時間上面的延續特性。
6)光流
光流是由物體或相機的運動引起的圖像對象在兩個連續幀之間的視在運動模式。它是2D矢量場,其中每個矢量是一個位移矢量,顯示點從第一幀到第二幀的移動。
光流實際上是一種特徵點跟蹤方法,其計算的為向量,基於三點假設:
1、場景中目標的像素在幀間運動時亮度(像素值或其衍生值)不發生變化;2、幀間位移不能太大;3、同一表面上的鄰近點都在做相同的運動;
光流跟蹤過程:1)對一個連續視頻幀序列進行處理;2)對每一幀進行前景目標檢測;3)對某一幀出現的前景目標,找出具有代表性的特徵點(Harris角點);4)對於前後幀做像素值比較,尋找上一幀在當前幀中的最佳位置,從而得到前景目標在當前幀中的位置信息;5)重復上述步驟,即可實現目標跟蹤
2、運動場(分為相機固定,但是視角變化和相機是運動的)
1)運動建模(如視覺里程計運動模型、速度運動模型等)
運動學是對進行剛性位移的相機進行構型,一般通過6個變數來描述,3個直角坐標,3個歐拉角(橫滾、俯仰、偏航)。
Ⅰ、對相機的運動建模
由於這個不是我們本次所要討論的重點,但是在《概率機器人》一書中提出了很多很好的方法,相機的運動需要對圖像內的像素做位移矩陣和旋轉矩陣的坐標換算。除了對相機建立傳統的速度運動模型外,也可以用視覺里程計等通關過置信度的更新來得到概率最大位置。
Ⅱ、對於跟蹤目標的運動建模
該方法需要提前通過先驗知識知道所跟蹤的目標對象是什麼,比如車輛、行人、人臉等。通過對要跟蹤的目標進行建模,然後再利用該模型來進行實際的跟蹤。該方法必須提前知道要跟蹤的目標對象是什麼,然後再去跟蹤指定的目標,這是它的局限性,因而其推廣性相對比較差。(比如已知跟蹤的物體是羽毛球,那很容易通過前幾幀的取點,來建立整個羽毛球運動的拋物線模型)
2)核心搜索演算法(常見的預測演算法有Kalman(卡爾曼)濾波、擴展卡爾曼濾波、粒子濾波)
Ⅰ、Kalman 濾波
Kalman濾波器是通過前一狀態預測當前狀態,並使用當前觀測狀態進行校正,從而保證輸出狀態平穩變化,可有效抵抗觀測誤差。因此在運動目標跟蹤中也被廣泛使用。
在視頻處理的運動目標跟蹤里,每個目標的狀態可表示為(x,y,w,h),x和y表示目標位置,w和h表示目標寬高。一般地認為目標的寬高是不變的,而其運動速度是勻速,那麼目標的狀態向量就應該擴展為(x,y,w,h,dx,dy),其中dx和dy是目標當前時刻的速度。通過kalman濾波器來估計每個時刻目標狀態的大致過程為:
對視頻進行運動目標檢測,通過簡單匹配方法來給出目標的第一個和第二個狀態,從第三個狀態開始,就先使用kalman濾波器預測出當前狀態,再用當前幀圖像的檢測結果作為觀測值輸入給kalman濾波器,得到的校正結果就被認為是目標在當前幀的真實狀態。(其中,Zt為測量值,為預測值,ut為控制量,Kt為增益。)
Ⅱ、擴展卡爾曼濾波(EKF)和無跡卡爾曼濾波(UKF)
由於卡爾曼濾波的假設為線性問題,無法直接用在非線性問題上,EKF和UKF解決了這個問題(這個線性問題體現在用測量量來計算預測量的過程中)。EKF是通過構建線性函數g(x),與非線性函數相切,並對每一時刻所求得的g(x)做KF,如下圖所示。
UKF與EKF去求解雅可比矩陣擬合線性方程的方法不同,通過對那個先驗分布中的採集點,來線性化隨機變數的非線性函數。與EKF所用的方法不同,UKF產生的高斯分布和實際高斯分布更加接近,其引起的近似誤差也更小。
Ⅲ、粒子濾波
1、初始狀態:基於粒子濾波的目標追蹤方法是一種生成式跟蹤方法,所以要有一個初始化的階段。對於第一幀圖像,人工標定出待檢測的目標,對該目標區域提出特徵;
2、搜索階段:現在已經知道了目標的特徵,然後就在目標的周圍撒點(particle), 如:a)均勻的撒點;b)按高斯分布撒點,就是近的地方撒得多,遠的地方撒的少。論文里使用的是後一種方法。每一個粒子都計算所在區域內的顏色直方圖,如初始化提取特徵一樣,然後對所有的相似度進行歸一化。文中相似性使用的是巴氏距離;
3、重采樣:根據粒子權重對粒子進行篩選,篩選過程中,既要大量保留權重大的粒子,又要有一小部分權重小的粒子;
4、狀態轉移:將重采樣後的粒子帶入狀態轉移方程得到新的預測粒子;
5、測量及更新:對目標點特徵化,並計算各個粒子和目標間的巴氏距離,更新粒子的權重;
6、決策階段:每個粒子都獲得一個和目標的相似度,相似度越高,目標在該范圍出現的可能性越高,將保留的所有粒子通過相似度加權後的結果作為目標可能的位置。
3)Meanshift演算法
MeanShift演算法屬於核密度估計法,它不需要任何先驗知識而完全依靠特徵空間中樣本點的計算其密度函數值。對於一組采樣數據,直方圖法通常把數據的值域分成若干相等的區間,數據按區間分成若干組,每組數據的個數與總參數個數的比率就是每個單元的概率值;核密度估計法的原理相似於直方圖法,只是多了一個用於平滑數據的核函數。採用核函數估計法,在采樣充分的情況下,能夠漸進地收斂於任意的密度函數,即可以對服從任何分布的數據進行密度估計。
Meanshift演算法步驟
1、通過對初始點(或者上一幀的目標點)為圓心,繪制一個半徑為R的圓心,尋找特徵和該點相似的點所構成的向量;
2、所有向量相加,可以獲得一個向量疊加,這個向量指向特徵點多的方向;
3、取步驟二的向量終點為初始點重復步驟一、二,直到得到的向量小於一定的閾值,也就是說明當前位置是特徵點密度最密集的地方,停止迭代,認為該點為當前幀的目標點;
4)Camshift演算法
Camshift演算法是MeanShift演算法的改進,稱為連續自適應的MeanShift演算法。Camshift 是由Meanshift 推導而來 Meanshift主要是用在單張影像上,但是獨立一張影像分析對追蹤而言並無意義,Camshift 就是利用MeanShift的方法,對影像串列進行分析。
1、首先在影像串列中選擇目標區域。
2、計算此區域的顏色直方圖(特徵提取)。
3、用MeanShift演演算法來收斂欲追蹤的區域。
4、通過目標點的位置和向量信息計算新的窗口大小,並標示之。
5、以此為參數重復步驟三、四。
Camshift 關鍵就在於當目標的大小發生改變的時候,此演算法可以自適應調整目標區域繼續跟蹤。
3、小結
第一階段的單目標追蹤演算法基本上都是傳統方法,計算量小,在嵌入式等設備中落地較多,opencv中也預留了大量的介面。通過上面的兩節的介紹,我們不難發現,目標檢測演算法的步驟分為兩部分,一部分是對指定目標尋找可以跟蹤的特徵,常用的有顏色,輪廓,特徵點,軌跡等,另一部分是對目標特徵進行跟蹤,如上文所提及的方法。所以目標檢測方法的發展,也可總結為兩個方面,一個是如何去獲得更加具有區分性的可跟蹤的穩定特徵,另一個是如何建立幀與幀之間的數據關聯,保證跟蹤目標是正確的。
隨著以概率為基礎的卡爾曼濾波、粒子濾波或是以Meanshift為代表向量疊加方法在目標檢測的運用,使得目標檢測不再需要假設自身的一個狀態為靜止的,而是可以是運動的,更加符合復雜場景中的目標跟蹤。
E. 控制演算法系列 純跟蹤控制
純跟蹤演算法(Pure Pursuit)是一種傳統且經典的車輛橫向運動控制演算法,其基本思想是在每個控制周期,通過前方目標軌跡上的一個點態則,指導當前方向盤的動作,使車輛車產生向目標點的運動。
純跟蹤演算法重要的參數在於前視距離系數,一般而言,其前視距離與速度正相關。
以下圖為例,跟蹤目標為藍色軌跡,車輛初始位置為綠色圓點。恆定跟蹤速度2m/s。
由以上示例可以看出,純跟蹤演算法收到前視距離的影響很大。
在實際應用過程中,除了跟蹤數據調整預瞄系數,其還和軌跡類型強相關。
總結一下純跟蹤的一些特點:
(1)要求軌跡多幀連續性好,因預瞄的笑敬特性無法對變化軌跡(尤其是預瞄距碰閉慎離內)進行響應;
(2)要求軌跡性能穩定,因為標定系數是按照軌跡性能進行標定的,如果軌跡性能變化,可能導致車輛轉彎內切等現象;