首页 > 其他分享 >相机姿态估计

相机姿态估计

时间:2022-10-08 21:45:08浏览次数:48  
标签:frac 对极 Sigma 矩阵 相机 估计 sigma 姿态

总目标:计算相机运动

2D-2D:对极几何

对极约束

\[x{_2}{^T} t^∧Rx_1=0 \]

\[p_2^TK^{-T}t^∧RK^{-1}p_1=0 \]

它的几何意义是\(O_1,P,O_2\)三者共面。对极约束中包含了平移和旋转。
定义基础矩阵(Fundamental Matrix)\(F\)和本质矩阵(Essential Matrix)\(E\),

\[E=t^∧R,F=K^{-T}EK^{-1} \]

则对极约束:

\[x_2^TEx_1=p_2^TFp_1=0 \]

本质矩阵E的求解

E的性质:

  • 对极约束是等式为零的约束,E乘以任意非零常数后,对极约束依然满足
  • \(E=t^∧R\),其奇异值是\([\sigma ,\sigma ,0]^T\)的形式。
  • R和t共有六个自由度,则E也有6自由度。但由于尺度等价性(可以同时乘以常数),E实际上有5个自由度

八点法

  • 为什么选择八个点,而不是5个点?
    E的内在性质是一种非线性性质,在估计时会带来麻烦,因此,也可以只考虑它的尺度等价性。E是一个3✖3的矩阵,9个点,考虑尺度等价性后,需要8个点。
  • 多于8对点的情况:
    计算最小二乘解,将八点法中的左侧矩阵记为A:
    Ae=0,八点法中A的大小为8✖9,若给定的匹配点多于8,构成超定方程,则不一定能求得e。因此可以最小化一个二次型来求解:

\[min_e||Ae||^2_2=min_ee^TA^TAe \]

  • 八点法:
    • 选取8对匹配点,代入对极约束。则可求得E。
    • 再利用SVD分解:

      \[E=U\Sigma V^T \]

    • 求得t,R的可能值:

    \[t_1^∧=UR_Z(\frac{\pi}{2})\Sigma U^T,R_1=UR_Z^T(\frac{pi}{2})V^T \]

    \[t_2^∧=UR_Z(-\frac{\pi}{2})\Sigma U^T,R_2=UR_Z^T(-\frac{\pi}{2})V^T \]

    • \(R_Z(\frac{\pi}{2})\)表示沿z轴旋转90度得到旋转矩阵。同时E和-E等价,所以也可以对任意一个t取负号。因此,共存在4个解。但只有一个解使得P在两个相机中都具有正的深度。
    • 我们根据线性方程求出的E可能不满足E的内在性质——奇异值可能不为\([\sigma ,\sigma ,0]^T\)的形式。因此,我们会刻意将\(\Sigma\)矩阵调整为上面的样子。

      \[E=U diag(\frac{\sigma_{1}+\sigma_{2}}{2},\frac{\sigma_{1}+\sigma_{2}}{2},0)V^T \]

单应矩阵H

  • 通过假设场景中的特征点都落在同一平面上:

    \[-\frac{n^TP}{d}=1 \]

    得到每对匹配点的线性关系。然后选取8对点进行求解H。同样,再将H分解得到R和t。
  • 单应性的重要意义:
    当特征点共面或者发生相机纯旋转时,基础矩阵的自由度下降,这就出现了退化(degenerate)。此时,基础矩阵多余出来的自由度将会主要由噪声决定。
    为此,我们会同时估计基础矩阵F和单应矩阵H,选择重投影误差比较小的那个作为最终的运动估计。

三角测量

目的是求出深度。

\[s_2x_2=s_1Rx_1+t \]

同乘\(x_2^∧\):

\[s_2x_2^∧x_2=s_1x_2^∧Rx_1+x_2^∧t \]

\[s_2x_2^∧x_2=0 \]

变为求解$$s_1x_2^∧ Rx_1+x_2^∧t=0$$

3D-2D:Pnp

DLT

每对匹配点满足

\[t_1^Tp-t_3^Tpu_1=0\\ t_1^Tp-t_3^Tpu_1=0\]

找出6对匹配点,列12个方程求解t(定义[R|t]为一个3✖4的矩阵,\(t_1\)代表\((t_1,t_2,t_3,t_4)^T\),以此类推),但旋转矩阵需要满足约束,可以由QR分解来求得。

P3P

通过余弦定理,选择3对匹配点进行运算。

最小化重投影误差(Bundle Adjustment)

Bundle Adjustment:把相机和三维点放在一起进行最小化的问题。


其中\(u_i\)表示观测数据,当e为像素坐标误差,x为相机位姿。

3D-3D:ICP(Iterative Cloest Point)

ICP可以分为以下三个步骤求解:

  • 计算两组点的质心位置\(p,p^{'}\),然后计算每个点的去质心坐标:

\[q_i=p_i-p,q^{'}_i=p^{'}_i-p^{'} \]

  • 根据以下优化问题计算旋转矩阵:

\[R^* = argmin_R\frac{1}{2} \sum_{i=1}^{n} \lvert \rvert q_i - R q^{'}_{i} \lvert \rvert ^2 \]

  • 根据第2步的R计算t:

\[t^*=p-Rp^{'} \]

SVD求解

定义\(W=\sum_{i=1}^{n} q_iq^{'T}_i\).
W是一个3✖3的矩阵,对W进行SVD分解:

\[W=U\Sigma V^T \]

当W满秩时,R为

\[R=UV^T \]

非线性优化方法

以李代数表达位姿时,目标函数可以写成:

标签:frac,对极,Sigma,矩阵,相机,估计,sigma,姿态
From: https://www.cnblogs.com/code-fun/p/16770312.html

相关文章

  • 相机电源受干扰案例分析,严重影响画质
    ▼关注公众号:工程师看海▼对于PCBlayout工程师而言,除了丰富的经验之外一定要有扎实的理论基础,信号完整性和电源完整性是看家本领,否则即使走线工具用的再熟练也无济于事。想......
  • 这次操机撞了个大件,工作估计保不住了!
    师傅总是和我说调活的时候一定要慢走多看!!!今天干活时自己粗心大意,实现了工作生涯中第一次撞机。设备科说配件不好买,要跟原厂买,保守估计得2W左右…… 我忐忑去问师傅有什么后......
  • 点估计
    目录1点估计1.1矩法估计1.1.1概述(1)矩法估计的提出(2)总体矩(3)样本矩(4)矩法1.1.2实例1.2极大似然估计MLE1.2.1概述(1)极大似然法的提出(2)极大似然估计的统计学定义(3)极大似然......
  • Matlab双目相机标定参数--python
    为了以后便于查看和学习,在此记录一下。我使用的是单USB双目摄像头,分辨率2560*720。在Matlab中标定好的参数写入Pycharm中,以进行后续处理。 注意事项:在填写相机内参时要......
  • 大盘点|6D姿态估计算法汇总(上)
    1、DenseFusion:6DObjectPoseEstimationbyIterativeDenseFusion(CVPR2019)原文链接:https://arxiv.org/abs/1901.04780代码链接:https://github.com/j96w/DenseFusio......
  • 梅卡曼德招聘|3D视觉、机器人算法、相机软件工程师等多岗位
    3D视觉工坊致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁。岗位汇总3D视觉算法工程师立体视觉算法工程师深度学习算法工程师机器人算法......
  • 一文图解单目相机标定算法
    有一天,蟹老板找底下的员工川建国同学:等蟹老板走后,然后转头问旁边的学霸李雷同学:李雷同学整理了下情绪:有人反映哦,有时候我们发出来的技术贴太硬了,不方便去理解,于是,就有了上面......
  • 事件相机特征跟踪-模板跟踪方法
    ​1、前言由于事件相机不能提供完整的图像,所以最初的特征跟踪依赖传统相机的数据。本推送介绍事件相机特征检测与跟踪的一篇较早的工作:FeatureDetectionandTrackingwith......
  • 事件相机特征跟踪-概率数据关联法
    1、前言在特征跟踪时,有一个重要的概念是数据关联(DataAssociation)。所谓数据关联,可以理解为:哪些数据是由同一个源产生?对于传统图像而言,我们可以计算特征的描述子,进行匹配从......
  • 物体的三维识别与6D位姿估计:PPF系列论文介绍(五)
    本文创新点:点对特征是一种广泛应用的检测点云中三维物体的方法,但在存在传感器噪声和背景杂波的情况下,它们很容易失效。本文引入了新的采样和投票方案,可以很好地降低杂波和传......