目录

纯粹的方式

简单的方式

多平面校准

总结


纯粹的方式

所以现在我们没有M,现在我们知道,M编码所有的参数,外部参数和内部参数。所以我们应该能够从m中找到关于相机的东西,例如,焦距应该是一个固有的。或者,相机中心呢? 为了能够投影,摄像机中心,记住从世界坐标到摄像机中心的平移向量。如果我们知道平移的值,它会告诉我们摄像机中心在世界坐标系中的位置。所以我们应该能够直接从最终矩阵中得到它。我将告诉你们两种方法。一种纯粹的方式,很美,然后是简单的方式。我们从纯方法开始。这里有一个符号上的小变化只是为了把部分提出来(如图1)。okay。我们有矩阵M,我假设M,是3×4矩阵。它由这个3×3构成,我把它叫做Q b就是这个3×1,它就是一个向量。okay,我们有Q和b,我要声明中心C,这是一个点,我要用向量表示,它在零空间中。投影矩阵的。

1 2

这意味着如果你用M乘以C,它等于0。如果你找到这样一个C,那就是相机中心。你应该相信我。okay,也许你不信任我。让我告诉你为什么是这样。all right? 非常简单。除了画图是痛苦的,all right? 假设有一个以c为中心的相机,有一个平面。这里有一个点P。这是一条从P到c的射线这条射线上有一个点X(如图1)。这就是X的位置(如图2)。all right? 这就是这个方程的全部内容。

1  2

X等于某个p和c的混合,乘以p(1 -)乘以c,给定某个M,这是摄像机,投影。all right? X是MX的线性代数,投影就是λMP + 1 -λMC(如图1)。现在任何时候,P,所有的点在P的形象因此,任何点P,所有的点在这光线,不得不降落在同一点图片(如图2),okay? 所以,这里的任意一点X都会落在相同的点上,不管是什么。如果这个方程必须成立,不管是什么。它必须落在MP处因为可能是1。这意味着这个值,MC,必须等于0(如图3)。如果C是中心,MC等于0。

1 2

3

这就是为什么,我之前说过中心C可以通过找到零空间来得到。对于投影矩阵m,这不是很痛苦。

简单的方式

但是假设你真的想做一些有用的事情。最简单的方法是什么? 最简单的方法就是给出公式(如图)。

所以,如果M等于qb,就像我之前说的,那么中心就是通过取这个向量上的这个向量(如图)。

这是一个3×3,所以- Q逆是一个3×3,b是3×1,这是一个3×1(如图1),然后我添加1(如图2),这就是向量相机中心在世界坐标系。

1 2

如果我画,你看不见的那张桌子的一角,那里有一个角,如果我说这是原点,这是x,这是y,这是z(教授比手势),然后这里有一个摄像头。我看一下这里的一些点,我给出了这些点在这个坐标系中的值,然后我定位这些点,在我的像平面上。然后我做数学计算,M向量,M矩阵,然后我拿出3×3和称为Q和三个被称为b。然后我带- Q逆乘以b在一个向量,将这个相机的实际位置在那个世界坐标系统。漂亮,很酷。

多平面校准

最后,这是我告诉你们的半比特,还有另一种校准的方法,很酷。事实上,这是今天大家都在用的,因为通常你没有这些点。这是一种获取内部函数的方法,如果你知道这些棋盘放在哪里(如图),这就是外部函数。基本上你要做的就是拿一个棋盘然后移动它。你可以根据棋盘来校准摄像机。现在每个人都这么做的原因是。首先,你可以打印出棋盘必须在平面上,这很简单你可以打印出棋盘。你要确保你的打印机没有把事情搞砸,你要确保打印出来的结果是正方形就是正方形。你把它放在硬纸板或泡沫芯上。你不需要知道位置和方向来得到相机的本质。

稍后您还可以获得固有(intrinsic)。为什么每个人都用这个? 因为代码很容易在网上获得。OpenCV直接支持这一点。我们在这里列出它的MATLAB版本。如果你去张正友的网站,他就像校准医生一样。在校准方面,他为我们做了大量的工作,论文等。我还会告诉你们,你们可以做一些很酷的事情,事实上,我的一个学生,凯尔西·霍金斯做了这件事。我认为代码是公开的。如果你拿一个棋盘把它装在机器人手臂的末端。记住,机器人知道它的手臂在坐标系中的位置。如果你也知道,比如说棋盘格从末端执行器到手的偏移量。然后你能做的就是用摄像机,你可以用机器人移动棋盘,当然我们知道棋盘的3D位置,在我们拍照的每一点上。所以,通过这些棋盘的图像,你最终校准了相机到机器人的坐标系统。所以,在机器人技术中直接这样做是很酷的。

总结

这就是校准的内容。在作业中,你们会用到我们开发的直接线性校准的理论,我们会给你们那些具有点和这两点的三维位置的图像,然后你们会得到这些图像。你需要解出标定。有趣的是,你可以相对准确地恢复。在接下来的课程中,我们要做的是摆脱严格校准相机与世界的概念。相反,我们将讨论多个摄像机之间的关系,特别是从两个摄像机开始。这最终会达到,我们在立体中讨论的那个点,如果你知道摄像机之间的关系,你就能知道极线在哪里。所以基本上,如果我给你一些对应的点,你应该能够解出摄像机之间的关系,这样你就能找到那些极线。这就是我们接下来的内容要做的。


有编过程的人的代码,比那些无知的人使用的软件更有价值。

20.校准相机——纯粹的方式,简单的方式,多平面校准_4相关推荐

  1. 转 ABAP_ALV_Function方式与OO方式(较为简单、普通的ALV)

    ABAP_ALV_Function方式与OO方式(较为简单.普通的ALV) 分类: SAP ABAP2013-01-31 09:58 1511人阅读 评论(0) 收藏 举报 目录 一.ALV简介 1. ...

  2. android 摄像头比例,Android摄像头是全屏预览最简单的方式.doc

    Android摄像头是全屏预览最简单的方式 Android Camera做全屏预览之最简单方法 M厂开发五部:刘 博 一.全屏预览与非全屏预览的区别 对于大多数人来说,我们看电影.玩游戏等都喜欢全屏, ...

  3. unity c 语言教程,程序丨Unity教程:如何用最简单的方式创建Simplex噪声?

    原标题:程序丨Unity教程:如何用最简单的方式创建Simplex噪声? 翻译:刘甜甜(青悠) 审校:周伟杰 (Senser) 在本篇教程中,你将学会创建Value噪声与Perlin噪声的替代噪声,即 ...

  4. 几种常用的加密方式简单介绍

    1 Base64加密方式(可逆) Base64中的可打印字符包括字母A-Z/a-z/数组0-9/ 加号'+'斜杠'/' 这样共有62个字符 Base64 ios7之后加入系统库 android  中 ...

  5. 最简单的方式实现一棵二叉树

    使用最简单的方式实现看树写代码C++实现 这段代码之所以能够正常工作,是因为数组元素的地址是常量表达式.我们可以使用这种 标记法定义任何链式结构,但是这种初始化方法难以记住,所以在构建这种结构时很容易 ...

  6. 如何用最简单的方式理解傅立叶变换?

    你还在因为傅立叶挂科而头疼不已吗? 傅立叶变换经常被称为大学的杀手课程,傅立叶变换不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式. 但不幸的是,傅立叶变换的公式看起来太复杂了,所 ...

  7. python3 爬虫第二步Selenium 使用简单的方式抓取复杂的页面信息

    Selenium 简介 该系列专栏上一篇爬虫文章点击这里. 网站复杂度增加,爬虫编写的方式也会随着增加.使用Selenium 可以通过简单的方式抓取复杂的网站页面,得到想要的信息. Selenium ...

  8. dubbo 整合 zipkin,最简单的方式,亲测有效

    大家好,我是烤鸭. 之前也试过网上很多版本,看了好多文章.现在分享最简单的方式,代码侵入性最小的. 1. 修改pom,引入jar. <!-- https://mvnrepository.com/ ...

  9. python最简易入门_零基础入门python,用最简单的方式即可入门python,没有那么复杂...

    python已经开始被越来越多的人喜欢,其中有很多是从未学习过编程的人,那么,如果是从零开始学python的话,会很难吗? 其实从零开始学python并不会很难,最简单的方法,往往最有效果,无论你是否 ...

最新文章

  1. Android中修改弹出dialog背景无色透明,弹出时有遮罩
  2. word-break:break-all和 word-wrap:break-word区别
  3. 在Java中有类似.NET的NotImplementedException吗?
  4. JVM — 类加载机制
  5. 为什么使用 Vuetify?
  6. 【python图像处理】txt文件数据的读取与写入
  7. 神策 2021 数据驱动大会「积分有礼」榜单今日揭晓!快来看看你排第几?
  8. mysql输入命令1002无标题_Linux下远程连接MySQL数据库的方法
  9. mysql隔离级别 举例_mysql的事务隔离级别举例
  10. MyBatis JdbcType介绍
  11. Shell数组操作(添加、删除元素、清空、遍历)
  12. Handler原理分析
  13. 漫谈广告竞价模式(四)
  14. 发展分布式光伏要理顺价格机制
  15. 4.4_factory_method_创建型模式:工厂方法模式
  16. indel该右移还是左移
  17. Abp vNext swagger注释
  18. 金蝶K3系统物料替代功能的应用与业务逻辑探讨
  19. 天牛须和贪心算法_利用天牛须搜索算法(BAS)优化PID控制器参数的代码
  20. cf全屏下面桌面任务栏_还有玩CF时,下面会有任务栏。也就是说不能全屏!请问怎么回事...

热门文章

  1. 【nodejs原理源码杂记(8)】Timer模块与基于二叉堆的定时器
  2. 车标知识学习网页开发,与Flask通过base64展示二进制图片 #华为云·寻找黑马程序员#
  3. 大前端的自动化工厂(3)—— babel
  4. 小白学HarmonyOS,HarmonyOS 2.0正式发布 分布式能力获得全面升级
  5. 虚拟机+Ubuntu+filezilla连接
  6. python open encoding_Python文件操作
  7. Python练习:合格率的计算
  8. Java运算符(Operator)之 算数运算符(ArithmeticOperator)
  9. 运行linux在de1soc,在DE1-SOC上运行Linux
  10. mysql根据语句自动实现索引_mysql 语句的索引和优化