1. 程式人生 > >影象跟蹤與識別-TLD學習筆記,TLD跟蹤演算法詳解

影象跟蹤與識別-TLD學習筆記,TLD跟蹤演算法詳解



半自主單目標跟蹤 人工跟蹤:每一幀都需要人互動輸入 主動跟蹤:需要目標的先驗資訊初始化 半主動跟蹤:第一幀需要人互動輸入去初始化跟蹤程式

1 Tracking: 在這個方法中,沒有目標的先驗資訊,需要外部的初始化。在本文的方法中,初始化是通過在第一幀進行人為的干預。 首先,在第t幀的邊界框中構造一個等距的點集,在左邊的影象中顯示。接下來,使用Lucas和Kanade的方法對每一個點的光流進行估計。這個方法,對於位於拐角的點並且同一區域沒有跟蹤點是最合適的。 通過使用Lucas-Kanade方法的資訊之外,還引用了兩個不同的誤差指標,正則化交叉相關,和前向後向誤差,去過濾掉錯誤的跟蹤點。 如果所有的點的FBerror的均值如果大於閾值,就會認為跟蹤產生了漂移整個遞迴的跟蹤會被全部停止。 最後,剔除掉錯誤的跟蹤點和不好的點,剩下的點被用於估計下一陣目標框的位置,通過使用一個位移和尺度的模型。 1.1 光流法的估計:
Lucas and Kanade 提出光流法, 基於以下 三個假設1,光照不變(亮度)
d是位移向量 2,小動作幅度(temporal persistence)於是有以下近似公式: 所以位移向量能這樣近似估計: 3.空間協同性,在一個畫素的附近小視窗內,所有畫素協同運動,通過這個假設,d可以通過最小化(2.4): 2.4閉式解:
1.2 誤差測量: 三個指標 1。G矩陣的兩個的特徵值:在兩個方向上都有梯度時,只有當這兩個特徵值足夠大時這個G矩陣才是確實可靠地可逆的。 2。前向後向誤差, p是原圖的點, LK(p)是進行一次光流計算,p兩飄是點經過前向和後向的光流傳導後的點, 如果向前向後之後這個點的距離與原點差距很小(歐式距離)那麼認為這個點適合作為光流法進行計算位移向量計算。 3。空間協同性: 第三個誤差基於圖塊附近(P)以及跟蹤結果的附近(P一飄)的相似程度。 另外,兩個圖塊p1和p2的相似程度是用正則化交叉相關(NCC)來衡量的:
u1,u2,theta1,theta2是均值和標準差。ncc越大越相似。 1.3 平移模型: medFB:所有前後向誤差的均值, medNCC:所有近似性(NCC)的平均值。 幾個規則: 只使用小於medFB並且大於medNCC的點去進行FB計算。 如果medFB大於thetaFB閾值,那麼終止跟蹤,認為跟蹤失敗。 演算法流程 2 Detection: 當遞迴跟蹤器自身無法維持目標模型進而無法從失敗中恢復,目標檢測就會讓我們能夠重新初始化。 使用滑窗的方法進行全域性搜尋。 一個解析度640x480的圖片,可以生成50000到200000個視窗,每個寬口都會單獨進行目標檢測。每一個次級視窗都會進行串聯式的四個階段的篩選,串聯機制就是為了剔除掉不相關的次級視窗。 第一階段: 背景差分,剔除掉屬於背景的次級寬口,把搜尋區域限制在前景範圍(需要一個背景的模型,如果沒有這步會跳過)。 第二階段:方差抑制,剔除掉方差小於閾值的視窗。 第三階段:隨機撅,一個整合分類器 第四階段:相似性檢測模板匹配,基於正則化相關係數。 2.1 滑窗方法: 首先呢,一個輸入影象的次級視窗有很多個,量級巨大,並且其數量級的增長呈n的4次方增長(nxn尺寸)。 為了限制次級視窗的數量,建立這樣一個亞空間:R 兩個相鄰的次級視窗在邊長上的增量dx and dy,=1/10初始視窗邊長。 然後尺度因子:s = 1.2a,a ∈ {−10. . .10} w,h是初始框的邊長,n,m是影象的寬高 例如:對於w=80,h=60,一個VGA影象中的次級視窗的數量是:146190個。 每個亞視窗獨立測試(多執行緒)。 2.2 前景檢測: 背景去除可以加速程式,分為4步: 1。Ibg and I的絕對距離,Ibg是背景圖。 2。Ibinary:閾值設定為16,大於100是前景置1,小於16是背景置0,生成一個二進位制影象Ibinary。 3,標籤演算法:在二進位制影象中,為1的稱為白畫素,要把白畫素連線成為元件,進而找到前景所在的元件,然後用一個最小的框把前景元件框起來。連線白畫素點為元件的過程使用了標籤演算法。 4。最小前景邊框:在找到所有可能是前景的元件之後,還需要剔除掉比較小的元件,找到最主要的元件,然後用一個最小的框把前景元件框起來。 2.3 方差濾波器: 在這個部分,我們提出了一個機制: 使用積分圖去計算一個亞視窗的方差,如果一個圖塊的方差低於閾值theta2min,這個圖塊就會被去除。 這個機制能快速地去除背景元素。但是不能區分不同的目標。 計算反差步驟: 一個影象塊B被看成一個一維的向量。並且,第i個畫素用xi符號去表示。對於影象來說,方差的公式是: n是圖塊畫素總數,u是: 3.4式子的一個替代公式是: 如果直接使用3.6式子進行方差計算,對於n個畫素的圖塊,需要進行n次記憶查詢,並且對於有重合的兩個圖塊來說,計算還會重複。所以提出一個新方法,把原圖I轉換成積分圖I'。這樣只需要進行8次記憶查詢。 積分圖I': 積分圖的性質:可以被分解為四部分:
那麼對於某個圖塊(ABCD)中畫素的總和,它可以使用積分圖來計算: 式子中的B是圖塊框B.(x y w h) 用一維積分圖的方法3.9(3.10)可以用來計算3.6式子中的u=I'(B)/n. 然後3.6中還有一部分∑xi²同樣也可以使用類似的方法,二維積分圖。 最終可以使用3.13式子,利用一維和二維積分圖快速計算圖塊B方差。 ABCD內畫素的總和的計算步驟:從左上原點加到D,減去原點到B減去原點到C,加上原點到A. 通過積分圖進行四次查詢就可以完成計算。 2.4 整合分類器: 隨機厥: 單個撅的步驟: 隨機撅步驟舉例,在演算法跟蹤初始化的時候,在隨機生成S個( 使用特徵的個數)畫素對位置(di,1 and di,2),初始化之後這些畫素對位置就不再變化了(相當於一個隨機生成的二進位制特徵提取)人,如上面例子所示: 對於 單個撅來說: 1。初始化,隨機選定4個( S=4,使用特徵的個數)畫素對位置,(di,1 and di,2). 2。亮度對比,對比每個畫素對位置對應的畫素的亮度.如果I(di,1)大於I(di,2),者置1,否則置0 3。例子中是1101,翻譯為十進位制為F=13(特徵值),S是特徵的個數( S=4),這會決定特徵值F的最大值 2S −1.。 4。檢索概率,特徵值F是用來檢索概率 P(y = 1 | F) ,y=1表示事件:當前亞視窗中含有正樣本。具體的概率計算方法會在第4部分講解。 5。隨機撅正樣本概率分數: PFk是P-約束在當前特徵提取中應用的次數,NFk是N-約束應用的次數。 概率分數具體的計算將在Learning中詳細講解。 單個撅的演算法流程:
維數災難: 如果只使用單個撅,不得不使用大量的特徵(大的S),但是與此同時訓練樣本的需求量同時也會增加,這個問題叫做維數災難,具體解決方法被Amit and Geman 發現了,通過使用多個撅,最後把結果進行平均,這樣就同樣能獲得滿意的結果。 對於TLD來說,使用了 3個撅 ,最後平均值(Ppos置信值)的計算公式: 流程示例: 2.5 模板匹配: 這一部分的模板匹配更加嚴格,是畫素級別的,把輸入亞視窗影象resize到15X15,然後對比兩個影象塊 P1 and P2, 使用NCC(正則化相關係數): μ1,μ2,s1 and s2 是P1 and P2.的平均值和標準差 ,這個距離測量也叫做Pearson相關係數。 從幾何角度來翻譯,這個係數代表了兩個正則化向量的夾角餘弦。NCC會生成-1到1的值,越接近1這兩個影象塊就越相似。 對於ncc值處於0-1之間的值,我們定義了一個距離公式: 正樣本模板P+ 和負樣本模板 P−都會儲存。模板線上學習。 對於未知標籤的輸入圖塊P: 與正樣本的距離: 與負樣本的距離: 置信度P+: 知道輸入樣本點距離正樣本的距離 d+以及與負樣本的距離d-之後,引入一個 置信分數p+(代表是正樣本的概率大小,越大越可能是正樣本):

正樣本負樣本例子 置信分數P+與d+和d-的關係。 2.6 非最大值抑制 : 問題提出 : 綠框是目標的檢測,還款阿甘是其他同樣擁有高置信度的重疊的亞視窗。 Blaschk指出,只考慮產生最大置信度分數的那個亞視窗是有問題的,因為其可能不是最佳結果,其會導致其他區域性最大值結果被忽視掉。所有引入非最大值抑制策略就很合適,可以用來識別有關的區域性最大值。 重疊度計算:
演算法策略: 使用階層式分群演演算法( hierarchical clustering algorithm ):

相關推薦

影象跟蹤識別-TLD學習筆記TLD跟蹤演算法

半自主單目標跟蹤 人工跟蹤:每一幀都需要人互動輸入 主動跟蹤:需要目標的先驗資訊初始化 半主動跟蹤:第一幀需要人互動輸入去初始化跟蹤程式 1 Tracking:

linux初級學習筆記五:bash特性!(視頻序號:03_23)

可執行文件 文件名通配符 內核 引用 完成 -c family man 文件 本節學習的命令:history,alias,ualias,\CMD 本節學習的技能:        bash的特性      光標跳轉      查看命令歷史      命令歷史的使用技巧  

數據庫學習筆記_10_函數依賴——函數依賴公理及其推得規律和屬性閉包

一個 說明 tro ans while 比較 接下來 子集 and 首先引入armstrong‘s axioms, 反射律(reflexivity rule)對於任何為LA(a)子集的LA(b)來說,LA(a)->LA(b)恒成立 增加律(argu

hibernate框架學習筆記11:Criteria查詢

code 關系 style 獲得 排序 void 技術 private lap 創建實體類對象: package domain; import java.util.HashSet; import java.util.Set; //客戶實體 public class

PHP7 學習筆記(十三)composer

導出 php開發 HR build osi oschina sni 區別 優秀 摘要   從拷貝第三方代碼到項目中(1994),到PEAR安裝依賴包(1999),再到Composer興起(2012),PHP社區經歷了將近20年的探索。PHP這門古老的語言,也在不斷的發展更新

Grunt學習筆記【3】---- filter

add 行處理 class 一個 特殊 col filter詳解 很多 https 本文主要講配置任務中的filter,包括使用默認fs.Stats方法名和自定義過濾函數。 通過設置filter屬性可以實現一些特殊處理邏輯。例如:要清理某個文件夾下的所有空文件夾,這時使用c

python爬蟲學習筆記二:Requests庫及HTTP協議

Requests庫的安裝:https://mp.csdn.net/postedit/83715574 r=requests.get(url,params=None,**kwargs) 這個r是Response物件 url :擬獲取頁面的url連結 params:url中的額外引數

Redis學習筆記--Redis資料過期策略

本文對Redis的過期機制簡單的講解一下   講解之前我們先丟擲一個問題,我們知道很多時候伺服器經常會用到redis作為快取,有很多資料都是臨時快取一下,可能用過之後很久都不會再用到了(比如暫存session,又或者只存放日行情股票資料)那麼就會出現一下幾個問題了 Redi

Python3爬蟲學習筆記(2.Requests庫)

Requests庫功能相比Urllib庫更強大,也許是自帶的 如果沒有,cmd輸入pip install requests獲取即可 例項: import requests response = r

Python3爬蟲學習筆記(1.urllib庫

1.什麼是爬蟲:略,到處都有講解。 雖然是入門,不過沒有Python基礎的同學看起來可能費勁,建議稍學下Python 之前學習前端知識也是為了能看懂HTML,便於爬蟲學習,建議瞭解下前端知識 2.re

Linux 學習筆記_Linux網路管理_

網路基礎 Linux網路配置 Linux配置IP地址 1. ifconfig命令臨時配置IP地址 ifconfig命令:檢視與配置網路狀態命令 ifconfig eth0 192.168.0.200 netmask 255.255.255.0 #

Spring4學習筆記----Spring的依賴注入

Spring是一個IOC和AOP容器,Spring是非侵入型的,基於Spring開發的web應用中的物件可以不依賴Spring的API. IOC:依賴注入 (讓Spring Bean以配置檔案的形式組織在一起) 所謂依賴注入:在程式執行過程中,如需要另外一個物件協作(呼叫

Bullet 物理引擎學習筆記(1) -- HelloWorld

本文將對 Bullet 例程 HelloWorld 中的各語句,分析其內部的操作過程。 首先是包含了標頭檔案: #include "btBulletDynamicsCommon.h" 1、首先定義了用於配置碰撞的 btCollisionConfigur

Python3爬蟲學習筆記(4.BeautifulSoup庫

這是一個功能強大的庫,可以代替很多需要寫正則的地方 這是一個第三方解析庫,常規安裝方法: 調出cmd:pip install bs4 簡單瞭解: html = """ <html lang=

Java學習筆記(31)--介面 (一)

一、基本概念 介面(Interface),在JAVA程式語言中是一個抽象型別,是抽象方法的集合。介面通常以interface來宣告。一個類通過繼承介面的方式,從而來繼承介面的抽象方法。 如果一個類只由抽象方法和全域性常量組成,那麼這種情況下不會將其定義為一個抽象類。只會定義為一個介面,所以介面嚴格的來

SpringMVC學習筆記(三) 切面

為了更好的理解AOP,先來了解幾個AOP的術語。 通知(Advice) 指切面(定義為aspect的類)中的工作; spring切面可以應用的五種通知: 前置通知(Before):在目標方法被呼叫之前呼叫通知功能; 後置通知(After):在目標方法完成之後呼叫通知,此時

TaskScheduler內幕天機:Spark shell案例TaskScheduler和SchedulerBackend、FIFOFAIR、Task執行時本地性演算法

TaskSchedulerBackend與SchedulerBackend FIFO與FAIR兩種排程模式 Task資料本地性資源的分配 一、TaskScheduler執行過程(Spark-shell角度) 1.啟動Spark-shell 當我們spa

[學習筆記]Egret全新RES模組

近期Egret釋出了全新的4.0版本,此次版本中最大的特色就是釋放了全新的RES資源管理模組。相信不少人在官網或者直播中已經對新的RES資源管理模組有所瞭解。這篇文章就全新的RES進行一次介紹。與此同時,在引擎新版本中,由於引入了TypeScript 2.1.4,所以在語法糖層面也增加不少特性,我後續會在其他

【機器學習實戰】FP-growth演算法

Here is code 背景 apriori演算法 需要多次掃描資料,I/O 大大降低了時間效率 1. fp-tree資料結構 1> 項頭表 記錄所有的1項頻繁集出現的次數,並降序排列 2> fp tree 根據項頭表,構建fp樹 3>

乾貨 | 深度學習之CNN反向傳播演算法

微信公眾號 關鍵字全網搜尋最新排名 【機器學習演算法】:排名第一 【機器學習】:排名第一 【Python】:排名第三 【演算法】:排名第四 前言 在卷積神經網路(CNN)前向傳播演算法(乾貨 | 深度學習之卷積神經網路(CNN)的前向傳播演算法詳解)中對CNN的前向傳播演算法做了總結,基於CNN前向傳播演