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

4 篇文章 0 订阅
1 篇文章 0 订阅

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


MOSSE跟踪算法的简单介绍

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

h=minhi|fihgi|2

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

H=minHi|FiHGi|2 H = min H ⁡ ∑ i | F i ⊙ H ∗ − G i | 2

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

Hwv=minHwvi|FiwvHwvGiwv|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 中的第w行第 v v 列的元素。一般的求解方法就是,求出上面式子对于变量H的偏导,进而求出最优解。由于在上面的式子中包含 H H 的共轭部分,因此需要对Hwv Hwv H w v ∗ 分别进行求导。

求偏导过程

Hwv H w v ∗ 求偏导: 0=Hwvi|FiwvHwvGiwv|2 0 = ∂ ∂ H w v ∗ ∑ i | F i w v H w v ∗ − G i w v | 2 ,将该式展开可得:

0=Hwvi(FiwvHwvGiwv)(FiwvHwvGiwv) 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=Hwvi[(FiwvHwv)(FiwvHwv)(FiwvHwv)GiwvGiwv(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=HwviFiwvHwvHwvFiwvFiwvHwvGiwvGiwvFiwvHwv+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=HwviFiwvHwvHwvFiwvFiwvHwvGiwvGiwvFiwvHwv+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=HwviFiwvFiwvHwvHwvFiwvGiwvHwvFiwvGiwvHwv+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=iFiwvFiwvHwvFiwvGiwv 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=iFiwvGiwviFiwvFiwv H w v = ∑ i F i w v G i w v ∗ ∑ i F i w v F i w v ∗ ,将其转化为矩阵形式如下: H=iFiGiiFiFi H = ∑ i F i ⊙ G i ∗ ∑ i F i ⊙ F i ∗

参数更新方式

Hi=iFiGiiFiFi H i = ∑ i F i ⊙ G i ∗ ∑ i F i ⊙ F i ∗ ,所以有 Hi=iGiFiiFiFi H i ∗ = ∑ i G i ⊙ F i ∗ ∑ i F i ⊙ F i ∗ ,令 Ai=iGiFi A i = ∑ i G i ⊙ F i ∗ Bi=iFiFi B i = ∑ i F i ⊙ F i ∗ ,有 Hi=AiBi H i ∗ = A i B i

更新时有: Ai=ηGiFi+(1η)Ai1 A i = η G i ⊙ F i ∗ + ( 1 − η ) A i − 1 Bi=ηFiFi+(1η)Bi1 B i = η F i ⊙ F i ∗ + ( 1 − η ) B i − 1 ,即当前帧中的滤波器 Hi H i ∗ 与前一帧中的滤波器 Hi1 H i − 1 ∗ 的关系为:

Hi=ηGiFi+(1η)Ai1ηFiFi+(1η)Bi1=ηAi+(1η)Ai1ηBi+(1η)Bi1 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.

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当涉及到目标跟踪算法时,常见的算法包括 CSRT、KCF 和 MOSSE。它们都可以实现实时目标跟踪,但是它们的实现原理和特点略有不同。 1. CSRT(Channel and Spatial Reliability Tracking):CSRT 算法是一种基于通道和空间可靠性的目标跟踪算法。它在准确性和速度方面都有很好的表现。CSRT 算法的实现过程,除了特征提取和可靠性估计外,还涉及到空间约束和跟踪模型等方面。与其他跟踪算法相比,CSRT 算法具有更高的准确性和鲁棒性,但是计算复杂度较高。 2. KCF(Kernelized Correlation Filter):KCF 算法是一种基于相关滤波器的目标跟踪算法。它通过使用核函数将目标的特征空间映射到高维空间,从而提高了跟踪器的准确性。KCF 算法的实现过程,主要涉及到特征提取、相关滤波器和跟踪模型等方面。与其他跟踪算法相比,KCF 算法具有更快的计算速度和较好的跟踪效果。 3. MOSSE(Minimum Output Sum of Squared Error):MOSSE 算法是一种基于最小输出平方误差的目标跟踪算法。它通过使用最小化输出平方误差的方法进行优化,从而提高了跟踪器的准确性。MOSSE 算法的实现过程,主要涉及到特征提取和相关滤波器等方面。与其他跟踪算法相比,MOSSE 算法具有更快的计算速度和较好的跟踪效果。 需要注意的是,以上算法的具体实现细节可能会略有不同,具体的选择需要根据应用场景和需要进行评估和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值