一文详解深度相机之TOF成像[通俗易懂]

一文详解深度相机之TOF成像[通俗易懂]点击上方“计算机视觉工坊”,选择“星标”干货第一时间送达文章导读本文通过介绍TOF相机的成像过程,带大家了解TOF相机中脉冲法和连续波调制这两种技术原理,并详细的分析每种方法的实现细节和各…

大家好,又见面了,我是你们的朋友全栈君。

点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

一文详解深度相机之TOF成像[通俗易懂]


文章导读

本文通过介绍TOF相机的成像过程,带大家了解TOF相机中脉冲法和连续波调制这两种技术原理,并详细的分析每种方法的实现细节和各自优缺点,对连续波调制方法深入其相位差原理,单频相位测距的限制及如何解决模糊距离等问题。

0

前情回顾

小编过了一个咸鱼般的五一,躺尸在家被五大过程组,十大知识体系折磨个半死,做题全凭感觉。

记得放假前一天和朋友吃饭,被问到TOF的原理是什么?小编弱弱的回答发射脉冲波打到物体返回后统计光的运行时间从而计算距离。被大佬用质疑的眼神瞄了一下,然后啪嗒啪嗒给我解释了一番连续调制波的原理。

小编总感觉哪里有些问题,做了这么久激光雷达感知算法,那些Velodyne-16,Horizon确实是基于脉冲波的技术原理呀,不过再往下问具体传感器内部是怎么工作的,小编也是一知半解。

下面我们来好好补一补有关TOF相机的基本知识,剧透一下原来TOF相机既可以基于脉冲波的光学快门方法又可以基于连续调制波的方法。

1

什么是TOF相机

在双目成像的文章中,我们说过双目相机是一种被动接收自然光的传感器,通过接收自然光利用三角测距的方式描述三维环境。本文的TOF相机则是一种主动发射红外光的传感器,通过发射光脉冲并接收打到物体反射回来的脉冲信号,最后计算光脉冲的飞行时间得到目标物体的距离。

说到这里我们可能第一反应是这不就是激光雷达的工作原理嘛!确实很相似,但是机械式或混合固态激光雷达采用逐点扫描的方式感知环境信息,而TOF相机以面阵的方式得到深度图。

小编最早接触的TOF相机就是微软的Kinect 2.0。Kinect系列很有意思,第一代基于结构光原理做的深度相机,第二代基于TOF原理做的深度相机,当时小编以为第三代是不是要用双目原理做深度相机了,誓把深度成像的技术都玩个遍的时候它停产了。如下图所示:上面是Kinect 1.0,下面是Kinect 2.0(长得太丑)

一文详解深度相机之TOF成像[通俗易懂]

TOF相机输出的深度图在2D空间表示为灰度图像,每个像素点对应一个距离值,其中强度越亮表示距离越近,如果光源被吸收或者未收到反射信号则呈现黑色。如下图所示:

一文详解深度相机之TOF成像[通俗易懂]

在深度图的基础上,配合相机的外参数据可以转换三维点云。假如你又同时有一颗RGB相机,能够将物体表面纹理映射到点云体素上,那么一张栩栩如生的三维渲染模型就出来了,如下如所示:

一文详解深度相机之TOF成像[通俗易懂]

2

TOF相机的技术原理

发射模块和接收模块是TOF相机的核心部分,通过内部的数据处理计算出深度信息。至于采用什么技术计算深度信息,我们提到了两种方法:

基于脉冲法原理简单:类似于我们有一个计时器,按下开始键发射一束脉冲波出去,当遇到障碍物后返回,当被接收器收到后按下停止键。根据计时器记录的时间和光的速度可以计算出相机到物体的距离。

公式如:Distance = 1/2 × c × Δt

其中c表示光在空气中传播的速度,Δt表示脉冲信号从相机到目标往返的时间。

一文详解深度相机之TOF成像[通俗易懂]

通过一个高频率的时钟驱动计数器对收发脉冲之间的时间进行计数,使得计数时钟的周期必须远小于发送脉冲和接收脉冲之间的时间才能够保证足够的精度。但是如果要达到毫米级别的测量,对控制时钟,发射单元等电子元器件的精度都是一项挑战。这就是为什么无人驾驶中应用的激光雷达传感器常基于脉冲法,因为该方法比较适合中远距离的测量。

但是在机器人等应用中使用的TOF相机大多采用的是连续波调制的方法:使用调制光照射场景, 并测量通过场景中的物体反射后返回光的相位延迟。得到相位延迟后, 再使用正交采样技术测量间接得到距离。

公式如:Distance = 1/2 × c × ϕ × T/2π

其中c表示光在空气中传播的速度,T表示调制周期,ϕ表示发射和接收波形的相位差。

一文详解深度相机之TOF成像[通俗易懂]

该方法比较适合中短距离的测量,精度往往可以达到毫米级。

通过对比上述两种方法的基本原理,我们不难发现:

脉冲法测量方式简单,占空比窄检测距离远;但是它易受环境光和元器件精度影响,测量精度相对较低。

相位差可以消除测量器件带来的固定偏差但是采样次数多,导致测量耗时帧率低。

3

如何将相位偏移转换成距离?

仔细看两种方法的距离求解公式,其实很相似,最终都是距离 = 速度 × 时间。唯一区别在于时间是怎么得到的?

脉冲法求时间比较直接,这里没有什么好解释的,就是到达时间-发射时间即可。

相位差也是可以转换成时间的,通常某一定频率 f 的相位差时间 = 相位差的度数 / 2πf 。这里就有小伙伴会问相位差的度数是怎么求的?

在连续波调制过程中通常将连续波近似为正弦波划分成4个窗口进行采样,并且采样时间间隔相同。如下图所示:

一文详解深度相机之TOF成像[通俗易懂]

推导过程就不贴了,最终的结果为:

ϕ = arctan((Q3-Q4) / (Q1-Q2))

相位差求取中的(Q3-Q4)和(Q1-Q2)相对于脉冲调试法消除了由于测量器件或者环境光引起的固定偏差。并且方程中求商的过程减少了来自距离测量的恒定增益影响,比如系统放大和衰减或者反射响度等问题。

4

重复周期下的相移如何计算距离?

在信号与系统中提到过相位与延时的关系,其中2π为一个符号周期时间,如果采用相位差法测距,怎么判断目标位于第几个周期呢?

事实上采用单一频率进行相位测距,确实无法分辨超过一个周期的距离值。简单粗暴一点的做法就是根据最大测量距离来调节频率,不过频率越高意味着距离分辨率越低,从而测量精度越低。所以在单一频率下会出现距离和精度无法同时满足的情况。

为解决单频造成的模糊距离问题,可以采用多频率技术来延长测量距离同时不降低调制频率。多频率技术的工作原理就是将一个或多个调制频率添加到混合。每个调制频率将有不同的模糊距离,但真正的位置是在不同的频率一致。当两个调制一致的频率,称为拍频,通常是较低的,并对应一个更长的模糊距离。如下图所示:

一文详解深度相机之TOF成像[通俗易懂]

此解释来源于2014年的一篇文章:Time-of-Flight Camera – An Introduction

有兴趣的小伙伴可以私我要文章(还有一篇更详细的原理解释:TOF Camera Principles Methods and Applications)

5

TOF相机的特性对比

市场上比较常见的视觉传感器包括单目相机、双目相机、结构光相机、全景相机、红外相机、TOF相机等。通常在谈到深度相机时会把TOF和结构光、双目这三种技术拿出来进行对比。

TOF技术相比结构光实现难度较低,发射信号遇到目标返回即可,不像结构光需要先打出激光散斑编码,然后再去提取编码特征。而且TOF受环境影响较小,不存在结构光激光散斑在户外会被淹没的问题,具有较好的抗干扰能力。但是TOF相机的分辨率低,所以通常只适用于一些近距离的避障导航功能。

TOF技术相比双目成像技术,因为其主动发射光源,输出的深度数据是通过解相位计算得到,所以很大程度上不受阴影的影响,在昏暗场景依然有良好的效果。而且TOF生成深度图没有复杂的特征配准、三角测量等算法加持,所以不依赖特征匹配的好坏,也就不受物体表面纹理,环境光照射角度等影响。在生成深度图的实时性上自然优于双目经过一大堆复杂计算的成像过程。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。

下载2

在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。

下载3

在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

一文详解深度相机之TOF成像[通俗易懂]

▲长按加微信群或投稿

一文详解深度相机之TOF成像[通俗易懂]

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

一文详解深度相机之TOF成像[通俗易懂]

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  一文详解深度相机之TOF成像[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146176.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • intellij idea2021激活码(注册激活)「建议收藏」

    (intellij idea2021激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • Android文件系统的结构及目录用途、操作方法 整理「建议收藏」

    Android文件系统的结构及目录用途、操作方法 整理「建议收藏」1、android文件系统的结构android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中,ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator加载这3个映像文件后,会把system和userdata分别加载到ram

    2022年10月15日
  • 什么是pisa测试_PISA测试背后:哪些学校代表中国考第一

    什么是pisa测试_PISA测试背后:哪些学校代表中国考第一《21世纪经济报道》12月13日消息,在北京金融行业工作的王鑫如,去年女儿出生后就开始规划送她去哪里接受教育,留在北京,还是随着一个工作机会去香港,或者全家移民国外?她说,将来女儿读大学很大可能会去国外,但基础教育阶段有没有必要出去?中国的基础教育竞争力到底强不强?大学有各种国际排行榜单,不同国家的中小学质量要如何对比?12月3日公布的第七轮国际学生评估结果(ProgrammeforInter…

  • 传统的行存储和(HBase)列存储的区别「建议收藏」

    传统的行存储和(HBase)列存储的区别「建议收藏」1为什么要按列存储列式存储(Columnarorcolumn-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的。简单来说两者的区别就是如何组织表(翻译不好,直接抄原文了):Ø Row-basedstoragestoresatableinasequenceofrows.Ø Column-basedstorag

  • http错误状态码_HTTP常用的14种状态码

    http错误状态码_HTTP常用的14种状态码一些常见的状态码为:200-服务器成功返回网页404-请求的网页不存在503-服务不可用详细分解:1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。代码说明100(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。…

  • D. 【NOIP2012普及组真题】文化之旅

    D. 【NOIP2012普及组真题】文化之旅题解:–这是一道真水题,说实话,正解不会,因为我们的测试数据所有的文化都不排斥,这就很美丽了……..–华丽丽的Floyd就来了…–注意极大值不要超范围了,是真绝望!代码:#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#inc…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号