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

【机器视觉】单目测距——运动结构恢复

ps:图是随便找的,为了凑个封面 

前言

        在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛,存在无穷解。

        由于开发的产品面向普通用户,暂时不考虑深度相机或者激光雷达。

数学建模

        现已知信息:

  • 连续的两帧图像 I_1,I_2
  • 相机内参矩阵 K
  • n 对匹配的特征点 x_1^i\leftrightarrow x_2^i,其中 x_1^i = (u_1^i,v_1^i),x_2^i = (u_2^i,v_2^i)

        未知信息:

  • 前后帧相机旋转矩阵 R,平移矩阵 t

        求解目标:

  • 计算特征 x^i 在 I_1 中的深度 Z_1^i

极几何约束

        关于对极几何部分,在上一篇文章中有提到:【机器视觉】摄像头运动估计——对极几何https://blog.csdn.net/weixin_73858308/article/details/148403073?spm=1001.2014.3001.5501        由于相机运动参数 R,t 未知,但知道连续两帧之间存在运动,利用对极几何约束解空间。

  • 归一化相机坐标系

        q_1^i=K^{-1}\begin{bmatrix} u_1^i \\ v_1^i \\ 1 \end{bmatrix},q_2^i=K^{-1}\begin{bmatrix} u_2^i \\ v_2^i \\ 1 \end{bmatrix}

  • 对极约束

 (q^i_2)^TEq_1^i=0

  • 估计本质矩阵

        由于本质矩阵拥有7个自由度,以及构建超定方程组增强鲁棒性,选取至少8对特征点,即n \geq 8,将对极约束展开:

\begin{bmatrix} x_2^ix_1^i & x_2^iy_1^i &x_2^i &y_2^ix_1^i &y_2^iy_1^i & y_2^i & y_1^i &1 \end{bmatrix} e =0

e=\begin{bmatrix} E_{11} & E _{12} \cdots E_{33} \end{bmatrix}

  • 从本质矩阵分解 R,t 

        对本质矩阵进行SVD分解: 

 E=U\begin{bmatrix} 1 & & \\ &1 & \\ & &0 \end{bmatrix} V^T

三角计算深度

  • 投影方程

        在第一个相机坐标系下:

X_1^i=Z_1^iq_1^i

        在第二个相机坐标系下: 

X_2^i=RX_1^i+t=Z_2^iq_2^i

        有方程:

Z_2^iq_2^i=R(Z_1^iq_1^i)+t

  • 求解超定方程 

\begin{bmatrix} q_2^i & -Rq_1^i \end{bmatrix}^T\begin{bmatrix} q_2^i & -Rq_1^i \end{bmatrix}\begin{bmatrix} Z_2^i\\ Z_1^i \end{bmatrix}=\begin{bmatrix} q_2^i & -Rq_1^i \end{bmatrix}^Tt 

        最终得到深度信息

基于光流的深度估计

        这是另一种方法,取代了利用其它算法获取特征点,直接计算场景中所有点的深度信息。

        具体思想是根据光流跟踪图像所有点的位移,将位移后位置作为特征点 x_2。 

       关于光流法,在另一篇文章中说明:【机器视觉】运动分析——LK光流https://blog.csdn.net/weixin_73858308/article/details/147956922?spm=1001.2014.3001.5501        由于已知条件为连续的两帧图像,满足光流基本假设,后续计算公式与上述对极方程,三角化方程相同,故不再赘述。

http://www.xdnf.cn/news/13306.html

相关文章:

  • synchronized 学习
  • 计算机网络笔记(三十四)——5.6TCP可靠传输的实现
  • 【持续更新】linux网络编程试题
  • 优化篇 | 网络时延优化有哪些项
  • ARM 单片机定义变量绝对地址方法
  • umask命令详解
  • 如何在Debian中提高phpstorm的稳定性
  • PostgreSQL 安装与配置全指南(适用于 Windows、macOS 与主流 Linux 发行版)
  • <6>-MySQL表的增删查改
  • Fastapi的swagger文档响应超时无法访问的解决办法
  • mybatisplus.BaseMapper#selectPage 使用方法
  • 服务器内存能不能用在台式机上
  • 模板语法中的插值语法详解
  • innodb 数据页结构
  • SpringBoot集成Tess4j :低成本解锁OCR 图片识别能力
  • 论文略读: CUT YOUR LOSSES IN LARGE-VOCABULARY LANGUAGE MODELS
  • YSYX学习记录(八)
  • 【51单片机】5. 矩阵键盘与矩阵键盘密码锁Demo
  • Debian系统简介
  • R7-4 统计单词的个数
  • 电影感户外柔和旅拍Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • C++ 智能指针
  • postgresql搭建与初始化
  • EtherCAT转CC-Link IE协议转换通讯助力库卡机器人与三菱PLC无缝对接
  • 【Linux篇】细品环境变量与地址空间
  • Qt Widget类解析与代码注释
  • day27/60
  • 可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
  • 前端技术 HTML iframe 详细解读
  • 每日算法 -【Swift 算法】删除链表的倒数第 N 个结点