在目标跟踪问题中,我们经常会遇到一些对公式的求导(特别是偏导)运算。由于公式中的变量大多数是向量,矩阵,还有些实数和复数的操作,因此针对他们的求导运算可能会和普通变量的操作有些不一样。下面将详细介绍一下经典的跟踪算法-MOSSE方法中的求导运算。
MOSSE跟踪算法的简单介绍
假设 f f 是输入的图像, 是对应的理想输出, MOSSE算法的目标就是找到一个合适的滤波器 h h ,使得其满足以下公式:
其中 ⋆ ⋆ 表示训练表示两者卷积的操作,接下来将其转化到频域可得:
H=minH∑i|Fi⊙H∗−Gi|2 H = min H ∑ i | F i ⊙ H ∗ − G i | 2
注意这里的 F F , 和 H H 都是频域中的变量,是对原输入图像 f f 做2D的傅里叶变化而得到的,有 。 ⊙ ⊙ 表示对应元素相乘, ∗ ∗ 表示共轭操作, i i 表示训练数据的个数,即这里有组训练数据 {fi,gi} { f i , g i } 。因为这里的操作都是以元素为单位进行的,不同位置的元素之间的运算都是独立的,所以上式可以写成:
Hwv=minHwv∑i|FiwvHwv∗−Giwv|2 H w v = min H w v ∑ i | F i w v H w v ∗ − G i w v | 2
其中 Hwv H w v 表示矩阵 H H 中的第行第 v v 列的元素。一般的求解方法就是,求出上面式子对于变量的偏导,进而求出最优解。由于在上面的式子中包含 H H 的共轭部分,因此需要对和 Hwv∗ H w v ∗ 分别进行求导。
求偏导过程
对 Hwv∗ H w v ∗ 求偏导: 0=∂∂Hwv∗∑i|FiwvHwv∗−Giwv|2 0 = ∂ ∂ H w v ∗ ∑ i | F i w v H w v ∗ − G i w v | 2 ,将该式展开可得:
0=∂∂Hwv∗∑i(FiwvHwv∗−Giwv)(FiwvHwv∗−Giwv)∗ 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=∂∂Hwv∗∑i[(FiwvHwv∗)(FiwvHwv∗)∗−(FiwvHwv∗)Giwv∗−Giwv(FiwvHwv∗)∗+GiwvGiwv∗] 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=∂∂Hwv∗∑iFiwvHwv∗HwvFiwv∗−FiwvHwv∗Giwv∗−GiwvFiwv∗Hwv+GiwvGiwv∗ 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=∂∂Hwv∗∑iFiwvHwv∗HwvFiwv∗−FiwvHwv∗Giwv∗−GiwvFiwv∗Hwv+GiwvGiwv∗ 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 ∗
这里面的 Fiwv F i w v , Hwv∗ H w v ∗ 等变量均为单一的数,因此可以互换位置,如下所示:
0=∂∂Hwv∗∑iFiwvFiwv∗HwvHwv∗−FiwvGiwv∗Hwv∗−Fiwv∗GiwvHwv+GiwvGiwv∗ 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=∑iFiwvFiwv∗Hwv−FiwvGiwv∗ 0 = ∑ i F i w v F i w v ∗ H w v − F i w v G i w v ∗
这样就可以计算 Hwv H w v 的值: Hwv=∑iFiwvGiwv∗∑iFiwvFiwv∗ H w v = ∑ i F i w v G i w v ∗ ∑ i F i w v F i w v ∗ ,将其转化为矩阵形式如下: H=∑iFi⊙Gi∗∑iFi⊙Fi∗ H = ∑ i F i ⊙ G i ∗ ∑ i F i ⊙ F i ∗
参数更新方式
Hi=∑iFi⊙Gi∗∑iFi⊙Fi∗ H i = ∑ i F i ⊙ G i ∗ ∑ i F i ⊙ F i ∗ ,所以有 Hi∗=∑iGi⊙Fi∗∑iFi⊙Fi∗ H i ∗ = ∑ i G i ⊙ F i ∗ ∑ i F i ⊙ F i ∗ ,令 Ai=∑iGi⊙Fi∗ A i = ∑ i G i ⊙ F i ∗ , Bi=∑iFi⊙Fi∗ B i = ∑ i F i ⊙ F i ∗ ,有 Hi∗=AiBi H i ∗ = A i B i
更新时有: Ai=ηGi⊙Fi∗+(1−η)Ai−1 A i = η G i ⊙ F i ∗ + ( 1 − η ) A i − 1 , Bi=ηFi⊙Fi∗+(1−η)Bi−1 B i = η F i ⊙ F i ∗ + ( 1 − η ) B i − 1 ,即当前帧中的滤波器 Hi∗ H i ∗ 与前一帧中的滤波器 Hi−1∗ H i − 1 ∗ 的关系为:
Hi∗=ηGi⊙Fi∗+(1−η)Ai−1ηFi⊙Fi∗+(1−η)Bi−1=ηAi+(1−η)Ai−1ηBi+(1−η)Bi−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.