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

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

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.dtcms.com/a/242445.html

相关文章:

  • 屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
  • 【Java】在 Spring Boot 中集成 Spring Security + JWT 实现基于 Token 的身份认证
  • 使用分级同态加密防御梯度泄漏
  • 篇章三 论坛系统——环境搭建
  • Unreal从入门到精通之使用 CheatManager 自定义控制台命令
  • c语言中的hashmap
  • MYSQL备份恢复知识:第十章:xTraBackup备份工具
  • 期末考试复习总结-《从简单的页面开始(上)》
  • YOLO电力物目标检测训练
  • K8S的基本概念
  • Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
  • 计算机系统概述(4)
  • POI设置Excel单元格背景色
  • 【代码模板】从huggingface加载tokenizer和模型,进行推理
  • WebRTC 中 ICE 流程优化:SRS 轻量级部署与 NAT 类型检测实战
  • 工控类UI设计经常接触到10.1寸迪文屏
  • 【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
  • 群晖NAS是否有专业的安全防护措施?是否支持无密码登录?
  • 【JavaEE】-- HTTP
  • 各数据库字段类型统计
  • CentOS7下的集群化部署
  • C语言数据结构笔记5:Keil 编译器优化行为_malloc指针内存分配问题
  • F5 BIG IP show running config
  • MSSQL 订阅和发布主从库
  • Vim 删除命令完整学习笔记
  • Vim 光标移动命令总览
  • 【部署】使用华为云容器化部署Java项目指南
  • 统计学核心概念与现实应用精解(偏机器学习)
  • 第1章信息化知识归纳总结补充内容
  • Android 应用开发概述与环境搭建指南