相机成像原理与数学模型

news/2024/11/25 7:37:11/

相机的成像结果可以抽象为一个小孔和一个平面,用小孔成像模型描述。
在这里插入图片描述
三维世界的光线经过小孔即光心到达成像平面,形成二维投影。以相机的光心O为原点, X c X_c Xc Y c Y_c Yc Z c Z_c Zc 为坐标轴组成相机坐标系;以成像平面的中心 O ′ O' O为原点, x ′ x' x y ′ y' y 为坐标轴组成图像坐标系。成像过程即为相机坐标系下的三维点变换为图像坐标系下的二维点的过程。

假设P为三维空间中一点。在相机坐标系下,其坐标为 P = [ X , Y , Z ] T P = [ X,Y,Z]^T P=[X,Y,Z]T;在图像坐标系下为点 p p p,其坐标为 p = [ x , y ] T p = [x,y]^T p=[x,y]T

连接O 、O 与光轴重合,且与成像平面垂直,则p在相机坐标系下 p = [ x , y , z ] T p = [x,y,z]^T p=[x,y,z]T,其中 z = f z = f z=f f f f表示相机的焦距。仅考虑水平和光轴方向,模型抽象为一组相似三角形。
在这里插入图片描述
由几何关系:
Z f = X x = Y y \frac{Z}{f} = \frac{X}{x} = \frac{Y}{y} fZ=xX=yY
整理得:
x = f ⋅ X Z y = f ⋅ Y Z z = f (1) x = f \cdot \frac{X}{Z}\\ y = f \cdot \frac{Y}{Z}\\ z = f \\ \tag1 x=fZXy=fZYz=f(1)
扩展坐标的维度,将 Z Z Z线性化:
[ x ^ y ^ z ^ ] = [ f 0 0 0 0 f 0 0 0 0 1 0 ] [ X Y Z 1 ] \left[ \begin{matrix} \hat{x} \\ \hat{y} \\ \hat{z} \end{matrix} \right] = \left[ \begin{matrix} f&0&0&0 \\ 0&f&0&0 \\ 0&0&1&0 \end{matrix} \right] \left[ \begin{matrix} X \\ Y \\ Z \\ 1 \end{matrix} \right] x^y^z^=f000f0001000XYZ1
则坐标 ( x ^ , y ^ , z ^ ) (\hat{x} ,\hat{y} ,\hat{z}) (x^,y^,z^) 就是 p = ( x , y ) p = (x,y) p=(x,y)的齐次坐标。

相机的像素信息的计算机中占据一段连续的磁盘或内存空间,为了从存储信息的首地址开始读写,以成像平面的左上角为原点,水平向右作为 u u u轴正向,竖直向下作为 v v v轴正向,建立像素坐标系,其基本单位为像素。
两个坐标系的对应关系如下:
在这里插入图片描述
由此可知,图像坐标系和像素坐标系虽然在同一平面,但是相差了一个缩放和一个原点的平移。由于像素块是一个矩形,设其水平长度为 α \alpha α,竖直长度为 β \beta β。将图像坐标系下的点 ( x , y ) (x,y) (x,y)在水平方向上缩放 α \alpha α倍、平移 c x c_{x} cx,竖直方向上缩放 β \beta β倍、平移 c y c_{y} cy,得到像素坐标系下坐标 ( u , v ) (u,v) (u,v)
u = α ⋅ x + c x v = β ⋅ y + c y u = \alpha \cdot x + c_{x} \\ v = \beta \cdot y + c_{y} u=αx+cxv=βy+cy
式(1)带入:
f x = α ⋅ f f y = β ⋅ f f_{x} = \alpha \cdot f \\ f_{y} = \beta \cdot f fx=αffy=βf
写成齐次坐标的形式:
[ u v 1 ] = 1 Z [ f x 0 c x 0 f y c y 0 0 1 ] \left[ \begin{matrix} u \\ v \\ 1 \end{matrix} \right] = \frac{1}{Z} \left[ \begin{matrix} f_{x}&0&c_{x} \\ 0&f_{y}&c_{y} \\ 0&0&1 \end{matrix} \right] uv1=Z1fx000fy0cxcy1
得相机得内参数矩阵:
K = [ f x 0 c x 0 f y c y 0 0 1 ] K = \left[ \begin{matrix} f_{x}&0&c_{x} \\ 0&f_{y}&c_{y} \\ 0&0&1 \end{matrix} \right] K=fx000fy0cxcy1
其中 K K K称为相机的内参数矩阵,有四个未知数,这与相机的构造有关。根据以上推导可知, f x f_{x} fx f y f_{y} fy 与相机的焦距、像素的长宽有关; c x c_x cx c y c_y cy 与相机的成像平面大小有关。
综上所述,相机的成像过程为:
p = K ⋅ P p = K \cdot P p=KP
当相机移动时,相机坐标系的原点和坐标轴的方向也会随之变化,所以需要将其变换到系统的绝对坐标系下,即世界坐标系。

相机的运动可以用一个旋转和一个平移描述。设某一点在相机坐标系下坐标为 P c P_c Pc,在世界坐标系下坐标为 P w P_w Pw,旋转矩阵为 R R R,平移向量为 t t t,则其转换关系为: P c = R ⋅ P w + t P_c = R \cdot P_w +t Pc=RPw+t
写成齐次坐标形式为
[ X c Y c Z c 1 ] = [ R 11 R 12 R 13 t 1 R 21 R 22 R 23 t 2 R 31 R 32 R 33 t 3 0 0 0 1 ] [ X w Y w Z w 1 ] \left[ \begin{matrix} X_c \\ Y_c \\ Z_c \\ 1 \end{matrix} \right] = \left[ \begin{matrix} R_{11} & R_{12} &R_{13}&t_1 \\ R_{21}&R_{22}&R_{23}&t_2 \\ R_{31}&R_{32}&R_{33}&t_3 \\ 0&0&0&1 \end{matrix} \right] \left[ \begin{matrix} X_w \\ Y_w \\ Z_w \\ 1 \end{matrix} \right] XcYcZc1=R11R21R310R12R22R320R13R23R330t1t2t31XwYwZw1

[ X c Y c Z c 1 ] = [ R t 0 1 ] [ X w Y w Z w 1 ] \left[ \begin{matrix} X_c \\ Y_c \\ Z_c \\ 1 \end{matrix} \right] = \left[ \begin{matrix} R & t \\ 0&1 \end{matrix} \right] \left[ \begin{matrix} X_w \\ Y_w \\ Z_w \\ 1 \end{matrix} \right] XcYcZc1=[R0t1]XwYwZw1
得到相机的外参数矩阵
T = [ R t 0 1 ] T = \left[ \begin{matrix} R & t \\ 0&1 \end{matrix} \right] T=[R0t1]
综上所述,就得到了一个相机的矩阵:
[ u v 1 ] = [ 1 d x 0 c x 0 1 d y c y 0 0 1 ] [ f 0 0 0 0 f 0 0 0 0 1 0 ] [ R t 0 1 ] [ X w Y w Z w 1 ] \left[ \begin{matrix} u \\ v \\ 1 \end{matrix} \right] = \left[ \begin{matrix} \frac{1}{dx} & 0 & c_x \\ 0& \frac{1}{dy} & c_y \\ 0 & 0 &1 \end{matrix} \right] \left[ \begin{matrix} f&0&0&0 \\ 0&f&0&0 \\ 0&0&1&0 \end{matrix} \right] \left[ \begin{matrix} R & t \\ 0&1 \end{matrix} \right] \left[ \begin{matrix} X_w \\ Y_w \\ Z_w \\ 1 \end{matrix} \right] uv1=dx1000dy10cxcy1f000f0001000[R0t1]XwYwZw1
其中:

  • ( u , v , 1 ) (u,v,1) (u,v,1)表示像素坐标系下点的齐次坐标形式;
  • d x , d y dx,dy dxdy表示相机像素的长和宽,承前, α = 1 d x , β = 1 d y \alpha = \frac{1}{dx},\beta = \frac{1}{dy} α=dx1,β=dy1;
  • c x , c y c_x , c_y cx,cy表示图像坐标系原点和像素坐标系原点的偏移值;
  • f f f表示相机的焦距;
  • R R R表示相机的旋转矩阵
  • t t t表示相机的平移矩阵
  • ( X w , Y w , Z w , 1 ) (X_w , Y_w , Z_w , 1) (Xw,Yw,Zw,1)表示点在世界坐标系下坐标的的齐次坐标形式

这就推得了相机矩阵。相机矩阵的参数由内参数和外参数组成。相机在制造的过程中,难免会出现偏差,仅仅使用出厂参数是不够的,另外还要考虑镜头畸变引起的误差。相机标定是一个获取相机内参数和外参数以及矫正镜头畸变的过程。相机标定的结果的精度将直接影响相机工作时所得结果的准确度。

标定方法使用张定友教授提出的张氏标定法。

参考:高翔《视觉SLAM十四讲》


http://www.ppmy.cn/news/547719.html

相关文章

ADAS-可见光相机之Cmos Image Sensor

引言 “ 可见光相机在日常生活、工业生产、智能制造等应用有着重要的作用。在ADAS中更是扮演着重要的角色,如tesla model系列全车身10多个相机,不断感知周围世界。本文着重讲解下可见光相机中的CIS(CMOS Image Sensor)。” 定义 光是一种电磁波&…

数码相机传感器

数码相机传感器 数码相机利用数以百万计的极小的感光单元阵列来记录照片。按下快门后,这些感光单元便开始收集和存储光子。一旦曝光结束,相机关闭所有感光单元,计算落入每个感光单元的光子数量。落入感光单元的的光子的相对数量随后被存储成…

Firefly-SRC资产探测平台

前言 Firefly是一个集资产管理、信息收集和漏洞扫描的综合平台。 Firefly-SRC依托于Firefly平台中的信息收集功能,不断收集和整理各大src相关资产数据。希望能为各位白帽子师傅们提供更稳定可靠的src资产数据,减少师傅挖洞前期的信息收集时间&#xff0c…

强者游戏-敢来挑战否-Amazon DeepRacer League

Amazon DeepRacer中国峰会总决赛 Amazon DeepRacer 自动驾驶赛车名校邀请赛会在6月27日-28日举办的Amazon DeepRacer中国峰会总决赛时同步启动。勇哥的目标是拿个比较好的名词。大家如果有参加这次活动的可以过来一起搞哦。下面我来具体介绍一下这次峰会,以及比赛的…

解决Linux QQ闪退和扫码无法登陆的方法

删除掉配置文件即可 rm -rf ~/.config/tencent-qq

网络安全工具

1.Nmap 它是网络管理员 必用的软件之一,以及用以评估网络系统安全。正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子 )爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器&#xff…

电脑无法登录TIM / QQ的一种解决方案

最近一两个月电脑一直登不上TIM,报错信息为: 00001:无法连接到互联网 知乎:QQ无法登陆,显示:“登陆超时,请检查你的网络或者本机防火墙设置。错误码:0x00000001”? 给出了很多解决…

电脑端QQ无法打开怎么办

QQ可以说是我们生活中必不可少的社交软件,每天和朋友们联系的主要方式,但是经常会出现电脑端QQ无法打开的情况,可能是在安装新软件之后冲突导致的,博主遇到过好几次。不过出现这种情况不用慌张,真的只需要两步。 1、右…