双目、结构光、tof,三种深度相机的原理区别看这一篇就够了!

news2024/11/13 18:22:59

编辑:OAK中国
首发:oakchina.cn
喜欢的话,请多多👍⭐️✍
内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。

▌前言

Hello,大家好,这里是OAK中国,我是助手君。

最近刷知乎看到这样一个问题👇
在这里插入图片描述
碰巧B站也有朋友在问这种类似的问题,我寻思刚开始接触深度相机的朋友们应该都会有这种疑问,所以我整理了一下这个内容。大家也可以去知乎看我的回答,别忘了三连哦~

▌什么是深度相机

深度相机也被称为3D相机,它和普通2D相机的区别在于可以获取物体到相机的距离信息,加之2D平面的X,Y坐标,可计算出每个点的三维坐标,以此我们可推断深度相机的应用,如三维重建、目标定位、导航避障等。
效果参考这个视频 :

OAK相机室内室外测试 深度+物体识别+三维坐标

目前常见的深度相机,他们用的技术可以分为三类:

  • 双目
  • 结构光
  • ToF

▌一、双目

0.基本原理

通过左右两个摄像头同时拍摄同一物体,然后利用计算机算法计算两个摄像头之间的视差,从而得出物体的深度信息。
在这里插入图片描述
图片来源

视差是指两个摄像头拍摄同一物体时,物体在两个图像中的位置差异。计算机通过测量这个差异来确定物体离相机的距离。视差类似人的双眼,你单独睁开左、右眼,与同时睁开双眼观看物体的位置、远近是不一样的。

双目相机不主动对外发射光源,因此称为被动深度相机。

在这里插入图片描述

1.优点

不需要结构光、TOF的发射器和接收器,因此结构简单硬件成本低,适合成本敏感的应用场景。因为依靠自然光,可在室内外使用。

2.缺点

强光、暗光影响较大,因为依赖于自然光。对无纹理的物体或表面影响较大,如纯色墙,因双目相机依据视觉特征进行图像匹配,单一问题会引起匹配失效。

在这里插入图片描述

3.应用场景

包括机器人导航、人脸识别、手势识别等。参考OAK相机的部分应用场景:

使用OAK-D进行无人机导航和SLAM,自主仓库检查。

OAK-D-Lite室内自主导航机器人

扔掉你的鼠标,游戏手柄、电视遥控器吧,用AI和深度视觉来识别肢体语言,控制现实世界的物体。

▌二、结构光

0.基本原理

主要硬件有投射仪、相机,通过投射仪主动发射(因此称为主动测量)一束光源(通常是红外线激光)来照亮物体表面,并通过相机镜头来捕捉反射回来的光线。
在这里插入图片描述
OAK-D-Pro相机

在这个过程中,光线经过一个光学元件(例如衍射光栅或投射仪),以形成一个结构化的光斑(例如条纹或格子)。
在这里插入图片描述

当这个结构化光斑照射到物体表面时,它会产生形变,导致反射回相机的光斑也发生了畸变。通过分析这种畸变的形状和大小,深度相机可以计算出物体表面上每个像素点的深度信息,从而生成一张深度图。

在这里插入图片描述

1.优点

近距离(1米内)精度较高,毫米级。测量范围广、对光线和颜色的敏感度低等。主动投影,适合弱光照使用。

2.缺点

测量距离和分辨率存在一定的局限性。远距离精度差,随着距离的拉长,精度也随之变差。对环境光的干扰较大,室外强光照不宜使用,强光容易干扰投影光。

3.应用场景

包括3D扫描、机器视觉、机器人导航等。参考OAK相机的部分应用场景:

【开源OAK-D与TurtleBot3机器人项目】OAK-D点云和里程计

【开源】智能农业机器人BenchBot,可识别杂草,计算单位作物量。

▌三、ToF

0.基本原理

相机通过发送一束光到目标物体上,这个光的波长通常为红外线。当这束光被目标物体反射回来时,相机的光电二极管(PD)阵列接收反射光,并测量光的时间飞行(ToF)。基于ToF的测量技术可以计算光从相机到物体然后返回相机的时间,从而确定物体的距离。
在这里插入图片描述

因其主动发射脉冲光,也属于主动测量方式。
在这里插入图片描述

1.优点

因为是依靠投射自身光线的技术,所以它不需要任何外部光源来扫描周围环境,即使在光线很少或没有光线的情况下也能正常工作。TOF的测量距离较远,不受表面灰度和特征影响,达百米,可用于无人驾驶
深度距离计算,不会随距离的变化而变化,稳定在厘米级
不像双目相机、结构光需要经过算法处理才能输出三维数据,TOF可以直接输出被测物体三维数据

2.缺点

对环境的光强和干扰比较敏感,室外强光照基本不能使用。由于基于飞行时间的技术依赖于发射和接收自身光的反向反射,因此在自然环境中(例如暴露在阳光下)它们可能表现不佳,这是因为其他光源发出的波会干扰相机设备发出的光。类似地,还有其他因素使ToF传感器更难正常工作,如“反光”表面(在不同方向反射光)或角落(产生多次反射)等。

3.应用场景

客流统计、无人零售、虚拟现实、机器人导航等领域。参考OAK相机的部分应用场景:

将OAK相机装在机械臂上,实现3D目标检测定位,准确识别抓取物体!

【开源】OAK自动叉车项目,检测准确度更高。

▌四、总结

类别双目结构光ToF
软件复杂度中等
成本
精度
低光下性能
测距方式被动式主动式主动式
户外强光下工作无影响有影响有影响

▌五、特别说明

罗列的部分应用场景视频来自我们的用户,项目实际所用相机可能不是属于结构光或tof类的深度相机,但因为我们的产品具有兼容性,所以同一项目用不同种类的OAK相机均可正常使用!

都看这里了,至少点个赞已阅啊!

在这里插入图片描述

▌参考资料

https://docs.oakchina.cn/projects/api/tutorials/configuring-stereo-depth.html
https://www.oakchina.cn/2022/02/07/robotic-drones-avoidance/
https://www.cnblogs.com/hansjorn/p/15593170.html
https://picture.iczhiku.com/weixin/message1595412592554.html
https://cloud.tencent.com/developer/article/2104734


OAK中国
| OpenCV AI Kit在中国区的官方代理商和技术服务商
| 追踪AI技术和产品新动态

戳「+关注」获取最新资讯↗↗

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

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

相关文章

win10屏幕录像哪个好用?这2款录屏软件值得推荐!

案例:win10电脑如何录屏? 【我使用的电脑是win10系统,我想对它进行屏幕录制。有没有小伙伴知道win10电脑如何录屏?win10录屏软件哪款比较好用?】 在如今互联网时代,屏幕录像是一项非常实用的功能&#xf…

【大数据之Hadoop】三十二、MapReduce生产经验

1 MapReduce跑的慢的原因 MapReduce程序效率的瓶颈在于两点: 1)计算机性能:CPU、内存、磁盘、网络 2)I/O操作优化 (1)数据倾斜 (2)Map运行时间太长,导致Reduce等待过久 …

高斯-约旦消元法

1,思想 该算法基于高斯消元,但是思想是把矩阵化为对角阵,从而避免回代的操作思路是一列一列处理,每次选为处理过的行中主元最大(极大避免精度损失)的行处理。把这一列除了主元这一行的元素,其余该列的其他…

c#笔记-委托

委托 委托是方法的类型。 有了类型就可以声明方法的变量,参数,字段。然后再调用他。 很多新人很困惑,为什么要把方法做成变量,不直接去调用它呢? 这是因为在目前你的认知里,代码都是你一个人写出来的。 如…

计算机图形学-GAMES101-5

一、观测变换 通过Viewing(观测)transformation,最终我们将世界坐标系中的物体投影到了一个xyz都处于【-1,1】的立方体中。那么接下来,我们该做什么? 二、光栅化(Rasterization) (1)透视投影的定义 定义透视投影的视…

〖大学生·技术人必学的职业规划白宝书 - 职业规划篇①〗- 大学生选择职业前的自我认知与剖析

历时18个月,采访 850 得到的需求。 不管你是在校大学生、研究生、还是在职的小伙伴,该专栏有你想要的职业规划、简历、面试的答案。说明:该文属于 大学生技术人职业规划白宝书 专栏,购买任意白宝书体系化专栏可加入TFS-CLUB 私域社…

linux之线程同步

1. 互斥锁 定义锁: pthread_mutex_t 初始化锁函数: int pthread_mutex_init(pthread_mutex_t* mutex,pthread_mutexattr_t* attr); 第一个参数是定义的互斥锁的地址,第二个参数是锁的属性,一般传NULL 互斥锁的属性在创建…

(C语言版)力扣(LeetCode)+牛客网(nowcoder)二叉树基础oj练习

二叉树基础oj练习 965. 单值二叉树题目解法 100. 相同的树题目解法 101. 对称二叉树题目解法 144. 二叉树的前序遍历题目解法 94. 二叉树的中序遍历题目解法 145. 二叉树的后序遍历题目解法 572. 另一棵树的子树题目解法 KY11 二叉树遍历题目解法 结语 965. 单值二叉树 题目 …

Linux安装MongoDB数据库并内网穿透在外远程访问

文章目录 前言1.配置Mongodb源2.安装MongoDB数据库3.局域网连接测试4.安装cpolar内网穿透5.配置公网访问地址6.公网远程连接7.固定连接公网地址8.使用固定公网地址连接 转发自CSDN cpolarlisa的文章:Linux服务器安装部署MongoDB数据库 - 无公网IP远程连接「内网穿透…

LeetCode572. 另一棵树的子树LeetCode

572. 另一棵树的子树 描述示例解题思路以及代码 描述 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节…

数据库|SQL调优案例之TiFlash帮倒忙该怎么办?

一、背景 早上收到某系统的告警tidb节点挂掉无法访问,情况十万火急。登录中控机查了一下display信息,4个TiDB、Prometheus、Grafana全挂了,某台机器hang死无法连接,经过快速重启后集群恢复,经排查后是昨天上线的某个S…

Flink消费pubsub问题

我看网上flink消费pubsub的资料并不多,最近跑通了,大家有问题的可以给我留言。 一、基本资料 1.flink官网接入方式 Google Cloud PubSub | Apache Flink StreamExecutionEnvironment streamExecEnv StreamExecutionEnvironment.getExecutionEnviron…

Android平台如何实现外部编码后(H.264/H.265)数据实时预览播放

技术背景 我们在对接开发者的时候,遇到这样的诉求:除了正常的RTMP、RTSP直播播放外,有些硬件设备输出编码后(H.264/H.265)的数据,比如无人机或类似硬件产品,回调出来的H.264/H.265数据&#xf…

C#中的委托是什么

https://www.cnblogs.com/deepalley/p/12150931.html 1.什么是委托?(方法作另一个方法的参数) delegate void MyDel(int value); //声明委托类型 和类一样,委托是用户自定义的类型,但是类是数据和方法的集合&#…

vue实现功能完整的购物商城,商品零食、电商通用商城

目录 一、项目结构 1.项目截图 2.项目简介 3.项目布局 二、首页 1.效果图 2.源码 三、商品详情 1.效果图 2.源码 四、分类 1.效果图 五、购物车、提交订单 1.效果图 六、个人中心 1.源码结构 2、效果图 七、总结 一、项目结构 1.项目截图 2.项目简介 项目基于vue…

海睿思分享 | 一文读懂企业数据资产目录建设的重要性

小王是某公司信息化部门负责人。 某天,公司领导需要获取近三年来生产部门的人员信息全面数据,小王费了九牛二虎之力,召开了各种会议,在各个系统里来回找数据,最终找到了这些数据。然而领导所需的人员职称、人员获奖信…

UOS服务器系统配置bond

一、Bond介绍 bond可以将多个网卡绑定到一起,可以让两个或多个接口作为一个接口,同时提高带宽,并提供网络链路的冗余,当有其中一块网卡故障的时候,不会中断服务器的业务。 二、Bond模式 1、mode0(balanc…

老杨说运维 | 运维数智化转型正确打开方式是什么?他这样说

2023年5月9日,中国计算机用户协会信息科技审计分会会员大会暨金融科技风险管理与审计论坛成功于北京召开。擎创科技CEO杨辰受邀与会,并分享了在数智运维发展过程中对企业数智化转型建设的规划思考以及相关实践经验。 同时,年会上举行了“金融…

《基础知识》提示学习的基本知识

《基础知识》提示学习的基本知识 提示学习背景提示的形式和元素提示学习的输入形式提示学习的重要元素提示学习的输入形式举例基本提示任务提示学习 内容参考:打工人转型之道(二):提示工程(Prompt Engineering)进阶篇

【服务器】利用树莓派搭建 web 服务器【无需公网IP】

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 概述 使用 Raspberry Pi Imager 安装 Raspberry Pi OS 设置 Apache Web 服务器 测试 web 站点 安装静态样例站点 将web站点发布到公网 安装 Cpolar内网穿透 cpolar进行tok…