图形学中的世界、相机、Clip(裁剪)、NDC等坐标系

在计算机视觉中,相机模型通常涉及到的坐标系有世界、相机、归一化平面、像素坐标系等。然而,在图形学里面,在NeRF、3D Gaussian Splatting等三维重建方法,在OpenGL中,会遇到一个NDC(Normalized Device Coordinates,归一化设备坐标)坐标系。这里,将仔细地讲解各个坐标系,以及推导公式。

1、世界坐标系

这个坐标系不做过多的介绍,可前往针孔相机模型推导这里学习。在世界坐标系中,假设一个任意的点为:,这里用齐次坐标进行表达。

2、相机坐标系

这个坐标系也不做过多的介绍, 可前往针孔相机模型推导这里学习。在相机坐标系中,任意一个点为:。从世界坐标系转换到相机坐标系,需要一个外参矩阵,也就是旋转矩阵R和平移矩阵T。用公式表达为:

需要注意的是,在上式中用的不是齐次表达。

3、裁剪和NDC坐标系

这两个坐标系可以一起讲,只相差了一个齐次的除法。例如,在裁剪坐标系下,一个点为,其中为齐次坐标表达的第4维,即齐次尺度因子,作为透视除法的分母,控制近大远小。通常,的大小为深度值,也即。

从裁剪坐标系转到NDC坐标系,非常的简单,公式如下:

则NDC坐标系下一个点的齐次表达为 。

从上述表达可以看到,裁剪坐标系和NDC坐标系其实是一回事,就差了一个透视除法。

3.1 相机到裁剪坐标系推导

接下来,最为重要的是,我怎么将相机坐标系转换到裁剪坐标系。两个坐标系之间的变换,通常是使用一个投影矩阵P,也就是:

核心问题,就在于,如何推导获得这个P矩阵(4*4的矩阵)。在图1中,用AI生成了一个图,详细地表达了上面我推导的公式和关系。

图1:相机坐标系到裁剪坐标系的变换示意图(AI生成)

在裁剪坐标系中,有两个很重要的概念,就是近平面和远平面。相机理论上可以看到从相机前方一直延伸到无穷远的区域,但是图形渲染必须要明确,视椎体中哪些点保留,哪些点丢弃。因此,定义了一个近平面和远平面,只有处于这两个平面之间的区域,才会保留并投影。

定义近平面深度值为,远平面深度值为。将投影到近平面上,根据相似三角形,公式为:

在近平面上,为了将坐标值归一化到-1,1之间,需要除以近平面投影面的宽度和高度。

相机的视场角大小fovX和fovY是已知的,则可以根据相机视场角大小推导出和的大小,推导的过程如下图所示(AI生成):

在获得和之后,对和的值做一个归一化,就可得到ndc坐标系中的坐标值,公式如下:

如果,我们令,那么上式表达就可以转为一个矩阵表达P,并用齐次坐标进行表达,整理后如下:

上式中,左边是裁剪坐标系,只需要都除以一个就变成了NDC坐标系。在上式中,投影矩阵P中还存在两个未知数,就是A和B。接下来,推到获取A和B。

除以,就可以得到NDC坐标,因为的,因此公式如下:

当近平面的点代入的时候,;远平面的点代入的时候,,根据这个约束,可得到方程:

通过上面两个方程,就可以直接解出A和B的值,分别为:

到这里,就获得了完成的投影矩阵P,通过该矩阵,可以先将相机坐标系转到裁剪坐标系,再除以一个齐次因子,就转到了NDC坐标系。

相关推荐
LabVIEW开发13 小时前
LabVIEW 驱动 Andor 相机:从 SDK 到出图
数码相机·labview·labview知识·labview功能·labview程序
高升说18 小时前
避障相机与激光雷达的硬件融合:时基、外参、算力与布局的工程实现
人工智能·数码相机
hahaha60161 天前
自动白平衡 & 手动白平衡
数码相机
钒星物联网2 天前
林区没信号,红外相机怎么把照片实时送出来?
数码相机·数据传输·卫星通信·红外相机·自组网·宽带卫星
特创数字科技2 天前
【uni-app x】告别系统相机限制!三端通用自定义相机组件:任意布局、静默拍照、录像、水印叠加、连拍回图一次搞定
前端·数码相机·uni-app
Jmyd01232 天前
手持激光三维扫描仪技术解析:三角测量数据链路、材质适配矩阵与点云处理流程
数码相机·矩阵·材质·三维数字化
FLJwu8 天前
存储与固件量产实战01:运动相机TF卡量产翻车实录!V30≠4K可用,90%OEM踩中的隐形售后坑
经验分享·数码相机·相机
FLJwu9 天前
整机可靠性测试实战 03:防水密封可靠性|IP67/IP68 结构设计、密封胶圈选型与泡水测试量产翻车整改
经验分享·数码相机·相机
FLJwu13 天前
传感器与图像 ISP 实战 03:运动相机图像量产一致性|批次色差、白平衡漂移、整机标定与出厂图像质检方案|20 年源头工厂量产经验
图像处理·经验分享·数码相机·相机·isp
蓝宝石的傻话14 天前
MiBee Eye Notebook:把闲置笔记本变成一台带麦克风的网络摄像头
数码相机·rust