当前位置: 首页 > news >正文

浙大公开课—基于深度学习的特征匹配与姿态估计

基于深度学习的特征匹配与姿态估计

Feature matching pipline

传统的特征匹配的流程。1. 输入图像 2. 局部特征提取 3.特征匹配

在这里插入图片描述
其中局部特征提取(Local Feature exture)中包含了两个核心的步骤。也就是特征点的检测和描述。

  • Feature detection
  • Feature description

我们建立的描述子是要进行匹配的,即要建立两个图像之间的对应关系。之后老师从两个角度解释了何为一个好的描述子。

在这里插入图片描述

  1. Distunctive得到的描述子具有好的辨识度。
  2. Invariant to image transformation对旋转缩放光线变化等具有稳定性才能便于匹配

Why Deep Learning

为什么要用深度学习去解决特征匹配的问题呢?

SIFT这种手工设计的描述子(handcrafted)尽管设计的十分巧妙可以适用绝大对数的场景但还是存在一些局限性。
在这里插入图片描述

  • 这种几何描述子更多的反应的是图像中的梯度变化这种几何信息,而没有使用语义信息,也就是缺少对整个图像的引用。
  • 在图像中,纹理(texture)是指图像表面上局部灰度或颜色变化的空间分布模式和重复结构,在纹理特征出现由于光照变化或者运动模糊时候导致难以进行匹配。

现在最早的使用superpoint这种深度学习方法,和传统的SIFT方法的对比情况。如下所示

在这里插入图片描述

基于深度学习的方法在光线明显发生变化的情况下能够找到更多的匹配。

之后开始介绍这种基于深度学习的方法是如何进行实现的呢?

在这里插入图片描述
使用CNN网络对输入的图像进行特征的提取,在经过多层的卷积和下采样的操作之后。会得到多层的feature map。我们的特征图和原图像在空间上是能够进行对齐的。用提取的特征图上对应原图像上的特征点即可作为一个描述符进行使用。

通过类似对比损失的损失函数来训练detetor可以提取到好的合适的描述子。

在这里插入图片描述
在相同的两个点上描述子的差距最小,在不同的描述子上的差距变大的一种自监督的方式。

这里我之前写做第一篇论文的时候也有疑惑,老师进行了解释。在训练数据的过程中这些点的对应关系是怎么来的呢?

训练过程的错误的数据可以来自随机初始化的点,而正确的数据集主要是来自Structure from motion数据集也就是经常见到的SfM这种数据集中 将其中三维点云的数据从多个角度投影到二维的平面上就可以得到多张正确的点匹配关系。

一个典型 SfM 数据集一般包括:

  • 多视角图像(几十到几千张)

  • 已知或需要重建的相机外参(有些提供 ground truth 相机位姿)

  • 稀疏点云或密集点云(有时作为参考)

  • 部分有 ground truth 三维模型(用于评估)

数据集简介大小(粗略)格式/用途
ETH 3D / Strecha dataset少量高分辨率城市/建筑,提供标定相机位姿和稠密模型小:几百 MB测试 SfM pipeline 精度
COLMAP datasets作者提供的室内外小场景,几十张图小:几百 MB验证算法、测试调参
Tanks and Temples室内外复杂场景,高质量 mesh ground truth数 G测 dense reconstruction 精度
DTU dataset有控制台架拍摄、多视角、多光照,带稠密点云 ground truth数 G多视图立体、稠密 SfM
Middlebury multi-view小场景,少量高分图像数百 MB测 dense multi-view stereo
PhotoTourism (旧版 SFM dataset)如 Venice, Notre Dame 等数百 MB–数 G点匹配+SfM
1DSfM来自 Flickr 的真实图,几十个景点,每个有几百到几千张图几 G大规模 SfM、鲁棒性测试
MegaDepth大量来自互联网的旅游照片+SfM 点云+稠密深度~80G训练 SfM / 深度预测
ScanNetRGB-D 视频,室内场景数百 GSfM+稠密重建+场景理解

在这里插入图片描述

这里存在的问题是在重建的过程中还是使用SIFT来进行匹配。也就是对应关系的产生还是利用的SIFT可能导致训练完成的效果也就是在sift的水平上。

在这里插入图片描述

第二种方式就是在已知特征点的情况下进行二维的变化,比较局限难以反应三维的场景。

老师提出的方法:利用只包含pose的的数据集就可以进行监督。在更大的数据集上进行训练得到更好的效果。

在这里插入图片描述

之后通过一个例子说明了,通过学习的方式产生的描述子对光线的变化比较鲁棒但对于几何的变化上例如缩放和旋转等就比较难产生好的效果。

在这里插入图片描述

这种现象最终产生的原因是什么呢?之后给出了简要的说明。

在这里插入图片描述

卷积操作对于平移来说具有不变性,但是对于旋转之后的特征就会发生难以预测的变化。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

物体位姿估计介绍

在这里插入图片描述

主要的一个应用是利用训练的一个映射网络实现三维上的点坐标到二维上的点坐标的一个应用。和之前点跟踪中的一个双射网络的思想是一样的,2d-3d-2d空间进行点的跟踪。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

根据这种位姿估计的关系是可以实现目标之间的有效跟踪的。

http://www.dtcms.com/a/301856.html

相关文章:

  • (补题)拼图游戏
  • EPOLLIN事件的详细解析
  • 【时时三省】(C语言基础)指针数组和多重指针
  • MySQL 8.4 Windows 版安装记录与步骤参考
  • 【C语言网络编程基础】DNS 协议与请求详解
  • Context Engineering Notes
  • 持续优化Cypress自动化测试
  • FunctionCall 如何使用以及如何训练
  • 从MySQL的information_schema系统数据库中获取表的元数据信息
  • Dify 1.7.0 新特性解析:工作流革新与多模态能力突破
  • 基于springboot的在线购票系统/在线售票系统
  • WSL切换网络模式
  • 【通识】正则表达式
  • 一些免费的线上学习网站
  • 《前端缓存系统构建:浏览器与Service Worker的自动清理与命中率优化策略》
  • 影刀RPA_初级课程_玩转影刀自动化_网页操作自动化
  • Frontiers in Psychology投稿LaTeX(三)
  • Frontiers in Psychology投稿流程(二)
  • BUG记录——Request接传Json数据中文乱码
  • 2025年7月世界人工智能大会最新消息
  • ABP VNext + Mapster:高性能对象映射
  • C语言——关于指针(逐渐清晰版)
  • MyBatis-Plus 多数据源配置指南
  • Android Framework知识点
  • 单链表的冒泡排序实现:从原理到代码详解
  • Linux指令(2):
  • 《频率之光》
  • 【测试报告】​​云枢馈赠系统(Java+Selenium+Jmeter自动化测试)
  • WebStack-Hugo | 一个静态响应式导航主题
  • 回归预测 | MATLAB实现BiTCN双向时间卷积神经网络多输入单输出回归预测