论文阅读2021——Motion Basis Learning for Unsupervised Deep Homography Estimation with Subspace Projection

1 介绍

基于深度学习的单应矩阵的估计,单应矩阵是个3*3的矩阵,表示两个图像之间的变换关系。传统方法是预测一个图像4个点之间的对应关系来计算单应矩阵的,但是本文作者通过预测流来计算单应矩阵的,(直接预测单应矩阵参数是不现实的)。

这个网络似乎适用于较小幅度的单应变换。In small-baseline scenarios, a homography flow can be reconstructed inside the space spanned by these flow bases by learning combinational weights.

在这里插入图片描述

网络中的LRR块叫做Low Rank Representation,低秩表示。除了这个还提出了一个FIL损失,Feature Identity Loss,特征识别Loss。主要就是表示同一个位置的像素的特征经过任何变换应该是一样的。

作者的创新点

  • 单应流的新表达。单应流可以由8个预计算好的单位单应流加权表示,而且是无监督算法。
  • 提出了一个新的LRR块,可以减少运动特征的rank,进而隐式且有效的减少运动噪声。
  • 提出了一个新的FIL损失,能够更好的训练学习。

2 算法

2.1 网络结构

网络结构如下所示,输入两个图片 I a , I b I_a,I_b Ia,Ib,经过特征提取和单应估计网络,输出8个参数。作者实际上参考光流的思想去计算单应矩阵的,先计算出8个单位单应流,然后利用这8个预测出参数与8个单位流加权求和。
在这里插入图片描述
单应流和它的基本形式。单应矩阵有8个自由度,可以利用4对对应点直接通过直接馅饼变换计算得到。每个流的维度是 H ∗ W ∗ 2 H*W*2 HW2。因为单应矩阵有8个自由度,因此单应流的空间由8个2HW的单位流构成。如下公式所示,其中问题就变为我们要如何计算出 h i h_i hi。值得注意的是这8个流是正交的。
在这里插入图片描述
这段给出正交单位流的计算方法。先定义一个单位流(我理解可能就是单位矩阵),然后对单位矩阵的每个维度进行分别调整,这样就得到8个单应矩阵,一个单应矩阵对应一个流图,因此这里就可以得到8个流图。把每个图展开成一个列向量,拼在一起,得到矩阵 M ∈ R 2 H W ∗ 2 M\in R^{2HW*2} MR2HW2,对这个进行QR分解,得到 M = Q ⋅ R M=Q\cdot R M=QR,这里的矩阵 Q ∈ R 2 H W ∗ 8 Q\in R^{2HW*8} QR2HW8是正交的,因此取出Q的每一列作为一个单位基本流 h i h_i hi,即 [ h 1 , h 2 , . . . , h 8 ] = Q [h_1,h_2,...,h_8]=Q [h1,h2,...,h8]=Q。下图是8个基本流可视化的结果,颜色表示方向,颜色强度表示梯度幅值。
在这里插入图片描述

等变warp特征提取器。最早的loss是最小化warp之后的像素差异。之后有人认为同一个块学到的特征应该是相似的,因此最小化warp特征之后对应的特征值差异。给定一个特征提取器f, W ( f ( I ) ) = f ( W ( I ) ) W(f(I))=f(W(I)) W(f(I))=f(W(I))。输入的两张图片 I a , I b I_a,I_b Ia,Ib,对应生成的特征为 F a , F b F_a,F_b Fa,Fb,因此产生了一个loss,即 L w = ∣ W ( f ( I ) ) ∣ − f ( W ( I ) ) L_w=|W(f(I))|-f(W(I)) Lw=W(f(I))f(W(I))

基于LRR块的单应估计器。这个block用于预测8个参数,后面的部分主体结构是ResNet-34,插了两个LRR块。每个输入的 M i n ∈ R H ∗ W ∗ C M_{in} \in R^{H*W*C} MinRHWC经过浅层残差网络后得到 M v ∈ R H ∗ W ∗ K M_v \in R^{H*W*K} MvRHWK,将每一维展开拼在一起,得到矩阵 V ∈ R H W ∗ K V\in R^{HW*K} VRHWK,然后与输入 M i n M_{in} Min结合,得到 M o u t = V ( V T V ) − 1 V T M i n M_{out} = V(V^TV)^{-1}V^TM_{in} Mout=V(VTV)1VTMin,再重组维度得到 M o u t ∈ R H ∗ W ∗ C M_{out}\in R^{H*W*C} MoutRHWC的输出特征图。这里的K设置为16。看了消融实验,这个LRR提升的效果还挺明显,但这个思路提出的有点突兀,不知道是参考了哪个网络想到了这个Idea。我理解可能是降秩之后特征更清晰了,更好的表达关键信息,训练效果会更好。
在这里插入图片描述

2.2 Loss函数相关

当单应流 H a b H_{ab} Hab估计出来之后,可以变换特征图 F a → F a ′ F_a\rightarrow F'_a FaFa,这样就可以构造出一个Loss。值得注意的是,Loss第一项是要求变换后对应特征值因该相似,第二项是要求两张图的特征图应该是不一样的,防止训练时候出现特征值全是0的情况。
在这里插入图片描述
然后构造出一个特征识别Loss,就是相同像素区域附近构成的特征值应该是一样的。也就是,变换特征值或变换图像再算特征值应该是等价的。
在这里插入图片描述
理论上,交换两个图片也应该是一样的。
在这里插入图片描述

3 实验结果

重合效果特别好,右下角有鬼影我猜是人是运动的原因。
在这里插入图片描述

整体最优,绝了!
在这里插入图片描述

消融实验,证明每个过程都是有用的。
在这里插入图片描述

4 总结

这个算法可以用来计算两个小变动的图像的匹配关系,主要适用于小场景变化。

后续可以尝试改进,使其应用在大场景,或相机pose的估计上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值