CBWH学习笔记(一)

在之前的文章里,我们学习了SIFT描述法和利用SIFT进行特征点匹配的方法,在之后的这一系列文章里,我将开始学习CBWH方法,这一方法相较于SIFT,国内的资料较少,我会尽量从多个来源收集合适的研究,来更清楚的认识这一算法。

Credit:

本文中所引用的研究来自:

J. Ning, Robust mean-shift tracking with corrected background-weighted histogram, DOI: 10.1049/iet-cvi.2009.0075

王芳芳,陈华 《动态背景下的视频目标跟踪》,硕士学位论文

Kernel-Based Object Tracking, DOI: 10.1109/TPAMI.2003.1195991

成伟,柴毅 《均值漂移算法在视频目标跟踪中的应用》,硕士学位论文

什么是CBWH

CBWH是在做什么

CBWH,即修正的背景加权直方图,是一种均值漂移的图像跟踪方法。它的特点在于利用修正的背景加权直方图对背景的影响进行了弱化,从而减少了普通的均值漂移算法陷入局部最优的可能。本质上CBWH是一种均值漂移的修正,是为了弱化背景的干扰而达到更高的准确率。

CBWH的来源

2003年,在论文Kernel-Based Object Tracking中,提出了使用背景加权直方图的方案来补偿背景带来的干扰。 但是在后来的研究中证明BWH的公式有理论缺陷,即它会同等程度的削弱背景和追踪目标本身,从而无法有效降低背景的干扰。在此基础上提出了CBWH,目的是削弱背景而不影响目标。

什么是均值漂移

因为CBWH本质上也是均值漂移算法,所以,我们先来看一下什么是均值漂移算法。

常规的均值漂移算法

均值漂移算法的本质是聚类。常规的(聚类型)均值漂移算法的流程是:

  1. 获取一个起始点。起始点在聚类算法中是在未分类的点中随机选取的,因为均值漂移算法具有足够收敛性,能够找到附近的稠密区而收敛到稠密区。
  2. 以起始点为中心,做一个半径为H的球。即,找出所有距离起始点在H以内的点,记为点集S。
  3. 做一组向量集,起点是起始点,终点是S内的各点。将全部向量平均,得到向量平均值,这就是漂移向量。
  4. 将中心点沿漂移向量进行移动,并返回第2步继续执行,直到漂移向量的模长落在一个阈值内。认为此时已经达到一个稠密区。

可以看到,常规的均值漂移算法是迭代算法,通过重复执行,最终到达合适的范围。

什么是核函数

在之前的SIFT学习中,因为我们使用的是熟悉的高斯函数,所以没有特别强调核函数。但是本次因为构建的数学模型更为复杂,有必要在这里单独强调一下核函数。核函数的数学定义较为复杂,简单来说是指,如果一个函数恰好满足,\(K(x,x’)=<\varphi(x)\cdot\varphi(x’)\),即,通过低维函数的简单运算,省去了高位的非线性变换的操作。这样的函数称为核函数。也就是说,核函数本质上是和内积运算结果一样的一类函数,但是运算更简单一些。

图像追踪中的均值漂移

在图像追踪里,最终要达到的目标与聚类有一定类似,也是让中心点收敛至追踪目标的中心点。但是区别在于,聚类只考虑稠密度,所以只有一个评价函数,就是生成矢量平均值的函数;而图像追踪是为了匹配目标,所以需要引入对目标的描述,并且使用另外的评价函数,与现在迭代状态和目标状态之间的差异有关,引导追踪窗口向目标移动。同时,与我们之前处理的SIFT算法不一样,均值漂移为了减弱图像模糊带来的影响,使用颜色直方图来描述目标,因为旋转,变形和模糊对颜色直方图贡献很弱。所以均值漂移算法使用彩色而非灰度图像。

追踪目标的模型表示

背景定义

定义\(\lbrace{x_i^*}\rbrace_{i=1,…,n}\)为目标区域中的n个点。

在RGB空间中(为了与其他本次项目要使用的算法统一,这里采用RGB空间而不是其他的颜色空间表示方法),将每个子空间分成均等的k个区间或bin,那么,一共就有\(m=k^3\)种特征。

若定义q为目标的联合密度函数,那么目标可用q描述,即:

在相邻帧中,候选目标位置定义在y,表示为\(p(y)\)。那么运动目标的模型(也就是候选的模型)就是:

怎么理解呢?就是,以最简单的情况举例,假设k=2,RGB就都可以用多和少来表示。那么,假设有15%的像素落在了R多,G少,B多的区间,那么这一特征的概率\(q_u\)就是15%(为了简便起见这里假设为完全线性的正比关系,实际要复杂一些)。最终,目标的描述模型是一个概率模型,是每个特征的概率分布。匹配两个描述,就是看概率模型能不能正确匹配,相差多少。

那么,为了描述目标模型与候选目标模型的相似程度,定义相似性准则函数为:


在本文中,我们主要学习了一些CBWH算法的背景知识,和基础知识,在下一篇文章中,我们将从均值漂移算法的目标模型描述开始,继续学习CBWH算法。