首页 > 其他 > 详细

全景拼接学习-原理篇 (2) 单张图片 单相机成像模型

时间:2020-06-22 23:53:00      阅读:115      评论:0      收藏:0      [点我收藏+]

教程地址 https://zhuanlan.zhihu.com/p/135943895

 

相信不少学过图像处理的同学都接触相机标定、图像拼接、单应性、对极几何等计算摄影学内容,体验过学习时被恐惧支配的感觉。本文主要分析相机数学模型,并简单介绍如何使用相机测距,帮助初学者快速入门

一、相机数学模型

  • 1从世界坐标系到相机坐标系

技术分享图片

 

假设在某间房子中放了一台相机拍照。为了方便测量,我们以房子的某处墙角为原心建立直角坐标系,即世界坐标系。为了研究相机模型,要做的第一步就是将世界坐标系转化为以相机光心为原点的相机坐标系,以相机的视角来“看”外部世界。

从世界坐标系 技术分享图片 到以相机光心为坐标原点的 技术分享图片 的相机坐标系,实际上就是一个三维直角坐标系的旋转与平移变换,可以表示为:

技术分享图片

写成齐次坐标矩阵乘法形式:

技术分享图片

需要特别注意的是,其中旋转矩阵 技术分享图片 是正交矩阵(即 技术分享图片 , 技术分享图片 是单位矩阵),这是一个非常重要的性质。

为何 技术分享图片 是正交矩阵?这里从简单的情形说起。如下图将坐标系绕 技术分享图片 轴旋转 技术分享图片 角,用矩阵可以表示为:

技术分享图片

 

技术分享图片

 

 

用矩阵可以表示为

技术分享图片

 

显然有 技术分享图片 成立。更复杂情况类似,感兴趣的朋友可以自行探索。

从相机坐标系到成像平面坐标系

技术分享图片

 

 

 

现在已经以相机的视角看外部世界了,接下来要做的就是将外部世界的点投影在成像平面上。假设在光心 技术分享图片 后距离 技术分享图片 处有一个接收并记录光信号的传感器,那么传感器所在的平面就是成像平面。这里的 技术分享图片 就是相机的物理焦距(单位:米)。

这是一个将三维空间中的点 技术分享图片 通过光心 技术分享图片 投影到成像平面的过程,并在成像平面形成倒像。这里有一个问题,为何平时我们用手机、数码相机拍照时生成的图片不是倒的?这是由于手机、数码相机等拍照设备内部软件在处理时做了自动翻转。

 技术分享图片

 

 

从侧面看上述模型,在光心前方 技术分享图片 位置存在一个与成像平面对称的等效成像平面(等效成像平面中的像与成像平面的像大小一样且相反)。

由于成像平面中的像是倒像(需要添加负号,不方便数学描述),我们不妨在等效成像平面看,并建立坐标系 技术分享图片 。

技术分享图片

那么在上图中,由相似三角形原理可以得出:

技术分享图片

技术分享图片

将上式整理写成齐次坐标矩阵乘法形式:

技术分享图片

  • 从成像平面坐标系到像素坐标系

技术分享图片

对于现在的数字相机,一般使用CMOS或CCD作为传感器将光信号转换为电信号,并记录下来生成数字图像。与传统胶片不同,这类传感器是由一个个感光原件组成的。在工作时每个感光原件独立记录自己所接收到的光信号,导致生成的数字图像是离散的。简单说,数字图像就是一个由离散像素点组成的矩阵。

技术分享图片

 

 

 那么从成像平面坐标系 技术分享图片 到像素坐标系 技术分享图片 就是一个离散化的过程。之前所有坐标系(包括世界坐标系 技术分享图片 、相机坐标系 技术分享图片 、成像平面坐标系 技术分享图片 )的单位都是连续的“米”,而 技术分享图片 像素坐标系的单位是离散的“像素”。

技术分享图片

 

 

 

从 技术分享图片 到 技术分享图片 的变换可以表示为:

技术分享图片

这个变换有两个步骤组成:

  1. 通过 技术分享图片 和 技术分享图片 将连续坐标量化为像素。其中 技术分享图片 和 技术分享图片 分别表示每个像素在 技术分享图片 和 技术分享图片 方向的实际大小(单位:米/像素),由相机传感器中每个感光原件大小决定。
  2. 由于数字图像一般习惯以左上角为原点,那么需要将图像对称中心从 技术分享图片 位置平移 技术分享图片 像素到左上角点。

这样,通过几个步骤相机将世界坐标系 技术分享图片 中的点(单位:米)最终变换为像素坐标系 技术分享图片 中的点(单位:像素)。那么最终变换关系是:

技术分享图片

13个位置参数  13组匹配点 计算出来

其中 技术分享图片 是相机物理焦距(单位:米), 技术分享图片 和 技术分享图片 表示每个像素在 技术分享图片 和 技术分享图片 方向的实际大小(单位:米/像素), 技术分享图片 和 技术分享图片 表示图像对称中心在 技术分享图片 像素坐标系中的的位置(单位:像素)。简记为:

技术分享图片

或更简记为:

技术分享图片

这里的 技术分享图片 是相机内参矩阵,由相机内部光学物理结构决定。

技术分享图片

 

其中 技术分享图片 , 技术分享图片 。

而 技术分享图片 和 技术分享图片 是相机外参矩阵,由相机摆放位置决定。

显然相机标定就是计算内、外参矩阵的过程。

 

二、视觉测距

  • 单目测距(单目距离估计)

那么有一个问题,在已知所有相机参数 技术分享图片 、 技术分享图片 和 技术分享图片 的情况下,能否通过图像坐标 技术分享图片 反推出对应的世界坐标 技术分享图片 呢?

技术分享图片

这里我们从几何关系上看:只要世界中的点 技术分享图片 在 技术分享图片 射线上,那么最终都会通过相机投影到图像中的 技术分享图片 点,所以单摄像头无法精确测距。相机模型本质是一种从世界坐标系3D->像素坐标系2D的投影变换,在投影变换中丢失了深度 技术分享图片 信息。

但是有时候我们又特别需要使用单个摄像头测距:一个典型场景就是在车辆自动驾驶中使用单摄像头识别前方车辆并测距。一般的做法是加入一定的约束条件后单目估计距离。假设相机 技术分享图片 轴与水平地面平行,到地面高度为 技术分享图片 ,且被测物体在地面上(加入的约束条件);在相机下方 技术分享图片 距离有一个标定板,上面画的是与 技术分享图片 轴水平距离的刻度。在测距前首先拍摄一张标定板图像;当测距时可以根据地面上的物体在图像中的位置读取 技术分享图片 ,此时可以估计出地面物体与相机真实距离为:

技术分享图片

其中 技术分享图片 和 技术分享图片 已知,而 技术分享图片 可以从标定板图像中读取出来。需要说明,这只是一种估计方法,并非精确计算。

技术分享图片

 

  • 双目测距

再来看看双目(即两个相机)的测距问题。为了简化问题,假设在同一平面有 技术分享图片 和 技术分享图片 两个完全一样的相机,他们的相机坐标系 技术分享图片 与 技术分享图片 轴在同一直线上且 技术分享图片 平行于 技术分享图片 。显然可以通过测量获得两个相机间的距离 技术分享图片 ,然后通过标定可以知道相机 技术分享图片 、 技术分享图片 、 技术分享图片 和 技术分享图片 参数。

特别注意,双目测距要求两个相机坐标轴 技术分享图片 和 技术分享图片 平行,否则就是对极几何问题了。

技术分享图片双目测距

那么两个相机分别对远处距离 技术分享图片 处同一目标拍照得到左、右张两张图像。由于视角不同,同一点在两张图像像素位置不同,即存在视差 技术分享图片 。

已知相机坐标系 技术分享图片 变换为像素坐标系 技术分享图片 的公式为:

技术分享图片

其中 技术分享图片 , 技术分享图片 。那么从上式得出,对于左边的相机:

技术分享图片

对于右边的相机:

技术分享图片

其中 技术分享图片 。上面两式相减得:

技术分享图片

由于 技术分享图片 ,那么有:

技术分享图片

其中 技术分享图片 可以通过相机标定获得, 技术分享图片 可以测量获得, 技术分享图片 可以通过左、右张两张图像计算视差获得,则 技术分享图片 能够精确计算出来。

虽然可以通过双目可以精确测距,但是在实际中也存在问题:

  1. 双目测距要求 技术分享图片 和 技术分享图片 轴平行,测距精度严重依赖于 技术分享图片 和 技术分享图片 的平行程度。
  2. 为了计算视差 技术分享图片 ,需要匹配世界中同一点 技术分享图片 在左右两幅图像中的像素点 技术分享图片 和 技术分享图片 ,即双目立体匹配。在复杂光照和复杂场景下,如何准确双目立体匹配本身就是很难的问题。
  3. 对于世界中越远的点 技术分享图片 ,其在左右视图中的视差 技术分享图片 越小,测距结果越容易受到双目立体匹配误差影响(即双目测距精度与被测物体距离成反相关)。

技术分享图片

所以,单目估计距离简单但是不精确,双目测距精确但是算法复杂且不稳定。

全景拼接学习-原理篇 (2) 单张图片 单相机成像模型

原文:https://www.cnblogs.com/kekeoutlook/p/13179468.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!