一、概述

这是我在做手势识别的时候,在解决手势画面提取的时候看的一篇paper,这里关键是使用了动态规划来作为跟踪算法,效果是可以比拟cameshift和kf的,但在occlusion,gaps或者离线tracking的时候做的很好。

二、算法步骤

  step1:对于时间的t的frame如X_t的每个pixel(x,y),首先计算出一个score q(t,x,y),称为local score,这个后面会说,score function是由你自己来选择的,然后需要算出一个Q(t,x,y),也就是global score,Q(t,x,y)是截止到时间t的(x,y)处的best tracking的分数总和(个人理解就是最大的score的路径的选择),所以这里用了dp 的思想,也就是对于Q(t,x,y),它的最优值,基本上肯定是由Q(t-1,x',y')过来的,x',y'是x,y的neighborhood。

      

  这里对照论文的两个公式基本可以看明白,然后论文里面在计算的时候加了L2的正则优化,毕竟优化方法加正则不说说说而已.........原因也很简单,(x,y)和(x',y')的距离不可能太大,因为物体是连续运动的。

  step2:这里就是利用上面的得到的Q(t,x,y)和B(t,x,y)来做 traceback,最后reconstruct出来最好的路径.

  用动态规划的跟踪方法有个问题,就是他一般是限定了他的tracking size,不然的话,计算量会很大,所以这里还提出了两个trick  

1、一个点(x,y)只有在满足 Q(t,x,y) > max(Q(t,x,y))T0 的时候才被考虑作为t+1时候的

predecessor,这里T0是一个自己设定的参数

2、利用上面的方法和jump penalty function来做局部调整,这样可以做到一个adaptive的窗口

三、Score function

  简而言之就是为你区分image之间的不同的时候选出一个合适function,这里论文中现提出了一个简单的Motion information Scor function,这是计算一个size里面的pixel的value的和。接下来说了Eigenfaces and skin Color Score Function,其实也都只是你在实际场景的时候一个自己的权衡,后一个的关键点就是你可以选择两个score function,最后用一个w权重作为超参数来做就行了

四、总结

后面还讲了利用HMM做recognition和tracking的融合,说实话,没看懂...有机会再看看吧。

 

  

论文笔记《Tracking Using Dynamic Programming for Appearance-Based Sign Language Recognition》的更多相关文章

  1. 《Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition》论文笔记

    论文题目:<Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition> 论文作者:Qibin ...

  2. [place recognition]NetVLAD: CNN architecture for weakly supervised place recognition 论文翻译及解析(转)

    https://blog.csdn.net/qq_32417287/article/details/80102466 abstract introduction method overview Dee ...

  3. 论文笔记系列-Auto-DeepLab:Hierarchical Neural Architecture Search for Semantic Image Segmentation

    Pytorch实现代码:https://github.com/MenghaoGuo/AutoDeeplab 创新点 cell-level and network-level search 以往的NAS ...

  4. 论文笔记——Rethinking the Inception Architecture for Computer Vision

    1. 论文思想 factorized convolutions and aggressive regularization. 本文给出了一些网络设计的技巧. 2. 结果 用5G的计算量和25M的参数. ...

  5. 论文笔记:Fast Neural Architecture Search of Compact Semantic Segmentation Models via Auxiliary Cells

    Fast Neural Architecture Search of Compact Semantic Segmentation Models via Auxiliary Cells 2019-04- ...

  6. 论文笔记:ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware

    ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware 2019-03-19 16:13:18 Pape ...

  7. 论文笔记:DARTS: Differentiable Architecture Search

    DARTS: Differentiable Architecture Search 2019-03-19 10:04:26accepted by ICLR 2019 Paper:https://arx ...

  8. 论文笔记:Progressive Neural Architecture Search

    Progressive Neural Architecture Search 2019-03-18 20:28:13 Paper:http://openaccess.thecvf.com/conten ...

  9. 论文笔记:Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation

    Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation2019-03-18 14:4 ...

  10. 论文笔记系列-DARTS: Differentiable Architecture Search

    Summary 我的理解就是原本节点和节点之间操作是离散的,因为就是从若干个操作中选择某一个,而作者试图使用softmax和relaxation(松弛化)将操作连续化,所以模型结构搜索的任务就转变成了 ...

随机推荐

  1. Centos7 使用LVM进行新加磁盘管理

    centos7使用LVM管理一块新的磁盘   注意!文中凡是带#的都是命令标志.   一些重要概念: LV(Logical Volume)- 逻辑卷, VG(Volumne Group)- 卷组, P ...

  2. 理解volatile与synchronized

    用 volatile 修饰的变量可以保证线程的"可见性",也就是,任何线程修改了这个 volatile 修饰的值都会通知其他线程来主缓存中重新读取值. 下面通过例子加以说明: pu ...

  3. linux 安装nginx yum

    本分类下有一个环境一键安装.那这背后发生了什么呢?咱们手动使用源码进行安装.1.首先保证有一个能联网的centos.2.百度 ningx 官网   点download  http://nginx.or ...

  4. P1219 N皇后

    P1219 N皇后 题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序 ...

  5. python使用网易邮箱发邮件

    # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText import email.mime.multip ...

  6. Echarts 背景渐变柱状图

    var dom = document.getElementById("container"); var myChart1 = echarts.init(dom); var app ...

  7. spark的排序方法

    今天我们来介绍spark中排序的操作,spark的排序很简单,我们可以直接使用sortBy来进行,这个里面我们使用case clas,使用case class的好处是1.不用newjiukeyi 搞出 ...

  8. Android 本应用数据清除管理器DataCleanManager

    1.整体分析 1.1.源代码先给出了,可以直接Copy. /** * 本应用数据清除管理器 */ public class DataCleanManager { /** * * 清除本应用内部缓存(/ ...

  9. 原码、反码、补码、BCD码、格雷码

    二进制的最高位表示这个二进制的正负符号(0为正,1为负),其余各位数表示其数值本身称为原码. 正数的反码等于原码,负数的反码是在原码的基础上,符号位不变,其余各位取反. 正数的补码等于原码,负数的补码 ...

  10. getElementByName????????,????????,

    getElementByName可以获取多个元素,获得的是一个数组, getElementById只能获取一个,是dom从上往下的第一个元素.