>>>文章索引<<<

相机标定(一)-原理及内参、外参
相机标定(二)-畸变校正,张正友标定法
相机标定(三)-相机成像模型


1 人眼&相机结构

1.1 类比


类比来说,相机就是计算机的“眼睛”:


1.2 成像

本质上来说,图像是真实世界场景中在二维平面(成像平面)的投影,它记录了两类信息:

  • 几何信息:位置、点、线等;
  • 光度信息:强度、色彩。

2 相机成像模型

  • 小孔成像模型(Pinhole camera model)
  • 正交投影(Orthographic projection)
  • 缩放正交投影(Scaled orthographic projection)
  • 透视投影(Perspective projection)

2.1 小孔成像模型(Pinhole camera model)


数学表示,具体也可参考博客:

一般来说,我们使用右手坐标系:

小孔成像模型实际上是透视投影(perspective projection)的一种最简单的形式。假设我们要将真实世界中的三维点(X,Y,Z)T(X,Y,Z)^T(X,Y,Z)T投影为二维图像上的点p=(x,y)Tp=(x,y)^Tp=(x,y)T,则有:

{XZ=xfYZ=yf⇒{x=fXZy=fYZ(1)\begin{cases} \frac{X}{Z}=\frac{x}{f} \\ \frac{Y}{Z}=\frac{y}{f} \end{cases} \Rightarrow \begin{cases} x=f\frac{X}{Z} \\ y=f\frac{Y}{Z} \end{cases} \tag{1} {ZX​=fx​ZY​=fy​​⇒{x=fZX​y=fZY​​(1)

2.2 正交投影(Orthographic projection)

  • 3D场景距离相机无限远;
  • 所有投影线均平行于光轴。

则有x=X,y=Yx=X, y=Yx=X,y=Y。

2.3 缩放正交投影(Scaled orthographic projection)

  • 场景深度<<到相机的距离;
  • 场景中所有点的Z值均相同,如Z0Z_0Z0​。

这种情况相当于对垂直于相机Z轴方向上的一个平面场景进行成像,则对于场景中所有的点有:x=sX,y=sY,s=fZ0x=sX, y=sY, s=\frac{f}{Z_0}x=sX,y=sY,s=Z0​f​。

2.4 透视投影(Perspective projection)

3 相机参数

对于小孔成像模型中,有:

{x=fXZy=fYZ(2)\begin{cases} x=f\frac{X}{Z} \\ y=f\frac{Y}{Z} \end{cases} \tag{2} {x=fZX​y=fZY​​(2)

3.1 相机内参

上述为理想状态下的公式,下面来分析几种特殊情况。

3.1.1 像素不是正方形

当相机传感器(CCD)上的像素不是正方形时有:

{x=kfXZy=lfYZ(3)\begin{cases} x=kf\frac{X}{Z} \\ y=lf\frac{Y}{Z} \end{cases} \tag{3} {x=kfZX​y=lfZY​​(3)

  • x,y:坐标(pixel);
  • k,l:缩放因子(pixel/mm)
  • f:焦距(mm)

令上式中:fx=kf,fy=lff_x=kf, f_y=lffx​=kf,fy​=lf,则有:

{x=fxXZy=fyYZ(4)\begin{cases} x=f_x\frac{X}{Z} \\ y=f_y\frac{Y}{Z} \end{cases} \tag{4} {x=fx​ZX​y=fy​ZY​​(4)

3.1.2 相机主点(principal point)不在原点

即光轴与CCD中心有偏移。假设主点在图像上的坐标(像素)为cx,cyc_x, c_ycx​,cy​,则有:

{x=fxXZ+cxy=fyYZ+cy(5)\begin{cases} x=f_x\frac{X}{Z}+c_x \\ y=f_y\frac{Y}{Z}+c_y \end{cases} \tag{5} {x=fx​ZX​+cx​y=fy​ZY​+cy​​(5)

那么沿着相机的Z轴,有X=Y=0X=Y=0X=Y=0,x=cx,y=cyx=c_x, y=c_yx=cx​,y=cy​。

3.1.3 x轴与y轴不垂直

理想情况下,x轴与y轴是相互垂直的,但一般情况下,x轴和y轴的夹角并不是90度。假设x轴和y轴之间的夹角为θ\thetaθ,则有:

{x=fxXZ−fxcotθYZ+cxy=fysinθYZ+cy(6)\begin{cases} x=f_x\frac{X}{Z}-f_x cot\theta \frac{Y}{Z}+c_x \\ y=\frac{f_y}{sin\theta}\frac{Y}{Z}+c_y \end{cases} \tag{6} {x=fx​ZX​−fx​cotθZY​+cx​y=sinθfy​​ZY​+cy​​(6)

3.1.4 内参矩阵

组合所有参数,可以得到相机的内参矩阵KKK:

K=[fx−fxcotθcx0fysinθcy001]=[fxscx0fycy001](7)K= \begin{bmatrix} f_x & -f_xcot\theta & c_x \\ 0 & \frac{f_y}{sin\theta} & c_y \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} f_x & s & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} \tag{7} K=⎣⎡​fx​00​−fx​cotθsinθfy​​0​cx​cy​1​⎦⎤​=⎣⎡​fx​00​sfy​0​cx​cy​1​⎦⎤​(7)

3.2 相机外参

相机外参反映了相机在世界坐标空间中的位姿,可通过一个刚性变换来表示,通常包含平移TTT和旋转RRR。

平移矩阵:

T=[TXTYTZ](8)T= \begin{bmatrix} T_X \\ T_Y \\ T_Z \end{bmatrix} \tag{8} T=⎣⎡​TX​TY​TZ​​⎦⎤​(8)

旋转矩阵:

R=[r11r12r13r21r22r23r31r32r33](9)R= \begin{bmatrix} r_11 & r_12 & r_13 \\ r_21 & r_22 & r_23 \\ r_31 & r_32 & r_33 \end{bmatrix} \tag{9} R=⎣⎡​r1​1r2​1r3​1​r1​2r2​2r3​2​r1​3r2​3r3​3​⎦⎤​(9)

旋转矩阵是正交的,所以有:RTR=IR^TR=IRTR=I。

4 畸变

畸变是光学透镜固有的透视失真特性,目前所有的镜头都存在畸变,只是程度不同。畸变又分为径向畸变和切向畸变,这里只以径向畸变为例。常见的径向畸变有桶形畸变、枕形畸变等:

径向畸变可以被建模为:

具体的畸变校正过程可以参考博客。

5 相机标定

相机标定的目的就是获取前文提到的相机内参、外参和畸变系数。通常,标定方法分为两步:(1)从不同角度捕获棋盘格图像;(2)检测角点并计算相机参数。


可使用OpenCV或其他相机标定程序来完成参数计算。

参考

[1] 一个pdf,下载地址找不到了=_=

相机标定(三)-相机成像模型相关推荐

  1. 相机标定:相机模型和畸变模型

    一.相机标定方案 相机内参标定是确定内参和畸变参数(equidistqant畸变模型)或者(radial tangential模型)的过程. 本文首先介绍SLAM中常用的相机模型和畸变模型,随后介绍我 ...

  2. 相机标定(三)——手眼标定

    相机标定(一)--内参标定与程序实现 相机标定(二)--图像坐标与世界坐标转换 相机标定(三)--手眼标定 一.简述 手眼标定目的在于实现物体在世界坐标系和机器人坐标系中的变换. 在标定时,一般在工作 ...

  3. 相机标定篇——相机标定

    认为相机标定是三维重建的核心,研究生期间主要方向为结构光三维重建 必要的数学知识 线性方程求解 Gauss消元法:LU分解:Cholesky分解 最小二乘问题-线性方法 特征值分解:奇异值分解:超定线 ...

  4. 相机标定(三) —— 畸变校正

    一.前言 根据针孔模型,物体和成像之间参数会满足相似三角形的关系.但现实中会存在装配误差和透视失真等原因,导致这种关系无法成立,使理想成像与实际成像存在误差,这种误差即称为畸变. 畸变分为径向畸变,切 ...

  5. 相机标定 - (01) - 相机标定简介

    目录 1 相机标定简介 1.1 相机标定的作用 1.2 相机标定的分类 1 相机标定简介 1.1 相机标定的作用 相机标定是利用二维平面信息及少量三维空间信息解析物点与对应像点几何关系的过程,在几何测 ...

  6. 【相机标定】相机内参

    相机标定 相机在计算机视觉方面的一些应用一般需要相机标定.我们总是听到标定这个词,那么具体标定的是什么呢?相机的拍摄是一个三维到二维(透视投影)的过程,这个过程可以用数学模型去表述,标定便是计算这个数 ...

  7. 深度学习 相机标定_相机标定

    术语 内参矩阵: Intrinsic Matrix 焦距: Focal Length 主点: Principal Point 径向畸变: Radial Distortion 切向畸变: Tangent ...

  8. imu相机标定_相机+imu标定

    官方上是跑在ros indigo上的,但是实测用kinetic也没问题,主要就是装依赖的时候改下名字(下面命令行里有写注释) 1 工具箱 Kalibr 安装 安装依赖 sudo apt-get ins ...

  9. 深入理解相机体系 三 相机应用层 APP

    和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一.概览 二.Camera Api v2 三.Camera Framework 四.Camera App ...

  10. 计算机视觉----相机标定模型

    简介 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.相机标定简介 二.张友正黑白棋盘标定 1.思想 2.原理 3.模型求解 三.实验内容及过程 3.1 实验要求 ...

最新文章

  1. IOS的消息传递机制,使用NSNotificationCenter进行通信,很实用
  2. SLAM:ORB-SLAM 位姿优化描述
  3. 在Windows笔记本上调试运行在iOS设备上的前端应用
  4. 抖音txt表白html,抖音txt弹窗表白整蛊怎么弄 抖音表白撩妹套路弹窗设置教程
  5. PowerPC VxWorks BSP分析(2)--PowerPC汇编
  6. thread.sleep是让哪个线程休眠_java多线程必看:java线程的生命周期
  7. zabbix自定义监控nginx
  8. 网工必考的8个dos命令
  9. PAIP.利用SyncML协议来同步备份手机短信联系人.txt
  10. 区块链重要基础知识2——哈希函数的原理以及应用于区块头部
  11. 【ZZULIOJ】1001: 植树问题
  12. pandas学习笔记:pandas.Dataframe.rename()函数用法
  13. 浏览我的php网页时,出现的都是网页的代码
  14. android手机必备app,5款安卓手机必备的黑科技APP!各个都是精品,一定要低调收藏使用...
  15. finereport实现数据替换和重复填报提示
  16. 利用实际数据对期权希腊字母绘图_20200525_
  17. 在ubuntu11.04通过Wine使用中国知网cnki的CAJview阅读器打开*.nh *.caj后缀的文献资料
  18. 数字移动通信系统中广泛使用的两大类调制技术
  19. 网络安全-常见面试题(Web、渗透测试、密码学、Linux等)
  20. 5. 试用期个人工作总结(篇五)

热门文章

  1. 超好用的截图工具——Snipaste
  2. android动态平分屏幕,Android开发RecyclerView的item平分屏幕
  3. 高通Android display架构分析
  4. 宝尊2019年第二季度交易总额同比大幅增长近60%
  5. 离群点检测——局部离群因子(Local Outlier Factor,LOF)算法
  6. RapidEye数据介绍
  7. HTML5+CSS、CSS3基础知识点总结
  8. 进口付汇联的打印和下载,报关单进口付汇联的打印方法
  9. python 动物分类_python入门学习之knn分类
  10. 第八届慈展会将于9月18日至20日在深圳举行