玉米竭力用轻松具体的描述来讲述双目三维重建中的一些数学问题。希望这样的方式让大家以一个轻松的心态阅读玉米的《计算机视觉学习笔记》双目视觉数学架构系列博客。这个系列博客旨在捋顺一下已标定的双目视觉中的数学主线。数学推导是有着几分枯燥的,但奇妙的计算机视觉世界是建立在严密的数学架构之上的。所以对数学框架的理解是理解双目视觉的必由之路。不过请大家放心,接下来玉米会以尽量有趣,尽量更接地气儿的方式,阐释一下自己对双目视觉数学或者说是投影几何的理解。

先来张《计算机视觉:算法与应用》中的3D重建示例图镇楼!

好吧,现在言归正传,来看看几何学上世界是怎样投影进摄相机里的吧!接下来让我们来看一下本系列博客的第一“搏”:

图像坐标:我想和世界坐标谈谈(A)

首先,我先解释一下这个题目吧。题目的字面意义是说:图像坐标系想和世界坐标系谈谈。这里面包含着两个问题:

A、谈话对象:视觉系统的三大坐标系:世界坐标系,摄像机坐标系和图像坐标系。这是玉米在本文《我想和世界坐标谈谈                       (A)》中想要和大家分享的内容。其中主要包含:三大坐标系的位置、作用和应用场景。

B、谈话方式:两个不同的坐标系之间该如何沟通呢?玉米将在《我想和世界坐标谈谈(B)》中和大家分享一下刚体变换和透视                 投影变换。连起两个坐标系之间这不在一个参考系的“世界上最远的距离”。

好吧,下面让我们来揭开三大坐标系的庐山真面目。

上图是三个坐标的示意简图,通过它大家可以对三个坐标有一个直观的认识。下面来看看三个坐标系的骨子里藏了什么。

         世界坐标系(XW,YW,ZW):其是目标物体位置的参考系。除了无穷远,世界坐标可以根据运算方便与否自由放置。在双目视觉中世界坐标系主要有三个用途:1、标定时确定标定物的位置2、作为双目视觉的系统参考系,给出两个摄像机相对世界坐标系的关系,从而求出相机之间的相对关系3、作为重建得到三维坐标的容器,盛放重建后的物体的三维坐标。世界坐标系是将看见中物体纳入运算的第一站。

        摄像机坐标系(XC,YC,ZC):其是摄像机站在自己角度上衡量的物体的坐标系。摄像机坐标系的原点在摄像机的光心上,z轴与摄像机光轴平行。它是与拍摄物体发生联系的桥头堡,世界坐标系下的物体需先经历刚体变化转到摄像机坐标系,然后在和图像坐标系发生关系。它是图像坐标与世界坐标之间发生关系的纽带,沟通了世界上最远的距离。哈哈

         图像坐标系(x,y)/(u,v) :其是以摄像机拍摄的二维照片为基准建立的坐标系。用于指定物体在照片中的位置。玉米更倾向将(x,y)称为连续图像坐标或空间图像坐标,将(u,v)称为离散图像坐标系或者是像素图像坐标系(虽然这样的称呼未经考证,但更能传达二者的物理意义)。

(x,y)坐标系的原点位于摄像机光轴与成像平面的焦点O’(u0,v0)上,单位为长度单位(米)。(u,v)坐标系的原点在图片的左上角(其实是存储器的首地址)如上图所示,单位为数量单位(个)。(x,y)主要用于表征物体从摄像机坐标系向图像坐标系的透视投影关系。而(u,v)则是实实在在的,我们能从摄像机中得到的真实信息。

(x,y)与(u,v)存在如下转换关系:

dx代表x轴方向一个像素的宽度,dy代表y轴方向上一个像素的宽度。dx、dy为摄像机的内参数。(u0,v0)称为图像平面的主点,也是摄像机的内参数。其实相当于对x轴和y轴的离散化。其可以运用齐次坐标,将上式写成矩阵形式,如下:

           

(1)式运用了齐次坐标,初学者可能会感到有些迷惑。大家会问:怎样将普通坐标转换为齐次坐标呢?齐次坐标能带来什么好处呢?

玉米在这里对齐次坐标做一个通俗的解释。此处只讲怎么将普通坐标改写为齐次坐标及为什么引入齐次坐标。这里只做一个通俗但不太严谨的表述。力求简单明了。针对齐次坐标的严谨的纯数学推导,可参见“周兴和版的《高等几何》---1.3拓广平面上的齐次坐标”。玉米曾详细读过《高等几何》这本书,但觉得离计算机视觉有点远,是讲纯数学的投影关系的,较为生涩难懂。

齐次坐标可以理解为在原有坐标后面加一个“小尾巴”。将普通坐标转换为齐次坐标,通常就是在增加一个维度,这个维度上的数值为1。如图像坐标系(u,v)转换为(u,v,1)一样。对于无穷远点,小尾巴为0。注意,给零向量增加小尾巴,数学上无意义。

那么,为什么计算机视觉在坐标运算时要加上这个“小尾巴”呢?

玉米看来有两点原因:

1、 将投影平面扩展到无穷远点。如对消隐点(vanishing point)的描述。

2、 使得计算更加规整

如式(1)如果用普通坐标来表达的话,会是下面的样子:

这样的运算形式会给后与运算带来一定的麻烦,所以齐次坐标是一个更好的选择。

齐次坐标还有一个重要的性质,伸缩不变性。即:设齐次坐标M,则αM=M。

图像坐标:我想和世界坐标谈谈(A) 【计算机视觉学习笔记--双目视觉几何框架系列】相关推荐

  1. 图像坐标:我想和世界坐标谈谈(B)

    二.图像坐标:我想和世界坐标谈谈(B) 玉米将在这篇博文中,对图像坐标与世界坐标的这场对话中涉及的第二个问题:谈话方式,进行总结.世界坐标是怎样变换进摄像机,投影成图像坐标的呢? 玉米做了一个简单的图 ...

  2. OpenCV3 和 Qt5 计算机视觉 学习笔记 - 图像转换

    插件界面 void Transform_Plugin::setupUi(QWidget *parent) {ui = new Ui::PluginGui;ui->setupUi(parent); ...

  3. matlab 增加图像对比度_计算机视觉学习笔记6 图像直方图与直方图均衡化

    图像的直方图 图像直方图表示图像中每一种像素的个数,反映了图像中每种像素值出现的频率,是图像的基本统计特征之一,具有平移,旋转,缩放不变性,广泛应用于图像处理的各个领域.比如灰度图像的阈值分割,基于颜 ...

  4. matlab 图像读取长宽_计算机视觉学习笔记1 图像读取显示和尺寸变换

    第一天,图像的读取,显示和尺寸变换 c++,python,MATLAB各实现一遍,以这个头骨图像为例吧 c++调用OpenCv实现图像显示和尺寸变换 c++用的编译器为clion,因此需要先配置cma ...

  5. OpenCV学习笔记(九)——图像轮廓(下)

    <OpenCV轻松入门:面向Python>学习笔记(九) 1-3 查找并绘制轮廓.矩特性及Hu矩 4-5 轮廓拟合及凸包 6. 利用形状场景算法比较轮廓 6.1 计算形状场景距离 6.2 ...

  6. Opencv学习笔记(八) -- 图像色彩空间转换

    1.常见图像色彩空间 RGB RGB色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红.绿.蓝三个通道 ...

  7. 张正友标定Opencv实现、标定流程以及图像坐标转为世界坐标

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xiaomifanhxx/article/details/79560693 使用相机以前,首先要进行相 ...

  8. matlab 相机焦距,世界坐标、相机坐标、图像坐标、像素坐标的原理、关系,并用matlab仿真...

    照相机是日常生活中最常见的.它能把三维的空间图片等比例缩小投影在照片上,称为一个二维图像. 以下我们就讲一讲原理,并相应的进行matlab仿真. 在学之前,先要了解几个概念: 什么是世界坐标? 也就是 ...

  9. 相机标定(二)——图像坐标与世界坐标转换

    相机标定(一)--内参标定与程序实现 相机标定(二)--图像坐标与世界坐标转换 相机标定(三)--手眼标定 一.坐标关系 相机中有四个坐标系,分别为world,camera,image,pixel w ...

最新文章

  1. 人工智能的另一方向:基于忆阻器的存算一体技术
  2. 2016年7月微软MVP申请開始了!
  3. linux tomcat7怎么安装,centos7安装Tomcat7,
  4. 车辆动力学及控制pdf_Simulink软件仿真平台之车辆模型
  5. Java IO流思维导图
  6. 一个利用Dataflow实现的Actor
  7. angularjs ngRoute的使用简单例子
  8. SAP Analytics Cloud和Cloud for Customer之间的Single Sign on配置
  9. php worker,问题 php不支持worker工作模式的报错
  10. C语言 结构体的初次运用
  11. QString::arg()//用字符串变量参数依次替代字符串中最小数值
  12. 将华氏温度转化成摄氏度和绝对温度
  13. redis的zset的底层实现_Redis底层数据结构之 zset
  14. Nginx反向代理服务器获取不到端口的问题的解决办法
  15. [delphi]窗口最大化时怎么才能不要把任务栏盖住
  16. escilpse 连接mysql,浅谈docker-compose网络设置之networks
  17. Linux突然断电造成系统文件损坏而无法启动
  18. I;P : Leaderboards and Achievements
  19. visio2019即点即用版本兼容下载与安装
  20. 蓝牙路由器系列产品:企业级Cassia E1000

热门文章

  1. 您不能不知的ToString()方法
  2. Oracle 中间件云服务器系统 ExaLogic X2 - 2 和 T3-1B概述
  3. 2017年苹果公司开发者账号申请-公司邓白氏编码
  4. Thinking in Java 源代码 source code 在IDEA上运行
  5. 2018.10.18多校
  6. java/android 做题中整理的碎片小贴士(12)
  7. python---统计列表中数字出现的次数
  8. 进程控制块PCB结构体 task_struct 描述
  9. 【数论】[CF258C]Little elephant and LCM
  10. (转)Http协议经典详解