计算机视觉——相机模型与参数标定

目录

相机参数标定

一、相机内参矩阵原理

二、相机标定方法——张正友标定法

2.1方法描述

2.2计算内参和外参的初值

三、实验:Matlab实现

3.1实验数据

3.2实验过程

3.3实验结果

四、实验总结


相机参数标定

在拍摄中,相机可能会出现畸变,用软件的方法校正生成的图像,避免拍摄出的图像产生桶形和枕形畸变

在这里插入图片描述

不同的镜头的在生产和组装过程中的畸变程度各不相同,通过相机标定可以校正这种镜头畸变,生成矫正后的图像。

一、相机内参矩阵原理

在这里插入图片描述

设P=(X,Y,Z)为场景中的一点,在针孔相机模型中,其要经过以下几个变换,最终变为二维图像上的像点p=(μ,ν)
1、将P从世界坐标系通过刚体变换(旋转和平移)变换到相机坐标系,这个变换过程使用的是相机间的相对位姿,也就是相机的外参数。
2、从相机坐标系,通过透视投影变换到相机的成像平面上的像点p=(x,y)
3、将像点p从成像坐标系,通过缩放和平移变换到像素坐标系上点p=(μ,ν)
相机将场景中的三维点变换为图像中的二维点,也就是各个坐标系变换的组合,可将上面的变换过程整理为矩阵相乘的形式
在这里插入图片描述

二、相机标定方法——张正友标定法

2.1方法描述

使用棋盘格标定的方法,将照片中的三维信息压缩为二维(Z=0)
在张氏标定法中,用于标定的棋盘格是三维场景中的一个平面Π,其在成像平面的像是另一个平面π,知道了两个平面的对应点的坐标,就可以求解得到两个平面的单应矩阵H。其中,标定的棋盘格是特制的,其角点的坐标是已知的;图像中的角点,可以通过角点提取算法得到(如Harris角点),这样就可以得到棋盘平面Π和图像平面π的单应矩阵H。

方法步骤:
1、检测每张图片中的棋盘图案的角点;
2、利用解析解估算方法计算出5个内部参数,以及6个外部参数
3、通过基于极大似然准则的优化解,提高A,R,t矩阵的精度。

2.2计算内参和外参的初值

1、计算单应性矩阵H
棋盘格平面到图像平面的单应性关系为:

在这里插入图片描述

其中s为尺度因子,K为摄像机内参数,R为旋转矩阵,T为平移向量。令

在这里插入图片描述

s对于齐次坐标来说,不会改变齐次坐标值。张氏标定法中,将世界坐标系狗仔在棋盘格平面上,令棋盘格平面为Z=0的平面。则可得

在这里插入图片描述

我们把K[r1, r2, t]叫做单应性矩阵H,即

在这里插入图片描述

2、计算内参数矩阵

在这里插入图片描述

在这里插入图片描述

3、计算外参数矩阵

在这里插入图片描述

三、实验:Matlab实现

3.1实验数据

       我准备了共20张的棋盘数据,在电脑上绘制黑白棋盘表格,并通过测量确定每个小正方格的长宽为 2.54厘米 ,然后再使用手机对棋盘进行拍摄,同时具有角度变换和距离变换等设置。

3.2实验过程

3.2.1实验要求
1.制作棋盘格(每个格子的大小可测量),最好是打印出来,贴在平面上(实在不行就用我刚才演示的黑白棋盘格方法)
2.根据棋盘格,采集10-20张图片,提取角点
3.解算出内外参数,内参截图放在博客中,外部参数最好能可视化

3.2.2标定步骤

3.2.3使用MATLAB自带的工具箱进行标定

MATLAB(matlab calibration toolbox-Matlab标定工具箱使用(单目标定和双目标定)

3.3实验结果

IntrinsicMatrix: [3x3 double] 内参矩阵

四、实验总结

1.Harris角点检测能够快速准确的检测到棋盘网格的边角,这对图像位置信息和空间坐标的标定参考提供了重要的数据。

2.在图片的分析当中,并不是所有拍摄的20张图片都被筛选进标定实验,其中很多不符合设置的,例如光线强度过大、角度变换过大等等影响到了角点检测和参数标定的图片都会被剔除,所以在一开始准备数据时就应该添加更多的图片以增加成功率,在本次实验中就被剔除了8张不合格的图片。

3.从最后的实验结果中,可以知道,我的手机相机的各种内部参数和外部参数。由于每部相机的生产过程当中,或多或少的都会产生一定的误差,而且这些误差也让每一部相机变得独一无二,所以每个人的相机参数都不会完全相同。

4.观察每张标定图可以发现,每张图中设置的X,Y和起始点设置都不是完全一样的,它会根据图片的旋转和角度等因素调整坐标系,说明图片的旋转和角度变换不会影响到标定结果。

发布了14 篇原创文章 · 获赞 8 · 访问量 1588

猜你喜欢

转载自blog.csdn.net/qq_42678341/article/details/105359789