【学习笔记】3D-2D:PnP

主要解决什么问题?

主要解决的是已知空间中N个3D点及其图像中的2D点坐标,求相机在空间中的位置与姿态

求解PnP问题最少需要几个点?

最少只需要3个点对

求解PnP问题的常用方法

主要有用3对点估计位姿的P3P,另外还有DLT(直接线性变换)、EPnP(Efficient PnP)、UPnP、Bundle Ajustment

几种求解PnP方法的主要原理及其特点

DLT(直接线性变化)

原理说直白点就像名字一样,直接解,我们知道待估计的是旋转矩阵R以及平移矩阵t,其中R用矩阵的形式表示有9个未知数(由于旋转矩阵本身是带约束的,所以这9个数不是独立的),t可以用3个未知数表示,假设相机的内参是已知的,那么可以得到2D点与3D点的关系方程,懒得敲公式了,参考高博的《视觉SLAM十四讲》中部分
在这里插入图片描述

可以看到每对特征点可以提供两个方程约束,而我们待估计因此DLT方法求解PnP的话最少可以用6对特征点来估计

上面公式中s指深度,我们知道如果知道深度信息其实可以把一个图像中的点转换到相机坐标系下,而我们知道3D点的位置是世界坐标系下的,所以相机坐标系下的3D点与世界坐标系下的3D点其实就差相机在世界坐标系下的位姿R、t,这也是上面那个公式的本质。

DLT方法的特点是原理简单直接,但是因为R矩阵本身是带约束的(行列式为1),因此通过这种方式直接估计出来的R的9个参数可能不满足这个约束,需要再继续用类似QR分解的方式,求出一个满足约束的,近似的旋转矩阵,至于如何用QR分解来近似我们先留一个问题,有时间再继续探究一下

P3P

核心思想是利用相似三角形的原理求解出2D图像点在相机坐标系下的坐标,最后把问题转换成一个3D到3D问题求解的方式,具体表述太复杂了,直接参考高博的十四讲吧,这里就不赘述了

主要特点:
1、只用3对点即可以求解出R、t(但是求解出会有多个解,因此需要额外一个点来验证得到真正的解);
2、但是最终求解的是非线性方程,相对于线性方程求解比较复杂;
3、由于只用了3对点的信息,容易受噪声或者误匹配的影响;SLAM中通常做法是先用类似的方法初步估计得到一个位姿,然后再构建最小二乘问题,使用BA的方法优化位姿

Bundle Ajustment

核心思想是构建一个最小二乘问题,将3D点重投影到2D图像平面,最小化重投影误差。
在这里插入图片描述

EPnP

核心思想是通过选取控制点,求解控制点分别在相机坐标系与世界坐标系下的坐标,转化成3D-3D的求解方式,再通过SVD分解求解得出R、t
具体步骤,知乎这篇文章写的很好
https://zhuanlan.zhihu.com/p/361791835
简要步骤如下:
1、在世界坐标系下选取4个控制点,那么世界坐标系下每个点都可以用这四个控制点及其不同的系数组成;通过方程可以求解出每个3D点对应的系数
2、由于欧式不变性,可以证明3D点转换到相机坐标系下时,对应的系数是不变的。
3、建立像点坐标与待求解的控制点在相机坐标系下坐标的方程,通过一系列复杂的求解可以求出控制点在相机坐标系下的坐标
4、已知控制点在相机坐标系下的坐标与世界坐标系下的坐标,问题就转换成为3D到3D的ICP求解问题,从而求出R、t;

控制点怎么选取

选取四个点,其中一个点是3D点的几何质心,另外三个点是把3D点去中心化PCA分解,在其特征向量上根据特征值的大小选取的3个坐标;

算法特点

最主要的特点是算法的复杂度是O(n)的,当要求解的点数比较多时计算效率比较高

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/648091.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端如何学会全栈分页开发?源码和思路都在这了

本项目代码已开源,具体见: 前端工程:vue3-ts-blog-frontend 后端工程:express-blog-backend 数据库初始化脚本:关注公众号程序员白彬,回复关键字“博客数据库脚本”,即可获取。 前言 这是博客系…

商标注册申请名称的概率,多想名称选通过率好的!

近日给深圳客户申请的商标初审下来了,两个类别都下的初审,和当初的判断基本一致,普推知产老杨当时沟通说需要做担保申请注册也可以,后面选择了管家注册,最近大量的帮客户检索商标名称,分享下经验。 两个字基…

STM32H7系统窗口看门狗 (WWDG)应用方法介绍

目录 概述 1 认识窗口看门狗 (WWDG) 1.1 窗口看门狗定义 1.2 WWDG 主要特性 2 WWDG 功能说明 2.1 WWDG框图 2.2 WWDG 内部信号 2.3 控制递减计数器 2.4 看门狗中断高级特性 2.5 如何设置看门狗超时 3 WWDG 寄存器 3.1 控制寄存器 (WWDG_CR) 3.2 配置寄存器 (W…

如何调用通义千问大模型API

目录 登录阿里云 大模型服务平台百炼 登录控制台 QWen Long QWen 通义千问开源系列 大语言模型 OpenAI接口兼容 登录阿里云 阿里云-计算,为了无法计算的价值 大模型服务平台百炼 降价信息: 登录控制台 右上角取得API key 创建Key QWen Long qw…

C#的奇技淫巧:利用WinRM来远程操控其他服务器上的进程

前言:有时候远程服务器的进程你想偷偷去围观一下有哪些,或者对一些比较调皮的进程进行封杀,或者对一些自己研发的服务进行远程手动启动或者重启等,又不想打开远程桌面,只想悄咪咪地执行,那也许下面的文章会…

关于解决Qt在安装的时候没有勾选sources组件的方法

关于解决Qt在安装的时候没有勾选sources组件的方法 一、引言 在安装数据库连接到qt的时候发现没有sources文件夹,原来是安装的时候没有勾选sources组件,发现问题后找到了维护qt组件的安装方式,特此记下来 二、分析原因 首先在安装的时候就…

Lookin高效调试iOS App的UI

Lookin是一款iOS开发时常用的调试软件,由腾讯微信读书团队QMUI开发。 它可以查看和修改iOS App里的UI对象的软件,展示App UI图层,类似于Xcode自带的UI Inspector工具,或另一款叫做Reveal的软件。 此外,虽然Lookin主体…

【C++语言】继承:类特性的扩展,重要的类复用!

【C语言】继承,更进一步的复用 ✨精美思维导图奉上继承1. 继承的相关概念:2. 继承的定义:(1)定义格式:(2)访问限定符和继承方式:(3)默认继承方式&…

C++_C++11的学习

1. 统一的列表初始化 1.1{}初始化 在C98 中,标准就已经允许使用花括号 {} 对数组或者结构体元素进行统一的列表初始值设定。而到了C11,标准扩大了用大括号括起的列表 ( 初始化列表 )的使用范围,使其能适用于所有的内…

最大连续1的个数(滑动窗口)

算法原理: 这道题大眼一看是关于翻转多少个0的问题,但是,如果你按照这种思维去做题,肯定不容易。所以我们要换一种思维去做,这种思维不是一下就能想到的,所以想不到也情有可原。 题目是:给定一…

ESP32-C6接入巴法云,Arduino方式

ESP32-C6接入巴法云,Arduino方式 第一、ESP32-C6开发环境搭建第一步:安装arduino IDE 软件第二步:安装esp32库第三:arduino 软件设置 第二:简单AP配网程序第一步:程序下载第二步:程序使用第三步…

linux centos nginx配置浏览器访问后端(tomcat日志)

1、配置nginx访问tomcat日志路径 vim /usr/local/nginx/conf/nginx,conflocation ^~ /logs {autoindex on;autoindex_exact_size on;autoindex_localtime on;alias /home/tomcat/apache-tomcat-9.0.89-1/logs;}###配置讲解### 1、location ^~ /logs { … }: location&#xf…

代码随想录——从前序与中序遍历序列构造二叉树(Leetcode105)

题目链接 递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

构建智能化商场存包柜平台的数据结构设计

随着城市生活节奏的加快,人们对于便利的需求也越来越迫切。在城市中,商场存包柜平台成为了解决人们日常出行中行李存放问题的重要设施。为了更好地管理和运营这些存包柜,智能化商场存包柜平台的数据结构设计显得尤为关键。 一、需求分析与功能…

每日AIGC最新进展(12):在舞蹈视频生成中将节拍与视觉相融合、Text-to-3D综述、通过内容感知形状调整进行 3D 形状增强

Diffusion Models专栏文章汇总:入门与实战 Dance Any Beat: Blending Beats with Visuals in Dance Video Generation https://DabFusion.github.io 本文提出了一种名为DabFusion的新型舞蹈视频生成模型,该模型能够根据给定的静态图像和音乐直接生成舞蹈…

韩顺平0基础学Java——第11天

p234-249 又一个月了,时间过得好快啊,希望支棱起来 可变参数 public int sum(int ... nums){ } 这个nums是数组 细节: 1可变参数可以为0个,或任意个 2可变参数的实参可以为数组 3可变参数的本质就是数组 4可变参数可以和普通…

MicroLED:苹果对知识产权的影响

Yole的洞察揭示,MicroLED IP在经历了七年的爆炸式增长后,已然屹立于行业之巅。苹果公司,作为微LED领域的先行者,早在2014年便敏锐地捕捉到Luxvue这家初创公司的潜力,将其纳入麾下,引发了业界的广泛关注。然…

基线管理概述

一、基线概念 ①安全基线 ②安全基线与英文排版的基线类似,是一条参考标准线。 ③安全基线表达了最基本需要满足的安全要求。 ④安全基线表达了安全的木桶原理木桶原理:一只木桶盛水的多少,并不取决于桶壁上最高的那块 木块,而恰恰取决于…

如何让大模型更聪明?提升AI智能的关键策略

如何让大模型更聪明?提升AI智能的关键策略 🤖 如何让大模型更聪明?提升AI智能的关键策略摘要引言方向一:算法创新🚀1.1 自监督学习的崛起1.2 强化学习的应用 方向二:数据质量与多样性📊2.1 数据…

大学校园广播“录编播”与IP广播系统技术方案

一、项目概述 1、校园IP网络广播系统概述 大学校园广播系统是学校整个弱电系统中的子系统,它是每个学校不可缺少的基础设施之一,在传递校园文化、传播校园新闻资讯方面发挥着重要的作用。近几年来,虽然视频技术和网络技术在飞速发展&#xf…