基于自适应颜色属性的目标追踪
Adaptive Color Attributes for Real-Time Visual Tracking
基于自适应颜色属性的实时视觉追踪
3月讲的第一篇论文,个人理解,存在非常多问题,欢迎交流!
这是CVPR2014年的文章。
名字翻译为基于自适应选择颜色属性的实时视觉跟踪。首先理解什么是Adaptive color attributes,文章中colorattributes把颜色分为11类,就是将RGB三种颜色细化为黑、蓝、棕、灰、绿、橙、粉、紫、红、白和黄共11种。
那么怎样做到adaptive(自适应)?就是实时的选择比較显著的颜色,这个选择的过程是一种类似PCA(主成分分析)中降维的思想,将11维特征降为2 维(代码里使用的就是2)。文章重点之中的一个就是这个。
主成分分析:主要用于特征的降维。
PCA是指它能够从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题,是寻找最小均方意义下、最能代表原始数据的投影方法。主成分分析的主要思想是寻找到数据的主轴方向,由主轴构成一个新的坐标系,这里的维数能够比原维数低,然后数据由原坐标系向新的坐标系投影。这个投影的过程就是降维的过程。
摘要
视觉跟踪在计算机视觉中是一个非常有挑战性的问题,如今最好的(state-of-art) 视觉跟踪器或者依赖于光照信息或是使用简单的颜色表示来描写叙述图片。与视觉跟踪不同的是,在目标识别和检測问题中,结合光照信息和复杂的颜色特征能够提供非常好的表现。因为跟踪问题的复杂性,所须要的颜色特征应该被有效的计算而且拥有一定的光学不变形同一时候保持较高的辨别力。
这篇文章研究基于检測的跟踪(tracking-by-detection)结构下颜色属性的贡献值。我们的结果表明颜色属性对于视觉跟踪问题具有优越的表现。我们进而提出一种自适应低维颜色属性的转化。
用41个有挑战性的基准颜色序列进行基于量化和属性评估方法的评价。该方法比基于光照强度的跟踪器提升了24%的距离精度。此外。能够得到我们的方法胜过最先进的追踪方法,而且速度可达到100fps以上。
1. Introduction
目标跟踪就是在图片序列中找到目标的位置。(目标是提前标明的。即在第一帧给出),在计算机视觉中是最优挑战性的问题。在很多应用中扮演了至关关键的数据,比方。人机交互,视频监控,机器人。跟踪问题之所以复杂是由于。跟踪过程中可能发生光照改变,遮挡,背景干扰。跟踪目标发生形变。本文调查了怎样使用颜色信息来减小上述问题的影响。
如今最先进的跟踪器或是使用光照强度(RGB值)或是使用纹理信息。虽然如今在视觉跟踪方面已经取得了非常大的进展。可是对于颜色信息的使用还是仅限于简单的颜色空间转换。和视觉跟踪不同的是,在目标检測方面,复杂的,巧妙设计的颜色特征显示了非常好的效果。而利用颜色信息做视觉跟踪是一件非常难的事情。颜色測量结果在整个图片序列中变化非常大。原因包含光照改变,阴影,相机和目标几何位置的变化。对于彩色图像在上述情况下鲁棒性的评价已经用在 图像分类,行为识别上,因此我们使用如今的评价方法来评价对目标跟踪这个问题的颜色转换的方法。
如今处理视觉跟踪问题的方法有两种,叫生成方法和判别方法(看过机器学习的人应该非常熟)。生成方法不断去搜索和目标最相似的区域。这类方法或者基于模板匹配或是基于子空间模型(子空间这个概念有点唬人,我认为就是将原始的目标。分为好多层,就像ps里的图层一样)。判别方法旨在将目标从背景中区分出来。就是将跟踪问题变为二分类问题。
生成方法仅仅使用了目标的信息,而判别方法既使用目标信息也使用背景的信息,找到一个将目标区分出来的分类界限。这样的方法在非常多基于tracking by detection框架的算法中使用。即使用目标和目标附近的环境训练出一个online的分类器。在前几年有个对如今比較优秀跟踪器的评价,(能够看cvpr2013年的一个benchmark),里面有个csk的跟踪器,排在前十名,并且拥有非常高的速度。这样的跟踪器发现了一个密度採样的策略,就是对一帧中多个子窗体的处理,能够归为对一个循环矩阵的处理,因为csk良好的表现和高速,我们的方法是基于csk跟踪器。
贡献:本文使用颜色属性扩展了csk跟踪器。并取得了良好的表现。csk的模型更新机制在处理多通道信号时。是次优的,为此我们调整了原来csk的更新机制,在实验中证明了新机制在多通道跟踪中的有效性。高维的颜色属性导致计算复杂度上的添加。可能限制跟踪器在实时应用和机器人中的使用,为此我们提出了自适应的维度下降方法,将原始的11维下降到2维。这样跟踪器的帧率就能够达到100fps以上而且不影响准确度。最后我们做了大量的评价证明了。
2. The CSK Tracker
CSK是在一个单独的图像碎片中从目标中得到核心的最小方形分类器。首先,这篇文章使用的决策函数是一个结构风险最小化的函数:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGxpbmdobGluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
文章中:
详细的细节后面再说。
Vapnik等人在多年研究统计学习理论基础上对线性分类器提出了还有一种设计最佳准则。
其原理也从线性可分说起。然后扩展到线性不可分的情况。
甚至扩展到使用非线性函数中去,这样的分类器被称为支持向量机(Support Vector Machine,简称SVM)。
支持向量机的提出有非常深的理论背景。
支持向量机方法是在近年来提出的一种新方法。
SVM的主要思想能够概括为两点:⑴它是针对线性可分情况进行分析。对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而 使得高维特征空间採用线性算法对样本的非线性特征进行线性分析成为可能;
这里主要说代码的思路。
首先:读入视频文件,得到groundtruth信息。也就得到了object的位置和大小的信息;然后得到一个在目标框图内目标的分布函数(高斯的分布。这一点我不是非常明确,和公式里面不一样)。
接下来: 读入第一张图片,转化为灰度图,对框内的数据进行窗体滤波的处理。得到一个边缘效应比較小的数据。
而且这个数据是被归一化到-0.5~0.5的;
然后: 通过以上数据求得核函数K;然后利用K再求出f(x)须要用到的 alpha(就是上面公式里面的c);(值得注意的是这里对于这两个重要的參数的求解都是从FourierDomain求得的,这里是本文的一个创新点,也是速度如此快的原因)
接下来: 对于后面的每一帧图像, 先转化为灰度图像。然后用hann窗预处理好输入的数据。接下来结合上一帧图像的信息再次计算K。然后由如今的alpha和K来计算出响应值。选出响应值最大的位置。(值得注意的是这里计算的出来的响应值是待处理的Frame里面的每个可能的目标区域)
最后: 依据响应值最大的位置来计算如今的K,然后更新alpha。然后处理下一帧图像。(同一时候也要看到,计算响应值和更新alpha所用到的K的计算的方式是不一样的。代码里面,计算响应值的K是目标和待检測的目标img进行卷积的,而更新的时候是目标和自己卷积的)
l 高斯函数
高斯函数的形式为:
当中 a、b 与 c 为实数常数 ,且a > 0.
这就意味着高斯函数的傅立叶变换不不过还有一个高斯函数,并且是进行傅立叶变换的函数的标量倍。
在计算机视觉中,有时也简称为高斯函数。高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别实用.这些性质表明。高斯平滑滤波器不管在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了project人员的有效使用.高斯函数具有五个十分重要的性质。它们是:
(1)二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是同样的.一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比还有一方向上须要很多其它的平滑.旋转对称性意味着高斯平滑滤波器在兴许边缘检測中不会偏向任一方向.
(2)高斯函数是单值函数.这表明,高斯滤波器用像素邻域的加权均值来取代该点的像素值。而每一邻域像素点权值是随该点与中心点的距离单调增减的.这一性质是非常重要的。由于边缘是一种图像局部特征,假设平滑运算对离算子中心非常远的像素点仍然有非常大作用。则平滑运算会使图像失真.
(3)高斯函数的傅立叶变换频谱是单瓣的.正如以下所看到的。这一性质是高斯函数付立叶变换等于高斯函数本身这一事实的直接推论.图像常被不希望的高频信号所污染(噪声和细纹理).而所希望的图像特征(如边缘),既含有低频分量。又含有高频分量.高斯函数付立叶变换的单瓣意味着平滑图像不会被不须要的高频信号所污染,同一时候保留了大部分所需信号.
(4)高斯滤波器宽度(决定着平滑程度)是由參数σ表征的,并且σ和平滑程度的关系是很easy的.σ越大,高斯滤波器的频带就越宽。平滑程度就越好.通过调节平滑程度參数σ,可在图像特征过分模糊(过平滑)与平滑图像中因为噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷.
(5)因为高斯函数的可分离性。大高斯滤波器能够得以有效地实现.二维高斯函数卷积能够分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的同样一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长.
l 希尔伯特空间
完备的内积空间,在一个复数向量空间上的给定的内积能够依照例如以下的方式导出一个范数(norm):
此空间称为是一个希尔伯特空间,假设其对于这个范数来说是完备的。这里的完备性是指,不论什么一个柯西列都收敛到此空间中的某个元素,即它们与某个元素的范数差的极限为。不论什么一个希尔伯特空间都是巴拿赫空间,可是反之未必。
l 离散傅里叶变换和高速傅里叶变换
l 高斯RBF内核(高斯径向基核函数)
所谓径向基函数 (Radial Basis Function简称 RBF),就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数 ,可记作
k(||x-xc||),其作用往往是局部的 ,即当x远离xc时函数取值非常小。最经常使用的径向基函数是高斯核函数
,形式为k(||x-xc||)=exp{- ||x-xc||^2/(2*σ^2) }当中xc为核函数中心,σ为函数的宽度參数
, 控制了函数的径向作用范围。
l 核函数(Kernels)
将核函数形式化定义,假设原始特征内积是。映射后为,那么定义核函数(Kernel)为
因为计算的是内积,我们能够想到IR中的余弦相似度,假设x和z向量夹角越小,那么核函数值越大,反之,越小。因此,核函数值是和的相似度。
SVM的核函数怎样选取?
1. Linear核:主要用于线性可分的情形。
參数少。速度快,对于一般数据,分类效果已经非常理想了。
2. RBF核:主要用于线性不可分的情形。
參数多,分类结果非常依赖于參数。有非常多人是通过训练数据的交叉验证来寻找合适的參数。只是这个过程比較耗时。
我个人的体会是:使用libsvm。默认參数,RBF核比Linear核效果稍差。
通过进行大量參数的尝试,一般能找到比linear核更好的效果。
3. 颜色视觉追踪
为了能合并颜色信息。我们通过定义一个合适的内核K来扩展CSK追踪不起到多维颜色特征。
1. a Hann Window
个
sinc(t)型函数之和。而括号里的两项相对于第一个谱窗向左、右各移动了 π/T。从而使旁瓣互相抵消,消去高频干扰和漏能。能够看出。汉宁窗主瓣加宽并减少。旁瓣则显著减小。从减小泄漏观点出发,汉宁窗优于矩形窗.但汉宁窗主瓣加宽,相当于分析带宽加宽。频率分辨力下降。
2. 低维度自适应颜色属性
提出一种自适应维度降低的方法,它可以存储实用信息的同一时候大大降低颜色维度的数量,从而使得速度有了显著的提升。
Adaptivecolor attributes:
文章中colorattributes把颜色分为11类,就是将RGB三种颜色细化为11种基本颜色(black,blue。brown,grey。green。orange,pink,purple,red。white。yellow)。
怎样做到adaptive(自适应)?就是实时的选择比較显著的颜色,这个选择的过程是一种类似PCA(主成分分析)中降维的思想,将11维特征降为2 维(代码里使用的就是2) 。
对于CN(color name)映射有两种规范化技术:
1.将11个颜色容器中各减去1/11,CN将变为10维子空间
2.将CN投影到10维子空间的标准正交基上。(效果更好)
l 基于颜色特征拓展CSK分类器:
目标模型由两部分组成:
学习目标外观(thelearned target appearance) && 变换的分类器參数A
1)CSK tracker 线性插值:
(并不是前面全部的帧都同一时候用于更新当前的数据)
2)文献4 MOSSE tracker:在更新方案中计算当前帧的同一时候考虑前面全部帧(本文所用的方法)
(但仅用于一维,我们须要将方法用于多维颜色特征)
更新分类器:
l 最小代价函数:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGxpbmdobGluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
l 低维自适应颜色属性:
方法:通过最小代价函数,为当前帧P找到一个适合的降维映射。
4. 实验
三个评估參数:
CLE中心位置误差:目标的预计中心位置与真实地面的平均欧氏距离;
DP距离精度:中心误差小于一个给定阈值的帧的相对数量;
OP反复精度:边界框重叠的地方超过一个阈值的百分比。
实验图见论文
1.颜色特征的评估
2.更新方案
3.低维自适应颜色属性
4.与最先进方法比較
结论:
CN和CN2得到较好的结果。CN2速度要快,本文提出的的方法较好!
总结:
本文提出使用颜色属性来进行视觉追踪。而且将CSK追踪器的学习方案扩展到多通道颜色特征,提出基于颜色属性的低维自适应扩展。终于能够得到结论:文章中提出的方法在100FPS的速度的同一时候保持最高的准确度。
解释:
Struck:Structuredoutput tracking with kernels基于内核的结构化输出跟踪
EDFT:Enhanced distribution fieldtracking using channel representations基于通道表示的增强分布场追踪
CSK:Exploiting the circulantstructure of tracking-by-detection with kernels
LSHT:Visual tracking via localitysensitive histograms基于局部敏感直方图的目标跟踪算法
有相应源代码和论文
存在的问题(慢慢的解决掉):
1' 一直没有对a里面的y进行更新的原因?(事实上和位置无关,仅仅和框的大小有关?)
2. 为什么用响应值来代表?
3. 加hann窗对数据处理的原因?难点是滤波?
4.关于A,k的更新,貌似不是一个函数更新,可是更新是在当前帧还是下一帧?
5.降维得到的投影矩阵和协方差矩阵是怎样用在CSK中的?
6.csk中假设求导来得到其最大值和最小值会不会更easy,速度更快?
本文的參考文献:
1.CSK :J.Henriques, R.Caseiro,
P. Martins, and J. Batista. Exploitingthecirculant structure oftracking-by-detection with kernels. InECCV, 2012.
2. J. van deWeijer, C.Schmid, J. J.Verbeek,
and D.Larlus. Learning color namesfor real-world applications.TIP,18(7):1512–1524,2009.
參考博客:http://blog.csdn.net/ikerpeng/article/details/40144497