投影矩阵与相机内参的关系

前言

在了解NeRF与3DGS等论文前,一直用相机内参矩阵实现相机坐标系到图像坐标系的转换。了解到投影矩阵也能实现同样功能,便想了解它们之间的关系。

投影矩阵

投影矩阵可以分为两步,透视投影与正交投影。
透视投影将相机坐标系下的视锥转换为长方体,其中视锥由 [near, far] 定义的近远平面 以及 [left, right, top, bottom] 定义的近平面范围 唯一确定。
而正交投影将长方体的中心平移至坐标原点,并通过缩放将三个轴的范围均缩放到 [-1, 1],这就是 NDC(Normalized Device Coordinates)——在计算机图像学中应用广泛。

NDC到图像

需要注意的是,NDC 仍是3D坐标。NDC到图像差两步,一是压缩 Z 轴实现降维,二是将 xOy 平面的范围将 [-1, 1]x[-1, 1] 转到图像的 [0, W-1]x[0, H-1]。
第一步在NeRF与3DGS中通过体渲染实现。第二步,通过缩放与平移实现。

二者关系

写到这里,还没说内参的 [fx, fy, cx, cy] 与投影矩阵有什么关系?实际上,上面所提到的视锥便是通过相机内参决定的。
根据等比关系,近平面应该满足以下关系:
\(\frac{near}{-left}=\frac{fx}{cx}\), \(\frac{near}{right}=\frac{fx}{W-cx}\)
\(\frac{near}{-top}=\frac{fy}{cy}\), \(\frac{near}{bottom}=\frac{fy}{H-cy}\)

思考

为什么有了内参投影,还要用投影矩阵,这是不是多余的?答案显然是否定的。投影矩阵将视锥体转换为长方体,使得3D空间Z轴与穿过像素的光线平行,极大方便体渲染。
从其他角度看,NDC 让3D基元(3D高斯、mesh面片)的遮挡关系容易计算,方便 3D 渲染。

posted @ 2024-06-22 11:17  _风的轻歌  阅读(340)  评论(4编辑  收藏  举报