摄像机标定01

针孔摄像机模型。针孔是一堵想象中的墙(中心有一个微型小孔)。光线只能从这个开口中通过,而其余的都被墙所阻挡。下面我们将从一个针孔摄像机模型开始,处理基本几何中的投影射线。遗憾的是,真实的针孔由于不能快速曝光收集足够的光线,因此他不是一个得到图像的好方法。这也是为什么眼睛和摄像机都要使用透镜而不是仅仅只用一个点来收集更多光线的原因。然而,这种利用透镜得到更多光线的缺点是,不仅使我们背离了所使用的简单针孔几何模型,而且引入来自透镜的畸变。

本文将学习如何利用摄像机标定,来矫正(数学方式)因使用透镜而给针孔模型带来的主要偏差。摄像机标定的重要性还在于它是摄像机测量与真实三维世界测量的联系桥梁,场景不仅仅是三维的,也是用物理单位度量的空间。因此,摄像机的自然单位(像素)和物理世界的单位(米)的关系对三维场景的重构至关重要。

摄像机标定的过程即给出摄像机的几何模型,也给出透镜的畸变模型。这两个模型定义了摄像机的内参数(intrinsic parameter)。下面应用这些模型来校正透镜畸变。下一篇将用这些模型来阐述物理场景。

1.1摄像机模型

摄像机中最简单的针孔模型。f是摄像机的焦距,Z是摄像机到物体的距离,X是物体的长度,x是图像平面上的物体图像,可以得到

-x/f=X/Z

重新把针孔摄像机模型整理为另外一种等价形式,使得其数学形式更简单一些。我们交换上图中的针孔和图像平面。此时,针孔中的点被理解为投影中心。这样,每一条光线,从远处物体的某个点出发,到达投影平面的中心。光轴与图像平面的交点被称为主点。如图所示:

此新图像平面上远处物体的图像与图11-1中图像的大小完全一致。光束与图像平面的相交生成图像,而平面到投影中心的距离是f。这样得出公式x/f=X/Z。负号被去掉了,因为目标图像不再是倒立的。

主点并不是成像仪的中心,实际上,芯片的中心通常不在光轴上。我们因此引入两个新的参数Cx和Cy。对可能的偏移(对光轴而言)进行建模。这样物理世界中的点Q,其坐标为(X,Y,Z)

基本投影几何

将坐标为(Xi,Yi,Zi)的物理点Qi映射到投影平面上坐标为(xi,yi)的点的过程叫投影 变换,采用这种变换,可以方便地使用我们所熟知的齐次坐标。齐次坐标把维数为n投影空间上的点用(n+1)维向量(如x,y,z变为x,y,z,w)表示,其额外限制是任何两点的交比不变。在这里,图像平面是一个二维投影空间,因此可以用一个三维向量q=(q1,q2,q3)来表示该平面上的点。因为投影空间上所有点的交比不变,因此可以通过除以q3计算实际的像素坐标值。这样允许我们将定义摄像机的参数(如fx,fy,Cx和Cy)重新排列为一个3*3的矩阵,该矩阵称为摄像机的内参数矩阵。

那么将物理世界中的点投影 到摄像机上,就可以用下式表示:

透镜畸变的由来:采用理想针孔,我们有了一个对视觉中的三维几何有用的模型。但是,由于只有少量的光线通过针孔,这导致实际情况下因曝光不足使得图像生成的很慢。对要快速生成图像的摄像机而言,必须利用大面积且弯曲的透镜,让足够多的光线能够收敛聚焦到投影点上。为了实现该目的,我们用透镜。透镜可以聚焦足够多的光线到某个点,使得图像的生成速度更加迅速。其代价就是引入了畸变。

2.透镜畸变

下面介绍两种主要的透镜畸变并为他们建模。径向畸变来自于透镜形状,而切向畸变则来自于整个摄像机的组装过程。

2.1径向畸变,实际摄像机的透镜总是在成像仪的边缘产生显著的畸变,这个头痛现象来源于"桶形"和"鱼眼"影响。

对径向畸变,成像仪中心(光学中心)的畸变为0,随着向边缘移动,畸变越来越严重,实际情况中这种畸变比较小,而且可以用r=0位置周围的泰勒级数展开的前几项来定量描述。对便宜的网络摄像机,我们通常使用前两项,其中第一项通常为k1,而第二项为k2,对畸变很大的摄像机,比如鱼眼透镜,我们可以使用第三径向畸变项k3.通常,成像仪某点的径向位置按照下式进行调节。

2.12 第二大常用畸变是切向畸变。这种畸变是由于透镜制造上的缺陷使得透镜本身与图像平面不平行而产生的。

切向畸变可以用两个额外的参数p1和p2来描述,如下

标定

标定方法是把摄像机对准一个有多个独立可标识点的物体,通过在不同角度观察这个物体,可以利用通过每个图像计算摄像机的相对位置和方向以及摄像机的内参数。为了提供不同视角,我们旋转和移动物体。下面是一些旋转和平移的知识点

旋转矩阵和平移向量

对每一幅摄像机得到的特定物体的图像,我们可以在摄像机坐标系统上用旋转和平移来描述物体的相对位置。

通常,任何维的旋转可以表述为坐标向量与合适尺寸的方阵的乘积。最终一个旋转等价于在另一个不同坐标系下对点位置的重新表述。坐标系旋转角度α则等同于将目标点围绕坐标原点反方向旋转同样的角度α,下图显示用矩阵乘法对二维旋转的描述

在三维空间中,旋转可以分解为绕各自坐标轴的二维旋转,其中旋转轴线的度量保持不变

因此 R=Rx,Ry,Rz 旋转矩阵R的特性是它的逆阵就是它的转置,平移向量用来表示怎样将一个坐标系的原点移动到另一个坐标系的原点,或者说平移向量是第一个坐标系原点与第二个坐标系原点的偏移量。因此,从以目标中心为原点的坐标系移动到以摄像机中心为原点的另一个坐标系,相应的平移向量为T=目标原点-摄像机原点。

时间: 2024-10-14 16:58:13

摄像机标定01的相关文章

基于EmguCV的摄像机标定及矫正

标签: EmguCV摄像头标定C# 2015-05-03 14:55 501人阅读 评论(6) 收藏 举报  分类: C# 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 前言 之前用OpenCV做过摄像机标定及矫正,现在平台换了,改用C#,就用EmguCV做一下,其实就是OpenCV的C#版. 在EmguCV中有两类摄像机标定的类,一个是CvInvoke类,一个是CameraCalibration类,两种标定效果差不多,只不过CvInvoke涉及的函数大多都是指针类型的

摄像机标定【转】

1.摄像机外参:决定摄像机坐标与世界坐标系之间相对位置关系. 其中Pw为世界坐标,Pc是摄像机坐标,他们之间关系为 Pc = RPw + T 式中,T= (Tx,Ty,Tz),是平移向量,R = R(α,β,γ)是旋转矩阵,分别是绕摄像机坐标系z轴旋转角度为γ,绕y轴旋转角度为β,绕x轴旋转角度为α.6个参数组成(α,β,γ,Tx,Ty,Tz)为摄像机外参. 2.摄像机内参:确定摄像机从三维空间到二维图像的投影关系. zhenkong摄像机模型为6个参数(f,κ,Sx,Sy,Cx,Cy):远心摄

摄像机标定

转自:http://blog.sina.com.cn/s/blog_b5aa3e0f0101a4tx.html 1.摄像机外参:决定摄像机坐标与世界坐标系之间相对位置关系. 其中Pw为世界坐标,Pc是摄像机坐标,他们之间关系为 Pc = RPw + T 式中,T= (Tx,Ty,Tz),是平移向量,R = R(α,β,γ)是旋转矩阵,分别是绕摄像机坐标系z轴旋转角度为γ,绕y轴旋转角度为β,绕x轴旋转角度为α.6个参数组成(α,β,γ,Tx,Ty,Tz)为摄像机外参. 2.摄像机内参:确定摄像机

C#下的摄像机标定

前言:计算机视觉的基本任务之一是从摄像机获取的图像信息出发计算三维空间中物体的几何信息,并由此重建和识别物体,而空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数.在大多数条件下,这些参数必须通过实验与计算才能得到,这个过程称为摄像机标定.标定过程就是确定摄像机的几何和光学参数.摄像机相对于世界坐标系的方位. 内容: 1.假设摄像机所拍摄到的图像与三维空间中的物体之间存在以下一种简单的线性关系:[像]=M[物],这里,矩阵

摄像机标定--矫正畸变

之前做过摄像机标定的研究,不过现在忘了好多,昨天下午又捡起来,好好复习一下(主要是学习opencv一书内容). 摄像机标定基本知识: 摄像机标定误差包括内参(4个).畸变参数(径向和切向共5个).外参(平移和旋转共6个). 误差参数分析:摄像机模型采用针孔模型成像模型,由于中心轴安装问题,这就造成了精度误差,就是所谓的相机内参数误差,使用一个3X3的矩阵表示(A) [fx 0 cx; 0 fy cy; 0 0 1].,有四个未知参数:另由于针孔成像采光效率不高,使用了透镜,这就造成的畸变误差:

[OpenCV-Python] OpenCV 中摄像机标定和 3D 重构 部分 VII

部分 VII摄像机标定和 3D 重构 42 摄像机标定 目标 ? 学习摄像机畸变以及摄像机的内部参数和外部参数 ? 学习找到这些参数,对畸变图像进行修复 42.1 基础 今天的低价单孔摄像机(照相机)会给图像带来很多畸变.畸变主要有两种:径向畸变和切想畸变.如下图所示,用红色直线将棋盘的两个边标注出来,但是你会发现棋盘的边界并不和红线重合.所有我们认为应该是直线的也都凸出来了.你可以通过访问Distortion (optics)获得更多相关细节. 这种畸变可以通过下面的方程组进行纠正: 于此相似

Matlab 摄像机标定+畸变校正

博客转载自:http://blog.csdn.net/Loser__Wang/article/details/51811347 本文目的在于记录如何使用MATLAB做摄像机标定,并通过opencv进行校正后的显示. 首先关于校正的基本知识通过OpenCV官网的介绍即可简单了解: http://docs.opencv.org/2.4/doc/tutorials/calib3d/camera_calibration/camera_calibration.html 对于摄像机我们所关心的主要参数为摄像

利用matlab摄像机标定

(1)输入图像 "Image names"键 Matlab的图形窗口显示出20幅靶标图像 (2) 提取角点 "Extract grid corners"键. 输入要进行角点提取的靶标图像的编号并回车 分别在"wintx ([] = 5) ="和"winty ([] = 5) ="输入行中输入角点提取区域的窗口半宽m和半高n.显示角点提取区域的窗口尺寸(2n+1)x(2m+1),例如,选择缺省时角点提取区域的窗口尺寸为11x11

unity3d摄像机入门01

Clear Flags 清除标记 决定屏幕的哪部分将被清除.当使用多个相机来描绘不同的游戏景象时,利用它是非常方便的  Background 背景 在镜头中的所有元素描绘完成且没有天空盒的情况下,将选中的颜色应用到剩余的屏幕  Culling Mask 剔除遮罩 包含或忽略相机渲染对象层.在检视视图中为你的对象指派层Size 大小:正交时Clipping Planes 开始和停止渲染之间的距离.Viewport Rect:表示这个相机的视图将绘制在屏幕的什么地方,使用屏幕坐标系(值0-1).De