16个相机参数

摘要:本文首先介绍了针孔相机模型,然后推导四个坐标轴变换的关系,引出R、T、K、D中包含相机的5个内参,6个外参,5个畸变参数。相机的标定是从空间点及其对应的像素点,获得相机的位置信息和内部参数信息的过程,16个相机参数的总结为此提供了模型基础。

一、针孔相机模型

相机中有四个坐标系,分别为{world},{camera},{image},{pixel}

  • {world}为世界坐标系,可以任意指定xwx_wxw​轴和ywy_wyw​轴
  • {camera}为相机坐标系,原点位于小孔,z轴与光轴重合,xcx_cxc​轴和ycy_cyc​轴平行投影面
  • {image}为图像坐标系,原点位于光轴和投影面的交点,xpx_pxp​轴和ypy_pyp​轴平行投影面
  • {pixel}为像素坐标系,从小孔向投影面方向看,投影面的左上角为原点OpO_pOp​i_ii​x_xx​,uv轴和投影面两边重合


图片说明:{camera}:Oc_cc​-xc_cc​yc_cc​zc_cc​,相机中心点Oc,焦距f。{picture}:O-xy,像平面π。主轴:从OcO_cOc​出发,垂直于像平面的射线 。主点:主轴与像平面的交点p。

二、四个坐标轴的变换关系

介绍如何从世界坐标轴,通过相机坐标轴和像面坐标轴,得到像素坐标轴的变换的过程,即world:Pw=(xw,yw,zw)Tworld:P_w=(x_w,y_w,z_w)^Tworld:Pw​=(xw​,yw​,zw​)T----->camera:Pc=(xc,yc,zc)Tcamera:P_c=(x_c,y_c,z_c)^Tcamera:Pc​=(xc​,yc​,zc​)T------>image:m=(xp,yp,1)Timage:m=(x_p,y_p,1)^Timage:m=(xp​,yp​,1)T----->pixel:Pix=(u,v,1)Tpixel:Pix=(u,v,1)^Tpixel:Pix=(u,v,1)T

2.1 从{world}到{camera}

设某点在{world}中的坐标为Pw=(xw,yw,zw)TPw=(x_w,y_w,z_w)^TPw=(xw​,yw​,zw​)T,在{camera}中的坐标为Pc=(xc,yc,zc)TPc=(x_c,y_c,z_c)^TPc=(xc​,yc​,zc​)T。则
Pc=[RT01]PwP_c=\begin{bmatrix}R&T\\ 0&1\end{bmatrix}P_wPc​=[R0​T1​]Pw​
其中,R为正交旋转矩阵,
R=[r11r12r13r21r22r23r31r32r33]R=\begin{bmatrix} r_{11} &r_{12}&r_{13}\\r_{21} &r_{22}&r_{23}\\ r_{31} &r_{32}&r_{33}\end{bmatrix}R=⎣⎡​r11​r21​r31​​r12​r22​r32​​r13​r23​r33​​⎦⎤​
T为平移矩阵,T=[txtytz]TT=\begin{bmatrix}t_x&t_y&t_z\end{bmatrix}^TT=[tx​​ty​​tz​​]T

2.2 从{camera}到{image}

设空间点XcX_cXc​在{camera}下:Pc=(xc,yc,zc,1)TP_c=(xc,yc,zc,1)^TPc​=(xc,yc,zc,1)T,其像点m在{image}的齐次坐标为m=(xp,yp,1)Tm=(x_p,y_p,1)^Tm=(xp​,yp​,1)T。由图中相似三角形可得,
{xp=fxczcyp=fyczc\left\{\begin{matrix} x_p=\frac{fx_c}{z_c} \\ \\ y_p=\frac{fy_c}{z_c}\end{matrix}\right.⎩⎨⎧​xp​=zc​fxc​​yp​=zc​fyc​​​
写成矩阵表示为,
zcm=[f0000f000010]Pcz_cm=\begin{bmatrix} f& 0& 0& 0 \\ 0& f& 0& 0 \\ 0& 0& 1& 0 \end{bmatrix}P_czc​m=⎣⎡​f00​0f0​001​000​⎦⎤​Pc​
实际中,主点可能不在图像坐标系原点,若主点在图像坐标系中的坐标为p=(x0,y0,1)Tp=(x_0,y_0,1)^Tp=(x0​,y0​,1)T

zcm=[fxfy1]=[f0x000fy000010]Pcz_cm=\begin{bmatrix}fx\\ fy\\ 1\end{bmatrix}=\begin{bmatrix} f& 0& x_0& 0 \\ 0& f& y_0& 0 \\ 0& 0& 1& 0 \end{bmatrix}P_czc​m=⎣⎡​fxfy1​⎦⎤​=⎣⎡​f00​0f0​x0​y0​1​000​⎦⎤​Pc​

2.3 从{image}到{pixel}

假设一个像素的长和宽分别为dx,dy,设像素坐标Pix=(u,v,1)TPix=(u,v,1)^TPix=(u,v,1)T,则
[uv1]=[1/dx0001/dy0001][xpyp1]\begin{bmatrix}u\\v\\1\end{bmatrix}=\begin{bmatrix}1/d_x&0&0\\0&1/d_y&0\\0&0&1\end{bmatrix}\begin{bmatrix}x_p\\y_p\\1\end{bmatrix}⎣⎡​uv1​⎦⎤​=⎣⎡​1/dx​00​01/dy​0​001​⎦⎤​⎣⎡​xp​yp​1​⎦⎤​
结合{camera}到{image}的变换,则{camera}到{pixel}的变换矩阵K为
K=[1/dx0001/dy0001][f0x00fy0001]=[fx0u00fyv0001]K=\begin{bmatrix}1/d_x&0&0\\0&1/d_y&0\\0&0&1\end{bmatrix} \begin{bmatrix}f&0&x_0\\ 0& f& y_0 \\ 0& 0& 1\end{bmatrix} =\begin{bmatrix}f_x&0&u_0\\0&f_y&v_0\\0&0&1 \end{bmatrix}K=⎣⎡​1/dx​00​01/dy​0​001​⎦⎤​⎣⎡​f00​0f0​x0​y0​1​⎦⎤​=⎣⎡​fx​00​0fy​0​u0​v0​1​⎦⎤​
其中,fx=f/dxf_x=f/dxfx​=f/dx,fy=f/dyf_y=f/dyfy​=f/dy,称为相机在u轴和v轴方向上的尺度因子。
相机主点为(u0,v0)T=(x0/dx,y0/dy)T(u_0,v_0)^T=(x_0/dx,y_0/dy)^T(u0​,v0​)T=(x0​/dx,y0​/dy)T

2.4 综合:从{world}到{pixel}

四个坐标系的变换过程:world:Pw=(xw,yw,zw)Tworld:P_w=(x_w,y_w,z_w)^Tworld:Pw​=(xw​,yw​,zw​)T----->camera:Pc=(xc,yc,zc)Tcamera:P_c=(x_c,y_c,z_c)^Tcamera:Pc​=(xc​,yc​,zc​)T----->image:m=(xp,yp,1)Timage:m=(x_p,y_p,1)^Timage:m=(xp​,yp​,1)T----->pixel:Pix=(u,v,1)Tpixel:Pix=(u,v,1)^Tpixel:Pix=(u,v,1)T,
矩阵表示为:
zc[uv1]=K⋅[RT01][xwywzw1]z_c\begin{bmatrix}u\\ v\\ 1\end{bmatrix}=K·\begin{bmatrix} R&T \\0&1\end{bmatrix} \begin{bmatrix}x_w\\y_w\\z_w\\1\end{bmatrix} zc​⎣⎡​uv1​⎦⎤​=K⋅[R0​T1​]⎣⎢⎢⎡​xw​yw​zw​1​⎦⎥⎥⎤​

2.5 畸变参数

2.5.1 径向畸变

径向畸变(桶形畸变和枕形畸变)产生原因:光线在远离透镜中心的地方偏折更大。矫正公式:
xcorrected=x(1+k1r2+k2r4+k3r6)x_{corrected}=x(1+k_1r^2+k_2r^4+k_3r^6)xcorrected​=x(1+k1​r2+k2​r4+k3​r6)ycorrected=y(1+k1r2+k2r4+k3r6)y_{corrected}=y(1+k_1r^2+k_2r^4+k_3r^6)ycorrected​=y(1+k1​r2+k2​r4+k3​r6)

2.5.2 切向畸变

切向畸变产生原因:透镜不完全平行于图像平面。矫正公式:
xcorrected=x+[2p1xy+p2(r2+2x2)]x_{corrected}=x+[2p_1xy+p_2(r^2+2x^2)]xcorrected​=x+[2p1​xy+p2​(r2+2x2)]ycorrected=y+[p1(r2+2y2)+2p2xy]y_{corrected}=y+[p_1(r^2+2y^2)+2p_2xy]ycorrected​=y+[p1​(r2+2y2)+2p2​xy]
由此得到相机的5个畸变参数:D(k1,k2,k3,p1,p2)D(k_1,k_2,k_3,p_1,p_2)D(k1​,k2​,k3​,p1​,p2​)

2.6 小结

综上,16个单目相机的参数:

  • 10个内部参数(只与相机有关):

    • 5个内部矩阵参数K:fff,dxdxdx,dydydy,u0u_0u0​,v0v_0v0​
      (也可视作4个参数fxf_xfx​,fyf_yfy​,u0u_0u0​,v0v_0v0​)
    • 5个畸变参数D:k1,k2,k3,p1,p2k_1,k_2,k_3,p_1,p_2k1​,k2​,k3​,p1​,p2​
  • 6个外部参数(取决于相机在{world}的位置):
    • 3个旋转参数R
    • 3个平移参数T

推导:

1.【旋转矩阵】https://www.cnblogs.com/caster99/p/4703033.html
旋转矩阵是一个完美的矩阵——正交矩阵。它的行列式为1,且每个列向量都是单位向量且相互正交,它的逆等于它的转置。
2.【平移矩阵】http://frankorz.com/2017/09/24/matrix-transformation-2/ 平移矩阵,比较平移旋转及旋转平移,说明先旋转后平移的好处
3.【反射矩阵推导】https://www.cnblogs.com/wantnon/p/5630915.html
4.【相机畸变详细推导 】https://blog.csdn.net/waeceo/article/details/51024396
5.【6个参数 旋转平移下坐标变换】https://blog.csdn.net/xuelabizp/article/details/50314633

参考:

1.https://blog.csdn.net/xuelabizp/article/details/50314633
2.https://blog.csdn.net/u010128736/article/details/52850444
3.https://www.cnblogs.com/Jessica-jie/p/6596450.html?tdsourcetag=s_pctim_aiomsg
4.https://blog.csdn.net/yangdashi888/article/details/51356385
5.https://blog.csdn.net/a083614/article/details/78579163
6.https://blog.csdn.net/lql0716/article/details/71973318?locationNum=8&fps=1)

Step1:模型 16个相机参数(内参、外参、畸变参数)相关推荐

  1. Halcon内参外参畸变矫正

    相机畸变矫正 CameraParameters := [0.00367057,-809.403,2.20647e-006,2.2e-006,1136.84,1064.02,2592,1944] Cam ...

  2. 计算机视觉——棋盘格标定法获取相机内参外参

    计算机视觉--棋盘格标定法获取相机内参外参 一.原理 相机标定目的 相机标定的输入 相机标定的输出 相机标定策略 相机拍摄图像变换过程 相机内参 相机外参 二.环境 三.数据集 四.运行结果与分析 角 ...

  3. mynt product model: D1000-IR-120标定相机和IMU外参之二

    1. 在之一中使用kalibr标定mynt相机和内置imu的外参数,使用的是720p,30fps的双目图像和200hz的imu数据,标定结果误差比较大,这一次我们改用480p,60hz的双目图像和20 ...

  4. Ubuntu16.04 在ROS中配置RealSence D435 并标定深度相机与rplidar外参

    Ubuntu16.04系统,在ROS中配置RealSence D435 ,并标定其与rplidar的外参 主要目的是为rplidar标定深度相机外参,为机器人导航的过程提供障碍物识别的功能,因此需要知 ...

  5. python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)

    python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码 一.前言 今天的低价单孔摄像机(照相机)会给图像带来很多畸变.畸变主要有两 种:径向畸变和切想畸变.如下图所示,用 ...

  6. imu相机标定_解放双手——相机与IMU外参的在线标定

    本文作者 沈玥伶,公众号:计算机视觉life,编辑部成员 一.相机与IMU的融合 在SLAM的众多传感器解决方案中,相机与IMU的融合被认为具有很大的潜力实现低成本且高精度的定位与建图.这是因为这两个 ...

  7. 1.模型 16个相机参数(内参、外参、畸变参数)

    16个相机参数 摘要:本文首先介绍了针孔相机模型,然后推导四个坐标轴变换的关系,引出R.T.K.D中包含相机的5个内参,6个外参,5个畸变参数.相机的标定是从空间点及其对应的像素点,获得相机的位置信息 ...

  8. 小觅相机 相机以及IMU外参标定

    最近在使用IMU和双目相机进行相关VIO算法的测试,首先要对IMU和相机的外参进行标定,本文主要是对标定过程做一个全面的记录,方便总结和讨论.测试中采用的是小觅双目模组标准版S1030-IR-120/ ...

  9. mynt product model: D1000-IR-120标定相机和IMU外参

    1. 首先是安装相应的mynt SDK. http://www.myntai.com/mynteye/depth小觅官网,在sdk下拉菜单中点击MYNT EYE Depth SDK,然后选择Linux ...

最新文章

  1. hadoop优化之操作系统优化
  2. Java常用正则表达式
  3. WindowsXP正版验证方法
  4. python更新_MacOS升级python版本
  5. 通过机房工作看软工之软工总结
  6. 在线RGB和HEX十六进制颜色互转工具
  7. C语言之指针的再次理解
  8. java 不刷新页面_java – 更新jsp页面的内容而不刷新
  9. 23种设计模式(十二)对象性能之享元模式
  10. python返回值函数_Python函数的返回值(一)
  11. PreScan笔记(3)——设置车速(Speed Profile Editor)
  12. GIS实验之房价数据可视化分析
  13. 设计模式之简单工厂,工厂方法和抽象工厂
  14. java生成pdf带图片_(例)Java生成PDF图片 iText
  15. Ubuntu 环境下 vim 打造成 IDE
  16. c 语言中析构函数,详解C++中的析构函数
  17. 商业直播平台都有哪些
  18. via导出书签html,书签助手,迈出换用 Via 浏览器的第一步 | App+1
  19. php5 imap,LIV. IMAP, POP3 and NNTP Functions - PHP 5 中文文档
  20. 〖经典怀念〗新白娘子传奇MV之青姐17部完整原版下载

热门文章

  1. BIOS 与 CPU关系
  2. PCB板设计之Altium Designer了解以及电子设计基础知识
  3. 【Qt】cmake 手册
  4. Codeforces Round #787 (Div. 3)补题
  5. JS学习之求带参函数求任意两个数和
  6. 华为接入交换机基于MAC地址做端口绑定
  7. [2021年秋招笔试记录]OPPO_8.29_机器学习算法A卷
  8. python pdb模块_使用Python中PDB模块中的命令来调试Python代码的教
  9. 大于在python中怎么打出来_在python中,如何检查输入不是空的并且是大于零的数字...
  10. 反向传播网络(BP-ANN)的python实现