计算机视觉之三维重建(1)---摄像机几何

文章目录

  • 一、针孔模型和透镜
    • 1.1 针孔摄像机
    • 1.2 近轴折射模型
    • 1.3 透镜问题
  • 二、摄像机几何
    • 2.1 像平面和像素平面
    • 2.2 齐次坐标下的投影变换
    • 2.3 摄像机倾斜
    • 2.4 规范化摄像机
    • 2.5 世界坐标系
    • 2.6 Faugeras定理
    • 2.7 投影变换性质:
  • 三、其他投影摄像机模型
    • 3.1 弱透视投影摄像机
    • 3.2 正交投影摄像机


一、针孔模型和透镜

1.1 针孔摄像机

 1. 当我们设计摄像机记录世界时,我们首先会想到将胶片直接放到物体的前方,但是此时胶片上某点处的图像信息可能来自物体的多个位置,图像模糊使得我们无法分辨。

在这里插入图片描述

 2. 最早提出小孔成像的是中国的墨子。那如果我们在胶片和物体之间放一个有针孔的隔板,那么就可以实现物体的光线与胶片上的像素点一对一对应。

在这里插入图片描述

 3. 如下图是一个简单的针孔摄像机模型。物体经过针孔呈现在像平面的像是倒立的。为了研究方便,我们人为定义了一个虚拟像平面,上面的图像是正立的。

在这里插入图片描述

 4. 如下图所示通过数学模型建立三维坐标到二维坐标的映射,我们可以确定出摄像机坐标系与像平面坐标系相对应点处的位置关系。

在这里插入图片描述

在这里插入图片描述

 6. 光圈的大小会对成像有影响,当缩小光圈时,成像会越来越清晰,但也会越来越暗。
思考:那如何应对到达胶片的光线变少,我们可以增加透镜来解决。

在这里插入图片描述

在这里插入图片描述

1.2 近轴折射模型

 1. 焦点和焦距的概念图如下:

在这里插入图片描述

 2. 我们仍然可以建立数学模型来表示胶片上像素点与物体发射光线处的对应关系。

在这里插入图片描述

1.3 透镜问题

 1. 使用透镜带来的第一个问题是会造成失焦。透镜问题中的 “失焦” 主要指的是在拍摄过程中,由于焦距调整不当,导致拍摄主体在胶片或传感器上未能形成清晰的图像。具体来说,当物体上离相机较远的点P在胶片上成像时,如果物体上较近的点在胶片上映射到多个位置,那么就无法形成清晰的焦点,从而产生虚像。

在这里插入图片描述

 2. 失焦的原因可以归结为焦距设置的不准确。每个透镜都有一个特定的 “聚焦” 距离,只有在该距离上的物体才能被清晰地成像。此外,景深也是一个重要的因素。景深是指在摄影机镜头或其他成像器前沿能够取得清晰图像的所成影像的景物空间范围。在一定景深范围内,物体能够形成清晰的像;而超出这个范围,物体则可能形成虚像。

 3. 使用透镜带来的第二个问题是会造成径向畸变。透镜问题中的径向畸变是一种常见的光学现象,它主要沿着透镜的半径方向分布。当光线经过透镜时,由于透镜的制造精度或组装工艺的偏差,光线在远离透镜中心的地方比靠近中心的地方更加弯曲,从而导致图像的失真。这种失真在普通廉价的镜头中尤为明显。

在这里插入图片描述

 4. 径向畸变的产生与透镜的曲率半径、折射率以及光线入射角等因素有关。当光线经过透镜时,由于不同位置的光线受到不同程度的折射,导致它们在成像平面上无法准确聚焦,从而产生径向偏移。这种偏移随着离透镜中心距离的增加而变得更加明显。

 径向畸变主要分为两种类型:桶形畸变和枕形畸变。桶形畸变通常表现为图像边缘向中心收缩,使得图像呈现出一种 “桶状” 的效果;而枕形畸变则表现为图像边缘向外扩张,形成一种 “枕状” 的效果。

二、摄像机几何

2.1 像平面和像素平面

 1. 首先,像平面是一个连续的平面,通常用于描述光线通过透镜后在成像介质(如胶片或图像传感器)上形成的图像。在像平面上,每个点都对应着一定的光线强度和颜色信息,从而构成了我们所看到的图像。这个平面的坐标原点一般设定在图像的中心,即主光轴与图像传感器的交点,以便更准确地描述图像的物理位置和关系,常常使用物理单位如毫米来描述像素在图像中的位置。

 而像素平面则是与图像的存储和显示方式紧密相关的离散平面。在数字图像处理中,图像被表示为一个由多个像素组成的矩阵,每个像素都对应着像素平面上的一个点。这些像素点按照一定的规律排列,共同构成了我们看到的数字图像。像素平面的坐标原点通常设定在图像的左上角顶点,这与计算机图像处理中的常见坐标系统相一致。

在这里插入图片描述

 2. 我们需要对小孔成像模型进行修正。由于在像平面和像素平面中坐标系的原点选择位置和物理单位不同,所以我们只需要在像平面下加上偏置和乘上系数就可以了。第二幅图中 α α α β β β 一般是由摄像机自身决定的。

在这里插入图片描述

在这里插入图片描述

 3. 思考 P P P P ′ P' P 的变换是线性的吗? 答:不是线性的,由于 x x x y y y 变化时 z z z 也有可能变化, z z z 并不是一个恒定的常数,所以并不是线性的。

2.2 齐次坐标下的投影变换

 1. 齐次坐标(Homogeneous Coordinate)是一个用于投影几何里的坐标系统。齐次坐标表示法将一个原本是 n 维的向量用一个 n+1 维向量来表示,从而能够表达更多的信息。

在这里插入图片描述

 2. 下面表达式中 P h P_h Ph 代表物体齐次坐标形式(三维), P h ′ P'_h Ph 代表像的齐次坐标形式(像素平面), P h P_h Ph P h ′ P'_h Ph 之间通过一个三行四列的矩阵 M M M 进行变换。

在这里插入图片描述

在这里插入图片描述

2.3 摄像机倾斜

 1. 摄像机倾斜是指摄像机向一侧或者上下方倾斜拍摄的一种摄像技术,主要是由于工艺制作不好的原因。当摄像机发生倾斜时,拍摄到的图像会相应地发生旋转或倾斜。这种旋转或倾斜会导致图像中的物体和背景之间的相对位置发生变化,从而在像素平面上形成新的几何布局。这种几何变换可能会使得原本水平或垂直的线条变得倾斜,或者使得物体的形状和比例发生扭曲。

 2. 摄像机倾斜情况下,变换矩阵 M M M 也要做出相应的改变。

在这里插入图片描述

 3. 综上所示,最终得到的摄像机坐标系下的摄像机模型如下图所示。反映了摄像机坐标系下的物体某处坐标到像素平面的映射。内参数矩阵 K K K α 、 β 、 θ 、 c x 、 c y α、β、θ、c_x、c_y αβθcxcy 五个参数。

在这里插入图片描述

2.4 规范化摄像机

 规范化摄像机通常指的是将摄像机的参数和设置调整到一种标准或基准状态,以确保拍摄出的图像具有一致性、准确性和可预测性。:此时物体所取的位置应该是与摄像机坐标系的中心相对应。

在这里插入图片描述

2.5 世界坐标系

 1. 世界坐标系是系统的绝对坐标系,用于描述物体在三维空间中的位置。在没有建立用户坐标系之前,画面上所有点的坐标都是以该坐标系的原点来确定各自的位置的。世界坐标系通常由三个轴表示,分别是 x x x 轴、 y y y 轴和 z z z 轴,其中 x x x 轴表示东西方向, y y y 轴表示南北方向, z z z 轴表示高度或海拔。每个点在这个坐标系中都有一个独特的坐标值,可以用 ( x , y , z ) (x, y, z) (x,y,z) 的形式表示。

 2. 假设世界坐标系 P w P_w Pw 做一个旋转与平移后转换到摄像机坐标系 P P P(齐次坐标),那么存在旋转矩阵 R R R(三行三列),平移矩阵 T T T(三行一列),对于旋转矩阵有三个自由度,平移矩阵有三个自由度,那么外参数总共有六个自由度。

在这里插入图片描述

 3. 世界坐标系下的摄像机模型如下所示, P w P_w Pw 表示世界坐标系, P ′ P' P 表示像素平面的齐次坐标系。

在这里插入图片描述

 4. 对于旋转矩阵有三个自由度,平移矩阵有三个自由度,那么外参数总共有六个自由度。 同时考虑外参数和内参数情况下,投影矩阵 M M M 有11个自由度。旋转矩阵 R R R(三行三列),平移矩阵 T T T(三行一列)。

在这里插入图片描述

2.6 Faugeras定理

 1. Faugeras定理是一个关于计算机视觉和摄影几何的重要定理,它主要关注于如何从多视图几何中提取场景的三维结构信息。Faugeras定理通常表述为:在给定足够多的视图和相应的摄像机参数的情况下,我们可以唯一地重建出场景的三维结构。这意味着,通过拍摄同一场景的多张照片,并知道每张照片的摄像机参数(如位置、方向、焦距等),我们可以利用这些信息和Faugeras定理来恢复出场景的三维模型。

 2. Faugeras定理介绍如下:

在这里插入图片描述

2.7 投影变换性质:

 1. 在计算机视觉中,投影变换是一个关键概念,它涉及将三维物体或场景投影到二维图像平面的过程。这种变换模拟了光线如何通过摄像机的镜头并在图像传感器上形成图像的过程。

 2. 投影变化的性质如下所示,共有五条,可对应右边的图来理解。

在这里插入图片描述

三、其他投影摄像机模型

3.1 弱透视投影摄像机

 1. 弱透射投影摄像机是一种特殊的摄像机模型,它在投影过程中采用了弱透视投影的原理。在弱透视投影中,像素坐标与三维坐标之间的关系相对简单,通常只需要一个放大系数就可以进行转换。

在这里插入图片描述

 2. 当观察的场景或物体与摄像机很远时,此时观察的场景或物体近似于平面。比如摄像机照一个人,当之间的距离很远时,人的脸可以看成一个平面,那么应用弱透射投影摄像机可以提供相对准确的投影结果。

在这里插入图片描述

3.2 正交投影摄像机

 正交投影摄像机是一种特殊的摄像机,其投影方式遵循正交投影的原理。正交投影是一种投影变换,其中物体在三维空间中的平行线在投影到二维平面上时仍保持平行。这种投影方式在制图、建模等领域中特别常见,因为它能够保持物体的尺寸和形状不变,不产生透视效果。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【小白笔记:JetsonNano学习(二)JetsonNano 安装开机问题屏幕进不去】

重新烧录sd卡后插入Jetson Nano后出现的界面显示烧录失败,如下所示: 将经过烧录之后的sd卡插入jetson nano之后出现以下的几个界面,表示烧录失败。 原因分析:烧录的tf卡为sd卡时候的格式化的格式不对,新建格式出错&am…

万界星空科技漆包线工厂生产管理软件

今天就说说漆包线行业,漆包线是工业电机(包括电动机和发电机)、变压器、电工仪表、电力及电子元器件、电动工具、家用电器、汽车电器等用来绕制电磁线圈的主要材料。 产业结构调整加快,技术升级和需求多样化是推动漆包线加快产业…

c语言基础~函数详解

前言 今天我们来学习一波函数的概念,帮助各位理解函数,本次博客取自一些书籍以及各大网站的讲解,把它整合在一起并且详细讲解 1函数的理解 我们得知道什么是函数,函数的作用是什么,好不会表述没关系,我们翻书 c primer plus 是这么说的"函数是指…

【JAVA】Servlet开发

目录 HttpServlet HttpServletRequest HttpServletResponse 错误页面 设置网页自动刷新时间 构造重定向相应 js发起http请求 服务器端对js发起的http请求进行处理 前端获取后端数据,添加到当前页面的末尾,代码示例: 前后端交互&…

24计算机考研调剂 | 【官方】山东师范大学(22自命题)

山东师范大学2024年拟接收调剂 考研调剂信息 调剂专业目录如下: 计算机技术(085404)、软件工程(085405) 补充内容 我校2024年硕士研究生调剂工作将于4月8日教育部“中国研究生招生信息网”(https://yz.ch…

如何使用代理IP进行口子查和渠道查:代理IP使用方法

在进行问卷调查时,为了避免被限制访问或被封禁IP,使用代理IP已经成为了必要的选择。 其中,口子查和渠道查也不例外。 使用代理IP可以隐藏本机IP地址,模拟不同的IP地址,从而规避被封禁的风险。但是,对于很…

3.Gen<I>Cam文件配置

Gen<I>Cam踩坑指南 我使用的是大恒usb相机&#xff0c;第一步到其官网下载大恒软件安装包,安装完成后图标如图所示&#xff0c;之后连接相机&#xff0c;打开软件&#xff0c;相机显示一切正常。之后查看软件的安装目录如图&#xff0c;发现有GenICam和GenTL两个文件&am…

2024全新红娘交友系统定制版源码 | 相亲交友小程序源码 全开源可二开

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 全新红娘交友系统定制版源码 | 相亲交友小程序源码 全开源可二开 定制版红娘交友平台小程序源码&#xff0c;很牛逼的东西&#xff0c;虽然是小程序&#xff0c;但是有700多M大&…

【办公类-22-11】周计划系列(5-3)“周计划-03 周计划内容循环修改“ (2024年调整版本)

背景需求&#xff1a; 前文从原来的“新模版”文件夹里提取了周计划主要内容和教案内容。 【办公类-22-10】周计划系列&#xff08;5-2&#xff09;“周计划-02源文件docx读取5天“ &#xff08;2024年调整版本&#xff09;-CSDN博客文章浏览阅读1.1k次&#xff0c;点赞29次&…

苍穹外卖-day10:Spring Task、订单状态定时处理、来单提醒(WebSocket的应用)、客户催单(WebSocket的应用)

苍穹外卖-day10 课程内容 Spring Task订单状态定时处理WebSocket来单提醒客户催单 功能实现&#xff1a;订单状态定时处理、来单提醒和客户催单 订单状态定时处理&#xff1a; 来单提醒&#xff1a; 客户催单&#xff1a; 1. Spring Task 1.1 介绍 Spring Task 是Spring框…

el-form 的表单校验,如何验证某一项或者多项;validateField 的使用

通常对form表单的校验都是整体校验&#xff1a; this.$refs.form.validate( valid > {if (valid) {// 校验通过&#xff0c;业务逻辑代码...} }); 如果需要对表单里的特定一项或几项进行校验&#xff0c;应该如何实现&#xff1f; 业务场景&#xff1a;下图点探测按钮时…

高精度计算

主页&#xff1a;(*∇&#xff40;*) 咦,又好了~ xiaocr_blog &#xff08;1&#xff09;数据的接收方法和存储方法: 当输入的数据很长的时候&#xff0c;可采取字符串方式输入&#xff0c;这样可以输入位数很长的数&#xff0c;利用字符串函数和操作运算&#xff0c;将每一位…

复杂网络——半局部中心法

一、概述 由于最近写论文需要使用复杂网络知识中的半局部中心法&#xff0c;但是截止目前来说&#xff0c;网上几乎搜索不到有关的MATLAB程序代码&#xff0c;只有一篇用Python编写的程序&#xff0c;我的电脑中没有python&#xff0c;所以我花费一些时间&#xff0c;利用matla…

Excel数据可视化

饼图 1、选中数据----点击插入----点击饼图 2、更改数据标签&#xff08;修改标题名直接改就行&#xff09; 柱形图 1、选中数据、点击插入二维柱形图 坐标轴问题----切换行和列 如何将横轴变成想要的4、5、6、7月&#xff1f; &#xff08;1&#xff09;右键----选择数据 -…

计算机二级(Python)真题讲解每日一题:《十字叉》

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬ ‪‬‪‬‪‬‪‬‪‬‮‬‪…

Java解决完全二叉树的节点个数

Java解决完全二叉树的节点个数 01 题目 给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的…

202303 CSP认证 | LDAP

LDAP 好好好&#xff0c;难度直线上升&#xff0c;是一道又有了字符串处理味道的第三题 第一把写官网40分&#xff0c;acwing TLE且只通过了一道数据…本文是自己这题奋斗过程 的一个记录 先贴个40分的代码&#xff1a; #include<bits/stdc.h> using namespace std; t…

计算机网络:性能指标

计算机网络&#xff1a;性能指标 速率带宽吞吐量时延时延带宽积往返时间利用率丢包率 本博客介绍计算机网络的性能指标&#xff0c;我们可以从不同的方面来度量计算机网络的性能。常用的计算机网络性能指标有以下 8 个&#xff0c;他们是&#xff1a;速率、带宽、吞吐量、时延、…

Android弹出通知

发现把Android通知渠道的重要性设置为最高时&#xff0c;当发送通知时&#xff0c;通知能直接弹出来显示&#xff0c;以前一直搞不明白为什么别的app的通知可以弹出来&#xff0c;我的不行&#xff0c;搞了半天原来是这个属性在作怪&#xff0c;示例如下&#xff1a; class Ma…

Flink源码解析(1)TM启动

网络传输模型 首先在看之前,回顾一下akka模型: Flink通讯模型—Akka与Actor模型-CSDN博客 注:ActorRef就是actor的引用,封装好了actor 下面是jm和tm在通讯上的概念图: RpcGateway 不理解网关的作用,可以先移步看这里:网关_百度百科 (baidu.com) 用于定义RPC协议,是…