相机标定与三维重建原理
《基于序列图像的视觉检测理论与方法》
1、相机标定:
标定方法:从传统的三维空间控制场向二维平面控制场转变。计算机视觉界提出了许多利用主动视觉技术进行自标定的方法,但耗时、或者需要部分已知相机运动参数,无法满足高精度需求。
1.1 双目立体视觉
2、三维测量
摄影测量界现有的三维测量方法:大型三维坐标量测设备(贵、效率低)、莫尔纹法(精度与光栅间距有关)、牛顿环(精度高,适用于纵深不大的光学元件)、结构光法(精度不高,适用于缺乏纹理的物体)。计算机视觉中的三维测量:需要利用多台相机及结构光投影器,多台相机标定的误差影响三维量测精度。
3、多视角几何
3.1 计算机视觉多视角几何multiple view geometry
- 从摄影测量学发展而来,摄影测量学的方法是假定事先精确标定了特殊、昂贵的摄像机,图像的点人工测量,且需要高精度;
- 3D计算机视觉:利用一般、现成的摄像机,部分标定或没有标定,处理图像测量时不精确,能够实现任务全自动化,如:未知视频序列的点和摄像的三维重建www.2d3.com、从3D场景大量不同视角的视图自动重建【Cornelius,2004】[Faugeras,1993;Hartley and Zisserman,203;Ma,2004]。
- 多视角几何的数学工具:射影几何projective geometry
- 透射投影perspective projection(也称作中心投影central projection)
3.2 从已知场景标定一个摄像机:摄像机校准camera resectioning
从一组图像场景对应点中计算摄像机的投影矩阵M图像点: (图像点三维齐次向量) 场景对应点:(场景点四维齐次向量)
,有11个自由参数
3.3 从多视图重建场景
- 方式一:给出了图像点u和摄像机矩阵M,只需要计算三维场景点X;使用三角测量法。
三角测量法triangulation: 有n个视图,需求解齐次线性方程组:
- 方式二:不知道摄像机矩阵。也就是说,场景点和摄像机矩阵都不知道,需要从已知的图像点中计算出来。
射影重建projective reconstruction:(与方式一不同,是非线性的方程组)解决方法:第一步,通过求解线性方程组来估计匹配约束(matching constraints)中的系统,从而从图像点中计算摄像机矩阵的不太精确的估计;第二步,通过最大似然估计(光束平差法)精确计算。
- 匹配约束:两个视图的,是极线约束epipolar constraint
- 光束平差:由于计算投影重建的时候有许多对应点可用,需要采用非线性最小二乘(Levenberg-Marquardt)求解,以最小化二次投影误差。针对这个问题的非线性最小二乘法来自于摄影测量中的光束平差法Bundle adjustment。
- 对于视频摄像头获取的图像序列(相邻帧间位移很小)的投影重建[Fitzgibbon and Zisserman,1998];
- 事先对摄像机位置丝毫不知,图像没有规律的投影重建[Cornelius,2004]
- 一种视频序列的重建方法:
- 从两幅图像中估计出本质矩阵,进行投影重建;
- 分解出摄像机矩阵
- 通过三角测量计算三维点,并进行光束平差
- 根据已经重建的三维点和在第三幅图像中的对应点利用校准法计算第三个摄像机的矩阵,再次进行光束平差。
- 对后续帧重复执行。
3.4 自标定(self-calibration):
利用一些附加的信息,使得投影重建转换为仿射变换、相似变换或欧式变换。等价于寻找摄像机的内参。
可以采用的方法,在摄像机的内参或外参上施加约束。可以利用消失点vanishing points,这些点指定了场景中互相正交的三个方向(一个垂直方向,两个水平方向)。
摄像机内参校准:
- 方法:非线性优化技术(对包含所有摄像机参数的非线性模型求解,精确)、线性法(用最小二乘法获取三维特征点与二维像点之间的变换矩阵,通过矩阵分解获得内参,简单快速,但未考虑非线性畸变,精度受影响)、两步法(先用线性方法计算摄像机某些参数,然后利用解得的参数考虑畸变因素,代入非线性算法迭代求解)、双平面校准法;
相机标定与三维重建原理相关推荐
- 【相机标定与三维重建原理及实现】学习笔记1——相机模型数学推导详解
目录 前言 一.小孔成像模型 二.坐标系的变换 1.世界坐标系到相机坐标系的变换(刚体变换)[xw^→xc^\boldsymbol {\hat{x_{w}}}\rightarrow \boldsymb ...
- matlab相机标定畸变参数,相机标定的原理与意义及OpenCVMatlab实现差异小结.doc
2011-01-30 相机标定的原理与意义及OpenCV.Matlab实现差异小结 分类:?OpenCV点滴2011-01-30 20:35?2292人阅读?评论(3)?收藏?举报 ??? 本文是一篇 ...
- 第二期直播《相机标定的基本原理与经验分享》精彩回录
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 学习3D视觉核心技术,扫描查看介绍,3天内无条件退款 圈里有高质量教程资料.可答疑解惑.助你高效解决问 ...
- 张正友相机标定程序实现
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/hongbin_xu/article/details/78988450 前言 在前面的博客中( 三维重 ...
- OpenCV相机标定与畸变校正
点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自OpenCV学堂. OpenCV单目相机标定,图像畸变校正 相机标定定义与原理 01 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点 ...
- 机器视觉的相机标定到底是什么?
转载:https://www.zhihu.com/question/29448299 之前做识别算法现在开始学习标定.用matlab. 刚开始看标定,先从单个相机开始看.标定板为何需要在不同角度拍20 ...
- 一文图解单目相机标定算法
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 有一天,蟹老板找底下的员工川建国同学: 等蟹老板走后,然后转头问旁边的学霸李雷同学: 李雷同学整理了下 ...
- 相机标定篇——相机标定
认为相机标定是三维重建的核心,研究生期间主要方向为结构光三维重建 必要的数学知识 线性方程求解 Gauss消元法:LU分解:Cholesky分解 最小二乘问题-线性方法 特征值分解:奇异值分解:超定线 ...
- MATLAB/OpenCV--基于棋盘格相机标定教程
文章目录 1. 使用 Matlab 进行相机标定 1.1 原理推导 1.2 标定图资源下载 1.3 使用matlab 工具箱camera calibrator 流程 2. 使用 OpenCV 进行相机 ...
最新文章
- 反编译与反汇编、C++编译过程,包括预编译--汇编--编译--链接
- 删除数据库中与同步数据冗余的数据(多对多)
- Android开发之Serializable 和 Parcelable的区别(源代码分享)
- Vim特定行行尾追加
- 长文 | 腾讯提出 AI For FEW 构想,呼吁人工智能为地球思考
- CSHOP后台设置SMTP发邮件提示 Error: need RCPT command 错误解决
- 【Linux】IPC-消息队列
- 用java程序实现记单词_java实现背单词程序
- Java 打包 FatJar 方法小结
- [codevs1262] 不要把球传我 数论+组合数学
- java 值栈的结构_Struts2 | 深入浅出理解struts2中的值栈
- Java案例:自动点名程序
- POJ 1845 Sumdiv 【逆元】
- kubernetes实践分享
- HP M1136打印机 Mac驱动程序分享
- Square Destroyer UVA - 1603 IDA*
- 【Unity3D-Mirror多人坦克大战】坦克生成、移动和摄像机跟随(二)
- 在Exchange Server 2007中限制部分用户只能收发内部邮件 1
- 大数据是什么?一篇文章正确告诉你
- [转]山寨手机初用者攻略