SuperPoint

DeTone 2017 · 论文

一句话总结 — 一种通过Homographic Adaptation(单应自适应)训练的自监督兴趣点检测器与描述子,在一次约70 FPS的前向推理中为整张图像同时输出关键点和256维描述子。

问题

经典的检测器与描述子(SIFT、ORB)是手工设计的,在光照和视角变化下表现脆弱,而对关键点进行监督学习又受制于一个尴尬的事实:与人体关键点不同,“兴趣点”这一概念在语义上是不明确的,因此不存在可供标注的真值。基于图像块的学习型描述子还需要在检测结果周围进行裁剪,这阻碍了高效的全图推理。SuperPoint探讨的问题是:如何在没有任何人工标签的情况下,在真实图像上训练一个联合的检测器+描述子,并让全卷积模型在一次前向推理中计算出像素级的关键点和描述子。

方法与架构

共享编码器,双头输出。 一个VGG风格的编码器(八个3x3卷积层,通道数为64-64-64-64-128-128-128-128,配合三次2x2最大池化)将H×WH \times W的图像映射为一个Hc×WcH_c \times W_c的”格子”网格,其中Hc=H/8H_c = H/8,Wc=W/8W_c = W/8。两个解码头共享这一表示:

合成预训练(MagicPoint)。 检测器路径首先在Synthetic Shapes(合成形状)数据上训练——渲染出的四边形、三角形、直线、椭圆,其角点位置在构造上是明确无歧义的。在这份数据上,MagicPoint在成像噪声下达到0.971的mAP,相比之下FAST为0.061,Harris为0.213,Shi-Tomasi为0.157。

Homographic Adaptation(单应自适应)。 为了跨越合成数据与真实数据之间的差距,理想的检测器应对单应变换具有协变性,即x=H1fθ(H(I)){\bf x}=\mathcal{H}^{-1}f_{\theta}(\mathcal{H}(I))。由于真实检测器并非完全协变,响应结果需要在NhN_h次随机单应变换上进行聚合:

F^(I;fθ)=1Nhi=1NhHi1fθ(Hi(I))\hat{F}(I;f_{\theta})=\frac{1}{N_{h}}\sum_{i=1}^{N_{h}}\mathcal{H}_{i}^{-1}f_{\theta}(\mathcal{H}_{i}(I))

Nh=100N_h=100运行(超过此值收益递减:100次变换时可重复性提升21%,1000次时提升22%),在8万张240x320的MS-COCO图像上迭代运行两次,由此产生用于自监督训练的伪真值关键点——整个过程无需任何人工标签。

联合训练损失。 具有已知单应变换H\mathcal{H}的图像对同时监督两个头:

L(X,X,D,D;Y,Y,S)=Lp(X,Y)+Lp(X,Y)+λLd(D,D,S)\mathcal{L}(\mathcal{X},\mathcal{X}',\mathcal{D},\mathcal{D}';Y,Y',S)=\mathcal{L}_{p}(\mathcal{X},Y)+\mathcal{L}_{p}(\mathcal{X}',Y')+\lambda\mathcal{L}_{d}(\mathcal{D},\mathcal{D}',S)

Lp\mathcal{L}_p是针对每个格子在65个类别上的交叉熵。描述子的铰链损失使用对应关系标签shwhw=1s_{hwh'w'}=1(当变换后的格子中心落在8个像素范围内时成立),边距设为mp=1m_p=1,mn=0.2m_n=0.2:

ld(d,d;s)=λdsmax(0,mpdTd)+(1s)max(0,dTdmn)l_{d}({\bf d},{\bf d}';s)=\lambda_{d}\, s\,\max(0,m_{p}-{\bf d}^{T}{\bf d}')+(1-s)\max(0,{\bf d}^{T}{\bf d}'-m_{n})

其中λd=250\lambda_d=250用于平衡稀少的正样本与大量的负样本,λ=0.0001\lambda=0.0001用于平衡两个损失项。

实验结果

对SLAM的意义

SuperPoint成为深度SLAM时代事实上的学习型局部特征:在ORB失效的光照和视角变化场景下依然稳健,同时速度足够快,可用于实时前端。它是SuperGlue/LightGlue以及hloc定位生态系统所依赖的标准骨干网络,并已被植入类ORB-SLAM的系统中(例如DXSLAM在经典管线中使用了学习型特征)。Homographic Adaptation本身也成为几何学习领域广泛复用的自监督方案。

动手实践

相关条目