本文最后更新于:2024年10月16日 上午
在计算机视觉和图形学中,不同的相机模型用于模拟真实相机捕获图像的方式,本文简要记录相关内容。
简介
在计算机视觉和图形学中,不同的相机模型用于模拟真实相机捕获图像的方式,或者用于创建特定的视觉效果。
常见的相机模型有如下几类:
-
Perspective Camera(透视相机):
这是最常见的相机模型,它模拟人眼观察世界的方式。透视相机遵循透视投影规则,其中物体随着距离的增加而变小,平行线会在远处汇聚于一点(消失点)。
-
Radial Camera(径向相机):
这种相机模型考虑了镜头的径向畸变,这种畸变通常是由于镜头的光学特性造成的。畸变会导致图像中的直线出现弯曲,特别是在图像的边缘。
-
Simple Radial Camera(简单径向相机):
简化的径向相机模型,它只考虑最简单的径向畸变形式,通常用于快速近似或当详细畸变模型不是必需的时候。
-
Brown Camera(布朗相机):
这是以摄影师Robert Brown命名的相机模型,它描述了一种常见的畸变形式,包括径向畸变和切向畸变。这种模型可以更准确地描述和校正实际相机镜头的畸变。
-
Fisheye Camera(鱼眼相机):
鱼眼相机使用一个非常广角的镜头,产生一种特殊的球面透视效果,其中整个180度或更广的视野都可以在一个图像中捕捉到。这种相机模型常用于创建全景图像。
-
Spherical Camera(球形相机):
球形相机模型假设图像是球面投影的,通常用于360度全景摄影。这种相机捕捉到的图像可以投影到一个球面上,从而没有透视畸变。
-
Dual Camera(双相机):
这通常指的是具有两个镜头的相机系统,它可以提供立体视觉,用于捕捉三维信息或增强图像的深度感知。这种系统可以用于各种应用,包括增强现实、机器视觉和三维重建。
Perspective Camera(透视相机)
透视相机,也称为透视投影相机,是3D图形渲染中常用的一种相机模型。与正交相机不同,透视相机模拟了人眼观察物体的方式,使得离相机近的物体看起来更大,离相机远的物体看起来更小,从而产生了远近感和立体感。
基本原理
透视相机的基本原理是透视投影。透视投影将3D空间的点映射到2D平面上,其中每个点的投影位置与相机的位置、方向和观察方向有关。在透视投影中,一个3D空间的点P(x, y, z)在图像平面上投影的位置p(x’, y’)由以下公式确定:
$$
\begin{array}{l}
x’ = (f x) / z\
y’ = (f y) / z
\end{array}
$$
其中,$f$ 是相机的焦距,表示相机镜头到图像平面的距离。这个公式告诉我们,一个点的投影位置与其在相机坐标系中的位置有关,并且与焦距 $f$ 有关。
畸变模型
$$
\begin{split}\begin{array}{l}
x_n = \frac{x}{z} \
y_n = \frac{y}{z} \
r^2 = x_n^2 + y_n^2 \
d = 1 + k_1 r^2 + k_2 r^4 \
u = f\ d\ x_n \
v = f\ d\ y_n
\end{array}\end{split}
$$
Radial Camera(径向相机)
这种相机模型考虑了镜头的径向畸变。
畸变模型
$$
\begin{split}\begin{array}{l}
x_n = \frac{x}{z} \
y_n = \frac{y}{z} \
r^2 = x_n^2 + y_n^2 \
d = 1 + k_1 r^2 + k_2 r^4\
u = f_x\ d\ x_n + c_x \
v = f_y\ d\ y_n + c_y
\end{array}\end{split}
$$
Simple Radial Camera(简单径向相机)
简化的径向相机模型,它只考虑最简单的径向畸变形式。
畸变模型
$$
\begin{split}\begin{array}{l}
x_n = \frac{x}{z} \
y_n = \frac{y}{z} \
r^2 = x_n^2 + y_n^2 \
d = 1 + k_1 r^2\
u = f_x\ d\ x_n + cx \
v = f_y\ d\ y_n + cy
\end{array}\end{split}
$$
Brown Camera(布朗相机)
Brown Camera 模型,通常指的是 Brown-Conrady 畸变模型,这是一种广泛使用的相机镜头畸变校正模型。这个模型以摄影师 Robert Brown 的名字命名,他在20世纪70年代与同事一起描述了这种畸变模型。Brown-Conrady 模型主要用于描述和校正两种主要的镜头畸变:径向畸变和切向畸变。
畸变模型
$$
\begin{split}\begin{array}{l}
x_n = \frac{x}{z} \
y_n = \frac{y}{z} \
r^2 = x_n^2 + y_n^2 \
d_r = 1 + k_1 r^2 + k_2 r^4 + k_3 r^6\
d^t_x = 2p_1\ x_n\ y_n + p_2\ (r^2 + 2x)\
d^t_y = 2p_2\ x_n\ y_n + p_1\ (r^2 + 2y)\
u = f_x\ (d_r\ x_n + d^t_x) + c_x \
v = f_y\ (d_r\ y_n + d^t_y) + c_y
\end{array}\end{split}
$$
Fisheye Camera(鱼眼相机)
鱼眼相机(Fisheye Camera)是一种特殊的相机,其镜头具有极宽的视角,通常在180度到220度之间,甚至可以达到360度。这种相机因其产生的图像效果类似于鱼从水中看外面的世界而得名。
畸变模型
- 模型一
$$
\begin{split}\begin{array}{l}
r^2 = x^2 + y^2 \
\theta = \arctan(r / z) \
d = 1 + k_1 \theta^2+ k_2 \theta^4 \
u = f\ d\ \theta\ \frac{x}{r} \
v = f\ d\ \theta\ \frac{y}{r}
\end{array}\end{split}
$$
- 模型二
$$
\begin{split}\begin{array}{l}
r^2 = x^2 + y^2 \
\theta = \arctan(r / z) \
d_r = 1 + k_1\theta + k_2\theta^2 + k_3\theta^3 + k_4\theta^4 + k_5\theta^5 + k_6\theta^6\
d^t_x = 2p_1\ x_n\ y_n + p_2\ (r^2 + 2x)\
d^t_y = 2p_2\ x_n\ y_n + p_1\ (r^2 + 2y)\
u = f\ (d_r\ \theta\ \frac{x}{r} + d^t_x) + c_x \
v = f\ (d_r\ \theta\ \frac{y}{r} + d^t_y) + c_y
\end{array}\end{split}
$$
- 模型三
$$
\begin{split}\begin{array}{l}
r^2 = x^2 + y^2 \
\theta = \arctan(r / z) \
d_r = 1 + k_1\theta^2 + k_2\theta^4 + k_3\theta^6\
d^t_x = 2p_1\ x_n\ y_n + p_2\ (r^2 + 2x)\
d^t_y = 2p_2\ x_n\ y_n + p_1\ (r^2 + 2y)\
u = f\ (d\ \theta\ \frac{x}{r} + d^t_x) + c_x \
v = f\ (d\ \theta\ \frac{y}{r} + d^t_y) + c_y
\end{array}\end{split}
$$
Spherical Camera(球形相机)
球形相机(Spherical Camera),也常被称为360度相机或全景相机,是一种能够捕捉周围环境全方位图像的相机。这种相机通常配备有两个或更多个镜头,能够同时拍摄多个方向的照片,并通过软件将这些照片拼接成一个完整的球面全景图像。
畸变模型
$$
\begin{split}\begin{array}{l}
\mathrm{lon} = \arctan\left(\frac{x}{z}\right) \
\mathrm{lat} = \arctan\left(\frac{-y}{\sqrt{x^2 + z^2}}\right) \
u = \frac{\mathrm{lon}}{2 \pi} \
v = -\frac{\mathrm{lat}}{2 \pi}
\end{array}\end{split}
$$
Dual Camera(双相机)
双相机系统(Dual Camera System)是一种在智能手机、平板电脑以及其他一些便携式电子设备上常见的摄像头配置。这种系统通常包括两个独立的摄像头模块,它们可以同时工作或根据不同的拍摄需求独立工作,以提供更好的图像质量和拍摄体验。
畸变模型
$$
\begin{split}\begin{array}{l}
r^2 = x^2 + y^2 \
x^n_p = \frac{x}{z} \
y^n_p = \frac{y}{z} \
x^n_f = theta\ \frac{x}{r} \
y^n_f = theta\ \frac{y}{r} \
d = 1 + k_1\theta^2 + k_2\theta^4 \
u = f\ d\ (l\ x^n_p\ + (1-l)\ x^n_f) \
v = f\ d\ (l\ y^n_p\ + (1-l)\ y^n_f)
\end{array}\end{split}
$$
参考资料
文章链接:
https://www.zywvvd.com/notes/study/camera-imaging/camera-models/camera-models/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付