目标跟踪之二——《Integral Histogram:A fast way to extract histograms in cartesian spaces》阅读翻译

看英文文献太容易走神了,只好一边翻译一边阅读,嘿嘿,只当做看的过程的笔记。

文章总结

       本文主要介绍一种快速得到某点或某块区域直方图的方法,类比积分图像提出积分直方图。

      利用waveform扫描方式计算,从图像中的第一个位置点开始计算,从左往右,从上至下,当前位置bin与其前面统计过的bin相加,即得到当前位置的积分直方图,采用变统计比计算的方法,当前点的直方图等于该点加上其左上点位置的积分直方图,减去左点位置的直方图和其上面点位置的直方图。计算方法可以参考下图。个人感觉这种方法计算量是不大,但占用的资源太大了,不知能否具体应用。(下面是对文章的部分翻译)


摘要

           本文作者提出了一个新颖的方法, 在笛卡尔数据空间采用积分直方图的方法计算所有目标可能存在的位置。本文的方法有三个明显的优势:1.与传统方法相比,它计算速度更快。积分直方图方法可以实现目标穷搜索方法,穷搜索在之前的方法中是不切实际的。2.它可以扩大目标的尺寸,对bin归一化和非归一化处理,计算量并没有增大很多。3.它可以描述更丰富的直方图特征。我们利用数据在空间分布的特征,重复计算被重新安排的直方图从最初的目标到只剩下几个点。每一步我们都更新一个bin,这个bin包含之前目标邻域数据点的积分直方图。积分直方图被计算完,任何目标区域的直方图通过简单的运算就会被计算出来了。

1.简介

      直方图是一组数列,它包含bin和统计值,bin与被给数据的频率范围相对应。例如,每一个bin统计一幅图像直方图具有相同颜色像素的数量。因此,一个直方图可以映射数据值到一组非负的数据中。从概率角度来看,归一化的直方图与数据概率密度函数非常相似。可以利用直方图来回答的以下问题:数据是什么分布?这个分布的统计特征是什么,例如数据是怎么扩散的?在数据中有奇异点吗?在许多的计算机视觉中都使用了直方图的特征,目标检索[1],[2],目标分割[3],[5],目标识别[4],[6],目标跟踪[7]。

       全局搜索能够提供一个最好的结果,计算的复杂度是提取直方图和比较直方图的最大瓶颈。次优的方法像梯度下降法,它在具体应用中对其查找方法进行约束来替代传统穷搜索的方法。计算机视觉依靠这些技术来解决问题,像识别和跟踪,但它们仍然需要在直方图获取和处理方面能够有巨大的技术突破。

     为了解决目标识别计算量的需求,我们开发了一个快速的方法来计算在给定数据内所有可能目标的直方图,在笛卡尔坐标系统中我们充分利用数据点的空间位置信息,并生成一个聚合函数,我们利用积分直方图从原始点开始计算,利用扫描线的方式到只剩几个点。在当前帧我们重复计算前一帧目标周围的积分直方图,每一步我们都对当前点属于哪个bin进行统计。对每一个点都被计算到积分直方图之后,目标区域的直方图计算就更简单了,这些区域并不是由每个区域单独的直方图重建的,可以采用这些区域角点的积分直方图作为目标的直方图。在二维图像中,积分直方图变成了获取矩形区域直方图,计算四个角点积分直方图的交集就可以得到结果。

     积分直方图的方法有几个优势:第一,与传统方法相比计算速度更快。它可以用穷搜索的方法运行,在传统的方法中穷搜索是不可行的。扩展维度、直方图的bin增加、图像的大小的变化并不会增加计算量。图1中描述了直方图特征的优势。


图1 先进的特征,空间安排和分层融合组合成直方图,对于多种目标使用积分直方图计算很简单

       下一部分,我们总结之前的工作。在第三部分我们介绍积分直方图公式的细节。第四部分我们对不同的视频给予了复杂度的分析。第五部分我们总结结果并对下一步工作进行讨论。

2.之前的工作

      在矩形区域内线性时间里计算值的总和,而不用重复对每一个可能的区域进行总和计算。积分图像中的每一个元素值等于当前像素点的左面及上面所有像素的值的总和,包含当前像素值。积分图像可以计算所有的像素,每一个像素都有四个计算操作。从左上角开始,然后到右边,之后下边,积分图像在当前像素的值等于左边和上边像素的和减去左上像素积分值。积分图像被计算完之后,在矩形区域中的积分图像利用四步简单的算术操作就可以得到。由于使用都是线性算术操作,在任何矩形内的积分图像都能在线性时间内被计算完。

        传统的计算给定的直方图和所有可能出现目标的直方图进行比较的方法是穷搜索,这个操作需要生成可能位置作为中心的所有区域的直方图。这种搜索方法根据目标区域的大小需要计算不同尺寸的特征值,整个操作过程重复的次数与目标尺寸的数量一样多。在演示程序2.1中我们给予了传统方法实现的伪代码。根据我了解,传统的方法能够保证找到全局最优的直方图是搜索。


3.积分直方图公式

       积分直方图是在笛卡尔空间一个重复增值的工作方法,它能扩展到任何数据空间维度和任何张量表示,它是前面提到的累计图像公式的超集。为了对直方图比较,首先我们利用增值的方法生成一个积分直方图,然后计算交叉区域的目标的直方图。

      假设我们函数f被定义在笛卡尔空间Rd的d维中其中x=[x1;:;xd℄是空间内的一个点,函数转换到k维,例如f([x1;:;xd℄)=[y1;:;yk℄.,假设d维数据空间被限定了范围在N1;:;Nd, i.e. 0xiNi.。

3.1 Propagation

          我们定义一个积分直方图  在序列点x0;x1;:;xp第pth的点位置,例如

 

          其中Q(.)是当前点相应的bin,U是合并操作符它被定义为:的bin b的值与之前点的直方图的bin值相同时,对所有j<p.的进行相加。换句话说,是当前位置和原始点的区域直方图;。由于是空间的最后的点,所以等于所有点的直方图。因此,积分直方图可以写成如下:


 使用最初的状态,这意味着在初始时所有的bin是空的。

       有不同的遍历和增值方法,本文中介绍其中的两种。一种是字符串遍历方法,数据沿着每一个维度进行处理,例如对一个图像数据从左到右和从上到下。积分直方图在当前点可以通过复制之前值和增加与当前点相对应的bin的值。字符串遍历在每一步增值是都需要更新。如图2,d维字符串遍历在不同的维度都需要计算直方图,所以它得到的是一个多面体区域的直方图。


图2 通过字符遍历进行积分直方图增值

         也可以使用一套有效的点集来遍历点,例如波阵面(wavefront)。波阵面遍历需要更新这些点的积分直方图:左边、上边、左上已经被遍历的邻域点。一个点的积分直方图通过三个算术操作得到,每一个bin使用三个邻域的积分直方图值如图3所示。在计算之前前边的点的积分直方图值复制到当前点。无论是更新bin复制到所有剩下点的bin(总共0.5(N2-N)复制操作),还是所有之前的bins复制到当前的bins(BN操作),在硬件内存或指针表中操作都是很快的。


图3 使用波阵面进行积分直方图增值。黄色表示已经变换的点,每一步当前的积分直方图都是通过积分直方图的三个邻域得到,与当前像素点对应的bin增1.

3.2 Intersection(交叉)

        目标区域T的直方图在区域边界点可以通过波阵面繁衍积分直方图值,在笛卡尔空间,目标区域与一个封闭的多面体相对应,超平面是有界的例如。边界点xr的指数r表示在每一维由r个x-的坐标和d-r个x+坐标。对于一个固定的r存在Crd这样的组合,它是二项式系数。换句话说,对于r=0只有一个点,对于r=1由d个点等等。直方图可以被简单的获得如下:


当前点的直方图bins是由之前的三个直方图的bins交叉获得的。

在一个的灰度级图像中,我们的参数是d=2,k=1,,波阵面遍历从上左点,增值过程可以被写如下:


交集变成了

与传统的计算不同,积分直方图方法并没有重复计算每一个可能区域的直方图,伪代码如下:


4.计算复杂度分析

在操作过程中我们对计算复杂度进行了分析,对整数运算的成本进行了分析。文献中相关的操作和我们的观察结果都在表1中显示了。

由于数组索引的成本相对的数据量加大特别是对于高维数据,我们对索引操作给予了辅助。文献[8]中曾提到一个普通的索引对于一个d维的数组需要d个加法、d-1个乘法和d逻辑操作,总共花费为d+4(d-1)+1=6d-4,通过使用指针表向上查找表方法,乘法被d-1指针代替。然而,我们发现d维数组索引的计算量大约是4d+3(d-1)=7d-3.

我们加色输入数据是的维数组口味的张量。直方图是由K维每一维B个bins组成,并且bin的大小也是积分数目。目标区域的大小是M1*..*Md。大多问题也需要提取直方图在不同的模块Ss,其中s=1,..d。输入数据的类型要么是整形,要么是浮点型,这都会对计算量进行改变。下面的分析扩展到对固定的点进行操作。

4.1 整形数据
4.2 浮点数据

5.例子

5.1 1维:时间序列

对于一个普通的1维数据例如时间序列,时间序列的长度是M,直方图的bin的数量是B,目标的尺寸的范围是S个点,以上分析的参数变成d=1和k=1,我们得到比率如下:


如下图显示了1维数据计算比率结果。第一列不同的图表代表不同目标尺寸直方图计算时被分成不同数量的bins。垂直的坐标表示计算复杂度节省的数量,可见积分直方图与传统方法相比提高处理速度达到3.5*104倍。例如一个普通的任务搜索一个目标含有104个点,采用32bins直方图与传统方法相比较能快3347倍。


5.2 2维:灰度图像

      一个M1*M2的灰度图像,搜索区域的范围是S1,S2,上面分析的参数d=2,k=1,比率变成了

2维数据是非常普遍的,在视觉系统中从灰度监控视频到单铬航空影像。例如我们在3个不同的分辨率找一个64*64的目标使用16bins直方图。积分直方图寻找这些目标要快2345倍。下图我们得到了比较的结果,从图中可以看出积分直方图计算速度要快6*10(4)。


5.3 2维空间3通道:彩色图像

       彩色图像需要计算3维直方图(在一个张量形式假设每一个点有3个颜色值),特征值变成了d=2,k=3,假设我们搜索的模板尺寸是S1,S2,比率变成了


        下图我们得到了一个彩色图像(2维数据,3维直方图)的搜索运算复杂度。对一个100*100的目标模型在每一个颜色通道采用4bits(16bins)直方图,这个过程速度会加快146倍。如图表所示,根据bins的数量和目标的尺寸速度可能加快7*10(5).


5.4 3维:立体的数据

       一个三维数据的参数为d=3,k=1。高维空间搜索在特征选择和分类器的问题上它是基本的,响应的ratio如下:


        积分直方图在高位空间变得更有优势,如下图所示。减少的计算量可以达到15*10(7).对于一个10(3)*10(3)*10(3)目标,它的原始尺寸S=1使用100bins直方图,我们能够提高1.6*10(8)倍。


5.5 目标识别结果

      图5-6显示了给定的目标采用直方图特征进行识别,在交通标志识别例子中,我们搜索目标使用215bins颜色直方图。虽然这个传统的方法和积分直方图给予了非常相似的map,积分直方图方法运行时间为63msecs,然而传统的方法需要2分钟再一个3.2GhzP4.积分直方图法对于颜色和直方图密度都没有限制。在纹理识别试验中,如图6所显示的,我们使用24bins梯度方向直方图。积分直方图为了获得相似的结果需要88msecs,传统的方法需要多余5分钟。即使一个很简单的直方图也能够提供纹理分割充足的信息,因此可以用其他特征与直方图结合来定义更高级的特征,例如harr小波。

 

          在目标识别时积分直方图在具体应用时可以利用传统限制的方法对其进行限制来执行。

5.6 跟踪例子

       我们在视频序列中利用积分直方图的方法来对目标进行跟踪,目标初始化之后,我们计算在原始直方图和目标窗口中心每一个像素的直方图的相似性。使用传统的方法速度很慢,我们对跟踪目标进行比较采用梯度下降的方法例如meanshift。meanshift评价直方图的相似性(大多数选择Bhattacharya距离),在目标窗口中它使用原始的核函数。因此能够进行实时处理。图7显示了对一个目标的跟踪,meanshift每一个颜色通道使用16bins直方图,根据循环的数量平均速度是15msecs。然而meanshift拥有它自己的实时速度它仅仅在一个限定的搜索区域内进行相似性比较,这样就会导致如果目标如图中所示,目标尺寸变换较大并且在连续的视频帧中窗口没有重叠,则目标就会跟踪失败。


图7 目标运行速度快在连续帧之间没有重叠。虽然meanshift平均只有15msecs,当目标变换较大 两帧搜索框没有重叠他就会失败。积分直方图能够确定正确的位置计算速度为55msecs,并且忽略目标重叠。

          在图像中对所有的积分直方图计算相似性比较时间也是固定的,运行时间不大(55msecs),因此我们能够精确跟踪快速运动目标,即使在高采样率的视频中,高采样率会导致目标较大的重定位。

6. 讨论

         我们提供了一个新颖的计算速度快的在笛卡尔空间比较所有可能区域直方图的方法。积分直方图提供了最优的计算方法来应对搜索问题。我们使用了不同数量的bins、不同的数据维度和数据结构进行实验,结果表明积分直方图方法获得大量的直方图会较大幅度地降低计算量,因此,基于直方图比较能够大幅度的提高了搜索的速度。积分直方图能够表示目标的特征为了将来特征分类和识别,他也能很容易的扩展到高维度空。之前计算机视觉目标识别跟踪实时性是较大的瓶颈,现在积分直方图解决了这个问题。


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值