1. 论文基本信息
- 论文标题:Discriminative Correlation Filter with Channel and Spatial Reliability
- 作者:Alan Lukezic等
- 出处:CVPR,2017
- 文章链接:https://arxiv.org/abs/1611.08461
- 补充材料:https://www.semanticscholar.org/paper/Discriminative-Correlation-Filter-with-Channel-and-Luke%C5%BEi%C4%8D-Voj%C4%B1-%C5%99/7b485979c75b46d8c194868c0e70890f4a0f0ede
- 源码链接:https://github.com/alanlukezic/csr-dcf
这篇笔记主要针对滤波器求解的推导过程进行分析(拉格朗日乘子法),主要参考内容是原文的补充材料,关于论文其他部分创新点及其整体思路会在后续文章中进行分析。(笔记1的链接:http://blog.csdn.net/discoverer100/article/details/78182306)
2. 滤波器求解目标函数的构建
在多通道情况下,目标函数为
argminh∑d=1Nd(∥fd⊙hd−g∥2+λ∥hd∥2)=argminh∑d=1Nd(∥∥h^Hddiag(f^d)−g^d∥∥2+λ∥∥h^d∥∥2)(1) (1) arg min h ∑ d = 1 N d ( ‖ f d ⊙ h d − g ‖ 2 + λ ‖ h d ‖ 2 ) = arg min h ∑ d = 1 N d ( ‖ h ^ d H d i a g ( f ^ d ) − g ^ d ‖ 2 + λ ‖ h ^ d ‖ 2 )
其中,
h h 表示滤波器,
d=1toNd d = 1 t o N d 表示
Nd N d 个通道,
g g 表示期望的响应输出,
λ λ 表示正则项用于防止过拟合(关于正则项为什么可以防止过拟合可以参考: http://www.cnblogs.com/alexanderkun/p/6922428.html)
根据上述(1)式,为简化推导过程,将多通道情况改为单通道情况模式,则目标函数为
argminh∥f⊙h−g∥2+λ∥h∥2=argminh∥∥h^Hdiag(f^)−g^∥∥2+λ∥∥h^∥∥2(2) (2) arg min h ‖ f ⊙ h − g ‖ 2 + λ ‖ h ‖ 2 = arg min h ‖ h ^ H d i a g ( f ^ ) − g ^ ‖ 2 + λ ‖ h ^ ‖ 2
引入变量
hc h c 并定义约束条件
hc−hm=0(3) (3) h c − h m = 0
其中,
hm≡m⊙h h m ≡ m ⊙ h ,而
m m 表示论文中的空间置信图(spatial reliability map),也可以理解为一个mask,具体概念可以参考前面的一篇文章: http://blog.csdn.net/discoverer100/article/details/78182306,上述(3)式中引入的变量
hc h c 可以先不理会其物理意义,它的主要作用是让算法能够收敛(论文原文表述:prohibits a closed-form solution),个人猜测:这里的下标命名为c,可能就是取constrained的第一个字母。
对(2)式引入上述约束条件,并进一步调整,得到最终的目标函数
argminhc,hm∥∥h^Hcdiag(f^)−g^∥∥2+λ2∥∥h^m∥∥2s.t.hc−hm=0(4) (4) arg min h c , h m ‖ h ^ c H d i a g ( f ^ ) − g ^ ‖ 2 + λ 2 ‖ h ^ m ‖ 2 s . t . h c − h m = 0
上述的正则项前面多出了一个系数
1/2 1 / 2 ,其主要意图是求导数后系数可以变为
1 1 ,便于公式书写。
这样,公式(4)就是我们推导的起始表达式。
3. 构建Lagrange表达式
根据上述目标函数,以及Augmented Lagrangian方法(参考Distributed optimization and statistical learning via the alternating direction method of multipliers),构建Lagrang表达式,如下
L(h^c,h,I^|m)=∥∥h^Hcdiag(f^)−g^∥∥2+λ2∥hm∥2+[I^H(h^c−h^m)+I^H(h^c−h^m)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]+μ∥∥h^c−h^m∥∥2(5) (5) L ( h ^ c , h , I ^ | m ) = ‖ h ^ c H d i a g ( f ^ ) − g ^ ‖ 2 + λ 2 ‖ h m ‖ 2 + [ I ^ H ( h ^ c − h ^ m ) + I ^ H ( h ^ c − h ^ m ) ¯ ] + μ ‖ h ^ c − h ^ m ‖ 2
其中,字母
I I 表示Lagrange乘数,字母上面的横杠表示
共轭矩阵,字母右上方的
H H 表示
共轭转置矩阵,因此有规律:
A¯T=AH A ¯ T = A H (后面的推导中可能同时存在两种表示,需要留意)。将上述(5)式进行向量化表示,可得
L(h^c,h,I^|m)=∥∥h^Hcdiag(f^)−g^∥∥2+λ2∥hm∥2+[I^H(h^c−D−−√FMh)+I^H(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]+μ∥∥h^c−D−−√FMh∥∥2(6) (6) L ( h ^ c , h , I ^ | m ) = ‖ h ^ c H d i a g ( f ^ ) − g ^ ‖ 2 + λ 2 ‖ h m ‖ 2 + [ I ^ H ( h ^ c − D F M h ) + I ^ H ( h ^ c − D F M h ) ¯ ] + μ ‖ h ^ c − D F M h ‖ 2
不难看出,上述(5)式到(6)式,主要变化就是将变量
h^m h ^ m 的表达式替换为
D−−√FMh D F M h ,其中
F F 表示离散傅里叶变换矩阵,它相当于一个常量,
D D 是
F F 的大小(
F F 是一个
D×D D × D 的方阵),
M=diag(m) M = d i a g ( m )
将上述(6)式简单表述为四个项的和,为
L(h^c,h,I^)=L1+L2+L3+L4(7) (7) L ( h ^ c , h , I ^ ) = L 1 + L 2 + L 3 + L 4
其中,
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪L1=∥∥h^Hcdiag(f^)−g^∥∥2=(h^Hcdiag(f^)−g^)(h^Hcdiag(f^)−g^)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯TL2=λ2∥hm∥2L3=I^H(h^c−D−−√FMh)+I^H(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯L4=μ∥∥h^c−D−−√FMh∥∥2=μ(h^c−D−−√FMh)(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯T(8) (8) { L 1 = ‖ h ^ c H d i a g ( f ^ ) − g ^ ‖ 2 = ( h ^ c H d i a g ( f ^ ) − g ^ ) ( h ^ c H d i a g ( f ^ ) − g ^ ) ¯ T L 2 = λ 2 ‖ h m ‖ 2 L 3 = I ^ H ( h ^ c − D F M h ) + I ^ H ( h ^ c − D F M h ) ¯ L 4 = μ ‖ h ^ c − D F M h ‖ 2 = μ ( h ^ c − D F M h ) ( h ^ c − D F M h ) ¯ T
4. 开始优化,首先对h_c求偏导数
对上述公式(4)的优化可以表述为下面的迭代过程
h^optc=argminhcL(h^c,h,I^)hopt=argminhL(h^optc,h,I^)(9) (9) h ^ c o p t = arg min h c L ( h ^ c , h , I ^ ) h o p t = arg min h L ( h ^ c o p t , h , I ^ )
现在看关于变量
h^c h ^ c 的优化,需要令满足
∇h^c¯¯¯¯¯¯L≡0 ∇ h ^ c ¯ L ≡ 0 ,也就是
∇h^c¯¯¯¯¯¯L1+∇h^c¯¯¯¯¯¯L2+∇h^c¯¯¯¯¯¯L3+∇h^c¯¯¯¯¯¯L4≡0(10) (10) ∇ h ^ c ¯ L 1 + ∇ h ^ c ¯ L 2 + ∇ h ^ c ¯ L 3 + ∇ h ^ c ¯ L 4 ≡ 0
对各个分量求偏导数,有
∇h^c¯¯¯¯¯¯L1=∂∂h^c¯¯¯¯¯[(h^Hcdiag(f^)−g^)(h^Hcdiag(f^)−g^)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯T]=∂∂h^c¯¯¯¯¯[h^Hcdiag(f^)diag(f^)Hh^c−h^Hcdiag(f^)g^H−g^diag(f^)Hh^c+g^g^H]=diag(f^)diag(f^)Hh^c−diag(f^)g^H−0+0=diag(f^)diag(f^)Hh^c−diag(f^)g^H(11) (11) ∇ h ^ c ¯ L 1 = ∂ ∂ h ^ c ¯ [ ( h ^ c H d i a g ( f ^ ) − g ^ ) ( h ^ c H d i a g ( f ^ ) − g ^ ) ¯ T ] = ∂ ∂ h ^ c ¯ [ h ^ c H d i a g ( f ^ ) d i a g ( f ^ ) H h ^ c − h ^ c H d i a g ( f ^ ) g ^ H − g ^ d i a g ( f ^ ) H h ^ c + g ^ g ^ H ] = d i a g ( f ^ ) d i a g ( f ^ ) H h ^ c − d i a g ( f ^ ) g ^ H − 0 + 0 = d i a g ( f ^ ) d i a g ( f ^ ) H h ^ c − d i a g ( f ^ ) g ^ H
∇h^c¯¯¯¯¯¯L2=∇h^c¯¯¯¯¯¯[λ2∥hm∥2]=0(12) (12) ∇ h ^ c ¯ L 2 = ∇ h ^ c ¯ [ λ 2 ‖ h m ‖ 2 ] = 0
∇h^c¯¯¯¯¯¯L3=∂∂h^c¯¯¯¯¯[I^H(h^c−D−−√FMh)+I^H(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]=∂∂h^c¯¯¯¯¯[I^Hh^c−I^HD−−√FMh+I^Th^c¯¯¯¯¯−I^TD−−√FMh¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]=0−0+I^T−0=I^(13) (13) ∇ h ^ c ¯ L 3 = ∂ ∂ h ^ c ¯ [ I ^ H ( h ^ c − D F M h ) + I ^ H ( h ^ c − D F M h ) ¯ ] = ∂ ∂ h ^ c ¯ [ I ^ H h ^ c − I ^ H D F M h + I ^ T h ^ c ¯ − I ^ T D F M h ¯ ] = 0 − 0 + I ^ T − 0 = I ^
∇h^c¯¯¯¯¯¯L4=∂∂h^c¯¯¯¯¯[μ(h^c−D−−√FMh)(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯T]=∂∂h^c¯¯¯¯¯[μ(h^c⋅h^Hc−h^c⋅D−−√hHMFH−D−−√FMhh^Hc+D−−√FMh⋅D−−√hHMFH)]=∂∂h^c¯¯¯¯¯[μ(h^c⋅h^Hc−h^c⋅D−−√hHMFH−D−−√FMhh^Hc+DFMhhHMFH)]=μ(h^c−0−D−−√FMh+0)=μh^c−μD−−√FMh(14) (14) ∇ h ^ c ¯ L 4 = ∂ ∂ h ^ c ¯ [ μ ( h ^ c − D F M h ) ( h ^ c − D F M h ) ¯ T ] = ∂ ∂ h ^ c ¯ [ μ ( h ^ c ⋅ h ^ c H − h ^ c ⋅ D h H M F H − D F M h h ^ c H + D F M h ⋅ D h H M F H ) ] = ∂ ∂ h ^ c ¯ [ μ ( h ^ c ⋅ h ^ c H − h ^ c ⋅ D h H M F H − D F M h h ^ c H + D F M h h H M F H ) ] = μ ( h ^ c − 0 − D F M h + 0 ) = μ h ^ c − μ D F M h
于是,上述公式(10)可以写成
diag(f^)diag(f^)Hh^c−diag(f^)g^H+0+I^+μ(h^c−0−D−−√FMh+0)≡0diag(f^)diag(f^)Hh^c−diag(f^)g^H+I^+μ(h^c−0−D−−√FMh+0)≡0(15) (15) d i a g ( f ^ ) d i a g ( f ^ ) H h ^ c − d i a g ( f ^ ) g ^ H + 0 + I ^ + μ ( h ^ c − 0 − D F M h + 0 ) ≡ 0 d i a g ( f ^ ) d i a g ( f ^ ) H h ^ c − d i a g ( f ^ ) g ^ H + I ^ + μ ( h ^ c − 0 − D F M h + 0 ) ≡ 0
回顾公式(6),我们曾将变量
h^m h ^ m 的表达式替换为
D−−√FMh D F M h ,现在我们将它替换回来,得
diag(f^)diag(f^)Hh^c−diag(f^)g^H+I^+μ(h^c−0−h^m+0)≡0(16) (16) d i a g ( f ^ ) d i a g ( f ^ ) H h ^ c − d i a g ( f ^ ) g ^ H + I ^ + μ ( h ^ c − 0 − h ^ m + 0 ) ≡ 0
针对
h^c h ^ c 合并同类项,得
h^c⋅[diag(f^)diag(f^)H+μ]=μh^m+diag(f^)g^H−I^(17) (17) h ^ c ⋅ [ d i a g ( f ^ ) d i a g ( f ^ ) H + μ ] = μ h ^ m + d i a g ( f ^ ) g ^ H − I ^
于是,
h^c=diag(f^)g^H+μh^m−I^diag(f^)diag(f^)H+μ(18) (18) h ^ c = d i a g ( f ^ ) g ^ H + μ h ^ m − I ^ d i a g ( f ^ ) d i a g ( f ^ ) H + μ
根据对角矩阵的乘法性质以及相关滤波基础概念,我们可以将上述(18)式的表达进行简化,得
h^c=f^⊙g^∗+μh^m−I^f^⊙f^∗+μ(19) (19) h ^ c = f ^ ⊙ g ^ ∗ + μ h ^ m − I ^ f ^ ⊙ f ^ ∗ + μ
由于右上角得星号表示共轭矩阵,为与作者原文表述一致,也可用顶部的横杠表示,有
h^c=f^⊙g^¯¯¯+μh^m−I^f