一般摄像机简化为小孔成像的理想模型(线性模型),因为摄像机镜头(视场角)很小,相当于被拍摄物体通过小孔投影到感光元件CCD/CMOS上。

对于加了各种镜头的摄像机,镜头不是平面(凸镜凹镜),小孔成像的像发生畸变,属于非线性模型,需要额外矫正。

通过标定可求出摄像机各种内外参数,也包括镜头畸变。

​​​​​​​小孔成像和相机成像略有不同。

​​​​​​​

1、理想线性摄像机小孔成像示意图

下图为相机成像。

如图,小孔成像能否看到倒立的像,取决于物体和孔的距离,以及感光板与孔的距离,按图中公式计算。其中f是焦距。

上2个图,为成像模型实际情况,像p与物体P分别位于小孔两侧,且是倒立成像,不利于观看。

2、坐标系转换

坐标转换就是,通过坐标系参数矩阵变换,该用实际物体3D坐标表示2D图片像素点,变换矩阵就是摄像机的内参。

下图,将倒立的像p颠倒并平移到小孔o的另一边,跟实际物体在一边成比例,且为正向,方便画图。

①世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。物体实际坐标,用(Xw, Yw, Zw)表示其坐标值。

②相机坐标系(光心坐标系):以相机的光心(小孔圆心)为坐标原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,相机的光轴为Z 轴,用(Xc, Yc, Zc)表示其坐标值。

③图像坐标系:以CCD 图像平面的中心为坐标原点,X轴和Y 轴分别平行于图像平面的两条垂直边,用( x , y )表示其坐标值。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。

④像素坐标系:以 CCD 图像平面的左上角顶点为原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,用(u , v )表示其坐标值。数码相机采集的图像首先是形成标准电信号的形式,然后再通过模数转换变换为数字图像。每幅图像的存储形式是M × N的数组,M 行 N 列的图像中的每一个元素的数值代表的是图像点的灰度。这样的每个元素叫像素,像素坐标系就是以像素为单位的图像坐标系。

如下图,是2个坐标系:④像素坐标系uv和③图像坐标系xyimg。

3、张正友标定算法calibration

”张正友标定”是指张正友教授1998年提出的单平面棋盘格的摄像机标定方法。文中提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点,而仅需使用一个打印出来的棋盘格就可以。同时也相对于自标定而言,提高了精度,便于操作。因此张氏标定法被广泛应用于计算机视觉方面。

标定参数包括内参和外参。内参表示相机本身参数,外参表示拍摄每一张照片时的相机位置姿态等外部参数。

传统标定

下图,已知拍好的照片和实际物体的3D坐标,反推相机参数。需要的高精度标定物。

张氏标定步骤

  • 打印一张棋盘格A4纸张(黑白间距已知),并贴在一个平板上
  • 对棋盘格拍摄若干张图片(一般10-20张)
  • 在图片中检测特征点(Harris特征)
  • 利用解析解估算方法计算出5个内部参数,以及6个外部参数
  • 根据极大似然估计策略,设计优化目标并实现参数的refinement改善

张氏标定原理

1、成像数学模型表示

图片二维点,真实三维点。增广向量,摄像机用小孔成像得到3维M到2维m的投影公式:

s是任意比例因子,[R,t]为外部参数:旋转矩阵和位移矩阵。A为相机内部参数矩阵,α和β是图像轴(焦距)的比例因子,γ是两个图像轴之间(传感器轴和光轴)的夹角(当安装准确时γ=0),(u0,v0)是2D图像的中心点。

假设M在坐标轴z=0上,上面的投影公式改写为:

M可以改写为,所以三维点M和二维点m可以通过3*3单应性矩阵H(Homography matrix)描述:

单目相机的PnP问题。已知物体3D坐标,和图片2D坐标,相机内参已知,求解相机外参,也就是相机的位姿的问题。

4、畸变参数确定

径向畸变系数为k1, k2, k3,切向畸变系数为p1, p2,可以通过如下两个方程求得:

径向畸变计算方程

切向畸变计算方程:

2D点和3D点的变换

  • 投影变换:8自由度,将图像转换为不同的投影
  • 仿射变换:6自由度,转换将保留原图像平行线的图像
  • 相似变换:4自由度,旋转和缩放原图像
  • 欧几里得变换:3自由度,旋转原图像

下图为2D和3D的变换等级,矩阵,自由度等

齐次坐标

齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示。

在一个2D笛卡尔坐标末尾加上一个额外的变量w来形成2D齐次坐标,因此,一个点(X,Y)在齐次坐标里面变成了(x,y,w),并且有X = x/w,Y = y/w。

使用齐次坐标,可以表示平行线在透视空间的无穷远处交于一点。欧式坐标无法表示。

例如,笛卡尔坐标系下(1,2)的齐次坐标可以表示为(1,2,1),如果点(1,2)移动到无限远处,它的齐次坐标表示为(1,2,0),在笛卡尔坐标下它变为(∞,∞),因为(1/0, 2/0) = (∞,∞)。

单应矩阵H(Homography)

单应矩阵约束了同一3D空间点在两个像素平面的2D齐次坐标。例如,两个相机对同一物体拍照,通过相机参数和单应矩阵能互相推算。

用公式表示:

即:

符号表示单应矩阵H约束了qa和qb同方向,但没有约束尺度大小。可通过叉乘消去齐次的尺度因子:,

再通过两个相机的外参旋转平移(R,t),和两个相机的内参K1、K2,和3D点所在平面参数法向量和距离(n,d),计算单应矩阵:

单应矩阵应用举例:将第2个图片放入第1个图片的广告版中

参考文献:

1、从零开始一起学习SLAM | 相机成像模型 - electech6的博客 - CSDN博客  https://blog.csdn.net/electech6/article/details/83617892

2、SLAM入门之视觉里程计(2):相机模型(内参数,外参数) - Brook_icv - 博客园  https://www.cnblogs.com/wangguchangqing/p/8126333.html

3、【3D视觉工坊】第二期公开课:相机标定的基本原理与经验分享_哔哩哔哩_bilibili  https://www.bilibili.com/video/BV1R7411m7ZQ

4、张正友标定算法原理详解 - 简书  https://www.jianshu.com/p/9d2fe4c2e3b7

5、张正友相机标定法原理与实现_Eating Lee-CSDN博客_张正友标定法原理  https://blog.csdn.net/qq_40369926/article/details/89251296

6、谭平--从相机标定到SLAM,极简三维视觉六小时课程视频_哔哩哔哩_bilibili  https://www.bilibili.com/video/BV124411W775/?p=2&spm_id_from=pageDriver

7、无人驾驶传感器融合系列(十一)—— 相机内参标定_默_存的博客-CSDN博客  https://blog.csdn.net/weixin_40215443/article/details/98478019

8、张正友标定法翻译_heroacool的专栏-CSDN博客_张正友标定法论文  https://blog.csdn.net/heroacool/article/details/50286677

9、《Computer Vision_ Algorithms and Applications-Richard Szeliski》第二章 image formation

10、单应矩阵的推导与理解 - 知乎  https://zhuanlan.zhihu.com/p/138266214

11、图像处理之理解Homography matrix(单应性矩阵) - 云+社区 - 腾讯云  https://cloud.tencent.com/developer/article/1084332

12、

13、

14、

15、

摄像机成像原理(模型)与标定相关推荐

  1. 图像成像原理与相机标定

    一.图像成像原理 世界坐标系到相机坐标系 世界坐标系是空间中根据需求任意指定的坐标系,相机坐标系是以镜头为原点,光心方向为Z轴方向的坐标系. 同一个点在不同坐标系下的坐标可以通过平移旋转的仿射变换得到 ...

  2. unity 畸变_摄像机成像、畸变模型

    一 摄像机成像模型 成像的过程实质上是几个坐标系的转换.首先空间中的一点由世界坐标系转换到摄像机坐标系,然后再将其投影到成像平面(摄像机的CCD),最后再将成像平面上的数据转换到图像平面(最后生成的图 ...

  3. camera ---(6)双摄成像原理

    1. 双camera 成像 为了下面的计算方便,首先在这里介绍一个凸透镜成像的简单性质. 内容 如图为摄像头成像的原理图,其中A为物点,O为光心,A'为像点,F,F'分别为物方和像方焦点. 该引理的内 ...

  4. 相机模型-鱼眼模型/鱼眼镜头标定基本原理及实现(2)

    问题: 1 广角/超广角与鱼眼摄像机,角度界限 2 畸变模型中radtan畸变模型与鱼眼畸变模型在小于150范围是否都时能适用.   (同数据,拟合模型不同,,参数结果不同,不欠拟合和过拟合就可) 3 ...

  5. 《Kinect应用开发实战:用最自然的方式与机器对话》一3.4 深度图像成像原理...

    3.4 深度图像成像原理 Kinect有发射.捕捉.计算视觉重现的类似过程.严格说来,Kinect的"深度眼睛"是由一个红外投影机和红外摄像头组合而成的,投影和接收互为重叠,如图3 ...

  6. 摄像机投射投影模型_综述及详解

    1.写在前面的话 摄像机通过成像透镜将三维场景投影到摄像机二维像平面上,这个投影可以用成像变换进行表示,也就是我们平常说的摄像机投影模型.摄像机成像模型有不同的描述方式.这里仅仅总结了机器视觉中常用的 ...

  7. 相机成像原理_【科研进展】动态虚拟相机:探索三维视觉成像新方法

    由于微信公众号试行乱序推送,您可能没办法准时收到"爱光学"的文章.为了让您第一时间看到"爱光学"的新鲜推送, 请您: 1. 将"爱光学"点亮 ...

  8. 相机模型与标定(八)--传统相机标定算法简介

    原文: http://blog.sina.com.cn/s/blog_b364631a0101iopy.html 一.相机数学模型 相机模型为以后一切标定算法的关键,只有这边有相当透彻的理解,对以后的 ...

  9. RGB相机、深度相机以及LiDAR成像原理

    RGB相机成像原理 相机结构和原理(入门简版)知乎 摄像机模型数学推导 相机结构 成像原理 大名鼎鼎的"拜尔滤镜" CMOS滤镜排列 像素尺寸.大小关系 景深 景深原理 卷帘相机( ...

  10. 【立体视觉(一)】之成像原理与相机畸变

    [立体视觉(一)]之成像原理与相机畸变 一.成像原理 一)针孔模型 二)坐标系转换 1. 世界坐标系到相机坐标系 2. 相机坐标系到图像坐标系 3. 图像坐标系到像素坐标系 4. 相机坐标系到像素坐标 ...

最新文章

  1. 国内大公司的开源项目( 阿里 腾讯 百度 新浪 搜狐 豆瓣 大众点评)
  2. 数据结构与算法--再谈递归与循环(斐波那契数列)
  3. [转]javascript小技巧,超强推荐
  4. Spring Boot笔记-@PathVariable的使用
  5. 你是农村人吗?小时候没有自来水,每天喝的是什么水?
  6. linux 文件 内容 并集,Linux 两个文件求交集、并集、差集
  7. eNSP华为路由器与交换机连接
  8. Linux查看目录busy,Linux中遇到device is busy的处理方法
  9. noip 2013 积木游戏
  10. 劫持ZwQuerySystemInformation函数实现进程隐藏
  11. hdu 6638 Snowy Smile 线段树维护最大子段和
  12. Jfinal极速开发微信系列教程--------------Jfinal_weixin demo的使用分析
  13. 转载:香港实习生微软实习经验分享
  14. Spring Security系列(10)- 微服务权限方案及Oauth2介绍
  15. npm丢失报错Error: Cannot find module ‘D:\node_modules\npm\bin\npm-cli.js‘
  16. 不成熟男人的表现 --转载
  17. 正好杠杆炒股大盘缩量开门红后
  18. ios13无法获取wifi名(SSID)(亲测有效)
  19. python 绿色字体是什么意思_知网报告上的绿色字体代表什么?
  20. VS2015+WDK 配置驱动开发环境

热门文章

  1. 由内而外全面造就自己(三)
  2. 消防信号总线原理_消防联动工作原理
  3. Total Control的深入用法,如何使用脚本实现启动或重启指定App
  4. 各种梯度算法总结 + Total Variation
  5. ERP实施心得(转)
  6. 单片机89C51最小系统讲解
  7. MLX90614系列 ——红外温度计
  8. 塔尔寺景点门票销售管理系统
  9. DRM-Playready总结
  10. 《缠中说禅108课》96:无处不在的赌徒心理