单目相机、双目相机和RGB-D相机学习笔记(一些视频和博文网址)

news2024/10/2 10:24:10

目录

  • 1. 单目相机
    • 1.1 摄像头原理
    • 1.2 单目相机的标定
  • 2 双目相机
    • 2.1 双目相机定位原理
    • 2.2 双目相机的缺陷
  • 3 RGB-D相机
    • 3.1 深度相机结构光原理
    • 3.2 RGB-D相机的应用

1. 单目相机

1.1 摄像头原理

视频网址:【全网最详细】摄像头原理分析(约25分钟课程)

在这里插入图片描述

要点: 小孔成像、凸透镜和焦距(相机清晰度及调焦)

1.2 单目相机的标定

视频网址:【单目相机如何标定】(约4分钟简约介绍)

其实就是用棋盘格纸求相机的内、外参矩阵,具体方法可自学张正友标定法

博文网址:相机标定之张正友标定法数学原理详解(含python源码) - 知乎

要点: 最好有数字图像处理专业课基础,这样博文读起来才比较容易理解。我是有相关基础,又接触了多年机器学习,现在回归头来再次阅读,便醍醐灌顶、茅塞顿开、认识有了新的提升。注意,第一次求出来的内、外参和畸变参数仅作为初始参数,还要像梯度下降法一样进行多次迭代优化才能得到近似最优解。

博文网址:SLAM入门之视觉里程计(6):相机标定 张正友经典标定法详解 - Brook_icv - 博客园

要点: 这部分基础非常重要,对后面学习RGB-D相机原理有巨大作用。

2 双目相机

2.1 双目相机定位原理

视频网址:【全网最详细】双目摄像头原理分析】(约5分钟课程)

博文网址:深度相机之双目成像

要点: 简单理解一下即可。以下图为例, P P P点在左边相机 C L C_L CL的成像点为 P L P_L PL,只要在右边相机上找到 P P P的对应匹配特征点,画一条线过去找交叉点即可确定 P P P点的3D位置。在 C R C_R CR上全图两两匹配比较耗时。注意,射线 C L P C_L P CLP上的点 P 3 P_3 P3 P 2 P_2 P2 P 1 P_1 P1 P P P在右边相机 C R C_R CR的成像点分别为红线上的4个点,利用该约束关系,不用全局两两匹配,可以直接在红线上进行两两匹配,大幅度减少了匹配范围。

在这里插入图片描述

2.2 双目相机的缺陷

双目相机进行定位需要先实现特征点匹配,这个过程比较困难。以上图为例,假如 P R P_R PR红线上的点长得很相似,那么 P L P_L PL有可能与红线上的其他点进行误匹配,从而造成定位误差。RGB-D相机通过结构光的空间调制或时间调制解决上述问题。

3 RGB-D相机

3.1 深度相机结构光原理

视频网址:【全网最详细】RGB-D相机原理分析(约21分钟课程)

要点: 这个视频讲的比较清楚,要反复来回看几遍进行理解。视频里有些用词不是很准确,例如“密码”。看完视频,要思考一个问题,如何对齐RGB图像和深度图像? 注意,先学好线性代数和数字图像处理基础知识 (^ _ ^)

博文地址:Kinect深度图与RGB摄像头的标定与配准

博文地址:Kinect学习(6)——深度图与彩色图配准(学习版2) - 简书

在这里插入图片描述

3.2 RGB-D相机的应用

应用有很多,例如:在RGB图像上用YOLOv4定位出目标物,然后对齐至深度图像上,实现3D定位。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/337927.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RPC框架设计的安全性考量

RPC里面该如何提升单机资源的利用率,你要记住的关键点就一个,那就是“异步化”。调用方利用异步化机制实现并行调用多个服务,以缩短整个调用时间;而服务提供方则可以利用异步化把业务逻辑放到自定义线程池里面去执行,以…

springboot 注解

上一篇:初识springboot接收参数常用注解RequestBody 常用于POST表单提交参数接收RequestMapping("/test") public String test(RequestBody String data){return data; }PathVariable 获取路径上的参数:/test/{id} RequestMapping("/test…

开源流程引擎Camunda

开源流程引擎Camunda 文章作者:智星 1.简介 Camunda是一个轻量级的商业流程开源平台,是一种基于Java的框架,持久层采用Mybatis,可以内嵌集成到Java应用、SpringBooot应用中,也可以独立运行,其支持BPMN&a…

ThingsBoard-规则引擎介绍

1、什么是规则引擎? 规则引擎是一个易于使用的框架,用于构建基于事件的工作流。有3个主要组成部分: 消息- 任何传入事件。它可以是来自设备的传入数据、设备生命周期事件、REST API 事件、RPC 请求等。规则节点- 对传入消息执行的功能。有许多不同的节点类型可以过滤、转换…

微信 API 中调用客服消息接口提示错误返回限制

错误的信息如下:errcode45015, errmsgresponse out of time limit or subscription is canceled rid: 5f8fd8b7-0f8aa1a9-4b6215a5微信的文档看着这微信不清不楚的文档:微信公众平台在这个文档界面中,有句话:这句话,我…

【信息学CSP-J近16年历年真题64题】真题练习与解析 第13题之标题统计

标题统计 描述 凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字符数时,空格和换行符不计算在内。 输入 输入文件只有一行,一个字符串 s。 输出 输出文件只有一行,包含一个整…

原型、原型链、__proto__与prototype的区别、继承

一.什么是原型与原型链 根据MDN官方解释: JavaScript 常被描述为一种基于原型的语言——每个对象拥有一个原型对象[[Prototype]] ,对象以其原型为模板、从原型继承方法和属性。原型对象也可能拥有原型,并从中继承方法和属性,一层一层、以此类…

Kafka第二章:生产者案例

系列文章目录 Kafka第一章:环境搭建 Kafka第二章:生产者案例 文章目录系列文章目录前言一、创建项目1.创建包2.添加依赖二、编写代码1.普通异步发送2.同步发送三.生产者发送消息的分区策略1.指定分区2.自定义分区总结前言 上次完成了Kafka的环境搭建&a…

RabbitMQ-Exchanges交换机

一、介绍 RabbitMQ消息传递模型的核心思想是:生产者生产的消息从不会直接发送到队列。实际上,通常生产者甚至不知道这些消息传递到了哪些队列中。相反,生产者只能将消息发送到交换机,交换机工作的内容非常简单,一方…

七、Java框架之MyBatisPlus

黑马课程 文章目录1. MyBatisPlus入门1.1 MyBatisPlus入门案例步骤1:创建spring boot工程步骤2:配置application.yml步骤3:创建数据库表(重点)步骤4:编写dao层步骤5:测试1.2 标准数据层开发标准…

CSDN每日一练:一维数组的最大子数组和

题目名称&#xff1a;一维数组的最大子数组和 时间限制&#xff1a;1000ms内存限制&#xff1a;256M 题目描述 下面是一个一维数组的 “最大子数组的和” 的动态规划的解法 # include <iostream> # include <stdio.h> # include <string.h>int MaxSum(int* a…

多传感器融合定位十五-多传感器时空标定(综述)

多传感器融合定位十五-多传感器时空标定1. 多传感器标定简介1.1 标定内容及方法1.2 讲解思路2. 内参标定2.1 雷达内参标定2.2 IMU内参标定2.3 编码器内参标定2.4 相机内参标定3. 外参标定3.1 雷达和相机外参标定3.2 多雷达外参标定3.3 手眼标定3.4 融合中标定3.5 总结4. 时间标…

基于live555源码的rtsp服务器

下载live555源码 http://www.live555.com/liveMedia/public/ 在Linux系统的自定义目录下输入&#xff0c;下载源码&#xff1a; wget http://www.live555.com/liveMedia/public/live.2023.01.19.tar.gz解压源码&#xff1a; tar -xvf live.2023.01.19.tar.gz当前目录下运行&…

前端卷算法系列(一)

前端卷算法系列&#xff08;一&#xff09; 两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同…

无重复字符的最长子串-力扣3-java

一、题目描述给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。示例 2:输入: s "bbbbb"输出: 1解释: 因为…

Springboot Web开发

文章目录一. 静态资源访问1. 配置静态资源访问前缀2. 修改默认静态资源存放目录3. Webjars4. 欢迎页支持5. 自定义Favicon二. 请求处理1. 路径变量2. 请求头处理3. 查询字符串处理4. 获取Cookie的值5. 获取请求体的值6. 获取请求域中的数据7. 矩阵变量一. 静态资源访问 只要静…

ChatGPT全球爆火,究竟有何特别之处?

​ 新年复工不过半月&#xff0c;职场人似乎就受到了来自AI的“威胁”&#xff0c;关于人工智能聊天系统ChatGPT的热搜频频上榜。 ChatGPT不仅拟人&#xff0c;更类人&#xff0c;甚至被认为是职场人的“敌人”。 那么&#xff0c;ChatGPT能替代哪些职业&#xff1f; 它自己的回…

STP协议基础

STP协议技术来源二层环路及危害二层交换机网络的冗余性与环路人为错误导致的二层环路二层环路带来的问题STP生成树协议STP概述STP基本概念桥ID根桥COSTRPC&#xff08;Root Path Cost&#xff09;根路径开销PORT ID端口IDBPDU桥协议数据单元STP的计算过程&#xff08;1&#xf…

VS中安装gismo库

文章目录前言一、下载安装paraview直接下载压缩包安装就可以了解压后按步骤安装即可二、gismo库的安装gismo库网址第一种方法&#xff1a;第二种方法第三种方法&#xff1a;用Cmake软件直接安装首先下载cmake软件[网址](https://cmake.org/download/)安装gismo库三、gismo库的使…

ChatGPT闭包解答

怎么理解javaScript闭包 JavaScript 闭包是一种特殊的对象&#xff0c;它包含了函数及其相关作用域中的变量。它允许函数访问并保存其外部作用域中的变量&#xff0c;即使该函数已经离开了其作用域。 闭包的一个常见应用场景是封装私有变量。例如&#xff0c;在一个对象的方法内…