在计算机视觉CV中无论是SLAM同步定位与建图、SfM运动恢复结构还是相机标定与图像拼接特征点提取与匹配往往是整个系统的第一步 。提到特征点大家脑海里最先浮现的肯定是大名鼎鼎的SIFT、SURF或者ORB算法 。而在深度学习席卷一切的今天几乎所有的图像任务如目标检测、语义分割都被卷积神经网络CNN统治了 。那么神经网络能不能用来提取特征点呢今天我们就来重温一篇CVPR 2018的经典神作——Magic Leap团队提出的SuperPoint。一、 为什么深度学习很难做特征点提取在人体姿态估计等任务中我们可以让人工去标注“左脚踝”或“嘴角”的位置因为这些点具有明确的语义信息 。但是“特征点”Interest Point在语义上是极其模糊的 。人类很难对着一张真实的风景照精准地标出哪里是“稳定且可重复”的角点。因此缺乏大规模的真值Ground Truth数据集成为了用强监督学习训练特征点提取网络的最大拦路虎 。为了解决这个问题SuperPoint的作者们提出了一种极其巧妙的自监督Self-Supervised解决方案 。二、 SuperPoint的三大核心步骤作者没有选择雇佣大量人力去标注真实图片而是让神经网络“自己教自己” 。整个训练过程分为极其优雅的三步1. 合成数据预训练诞生基础检测器MagicPoint既然真实世界的角点不好标注那就用计算机生成完全没有歧义的合成几何图形 。作者创建了一个名为“Synthetic Shapes”的大规模数据集里面全是渲染出来的三角形、四边形、线条、立方体和星星 。在这个数据集上每个角点的位置都是数学意义上绝对精确的例如简单的Y型交叉点、L型交叉点 。利用这些数据作者训练出了一个基础版本的特征点检测网络称之为MagicPoint。它在合成数据集上表现极佳甚至在加入噪点后也远超传统的FAST和Harris角点检测算法 。2. 单应性自适应Homographic Adaptation生成伪真值MagicPoint在合成数据上很强但在复杂的真实图像上依然会漏掉很多潜在的特征点 。为了跨越合成到真实的鸿沟作者提出了单应性自适应Homographic Adaptation技术 。具体做法是输入一张未标注的真实图像对其进行多次随机的单应性变换如旋转、缩放、透视变形 。利用基础网络MagicPoint在这些变换后的图像上提取特征点然后将结果反向变换并进行聚合求平均 。通过这种方式网络从多个视角观察了同一场景最终生成的特征点响应图更加稳定可靠成为了真实图像的“伪真值Pseudo-Ground Truth” 。3. 联合训练Joint TrainingSuperPoint完全体有了真实图像如MS-COCO数据集及其对应的伪真值就可以训练最终的SuperPoint网络了 。与传统的“先检测、后描述”的串行系统不同SuperPoint是一个单一的前向全卷积神经网络能够同时输出特征点位置和描述子 。三、 网络架构与损失函数解析SuperPoint的网络架构设计非常干练主要包含一个共享的编码器和两个任务特定的解码器头 。共享编码器Shared Encoder采用类似VGG的架构进行特征提取与降维 。特征点解码器Interest Point Decoder使用了高效的子像素卷积Sub-pixel Convolution技术避免了传统的上采样带来的巨大计算量和棋盘效应直接输出整张图的特征点概率 。描述子解码器Descriptor Decoder先输出半稠密的描述子网格再通过双三次插值Bi-cubic Interpolation和L2归一化得到固定长度的描述子向量 。网络训练的整体损失函数由特征点损失 Lp​ 和描述子损失 Ld​ 联合组成 L(X,X′,D,D′;Y,Y′,S)Lp​(X,Y)Lp​(X′,Y′)λLd​(D,D′,S)四、 性能表现与传统算法的对决根据论文的实验结果SuperPoint在各项指标上都表现得非常抢眼实时性极强在输入图像分辨率为 480x640 的情况下使用单张 Titan X GPUSuperPoint 的单次前向推理仅需大约 11.15 毫秒 。整体系统运行帧率可达70 FPS。全面的优势与同时期的相关方法相比SuperPoint 是唯一一个能够在单一网络中实时计算特征点和描述子的系统 。下表直观地展示了它与其他几款流行算法的区别方法提取特征点提取描述子全图输入单一网络实时计算SuperPoint (ours)✔✔✔✔✔LIFT✔✔SIFT✔✔ORB✔✔✔在HPatches数据集上的单应性估计Homography Estimation任务中SuperPoint 的表现优于 LIFT 和 ORB并与经典的 SIFT 算法不相上下尤其在光照变化剧烈的场景下表现出了极强的鲁棒性 。五、 总结SuperPoint这篇论文最大的贡献在于它证明了无需昂贵的人工标注仅仅依靠合成数据和自监督域适应单应性自适应就能训练出一个极为优秀的工业级特征点提取网络。对于关注视觉SLAM前段和AR增强现实应用的开发者来说这绝对是一个必须深入研究的经典架构 。