查看原文
其他

【源头活水】深度学习结合传统几何的视觉定位方法:HSCNet简介

“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。

本文分享自华为云社区《深度学习结合传统几何的视觉定位方法:HSCNet简介》,原文作者:景末

地址:https://bbs.huaweicloud.com/blogs/264173


01

引言

在之前的博文中,笔者分别介绍了基于传统几何技术路线(虽然包含深度学习图像检索,但不影响整体的传统框架)以及完全基于深度学习技术路线(端到端回归出6DoF位姿)的视觉定位方法。从实际使用情况来看,目前传统的技术路线往往能够得到更为准确的定位结果,这可能是因为完全依赖深度学习进行端到端回归的方案有时忽略了传统的视觉几何关系导致的。因此也有一系列的工作开始寻求二者的结合。今天介绍一篇2020年CVPR的论文,作者通过分类+回归结合的深度神经网络(Hierarchical Scene Coordinate,HSCNet)预测出2D-3D的匹配对,再结合传统几何中PnP+RANSAC的方法计算出相机位姿。


02

方法

基本思路

图中给出了HSCNet的大致思路。首先对3D地图按照层级由粗到细进行分类。例如作者给出的例子是分了3层,分别对应于图中Region Labels、Subregion Labels、Scene Coordinates三幅子图。其中Region Labels对3D地图场景进行了较粗的分类,分成了4个类别,给每个3D点分配了一个Label;Subregion Labels的分类更为细致,约有十来个类别,同样给每个3D点分配了一个Label;Scene Coordinates则不再进行分类,而是记录了每个3D点的坐标。在进行Query时,HSCNet则先后在这三个粒度的层级中进行预测,最终给出2D点匹配的3D坐标,以支撑PnP+RANSAC进行6DoF的位姿估计。

网络结构设计

HSCNet具体的网络结构如图所示。网络分别有两个分类层和一个基础回归层,这对应了上述的由粗到细的三层结构。上两层的分类分支分别以类别标签作为最后的输出,基础回归层则以场景3D坐标作为最后的输出。为了使得粗粒度层产生的标签信息能够在细粒度层的预测中使用,HSCNet特别设计了一种调节层(由上图右侧所示)。首先由一个调节参数生成器接收到类别标签的输入,然后产生两个参数  和  ,再由调节层将这两个参数施加在上一个卷积层给出的输出上,施加方式为:

其中,  表示阿达玛积,即矩阵对应位置相乘。调节参数生成器由一系列1x1的卷积层构成,同样参与训练。

损失函数设计

由于HSCNet共有三层输出,分别为两层分类标签输出和一类回归坐标输出,因此HSCNet使用了两种不同的损失函数,分别对应分类和回归。分类输出的损失函数以交叉熵的形式定义,表达为:

其中,  表示第  个像素第  个分类层的one-hot形式分类标签,  则表示对应的分类输出(输入某类的概率向量)。回归输出的损失函数则以欧氏距离的形式定义,表达为:

其中,  和  分别表示第  个像素的坐标真值和预测坐标。

最终总的损失函数则为三层损失函数的加权求和:

03

实验结论

该方法在7-Scenes、12-Scenes、Cambridge数据集上进行了对比测试,几乎总是能得到最优的测试结果。

但在大场景数据集Aachen上效果距离传统技术路线的方法还是有一定差距。


04

总结

HSCNet提供了一种分类回归结合的网络结构来执行2D-3D匹配,并且得到了不错的结果。值得一提的是,这种框架还有不同形式的扩展,比如并非输入图片的所有像素,而是添加一个关键点提取过程;再比如以足够细粒度的分类器网络代替回归网络等。本篇博文对HSCNet进行了总结和介绍,希望能够对视觉定位领域的研究人员和开发者有所帮助。


05

References

Li X, Wang S, Zhao Y, et al. Hierarchical scene coordinate classification and regression for visual localization[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 11983-11992.

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“源头活水”历史文章


更多源头活水专栏文章,

请点击文章底部“阅读原文”查看



分享、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存