相机参数标定

一、相机标定原理

1.1 切向畸变与径向畸变

相机标定是标定图像产生的畸变,畸变的类型主要有一下三种:

①径向畸变是由透镜本身的制造误差造成的

②切向畸变是由于透镜安装与“图像”平面不平行产生的

③焦距和主点(焦距影响图像的模糊程度,主点影响位置的偏移)

下图为小孔成像模型
在这里插入图片描述

1.2 张氏标定法

”张正友标定法” 是指张正友教授1998年提出的单平面棋盘格的摄像机标定方法。文中提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点。相对于自标定而言,提高了精度,便于操作。因此张正友标定法被广泛应用于计算机视觉方面。
算法描述:
1、打印一张模板并贴在一个平面上;
2、从不同角度拍摄若干张模板图像;
3、检测出图像中的特征点;
4、求出摄像机的内参数和外参数;
5、求出畸变系数;
6、优化求精。

1.3 步骤

1、计算单应性矩阵H
单应性:在计算机视觉中被定义为一个平面到另一个平面的投影映射。首先确定,图像平面与标定物棋盘格平面的单应性。
设三维世界坐标的点为在这里插入图片描述 ,二维相机平面像素坐标为在这里插入图片描述,所以标定用的棋盘格平面到图像平面的单应性关系为: 在这里插入图片描述 (其中,K为相机的内参矩阵,R为外部参数矩,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个角点。最终获得的最大似然估计公式为
在这里插入图片描述

二、实验

2.1棋盘环境

运行环境:pyhton2.7、pycharm编译器
测试条件:手机拍照(图像16张)、手机型号iphonex

2.2 实验数据集

在这里插入图片描述

2.3 实现代码

import cv2
import numpy as np
import glob

# 设置寻找亚像素角点的参数,采用的停止准则是最大循环次数30和最大误差容限0.001
criteria = (cv2.TERM_CRITERIA_MAX_ITER | cv2.TERM_CRITERIA_EPS,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值