【立体视觉】双目立体标定与立体校正
来源:互联网 发布:sql server win7 编辑:程序博客网 时间:2024/05/16 19:36
参考:
机器视觉学习笔记(6)——双目摄像机标定参数说明
机器视觉学习笔记(8)——基于OpenCV的Bouguet立体校正
双摄像头立体成像(三)-畸变矫正与立体校正
人类可以看到3维立体的世界,是因为人的两只眼睛,从不同的方向看世界,两只眼睛中的图像的视差,让我们可以看到3维立体的世界。类似的,要想让计算机“看到”3维世界,就需要使用两个摄像头构成双目立体视觉系统。
想要让双目视觉系统知道视差,首先应该知道双目视觉系统中两个摄像头之间的相对位置关系。。任意两个坐标系之间的相对位置关系,都可以通过两个矩阵来描述:旋转矩阵R和平移矩阵T。
我们可以同时对两个摄像头进行标定,分别得到二者相对同一坐标系的旋转矩阵和平移矩阵,然后就可以获得两个摄像头之间的相对位置关系,这就是双目标定!
一、双目立体标定
双目摄像机需要标定的参数:摄像机内参数矩阵,畸变系数矩阵,本征矩阵,基础矩阵,旋转矩阵以及平移矩阵(其中摄像机内参数矩阵和畸变系数矩阵可以通过单目标定的方法标定出来)
双目摄像机标定和单目摄像机标定最主要的区别就是双目摄像机需要标定出左右摄像机坐标系之间的相对关系
我们用旋转矩阵R和平移矩阵T来描述左右两个摄像机坐标系的相对关系,具体为:将左摄像机下的坐标转换到右摄像机下的坐标。
假设空间中有一点P,其在世界坐标系下的坐标为
其中
注:双目摄像机分析中往往以左摄像机为主坐标系,但是R和T却是左相机向右相机转换,所以Tx为负数
综合上式,可以推得:
左右相机分别进行单目标定,就可以分别得到
求得的R和T就是立体标定要得到的结果。
单目摄像机需要标定的参数,双目都需要标定,双目摄像机比单目摄像机多标定的参数:R和T,主要是描述两个摄像机相对位置关系的参数,这些参数在立体校正和对极几何中用处很大
那么得到了立体标定的结果,下一步我们该做什么呢?
答案是:立体校正。
二、立体校正
在介绍立体校正的具体方法之前,让我们来看一下,为什么要进行立体校正?
双目摄像机系统主要的任务就是测距,而视差求距离公式是在双目系统处于理想情况下推导的,但是在现实的双目立体视觉系统中,是不存在完全的共面行对准的两个摄像机图像平面的。所以我们要进行立体校正。立体校正的目的就是,把实际中非共面行对准的两幅图像,校正成共面行对准。(共面行对准:两摄像机图像平面在同一平面上,且同一点投影到两个摄像机图像平面时,应该在两个像素坐标系的同一行),将实际的双目系统校正为理想的双目系统。
理想双目系统:两摄像机图像平面平行,光轴和图像平面垂直,极点处于无线远处,此时点(x0,y0)对应的级线就是y=y0
立体校正前:
立体校正后:
Bouguet校正原理
校正过程中两个图像平面均旋转一半的R,这样可以使重投影畸变最小,此时两个摄像机图像平面共面(畸变校正后光轴也平行),但是行不对准
极点是两个相机坐标系原点的连线和图像平面的交点,要想使得极点处于无穷远处(即行对准),就必须两个摄像机的图像平面和两个相机坐标系原点的连线平行
可以计算
由于图像平面最终和相机坐标系原点连线平行,所以
其中
e3与e1和e2正交,可得:
将
- 【立体视觉】双目立体标定与立体校正
- 双目视觉立体标定
- (七)立体标定与立体校正 【计算机视觉学习笔记--双目视觉几何框架系列】
- (七)立体标定与立体校正 【计算机视觉学习笔记--双目视觉几何框架系列】
- (七)立体标定与立体校正 【计算机视觉学习笔记--双目视觉几何框架系列】
- 立体视觉标定和校正
- OpenCV双目视觉之立体校正
- 基于OpenCV立体视觉标定和校正
- 基于OpenCV立体视觉标定和校正
- 双目立体视觉
- 浅谈双目立体视觉
- 双目立体视觉入门
- 双目立体视觉系统
- 双目立体视觉产品
- 双目立体视觉
- 双目立体视觉相关
- 双目立体视觉相关
- 相机标定(4)---基于halcon的双目立体视觉标定
- C++中实例化一个类的方式
- 第十章 时间序列
- Thinking in java-33 Collection & Map
- 合并两个排序的链表
- Android Studio之package org.junit does not exist解决办法
- 【立体视觉】双目立体标定与立体校正
- js给所有td加上悬浮显示(title)
- Mycat入门教程
- android studio全局搜索 快捷键
- iOS 开发 小技巧
- 阿里云https证书安装
- Go web 服务简单使用
- 手把手教你 ----JNI的基础实现
- WebRequest 和 HttpWebRequest 区别