0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SuperPoint语义 SLAM深度学习用于特征提取

新机器视觉 来源:古月居 2023-12-10 10:52 次阅读

1. 概况

作者的写作思路很清晰,把各个技术点这么做的原因写的很清楚,全文共三篇,可以看清作者在使用深度学习进行位姿估计这一方法上的思路演变过程,为了把这一脉络理清楚,我们按照时间顺序对这三篇文章分别解读,分别是:

1)Deep Image Homography Estimation

2)Toward Geometric Deep SLAM

3)SuperPoint: Self-Supervised Interest Point Detection and Description

本期,我们首先对Deep Image Homography Estimation进行解读。

2. 第一篇

Deep Image Homography Estimation

矿视成果

参考R TALK |图像对齐及其应用(https://zhuanlan.zhihu.com/p/99758095Deep)

1.1. 概述


Deep Image Homography Estimation 是通过端到端的方式估计一对图像的单应矩阵。训练数据集是从MS-COCO上选取图片,然后把这张图片进行单应性变换得到图象对的方式生成的。为了得到矩阵变换的置信度(比如slam中设置方差需要这些东西),作者把网络分成两部分,分别对应两种输出,一种输出单一变换结果,另一种输出多个可能的变换结果,并给出每种变换结果的置信度,实际使用时,选择置信度最高的那个。

1.2. 算法流程


1.2.1 基础知识


本篇文章所提出的方法输出的是单应性矩阵,所谓单应性矩阵,就是图象中的目标点认为是在一个平面上,相应的,如果不在一个平面上则被成为基础矩阵。

在实际的slam应用中,单应矩阵在以下这三种情况时需要用到:

相机只有旋转而无平移的时候,两视图的对极约束不成立,基础矩阵F为零矩阵,这时候需要使用单应矩阵H场景中的点都在同一个平面上,可以使用单应矩阵计算像点的匹配点。

相机的平移距离相对于场景的深度较小的时候,也可以使用单应矩阵H。

在大家熟悉的ORB-SLAM中初始化的时候,就是单应矩阵和基础矩阵同时估计,然后根据两种方法估计出的结果计算重投影误差,选择重投影误差最小的那个作为初始化结果。

1.2.2 建立模型

一个单应矩阵其实就是一个3X3的矩阵,通过这个矩阵,可以把图像中的一个点,投影到对应的图像对上去,对应的公式为

8c5cdf68-9698-11ee-8b88-92fbcf53809c.png

在这篇文章中,作者为了更好的训练模型和评估算法效果,采用了另外一种模型,来等效代替上面的公式。我们知道,一张图片进行单应性变换的时候,图像上的点的坐标会根据变换矩阵发生变化(如上式),那么反过来,如果我知道n个变换前后的点的坐标,那么这两张图片之间的变换矩阵便可以得到,在平面关系中,n为4,即至少知道四个点就可以。因此作者用四个点对应的变化量来建立一个新的模型,如下式所示

8c6d262a-9698-11ee-8b88-92fbcf53809c.png

它和单应性矩阵具有一一对应的关系

8c774f60-9698-11ee-8b88-92fbcf53809c.png

这样做的好处是,把图片对之间的矩阵关系,转换成了点和点之间的关系,在进行精度评估时,可以直接根据转换后的点的坐标与真实的坐标计算距离,作为误差评估指标,而且,还可以用于网络中损失函数的计算。

1.2.3 生成数据集

作者采用MS-COCO作为数据集,不过该数据集中没有图像对,也即没有单应矩阵的真值,这是没法进行训练的。因此作者根据数据集中原有图像,自动生成了图像对。具体方法如下图所示

8c83ca6a-9698-11ee-8b88-92fbcf53809c.png

具体步骤为:

1.在图像中选取一个长方形区域,区域就可以用上面说的四个点的模型来表示;

2.把区域的四个点随机进行平移,这样就得到一个四边形,这两个四边形之间的单应矩阵也就是已知的;

3.把图像按照这个单应矩阵进行变换,并选取被四边形框住的区域;

4.这样1)中和3)中得到的图像就形成了一个已知真实单应矩阵的图像对。

1.2.4 设计网络结构


本文的网络结构如下图所示

8ca27064-9698-11ee-8b88-92fbcf53809c.png

网络分成两部分,分别是Classification HomographyNet 和 Regression HomograhyNet,后者是直接输出8个量,这8个量自然就是四个点各自的x和y坐标值。但这样的缺点也很明显,就是不知道每个坐标值的置信度是多少,比如在slam中设置方差时就没有根据。因此Classification HomographyNet就是在Regression HomograhyNet的基础上,把输出端改成了8X21的输出向量,这里的8仍然是四个点各自的x和y坐标,这里的21是每个坐标值的可能值之一,并且给出了该值的概率,这样就可以定量分析置信度了。该网络所输出的置信度的可视化效果如下图所示

8cb19b98-9698-11ee-8b88-92fbcf53809c.png

1.2.5 实验结果


实验结果的精度评测方法就是根据每个点的坐标按照单应矩阵进行转换后,和真实坐标进行L2距离测量,再把四个点的误差值取平均得到。作者把网络两部分的输出和ORB特征计算的结果分别进行了评测,对比结果如下:

8cba2614-9698-11ee-8b88-92fbcf53809c.png

从这张表里看,并没有比ORB表现出明显的优势,但是作者展示了几张图片,每个图片里显示了矫正之后的方框对,从方框对中可以明显看出区别。左边是ORB方法的,右边是本文方法的。

1.3. 总结与思考


设计了一种端到端的单应矩阵的估计方法,采用提取定点的结构等效单应矩阵,基于这种结构设计了数据集产生方法和精度评测方法,最终的结果显示效果要明显高于ORB进行的提取。

可以看到回归的方法效果最好,但是分类的方法可以得到置信度,且可以可视化地纠正实验结果,在某些应用中是有优势的。

作者总结了这个系统的两个优势:

第一,速度快,借助英伟达的泰坦显卡,可以实现每秒处理300帧的图像。

第二,将计算机视觉中最基础的单应矩阵的估计问题转化为机器学习的问题,可以针对应用情景如使用SLAM的室内导航机器人做特定优化。

事实上,单应矩阵在图像拼接,ORB-SLAM算法和Augmented Reality(AR),相机标定中都有很重要的应用。这篇文章的三个作者都来自Magic Leap公司,一家做AR的公司,已经得到了Google和阿里巴巴等公司是十几亿美金的投资。

新的思考:


1)这种将深度学习用于解决传统方法中遇到的困难的设计模式值的我们思考与学习,这样可以充分的将诶和传统与深度学习的共同特点。

2)这种从图像中产生真值,然后在利用这些图像去估计矩阵的方式是由于过拟合导致效果好?

3)单应矩阵一般特征共面时使用,论文中最后对比效果所列的图片明显不是这种情况(展示数据可以理解为远视角场景),它之所以能对齐,是因为它用这个训练的,而ORB是根据真实的场景估计的,没有共面假设,对比实验设计的合理性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4562

    浏览量

    92171
  • SLAM
    +关注

    关注

    23

    文章

    410

    浏览量

    31726
  • 深度学习
    +关注

    关注

    73

    文章

    5426

    浏览量

    120690

原文标题:【SLAM】SuperPoint 语义 SLAM 深度学习用于特征提取

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于卷积神经网络的双重特征提取方法

    机器学习技术已被广泛接受,并且很适合此类分类问题。基于卷积神经网络的双重特征提取方法。提出的模型使用Radon拉冬变换进行第一次特征提取,然后将此特征输入卷积层进行第二次
    发表于 10-16 11:30 551次阅读
    基于卷积神经网络的双重<b class='flag-5'>特征提取</b>方法

    模拟电路故障诊断中的特征提取方法

    实现时与神经网络有两种结合方式:一是松散型结合,二是紧致型结合。松散型结构是数据预处理采用的最常见的方式,目前紧致型结构的小波神经网络也已成功用于模拟电路的去噪和特征提取。由于紧致型小波神经网络是用
    发表于 12-09 18:15

    HOOFR-SLAM的系统框架及其特征提取

    Intelligent Vehicles Applications1. 介绍2. HOOFR-SLAM2.1 系统框架2.2 HOOFR特征提取2.3 映射线程2.3.1 特征匹配1. 介绍提出一种HOOFR-...
    发表于 12-21 06:35

    基于已知特征项和环境相关量的特征提取算法

    在现有基于已知特征特征提取算法的基础上,提出一种基于已知特征项和环境相关量的特征提取算法。该算法通过已知特征项搜索频繁项集,提高了
    发表于 04-18 09:37 17次下载

    故障特征提取的方法研究

    摘要:针对常规特征提取方法存在着问题不足,提出了基于BP神经网络和基于互信息熵的特征提取方法,并通过特征提取实例加以说明。结果表明这两种方法是可行和有效的。
    发表于 03-11 13:14 1450次阅读
    故障<b class='flag-5'>特征提取</b>的方法研究

    基于Gabor的特征提取算法在人脸识别中的应用

    针对人脸识别中的特征提取问题,提出一种新的基于Gabor的特征提取算法,利用Gabor小波变换良好的提取区分能力和LDA所具有的判别性优势来进行特征提取。首先利用Gabor小波变换来
    发表于 01-22 14:25 54次下载

    Curvelet变换用于人脸特征提取与识别

    人脸检测是一个非常复杂的模式,人脸面部特征提取及识别成为当前计算机图像处理相关学科的一个极具挑战的课题。而基于Carvelet变换的人脸特征提取及识别的意义在于Curvelet继承了小波分析优良
    发表于 11-30 15:09 3755次阅读
    Curvelet变换<b class='flag-5'>用于</b>人脸<b class='flag-5'>特征提取</b>与识别

    基于LBP的深度图像手势特征提取算法

    针对复杂环境下的深度图像手势特征提取信息冗余量大、编码不稳定等问题,提出了一种改进的基于曲率局部二值模式( LBP)的深度图像手势特征提取算法。该算法首先通过坐标转换将分割出的手势
    发表于 12-11 16:21 4次下载

    基于主成分分析方向深度梯度直方图的特征提取算法

    针对立体视觉深度特征提取精确度低、复杂度高的问题,提出了一种基于主成分分析方向深度梯度直方图( PCA-HODG)的特征提取算法。首先,对双目立体视觉图像进行视差计算和
    发表于 12-26 14:32 0次下载
    基于主成分分析方向<b class='flag-5'>深度</b>梯度直方图的<b class='flag-5'>特征提取</b>算法

    基于HTM架构的时空特征提取方法

    针对人体动作识别中时空特征提取问题,提出一种基于层次时间记忆( HTM)架构的深度学习模型,用来提取图像帧的时空特征。将图像帧构建成树型节点
    发表于 01-17 17:27 0次下载
    基于HTM架构的时空<b class='flag-5'>特征提取</b>方法

    机器学习特征提取 VS 特征选择

    机器学习特征选择和特征提取区别 demi 在 周四, 06/11/2020 - 16:08 提交 1. 特征提取 V.S 特征选择
    的头像 发表于 09-14 16:23 4016次阅读
    机器<b class='flag-5'>学习</b>之<b class='flag-5'>特征提取</b> VS <b class='flag-5'>特征</b>选择

    计算机视觉中不同的特征提取方法对比

    特征提取是计算机视觉中的一个重要主题。不论是SLAM、SFM、三维重建等重要应用的底层都是建立在特征点跨图像可靠地提取和匹配之上。特征提取
    的头像 发表于 07-11 10:28 3015次阅读

    如何看待SLAM技术不用神经网络进行特征提取

    深度学习提取特征就一定好?显然不是的。因为数据集的原因,利用深度学习训练出的
    的头像 发表于 05-19 10:21 955次阅读

    为什么目前落地的主流SLAM技术很少用神经网络进行特征提取

    深度学习提取特征就一定好?显然不是的。因为数据集的原因,利用深度学习训练出的
    的头像 发表于 05-19 10:25 1073次阅读
    为什么目前落地的主流<b class='flag-5'>SLAM</b>技术很少用神经网络进行<b class='flag-5'>特征提取</b>?

    深度解析深度学习下的语义SLAM

    随着深度学习技术的兴起,计算机视觉的许多传统领域都取得了突破性进展,例如目标的检测、识别和分类等领域。近年来,研究人员开始在视觉SLAM算法中引入深度
    发表于 04-23 17:18 1075次阅读
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>学习</b>下的<b class='flag-5'>语义</b><b class='flag-5'>SLAM</b>