1. 程式人生 > >目標跟蹤學習演算法之二:DSST

目標跟蹤學習演算法之二:DSST

簡介

       DSST(Accurate Scale Estimation for Robust Visual Tracking)在2014年VOT上奪得了第一名,演算法簡潔,效能優異,並且我上一篇所述的KCF奪得了第三名,兩者都是基於濾波器的演算法,這一年是CF義軍突起的一年,值得研究這些相近的優秀演算法。這篇演算法是基於MOSSE的改進,突出內容是加入了尺度變換,下面開始逐一講解演算法內容。

相關濾波器

  首先講一下MOSSE提出的相關濾波器,從目標中提取一系列的影象patches,記為f1,f2,...ft作為訓練樣本,其對應的濾波器響應值為一個個高斯函式g1,g2,...g

t,而目的就是找到滿足最小均方差(Minimum Output Sum of Squared Error)的最優濾波器:

ε=j=1t||htfjgj||2=1MN||HtFjGj||2(1)
其中第二個等號根據Parseval定理匯出,等式左側是空域的方程式,右側是頻域的方程式,正正是這個等式,使得我們將問題求解變換到頻域裡求解,ε的最小值在頻域裡的解如下:
Ht=tj=1GjFjtj=1FjFj(2)
一般而言,gj可以是任意形狀的輸出,這裡的輸出gj是高斯型的函式,峰值位於中心處。這個方法的技巧或者目的在於:一是運算簡潔,基本都是矩陣運算;二是引入快速傅立葉(FFT)大大加快運算效率。這即是相關濾波器被應用在Tracking並獲得較好效果的原因,滿足了對速度的一大需求。
在得到上述相關濾波器後,對於新的一幀中的候選輸入樣本z,求相關得分y:
y
=F1(HtZ)
(3)

y取最大響應值時對應的位置z為新的目標位置。

演算法思想

  演算法設計了兩個一致的相關濾波器,分別實現目標的跟蹤和尺度變換,定義為位置濾波器(translation filter)和尺度濾波器(scale filter),前者進行當前幀目標的定位,後者進行當前幀目標尺度的估計。兩個濾波器是相對獨立的,從而可以選擇不同的特徵種類和特徵計算方式來訓練和測試。文中指出該演算法亮點是尺度估計的方法可以移植到任意演算法中去。


這裡寫圖片描述

演算法流程:如上圖所示,通過左側的影象patch目標提取的特徵F和右側的高斯型函式G,應用式(2)得到一個相關濾波器H。然後在下一幀將測試的影象patches提取特徵Z作為輸入,與相關濾波器H按照式(3)進行運算,得到響應值y最大的候選目標,所以演算法很簡潔。
該演算法將輸入訊號f
(影象中的某一個patch)設計為d維特徵向量(可選gray,hog),通過建立最小化代價函式構造最優相關濾波器h,如下:
ε=||l=1dhlflg||2+λl=1d||hl||2(4)
其中,l表示特徵的某一維度,λ是正則項係數,作用是消除f頻譜中的零頻分量的影響,避免上式解的分子為零,如下:
Hl=G¯¯¯Fldk=1Fk¯¯¯¯Fk+λ=AltBt(5)
由於patch中的每個畫素點需要求解dxd維的線性方程,計算非常耗時,為了得到魯棒的近似結果,對上式中分子Alt和分母Bt分別進行更新:
Alt=(1η)Alt1+ηGt¯¯¯¯Flt

相關推薦

目標跟蹤學習演算法DSST

簡介        DSST(Accurate Scale Estimation for Robust Visual Tracking)在2014年VOT上奪得了第一名,演算法簡潔,效能優異,並且我上一篇所述的KCF奪得了第三名,兩者都是基於濾波器的演算法

雜湊學習演算法基於hash的ANN框架

在上一節瞭解了ANN的背景,簡單介紹了hash的演算法,那基於hash的ANN框架是怎樣的呢? 框架圖 框架說明 基於hash的ANN主要有四個步驟,包括特徵提取、hash編碼(學習+編碼)、漢明距離排序、重排序。 1、特徵提取 有查詢影象和影象資料庫,需要對這兩類分別

機器學習演算法5分鐘上手K-Means

1.案例:承襲KNN,這個資料依舊是用打鬥次數和接吻次數來界定電影型別,接吻多的是Romance型別的,而打鬥多的是動作電影。 2.問題:現在有一部名字未知的電影,打鬥次數為18次,接吻次數為90

目標跟蹤學習演算法DSST

原文:http://blog.csdn.net/gxb0505/article/details/52601613?locationNum=8 簡介(Accurate Scale Estimation for Robust Visual Tracking)

吳恩達機器學習 學習筆記 代價函式和梯度下降演算法

二、 2-1 Model Representation 我們學習的第一個演算法是線性迴歸,接下來會講什麼樣的模型更重要,監督學習的過程是什麼樣子。 首先舉一個需要做預測的例子:住房價格上漲,預測房價,我們擁有某一城市的住房價格資料。基於這些資料,繪製圖形。 在已有房價資

Linux運維學習筆記常用命令2

linux 運維 筆記71、passwd:修改用戶密碼語法passwd [參數]username選項-k --keep-tokens :保留即將過期的用戶在期滿後仍能使用-l --lock :鎖定用戶無權更改其密碼,只能root才能操作-u --unlock :解除鎖定-S --status :查看用戶狀

Lucene學習總結Lucene的總體架構

api 要點 iter 不同 blank 應用 文件 score image Lucene總的來說是: 一個高效的,可擴展的,全文檢索庫。 全部用Java實現,無須配置。 僅支持純文本文件的索引(Indexing)和搜索(Search)。 不負責由其他格式的文件抽取純文

《逐夢旅程Windows遊戲編程從零開始》學習筆記GDI框架

register 開發 操作 程序 turn use 繪制 cal 完整 1 //===========================================【程序說明】=================================== 2 //

聚類演算法DBSCAN演算法高維資料剪枝應用NQ-DBSCAN

一、經典DBSCAN的不足 1.由於“維度災難”問題,應用高維資料效果不佳 2.執行時間在尋找每個點的最近鄰和密度計算,複雜度是O(n2)。當d>=3時,由於BCP等數學問題出現,時間複雜度會急劇上升到Ω(n的四分之三次方)。 二、DBSCAN在高維資料的改進 目前的研究有

Memcached學習筆記入門使用

使用 現在伺服器已經正常運行了,下面我們就來寫java的客戶端連線程式。 將java_memcached-release.zip解壓,把java_memcached-release.jar檔案複製到java專案的lib目錄下, 然後我們來編寫程式碼,比如我提供的一個應用類如下: &n

CAN匯流排學習記錄系統結構與幀結構

CAN匯流排系統結構 CAN 控制器  接收控制單元中微處理器發出的資料,處理資料並傳給 CAN 收發器 CAN 收發器 將資料傳到匯流排 or 從匯流排接收資料給 CAN 控制器 CAN 資料傳遞終端 避免資料傳輸終了反射回來 CAN 資料匯流排 傳輸資料的資料線,兩根:CAN-hig

雜湊學習演算法雜湊學習五個要點

瞭解到雜湊學習是在雜湊編碼階段進行的,參考上一節基於hash的ANN框架 雜湊學習的目的是:學習一個複雜的雜湊功能,y=h(x),把一個輸入點x對映成雜湊碼y,且滿足q點的最近鄰儘可能與實際結果相近,並且在編碼空間的查詢也是有效的。要滿足這些要求,需考慮以下5個部分:雜湊函式、編碼空間的相似

hive程式設計指南學習筆記hive資料庫及其中的表查詢

show databases;                                      /*

spring4.1.8初始化原始碼學習三部曲setConfigLocations方法

本章是學習spring4.1.8初始化原始碼的第二篇,前一章《spring4.1.8初始化原始碼學習三部曲之一:AbstractApplicationContext構造方法》對AbstractApplicationContext的初始化做了分析,本章我們聚焦

Jenkins學習使用 Linux節點增加

一、通過Jenkins的“系統管理-->節點管理”,點選“新建節點”,輸入節點名稱,選擇“固定節點”或者“複製現有節點”,然後點選“確定”。   二、在下列頁面中填入必要的資訊: 1、併發構建數:在此節點上可以同時執行的構建job數量,在此預設為1 2

SpringSecurity學習筆記SpringSecurity結構及基本配置

Spring Security3.2分為11個模組,如下表所示: Spring Security3.2引入了新的Java配置方案,完全不在需要通過XML來配置安全性功能。如下,展現了Spring Security最簡單的Java配置: @EnableWebSecurity

Ext4.2.1學習歷程自定義類及類的動態載入

原文出處   http://blog.itpub.net/28562677/viewspace-1067421/ -------------------------------------------------------------- 在些extjs類的定義時有必要簡單

DirectX 9 UI設計學習筆記第2章Introducing DirectX+第3章Introducing Direct3D

       此文由哈利_蜘蛛俠原創,轉載請註明出處!有問題歡迎聯絡本人! 上一期的地址:        別看這一期似乎要講很多內容,其實大部分是一帶而過的。其實我的重點在於弄了一個框架程式;詳情見本期最後。 第2章 Introducing DirectX ===

spark學習筆記寬依賴和窄依賴

1.如果父RDD裡的一個partition只去向一個子RDD裡的partition為窄依賴,否則為寬依賴(只要是shuffle操作)。 2.spark根據運算元判斷寬窄依賴:      窄依賴:map

MyBatis由淺入深學習總結MyBatis解決Java實體類和資料庫表字段不一致方法總結

在此,首先說明一點任何永續性框架都需要解決一個問題,那就是Java實體類的欄位一般來說基本上會與資料庫表中欄位不一致,那麼它們是如何解決的呢?咱們以Hibernate和SpringJDBC為例說明一下; 1、Hibernate中一般通過XML對映和註解的方式解決不一致問題,