当前位置: 首页 > news >正文

视觉SLAM14精讲——相机与图像3.1

视觉SLAM14精讲

  1. 三维空间刚体运动1.0
  2. 三维空间刚体运动1.1
  3. 三维空间刚体运动1.2
  4. 李群与李代数2.1
  5. 相机与图像3.1

视觉SLAM14精讲——相机与图像3.1

  • 视觉SLAM14精讲
      • 简介
      • 相机模型
        • 内参K

简介

相机是VSLAM中的核心传感器。本章知识点内容涉及到相机相关的知识以及3D计算视觉的一些基础内容。技术栈涉及到相机内外参的标定,投影,以及三维重建。

相机模型

内参K

K = [ f x 0 c x 0 f y c y 0 0 1 ] \begin{equation} K = \left[\begin{array}{ccc} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0& 0& 1\end{array} \right] \end{equation} K= fx000fy0cxcy1

在忽略畸变的情况下,相机平面中的点,需要转换成列向量,乘以内参的逆 K − 1 K^{-1} K1, 就可以将其转换为空间坐标。但要注意,此时的空间坐标是以 z z z坐标进行归一化了的。同样的,空间中的点,对 z z z轴归一化以后,乘以内参 K K K就可以转换到图像空间。

P 3 D = K − 1 Z u , v P 2 D = K − 1 Z u , v ( u v 1.0 ) P 2 D = K 1 z P 3 D = K 1 z ( x y z ) \begin{align} P_{3D} &= K^{-1} Z_{u, v} P_{2D} = K^{-1} Z_{u, v} \left( \begin{array}{ccc} u \\ v \\ 1.0 \end{array} \right)\\ P_{2D} &= K \frac{1}{z }P_{3D} = K \frac{1}{z }\left( \begin{array}{ccc} x \\ y \\ z \end{array} \right)\\ \end{align} P3DP2D=K1Zu,vP2D=K1Zu,v uv1.0 =Kz1P3D=Kz1 xyz

  • 三维点投影二维点,只需要坐标本身和内参即可计算获得。因此,式(2)中的 z z z值就是三维坐标中的 z z z分量。
  • 相反的是,二维点不包含尺度因子,因此在恢复三维点的时候,需要额外的尺度因子作为补充。这里的尺度因子,就是常提到的深度 。式(1)中的 Z u , v Z_{u, v} Zu,v是坐标 u , v u, v u,v处所对应的深度信息。

式(1,2)反映只考虑一个这样的点进行内参计算的操作。意味着这样的操作需要重复 w × h w\times h w×h次。每个像素对应的深度值不同,才能够恢复出物体的结构。如若全部采用同一个深度值,则投影物体会变成一个“纸片”。或者干脆忽略深度因子,所重建的物体会在一米处形成一个“纸片”。

  • 需要乘以深度信息揭示,内参矩阵中的焦距参数 f x , f y f_x, f_y fx,fy的单位并不是网上所谓的 p i x e l m m \frac{pixel}{mm} mmpixel或者其他带有实际物理距离的转换量纲,而是归一化的单位 p i x e l 1.0 \frac{pixel}{1.0} 1.0pixel

  • 此处的中心点坐标 c x , c y c_x, c_y cx,cy,是张正友标定法确定的投影中心坐标。如果单纯是图像中心坐标其实是不需要计算的。因此不能够简单用图像中心坐标当作内参的中心坐标。以上提到的所有参数,包括畸变参数,都随着相机芯片和固定了的镜头所确定。镜头动、芯片换,内参就需要重新进行标定。同一个内参,即便是同款相机也不能混用,必须做到一机一内参。相机镜头被意外触动,理论上必须重新进行内参标定。

  • 还有一种情况。在相机的日常使用过程中,还会遇到的一种情况是改变相机分辨率。可能下意识会觉得需要重新标定内参K。其实这时候内参只需要和图像保持同样的缩放比即可, 但是 K [ 3 , 3 ] K[3,3] K[3,3]仍要保持等于1。

img2x = cv2.resize(img, (0,0), fx=2, fy=2)
K = K * 2
K[2, 2] = 1img0_5x = cv2.resize(img, (0,0), fx=0.5, fy=0.5)
K = K * 0.5
K[2, 2] = 1
  • 另一些情况下,我们希望在即便矫正以后,图像仍能够保持相同的内参K参数,需要在opencv矫正畸变接口中,设定输出的内参参数,一般与矫正畸变前保持一致。
cv2.undistort(img, camera_matrix, K, K) #K.保持一致
cv2.initUndistortRectifyMap(K, D, R, K, (w,h), mapx, mapy) #K保持一致

相关文章:

视觉SLAM14精讲——相机与图像3.1

视觉SLAM14精讲 三维空间刚体运动1.0三维空间刚体运动1.1三维空间刚体运动1.2李群与李代数2.1相机与图像3.1 视觉SLAM14精讲——相机与图像3.1 视觉SLAM14精讲简介相机模型内参K 简介 相机是VSLAM中的核心传感器。本章知识点内容涉及到相机相关的知识以及3D计算视觉的一些基础…...

ARM功耗管理框架之SCP

安全之安全(security)博客目录导读 目录 一、功耗管理框架中的SCP 二、SCP的示例 三、SCP固件 四、SCP启动流程 五、SCP的memory map 六、SCP与AP的通信 思考:功耗管理框架?SCP?PPU?LPI?之间的关系&#xff1f…...

uni-app学习--基础组件使用、页面生命周期、本地存储、网络请求、条件编译、路由跳转

文章目录 1. 基本组件的使用1. text文本组件的使用2. view视图容器组件的使用3. button按钮组件的使用4. image组件的使用5. map组件 2. uni-app中的样式1. uni-app:px2rpx计算 3. uni-app的数据绑定1. 基本的数据绑定2. v-bind,v-for,v-on 4. uni-app的生命周期1. …...

Cweek4+5

C语言学习 十.指针详解 6.有关函数指针的代码 代码1:(*(void (*)())0)(); void(*)()是函数指针类型,0是一个函数的地址 (void(*)())是强制转换 总的是调用0地址处的函数,传入参数为空 代码2:void (*signal(int, void(*)(int))…...

Segment Anything CSharp| 在 C# 中通过 OpenVINO™ 部署 SAM 模型实现万物分割

​ OpenVINO™ C# API 是一个 OpenVINO™ 的 .Net wrapper,应用最新的 OpenVINO™ 库开发,通过 OpenVINO™ C API 实现 .Net 对 OpenVINO™ Runtime 调用.Segment Anything Model(SAM)是一个基于Transformer的深度学习模型&#x…...

企业应如何选择安全合规的内外网文件摆渡系统?

网络隔离是一种安全措施,旨在将网络划分为不同的部分,以减少安全风险并保护敏感信息。常见的隔离方式像物理隔离、逻辑隔离、防火墙隔离、虚拟隔离、DMZ区隔离等,将网络隔离成内网和外网。内外网文件摆渡通常指在内部网络(内网&am…...

一分钟有60秒,这个有趣的原因你知道吗?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

二叉树最大宽度

文章目录 前言二叉树最大宽度1.题目解析2.算法原理3.代码编写 总结 前言 二叉树最大宽度 1.题目解析 给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每一层的 宽度 被定义为该层最左和最右的非空节点(即…...

React@16.x(24)自定义HOOK

目录 1,介绍2,简单举例2.1,获取数据1.2,计时器 2,自定义 HOOK 相比类组件 1,介绍 将一些常用的,跨组件的函数抽离,做成公共函数也就是 HOOK。自定义HOOK需要按照HOOK的规则来实现&a…...

群体优化算法----树蛙优化算法介绍以及应用于资源分配示例

介绍 树蛙优化算法(Tree Frog Optimization Algorithm, TFO)是一种基于群体智能的优化算法,模拟了树蛙在自然环境中的跳跃和觅食行为。该算法通过模拟树蛙在树枝间的跳跃来寻找最优解,属于近年来发展起来的自然启发式算法的一种 …...

常见汇编指令

下面是一些包含汇编指令 MOV、PUSH、POP、LEA、LDS、ADD、ADC、INC、SUB、SBB、DEC、CMP、MUL、DIV、AND、OR、XOR、NOT、TEST、SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR、LODS、MOVS 的例题。这些例题展示了每条指令的用法及其作用。 1. MOV 指令 MOV AX, BX ; 将寄存器 B…...

Mysql学习(七)——约束

文章目录 四、约束4.1 概述4.2 约束演示4.3 外键约束 总结 四、约束 4.1 概述 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性。分类: 4.2 约束演示 根据需求&…...

Redis实战篇02

1.分布式锁Redisson 简单介绍: 使用setnx可能会出现的极端问题: Redisson的简介: 简单的使用: 业务代码的改造: private void handleVoucherOrder(VoucherOrder voucherOrder) {Long userId voucherOrder.getUserI…...

怎么用PHP语言实现远程控制两路照明开关

怎么用PHP语言实现远程控制两路开关呢? 本文描述了使用PHP语言调用HTTP接口,实现控制两路开关,两路开关可控制两路照明、排风扇等电器。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备名称厂商1智能WiFi墙…...

Docker面试整理-什么是多阶段构建?它的好处是什么?

多阶段构建是 Docker 在 Dockerfile 中引入的一个功能,允许你在单个 Dockerfile 中使用多个构建阶段,但最终只生成一个轻量级的镜像。这是通过在一个 Dockerfile 中定义多个 FROM 指令来实现的,每个 FROM 指令都可以使用不同的基础镜像,并开始一个新的构建阶段。 多阶段构建…...

ENSP校园网设计实验

前言 哈喽,我是ICT大龙。本次更新了使用ENSP仿真软件设计校园网实验。时间比较着急,可能会有错误,欢迎大家指出。 获取本次工程文件方式在文章结束部分。 拓扑设计 拓扑介绍---A校区 如图,XYZ大学校园网设计分为3部分&#xff0…...

【Spring框架全系列】SpringBoot_3种配置文件_yml语法_多环境开发配置_配置文件分类(详细)

文章目录 1.三种配置文件2. yaml语法2.1 yaml语法规则2.2 yaml数组数据2.3 yaml数据读取 3. 多环境开发配置3.1 多环境启动配置3.2 多环境启动命令格式3.3 多环境开发控制 4. 配置文件分类 1.三种配置文件 问题导入 框架常见的配置文件有哪几种形式? 比如&#xf…...

华为坤灵路由器初始化的几个坑,含NAT配置

1、aaa密码复杂度修改&#xff1a; #使能设备对密码进行四选三复杂度检查功能。 <HUAWEI>system-view [HUAWEI]aaa [HUAWEI-aaa]local-aaa-user password policy administrator [HUAWEI-aaa-lupp-admin]password complexity three-of-kinds 2、本地用户名长度必须大…...

【RAG入门教程04】Langchian的文档切分

在 Langchain 中&#xff0c;文档转换器是一种在将文档提供给其他 Langchain 组件之前对其进行处理的工具。通过清理、处理和转换文档&#xff0c;这些工具可确保 LLM 和其他 Langchain 组件以优化其性能的格式接收数据。 上一章我们了解了文档加载器&#xff0c;加载完文档之…...

请求 响应

在web的前后端分离开发过程中&#xff0c;前端发送请求给后端&#xff0c;后端接收请求&#xff0c;响应数据给前端 请求 前端发送数据进行请求 简单参数 原始方式 在原始的web程序中&#xff0c;获取请求参数&#xff0c;需要通过HttpServletRequest 对象手动获取。 代码…...

【深度解析】从 Mythos 到 DeepSeek 降价:大模型工程化选型、成本控制与 API 实战

摘要 近期 AI 大模型市场持续加速迭代&#xff1a;Anthropic Mythos 进入部署测试信号增强&#xff0c;OpenAI、Gemini 系列持续升级&#xff0c;DeepSeek 则通过永久降价重塑开发成本结构。本文从工程视角解析模型发布信号、Agentic 系统成本模型&#xff0c;并给出 OpenAI 兼…...

深度解析2026年高性能RTP导电塑料:十大创新应用与选购指南

在制造业转型升级的关键节点&#xff0c;导电塑料作为高端新材料正面临“性能门槛不断提升”与“供应链稳定性难以兼得”的价值悖论。行业数据显示&#xff0c;2025年高端导电塑料需求增长率达22%&#xff0c;但超过65%的企业在选型过程中因技术参数复杂、供应商服务缺失而导致…...

HexStrike AI v6.0:面向红队实战的多智能体渗透框架

1. 这不是又一个“AI安全”的概念玩具&#xff0c;而是一套能真正进红队作战包的智能体渗透框架我第一次在内部红队演练中把 HexStrike AI v6.0 推进真实靶场时&#xff0c;没敢直接叫它“AI渗透工具”——怕被老队员当场笑出声。毕竟过去三年里&#xff0c;我亲手试过七套标榜…...

利用Taotoken实现多模型备选方案以提升业务连续性

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 利用Taotoken实现多模型备选方案以提升业务连续性 在中大型企业将AI能力集成到关键业务流程时&#xff0c;服务的连续性与稳定性是…...

医疗AI模型窃取攻击:原理、风险与超声影像场景的防御实践

1. 项目概述&#xff1a;当医疗AI的“大脑”面临被“复制”的风险在医疗影像领域&#xff0c;尤其是超声诊断&#xff0c;深度学习模型正以前所未有的速度改变着临床实践。它能从看似杂乱的超声回波信号中&#xff0c;精准地量化肝脏脂肪含量、鉴别乳腺肿物的良恶性&#xff0c…...

93、【Agent】【OpenCode】edit 工具提示词(二)

【声明】本博客所有内容均为个人业余时间创作&#xff0c;所述技术案例均来自公开开源项目&#xff08;如Github&#xff0c;Apache基金会&#xff09;&#xff0c;不涉及任何企业机密或未公开技术&#xff0c;如有侵权请联系删除 背景 上篇 blog 【Agent】【OpenCode】edit 工…...

解锁硬件潜能:3步让你的电脑性能飙升50%

解锁硬件潜能&#xff1a;3步让你的电脑性能飙升50% 【免费下载链接】Universal-x86-Tuning-Utility Unlock the full potential of your Intel/AMD based device. 项目地址: https://gitcode.com/gh_mirrors/un/Universal-x86-Tuning-Utility 你是否曾经有过这样的经历…...

2026照片去水印免费软件app详细教程:保姆级指南,一看就会

你是不是也遇到过这些尴尬时刻——辛辛苦苦刷到一张绝美壁纸&#xff0c;保存下来却发现右下角赫然挂着平台水印&#xff0c;当头像嫌脏、做素材嫌low&#xff1b;想从自己发的抖音视频里截一张封面图&#xff0c;结果水印刚好糊在脸上&#xff1b;又或者&#xff0c;老板甩过来…...

为 OpenClaw 智能体工作流配置 Taotoken 作为统一模型后端

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为 OpenClaw 智能体工作流配置 Taotoken 作为统一模型后端 在构建基于 OpenClaw 框架的智能体工作流时&#xff0c;一个常见的工程…...

工程采购避坑指南:如何挑选靠谱的防火门厂家?从资质到验收全解析

在消防工程采购中&#xff0c;防火门属于强制性消防产品&#xff0c;必须符合国标GB 12955最新标准。市面上厂家众多&#xff0c;价格差距大&#xff0c;很多中间商、小作坊产品看似便宜&#xff0c;实则无法通过消防验收&#xff0c;给工程项目带来巨大风险。&#x1f449; 点…...