【Tracking】详解MOSSE算法中的求导运算

在目标跟踪问题中,我们经常会遇到一些对公式的求导(特别是偏导)运算。由于公式中的变量大多数是向量,矩阵,还有些实数和复数的操作,因此针对他们的求导运算可能会和普通变量的操作有些不一样。下面将详细介绍一下经典的跟踪算法-MOSSE方法中的求导运算。


MOSSE跟踪算法的简单介绍

假设 f 是输入的图像, g 是对应的理想输出, MOSSE算法的目标就是找到一个合适的滤波器 h ,使得其满足以下公式:

h = min h i | f i h g i | 2

其中 表示训练表示两者卷积的操作,接下来将其转化到频域可得:

H = min H i | F i H G i | 2

注意这里的 F G H 都是频域中的变量, F 是对原输入图像 f 做2D的傅里叶变化而得到的,有 F = F ( f ) 表示对应元素相乘, 表示共轭操作, i 表示训练数据的个数,即这里有 i 组训练数据 { f i , g i } 。因为这里的操作都是以元素为单位进行的,不同位置的元素之间的运算都是独立的,所以上式可以写成:

H w v = min H w v i | F i w v H w v G i w v | 2

其中 H w v 表示矩阵 H 中的第 w 行第 v 列的元素。一般的求解方法就是,求出上面式子对于变量 H 的偏导,进而求出最优解。由于在上面的式子中包含 H 的共轭部分,因此需要对 H w v H w v 分别进行求导。

求偏导过程

H w v 求偏导: 0 = H w v i | F i w v H w v G i w v | 2 ,将该式展开可得:

0 = H w v i ( F i w v H w v G i w v ) ( F i w v H w v G i w v )

0 = H w v i [ ( F i w v H w v ) ( F i w v H w v ) ( F i w v H w v ) G i w v G i w v ( F i w v H w v ) + G i w v G i w v ]

0 = H w v i F i w v H w v H w v F i w v F i w v H w v G i w v G i w v F i w v H w v + G i w v G i w v

0 = H w v i F i w v H w v H w v F i w v F i w v H w v G i w v G i w v F i w v H w v + G i w v G i w v

这里面的 F i w v , H w v 等变量均为单一的数,因此可以互换位置,如下所示:

0 = H w v i F i w v F i w v H w v H w v F i w v G i w v H w v F i w v G i w v H w v + G i w v G i w v

0 = i F i w v F i w v H w v F i w v G i w v

这样就可以计算 H w v 的值: H w v = i F i w v G i w v i F i w v F i w v ,将其转化为矩阵形式如下: H = i F i G i i F i F i

参数更新方式

H i = i F i G i i F i F i ,所以有 H i = i G i F i i F i F i ,令 A i = i G i F i B i = i F i F i ,有 H i = A i B i

更新时有: A i = η G i F i + ( 1 η ) A i 1 B i = η F i F i + ( 1 η ) B i 1 ,即当前帧中的滤波器 H i 与前一帧中的滤波器 H i 1 的关系为:

H i = η G i F i + ( 1 η ) A i 1 η F i F i + ( 1 η ) B i 1 = η A i + ( 1 η ) A i 1 η B i + ( 1 η ) B i 1

参考文献资料

Visual object tracking using adaptive correlation filters[C]// CVPR, 2010:2544-2550.

猜你喜欢

转载自blog.csdn.net/zzj__/article/details/79800379