Abstract

一个结合梯度特征HOG及颜色特征的实时跟踪算法,速度达到80FPS,即每秒80帧图像。

Introduction

Staple: Sum of Template And Pixel-wise LEarners
对于目前的主流跟踪算法,采用的tracking-by-detection策略,即先检测目标的位置,以HOG检测为例 ,对同一个目标,可能得到多个目标的矩形框,如下图所示。有的时候直接通过NMS(non-maximum suppression 非极大值抑制)处理保证只有一个解。不过多数跟踪算法宁可错杀,也不愿放过一个。HOG Object Detection 可以参考 Histogram of Oriented Gradients and Object Detection

Related Work

  1. Online learning and Correlation Filters:在线学习+协同过滤
  2. Robustness to deformation:应对形变
  3. Schemes to reduce model drift:应对漂移问题
  4. Combining multiple estimates:结合多种估计
  5. Long-term tracking with re-detection:长期跟踪及重复检测

Proposed Approach

符号及含义

  1. t t t frame index, 帧索引,帧下标
  2. x t x_t xt​ 第t帧图像, x x x指代任意一帧图像
  3. p t p_t pt​ 第t帧图像中目标对应的矩形,当然,这个是最优的, p p p指代任意一帧图像
  4. S t S_t St​ 第t帧图像中目标对应的所有矩形,所以我们有 p t = a r g m a x p ∈ S t f ( T ( x t , p ) ; θ t − 1 ) p_t=argmax_{p\in S_t}f(T(x_t,p);\theta _{t-1}) pt​=argmaxp∈St​​f(T(xt​,p);θt−1​)
  5. f ( T ( x , p ) ; θ ) f(T(x,p);\theta) f(T(x,p);θ) 依据模型参数 θ \theta θ,计算得到目标在图像 x x x对应矩形 p p p的分数(score)。这个分数当然是越高越好,所以选择取最大分数时的矩形 p p p作为最优的矩形 p t p_t pt​。对于 T ( x , p ) T(x,p) T(x,p)可以暂时肤浅地理解为检测出来的梯度特征与颜色特征。同样参数 θ \theta θ也可以暂时肤浅地理解为预测的梯度特征与颜色特征。然后 f ( T ( x , p ) ; θ ) f(T(x,p);\theta) f(T(x,p);θ)求预测特征与检测特征之间的匹配的情况,匹配分数越高,就越可能对应实际的目标矩形 p t p_t pt​。
  6. θ \theta θ 模型参数 θ \theta θ可以通过损失最小化求出,设损失函数为 L ( θ ; X t ) L(\theta;X_t) L(θ;Xt​),在这里 X t = { ( x i , p i } i = 1 t X_t=\{(x_i,p_i\}_{i=1}^t Xt​={(xi​,pi​}i=1t​并不是帧的集合 { x 1 , x 2 , . . . , x t } \{x_1,x_2,...,x_t\} {x1​,x2​,...,xt​},而是 { ( x 1 , p 1 ) , ( x 2 , p 2 ) , . . . , ( x t , p t ) } \{(x_1,p_1),(x_2,p_2),...,(x_t,p_t)\} {(x1​,p1​),(x2​,p2​),...,(xt​,pt​)},这样包含之前每一帧中目标的位置。对参数的复杂度加以惩罚,最终得到: θ t = a r g m i n θ ∈ Ω { L ( θ ; X t ) + λ R ( θ ) } \theta _t=argmin_{\theta \in \Omega} \{L(\theta;X_t)+\lambda R(\theta)\} θt​=argminθ∈Ω​{L(θ;Xt​)+λR(θ)}
  7. f ( x ) f(x) f(x) 回到对 p p p进行打分的函数,前面提到要结合梯度特征与颜色特征,考虑算法的实时性,当然用线性方式结合速度快,这样有 f ( x ) = c t m p l f t m p l ( x ) + c h i s t f h i s t ( x ) f(x)=c_{tmpl}f_{tmpl}(x)+c_{hist}f_{hist}(x) f(x)=ctmpl​ftmpl​(x)+chist​fhist​(x)
    抱歉这里的 x x x理应对应 T ( x , p ) ; θ T(x,p);\theta T(x,p);θ,但原文中就是这么用的。tmpl 就是template(梯度特征),hist就是histogram(颜色直方图特征)
  8. f t m p l ( x ; h ) f_{tmpl}(x;h) ftmpl​(x;h) 考虑梯度特征的打分函数,这里 T \mathcal{T} T与 T T T以及前面的函数 T ( x t , p ) T(x_t,p) T(xt​,p)应该没有任何联系。 T ∈ Z 2 \mathcal{T} \in \mathbb{Z}^2 T∈Z2为有限的网格(finite grid),可以理解为图像中一像素的位置坐标(x,y)。 T T T应该为向量的转置。这里h为模型参数, ϕ x \phi _x ϕx​为图像梯度特征。这样,对于每一点,我们有: f t m p l ( x ; h ) = ∑ u ∈ T h [ u ] T ϕ x [ u ] f_{tmpl}(x;h)=\sum_{u \in \mathcal{T}}h[u]^T \phi _x[u] ftmpl​(x;h)=u∈T∑​h[u]Tϕx​[u]
  9. f h i s t ( x ; β ) f_{hist}(x;\beta) fhist​(x;β) 考虑颜色特征的打分函数,有一点点不同,在这里, β \beta β同样是模型参数, H \mathcal{H} H也同样是有限的网格(finite grid) f h i s t ( x ; β ) = β T ( 1 ∣ H ∣ ∑ u ∈ H ψ x [ u ] ) f_{hist}(x;\beta)=\beta ^T(\frac 1 {\lvert \mathcal{H} \rvert}\sum _{u\in \mathcal{H}} \psi _x[u]) fhist​(x;β)=βT(∣H∣1​u∈H∑​ψx​[u])
  10. θ \theta θ 参数 θ = ( h , β ) \theta =(h,\beta) θ=(h,β)
  11. L ( θ , X T ) L(\theta,X_T) L(θ,XT​) 损失函数= ∑ t = 1 T w t l ( x t , p t , θ ) \sum _{t=1} ^T w_t l(x_t,p_t,\theta) ∑t=1T​wt​l(xt​,pt​,θ),这里每帧的损失函数$ l(x,p,\theta)=cost(p,argmax_{q\in S}f(T(x,q);\theta)) , 在 这 里 , ,在这里, ,在这里,p$自然是正确的矩形。
  12. 然后得到参数的解: h t = a r g m i n h { L t m p l ( h ; X t ) + 1 2 λ t m p l ∥ h ∥ 2 } h_t=argmin_h \{L_{tmpl}(h;X_t)+\frac 1 2 \lambda _{tmpl} \lVert h \rVert ^2 \} ht​=argminh​{Ltmpl​(h;Xt​)+21​λtmpl​∥h∥2} β t = a r g m i n β { L h i s t ( β ; X t ) + 1 2 λ h i s t ∥ β ∥ 2 } \beta _t=argmin_{\beta} \{L_{hist}(\beta;X_t)+\frac 1 2 \lambda _{hist} \lVert \beta \rVert ^2 \} βt​=argminβ​{Lhist​(β;Xt​)+21​λhist​∥β∥2}

Online least-squares optimisation

上面仅仅介绍了原文的前10个公式,原文一共26个公式,就不一一介绍了。接下来主要讲大概。
这一小节通过梯度下降求解损失函数

Learning the template score

再次梯度下降求 h h h

Learning the histogram score

还是梯度下降求 β \beta β

Search strategy

本文假设矩形窗口 p p p有平移和缩放,但保持长宽比例和朝向(目标不旋转)

Reference

  • matlab mex c++ code
  • poster
  • csdn 更全面地介绍Staple
  • cvpr csdn 介绍cvpr中的目标跟踪

算法学习 -- Staple: Complementary Learners for Real-Time Tracking相关推荐

  1. 目标跟踪算法--Staple: Complementary Learners for Real-Time Tracking

    文章下载链接:文章下载链接 代码下载链接:Staple代码 -------------------------------------------- 今天要讲的这篇文章也是基于相关滤波器(不懂相关滤波 ...

  2. CVPR2016跟踪算法Staple的配置(Staple: Complementary Learners for Real-Time Tracking)

    代码下载地址: https://github.com/bertinetto/staple 由于Staple运行需要特定的数据格式,本文把原工程目录runTracker.m简单修改便于测试,改动不大. ...

  3. 目标跟踪系列二:Staple: Complementary Learners for Real-Time Tracking(2016CVPR)

    文章链接:http://arxiv.org/pdf/1512.01355 代码链接:https://github.com/bertinetto/staple 1.      考虑了两种方法的结合.Le ...

  4. 目标跟踪“Staple: Complementary Learners for Real-Time Tracking”

    综合了局部特征HOG和全局特征颜色直方图用于目标跟踪,速度达到80fps. 相关工作 Correlation Filters作为衡量信号相似度的方法被用于跟踪,主要用于rigid模板,关于CF的介绍可 ...

  5. Staple 跟踪: Complementary Learners for Real-Time Tracking

    目标跟踪算法--Staple: Complementary Learners for Real-Time Tracking 小小菜鸟一只 2017-03-25 09:26:42  15110  收藏  ...

  6. 拿下斯坦福和剑桥双offer,00后的算法学习之路

    董文馨,00后,精通英语,西班牙语.斯坦福大学计算机系和剑桥大学双Offer,秋季将进入斯坦福大学学习. 10岁开始在国外上学:12岁学Scratch: 13岁学HTML & CSS: 14岁 ...

  7. 好久没有看到这么有建设性德文章,由衷地赞叹《知其所以然地学习(以算法学习为例)》-By 刘未鹏(pongba)

    知其所以然地学习(以算法学习为例) By 刘未鹏(pongba) C++的罗浮宫(http://blog.csdn.net/pongba) Updated(2008-7-24):更新见正文部分,有标注 ...

  8. 原创 | 初学者友好!最全算法学习资源汇总(附链接)

    在计算机发展飞速的今天,也许有人会问,"今天计算机这么快,算法还重要吗?"其实永远不会有太快的计算机,因为我们总会想出新的应用.虽然在摩尔定律的作用下,计算机的计算能力每年都在飞快 ...

  9. 基本算法学习(一)之希尔排序(JS)

    参考书: 严蔚敏-数据结构 希尔排序(Shell's Sort) 希尔排序又称"缩小增量排序",归属于插入排序一类,简单来说,和我们的插入排序比,它更快. 奇妙的记忆点: 内排序( ...

最新文章

  1. 与ObjectDataSource共舞
  2. LeetCode 445. Add Two Numbers II--面试算法题--C++,Python解法
  3. 爬取百度网盘资源报user is not authorized, hitcode:119
  4. 阿姨帮万勇:O2O产品的颠覆与布局,阿姨帮未来发展战略独家披露
  5. 洛谷 5205 【模板】多项式开根
  6. 对应 网口_威纶通网口屏和西门子1200/1500绝对地址实现通讯
  7. C++11 学习笔记 lambda表达式
  8. 马逊s3云存储接口_当对象存储“湖”有了强一致性
  9. axios的用法详解
  10. python3颜色代码_python3中布局背景颜色代码分析
  11. conda安装tensorflow-gpu=2.2.0
  12. Mac乐谱制作工具---Sibelius 8 for Mac西贝柳斯
  13. 【原创】微信最新表情js代码
  14. 人体神经系统分布图高清,神经分布图超清图片
  15. 取消管理员取得所有权_win7怎么获取得管理员所有权
  16. Mac Gradle 5.0安装
  17. matlab八分之一中点画圆算法,中点八分画圆算法
  18. RTL8367RB -CG
  19. 三大运营商物联卡哪家网络稳定
  20. 荒野日记辅助挂机攻略,手游辅助好用脚本

热门文章

  1. matlab教程——基于6.x版本,MATLAB教程:基于6.x版本
  2. javac编译时出现GBK报错(错误:编码GBK的不可映射字符)
  3. 【汇编】奇校验程序:输入一个字符,编写一个程序判断这个字符中1的个数,如果是偶数个1,则校验位(字符最高位)为1,如果是奇数个1,则校验位为0。并显示加入校验位前后该字符的二进制代码。
  4. 5G物联网组网架构-网络
  5. 根据离散点画直线_离散数据的最佳直线求解方法
  6. 触摸按键芯片BS801B
  7. Cisco携Citrix推桌面虚拟化 新终端给力VXI
  8. 无损放大图片的软件叫什么?这篇文章来告诉你
  9. python爬取淘宝搜索页面+url+图片下载并将信息保存到MySQL数据库中
  10. 温度控制c语言流程图,AT89C2051单片机温度控制器设计+电路图+流程图.doc