• High-Speed Tracking with Kernelized Correlation Filters


          2015年的一篇论文,可参考:http://blog.csdn.net/carrierlxksuper/article/details/46461245。

         另参考:http://www.skyoung.org/kcf-tracking-method/

          其中提到了redge regression(岭回归),可参考:http://www.cnblogs.com/zhangchaoyang/articles/2802806.html

          这篇论文的第一个创新点,是用回归的思想和相关滤波产生联系,10年的那篇论文是用滤波的思想。

          其次是用到了循环矩阵的性质。所有的循环矩阵可以通过DFT变成对角矩阵(不明白)。而对角矩阵之间的运算是element-wise的,这个就频率域是一样的了。

          然后是用到了kernel trick,将特征转换到高维。通过使用循环矩阵的性质,提高kernel regression的速度。

          在计算kernel时,通过对角的性质,将其转换到频域,能很容易的得到kernel correlation。

          然后是多通道,也就是用到了HOG特征,也是我最想了解的,可惜作者说的并不多。

          最后提到了linear kernel,有句结论,要想能fast element-wise,要么选择多通道,要么选择多样本,但不能同时得到(不理解)。

       

          下面分析下代码。

           和CSK的代码相比,这个代码量增加了不少,增加了很多函数,慢慢看。

            首先分析下tracker.m这个函数,因为这个函数和CSK太像了,从熟人开始下手。

            和CSK一样,首先得到一个以目标为中心的高斯函数分布并进行汉明窗口的处理。

            

            进入循环。首先进行灰度和图像大小的处理。至此分成了两部分。

            如果是第一帧,则首先得到背景框,然后提取图像特征xf(傅里叶域,这个函数稍后分析),根据kernel的不同形式,选择不同的kernel表达式,训练得到alpha。保留得到的alpha和xf。保存中心点位置,并绘图。

           如果不是第一帧,首先得到新来背景和背景对应的特征zf,根据kernel type的不同,选择不同的detection表达式,得到kzf,进而得到response最大的点,即中心点。后面就与第一帧一样了:得到背景框,然后提取图像特征xf,根据kernel的不同形式,选择不同的kernel表达式,训练得到alpha。和第一帧的不同的地方就在于xf和alpha需要更新。

         

           下面要分析的是get_features函数与各种核的correlation函数

          

         

           

          

  • 相关阅读:
    真的是简单、简洁、简易、简明之道!!!
    HashMap源码解读
    Jenkins Pipeline
    C语言二级指针free|一级指针存储内存地址
    openjdk编译和调试,JVM编译调试
    java linux和win jdk安装包jdk1.6、jdk1.7和jdk1.8 7u80 8u181 8u161
    关于java代码打包成jar在控制台运行变慢的问题
    Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen
    mongodb副本集
    condition
  • 原文地址:https://www.cnblogs.com/573177885qq/p/4709934.html
Copyright © 2020-2023  润新知