当前位置: 首页 > news >正文

相机参数的格式与作用

在计算机视觉中,相机标定是非常重要的一步,主要目的是从图像中恢复出物体的三维信息。为了做到这一点,我们需要了解和使用一系列的数学工具,这些工具描述了相机的成像过程,包括相机的内参、外参、畸变系数、投影矩阵和矫正矩阵。
本文主要讲解相机参数的格式与作用,相机标定可参考这篇博文相机标定


一、相机内参(Camera Intrinsics)

1.1 内参的定义

相机内参指的是描述相机光学成像系统内部几何关系的参数。它主要涉及如何将三维空间中的点投影到二维图像平面。具体来说,相机内参矩阵包含了相机的焦距、主点以及畸变系数等信息。

1.2 内参矩阵的固定格式

在进行开发时相机内参一般用如下格式表示cameraMatrix
cv::Mat_<double>(3, 3)
内参矩阵通常采用3x3的矩阵表示,格式如下:

K=[fxscx0fycy001]K = \begin{bmatrix} f_x & s & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} K=fx00sfy0cxcy1

其中:

  • fxf_xfxfyf_yfy 分别是相机在x和y方向的焦距,单位为像素,这两个参数反映了图像传感器上每毫米对应的像素数量。通常情况下,焦距在水平方向和垂直方向可能不相等。
  • cxc_xcxcyc_ycy 是图像的主点坐标,通常是图像的中心点。如果图像的分辨率为 W×HW \times HW×H,那么 cx=W/2c_x = W/2cx=W/2cy=H/2c_y = H/2cy=H/2
  • sss 是切向畸变系数,通常在大部分相机中是零,除非相机镜头存在较严重的切向畸变。

该矩阵通过将三维世界坐标系中的点转换为图像坐标系中的点。

1.3 内参矩阵的作用
  1. 将三维坐标转化为二维坐标:内参矩阵的作用就是将世界坐标系中的三维点 X,Y,ZX, Y, ZX,Y,Z 投影到相机的二维图像坐标系中。

  2. 校正畸变:内参矩阵中的一些参数,如焦距和主点,可以用来去畸变或者校正图像中的几何误差。

  3. 计算图像尺寸和焦距:内参矩阵的 fxf_xfxfyf_yfy 值可用于计算图像中物体的实际物理尺寸或距离。


二、相机畸变系数(Distortion Coefficients)

2.1 畸变的定义

相机的畸变主要由光学镜头的特性引起。最常见的畸变有两种:

  1. 径向畸变:主要发生在图像的四周,造成图像的拉伸或压缩,通常表现为桶形畸变或枕形畸变。
  2. 切向畸变:通常是由相机镜头和图像平面之间的非理想对准引起的,表现为图像的倾斜或弯曲。
    在这里插入图片描述
    在这里插入图片描述
2.2 畸变系数的固定格式

开发中一般用如下代码表示distCoeffs
cv::Mat_<double>(1, 5)
在标准的针孔相机模型中,畸变系数由以下五个参数表示:

D=[k1,k2,p1,p2,k3]D = [k_1, k_2, p_1, p_2, k_3] D=[k1,k2,p1,p2,k3]

  • k1,k2,k3k_1, k_2, k_3k1,k2,k3 是径向畸变系数,描述图像的径向畸变。
  • p1,p2p_1, p_2p1,p2 是切向畸变系数,描述图像的切向畸变。
2.3 畸变系数的作用
  1. 去畸变:畸变系数用于矫正图像中的畸变,特别是在使用广角镜头时,畸变非常明显。
  2. 提高计算机视觉算法的精度:去除畸变后,图像会更加接近真实的物理结构,进而提高目标识别、三维重建等算法的精度。

三、相机外参(Camera Extrinsics)

3.1 外参的定义

相机外参是描述相机与世界坐标系之间关系的参数。它通过旋转矩阵(RRR)和位移向量(TTT)来表示。旋转矩阵描述了相机坐标系与世界坐标系之间的旋转关系,而位移向量描述了两者之间的平移关系。

3.2 外参矩阵的格式

相机外参矩阵通常由一个 3×33 \times 33×3 的旋转矩阵 RRR 和一个 3×13 \times 13×1 的平移向量 TTT 组成。外参矩阵通常是一个 3×43 \times 43×4 的矩阵:

[R∣T]=[R11R12R13TxR21R22R23TyR31R32R33Tz][R | T] = \begin{bmatrix} R_{11} & R_{12} & R_{13} & T_x \\ R_{21} & R_{22} & R_{23} & T_y \\ R_{31} & R_{32} & R_{33} & T_z \end{bmatrix} [RT]=R11R21R31R12R22R32R13R23R33TxTyTz

其中:

  • RRR 是一个 3×33 \times 33×3 的旋转矩阵,表示相机坐标系相对于世界坐标系的旋转。
  • TTT 是一个 3×13 \times 13×1 的平移向量,表示相机坐标系原点相对于世界坐标系原点的平移。
3.3 外参矩阵的作用
  1. 将世界坐标系的三维点转化为相机坐标系的三维点:外参矩阵用于表示相机的位置和姿态,帮助我们将三维物体的坐标从世界坐标系转换到相机坐标系。

  2. 多视角对齐:在多视角计算中,相机的外参矩阵非常重要,尤其是在立体视觉和三维重建中,外参矩阵帮助我们理解相机之间的相对位置和角度。


四、投影矩阵(Projection Matrix)

4.1 投影矩阵的定义

投影矩阵是将三维世界坐标系中的点转换为二维图像坐标系中的点的矩阵。它综合了相机的内参和外参信息,通过对三维点进行线性变换,将其投影到图像平面。

4.2 投影矩阵的格式

投影矩阵通常由内参矩阵 KKK 和外参矩阵 [R∣T][R | T][RT] 组成,形式如下:

P=K[R∣T]P = K [R | T] P=K[RT]

其中:

  • KKK 是内参矩阵,描述了相机的内部几何参数。
  • [R∣T][R | T][RT] 是外参矩阵,描述了相机在世界坐标系中的旋转和平移。

通过这个矩阵,我们可以将三维世界坐标系中的点 X,Y,ZX, Y, ZX,Y,Z 投影到二维图像坐标系 x,yx, yx,y

4.3 投影矩阵的作用
  1. 三维点到二维图像点的映射:投影矩阵能够将相机坐标系下的三维点 X,Y,ZX, Y, ZX,Y,Z 映射为图像平面上的二维点 x,yx, yx,y,并将这些点用于后续的图像处理、目标检测等任务。

  2. 计算视差和三维重建:在立体视觉和三维重建中,投影矩阵帮助我们从不同视角的图像中恢复物体的三维结构。


五、矫正矩阵(Rectification Matrix)

5.1 矫正矩阵的定义

矫正矩阵用于去除立体视觉系统中由于相机不同视角引起的几何误差。通常在立体匹配和深度估计中,矫正矩阵将左右图像对齐到相同的图像平面,消除由视角差异造成的几何失真。

5.2 矫正矩阵的格式

在立体相机系统中,左右相机的矫正矩阵由旋转矩阵 R1,R2R_1, R_2R1,R2 和投影矩阵 P1,P2P_1, P_2P1,P2 组成,用来调整图像,使得图像上的同名点在同一扫描线中。矫正矩阵的格式通常为:

[R1∣T1]=Rectification Matrix for the left camera[R_1 | T_1] = \text{Rectification Matrix for the left camera} [R1T1]=Rectification Matrix for the left camera

[R2∣T2]=Rectification Matrix for the right camera[R_2 | T_2] = \text{Rectification Matrix for the right camera} [R2T2]=Rectification Matrix for the right camera

5.3 矫正矩阵的作用

  1. 去除视差误差:矫正矩阵消除了由于相机视角差异引起的几何畸变,使得图像对齐,从而进行精确的视差计算。

  2. 提高深度估计精度:在深度估计过程中,矫正矩阵使得左右图像的对应点对齐,有助于提高深度图的精度。


http://www.dtcms.com/a/288033.html

相关文章:

  • 大语言模型置信度增强实战指南
  • 第 3 篇:《WHERE 就是刷选项——像点外卖一样精确筛房!》
  • 【硬件】嵌入式问题
  • FPGA相关通信问题详解
  • XSS漏洞总结
  • 商业秘密视域下计算机软件的多重保护困境
  • 正点原子stm32F407学习笔记9——PWM 输出实验
  • 深度学习中的模型剪枝工具Torch-Pruning的使用
  • HAMR硬盘高温写入的可靠性问题
  • RHCE(2)
  • Qt Graphs 模块拟取代 charts 和 data visualization还有很长的路要走
  • 完美解决 Ubuntu 中自定义启动器图标重复的问题(以 MATLAB 为例)
  • 游戏开发日志
  • 操作系统-进程同步机制
  • 搭建比分网服务器怎么选数据不会卡顿?
  • SEO长尾关键词优化实战指南抢占市场
  • 基于DTLC-AEC与DTLN的轻量级实时语音增强系统设计与实现
  • 你的网站正在被Google最新算法惩罚吗?
  • SpringJDBC源码初探-JdbcTemplate类
  • xss的利用
  • 博图SCL语言中常用运算符使用详解及实战案例(下)
  • 抖音回应:没有自建外卖,就是在团购的基础上增加的配送功能
  • 前端开发技巧:浏览器模拟弱网络环境
  • Streamlit 官翻 4 - 快速参考、知识库 Quick Reference
  • 电脑windows系统深度维护指南
  • 网络包从客户端发出到服务端接收的过程
  • 初识C++——开启新旅途
  • 【每日算法】专题十五_BFS 解决 FloodFill 算法
  • Xshell若依项目部署到云服务器
  • 考研408《计算机组成原理》复习笔记,第三章(5)——磁盘存储器