| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 相机标定(标定目的、原理) -> 正文阅读 |
|
[人工智能]相机标定(标定目的、原理) |
1.相机标定的目的: (1)一个就是矫正由于镜头畸变造成的图片的变形,例如,现实中的直线,拍摄成图像后会外凸或内凹,进行相机标定后可以对这种情况进行校正; (2)另一个是根据拍摄获得的二维图像来重构三维场景,因为标定的过程就是通过一系列的三维点和它对应的二维图像点进行数学变换,求出相机的内参数和外参数。 标定之后的相机,可以进行测距、三维场景的重建等。 2.四个坐标系 ????????相机标定的目的之一是为了建立物体从三维世界到成像平面上各坐标点的对应关系,所以首先要了解以下四个坐标系: 世界坐标系:用户定义的三维世界的坐标系,为了描述目标物在真实世界里的位置以及相机所在的位置而被引入。 相机坐标系:在相机上建立的坐标系,为了从相机的角度描述物体位置而定义,作为沟通世界坐标系和图像/像素坐标系的中间一环。 图像坐标系:为了描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系而引入,方便进一步得到像素坐标系下的坐标。 像素坐标系:为了描述物体成像后的像点在数字图像上(相片)的坐标而引入,是我们真正从相机内读取到的信息所在的坐标系,单位为个(像素数目)。 3.坐标之间的转换 世界坐标系:Xw、Yw、Zw。 相机坐标系: Xc、Yc、Zc。 图像坐标系:x、y。 像素坐标系:u、v。 ????????其中,相机坐标系的Z轴与光轴重合,且垂直于图像坐标系平面并通过图像坐标系的原点,相机坐标系与图像坐标系之间的距离为焦距f。像素坐标系平面u-v和图像坐标系平面x-y重合,但像素坐标系原点位于图中左上角。 3.1世界坐标系到相机坐标系 假设绕x轴旋转(逆时针) 以此类推,绕其它轴旋转(顺时针) 世界坐标系到相机坐标系要6个自由度,除了旋转还要进行平移 3.2相机坐标系转图像坐标系 3.3图像坐标系转像素坐标系 图像坐标系的原点在图像的中央,单位mm。 像素坐标系的原点在图像的左上角,单位是像素Pixel(个)。 dx,dy:是传感器固有的参数,代表每个像素的毫米数。 u0,v0:代表图像坐标系原点相对于像素坐标系的偏移量,单位是像素。 3.4 世界坐标系到像素坐标系转换的全过程 ?至此,要想通过拍摄到的二维图像重建三维场景,那么就要求得内参M1和外参M2。 ?3.5张正友标定法 ? ? ? 单应性(Homography)变换。可以简单的理解为它用来描述物体在世界坐标系和像素坐标系之间的位置映射关系。对应的变换矩阵称为单应性矩阵。 ? ? ? 如何根据标定图得到单应矩阵? 经过前面一系列的介绍,我们应该大致明白如何根据打印的棋盘标定图和拍摄的照片来计算单应矩阵H。我们来总结一下大致过程。 1. 打印一张棋盘格标定图纸,将其贴在平面物体的表面。 2. 拍摄一组不同方向棋盘格的图片,可以通过移动相机来实现,也可以移动标定图片来实现。 3. 对于每张拍摄的棋盘图片,检测图片中所有棋盘格的特征点(角点,也就是下图中黑白棋盘交叉点,中间品红色的圆圈内就是一个角点,四个对角(红黄蓝绿)是最特别的角点)。我们定义打印的棋盘图纸位于世界坐标系Zw=0的平面上,世界坐标系的原点位于左图棋盘图纸的固定一角(比如下图中黄色点)。像素坐标系原点位于右图图片左上角。 因为棋盘标定图纸中所有角点的空间坐标是已知的,这些角点对应在拍摄的标定图片中的角点的像素坐标也是已知的,如果我们得到这样的N>=4个匹配点对(越多计算结果越鲁棒),就可以根据LM等优化方法得到这个视角下的单应矩阵H。当然计算单应矩阵一般不需要自己写函数实现,OpenCV中就有现成的函数可以调用。 但是,以上只是理论推导,在真实的应用场景中,我们计算的点对中都会包含噪声。比如点的位置偏差几个像素,甚至出现特征点对误匹配的现象,如果只使用4个点对来计算单应矩阵,那会出现很大的误差。因此,为了使得计算更精确,一般都会使用远大于4个点对来计算单应矩阵。另外上述方程组采用直接线性解法通常很难得到最优解,所以实际使用中一般会用其他优化方法,如奇异值分解、Levenberg-Marquarat(LM)算法 通过以上方法求得的单应性矩阵H后,以下是通过H反推相机的内外参 通过上面2.28与2.29得: ???? ??可以自行计算B为对角矩阵,所以B只有6个未知数,所以向量b设置6个参数即可 ? 部分图片来自B站视频截图,欢迎交流学习。 强烈建议看这个文章:相机标定之张正友标定法数学原理详解(含python源码) - 知乎 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/30 0:57:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |