【NeRF】相机的内外参是什么?单目相机是如何成像的?

news2024/11/22 16:35:26

文章目录

  • 【NeRF】相机的内外参是什么?单目相机是如何成像的?
    • 1.相机外参
    • 2.相机内参

【NeRF】相机的内外参是什么?单目相机是如何成像的?

在做Nerf时对其中的一些原理感到困惑,因而把这些基础理论知识总结下来,方便后面的学习。

对于围绕某一物体拍出来的一组照片而言,我们首先需要弄清不同照片拍摄的方位,如下图所示。而相机的内外参就是用来表达相机位置的参数。其中,相机的位置和朝向由相机的外参(extrinsic matrix)决定,投影属性由相机的内参(intrinsic matrix)决定。
在这里插入图片描述

接下来我们逐一开始介绍:

1.相机外参

相机外参是一个4x4的矩阵 M M M,其作用是将世界坐标系的点 P w o r l d = [ x , y , z , 1 ] P_{world}=[x,y,z,1] Pworld=[x,y,z,1] 变换到相机坐标系 P c a m e r a = M P w o r l d P_{camera}=MP_{world} Pcamera=MPworld下(注意此处为左乘)。我们也把相机外参叫做world-to-camera (w2c)矩阵

补充:这里用到的是齐次坐标系,其定义如下:

如果一个点在无穷远处,这个点的坐标将会 ( ∞ , ∞ ) (\infty,\infty) (,),在欧氏空间中,这就变得没有意义。如果使用齐次坐标,平行线在透视空间的无穷远处交于一点,这样就实现了对于无穷点的表示。

简而言之,齐次坐标就是用N+1维来代表N维坐标

我们可以在一个2D笛卡尔坐标末尾加上一个额外的变量w来形成 2D齐次坐标。因此,一个在笛卡尔坐标系下的点 ( X , Y ) (X, Y) (X,Y)在齐次坐标里面变成了 ( x , y , w ) (x,y,w) (x,y,w),并且有:
X = x w ; Y = y w X=\frac{x}{w};Y=\frac{y}{w} X=wx;Y=wy
例如笛卡尔坐标系下(1,2),在齐次坐标系中可以表示为(1,2,1),如果点(1,2)移动到无限远处,在笛卡尔坐标下它变为 ( ∞ , ∞ ) (\infty,\infty) (,),然后它的齐次坐标表示为(1,2,0)。注意这样的话,我们可以不用 ” ∞ \infty " 来表示一个无穷远处的点了。

另外注意方向向量的齐次坐标第四维等于0,点坐标第四维等于1。

而NeRF主要使用camera-to-world (c2w),也就是相机外参的逆矩阵,其作用是把相机坐标系的点变换到世界坐标系。c2w矩阵是一个4x4的矩阵,左上角3x3是旋转矩阵R,又上角的3x1向量是平移向量T。有时写的时候可以忽略最后一行[0,0,0,1]。

img

[R,T]表示的c2w矩阵的值描述了相机坐标系的朝向和原点:

img

具体的,旋转矩阵的第一列到第三列分别表示了相机坐标系的X, Y, Z轴在世界坐标系下对应的方向;平移向量表示的是相机原点在世界坐标系的对应位置

为了更通俗的理解c2w矩阵的内容,我们将c2w作用于相机坐标系中的x轴,也就是[1,0,0,0]上:

[R,T]*[1, 0, 0, 0]^T = [r11, r21, r31]^T

这也就是说相机坐标系下的x轴也就是世界坐标系中的 [r11, r21, r31],这也就是相机外参矩阵中的第一列内容。同理,将c2w作用到相机坐标系下的X轴[1, 0, 0, 0]、Y轴[0, 1, 0, 0]、 Z轴[0, 0, 1, 0]、以及原点[0, 0, 0, 1]我们会依次得到c2w的四列向量。

2.相机内参

相机的内参矩阵K定义如下:
K = [ f x 0 c x 0 f y c y 0 0 1 ] K=\begin{bmatrix}f_x&&0&&c_x\\ 0&&f_y&&c_y\\ 0&&0&&1\end{bmatrix} K= fx000fy0cxcy1
内参矩阵K包含4个值:其中 f x f_x fx f y f_y fy是相机的水平和垂直焦距(对于理想的针孔相机,fx=fy)。焦距的物理含义是相机中心到成像平面的距离,长度以像素为单位。 c x c_x cx c y c_y cy是图像原点相对于相机光心的水平和垂直偏移量,可以用图像宽和高的1/2近似.

这里我们以针孔相机(Pinhole camera)为例介绍内参矩阵中的参数,首先引入我们熟知的小孔成像模型:

在这里插入图片描述

为了后面的分析方便,对小孔成像的模型进行进一步的调整,将成像平面画到镜头的对称位置,使得图像不再倒立。注意:这两者是等价的。

在这里插入图片描述

内参矩阵中的 f x 和 f y f_x 和f_y fxfy也就是镜头到成像平面的距离。

之后我们讨论内参矩阵中的 c x c_x cx c y c_y cy,这两个参数主要用于将相机坐标系下的3D坐标映射到2D的图像平面。由于像素图片坐标原点一般设置在图片的左上角,不与相机光心重合,所以要表示某一个像素在相机坐标系中的位置时,要在像素坐标的基础上减去 c x 和 c y c_x和c_y cxcy,同时结合下面这张图,像素点距离相机原点的z轴距离为焦距 f f f。我们可以得到:

对于像素图片坐标系中的某个点 ( i , j ) (i,j) (i,j),其在相机坐标系中被表示为 ( i − c x , j − c y , f ) (i-c_x,j-c_y,f) (icx,jcy,f),由此构造出的一条射线的方向向量为: ( i − c x , j − c y , f ) − ( 0 , 0 , 0 ) = ( i − c x , j − c y , f ) (i-c_x,j-c_y,f)-(0,0,0)=(i-c_x,j-c_y,f) (icx,jcy,f)(0,0,0)=(icx,jcy,f),将相机外参左乘这一方向向量也就得到了其在世界坐标系的坐标。

在这里插入图片描述

参考文献和资料:

[1] NeRF代码解读-相机参数与坐标系变换 - 知乎 (zhihu.com)

[2] 【3D目标检测】单目相机成像原理_单目相机原理_可乐大牛的博客-CSDN博客

[3] 机器视觉——相机标定(四个坐标系的关系)_相机坐标系和像素坐标系的关系_向暖阳呢的博客-CSDN博客
[4] 什么是齐次坐标系?为什么要用齐次坐标系? - 知乎 (zhihu.com)

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

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

相关文章

b站网页版视频投稿接口分析

b站网页版视频投稿接口分析 上传视频逻辑如下:1.预加载2.获取准备上传到服务器的数据3.分片上传(块大小最大为10MB/10485760字节)4.上传完成进行合片 上传封面逻辑如下:投稿视频: B站投稿视频(手稿&#xf…

【深度学习】:用于 GAN 的生成器架构 - 生成人脸

一、说明 生成对抗网络(GAN)是机器学习中一个相对较新的概念,于2014年首次推出。他们的目标是合成与真实图像无法区分的人工样本,例如图像。GAN 应用程序的一个常见示例是通过从名人人脸数据集中学习来生成人工人脸图像。虽然GAN图像随着时间的推移变得更加逼真,但它们的主…

短视频seo矩阵源码私有化部署方案

目录 前 言 一。 短视频seo矩阵算法 二、 短视频seo源码功能构建 三、 短视频seo私有化部署流程解读 前 言 为了更好地提高短视频平台的SEO优化效果,许多企业开始尝试私有化部署方案。这样做的好处在于,企业可以根据自身的特点和需求来灵活调整矩阵源…

龙蜥开发者说:参与开源要敢于担任不同角色 | 第 21 期

「龙蜥开发者说」第 21 期来了!开发者与开源社区相辅相成,相互成就,这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的,我们希望在这里让更多人看见技术的力量。本期故事,我们邀请了龙蜥社区开发者支智…

教你纯小白选对Java路线

许多人问如何开启JAVA的入门这里有两个层次: 首先,你是一个局外人。你一天只用电脑一两个小时,玩游戏,其他什么都不知道。你听说JAVA很受欢迎,而且薪水很高,你想要开始学习如何入门。 这个入门,就是进入编程…

关于Apache-Commons-Lang3中元组的使用

关于Apache-Commons-Lang3中元组的使用 在日常工作中,有时候我们并不清楚有这些工具类的存在,造成在开发过程中重新实现导致时间浪费,且开发的代码质量不佳。而 apache 其实已经提供了系列的工具包给我们使用,只是大多数人&#x…

通过列排斥能比较两组迭代次数

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,AB训练集各由6张二值化的图片组成,让差值结构中有6个1, 行分布是0,1,1,1,1,2列分布是2,2,2.统计迭代次…

回归预测 | MATLAB实现ELM极限学习机多输入单输出回归预测(多指标、相关图)

回归预测 | MATLAB实现ELM极限学习机多输入单输出回归预测(多指标、相关图) 目录 回归预测 | MATLAB实现ELM极限学习机多输入单输出回归预测(多指标、相关图)效果一览基本介绍程序设计学习总结参考资料效果一览 基本介绍 回归预测 | MATLAB实现ELM极限学习机多输入单输出回…

由于找不到d3dx9_43.dll,有什么可靠的修复方法?

由于找不到d3dx9_43.dll,无法继续执行代码,这种情况大家是否有遇见过?其实就算没遇到过,大家应该也有遇到别的dll文件丢失吧?道理都一样,都是dll文件丢失,我们只需要把它给修复就可以了&#xf…

第一阶段-第五章 Python的函数

目录 一、函数的介绍  1.学习目标  2. 什么是函数  3.本节的演示  4.为什么要学习、使用函数  5.本小节的总结 二、函数的定义  1.学习目标  2.函数的语法  3.本节的代码演示  4.本小节的总结  5.练习案例:自动查核酸 三、函数的参数  1.学习…

Mac 查看端口和关闭进程

经常使用 node 启动本地,有时一不小心按了 Ctrl Z (Command Z)把服务关闭了,但实际上没真正关闭该服务,再次启动服务很可能会提示端口号被占用。 系统环境:Mac 查看端口的详细端口占用情况 命令&#xf…

Scrapy爬虫框架集成Selenium来解析动态网页

1、爬虫项目单独使用scrpay框架的不足 当前网站普遍采用了javascript 动态页面,特别是vue与react的普及,使用scrapy框架定位动态网页元素十分困难,而selenium是最流行的浏览器自动化工具,可以模拟浏览器来操作网页,解…

【PCIE】Device Control Register (Offset 08h)

Maximum Payload Size “Maximum Payload Size” (最大传输负载大小)是PCI Express设备控制寄存器中的一个位域,用于设置设备支持的最大传输负载的大小。 PCI Express使用数据包(Packet)来传输数据,而数据…

2024考研408-操作系统 第二章-进程与线程 学习笔记

文章目录 前言一、进程1.1、进程的概念、组成与特征1.1.1、进程的概念1.1.2、进程的组成认识PCB认识程序段与数据段(包含进程实体概念) 1.1.3、进程的特征知识回顾与重要考点 1.2、进程的状态、状态间的转换和组织方式1.2.1、进程的状态进程的五种状态详…

微信扫码跳转小程序实现web登录

前面博客我有写微信扫码跳转h5实现登录,但是需要申请服务号 最近项目迭代,想到小程序能做扫码登录的话,web网页端和小程序同时登录账户不是更好吗,还不用额外申请服务号 第一步 打开微信公众平台,在“开发”菜单下点击…

springcloud笔记二

配置管理服务是共有的,结合微服务自身的配置。这样核心配置更改就无需逐个更改 配置管理: 首先新建一个配置管理 Data ID为配置文件的名称 一般为项目名称-项目环境yaml,如userservice-dev.yaml 编写配置内容,发布 获取nacos配置信息: 可能…

数据透视表:pivot_table()--Pandas

1. 函数功能 创建数据透视表,返回一个EXCEL形式的数据透视表。 2. 函数语法 DataFrame.pivot_table(valuesNone, indexNone, columnsNone, aggfuncmean, fill_valueNone, marginsFalse, dropnaTrue, margins_nameAll, observedFalse, sortTrue)3. 函数参数 参数…

Vue3 父子组件之间传值

Vue3TSVite环境开发 1.父组件给子组件传递方法,属性和值 父组件引入子组件处里面绑定方法 showBtn ,属性name和值msg 子组件通过defineProps()来接收 子组件页面显示父组件的方法 showBtn ,属性name和值msg 2.父组件接收子组件传递的…

ModaHub魔搭社区:向量数据库Zilliz Cloud的AUTOINDEX教程

目录 创建索引和向量搜索 总结 为满足用户不同需求,Zilliz Cloud 提供 3 种类型的集群 CU——性能型、容量型和经济型。但是,为不同类型 CU 集群中的 Collection 创建索引时,通常需要根据所选择的 CU 类型调整索引参数。为了方便您创建索引,免去调节参数的麻烦,Zilliz C…

Metasploit Pro 4.22.1-2023070501 (Linux, Windows) - 渗透测试框架

Metasploit Pro 4.22.1-2023070501 (Linux, Windows) - 渗透测试框架 Rapid7 Penetration testing 请访问原文链接:https://sysin.org/blog/metasploit-pro-4/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 世界…