惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
B
Blog
S
SegmentFault 最新的问题
Vercel News
Vercel News
博客园 - 聂微东
宝玉的分享
宝玉的分享
C
Check Point Blog
有赞技术团队
有赞技术团队
IT之家
IT之家
V
V2EX
爱范儿
爱范儿
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
博客园 - 司徒正美
博客园_首页
Last Week in AI
Last Week in AI
博客园 - 叶小钗
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
F
Fortinet All Blogs
腾讯CDC
J
Java Code Geeks

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录
相机模型
Yiwei Zhang · 2024-10-16 · via 又见苍岚

在计算机视觉和图形学中,不同的相机模型用于模拟真实相机捕获图像的方式,本文简要记录相关内容。

简介

在计算机视觉和图形学中,不同的相机模型用于模拟真实相机捕获图像的方式,或者用于创建特定的视觉效果。

常见的相机模型有如下几类:

  1. Perspective Camera(透视相机):

    这是最常见的相机模型,它模拟人眼观察世界的方式。透视相机遵循透视投影规则,其中物体随着距离的增加而变小,平行线会在远处汇聚于一点(消失点)。

  2. Radial Camera(径向相机):

    这种相机模型考虑了镜头的径向畸变,这种畸变通常是由于镜头的光学特性造成的。畸变会导致图像中的直线出现弯曲,特别是在图像的边缘。

  3. Simple Radial Camera(简单径向相机):

    简化的径向相机模型,它只考虑最简单的径向畸变形式,通常用于快速近似或当详细畸变模型不是必需的时候。

  4. Brown Camera(布朗相机):

    这是以摄影师Robert Brown命名的相机模型,它描述了一种常见的畸变形式,包括径向畸变和切向畸变。这种模型可以更准确地描述和校正实际相机镜头的畸变。

  5. Fisheye Camera(鱼眼相机):

    鱼眼相机使用一个非常广角的镜头,产生一种特殊的球面透视效果,其中整个180度或更广的视野都可以在一个图像中捕捉到。这种相机模型常用于创建全景图像。

  6. Spherical Camera(球形相机):

    球形相机模型假设图像是球面投影的,通常用于360度全景摄影。这种相机捕捉到的图像可以投影到一个球面上,从而没有透视畸变。

  7. 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/