张正友相机标定法

合集下载

(完整版)张正友相机标定法

(完整版)张正友相机标定法


0 0 1
设H矩阵中第i列的向量为 hi hi1 hi2 hi3 T
带入到 h1T AT A1h2 0 中有:
hiT B hj vijT b
解得: vij hi1hj1 hi1hj2 hi 2hj1
hi2h j 2
hi3hj1 hi1hj3
0
x0 x'
y0


y'
z0 1


z'
1

R r1 r2 r3
T (t1, t2 , t3 )T
r12 r22 r32 1 r1 • r2 r2 • r3 r3 • r1 0
x

y z

R 0
1
x'
T 1

y' z'

1

图像数字化
O1 在 u, v 中的坐标为 u0, v0
象素在轴上的物理尺寸为 dx, dy
V
Yd
Affine Transformation :
u

u0

xd dx

yd
cot
dx
v

v0

dy
yd sin

齐次坐标形式:
v0
张正友相机标定方法
曲峰
2020/2/16
1 相机畸变
镜头畸变实际上是光学透镜固有的透视失真的总称
枕形畸变:又称鞍形畸变,视野中边缘区域的放大率远大于光轴中心附近 区域放大率。常出现在远摄镜头中。
桶形畸变:同枕形相反,视野中光轴中心附近区域放大率远大于边缘区域。 常出现于广角镜头和鱼眼镜头。

张正友标定法matlab代码

张正友标定法matlab代码

张正友标定法是相机标定中常用的一种方法,通过该方法可以实现相机内外参数的标定。

在使用张正友标定法进行相机标定时,需要编写相应的matlab代码来实现算法。

下面将介绍如何使用matlab实现张正友标定法,并给出相应的matlab代码。

1. 准备标定板图像首先需要准备一组包含标定板的图像,标定板上应具有特定的特征点,例如棋盘格。

这些图像将用于计算相机的内外参数。

2. 读取标定板图像使用matlab的imread函数读取准备好的标定板图像,将图像存储为一个cell数组。

```matlabimages = cell(1,N);for i = 1:Nfilename = ['image',num2str(i),'.jpg'];images{i} = imread(filename);end```3. 提取标定板角点利用matlab的detectCheckerboardPoints函数提取标定板图像中的角点坐标,将提取的角点保存到一个cell数组中。

```matlabimagePoints = cell(1, N);for i = 1:NI = images{i};[imagePoints{i}, boardSize] = detectCheckerboardPoints(I); end```4. 标定相机参数使用matlab的estimateCameraParameters函数对提取的角点进行相机参数标定,得到相机的内外参数。

```matlab[cameraParams, imagesUsed, estimationErrors] = estimateCameraParameters(imagePoints, worldPoints,'EstimateSkew', true, 'EstimateTangentialDistortion', true);```5. 查看标定结果可以利用标定得到的相机参数对新的图像进行矫正,并查看标定结果的精度。

张正友标定法

张正友标定法
张正友标定法
小组成员:张文豪 张智宇 陈宇
一、张正友标定法简介
目 二、张正友标定法数学原理 录 三、张正友标定法程序实现
四、标定实验及结果
张正友标定法 简介
像机标定:
建立摄像机图像像素位置与场景点位置 之间的关系,其途径是根据摄像机模型, 由已知特征点的图像坐标求解摄像机的 模型参数。
➢ 张正友标定法是张正友教授于1998年 在名为“A Flexible New Technique for Camera Calibration”一文中提 出的单平面棋盘格的摄像机标定方法。
➢ 透视投影
像平面 光心
f z
x=RX +
r01 r11
r02 r12
X Y
Tx Ty
z r20 r21 r22 Z Tz
[R,T]矩阵被称为外参数
光轴
K=
x f
y
0
1 0
K1K2
0 0 xc
f
0
yc
0 1 zc
u 1/ dx
v
B
K
T
K
1
B21
B22
B23
B31 B32 B33
b [B11, B12 , B22 , B13, B23, B33 ]
化简 hiT Bhj VijTb 得:
Vij [hi1hj1, hi1hj2 hi2hj1, hi2hj2 , hi3hj1 hi1hj3 , hi3hj2 hi2hj3 , hi3hj3 ]T
0
1 0
0 1/ dy
0
u0 x
v0
y
1 1
K矩阵被称为内参数
K1 K2
➢ 单应性映射

张正友相机标定算法

张正友相机标定算法

间的关系可以表示如下:
~ k m K[R
~ t] M
fu , K 0
s fv
0 0
uo
vo
(1)
1
针孔相机成像模型
其中,k是任何非零尺度因子,[ R t]表示摄相
机外参数,其中R是3 3的旋转矩阵,t表示从世
界坐标系到相机坐标系的平移向量,K表示摄像 机内参矩阵,其中 (uo, vo) 是主点坐标,fu和 fv分 别表示x轴和y轴方向的尺度因子,s表示关于两 个坐标系的畸变。
张正友相机标定算法
张正友标定算法
于福翔
针孔相机成像模型
摄像机的基本成像模型是针孔模型。它的成像基础是中心投影。三
维空间中的一点 M (X ,Y, Z)T在图像上的投影点
M 点的连线与图像平面的交点。M~ (X ,Y, Z,t)T 和
m~m(x(,xy, ,yt))TT为分光别心表与示
点 M 和 m 的齐次坐标 。在齐次坐标下,三维点 M 和它的投影点m
张算法的内参限制
我们把单应性矩阵H写成3 3 的3个列向量形式,则H也
可写成:
[h1 h2 h3] K[r1 r2
有:r1 K 1 h1

r2
K
1
h2
是一个放缩标量因子,也即k的倒数。
由r1和r2标准正交得:
正交: h1T KT K1h2 0
t] (3)
(4)
单位向量: h1T KT K1h1 h2T KT K1h2 (5)
张正友标定算法
我们将(1)式再简化下:
~
~
k m H M 和 H K[r1 r2 t] (2)
张的算法选取的是平面标定,所以令Z=0,所以R只有r1 和r2即可。H就是单应性矩阵。这里描述的是空间三维点 与相机二维点的之间的关系。因为相机平面中的坐标可 以通过图形处理的方式获取,而空间中点的坐标可以通 过事先做好的棋盘获取。所以每张图片可以计算出一个 单应性举证H。

张正友相机二维标定

张正友相机二维标定
过已知初始值得到的像点估计坐标。 •
ˆ A, Ri , ti , M j m
是通
ˆ A, Ri , ti , M j 的求解是一个经典的非线性优化的问题,使评价函数最小的A,Ri,ti就是 m
这个问题的最优解。可以取第一次得到的线性求解结果作为A、Ri , ti i 1n的初始值,解决 这类问题的方法很多 ,在计算机视觉领域里通常使用Levenberg-Marquarat(LM)算法进行求 解。
T
v12 b 0
(v11 v22 )T b 0
Vb 0
• V矩阵是2*6矩阵,也就是说每张照片可建立起两个方程组,6个未 知数。根据线性代数知识可知,解6个未知数需至少6个方程组,所 以也就是说我们至少需要三张照片才能求解未知数。b矩阵的解出, 相机内参矩阵A也就求解出,从而每张图像的R,t也迎刃而解。
r r 0
T 1 2
r1 r2 1
对单应性矩阵H的估算
• H就是我们常说的单应性矩阵,在这里描述的是空间中平面三维点
和相机平面二维点之间的关系。因为相机平面中点的坐标可以通过 图像处理的方式(哈里斯角点,再基于梯度搜索的方式精确控制点 位置)获取,而空间平面中三维点可以通过事先做好的棋盘获取。 所以也就是说每张图片都可以计算出一个H矩阵。
~ ~ sm HM
r1 r2 r3 1 r1 r2 r2 r3 r3 r1 0
2 2 2
X t Y 1
我们假定 H Ar1
r2
t 则原式可化为:
这里,矩阵H就是从世界坐标系到图像坐标系的3×3大小的单应性矩阵。 对H再次进行变形,假设h1,h2,h3是H的列向量,有:
uXh31 uYh32 u h11 X h12Y h13 vXh31 vYh32 v h21 X h22Y h23

张正友标定法标定过程

张正友标定法标定过程

张正友标定法标定过程引言标定是计算机视觉中一项重要的任务,其目的是通过对图像进行处理和分析,确定摄像机的内部参数(如焦距、主点)和外部参数(如旋转矩阵、平移向量),以及相机与世界坐标系的对应关系。

标定的结果可以用于摄像机定位、三维重建、运动捕捉等应用。

张正友标定法是一种经典的标定方法,本文将详细介绍张正友标定法的标定过程。

一、准备标定板首先,需要准备一个黑白相间的标定板。

该标定板上的黑白格子应具有一定的大小和间距,以便于摄像机观测和提取特征点。

标定板应该是平整的,并且材质不能过于反光,以免产生光斑影响标定结果。

二、摄像机采集图像接下来,需要使用摄像机采集一系列至少30张以上的图像。

这些图像应该涵盖尽可能多的摄像机视角和姿态,以保证标定结果的准确性。

在采集图像过程中,需要注意保持摄像机光轴垂直于标定板,以避免图像畸变对标定结果的影响。

三、提取标定板角点在摄像机采集的图像中,需要提取标定板的角点作为特征点。

可以使用图像处理算法(如Canny边缘检测算法)定位标定板的边缘,并通过角点检测算法(如Harris角点检测算法)提取角点。

提取到的角点需要按照从左上角到右下角的顺序进行排序,并保存到一个列表中。

四、计算相机内参数在进行相机标定之前,需要先计算相机的内参数。

相机的内参数主要包括焦距、主点和像素宽度、高度等信息。

为了计算这些参数,需要知道标定板上每个角点的实际坐标。

实际坐标可以通过测量标定板的尺寸得到。

还需要知道摄像机坐标系与世界坐标系的对应关系。

在张正友标定法中,通常使用棋盘格标定板,其中每个黑白格子的实际宽度和高度都可以事先测量得到。

五、计算相机外参数有了相机的内参数后,可以通过张正友标定法计算相机的外参数。

相机的外参数主要包括旋转矩阵和平移向量,它们描述了摄像机坐标系如何变换到世界坐标系。

首先,需要使用摄影测量方法计算出相机观测到的每个角点在图像中的像素坐标。

然后,可以利用相机的内参数和标定板上角点的实际坐标,通过最小二乘法求解出相机的旋转矩阵和平移向量。

张正友标定方法

张正友标定方法

张正友标定方法张正友标定方法是一种常用的相机标定方法,它可以用于计算相机的内部参数和外部参数,从而实现对图像的准确测量和三维重建。

下面将详细介绍张正友标定方法的原理和步骤。

一、原理张正友标定方法基于相机成像原理,通过对已知大小的标定板进行拍摄,从而得到标定板在图像中的像素坐标和实际物理坐标,进而计算出相机的内部参数和外部参数。

其中,内部参数包括相机的焦距、主点坐标和畸变系数,外部参数包括相机的旋转矩阵和平移向量。

二、步骤1. 准备标定板标定板可以是黑白相间的棋盘格或者其他规则的图案,要求图案清晰、对比度高、边缘锐利,同时要求标定板的大小足够大,以便在不同距离和角度下进行拍摄。

2. 拍摄标定板将标定板放置在平面上,保持相机与标定板垂直,同时保持相机位置和姿态不变,拍摄多张标定板的照片,要求标定板在不同位置和角度下都有足够的覆盖面积。

3. 提取角点使用图像处理软件对标定板的照片进行处理,提取出标定板上每个方格的角点坐标,要求角点坐标的提取精度高、稳定性好。

4. 计算内部参数根据相机成像原理,将标定板上每个角点的像素坐标和实际物理坐标进行对应,利用最小二乘法计算出相机的内部参数,包括焦距、主点坐标和畸变系数。

5. 计算外部参数根据标定板在不同位置和角度下的拍摄照片,利用三维重建算法计算出标定板在相机坐标系下的位置和姿态,进而计算出相机的旋转矩阵和平移向量。

6. 验证标定结果将标定结果应用于实际图像中,进行像素坐标和实际物理坐标的转换,计算出图像中物体的实际尺寸和位置,进而验证标定结果的准确性和稳定性。

三、总结张正友标定方法是一种常用的相机标定方法,它可以实现对相机的内部参数和外部参数的准确计算,从而提高图像的测量和三维重建精度。

在实际应用中,需要注意标定板的选择和摆放、角点的提取精度和稳定性等问题,以保证标定结果的准确性和可靠性。

SLAM入门之视觉里程计(6):相机标定张正友经典标定法详解

SLAM入门之视觉里程计(6):相机标定张正友经典标定法详解

SLAM ⼊门之视觉⾥程计(6):相机标定张正友经典标定法详解想要从⼆维图像中获取到场景的三维信息,相机的内参数是必须的,在SLAM 中,相机通常是提前标定好的。

张正友于1998年在论⽂:"A Flexible New Technique fro Camera Calibration"提出了基于单平⾯棋盘格的相机标定⽅法。

该⽅法介于传统的标定⽅法和⾃标定⽅法之间,使⽤简单实⽤性强,有以下优点:不需要额外的器材,⼀张打印的棋盘格即可。

标定简单,相机和标定板可以任意放置。

标定的精度⾼。

相机的内参数设P =(X ,Y ,Z )为场景中的⼀点,在针孔相机模型中,其要经过以下⼏个变换,最终变为⼆维图像上的像点p =(µ,ν):1. 将P 从世界坐标系通过刚体变换(旋转和平移)变换到相机坐标系,这个变换过程使⽤的是相机间的相对位姿,也就是相机的外参数。

2. 从相机坐标系,通过透视投影变换到相机的成像平⾯上的像点p =(x ,y )。

3. 将像点p 从成像坐标系,通过缩放和平移变换到像素坐标系上点p =(µ,ν)。

相机将场景中的三维点变换为图像中的⼆维点,也就是各个坐标系变换的组合,可将上⾯的变换过程整理为矩阵相乘的形式:s µν1=α0c x 0βc y1f 0000f 0001R t 0T1X Y Z1=f x 0c x 00f yc y 001Rt 0T1X Y Z1将矩阵K 称为相机的内参数,K =f x0c x 0f yc y 001其中,α,β表⽰图像上单位距离上像素的个数,则f x =αf ,f y =βf 将相机的焦距f 变换为在x,y ⽅向上像素度量表⽰。

另外,为了不失⼀般性,可以在相机的内参矩阵上添加⼀个扭曲参数γ,该参数⽤来表⽰像素坐标系两个坐标轴的扭曲。

则内参数K 变为K =f xγc x 0f yc y 01对于⼤多数标准相机来说,可将扭曲参数γ设为0. Multiple View Geometry in Computer Vision张⽒标定法在上⼀篇博⽂,介绍的单应矩阵表⽰两个平⾯间的映射。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0
cos
sin
Rot(
y,
)
0
cos
0
sin
sin
0 1 0
cos
sin
0
cos
cos sin 0
R ot( z,
)
sin
cos
0
0
0 1
1 坐标变换
引申到三维空间,第一个阶段:我们依旧从旋转和平移两个步骤 来推算从世界坐标系到相机坐标系的坐标变换
x cos cos
x0 y0
齐次坐标
x cos
y
sin
1 0
sin c os
0
x0 x'
y0
y'
0 1
r12 r22 1 r1 • r2 0
1 坐标变换
引申到三维空间,第一个阶段:我们依旧从旋转和平移两个步骤 来推算从世界坐标系到相机坐标系的坐标变换,
1 0
0
R ot( x,
)
• 图像坐标系 是以图像的左上方为原点,的图像坐标系(u v)(此坐标以像素为单位),这里我们建立了图 像物理坐标系(x y)为xoy坐标系(此坐标系以毫米为单位)。
一个二维点坐标被表示为 m [u, v]T ,一个三维点被表示为M [X ,Y , Z ]T ,我们使用 ~x 去表示通过在矩阵最后面的元素加一个1的向量:m~ [u, v,1]T 和 M~ [X,Y, Z,1]T ,相机通常都是针孔模型:它的3D点M和它的图像投影 点m的关系为:
0 0 1
0 0 0
xc yc zc 1
第三个阶段,像点向像素坐标转化:
u 1/ dx cot / dx u0 x
v
0
1/(d y *sin ) v0
y
1 0
0
1 1
u ffu ffu cot u0
zc
v
0
ffv / sin v0 R
1 0 0 1
sm~ A[R,t]M~
任意数
二维坐标 内参矩阵 旋转矩阵 平移矩阵
u0
A
0
v0
0 0 1
三维坐标
1 坐标变换
首先从二维坐标变换进行理解
x x'cos y'sin x0
y
x' s in
y' c os
y0
矩阵表示
x
y
cห้องสมุดไป่ตู้s s in
sin cos
x' y'
张正友相机标定方法
曲峰
2020/5/28
1 相机畸变
镜头畸变实际上是光学透镜固有的透视失真的总称
枕形畸变:又称鞍形畸变,视野中边缘区域的放大率远大于光轴中心附近 区域放大率。常出现在远摄镜头中。
桶形畸变:同枕形相反,视野中光轴中心附近区域放大率远大于边缘区域。 常出现于广角镜头和鱼眼镜头。
线性畸变:光轴同所拍摄的如建筑物类物体的垂平面不正交,则本应相互 平行的远端一侧同近端一侧,以不相同的角度汇聚产生畸变。这种畸变本 质上是一种透视变换,即在某一特定角度,任何镜头都会产生相似的畸变。
枕形畸变
桶形畸变
线性畸变
1 针孔模型和透视投影
针孔模型:1/f=1/u+1/v 透视投影:中心投影法将形体投射到投影面上
坐标系
• 世界坐标系(Xw Yw Zw) 用户定义的空间三维坐标系,用来描述三维空间中的物体和相机之间的坐标位置,满足右手法 则
• 摄像机坐标系(Xc Yc Zc) 以相机的光心作为原点,Zc轴与光轴重合,并垂直于成像平面,且取摄影方向为正方向,Xc、 Yc轴与图像物理坐标系的x,y轴平行,且OcO为摄像机的焦距f
h12Y h22Y
h13 h23
令 h' h11 h12 h13 h21 h22 h23 h31 h32 1
r1 r2 1
r1
1
A1h1
r2
1
A1h2
r1T r2 0
r1 r2 1
h1T AT A1h2 0 h1T AT A1h1 h2T AT A1h2
对单应性矩阵H的估算
• H就是我们常说的单应性矩阵,在这里描述的是空间中平面三维点 和相机平面二维点之间的关系。因为相机平面中点的坐标可以通过 图像处理的方式(哈里斯角点,再基于梯度搜索的方式精确控制点 位置)获取,而空间平面中三维点可以通过事先做好的棋盘获取。 所以也就是说每张图片都可以计算出一个H矩阵。
h11 h12 h13
假设
H A r1
r2
t [h1
h2
h3 ] h21
h22
h23
h31 h32 1
sm~ HM~
su sv
h11 X h21 X
h12Y h22Y
h13 h23
s h31 X h32 1
vuXXhh3311
uYh32 vYh32
u h11X v h21X
r12 r22 r32 1 r1 • r2 r2 • r3 r3 • r1 0
x
y z
R 0
1
x'
T 1
y' z'
1
图像数字化
O1 在 u, v 中的坐标为 u0, v0
象素在轴上的物理尺寸为 dx, dy
V
Yd
Affine Transformation :
u
u0
xd dx
yd
cot
dx
v
v0
dy
yd sin
齐次坐标形式:
v0
C
yd
xd
O1
Xd
u0
U
u fu fu cot u0 xd
v
0
fv / sin
v0
yd
其中
1 0
0
1 1
1
1
fu dx , fv dy
1 坐标变换
第二个阶段,空间点向像点转化:
x f
y
1
1 zc
0
0
0 f 0
这里,矩阵H就是从世界坐标系到图像坐标系的3×3大小的单应性矩阵。 对H再次进行变形,假设h1,h2,h3是H的列向量,有:
H h1 h2 h3 Ar1 r2 t
r1
1
A1h1
r2
1
A1h2
r12 r22 r32 1 r1 • r2 r2 • r3 r3 • r1 0
r1T r2 0
A
xw
t
yw
zw
1
sm~ A[R,t]M~
展开
X
u
sv Ar1
r2
r3
t
Y
Z
1
1
Z=0平面
X
u
sv Ar1
r2
r3
t
Y
0
Ar1
r2
X
t
Y
1
1
1
2 单应性矩阵推导
u
X
sv
Ar1
r2
t
Y
我们假定 H Ar1 r2 t 则原式可化为:
1 sm~ 1H M~
y
sin
sin
cos
z cos sin cos
1
0
cos sin sin sin sin cos cos cos sin sin sin cos
0
sin sin cos cos cos
0
x0 x'
y0
y'
z0 1
z'
1
R r1 r2 r3
T (t1, t2 , t3 )T
相关文档
最新文档