zoukankan      html  css  js  c++  java
  • 论文笔记《Tracking Using Dynamic Programming for Appearance-Based Sign Language Recognition》

    一、概述

        这是我在做手势识别的时候,在解决手势画面提取的时候看的一篇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的融合,说实话,没看懂...有机会再看看吧。

     

     

      

  • 相关阅读:
    非循环单链表节点的操作
    链表每一个节点的数据类型该如何表示
    链表的定义、确定一个链表需要几个参数?
    typedef的用法
    连续存储数组的算法(包含数组倒置、冒泡排序……)
    跨函数使用内存案例
    malloc()动态分配内存概述
    结构体
    指针和数组
    C#基础知识之dnSpy反编译
  • 原文地址:https://www.cnblogs.com/daihengchen/p/5802681.html
Copyright © 2011-2022 走看看