【机器视觉3】双目立体视觉模型

news2025/1/11 1:06:43

双目立体视觉模型

  • 简单模型
  • 一般模型

简单模型

假设两个摄像机平行放置于同一高度、光轴平行、成像平面重合、焦距相同、左右图像每一行y坐标方向、大小相同,如下图所示:
在这里插入图片描述
由左右成像平面上的点、目标物点、焦距、摄像机中心基线距离的几何关系可以得到: { x l X = f Z x r ( X − D ) = f Z y l Y = y r Y = f Z \begin{cases}\frac{x_l}{X}=\frac{f}{Z}\\ \frac{x_r}{(X-D)}=\frac{f}{Z}\\ \frac{y_l}{Y}=\frac{y_r}{Y}=\frac{f}{Z}\end{cases} Xxl=Zf(XD)xr=ZfYyl=Yyr=Zf设置视差 d = x l − x r d=x_l-x_r d=xlxr,则可求解出 P P P坐标: [ X Y Z ] = [ D x l / d D y l / d D f / d ] \begin{bmatrix}X\\ Y\\ Z\end{bmatrix}=\begin{bmatrix}Dx_l/d\\ Dy_l/d\\ Df/d\end{bmatrix} XYZ = Dxl/dDyl/dDf/d 因此,只需获取基线距离 D D D、目标点左右成像坐标 p l p_l pl p r p_r pr、视差 d d d ,即可得到物体在左摄像机坐标系下的3D位置坐标。这种方法运算量少,适用于对精度要求不高的场景。

一般模型

实际摄像机由于制造工艺等原因,导致摄像机成像平面不在同一平面,且两摄像机光轴存在一定角度。因此必须建立双目立体视觉的一般模型来对实际系统进行分析。
在这里插入图片描述
设左摄像机坐标系 O l − X l Y l Z l O_l - X_l Y_l Z_l OlXlYlZl固定在世界坐标系,图像坐标系为 o l − x l y l o_l-x_ly_l olxlyl,焦距为 f l f_l fl。右摄像机坐标系 O r − X r Y r Z r O_r - X_r Y_r Z_r OrXrYrZr,对应图像坐标系 o r − x r y r o_r-x_ry_r orxryr,焦距为 f r f_r fr,其光轴与左摄像机成角 θ \theta θ
左右摄像机投影变换模型分别(图像坐标系为物理单位尺度): s l [ x l y l 1 ] = [ f l 0 0 0 f l 0 0 0 1 ] [ X l Y l Z l ] s_l\begin{bmatrix}x_l\\ y_l\\ 1\end{bmatrix}=\begin{bmatrix}f_l&0&0\\ 0&f_l&0\\ 0&0&1\end{bmatrix}\begin{bmatrix}X_l\\ Y_l\\ Z_l\end{bmatrix} sl xlyl1 = fl000fl0001 XlYlZl s r [ x r y r 1 ] = [ f r 0 0 0 f r 0 0 0 1 ] [ X r Y r Z r ] s_r\begin{bmatrix}x_r\\ y_r\\ 1\end{bmatrix}=\begin{bmatrix}f_r&0&0\\ 0&f_r&0\\ 0&0&1\end{bmatrix}\begin{bmatrix}X_r\\ Y_r\\ Z_r\end{bmatrix} sr xryr1 = fr000fr0001 XrYrZr 其中, s l Z l = s r Z r = 1 \frac{s_l}{Z_l}=\frac{s_r}{Z_r}=1 Zlsl=Zrsr=1
设左摄像机坐标系相对右摄像机坐标系的变换矩阵为: R = [ r 1 r 2 r 3 r 4 r 5 r 6 r 7 r 8 r 9 ] , T = [ t x t y t z ] R=\begin{bmatrix}r_1&r_2&r_3\\ r_4&r_5&r_6\\ r_7&r_8&r_9\end{bmatrix},T=\begin{bmatrix}t_x\\ t_y\\ t_z\end{bmatrix} R= r1r4r7r2r5r8r3r6r9 ,T= txtytz 因此,右坐标系下的坐标通过左坐标系下坐标以及变换矩阵表示为: [ X r Y r Z r ] = [ R T ] [ X l Y l Z l 1 ] \begin{bmatrix}X_r\\ Y_r\\ Z_r\end{bmatrix}=\begin{bmatrix}R&T\end{bmatrix}\begin{bmatrix}X_l\\ Y_l\\ Z_l\\ 1\end{bmatrix} XrYrZr =[RT] XlYlZl1 联立上式,可以计算出目标点在左坐标系(世界坐标系)下的坐标: [ X Y Z ] = [ X l Y l Z l ] = [ Z l x l f l Z l y l f l f l ( f r t y − y r t z ) y r ( r 7 x l + r 8 y l + f l r 9 ) − f r ( r 4 x l + r 5 y l + f l r 6 ) ] \begin{bmatrix}X\\Y\\Z\end{bmatrix}=\begin{bmatrix}X_l\\Y_l\\Z_l\end{bmatrix}=\begin{bmatrix}\frac{Z_lx_l}{f_l}\\ \frac{Z_ly_l}{f_l}\\ \frac{f_l(f_rt_y-y_rt_z)}{y_r\left(r_7x_l+r_8y_l+f_lr_9\right)-f_r\left(r_4x_l+r_5y_l+f_lr_6\right)}\end{bmatrix} XYZ = XlYlZl = flZlxlflZlylyr(r7xl+r8yl+flr9)fr(r4xl+r5yl+flr6)fl(frtyyrtz) 通过以上推导可知,已知左右摄像机焦距 f l f_l fl f r f_r fr、目标点在左右相机的坐标 p l p_l pl p r p_r pr、变换矩阵 R R R T T T就可以获取目标点的三维坐标。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL学习指南笔记经典案例句

作者:BSXY_19计科_陈永跃 BSXY_信息学院 注:未经允许禁止转发任何内容 该文章是一篇关于MySQL的一个学习的笔记或是指南,该文章中有很多的经典的案例可进行相应的练习和参考,后期的话会持续更新关于数据库系统方面的文章。 MySQL学…

供应商评估:关键标准以及如何执行

几乎每个行业的企业都与制造商、进口商、服务提供商和分销商等供应商合作。由于通常有几个供应商可供选择,进行供应商评估有助于企业选出其中最符合其业务需求的供应商。 什么是供应商评估? 供应商评估是企业在为其产品或材料选择供应商时使用的过程。…

常见电子元器件和电路

目录 常见电子元器件一览表(字母标志)NTC(负温度系数热敏电阻)压敏电阻X2电容(抑制电源电磁干扰用电容器)泄放电阻共模电压共模电感整流桥滤波电容RCD吸收二极管Y电容整流器的原理输出整流肖特基二极管 功率晶体管(GTR,三极管)双极型晶体管(BJT&#xff…

iOS swift5 获取系统或其他app已经连接的蓝牙设备

文章目录 chatGPT答案1.2 retrievePeripheralsWithIdentifiers 本人实例参考博客 chatGPT答案 1.1 retrieveConnectedPeripherals(withServices (本人没有测试成功) 要获取系统或其他app已连接的蓝牙设备,你可以使用CoreBluetooth框架提供的CBCentralManager类。下…

【节点边际电价】机组运行约束对机组节点边际电价的影响分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

新人如何学习软件测试

零基础学习软件测试不失为一个好的选择,虽然IT行业里对小白最友好的非软件测试莫属了,但是也要看你个人在学习软件测试这件事上面花费了多少的时间和努力了~ 每年毕业季,IT行业依然是比较热门且收入是最高的行业。对于应届毕业生来说想要进入…

Unity3d 开发Pico4应用打开工程卡在Importing(iteration xxx) busy for xx:xx)...问题记录

问题 大致问题如题: 步骤是参照了PICO官方给出的快速开始的步骤进行的,而这个我问题的出现是在导入 PICO Unity Integration SDK 前往 SDK 下载中心,下载最新版本的 SDK。 1.解压所下载的 SDK 压缩包。 2.你将会得到一个包含 package.json…

微服务圣经1:零基础搭建一套SpringCloud微服务脚手架(SpringCloud+Dubbo+Docker+Jenkins)

说在前面 在40岁老架构师尼恩的读者社群(50)中,大量的小伙伴是架构师、高级开发,大家都有丰富的开发、架构经验。 在开发过程中,一般情况下,大家都是用现有的开发框架。 导致的一个严重问题是&#xff1…

全网独家首发最牛最全面的JMeter使用BeanShell断言

BeanShell简介 BeanShell是使用Java语法的一套脚本语言,在JMeter的多种组件中都有BeanShell的身影,如: 定时器:BeanShell Timer前置处理器:BeanShell PreProcessor采样器:BeanShell Sampler后置处理器&am…

JAVA - 字符串工具类StringBuilder和StringBuffer

文章目录 目录 文章目录 前言 二.常用方法演示 1.append()用于将指定的字符串添加到当前StringBuilder对象的末尾 2.delete():用于删除StringBuilder对象中指定位置的字符。 3.insert():用于在指定位置插入指定字符串。 4.replace():用于替换…

YOLOv5【detect.py源码及参数】超详细注释解读!!!建议收藏✨✨!

之前的文章介绍了YOLOv5的网络结构🚀与目录结构源码🚀的详细解读,今天带来的是YOLOv5的 detect.py 代码逐行解读以及注释,废话不多说,让我们一起学习YOLOv5的 detect.py 源码吧! YOLOv5所使用版本&#xf…

RocketMQ介绍

一、MQ简介 1.1 项目工程弊端 1.2 MQ简介 MQ(Message Queue)消息队列,是一种用来保存消息数据的队列 队列:数据结构的一种,特征为 “先进先出” 何为消息: 服务器间的业务请求 原始架构: 服务器中的A功能…

Java并发编程:并发问题和多线程技术的应用和优化

章节一:引言 在当今的软件开发领域中,多线程编程是一项至关重要的技术。随着处理器核心数量的增加和计算机系统的并行性的不断提高,充分利用多核心处理器的能力已成为现代软件开发的关键要素之一。Java作为一种强大的编程语言,在…

MobPush Flutter平台插件

集成准备 注册账号 使用PushSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以点击查看注册流程 MobPush后台配置 注册MobTech账号后,需要在MobTech后台进行相关信息的配置&#xff…

信息学算法竞赛中一种特殊的数据读入方式

在算法竞赛中,有时会出现一些特殊的数据读入,比如每行的数据元素个数不确定,更复杂一些的是连续多行的数据个数不确定。单行的不确定元素个数的读入可以借助 w h i l e ( while( while(~ s c a n f ( ) ) scanf()) scanf())或 w h i l e ( c …

简单实现小程序授权登录功能

本人给大家带来了关于微信小程序的相关知识,其中主要介绍了怎么实现小程序授权登录功能的相关内容,下面一起来看一下,希望对大家有帮助。 在我们平时工作、学习、生活中,微信小程序已成为我们密不可分的一部分,我们仔细…

【Java】记录一次服务性能问题定位、调优完整过程

文章目录 背景压测准备初步压测结论 排查过程记录排除中间件及网络因素借助Arthas及Skywalking暴露prometheus指标修改数据库最大连接池数场景一场景二场景三场景四场景五场景六场景七场景八结论 Consumer消费能力优化增加消费者增加Topic Queue数量Queue总数:96Que…

Redis:哨兵模式——可以理解为主从复制的升级版

如果不懂什么是主从复制,可以看我的上一篇文章,这一篇文章与上一篇文章息息相关,可以先去大概去了解一下。 Redis:主从复制_通过此功能实现对内存上的数据更好的保护_不想睡醒的梦的博客-CSDN博客 什么是哨兵模式? 上一篇文章主…

【穿针引线】基于ElAdmin项目论Spring Security的工作原理,实现前后端OAuth2单点登录,源码分析

【穿针引线】基于ElAdmin项目论Spring Security的工作原理,源码分析 序一、核心类1.1 SecurityContext 安全上下文1.2 网安适配器WebSecurityConfigurerAdapter1.3 认证器 Authentication1.4 信息认证提供者1.4.1 抽象用户信息认证提供者 AbstractUserDetailsAuthen…

01-C++-VSCode配置C++环境(windows)

VSCode配置C环境 前言安装VSCode安装mingw编译器VSCode配置C环境 前言 本篇来学习写使用VSCode配置C环境 安装VSCode 下载地址:VSCode 下载后路next安装即可 安装mingw编译器 下载地址:mingw64 点击Files 向下拉,点击下载(建议windows6…