目录

空间点重建

最小二乘求点坐标

一种理想的空间点重建模型

空间直线重建

空间曲线重建


空间点重建

假如我们能得到物体表面上所有点的三维坐标,则三维物体的形状与位置就是唯一确定的。在有些简单的场合,例如三维物体是一个多面体,我们只需要知道它的各个顶点的三维坐标与相邻关系,则该多面体的形状与位置也是唯一确定的。因此,用立体视觉的方法获取三维点的坐标(我们称之为基于点的三维重建)是最基本的,也是最简单的。我们假定,空间任意点x在两个摄像机O1与O2上的图像点x1与x2已经从两个图像中分别检测出来,即已知x1与x2为空间同一点x的对应点。

图1 空间点重建

我们还假定,O1与O2摄像机已标定,它们的投影矩阵分别为M1与M2。于是有两个相机的映射公式:

                                (式1)

                               (式2)

其中,分别为x1与x2点在各自图像中的齐次坐标。为x点在世界坐标系下的齐次坐标。

在上式中消去,得到关于的四个线性方程:

            (式3)

             (式4)

由解析几何知,三维空间的平面方程为线性方程,两个平面方程的联立为空间直线的方程(该直线为两个平面的交线),式3的几何意义是O1x1直线,式4的几何意义是O2x2直线。

由于空间点x是O1x1与O2x2的交点,它必然同时满足式6与式7。因此,我们可以将式4与式5联立求出x点的坐标,事实上,式6与式7为包含三个变量的四个线性方程,我们只需要其中三个就可以解出。也就是说,式6与式7中,只有三个独立方程,这是因为我们已经假设x1与x2点是空间同一点x的对应点,因此已经假设了直线O1x1与直线O2x2一定相交,或者说,四个方程必定有解,而且解是唯一的。

在实际应用中,由于数据总是有噪声的,我们可用最小二乘法求出

最小二乘求点坐标

上面所述的式(6)和式(7)确定的两条线,由于实际应用中的噪声作用,可能出现不相交的情况,这时可以通过最小二乘法求取近似的空间点坐标:找和两条线的垂直距离之和最小的空间。

一种理想的空间点重建模型

假设图2一种简单的双目相机模型,满足z轴平行,x轴重合的关系,即可以简单的通过平移实现两个相机坐标的重合,换句话说,两个相机坐标只相差x轴上的一个平移向量,假设该向量的长度为b,即相机的基线为b。

图2 一种理想化的双目相机模型

如图2所示,极线E1和E2是平行于O1O2(O1O2的连线即x轴),且E1和E2完全重合,由针孔模型的归一化成像平面模型:(见:https://blog.csdn.net/simonyucsdy/article/details/100603687)

可得:

                              式(5)

                    式(6)

式(5)和式(6)的结合,得到的就是式(3)和式(4)的结合的简化(相机模型被简化了)。

对式(5)和式(6)进行求解:

                             式(7)

                           式(8)

                              式(9)

上面的结果表明,可以由匹配的两点求出空间点坐标,式中的称为视差,是一对对应点在x轴上的偏差,式(9)表明,当空间点距离越远(z1越大),视差越小,实际上,当P点趋于无穷远时,O1P和O2P趋于平行,视差也就趋近于0了。

当然,这种理想化配置的相机模型在实际应用中是不可能的,我们需要求解任意的模型就不可能使用这么简单的计算,它只是作为一种理想化模型来对空间点重建加深理解而已。

空间直线重建

如图2所示,若空间有一条直线S,由C1与C2两个摄像机观察到S的两个图像s1与s2。

                                                                           图2 空间直线的三维重建模型

则空间直线S为由O1与s1组成的平面S1与由O2与s2组成的平面S2的交线,设已知双摄像机的投影矩阵M1与M2,s1与s2对应于空间同一条直线S(称s1与s2为对应直线),已知s1与s2在图像坐标系下的方程为

                   (式10)

                   (式11)

其中,u1,u2分别为直线s1与s2上点的齐次坐标==称为直线s1与s2的直线坐标。将表示C1摄像机投影关系的式(1)两边左乘得到:

          (式12)

式12对空间任何点都是成立的,若空间点x(它的坐标在世界坐标系下是)位于S1平面上,则它在图像上的投影点就必然在直线s1上(见图2),因此式12的左边就等于零。于是由式10可以得到:

               (式13)

上式为关于x的线性方程。由于上式的成立是假定x点位于S1平面上,因此,上式就是S1平面的方程。同理,我们可以得到S2平面的方程为
                                                                                                 (式14)

由于S是S1平面与S2平面的交线,所以,式13与式14联立就是S在世界坐标系下的表达。可见,在已知的直线s1与s2的方程与投影矩阵M1与M2后,不需解方程,就可以得到S在世界坐标系下的表达,我们也可看到,在用立体视觉重建三维点或三维直线时,无需求取双目相机的内外参数。

空间曲线重建

如图3所示,若空间有一条曲线Q,由C1与C2两个摄像机观察到Q的两个图像Q1与Q2。

                                                                              图3 空间曲线的三维重建模型

在图像,二次曲线Q1与Q2可表达为方程:

                   (式15)

                   (式16)

其中,u1、u2分别为曲线Q1与Q2上任意点的齐次坐标==对3*3对称矩阵,目标是由得到Q曲线的表达式。

由空间点投影关系(式(1)和式(2)表达式)结合式(15)和式(16)得到:

                  (式17)

                  (式18)

若空间点x的投影在曲线上,则其坐标符合上述表达式,可想而知,不只是,x点只要落在O1Q1和O2Q2锥面上,就可以符合上述表达式,因此式17和式18也就是两个锥面的表达式。

Q曲线就是两个锥面的交线。

[计算机视觉] (六)三维空间重建相关推荐

  1. 项目需求|室内场景三维空间重建项目

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 项目名称:室内场景三维空间重建项目 需求内容:依托移动端设备(或特定机型)实现室内场景三维重建,生成真 ...

  2. <计算机视觉 六> 深度学习目标检测模型的评估标准

    鼠标点击下载     项目源代码免费下载地址 <计算机视觉一> 使用标定工具标定自己的目标检测 <计算机视觉二> labelme标定的数据转换成yolo训练格式 <计算机 ...

  3. 六大维度让你彻底明白机器视觉与计算机视觉的区别!

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:新机器视觉 今天从知乎上看到这样的问题,机器视觉与计算机 ...

  4. 机器视觉与计算机视觉的区别?

    来源:https://www.zhihu.com/question/23183532 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 作者:飘哥 https://www.zhihu.com/qu ...

  5. 【MEME Tuesday 】重建光辉城市

    ​2021-11-16  MEME TUESDAY活动纪实 主持: 曹寅  数字文艺复兴基金会 董事总经理 阿秋  D1 Ventures创始合伙人 嘉宾: Xuanch  Illustrator / ...

  6. <计算机视觉四> pytorch版yolov3网络搭建

    鼠标点击下载     项目源代码免费下载地址 <计算机视觉一> 使用标定工具标定自己的目标检测 <计算机视觉二> labelme标定的数据转换成yolo训练格式 <计算机 ...

  7. 机器视觉与计算机视觉的区别

    机器视觉(Machine Vision, MV)与计算机视觉(Computer Vision, CV)两者既有联系又有区别.机器视觉与计算机视觉有很多相似之处,在架构上都是基础层+技术层+应用层:并且 ...

  8. 【计算机视觉】计算机视觉与深度学习-01-计算机视觉相关介绍-北邮鲁鹏老师课程笔记

    计算机视觉与深度学习-01-计算机视觉相关介绍 前言 图像处理 vs 计算机视觉 图像处理 计算机视觉 相关课程 计算机视觉简介 计算机视觉顶级会议 计算机视觉的目标 图像中的信息 三维场景的结构信息 ...

  9. 超干货3D视觉技术分享+人才内推!独角兽奥比中光与你相约VALSE 2021

    10月8日至10日,一年一度的VALSE大会(视觉与学习青年学者研讨会)将在杭州国际博览中心举办.行业领先的3D视觉感知领域整体技术方案提供商奥比中光金牌赞助本届VALSE大会,并以"感知· ...

最新文章

  1. “我的开源项目被威胁了!”
  2. Sql 先进先出计算积分
  3. 一位Python初学者的自白:Python小白眼中的装饰器
  4. DevOps的几个场景
  5. 和显卡驱动要配套吗_天天学渲染,你的显卡驱动用对了吗?
  6. css响应式布局_用 CSS Grid 布局制作一个响应式柱状图
  7. Java中一个逐渐被遗忘的强大功能,强到你难以置信!
  8. 基于android的电影院订票影院售票系统app
  9. DES、3DES、AES以及RSA加密介绍
  10. STEAM无法打开创意工坊或成就页面
  11. 余弦函数导数推导过程_三角函数公式篇
  12. Java解析富文本rtf中文乱码
  13. 天价球鞋事件中,得物在扮演哪种身份?
  14. 解决VS2015提示未能加载项目文件。缺少根元素的错误
  15. Web前端开发十日谈
  16. 计算机使用技巧爆文,自媒体原创(伪原创)爆文的写作技巧
  17. 为什么很少有单片机机构?培训班一般多少费用?
  18. 网络工程师的python之路pdf_网络工程师的Python之路:网络运维自动化实战
  19. MTK 轨迹球(JOG_BALL)
  20. PostgreSQL in amp; = any (values|array)

热门文章

  1. 苹果将在明年放弃X86处理器,这对Intel是重大打击
  2. 企业如何做好知识文档管理?
  3. ACM算法训练【逆序对的数量】
  4. 机器人变形出发捞钱 看变形金刚咋赚钱
  5. 客服通话文本摘要提取比赛基线
  6. Element 3D v2.2.2.2160 Win中文版原创/视频注册汉化安装教程
  7. 广告反作弊的常用技术分析
  8. 一生抗韩,或许我再也等不到你来年
  9. ssm+JSP计算机毕业设计渔具店管理系统5mf28【源码、程序、数据库、部署】
  10. 速览Visual Studio 2022 中的新增功能