摄像机通过成像透镜将三维场景投影到摄像机二维像平面上,这个投影可用成像变换描述,即摄像机成像模型。摄像机成像模型有不同描述方式,本节首先介绍机器视觉中的常用坐标系,然后介绍摄像机的线性模型和非线性模型。

  1. 图像坐标系、摄像机坐标系和世界坐标系
  2. 针孔成像模型
  3. 非线性模型

1,图像坐标系、摄像机坐标系和世界坐标系

摄像机采集的图像在计算机内为MxN数组,M行N列的图像中的每一个像素的数值即是图像点的亮度。如下图所示,在图像上定义直角坐标系u、v,每一像素的坐标\((u,v)\)分别是该像素在数组中的列数与行数。所以,\((u,v)\)是以像素为单位的图像坐标系

由于\((u,v)\)只表示像素位于数组中的列数与行数,并没有用物理单位表示出该像素在图像中的位置。因此需要再建立以物理单位(如毫米)表示的图像坐标系。该坐标系以图像内某一点\(O_1\)为原点,X轴和Y轴分别与u、v轴平行,如上图所示。其中\((u,v)\)表示以像素为单位的图像坐标系的坐标,\((X,Y)\)表示以毫米为单位的图像坐标系的坐标。在X、Y坐标系中,原点\(O_1\)定义在摄像机光轴与图像平面的交点,该点一般位于图像中心处,但由于某些原因,也会有些偏离,若\(O_1\)在u、v坐标系中坐标为\((u_0, v_0)\),每一个像素在X轴与Y轴方向上的物理尺寸为dX、dY,则图像中的任意一个像素在两个坐标系下的坐标有如下关系:

\( \left\{\begin{matrix} u = \frac{X}{dX} + u_0 \\ v = \frac{Y}{dY} + v_0 \end{matrix}\right. \)

为以后使用方便,用齐次坐标与矩阵形式将上式表示为

\(\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} \frac{1}{dX} \ 0 \ u_0 \\ 0 \ \frac{1}{dY} \ v_0 \\ 0 \ 0 \ 1 \end{bmatrix} \begin{bmatrix} X \\ Y \\ 1 \end{bmatrix} \)

摄像机成像几何关系可下图表示,其中O点成为摄像机光心,x轴和y轴与图像的X轴和Y轴平行,z轴为摄像机光轴,它与图像平面垂直。光轴与图像平面的交点即为图像坐标系的原点,由点O与x、y、z轴组成的直角坐标系称为摄像机坐标系。\(OO_1\)为摄像机焦距。

由于摄像机可安放在环境中的任意位置,在环境中选择一个基准坐标系来描述摄像机的位置,并用它描述环境中任何物体的位置,该坐标系称为世界坐标系。它由\(X_w\)、\(Y_w\)、\(Z_w\)轴组成。摄像机坐标系与世界坐标系之间的关系可以用旋转矩阵R和平移向量t来描述。因此,空间中某一点P在世界坐标系与摄像机坐标系的齐次坐标如果分别是\(X_w=(X_w, Y_w, Z_w, 1)^T\)与\(x = (x, y, z, 1)^T\),则存在如下关系:

\(\begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} = \begin{bmatrix} R \ t \\ 0^T \ 1 \end{bmatrix} \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} = M_2\begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} \)

其中,\(R \)为\(3 \times 3\)正交单位矩阵;\(t\)为三维平移向量;\(0 = (0, 0, 0)^T\);\(M_2\)为\(4 \times4 \)矩阵

2,针孔成像模型

针孔成像模型又称为线性摄像机模型。空间任何一点P在图像中的成像位置可以用针孔成像模型近似表示,即任何点P在图像中的投影位置p,为光心O与P点的连线OP与图像平面的交点。这种关系也称为中心射影或透视投影(perspective projection)。由比例关系有如下关系式:

\(\left\{\begin{matrix} X = \frac{fx}{z} \\ Y = \frac{fy}{z} \end{matrix}\right. \)

其中,\((X,Y)\)为p点的图像坐标;\((x, y, z)\)为空间点P在摄像机坐标系下的坐标,\(f\)为\(xy\)平面与图像平面的距离,一般称为摄像机的焦距。用齐次坐标和矩阵表示上述透视投影关系

\(s\begin{bmatrix} X \\ Y \\ 1 \end{bmatrix} = \begin{bmatrix} f \ 0 \ 0 \ 0 \\ 0 \ f \ 0 \ 0 \\ 0 \ 0 \ 1 \ 0 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} = P \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} \)

其中,s为一比例因子,P为透视投影矩阵。将第一节中的矩阵公式代入上式,得到以世界坐标系表示的P点坐标与其投影点p的坐标\((u,v)\)的关系

\(s\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} \frac{1}{dX} \ 0 \ u_0 \\ 0 \ \frac{1}{dY} \ v_0 \\ 0 \ 0 \ 1 \end{bmatrix} \begin{bmatrix} f \ 0 \ 0 \ 0 \\ 0 \ f \ 0 \ 0 \\ 0 \ 0 \ 1 \ 0 \end{bmatrix} \begin{bmatrix} R \ t \\ 0^T \ 1 \end{bmatrix} \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} = \begin{bmatrix} a_x \ 0 \ u_0 \ 0 \\ 0 \ a_y \ v_0 \ 0 \\ 0 \ 0 \ 1 \ 0 \end{bmatrix} \begin{bmatrix} R \ t \\ 0^T \ 1 \end{bmatrix} \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} = M_1 M_2 X_w = MX_w \)

其中,\(a_x = f / dX\)为u轴上尺度因子,或称为u轴上归一化焦距;\(a_y=f / dY\)为v轴上的尺度因子,或成为v轴上归一化焦距;\(M\)为\(3 \times 3\)矩阵,成为投影矩阵;\(M_1\)由\(a_x\)、\(a_y\)、\(u_0\)、\(v_0\)决定,由于这四个参数只与摄像机内部参数有关,称这些参数为摄像机内部参数;\(M_2\)由摄像机相对于世界坐标系的方位决定,称为摄像机外部参数。确定某一摄像机的内外参数,称为摄像机标定

由上式可知,如果已知某空间点P的图像点p的位置\((u,v)\),即使已知摄像机的内外参数,\(X_w\)也是不确定的。事实上,由于\(M\)是\(3 \times 4 \)不可逆矩阵,当已知\(M\)和\((u,v)\)时,消去z只可得到关于\(X_w\)、\(Y_w\)、\(Z_w\)的两个线性方程,由着两个线性方程组成的方程组即为射线OP的方程,也就是说,投影点为p的所有点均在该射线上。当已知图像点p时,由针孔成像模型,任何位于射线OP上的空间点的图像都是p点。因此,该空间点是不能唯一确定的。

3,非线性模型

实际上,由于实际的镜头并不是理想的透视成像,而是带有不同程度的畸变,使得空间点所成的像并不在线性模型所描述的位置(X, Y),而是在受到镜头失真影响而偏移的实际像平面坐标(X', Y')

\( \left\{\begin{matrix} X=X'+\delta x \\ Y = Y' +\delta y \end{matrix}\right. \)

其中,\( \delta x\)和\(\delta y\)是非线性畸变值,它与图像点再图像中的位置有关。理论上镜头会同时存在径向畸变和切向畸变。但一般来讲切向畸变比较小,径向畸变的修正量由距图像中心的径向距离的偶次幂多项式模型来表示

\(\left\{\begin{matrix} \delta x = (X'-u_0)(k_1 r^2+k_2 r^4 + \cdots \\ \delta y = (Y'-v_0)(k_1 r^2 + k_2 r^4 + \cdots \end{matrix}\right. \)

其中,\(u_0, v_0\)是主点位置坐标的精确值,而

\(r^2 = (X'-u_0)^2 + (Y'-v_0)^2 \)

表明X方向和Y方向的畸变相对值\(\delta x / X, \delta y / Y\)与径向半径的平方成正比,即在图像边缘处的畸变较大。对一般机器视觉,一阶径向畸变已足够描述非线性畸变,即省略上式中大于等于4的高次项。

线性模型参数\(\alpha _x\)、\(\alpha _y\)、\(u_0\)、\(v_0\)与非线性畸变参数\(k_1\)和\(k_2\)一起构成了摄像机非线性模型的内部参数。

摄像机模型 (Camera Model)的更多相关文章

  1. thinkphp模型层Model、Logic、Service讲解

    thinkphp模型层Model.Logic.Service讲解 时间:2014-08-24 15:54:56   编辑:一切随缘   文章来源:php教程网 已阅读:771 次       js特效 ...

  2. Scikit-learn:模型评估Model evaluation

    http://blog.csdn.net/pipisorry/article/details/52250760 模型评估Model evaluation: quantifying the qualit ...

  3. 图标跟着摄像机(Camera)orthographicSize的值改变大小

    默认摄像机(Camera)orthographicSize默认大小为51 #region //滚轮滑动,大地图放大缩小 ) { if (screenView_1Main.myEquipSearch.i ...

  4. 盒子模型(Box Model)

    盒子模型(Box Model) ■ 盒子模型——概念 在网页设计中常用的属性名:内容(content),填充(padding),边框(border),边界(margin),CSS 盒子模式都具备这些属 ...

  5. 使用 Jackson 树模型(tree model) API 处理 JSON

    http://blog.csdn.net/gao1440156051/article/details/54091702 http://blog.csdn.net/u010003835/article/ ...

  6. css盒模型(Box Model)

    所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用. CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和 ...

  7. HTML和CSS的盒子模型(Box model)

    本文作为属性篇的最后一篇文章, 将讲述HTML和CSS的关键—盒子模型(Box model). 理解Box model的关键便是margin和padding属性, 而正确理解这两个属性也是学习用css ...

  8. OpenCV —— 摄像机模型与标定

    这种理论看的已经够多了,感觉应用价值不大(矫正畸变图像还凑合,用摄像机测距神马的...) 有始有终吧,简单把内容梳理一下 针孔  摄像机模型 —— 过于理想(不能为快速曝光收集足够的光线) 透镜可以聚 ...

  9. ORM之模型对象Model

    模型对象Model Odoo的模型对象在odoo模块的models.py文件中,最基础的对象是BaseModel; Odoo的模型对象有三个:AbstractModel.Model.Transient ...

随机推荐

  1. WordCount 优化版测试小程序实现

    Stage1:代码编写+单元测试 Github地址: https://github.com/245553473/wcPro.git PSP表格: PSP PSP阶段 预估耗时(分钟) 实际耗时(分钟) ...

  2. java全栈day34---表单CSS

    今日内容介绍 1 使用html的表单标签编写“注册页面” 2 使用DIV和CSS重写网站首页 所有的html标签中,表单标签是最重要的.在实际开发中,最经典的实例就是用户注册,覆盖 了表单标签的所有的 ...

  3. Python--面向对象编程--时钟实例开发

    在学习python面向对象编程的时候,心血来潮,决定写一个时钟模型来玩玩,所以就有了现在这个小玩意,不过python这个东西确实是挺好玩的 方法:运用python的tkinter库开发图形化时钟程序 ...

  4. MySQL数据导入导出方法与工具mysqlimport

    MySQL数据导入导出方法与工具mysqlimport<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office ...

  5. jmeter测试报告汉化及脚本编写

    在做接口自动化时,生成的测试报告页面是英文的,如现在我们优化成汉文.操作如下: 1,下载汉化包 下载路径:https://i.cnblogs.com/Files.aspx?order=1 2,解压汉化 ...

  6. UIPasteboard

    1.UIPasteboard 简介 顾名思义,UIPasteboard 是剪切板功能,因为 iOS 的原生控件 UITextField.UITextView.UIWebView, 我们在使用时如果长按 ...

  7. P4449 于神之怒加强版

    \(\color{#0066ff}{ 题目描述 }\) 给定n,m,k,计算 \(\sum_{i=1}^n \sum_{j=1}^m \mathrm{gcd}(i,j)^k\) 对1000000007 ...

  8. P2381 圆圆舞蹈

    题意:一个圆,上面有n头牛(卧槽) 给出相邻两头牛顺时针的距离 问两只最远的牛的距离(min(顺时针距离,逆时针距离)) 最远距离一定$\le$距离和/2 先求个前缀和 那么问题转化为:找到 $s_j ...

  9. 搜索【洛谷P2845】 [USACO15DEC]Switching on the Lights 开关灯

    P2845 [USACO15DEC]Switching on the Lights 开关灯 题目背景 来源:usaco-2015-dec Farm John 最近新建了一批巨大的牛棚.这些牛棚构成了一 ...

  10. kuangbin专题十二 HDU1078 FatMouse and Cheese )(dp + dfs 记忆化搜索)

    FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe ...