SRDCF公式推导

2024-08-31 12:18
文章标签 公式 推导 srdcf

本文主要是介绍SRDCF公式推导,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 标准DCF

  • 滤波器 f f f与样本 x x x的输出响应可 (1) S f ( x ) = ∑ l = 1 d x l ∗ f l S_f(x)=\sum_{l=1}^{d}{x^l}*{f^l}\tag{1} Sf(x)=l=1dxlfl(1) 1.*表示循环卷积
    2. l ∈ { 1 , . . . , d } l \in \lbrace1,...,d\rbrace l{1,...,d} d d d表示样本 x x x的特征维数
    3. x k l x_k^l xkl表示样本 x k x_k xk的第 l l l 维特征
    4.每个样本每个特征通道 x l x^l xl和每个通道对应的滤波器 f l f^l fl大小均为为 M M Mx N N N
  • L 2 L^2 L2误差可表示为: (2) ε t ( f ) = ∑ k = 1 t α k ∣ ∣ S f ( x k ) − y k ∣ ∣ 2 + λ ∑ l = 1 d ∣ ∣ f l ∣ ∣ 2 \varepsilon_t(f)=\sum_{k=1}^t\alpha_k||S_f(x_k)-y_k||^2+\lambda\sum_{l=1}^d||f^l||^2\tag{2} εt(f)=k=1tαkSf(xk)yk2+λl=1dfl2(2) 1. α k ≥ 0 \alpha _k \ge 0 αk0 决定每个训练样本的影响(权重衰减因子,于学习率有类似作用)
    2. λ ≥ 0 \lambda\ge 0 λ0 是正则化项的权重
    3.训练样本表示为 { ( x k , y k ) } k = 1 t \lbrace(x_k,y_k)\rbrace_{k=1}^t {(xk,yk)}k=1t t t t表示历史样本数
  • 快速检测表示为: (3) S f ( z ) = F − 1 { ∑ l = 1 d z ^ l ⋅ f ^ l } S_f(z)=\mathcal F^{-1}\lbrace\sum_{l=1}^d\widehat z^l \cdot {\widehat f^l}\rbrace \tag{3} Sf(z)=F1{l=1dz lf l}(3) 1. z z z表示目标区域提取的特征图
    2. f ^ l = F { f l } \widehat f^l=\mathcal F\lbrace {f^l}\rbrace f l=F{fl}表示滤波器的傅里叶变换

2 SRDCF

2.1 空间正则化
  • 抑制边界区域的影响,给滤波器加上一个相同大小 ( M (M (Mx N ) N) N)的正则项 w w w,则式(2)可表示为: (4) ε t ( f ) = ∑ k = 1 t α k ∣ ∣ S f ( x k ) − y k ∣ ∣ 2 + ∑ l = 1 d ∣ ∣ w ⋅ f l ∣ ∣ 2 \varepsilon_t(f)=\sum_{k=1}^t\alpha_k||S_f(x_k)-y_k||^2+\sum_{l=1}^d||w\cdot f^l||^2\tag{4} εt(f)=k=1tαkSf(xk)yk2+l=1dwfl2(4) 1. w w w 为空间正则化项,离目标区域越远越大,表示处罚越大(如:倒置的高斯分布)
    2.当 w ( m , n ) = λ w(m,n)=\sqrt \lambda w(m,n)=λ 时,则变为标准DCF
    3. w ^ \widehat w w 具有稀疏特性(后面推导有用到这一性质)
    4. w ⋅ f l w\cdot f^l wfl 表明正则项 w w w 和滤波器 f f f 是进行点乘运算的

  • 正则项 w w w 可视化如下图所示

  • 加速计算,基于帕斯瓦尔定理,将 ( 4 ) (4) (4)式转换到频率为: (5) ε t ( f ^ ) = ∑ k = 1 t α k ∣ ∣ ∑ l = 1 d x ^ k l ⋅ f ^ l − y ^ k ∣ ∣ 2 + ∑ l = 1 d ∣ ∣ w ^ M N ∗ f ^ l ∣ ∣ 2 \varepsilon_t(\widehat f)=\sum_{k=1}^t\alpha_k||\sum_{l=1}^d\widehat x_k ^l \cdot {\widehat f ^ l}-\widehat y_k||^2+\sum_{l=1}^d||\frac {\widehat w}{MN}\ast \widehat f^l||^2\tag{5} εt(f )=k=1tαkl=1dx klf ly k2+l=1dMNw f l2(5) 1.时域的点乘 w ⋅ f l w\cdot f^l wfl 转换到频率变为卷积 w ^ ∗ f ^ l \widehat w \ast \widehat f^l w f l
    2. w ⋅ f l ⟺ w ^ M N ∗ f ^ l w\cdot f^l \Longleftrightarrow\frac {\widehat w}{MN}\ast \widehat f^l wflMNw f l M N MN MN 相当于周期

  • 方便实际计算,将 ( 5 ) (5) (5)式全部向量化为: (6) ε t ( f ^ ) = ∑ k = 1 t α k ∣ ∣ ∑ l = 1 d D ( x ^ k l ) f ^ l − y ^ k ∣ ∣ 2 + ∑ l = 1 d ∣ ∣ C ( w ^ ) M N f ^ l ∣ ∣ 2 \varepsilon_t(\widehat f)=\sum_{k=1}^t\alpha_k||\sum_{l=1}^d\mathcal D(\widehat \boldsymbol x_k ^l){\widehat \boldsymbol f ^ l}-\widehat \boldsymbol y_k||^2+\sum_{l=1}^d||\frac {\mathcal C(\widehat \boldsymbol w)}{MN}\widehat \boldsymbol f^l||^2\tag{6} εt(f )=k=1tαkl=1dD(x kl)f ly k2+l=1dMNC(w )f l2(6) 1. D ( v ) \mathcal D(\boldsymbol v) D(v) 表示对角线上元素为 v \boldsymbol v v 的对角阵, 大小为 M N × M N MN \times MN MN×MN
    2. C ( w ^ ) \mathcal C(\widehat \boldsymbol w) C(w ) 表示从 w ^ \widehat \boldsymbol w w 得到的循环矩阵, w ^ \widehat \boldsymbol w w 大小为 M N × 1 MN\times1 MN×1 C ( w ^ ) \mathcal C(\widehat \boldsymbol w) C(w ) 大小为 M N × M N MN \times MN MN×MN
    3. f ^ l \widehat \boldsymbol f^l f l y ^ k \widehat \boldsymbol y_k y k 的大小为 M N × 1 MN \times 1 MN×1
    4. C ( w ^ ) f ^ l \mathcal C(\widehat \boldsymbol w) \widehat \boldsymbol f^l C(w )f l w ^ ∗ f ^ l \widehat \boldsymbol w \ast \widehat \boldsymbol f^l w f l的向量化(通过循环操作可以去掉卷积符号,因为卷积的本质就是移位相乘相加)

  • 为将所有变量转到实域来求解,作者构造了一个大小为 M N × M N MN \times MN MN×MN 的转换矩阵 B B B(具体构造见论文中式 ( 7 ) (7) (7)),如实数向量 f ~ l = B f ^ l \widetilde \boldsymbol f^l=B\widehat \boldsymbol f^l f l=Bf l ,对 ( 6 ) (6) (6)式全部左乘 B B B 可得: (7) ε t ( f ^ ) = ∑ k = 1 t α k ∣ ∣ ∑ l = 1 d B D ( x ^ k l ) f ^ l − B y ^ k ∣ ∣ 2 + ∑ l = 1 d ∣ ∣ B C ( w ^ ) M N f ^ l ∣ ∣ 2 = ∑ k = 1 t α k ∣ ∣ ∑ l = 1 d B D ( x ^ k l ) B H B f ^ l − B y ^ k ∣ ∣ 2 + ∑ l = 1 d ∣ ∣ B C ( w ^ ) B H M N B f ^ l ∣ ∣ 2 = ∑ k = 1 t α k ∣ ∣ ∑ l = 1 d D k l f ~ l − y ~ k ∣ ∣ 2 + ∑ l = 1 d ∣ ∣ C f ~ l ∣ ∣ 2 \begin{aligned} \varepsilon_t(\widehat f)&=\sum_{k=1}^t\alpha_k||\sum_{l=1}^d B\mathcal D(\widehat \boldsymbol x_k ^l){\widehat \boldsymbol f ^ l}-B\widehat \boldsymbol y_k||^2+\sum_{l=1}^d||\frac {B\mathcal C(\widehat \boldsymbol w)}{MN}\widehat \boldsymbol f^l||^2\\ &=\sum_{k=1}^t\alpha_k||\sum_{l=1}^d B\mathcal D(\widehat \boldsymbol x_k ^l)B^HB{\widehat \boldsymbol f ^ l}-B\widehat \boldsymbol y_k||^2+\sum_{l=1}^d||\frac {B\mathcal C(\widehat \boldsymbol w)B^H}{MN}B\widehat \boldsymbol f^l||^2\\ &=\sum_{k=1}^t\alpha_k||\sum_{l=1}^d D_k ^l{\widetilde \boldsymbol f ^ l}-\widetilde \boldsymbol y_k||^2+\sum_{l=1}^d||C\widetilde \boldsymbol f^l||^2\\ \end{aligned}\tag{7} εt(f )=k=1tαkl=1dBD(x kl)f lBy k2+l=1dMNBC(w )f l2=k=1tαkl=1dBD(x kl)BHBf lBy k2+l=1dMNBC(w )BHBf l2=k=1tαkl=1dDklf ly k2+l=1dCf l2(7) 1. B B B 是稀疏的酉矩阵,满足 B H B = I B^HB=I BHB=I
    2. B D ( x ^ k l ) B H ⟺ D k l B\mathcal D(\widehat \boldsymbol x_k ^l)B^H \Longleftrightarrow D_k ^l BD(x kl)BHDkl
    3. B f ^ l ⟺ f ~ l B\widehat \boldsymbol f^l \Longleftrightarrow \widetilde \boldsymbol f^l Bf lf l
    4. B y ^ k ⟺ y ~ k B\widehat \boldsymbol y_k \Longleftrightarrow \widetilde \boldsymbol y_k By ky k
    5. B C ( w ^ ) B H M N ⟺ C \frac {B\mathcal C(\widehat \boldsymbol w)B^H}{MN} \Longleftrightarrow C MNBC(w )BHC

  • ( 7 ) (7) (7) 式进一步简化可得: (8) ε t ( f ~ ) = ∑ k = 1 t α k ∣ ∣ D k f ~ − y ~ k ∣ ∣ 2 + ∣ ∣ W f ~ ∣ ∣ 2 \varepsilon_t(\widetilde \boldsymbol f)=\sum_{k=1}^t\alpha_k||D_k{\widetilde \boldsymbol f}-\widetilde \boldsymbol y_k||^2+||W\widetilde \boldsymbol f||^2\tag{8} εt(f )=k=1tαkDkf y k2+Wf 2(8) 1. D k = ( D k 1 ⋅ ⋅ ⋅ D k d ) D_k=(D_k^1 \cdot \cdot \cdot D_k^d) Dk=(Dk1Dkd),大小为 M N × d M N MN\times dMN MN×dMN
    2. f ~ = ( ( f ~ 1 ) T ⋅ ⋅ ⋅ ( f ~ d ) T ) T \widetilde \boldsymbol f=((\widetilde \boldsymbol f^1)^T\cdot \cdot \cdot (\widetilde \boldsymbol f^d)^T)^T f =((f 1)T(f d)T)T,大小为 d M N × 1 dMN\times 1 dMN×1
    3. W W W 的大小为 d M N × d M N dMN\times dMN dMN×dMN 对角块矩阵,每个对角块等于 C C C

  • ( 8 ) (8) (8) 式与岭回归求解类似,求解得 A t f ~ = b ~ t A_t\widetilde \boldsymbol f=\widetilde \boldsymbol b_t Atf =b t(具体求解参考KCF算法推导中的岭回归求解)其中: (9) A t = ∑ k = 1 t α k D k T D k + W T W b ~ t = ∑ k = 1 t α k D k T y ~ k \begin{aligned} &A_t=\sum_{k=1}^t\alpha_kD_k^TD_k+W^TW\\ &\widetilde \boldsymbol b_t=\sum_{k=1}^t\alpha_kD_k^T\widetilde \boldsymbol y_k \tag{9} \end{aligned} At=k=1tαkDkTDk+WTWb t=k=1tαkDkTy k(9)

2.2 优化
  • 由于正则化项 W T W W^TW WTW,破坏了标准DCF的对角块结构。直接对上式求解(需要求逆)非常耗时,作者利用 A t A_t At的稀疏性(较少的迭代次数内到达一个收敛值)等性质,采用Gauss-Seidel方法迭代求解得到 f ~ \widetilde \boldsymbol f f
  • 参考Gauss–Seidel迭代, A t A_t At 可分解成下三角矩阵 L t L_t Lt 和严格上三角矩阵 U t U_t Ut(不包括对角线),即 A t = L t + U t A_t=L_t+U_t At=Lt+Ut。则 A t f ~ = b ~ t A_t\widetilde \boldsymbol f=\widetilde \boldsymbol b_t Atf =b t可变形为: (10) L t f ~ = b ~ t − U t f ~ L_t \widetilde \boldsymbol f=\widetilde \boldsymbol b_t-U_t\widetilde \boldsymbol f\tag{10} Ltf =b tUtf (10)
  • 迭代公式如下式: (11) L t f ~ ( j ) = b ~ t − U t f ~ ( j − 1 ) L_t \widetilde \boldsymbol f^{(j)}=\widetilde \boldsymbol b_t-U_t\widetilde \boldsymbol f^{(j-1)}\tag{11} Ltf (j)=b tUtf (j1)(11)
2.3 训练
  • A t A_t At b ~ t \widetilde \boldsymbol b_t b t 更新方式: (12) A t = ( 1 − γ ) A t − 1 + γ ( D t T D t + W T W ) b ~ t = ( 1 − γ ) b ~ t − 1 + γ D t T y ~ t \begin{aligned} &A_t=(1-\gamma)A_{t-1}+\gamma(D_t^TD_t+W^TW)\\ &\widetilde \boldsymbol b_t=(1-\gamma)\widetilde \boldsymbol b_{t-1}+\gamma D_t^T \widetilde \boldsymbol y_t \tag{12} \end{aligned} At=(1γ)At1+γ(DtTDt+WTW)b t=(1γ)b t1+γDtTy t(12) 1. γ ≥ 0 \gamma \ge 0 γ0 表示学习率
    2.第1帧: A 1 = D 1 T D 1 + W T W A_1=D_1^TD_1+W^TW A1=D1TD1+WTW b ~ t = D 1 T y ~ 1 \widetilde \boldsymbol b_t=D_1^T \widetilde \boldsymbol y_1 b t=D1Ty 1 作为初始值
    3.正则化项 W T W W^TW WTW 可在整个跟踪过程中预先计算好
    4.采用上式这种momentum更新方式由于不需要存储所有样本 x k x_k xk,可有效节省内存
    5.采用固定的迭代次数 N G S N_{GS} NGS
    6.上述更新方式与指数衰减权重 α k \alpha _k αk 效果类似
    7.第 t t t 帧的初始值 f ~ t ( 0 ) = f ~ t − 1 ( N G S ) \widetilde \boldsymbol f_t^{(0)}=\widetilde \boldsymbol f_{t-1}^{(N_{GS})} f t(0)=f t1(NGS)
  • 对于第1帧的初始值 f ~ 1 ( 0 ) \widetilde \boldsymbol f_1^{(0)} f 1(0) 通过求解 M N × M N MN \times MN MN×MN线性方程得到: (13) ( ∑ p = 1 d ( D 1 P ) T D 1 P + d C T C ) f ~ 1 l , ( 0 ) = ( D 1 l ) T y ~ 1 ( l = 1 , . . . , d ) (\sum_{p=1}^d(D_1^P)^TD_1^P+dC^TC)\widetilde \boldsymbol f_1^{l,(0)}=(D_1^l)^T\widetilde \boldsymbol y_1(l = 1,...,d)\tag{13} (p=1d(D1P)TD1P+dCTC)f 1l,(0)=(D1l)Ty 1l=1,...,d(13)
2.4 检测—Fast Sub-grid Detection
  • ( 3 ) (3) (3)式来粗略估计所有网格位置的得分 s ( m , n ) s(m,n) s(m,n) ( m , n m,n m,n并不是以像素为单位的,如一般HOG特征提取 cell=4 pixels)
  • 将最大得分位置 ( u ( 0 ) , v ( 0 ) ) (u^{(0)},v^{(0)}) (u(0),v(0)) 作为初始估计
  • 连续位置 ( u , v ) (u,v) (u,v)的得分 s ( u , v ) s(u, v) s(u,v)按下式插值,用牛顿法进行迭代,使下式最小 (14) s ( u , v ) = 1 M N ∑ m = 0 M − 1 ∑ n = 0 N − 1 s ^ ( m , n ) e i 2 π ( m M u + n N v ) s(u,v)=\frac{1}{MN}\sum_{m=0}^{M-1}\sum_{n=0}^{N-1}\widehat s(m,n)e^{i2\pi(\frac{m}{M}u+\frac{n}{N}v)}\tag{14} s(u,v)=MN1m=0M1n=0N1s (m,n)ei2π(Mmu+Nnv)(14) 1. i i i表示虚部
    2.连续位置 ( u , v ) ∈ [ 0 , M ) × [ 0 , N ) (u,v)\in[0,M)\times[0,N) (u,v)[0,M)×[0,N)通过DFT系数的三角多项式插值得到(不太明白!!!)
  • 每次迭代的梯度和Hessian通过分析 ( 14 ) (14) (14)式的微分得到,发现只要几次迭代就可以收敛
  • 对于每个尺度单独进行迭代,使用最大的检测得分来更新目标的位置和尺度
2.5 实验
  • 正则项 w w w 用二次函数来构造: w ( m , n ) = μ + η ( m / P ) 2 + η ( n / Q ) 2 w(m,n)=\mu+\eta(m/P)^2+\eta(n/Q)^2 w(m,n)=μ+η(m/P)2+η(n/Q)2 1. P × Q P\times Q P×Q 表示目标尺寸
    2. w w w 的最小值 μ = 0.1 \mu=0.1 μ=0.1
    3.正则化影响因子 η = 3 \eta=3 η=3
    4.实际上频域下的 w w w 只有几个值有较大的幅值,如下图所示。为保证 w ^ \widehat w w 的稀疏特性,设置阈值来移除较小的值,结果包含约10个非零值。

    5.HOG特征,cell大小为 4 × 4 4\times 4 4×4,特征大小为 M × N ( M = N ) M \times N(M=N) M×N(M=N)
    6.样本区域是目标区域的 4 2 4^2 42
    7.初始尺度的样本 M = 50 M=50 M=50
    8.学习率 γ = 0.025 \gamma=0.025 γ=0.025,Gauss-Seidel迭代次数 N G S = 4 N_{GS}=4 NGS=4
    9.在普通台式机matlab环境下5FPS

这篇关于SRDCF公式推导的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123884

相关文章

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

二维旋转公式

二维旋转公式 ros的tf工具包可以很方便的实现任意坐标系之间的坐标转换。但是,如果只是想简单的测试想法,而又不想编写过于庞杂的代码,考虑自己写二维旋转的函数。而与二维旋转问题对偶的另一个问题便是二维坐标系旋转变换。这两个问题的形式基本一样,只是旋转的角度相差一个负号。就是这个容易搞混,所以做个笔记,以备查用。 1. 二维旋转公式(算法) 而(此文只针对二维)旋转则是表示某一坐标点 ( x

word转PDF后mathtype公式乱码以及图片分辨率降低等一系列问题|完美解决

word转PDF后mathtype公式乱码以及图片分辨率降低等一系列问题|完美解决 问题描述 最近在投一篇期刊论文,直接提交word文档,当时没有查看提交预览,一审审稿意见全是:公式乱码、公式乱码、乱码啊!!!是我大意了,第二次提交,我就决定将word文档转成PDF后再提交,避免再次出现公式乱码的问题。接着问题又来了,我利用‘文件/导出’或‘文件/另存为’的方式将word转成PDF后,发现公式

不同饭局,如何说开场白才能打开氛围?教你一个万能公式

在人情社会中,饭局不仅是吃饱饭的场合,更是人际交往、情感交流的重要平台。无论是家庭聚会、商务宴请、朋友相聚还是同事联谊,一个恰当的开场白都能迅速打破沉默,营造温馨和谐的氛围。 针对现实生活中最常见的四种饭局,酱酒亮哥教你一个万能开场白公式,这个公式分为四步,当然,不是一步不落的照搬,需要灵活应用,挑其中的两步、三步就行了,只要打开氛围,我们的目的也就达到了。接下来我们一起学习一下,希望你在不同的

【无线通信发展史⑧】测量地球质量?重力加速度g的测量?如何推导单摆周期公式?地球半径R是怎么测量出来的?

前言:用这几个问答形式来解读下我这个系列的来龙去脉。如果大家觉得本篇文章不水的话希望帮忙点赞收藏加关注,你们的鼓舞是我继续更新的动力。 我为什么会写这个系列呢? 首先肯定是因为我本身就是一名从业通信者,想着更加了解自己专业的知识,所以更想着从头开始了解通信的来源以及在每一个时代的发展进程。 为什么会从头开始写通信? 我最早是学习了中华上下五千年,应该说朝代史,这个算个人兴趣,从夏

UVA10071(重温高中物理公式)

Back to High School Physics Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18809 Description A parti

CF #278 (Div. 2) B.(暴力枚举+推导公式+数学构造)

B. Candy Boxes time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output 题目链接: http://codeforces.com/contest/488/problem/B There

HLJUOJ1127 HDU2049(错排公式+排列组合)

1127: 递推求解专题练习二 Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 20   Solved: 8 [ Submit][ Status][ Web Board] Description 在电影院看电影时,总会有观众坐错座位号的情况。现在正在首播的青春爱情喜剧悬疑科幻大片《来治猩猩的你》观影现场爆满(满席)。 那么问题来了

HDU2524(规律推导)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2524 解题思路: 暴力推出矩阵,以n = 2 , m = 4为例: 1 3  6  10 3 9 18 30 可以发现第一行和第一列都是有规律的,彼此相差2、3、4·····,其他元素为相应行第一个元素乘以第一列元素的积。预处理之后,我们O(1)就可以输出g[n][m]的值。 另外,