| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 3D视觉基础整理 (一) -> 正文阅读 |
|
[人工智能]3D视觉基础整理 (一) |
目录基础概念● 我们必须移动相机之后,才能估计它的
其他特殊相机:双目相机,rgb-d相机双目相机相比于单目相机存在尺度不确定性,双目相机由两个单目相机组成,但这两个相机之 双目相机测量到的深度范围与基线相关。基线距离越大,能够测量到的就越远。所以无人车上搭载的双目通常会是个很大的家伙。双目相机的距离估计是比较左右眼的图像获得的,并不依赖其他传感设备,所以它既可以应用在室内,亦可应用于室外。双目或多目相机的缺点是配置与标定均较为复杂,其深度量程和精度受双目的基线与分辨率限制,而且视差的计算非常消耗计算资源,需要使用GPU 和FPGA 设备加速后,才能实时输出整张图像的距离信息。因此在现有的条件下,计算量是双目的主要问题之一。 RGB-D相机它最大的特点是可以通过红外结构光或Time-of-Flight(ToF)原理,像激光传感器那样,通过主动向物体发射光并接收返回的光,测出物体离相机的距离。这部分并不像双目那样通过软件计算来解决,而是通过物理的测量手段,所以相比于双目可节省大量的计算量。不过,现在多数RGB-D 相机还存在测量范围窄、噪声大、视野小、易受日光干扰、无法测量透射材质等诸多问题,在SLAM 方面,主要用于室内SLAM,室外则较难应用。 SLAM
视觉里程计视觉里程计关心相邻图像之间的相机运动,最简单的情况当然是两张图像之间的运动 现在,假定我们已有了一个视觉里程计,估计了两张图像间的相机运动。那么,只要把相邻时刻的运动“串”起来,就构成了机器人的运动轨迹,从而解决了定位问题。另一方面,我们根据每个时刻的相机位置,计算出各像素对应的空间点的位置,就得到了地图。这么说来,有了VO,是不是就解决了SLAM 问题呢? 我们说,视觉里程计确实是SLAM 的关键问题,我们也会花大量的篇幅来介绍它。然
为了解决漂移问题,我们还需要两种技术:
后端优化笼统地说,后端优化主要指处理SLAM 过程中噪声的问题。虽然我们很希望所有的数据都是准确的,然而现实中,再精确的传感器也带有一定的噪声。因此,除了解决“如何从图像估计出相机运动”之外,我们还要关心这个估计带有多大的噪声,这些噪声是如何从上一时刻传递到下一时刻的、而我们又对当前的估计有多大的自信。后端优化要考虑的问题,就是如何从这些带有噪声的数据中,估计整个系统的状态,以及这个状态估计的不确定性有多大——这称为最大后验概率估计(Maximum-a-Posteriori,MAP)。这里的状态既包括机器人自身的轨迹,也包含地图。 还有几个需要注意的点:
回环检测主要解决位置估计随时间漂移的问题。假设实际情况下,机器人经过一段时间运动后回到了原点,但是由于漂移,它的位置估计值却没有回到原点。怎么办呢?我们想,如果有某种手段,让机器人知道“回到了原点”这件事,或者把“原点”识别出来,我们再把位置估计值“拉”过去,就可以消除漂移了。这就是所谓的回环检测。
建图建图(Mapping)是指构建地图的过程。地图是对环境的描述,但这个描述并不是固 三维刚体运动线性代数简单回顾内积非常简单 坐标系的欧式转换与向量间的旋转类似,我们同样可以描述两个坐标系之间的旋转关系,再加上平移,统称为 相机运动是一个 假设某个点
(
a
1
,
a
2
,
a
3
)
(a_1,a_2,a_3)
(a1?,a2?,a3?)在线性空间基
(
e
1
,
e
2
,
e
3
)
(\textbf{e}_1, \textbf{e}_2, \textbf{e}_3)
(e1?,e2?,e3?) 表示的坐标为: 经过了一次旋转变成到了线性空间另一组集
(
e
1
′
,
e
2
′
,
e
3
′
)
(\textbf{e}_1', \textbf{e}_2', \textbf{e}_3')
(e1′?,e2′?,e3′?) 。注意这里当前点没有发生变化,在上一个坐标系是a,在第二个坐标系下是a’。
如果加上平移t,搭配用一个旋转矩阵R 就可以完整地描述了一个欧氏空间的坐标变换关系。 注意,上式还存在问题。这样的形式在变换多次之后会过于复杂。因此,我们要引入齐次坐标和变换矩阵重写 举例来说,假设经过了两次变换关系如下式,如果经过多次,式子就会非常复杂。 相似,仿射,射影变换通过刚才的章节,我们知道了3维空间中变换矩阵的数学表达。
相机模型
相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程能够用一个几何模型进行描述。 这个模型有很多种,其中最简单的称为 在本节我们先给出相机的针孔模型,再对透镜的畸变模型进行讲解。这两个模型能够把外部的三维点投影到相机内部成像平面, 构成了相机的 相机内参相机内参数是与相机自身特性相关的参数,比如相机的焦距、像素大小等;相机的成像过程实际是将三维空间的点𝑃 = (𝑋,𝑌,𝑍)变换到成像平面的过程。 根据相似三角形原理,我们可以得到 3D 相机坐标系和 2D图像坐标系的映射关系。
像素坐标系与成像坐标系之间,相差了一个缩放和一个原点的平移。
在相机坐标下,设P 的坐标为 [ X , Y , Z ] T [X, Y, Z]^T [X,Y,Z]T ,P′ 为 [ X ′ , Y ′ , Z ′ ] T [X', Y', Z']^T [X′,Y′,Z′]T。 我们设像素坐标在成像平面u 轴上缩放了 α \alpha α 倍,在成像平面v轴 上缩放了 β \beta β 倍。同时,原点平移了 [ c x , c y ] T [c_x, c_y]^T [cx?,cy?]T 。那么,容易得到下图 相机坐标下,P 的坐标为 [ X , Y , Z ] T [X, Y, Z]^T [X,Y,Z]T,我们可以理解为先映射到成像平面坐标,然后映射到像素平面坐标。 并且齐次,最后得到
K有4个未知数和相机的构造相关,𝑓𝑥,𝑓𝑦和相机的焦距,像素和真实世界的转化比例(比如一米多少个像素)有关;𝑐𝑥,𝑐𝑦是平移的距离,和相机成像平面的大小有关。确定内参的过程就是 相机外参除了内参之外,自然还有相对的外参。由于相机在运动,所以P 的相机坐标应该是它的世界坐标 Pw,根据相机的当前位姿,变换到相机坐标系下的结果。 相机的位姿由它的旋转矩阵
R
R
R 和平移向量
t
t
t 来描述。那么有:
我们可以理解为 它的世界坐标 P w P_w Pw?,
相机的位姿
R
R
R ,
t
t
t 又称为相机的外参数(Camera Extrinsics)。相比于不变的内参,外参会随着相机运动发生改变,同时也是SLAM 小结相机内参数是与相机自身特性相关的参数,比如相机的焦距、像素大小等; |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:44:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |