计算机视觉基础(8)——齐次坐标系与相机内外参

前言

本节我们将学习到透视投影、齐次坐标系等基础知识,在这些基础知识上,进一步了解到相机的参数,相机参数分为相机外参和相机内参,相机外参是从世界坐标系到相机坐标系,相机内参是从相机坐标系到图像坐标系。

一、透视投影

首先让我们回顾一下上节学习的针孔相机模型

所有光线相交于相机中心 (针孔),在相机后的图像平面成倒像

图像平面与相机的距离为焦距f,是相机的一项参数

在相机前假设存在虚像,与实像关于针孔呈中心对称

针孔模型将3D场景投影至2D平面,这个过程是典型的透视投影。

1.1  透视投影的性质

直线投影后仍是直线 (Line-preserving)

物体投影后的大小与原大小不一定相同,与距离成反比,近大远小 (Not length-preserving)

投影前后角度也会发生变化 (Not angle-preserving),即平行线投影后不再平行

同一方向上的所有平行线相交于一点,消逝点 (Vanishing point)

消逝点代表无穷远点,每个方向有且仅有一个消逝点

1.2  正投影与弱透视投影

1.3  数学推导

二、齐次坐标系

齐次坐标系(Homogeneous Coordinates, H.C.) 是投影几何中常用坐标系

与笛卡尔坐标系相比,H.C.表达式更加简练、紧凑

仿射变换、投影变换都可以用一个矩阵表示

无穷远点可以用有限坐标表示

2.1  齐次坐标系的定义

2.2  齐次坐标系与笛卡尔坐标系的转换

2.3  点、线变换

【点与直线的齐次坐标形式】

【求解两条直线的交点】

【求解通过两点的直线】

2.4  齐次坐标系下的几何变换

刚性几何变换本质是坐标变换

齐次坐标系下坐标变化可以表示为如下一般形式

【举例说明】 

1、选择+平移

2、相似/仿射/投影变换 

3、反变换与级联变换

三、相机参数

相机成像所涉及的坐标系有3个:世界坐标系、相机坐标系、图像坐标系。

世界坐标系:用于描述3D场景中物体的坐标,根据任务定义

相机坐标系:以相机中心为原点的坐标系

图像坐标系:图像平面上的坐标系,以图像左上角作为原点

成像过程实质是从世界坐标系到图像坐标系的映射,映射的过程采用相机外参(Extrinsic)和内参(Intrinsic)描述

成像过程: 世界坐标系 -> 相机坐标系 -> 图像坐标系 -> 相机中心

3.1  相机外参

相机外参:从世界坐标系到相机坐标系

相机坐标系与世界坐标系之间存在旋转和平移变换,分别由旋转矩阵𝑹 ∈ ℝ3×3和平移向量𝑻 ∈ ℝ3×1表示

𝑹𝑻6个自由度,被称为相机的外参 (Extrinsic Parameters)、相机的姿态 (Pose)

世界坐标系到相机坐标系的坐标变换关系:

3.2  相机内参

相机内参:从相机坐标系到图像坐标系

引入额外两个参数 𝑘 与 𝑙  (单位是 𝑝𝑖𝑥𝑒𝑙𝑠 / 𝑐𝑚 )

实现图像水平和竖直方向由物理单位到像素单位的转化:

齐次坐标系的表达形式如下:

3.3  世界坐标系 -> 图像坐标系

总结

通过本节的讲解,我们了解了透视投影的概念,学习了齐次坐标系以及其与笛卡尔坐标系的转换,并进一步学习了点线变换和齐次坐标系下的几何变换。在掌握这些基础知识后,我们进一步学习了相机的内外参,从世界坐标系到相机坐标系,再到图像坐标系,为我们后续学习相机标定打下坚实的基础。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成功解决:com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl.

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 前言 使用Spring 整合 mybatis的时候 报错…

k8s_base

应用程序在服务器上部署方式的演变,互联网发展到现在为止 应用程序在服务器上部署方式 历经了3个时代1. 传统部署 优点简单 缺点就是操作系统的资源是有限制的,比如说操作系统的磁盘,内存 比如说我8G,部署了3个应用程序,当有一天…

Django测试环境搭建及ORM查询(创建外键|跨表查询|双下划线查询 )

文章目录 一、表查询数据准备及测试环境搭建模型层前期准备测试环境搭建代码演示 二、ORM操作相关方法三、ORM常见的查询关键字四、ORM底层SQL语句五、双下划线查询数据查询(双下划线)双下划线小训练Django ORM __双下划线细解 六、ORM外键字段创建基础表…

国内领先的五大API接口供应商

API(Application Programming Interface)接口,现在很多应用系统中常用的开放接口,对接相应的系统、软件功能,简化专业化的程序开发。作者用过的国内比较稳定的API接口供应商有如下几家,大家可以参考选择&am…

苍穹外卖-day11

苍穹外卖-day11 课程内容 Apache ECharts营业额统计用户统计订单统计销量排名Top10 功能实现:数据统计 数据统计效果图: 1. Apache ECharts 1.1 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生…

调整Windows键盘上只能看到拼音而无法看到实际的文本以及关闭输入法悬浮窗方法

一、输入法设置 如果您在键盘上只能看到拼音而无法看到实际的文本,这可能是因为您的输入法设置为中文拼音输入法或其他仅显示拼音的输入法。 要解决这个问题,您可以尝试以下方法: 1. 切换输入法:按下 Shift Alt 组合键或 Wind…

轻量封装WebGPU渲染系统示例<27>- 浮点RTT纹理(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/FloatRTT.ts 当前示例运行效果: 此示例基于此渲染系统实现,当前示例TypeScript源码如下: const floatRTT { diffuse: { uuid: "rtt0", rttTe…

2023年亚太杯数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模…

Backblaze 2023 Q3硬盘故障质量报告解读

作为一家在2021年在美国纳斯达克上市的云端备份公司,Backblaze一直保持着对外定期发布HDD和SSD的故障率稳定性质量报告,给大家提供了一份真实应用场景下的稳定性分析参考数据。2023年度之前发布的两次报告,请参考: Backblaze发布2…

qnx 工程目录创建工具 addvariant

文章目录 前言一、addvariant 是什么二、addvariant 使用实例1. variant names 参数说明2. 创建一个可执行文件工程3. 创建一个动态库工程 总结参考资料 前言 本文主要介绍如何在qnx 开发环境中创建工程目录及其相关的配置文件(common.mk, Makefile 文件等) 软件版本&#xff…

Java毕业设计心得体会

1. 开始准备选题、开题报告 大四上学期开学时开始准备论文的,首先是确定论文主题,看自己想做什么毕业设计,可以选取之前接触过的,做过的东西,这样快一些,我之前一直是学Java的,就打算直接用Jav…

如何将本地Portainer管理界面结合cpolar内网穿透工具实现远程浏览器访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 Portainer 是一个轻量级的容器管理工具,可以通过 Web 界面对 Docker 容器进行管理和监控。它提供了可…

操作系统(二 )| 进程控制 进程状态 进程描述 进程控制 进程同步互斥

文章目录 1 进程和程序区别2 进程状态2.1 进程的5种基本状态2.2 进程状态之间转换2.3 七状态模型 3 进程描述3.1 进程控制块 PCB3.2 进程块组织方式 4 进程控制5 进程同步 互斥5.1 区分进程互斥和同步5.2 核心方案5.3 其他方案方案1 设置锁变量方案2 严格轮转法方案3 Peterson解…

rabbitmq 集群搭建

RabbitMQ集群介绍 RabbitMQ集群是一组RabbitMQ节点(broker)的集合,它们一起工作以提供高可用性和可伸缩性服务。 RabbitMQ集群中的节点可以在同一物理服务器或不同的物理服务器上运行。 RabbitMQ集群的工作原理是,每个节点在一个…

【机器学习】K近邻算法:原理、实例应用(红酒分类预测)

案例简介:有178个红酒样本,每一款红酒含有13项特征参数,如镁、脯氨酸含量,红酒根据这些特征参数被分成3类。要求是任意输入一组红酒的特征参数,模型需预测出该红酒属于哪一类。 1. K近邻算法介绍 1.1 算法原理 原理&a…

Spring cloud负载均衡@LoadBalanced LoadBalancerClient

LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…

【JAVA学习笔记】70 - 反射

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter23/src 反射 一、反射的引出 package com.yinhai.reflection.question;import com.yinhai.Cat;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IO…

Sonar生成PDF错误Can‘t get Compute Engine task status.Retry..... HTTP error: 401

报错及修改: 报错:INFO: Can’t get Compute Engine task status.Retry… org.sonarqube.ws.connectors.ConnectionException: HTTP error: 401, msg: , query: org.apache.commons.httpclient.methods.GetMethod7a021f49 ERROR: Problem generating PD…

JavaScript的函数的形参与实参是怎么回事

0 写在前面 此文给小白看的,如果不是可以直接关闭 1 讲解 例如JavaScript中定义函数 //定义函数 function 方法名(形参){方法体-->使用形参}//使用函数 方法名字(实参)具体干了什么呢?此处以伪代码举例 //定义函数 function eat(A,B){A 去 B 家吃…

rsync远程同步(rsync+inotify)

目录 一、概述 1、关于rsync 2、rsync的特点: 3、备份方式: 4、同步方式: 二、rsync相关命令 1、rsync常用命令的选项: 2、启动和关闭rsync服务: 3、关闭 rsync 服务 三、 免交互: 1、免密同步&a…