相机矩阵(Camera Matrix)

投影

透视投影(perspective projection)

透视投影属于中心投影。透视投影图简称为透视图或透视,它是从某个投射中心将物体投射到单一投影面上所得到的图形。透视图与人们观看物体时所产生的视觉效果非常接近,所以它能更加生动形象地表现建筑外貌及内部装饰。在已有实景实物的情况下,通过拍照或摄像即能得到透视图;对于尚在设计、规划中的建筑物则作图(手工或计算机)的方法才能画出透视图。透视图以渲染、配景,使之成为形象逼真的效果图。由于是中心投影,因此平行投影中的一些重要性质(如平行性、定比性等)和作图规律,在这里已不适用。
透视投影是用中心投影法将形体投射到投影面上,从而获得的一种较为接近视觉效果的单面投影图。它具有消失感、距离感、相同大小的形体呈现出有规律的变化等一系列的透视特性,能逼真地反映形体的空间形象。
透视投影符合人们心理习惯,即离视点近的物体大,离视点远的物体小,远到极点即为消失,成为灭点。它的视景体类似于一个顶部和底部都被切除掉的棱椎,也就是棱台。这个投影通常用于动画、视觉仿真以及其它许多具有真实性反映的方面。


perspective.png

正交投影(orthographic projection)

投影线垂直于投影面的投影属于正交投影 ,也称为平行投影。


orthographic.png

相机模型

  • 移动相机到拍摄位置,镜头对准某个方向(视图变换,view transform)
  • 将拍摄对象一到场景中的某个位置(模型变换,model transform)
  • 设置相机焦距或调整缩放比例(投影变换,projection transform)
  • 对结果图像拉伸或者压缩,变换为需要的图片大小(视口变换,viewpoint transform)

齐次坐标与仿射变换

我们将一个3维坐标表示为列向量,那么一个3*3的矩阵乘以这个列向量就可以得到一个新的列向量。如下,三维笛卡尔坐标与矩阵的乘法只能实现三维坐标的缩放和旋转,而无法实现坐标平移。

matirx.png

所以我们将三维的笛卡尔坐标添加一个额外坐标,实现坐标平移,而且保持了三维向量与矩阵乘法具有的缩放和旋转操作。这个就称为齐次坐标,而这种变换也称为仿射变换(affine transformation),不属于线性变换。
matrix.png


相机矩阵

几何相机校正(Geometric camera calibration)

也称为相机反切(camera resectioning),主要用于估计图像或者视频摄像机的透镜和图像传感器的相关参数。使用这些参数可以纠正透镜畸变,度量真实世界中物体的大小,或者相机在一个场景中的定位。因而可以被用于机器视觉,去检测或者度量事物,也可用于机器人中,帮助导航系统和3D重建。

相机参数与相机矩阵分解

  1. 主要包含内参(intrinsics)、外参(extrinsics)、畸变系数(distortion coefficients)
  2. 估计参数需要3D世界坐标及其对应的2D图像点
  3. 评估所估计相机参数的方法就是:首先画出相机和校准模式的相对位置;随后计算投影误差;最后计算参数的估算误差

相机矩阵分解为两个矩阵的乘积:内参矩阵K和外参矩阵[R|−RC]

image.png

其中,3∗3的上三角阵K描述了相机的内参比如焦距。3∗3的旋转矩阵R的列表示相机参考帧的世界坐标轴方向。向量C是世界坐标系中的相机中心。那么向量t=−RC就给出了相机坐标系中的世界原点位置。我们需要做的就是求解这些参数,当然前提是我们已经知道P

内参矩阵

内参矩阵是将3D相机坐标变换到2D齐次图像坐标。透视投影的一个理想模型就是针孔相机,有缩放的效果成像为倒影。市面上的相机都是透视投影。如下:


image.png

内参矩阵如下:


matrix.png

内参矩阵的每一个参数都有意义:

  • 焦距的参数:fx,fy
    焦距就是真空与图像平面(投影屏幕)的距离,类似于人眼和视网膜,焦距的度量是针对像素的。针孔相机的fx,fy有相同的值。上图中红线部分就是焦距。但是在实际中,fxfy一般不同,有一下几个原因:

    1. 数码相机传感器的缺陷
    2. 后处理中图像被非均匀缩放
    3. 相机透镜导致的无意的失真
    4. 相机使用了失真的格式,透镜将宽屏场景压缩到标准大小的传感器中
    5. 相机校准的误差
  • 主点偏移x0,y0
    相机的主轴是与图像平面垂直且穿过真空的线,它与图像平面的焦点称为主点。
    主点偏移就是主点位置相对于图像平面(投影面)的位置。上图中,增加x0的值相当于把针孔向右移动,等价将投影面向左移动同时保持针孔位置不变。

  • 轴倾斜
    轴倾斜会导致投影图像的形变。

  • 焦距-从像素到世界单元
    内参矩阵只关心相机坐标和图像坐标之间的关系,与相机的绝对尺寸无关。针对焦距和主点偏移使用响度单元可以表示相机的相对尺寸,换句话说就是投影面的位置与其尺寸(以像素为单位)相关。
    另一种说法是内参相机变换与相机的几何均匀缩放无关,利用像素单元表示尺寸,可以捕捉到这种不变性。
    可以使用相似三角形将像素单元转换到世界单元中,前提是你知道世界单元中至少一个相机尺寸。比如你知道相机的投影面(数字传感器)宽度为WW毫米,图片宽度(像素为单位)为w,那就可以将焦距fx转换为世界单元:


    image.png

其它的参数fy,x0,y0也可以被转换为对应的世界单元Fx,X0,Y0:

image.png

  • 2D变换中的相机内参的计算
    将内参矩阵分解为切变(shear,类似于将长方形压成平行四边形的变形方式)、缩放,平移变换,分别对应轴倾斜、焦距、主点偏移 :
    image.png

第二个等式右边三个矩阵依次是:2D平移、2D缩放、2D切变
另一种等价的分解是将切变放在缩放前面 :


image.png

有一点需要注意:内参不影响可见性 —— 阻隔对象(occluded objects)在图像空间中无法通过简单的2D变换显示出来。这里的occluded objects就是那些你希望看到,但是由于某些原因看不到的对象,比如目标跟踪的时候,一个目标被另一个目标遮挡了。

外参矩阵

相机的外参矩阵描述的是世界坐标中相机的位置,及其指向方向。有两个成分:旋转矩阵R和平移向量t。它们并非恰好对应相机的旋转和平移。
外参矩阵以刚体变换矩阵的形式可以记为:左边一个3∗3旋转矩阵,右边一个3∗1的平移列向量 :

image.png

常见的做法是在底部增加一行(0,0,0,1),这使得矩阵为方形的,允许我们进一步将矩阵分解为旋转和平移矩阵:

image.png

这个矩阵描述的就是如何将世界坐标系中的点变换到相机坐标系中,向量t描述的是世界坐标系原点在相机坐标系中的位置,R的列代表的是相机坐标系中世界坐标系轴的方向。
从上可以发现,外参主要作用就是描述世界坐标系到相机坐标系的转换。与我们经常想的相机坐标系到世界坐标系的转换刚好相反。

求解外参矩阵

实际中,直接指定相机的姿态比指定世界坐标系中的点如何转换到相机坐标系中更加自然,通过建立一个刚体变换矩阵描述相机姿态,然后对其取逆即可建立相机的外参矩阵。
因而可以这样做:定义一个描述相机中心在世界坐标系中的位置的向量C,然后让Rc代表相机在世界坐标系旋转到当前姿态需要的旋转矩阵。那么描述相机姿态的变换矩阵就是(Rc|C)。同样在底部添加一个行向量(0,0,0,1),那么外参矩阵就是相机姿态矩阵的逆。

image.png

倒数第三个等式变换到倒数第二个等式,使用的转置是因为Rc是正交阵,此外,平移矩阵的逆就是他的负数平移向量,进而可以得到外参矩阵参数和相机姿态是直接相关:

image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,194评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,058评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,780评论 0 346
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,388评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,430评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,764评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,907评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,679评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,122评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,459评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,605评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,270评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,867评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,734评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,961评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,297评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,472评论 2 348

推荐阅读更多精彩内容

  • 前言 最近翻阅关于从2D视频或者图片中重构3D姿态的文章及其源码,发现都有关于摄像机参数的求解,查找了相关资料,做...
    予汐阅读 6,132评论 0 3
  • 引言 请不要质疑你的眼睛,文章的题目就是“3D图形学基础理论”。可能有人要疑惑了,作为一个 iOS 开发者为什么要...
    ZhengYaWei阅读 8,553评论 5 36
  • 1、概述 前面几篇关于OpenGLES的文章: OpenGL ES 2.0 显示图形(上) OpenGL ES 2...
    高丕基阅读 4,511评论 3 5
  • 两个人没有解开怒火怎么会冒火 很奇怪我们俩个从未向对方发过火 为了和你保持同样的气息 我屏住呼吸等待着你的吸气 为...
    许你一世诺言阅读 152评论 0 1
  • 高考出来了,几家欢喜几家愁。 过一本线不多的报考似乎有些尴尬,不太好选择。 其实军校就是一个不错的选择。 我有一个...
    花痴_halou阅读 214评论 1 3