一、普朗克坐标的表示方法

普朗克坐标是表示空间直线的一种方法,相较于用只存储空间直线上两个点的方法,普朗克坐标能够更好地表示空间直线。普朗克坐标采用六自由度的表示方法,用六个量进行表示,其中六个量可以分为两组,每组为一个三维向量,一般记为m和d,其中d表示空间直线的方向向量,直接用端点的三维坐标相减即可得到,而m表示的是反投影平面的法向量,这里的反投影平面,指的是相机光心出发,分别指向图像上线段的两个端点,由此形成的一个反向延长平面,普朗克坐标在这里一般用的是两条射线的叉乘来表示。

考虑到叉乘的几何意义,这里m的模,表示的实际上就是空间线段、相机光心围成三角形的面积的两倍,所以我们可以这样去理解普朗克坐标,我们首先用d锁死了空间直线的方向和截取线段的长度,用m的模确定了围成三角形的面积,三角形底确定,那么可以顺势得到高,也就是相机光心到线段的距离,而m的方向又确定了反投影平面的方向,由此直接确定出我们要表示的空间直线。

普朗克坐标存在的一个问题是自由度的冗余,高中就学过的空间直线表示方法里,一条空间直线需要四个参数,也就是ax+by+cz+d=0中的abcd,所以普朗克坐标在优化时会因为冗余的问题导致优化的不方便,在PL-VIO中采用的是坐标转换的方法,当需要计算相交或者求误差时,就是用普朗克坐标来计算,而涉及优化时,就用单独的函数转换为正交坐标,优化完再转换回去,这种方法虽然麻烦,但确实很好地解决了优化时的复杂。

二、普朗克坐标的应用

三角化

线段的三角化是一个很重要的问题,在单目SLAM中,深度的恢复基本使用的都是三角化的策略,对于点,三角化的策略已经十分稳定,但是线段的三角化使用的缺不多,PLSLAM中使用的方法是对线段的两个端点进行三角化,空间两点的连线就成为了空间线段的表示方法,这种方法虽然可以完成线段三角化的任务,但是显然对线段的利用程度不高,只取两个端点进行深度的恢复,而剩下的点根本没有起到什么约束作用,当然也可以用采样点的方法,采样出许多个点然后三角化,对恢复深度的点进行直线的拟合从而得到空间信息。从这个角度来看,我们为了线段的空间表示付出了太多,又是采样点又是多个三角化,还要再次剔除离散点拟合。

使用普朗克坐标一个很大优势在于,我们可以用普朗克坐标直接计算出空间线段的表示。PL-VIO使用的就是这个方法,其本质还是利用光心、2d线段的端点形成的反向延长平面相交来快速计算,简单来说就是联立两个空间平面方程,解出一个空间直线方程。

所以我们需要的就是用π1和π2两个平面方程,解出直线l的方程,参考PL-VIO,这里我们使用两个平面方程,可以直接解出直线L的空间方程的普朗克坐标形式:

在这个式子中,左侧的4×4矩阵,左上角3×3矩阵为普朗克坐标中方向向量的反对称矩阵形式,左下角的1×3向量为平面法向量的转置,所以这个4×4矩阵中就已经包含了普朗克坐标需要的两个内容。再看式子右侧,需要的是两个平面的方程形式,这里的平面方程是一个1×4的向量形式,其定义为:

这个量其实就是空间平面的方程里的四个量,具体来说就是xyz的系数以及常数项:

上面的式子展开,得到的常数项进行整合:

由于采用了点法式的写法,所以前三个量可以直接用向量叉乘的方法得到:

这样看,在线段三角化的过程中,我们可以用两个平面的空间方程直接解出线的普朗克坐标形式。

坐标系的转换

点的转换我们可以直接使用点坐标乘变换矩阵实现坐标系的移动,使用普朗克坐标的线段也可以实现类似的变换,参考DPLVO:


这样我们就可以直接利用变换矩阵,将R和t变换一下形成H矩阵,之后就可以直接投影实现坐标系的变换。

投影到成像平面

如果我们已经有空间直线的三角化后的普朗克坐标,我们可以使用普朗克坐标直接实现空间到成像平面的转换,参考PL-VIO,nc为普朗克坐标中前面三个数,也就是延长平面法向量的部分,k为相机的内参矩阵变形:

当成像平面为单位化平面时,内参矩阵变形为单位矩阵,这个时候直接取普朗克坐标的前三位即为投影直线的三个描述。

角度表示

在DPLVO里还提到了一种用夹角来转换出普朗克坐标的方法,这种方法里面使用反向延长平面以及端点的反向延长线来进行表示,反向延长平面的法向量记为:

端点的反向延长方向记为:

α与方向向量之间的夹角记为θL,τL记为线到到光心的距离,那么线段的普朗克坐标也可以表示为:

点到线的距离的衡量

在EDPLVO中,作者使用普朗克坐标来快速计算点到直线的距离,本身上还是利用普朗克坐标的含义,也就是确定面积和底的长度,从而找出三角形的高。

在这种情况下,计算点到直线的距离需要知道点在相机坐标系下的坐标:

【学习记录】普朗克坐标 Plücker coordinates相关推荐

  1. 大创学习记录(四)之yolov3代码学习

    PyTorch-YOLOv3项目训练与代码学习 借助从零开始的PyTorch项目理解YOLOv3目标检测的实现 PyTorch 对于PyTorch就不用多说了,目前最灵活.最容易掌握的深度学习库,它有 ...

  2. Redis的学习记录

    Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...

  3. 架构与设计 之一 C 嵌入式设计模式(Design Patterns for Embedded Systems in C)的学习记录

    唉   时至今日,已经不知道在嵌入式的道路上到底挣扎了多少个岁月,总感觉要"病入膏肓"了.此间总是不时出现一些疑惑:人家搞 Java.搞 C# 的动不动就是什么架构 / 框架的,搞 ...

  4. java 工程文件改名后显示绿色加号_Gradle学习记录018 构建java JVM工程 part1

    详细学习如何用Gradle构建标准的java项目.第一部分.该学习记录基于Gradle官方网站资料.本篇参考链接如下: https://docs.gradle.org/current/userguid ...

  5. Unity学习记录——模型与动画

    Unity学习记录--模型与动画 前言 ​ 本文是中山大学软件工程学院2020级3d游戏编程与设计的作业7 编程题:智能巡逻兵 1.学习参考 ​ 除去老师在课堂上讲的内容,本次作业代码与操作主要参考了 ...

  6. JavaScript-WebAPIs学习记录

    JavaScript-WebAPIs学习记录 浏览器交互效果 console.dir(); // 更好地查看里面的属性和方法 javascript:void(0); 或者 javascript:; 可 ...

  7. Opencv 入门篇学习记录(图片)

    title: Opencv 入门篇学习记录(图片) Opencv 入门篇学习记录(图片) 前言 很早以前就接触Python了,大学的时候还自学了一段时间去做了课设,写了一些最速梯度下降法.黄金分割法. ...

  8. 【按键精灵学习记录】以DOTA2人机为例

    [按键精灵学习记录]以DOTA2人机为例 一.写在前面 二.准备工作 1.环境准备 2.需求分析 3.流程图 三.代码实现 1.命令分析 2.代码实现 状态判断 主循环 英雄选择 游戏中 3.实测 四 ...

  9. DAB-Deformable-DETR代码学习记录之模型构建

    DAB-DETR的作者在Deformable-DETR基础上,将DAB-DETR的思想融入到了Deformable-DETR中,取得了不错的成绩.今天博主通过源码来学习下DAB-Deformable- ...

最新文章

  1. 产品经理其实是一种能力,而非职业
  2. SevOne将SD-WAN监控扩展到VMware NSX
  3. Same Sum Blocks
  4. Java知识系统回顾整理01基础05控制流程07结束外部循环
  5. 【牛客 - 1080C】tokitsukaze and Soldier(思维,偏序问题)
  6. 4.Transfer Learning
  7. python时间格式转换time模块
  8. Android 应用性能优化(4)---Android App性能评测分析-启动时间篇
  9. vim删除多行_vim文本编辑器
  10. 计算机应用基础任务化教程试题及答案,计算机应用基础任务化教程windows7office2010试卷(带操作题)及答案.doc...
  11. [App Store Connect帮助]二、 添加、编辑和删除用户(5)创建一个沙盒测试员帐户...
  12. Unicode 汉字内码表
  13. FFmpeg 和 MP4Box 几个命令
  14. 手机浏览器一键跳转微信加好友和公众号关注的方法
  15. offer和面经分享(内含offer截图)
  16. 如何用Matlab在极坐标系下绘图并调整极坐标初始角位置
  17. linux删除指定的行
  18. 深入浅出解答hero刷rom的各种问题
  19. 剑灵哪个服务器人最多2017,剑灵2017职业排行榜
  20. Kmeans(C/C++实现,以足球队聚类为例)

热门文章

  1. python爬取王者_Python爬取王者荣耀所有英雄以及高清大图
  2. Yang Y-2021-1: Y6
  3. python的pack和unpack用法
  4. stm32毕业设计 NBIOT远程通信系统
  5. python如何获得文件的元数据
  6. design短语的用法总结_最新高中英语知识点详解之design的用法及常见短语
  7. 人在旅途——》云南8天出行日程清单
  8. 基于西门子1200PLC模拟量测温案例2
  9. coreldraw凹槽_一种用于建筑绘图的坐标纸的制作方法
  10. k8s-svc外界访问pod容器服务-4