计算机视觉——张正友棋盘格标定法

本文介绍了计算机视觉中的相机标定,特别是张正友棋盘格标定法。该方法用于校正镜头畸变,建立相机参数模型,从二维图像中重构三维信息。通过实验步骤、结果分析,展示了标定过程,包括内参矩阵、外参矩阵和畸变系数的计算,并讨论了误差来源和优化方法。
摘要由CSDN通过智能技术生成

环境

win10,64位,python2.7,编译器:PyCharm
手机型号:oppo R11

前言

我们拍摄的物体都处于三维世界坐标系中,而相机拍摄时镜头看到的是三维相机坐标系,成像时三维相机坐标系向二维图像坐标系转换。不同的镜头成像时的转换矩阵不同,同时可能引入失真,标定的作用是近似地估算出转换矩阵和失真系数。 为了估算,需要知道若干点的三维世界坐标系中的坐标和二维图像坐标系中的坐标,也就是拍摄棋盘的意义。

一、实验原理

1.相机标定

相机标定指建立相机图像像素位置与场景点位置之间的关系,根据相机成像模型,由特征点在图像中坐标与世界坐标的对应关系,求解相机模型的参数。相机需要标定的模型参数包括内部参数和外部参数。

针孔相机成像原理其实就是利用投影将真实的三维世界坐标转换到二维的相机坐标上去,其模型示意图如下图所示:
在这里插入图片描述
从图中我们可以看出,在世界坐标中的一条直线上的点在相机上只呈现出了一个点,其中发生了非常大的变化,同时也损失和很多重要的信息,这正是我们3D重建、目标检测与识别领域的重点和难点。实际中,镜头并非理想的透视成像,带有不同程度的畸变。理论上镜头的畸变包括径向畸变和切向畸变,切向畸变影响较小,通常只考虑径向畸变。

为什么需要相机标定?
(1)一个是由于每个镜头的在生产和组装过程中的畸变程度各不相同,通过相机标定可以校正这种镜头畸变,生成矫正后的图像——矫正透镜畸变;
(2)另一个是根据标定后的到的相机参数建立相机成像几何模型,由获得的图像重构出三维场景。具体来说:当我们用摄像机拍照时,从照片里得到一些空间信息(比如距离,尺寸等),是要利用二维图像得到三维信息。我们拍照的时候把空间物体信息通过摄像机变成了二维图像,这个过程本来是不可逆的。但如果我们可以找到一个摄像机的数学模型,就可以 :从二维图像+模型逆推得到原来三维信息。标定就是在找这个模型。
在这里插入图片描述
相机标定可以做什么?
(1)相机在出厂之前都需要进行相机标定,用软件的方法校正生成的图像,避免拍摄出的图像产生桶形和枕形畸变;
在这里插入图片描述
(2)根据相机成像的几何模型,将世界坐标系中的3D物体映射到2D成像平面上;
(3)求解多个相机对之间的映射关系。

相机标定后可以得到什么?
(1)相机的内参矩阵A(dx,dy,r,u,v,f),外参矩阵[R|T]、畸变系数[k1,k2,k3,,p1,p2,]。
(2)内参矩阵各元素意义:一个像素的物理尺寸dx和dy,焦距f,图像物理坐标的扭曲因子r,图像原点相对于光心成像点的的纵横偏移量u和v(像素为单位)。
(3)外参矩阵: 世界坐标系转换到相机坐标系的旋转R和平移T矩阵。
(4)畸变系数: 包括相机的径向畸变系数k1,k2,k3,~, 和相机的切向畸变系数p1,p2,~。

在这里插入图片描述

2.张正友标定法

”张正友标定法” 是指张正友教授1998年提出的单平面棋盘格的摄像机标定方法。文中提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点。相对于自标定而言,提高了精度,便于操作。因此张正友标定法被广泛应用于计算机视觉方面。
在张氏标定法中,用于标定的棋盘格是三维场景中的一个平面Π,其在成像平面的像是另一个平面π,知道了两个平面的对应点的坐标,就可以求解得到两个平面的单应矩阵H。其中,标定的棋盘格是特制的,其角点的坐标是已知的;图像中的角点,可以通过角点提取算法得到(如Harris角点),这样就可以得到棋盘平面Π和图像平面π的单应矩阵H。

3.步骤

1、计算单应性矩阵H
单应性:在计算机视觉中被定义为一个平面到另一个平面的投影映射。首先确定,图像平面与标定物棋盘格平面的单应性。

设三维世界坐标的点为在这里插入图片描述 ,二维相机平面像素坐标为在这里插入图片描述,所以标定用的棋盘格平面到图像平面的单应性关系为:在这里插入图片描述 (其中,K为相机的内参矩阵,R为外部参数矩阵(旋转矩阵),T为平移向量。令在这里插入图片描述,设棋盘格位于Z=0的平面,定义旋转矩阵R的第i列为 ri, 则有:在这里插入图片描述
于是空间到图像的映射可改为:H=λK[r1 r2 t]
其中H 是描述Homographic矩阵,可通过最小二乘,从角点世界坐标到图像坐标的关系求解。

2、计算内参数矩阵
根据步骤1中的式子,令 H 为 H = [h1 h2 h3],则 [h1 h2 h3]=λK[r1 r2 t],再根据正交和归一化的约束可以得到等式:在这里插入图片描述
即每个单应性矩阵能提供两个方程,而内参数矩阵包含5个参数,要求解,至少需要3个单应性矩阵。为了得到三个不同的单应性矩阵,我们使用至少三幅棋盘格平面的图片进行标定。通过改变相机与标定板之间的相对位置来得到三个不同的图片。为了方便计算,我们定义: 在这里插入图片描述
B 中的未知量可表示为6D 向量 b,在这里插入图片描述
设H中的第i列为 hi,在这里插入图片描述,根据b的定义,可以推导出公式,在这里插入图片描述在这里插入图片描述最后推导出在这里插入图片描述
通过上式,我们可知当观测平面 n ≥ 3 时,即至少3幅棋盘格图像,可以得到b的唯一解,求得相机内参数矩阵K。

3、计算外参数矩阵
外部参数可通过Homography求解,由 H = [h1 h2 h3] = λA[r1 r2 t],可推出
在这里插入图片描述
4、最大似然估计
上述的推导结果是基于理想情况下而言,但由于可能存在一些其他干扰,所以使用最大似然估计进行优化。假设拍摄了n张棋盘格图像,每张图像有m个角点。最终获得的最大似然估计公式为
在这里插入图片描述

二、实验过程

1.实验步骤

(1)取材:打印一张棋盘格,把它贴在一个平面上,作为标定物,通过调整标定物或摄像机 的方向,为标定物拍摄一些不同方向的照片。
(2)从照片中提取棋盘格角点。
(3)估算理想无畸变的情况下,五个内参和六个外参。
(4)应用最小二乘法估算实际存在径向畸变下的畸变系数。
(5)极大似然法,优化估计,提升估计精度。

数据集:

张正友标定(Zhang's camera calibration)是一种常用的相机标定,它是由张正友教授在1999年提出的,因此得名。该方通过对特定的平面图案进行拍摄,通过对拍摄到的图案进行分析,可以求解出相机内部参数和外部参数。该方的优点是简单易用,适用于多种不同类型的相机;缺点是需要拍摄特定的平面图案,且精度受平面图案质量和摄像机标定过程中拍摄角度的影响。 原理: 张正友标定是基于相机成像的几何模型进行计算的。相机成像的几何模型可以用针孔模型(pinhole camera model)来描述。该模型表示相机通过一个针孔来捕捉光线,将光线投影到成像平面上形成图像。该模型中,相机内部参数包括焦距、图像中心点位置等,而相机外部参数则包括相机的位置和朝向等。 具体步骤: 1. 拍摄标定板:在准备标定之前,需要准备一个特定的平面标定板,通常为黑白相间的棋盘,要求棋盘中每个小正方形的边长都应该大于相机成像像素的1.5倍。 2. 提取角点:将拍摄到的标定板图像中的角点提取出来,这里用OpenCV库的findChessboardCorners函数进行提取。 3. 计算相机内部参数:通过角点的坐标计算相机内部参数,包括焦距、图像中心点位置等。这里需要使用OpenCV库的calibrateCamera函数进行计算。 4. 计算相机外部参数:通过已知的相机内部参数和角点的坐标,可以计算相机的位置和朝向等外部参数。这里需要使用OpenCV库的solvePnP函数进行计算。 优缺点: 优点:简单易用,适用于多种不同类型的相机。 缺点:需要拍摄特定的平面图案,且精度受平面图案质量和摄像机标定过程中拍摄角度的影响。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值