第二十四周学习笔记
论文阅读《SuperPoint: Self-Supervised Interest Point Detection and Description》
文章解决了什么问题
自监督关键点检测和特征描述子生成
用了什么方法
自监督训练方法
使用全卷积神经网络架构,一个共享的encoder对图片进行编码,两个decoder分别检测关键点和生成描述子
效果如何
- large boost in repeatability
- outperforms classical detectors under illumination changes
- on par with classical detectors under viewpoint changes
- Homography Estimation
- outperform LIFT and ORB
- perform comparably to SIFT
- outperform LIFT in almost all metrics quantitatively
- scores strongly in descriptor-focused metrics such as NN mAP and M.score, which means learned representations for descriptor matching outperform hand-tuned representations.
存在什么不足
Future Work
- 为何Homographic Adaption可以提高模型的表现
- 关键点检测和特征描述生成是如何相辅相成的
过程
整个过程如图所示
构建合成数据集
- 构建如图的合成数据集,合成形状是由简单的2D图形(四边形、三角形、线、椭圆)组成的,定义的关键点位置为Y结、L结、T结、小椭圆的中心和线段分割处,注意这样给出的关键点实际是真实关键点的子集,但是模型最终的效果依然很好
- 对上一步结果进行Homographic wrap来进行数据增强
训练MagicPoint
在合成数据集上训练MagicPoint,验证其效果优于一些经典算法
MagicPoint + Homographic Adaption生成pseudo ground truth
这一步使用训练好的MagicPoint来为目标领域图像进行pseudo ground truth生成
核心是使用随机的homography(如图)来wrap输入图像,并结合同源图像的输出图像,随机的homography是由简单的变换复合而成,这个过程就是Homographic Adaption
对于关键点检测函数
f
θ
f_\theta
fθ(即MagicPoint),记
I
I
I为输入图像,
x
x
x为输出关键点,
H
H
H为随机Homography,则有
x
=
f
θ
(
I
)
x=f_\theta(I)
x=fθ(I)
H
H
H与
f
θ
f_\theta
fθ可交换,则有
H
x
=
f
θ
(
H
(
I
)
)
Hx=f_\theta(H(I))
Hx=fθ(H(I))
x
=
H
−
1
(
f
θ
(
H
(
I
)
)
)
x=H^{-1}(f_\theta(H(I)))
x=H−1(fθ(H(I)))
通过足够多的随机的
H
H
H,来提升关键点检测器的性能,最终的检测器为
F
^
(
I
;
f
θ
)
=
1
N
h
∑
i
=
1
N
h
H
i
−
1
(
f
θ
(
H
i
(
I
)
)
)
\hat{F}(I;f_\theta)=\dfrac{1}{N_h}\sum_{i=1}^{N_h}H^{-1}_i(f_\theta(H_i(I)))
F^(I;fθ)=Nh1i=1∑NhHi−1(fθ(Hi(I)))
选择Homography(3×3矩阵)
并非所有Homography都是适合的,首先从截断正态分布中采样各种基变换,然后结合为一个Homography
SuperPoint
最后pseudo ground truth被用来训练SuperPoint,这个过程就是普通的监督模型
超参数 N h N_h Nh的选择
默认第一个Homography为恒等变换,因此 N h = 1 N_h=1 Nh=1默认为没有进行变换,合适的值为 N h = 100 N_h=100 Nh=100
术语
- 全卷积,将传统的卷积神经网络最后几层全连接网络也换成卷积层的神经网络
- corresponding points,不同视角看到的物理位置相同的点
- Homography,是一个映射,将一幅图像中的点映射到另一幅图像中的corresponding point
- truncated normal distribution,截断正态分布,限制服从正态分布随机变量的取值范围
问题
- full-sized image什么意思
- 合成数据集具体如何生成
- Intro的最后一段,robust and repeatable interest points中的repeatable是什么意思
- MagicPoint的架构是怎样的
- SuperPoint的descriptor decoder的label哪里来的