Computer vision 使用深度学习功能的SLAM系统?

Computer vision 使用深度学习功能的SLAM系统?,computer-vision,conv-neural-network,feature-extraction,feature-detection,slam,Computer Vision,Conv Neural Network,Feature Extraction,Feature Detection,Slam,有没有人尝试过开发一个SLAM系统,使用深入学习的功能而不是经典的AKAZE/ORB/SURF功能 扫描最近的计算机视觉会议,似乎有相当多的报告成功地使用神经网络来提取特征和描述符,基准测试表明它们可能比经典的计算机视觉等价物更健壮。我怀疑提取速度是一个问题,但假设一个人有一个像样的GPU(例如NVidia 1050),那么在640x480灰度图像上以30FPS的速度运行实时SLAM系统是否可行?这对于一个评论来说有点太长了,所以我将其作为一个答案发布 我认为这是可行的,但我不认为这会有什么用处

有没有人尝试过开发一个SLAM系统,使用深入学习的功能而不是经典的
AKAZE/ORB/SURF
功能


扫描最近的计算机视觉会议,似乎有相当多的报告成功地使用神经网络来提取特征和描述符,基准测试表明它们可能比经典的计算机视觉等价物更健壮。我怀疑提取速度是一个问题,但假设一个人有一个像样的GPU(例如NVidia 1050),那么在640x480灰度图像上以30FPS的速度运行实时SLAM系统是否可行?这对于一个评论来说有点太长了,所以我将其作为一个答案发布

我认为这是可行的,但我不认为这会有什么用处。原因如下(如果我错了,请纠正我):

  • 在大多数SLAM管道中,精度比长期稳健性更重要。您显然需要精确的特征检测/匹配,以获得可靠的三角测量/捆绑(或您可能使用的任何等效方案)。然而,神经网络提供的高水平鲁棒性仅适用于长时间间隔进行再定位/环路闭合的系统(例如,需要在不同季节进行再定位等)。即使在这种情况下,由于您已经有了GPU,我认为最好使用场景的光度(甚至只是几何)模型进行定位

  • 对于神经网络检测到的特征,我们没有任何可靠的噪声模型。我知道有一些有趣的工作(Gal、Kendall等)用于在深度网络中传播不确定性,但这些方法对于SLAM系统的部署似乎有点不成熟

  • 深度学习方法通常适用于初始化系统,它们提供的解决方案需要改进。它们的结果过于依赖于训练数据集,在实践中往往是“命中和未命中”。所以我认为你可以相信他们会得到一个初步的猜测,或者一些约束条件(例如,与姿势估计的情况类似:如果你有一个在时间上漂移的几何算法,那么你可以使用神经网络的结果来约束它们。但是我认为前面提到的噪声模型的缺失会使融合有点困难…)


因此,是的,我认为这是可行的,通过仔细的设计和调整,您可能会制作一些有趣的演示,但我不相信在现实生活中使用它。

谢谢Ash,因此,如果我正确理解您的答案,根据您的经验,深入学习的功能除了无法找到合适的解决方案外,还存在精度问题噪音模型。这很好。顺便说一句,我们曾在某个时候半心半意地尝试使用所学的深度来初始化SLAM系统,但最终放弃了它。我们在几何特征方面也比光度学特征方面取得了更好的成功。@DanielDanciu是的,这就是我目前的想法……我可以问一些关于你为什么选择这个系统的细节吗带上你学到的基于深度的初始化?我只是好奇你是如何尝试进行融合的(比如是某种约束束调整,还是只是使用深度值进行初始化,然后进行某种几何优化?)…是的,我同意我所说的使用光度模型不是很聪明(特别是对于长时间的操作,谢谢你纠正我。),但我认为几何模型会很好(比如建筑模型等等).Re depth integration:在某个时候,我们使用深度过滤器来优化3D地图点的深度,如下所述:。可以使用预测的深度来初始化深度过滤器。我们对此做了一些尝试,但这似乎不是一条有希望的途径(与简单地通过三角剖分直接匹配或几何匹配进行初始化相比),因此我们放弃了它。实际上,我们最终放弃了整个深度过滤器的想法,而是简单地使用三角剖分+结构束调整。