从零开始一起学习SLAM | 相机成像模型

SLAM入门-相机成像原理与公式推导 Pinhole Camera Model 如上图所示, 现实世界中的3D object成像在相机的成像平面image plane中, 由针孔成像的对称性, 可以画出image plane的对称虚平面virtual image plane 为了简化, 下面都使用 virtual image plane代替 image plane, 毕竟这个平面内部的像素坐标值在两个平面都是一样的; ... 阅读详情

上一篇文章《从零开始一起学习SLAM | 为啥需要李群与李代数?》以小白和师兄的对话展开,受到了很多读者的好评。本文继续采用对话的方式来学习一下相机成像模型,这个是SLAM中极其重要的内容,必须得掌握哦~

小白:师兄,上次听你讲了李群李代数,有种“听君一席话胜读十年书”的赶脚~后来看书感觉容易理解多了呢!
师兄:是吗?那太好啦,给你讲的过程也加深了我的理解呢
小白:那师兄今天要不要继续加深理解一下相机成像模型 的部分呢?
师兄:额。。好啊(感觉被套路了,不过想想上次小白师妹请客吃了烧烤呢)
小白:讲完一起吃饭去~
师兄:好呀好呀!

小孔成像
师兄:相机成像模型我们主要介绍针孔相机。中学时我们都学过小孔成像,还记得吧。像下面这个图,就是小孔成像示例。你看三维空间的蜡烛在带有小孔的黑箱子里成像一个倒立是像,这个是实像
在这里插入图片描述

小白:嗯嗯,还有印象,那个正立的虚线画的就是虚像吧
师兄:是的。话说几千年前人们就发现了这个现象了~
在这里插入图片描述
小白:那师兄为啥要画这个虚像呢?
师兄:因为这个虚像和实像是完全对称的,数学上可以等价,后面我们推导公式的时候比较方便。
小白:这样啊,还有个问题,为啥我看好多书上提到相机模型都是讲的针孔相机?
师兄:因为自然界中这个成像过程最普遍,我们普通的相机,视场角不太大的话都符合针孔相机成像模型
小白:可是,普通相机好像没有针孔那么小。。。
师兄:哈哈,这个针孔是个类比,比如手机摄像头镜头相对于被拍摄物体到手机的距离就非常小了,可以近似为一个针孔的
小白:糗大了。。。
师兄:没事,不懂就问不能不懂装懂嘛。我们继续,前面针孔相机用数学表达就是下面这样。我们把倒立的实像去掉,用正立的虚像代替就行啦。三维空间的点大P在成像平面上成的像就是小p了。大P,小p还有相机中心C在同一条直线上。
在这里插入图片描述

小白:嗯,这个图还挺直观的

纷繁复杂的坐标系
师兄:下面我们即将进入公式的世界,yeah~
小白:师兄,我数学是语文老师教的。。。尽量通俗易懂的讲哈
师兄:嗯,第一步,我们先要明白,这个三维空间有好多坐标系,一个,两个。。大概有三四个吧。
小白:(捂脸)
师兄:首先说两个,世界坐标系和相机坐标系。顾名思义:

世界坐标系(world coordinate system):就是用户定义的三维世界的坐标系,以某个点为原点,为了描述目标物在真实世界里的位置而被引入。单位为m。
相机坐标系(camera coordinate system):就是以相机为原点建立的坐标系,为了从相机的角度描述物体位置而定义,作为沟通世界坐标系和图像/像素坐标系的中间一环。单位为m。

小白:

从零开始一起学习SLAM | 为什么要学SLAM? 在《零基础小白,如何入门计算机视觉?》中我提到过,计算机视觉的研究目前主要分为两大方向:基于学习的方法和基于几何的方法。其中基于学习的方法最火的就是深度学习,而基于几何方法最火的就是视觉SLAM。 SLAM将成为计算机视觉的下一个风口 在前几年计算机视觉的三大顶级会议(CVPR,ICCV,ECCV)上,几乎全是深度学习的研究,而这样的情况在这两年出现了新的变化:在2018年计算机视觉国际... 阅读详情

相关推荐

如何从零开始系统化学习视觉SLAM?

由于显示格式问题,建议阅读原文:如何从零开始系统化学习视觉SLAM? 什么是SLAM? SLAM是 Simultaneous Localization And Mapping的 英文首字母组合,一般翻译为:同时定位与建图、同时定位与地图构建。虽然听起来比较拗口,但SLAM却是三维视觉的核心技术,广泛应用于AR、自动驾驶、智能机器人、无人机等前沿热门领域。可以说凡是具有一定行动能力的智能体都拥有某...

计算机视觉life 2626

为什么相机模型假设成像平面位于焦平面?

为什么相机模型假设成像平面位于焦平面? 相机模型遵循透镜成像,如下图所示: 其中 fff 是焦距,ziz_izi​ 表示像距,zoz_ozo​ 表示物距。有如下公式: 1zi=1f−1zo \frac{1}{z_i} = \frac{1}{f} - \frac{1}{z_o}zi​1​=f1​−zo​1​ 真实场景中物距 zoz_ozo​ 往往很大(远大于焦距 fff),因此有 1zi≈1f\frac{1}{z_i} \approx \frac{1}{f}zi​1​≈f1​,即 zi≈fz_i \appr

qq_37099774的博客 1470

综述 | 相机标定方法

本文作者蔡量力,公众号:计算机视觉life成员,由于格式原因,公式显示可能出问题,建议阅读原文链接:综述 | 相机标定方法另外推荐几个原创的号 计算机视觉,Python,自然语言处理、数据挖掘相关,汇总最新资源,学习更高效! ​ 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机...

计算机视觉life 5128

知识星球《SLAM从零开始学习》课时1——课时8 读书笔记

文章目录课时一: 总体谋划课时二: 学习SLAM到底需要学哪些?课时三 : SLAM的使用场景课时四:C++新特性课时五:使用齐次坐标课时六: 三维空间刚体的旋转课时七:为啥需要李群与李代数?背景:SO(n) 与 SE(n)背景:群和李群李群和李代数课时八:相机成像模型针孔相机成像原理相机畸变 课时一: 总体谋划 如果我们想要了解一个领域,最好的方法就是先看该领域比较著名的综述论文,先从宏观上把握该领域的整体面貌。 1、请列举几篇最近几年SLAM领域经典的综述论文。 2、阅读综述,并列举至少

shuttworth的博客 1385

从零开始一起学习SLAM | 你好,点云

本文提纲 先热热身 点云是啥 你知道点云优缺点吗? 点云库PCL:开发者的福音 PCL安装指北 炒鸡简单的PCL实践 留个作业再走 先热热身 小白:hi,师兄,好久不见 师兄:师妹好,上周单应矩阵作业做了吗? 小白:嗯,做了,这个单应矩阵真的挺有意思的。作业之外,我发现了一个新技能。。。 师兄:什么技能? 小白:我发现很多网上流传的图片都可以用上次我学过的单应矩阵实现,你看这张图,我第一次看到还以...

计算机视觉life 4195

【从零开始学习SLAM】像素坐标系、图像坐标系 、相机归一化坐标系、相机坐标系、世界坐标系

根据三角形相似原理得出下面的公式:Zf\frac{Z}{f}fZ​ = XX′\frac{X}{X'}X′X​ = YY′\frac{Y}{Y'}Y′Y​整理一下得到成像平面点和现实世界空间点之间的关系:X′X'X′ = f∗XZf*\frac{X}{Z}f∗ZX​ Y′Y'Y′ = f∗YZf*\frac{Y}{Z}f∗ZY​假设P′P'P′的像素坐标为:[u,v]T[u, v]^T[u,v]T像素坐标系通常的定义方式是:原点o′o'o′位于图像的左上角, uuu轴向右与xxx轴平行, vvv轴向下与yy

小秋 AI SLAM 入门实战教程 3799

基于NE555的触摸延时开关电路设计与实现

本文详细介绍了基于NE555芯片的触摸延时开关电路设计与实现方法。通过分析NE555的单稳态工作模式,结合定时电阻、电解电容等关键元件选型,提供了一套完整的电路搭建方案。文章还包含抗干扰设计、调试技巧及常见故障处理,帮助电子爱好者快速掌握触摸延时灯的制作要点。

weixin_29268267的博客 788

足球赛事数据API:开发者生存指南(附真实踩坑记录)

作为一个既爱看球又爱写代码的老宅男,我这些年用过的足球API比看过的比赛还多。从最初被各种API文档折磨到怀疑人生,到现在能闭着眼睛调接口,中间的血泪史够写本书了。今天就把这些经验(和教训)分享给各位同好,特别是那些正在为"老板要做个足球App"而秃头的同行们。文档清晰免费层可用响应格式规范API-Sports免费额度大方支持GraphQL有中文文档(难得!Sportmonks数据全面有Webhook支持按需付费。

Happy0970的博客 2189

Latex下使用JabRef添加参考文献

文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 Latex可以手动添加参考文献,但文献过多时,使用JabRef软件相对方便。 提示:以下是本篇文章正文内容,下面案例可供参考 一、JabRef安装 网址:http://www.jabref.org 打开网址后,点击“Download” 进入如下页面后,选择 portable (便携版,无需安装),下载后是一压缩包,打开即可使用。 二、使用 1.创建库 ...

sz3076799的博客 3465

超级详细的H3C模拟器HCL的交换机Telnet服务配置过程(图文)

VC++2017 MFC关于一个电话机房配线架进线出线节点数据库管理的程序 机房数据库原来是一个EXCEL表,查询,输入数据不方便。现用access数据库ODBC访问。平常没编过程序,编个程序练练手。记录一下学习中的问题,和解决方法,供大家分享,讨论,以便共同进步。希望多提宝贵意见,携手提高代码水平。 程序写的很不规范,代码冗余,显得程序臃肿,代码重用性差。发表这篇博客的目的也是为了改进这个程序。CListCtrl 单元格可以编辑,有Combo Box下拉列表功能。使用PreTranslateMe

techcai的博客 1万+

同济大学C++mooc第五、六讲参考答案

同济大学C++moooc第5、6讲 第五讲 第一题 随机产生10个30~100(包括30,100)的正整数,求它们的最大值、最小值、平均值,并显示整个数组的值和结果。 代码片. // #include<iostream> const int n = 10; using namespace std; int main() { int s[n],i,j,t,sum=0; for (i = 0; i < n; i++)

cjzui6666的博客 1万+

保姆级教程:在RK3588开发板上配置USB-C PD充电(基于HUSB311芯片与DTS详解)

本文详细介绍了在RK3588开发板上配置USB-C PD充电的完整流程,重点解析了HUSB311芯片的硬件原理与DTS安全配置。通过实战案例和调试技巧,帮助开发者避免常见错误,实现稳定可靠的Type-C PD快充功能,适用于从基础开发板到工业设备的多场景需求。

weixin_42552315的博客 520

基于FPGA的数字信号处理(11)--定点数的舍入模式(2)向最临近值取整nearest

基于FPGA的数字信号处理(11)--定点数的舍入模式(2)向最临近值取整nearest

孤独的单刀 5472

单板电源设计(LDO、DC/DC)

高速电路设计的电源架构 在电路设计中,一块单板往往涉及多种电源,常见的如5V/3.3V/2.5V/1.8V/1.5V/1.2V/1V0.9V/0.75V等,如此多种类的电源不可能都直接通过背板从电源板获得。一般,单板仅有一种或者两种输入电源,如48V或12V,再由它们产生单板上器件所需要的电源。 单板如何由输入电源生成所需电源,常见有两种架构:集中式电源架构和分布式电源架构。 ...

sinat_15677011的博客 8325

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 从零开始一起学习SLAM | 为啥需要李群与李代数?
下一篇: 从零开始一起学习SLAM | 不推公式,如何真正理解对极约束?
计算机视觉life
博客等级 码龄12年 4344粉丝 209原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值