ToF相机属于一种非接触式光学传感器,通过计算发射激光的飞行时间获取对应像素的深度信息。就非接触式距离测量方法而言,其分类可用下表表示如下:

1.1 ToF传感器基础

一个逐点式的ToF传感器采用了雷达原理估计场景点的径向距离。简单来说,就是通过计算光从发射到经场景点反射后的飞行时间。为了测量整个场景表面而不是几个场景点,很多距离测量系统集成了一个逐点式ToF传感器在一个场景扫描机构上。不同于那些通过逐点扫描方式获取场景几何结构的ToF传感器,矩阵式深度传感器通过将很多ToF传感器集成到一个阵列面上,形成一个矩阵。这样通过矩阵式ToF拍摄一张场景图片即可实时获取整个场景的表面几何结构信息。

除了以上这些简单的概念性原理,通过time of flight实现深度值测量方法的背后还隐藏着许多很有挑战性的技术。例如ToF相机需要5ps来覆盖1mm的路径,那么就需要一个时钟来对5ps的单步时长进行计量。不同的时钟技术选择导致了不同的ToF相机类型。当前市面上大部分是基于连续波(continuous  wave)强度调制方法,还有一些是基于光学快门的方法,这里就不做过多的介绍。

1.2 CW ToF传感器的工作原理

连续波长深度传感器通过向场景表面发送一个正弦波信号,振幅为AE,调制频率为fmod:

信号sE(t)被场景表面反射回来并被传感器接收。当信号到达被接收后,由于能量衰减,其振幅衰减为AR,并产生了一个相位延迟ΔΦ,于是反射后的信号变为
发射信号和接收信号如下图所示
 
其中,AR+BR(下面表示为B)被称为强度或偏移,BR是一个由于背景光引起的干扰。于是反射回来的信号可等价表示为

上式中有三个未知量A, B 和ΔΦ,其中A和B是IR射线振幅,ΔΦ是一个纯数字的相位值。最重要的未知量就是ΔΦ,因为ΔΦ是一个跟测量距离ρ相关的量,故有

或等价表示为

2 ToF相机使用注意事项

2.1 温度要求

当使用SR4000/SR4500时,官方建议相机所处的使用环境温度应不高于50摄氏度,过多的热量会显著地增加相机的热敏误差。另外,相机的曝光(积分)时间增加,也会是LED的激活时间被延长,由此会带来更多的工作热量。为了减少这部分热量,可以考虑采用触发模式来代替连续采集模式。

2.2 电压

SR4500供电电压为24V直流电,上下浮动10%。如果工作电压小于最小电压,相机的测量精度会下降。如果供电电压过高,则会使用相机发热,最终也会影响测量精度。

ToF相机学习笔记之基本知识的更多相关文章

  1. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

  2. C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

    一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...

  3. C#学习笔记(基础知识回顾)之值传递和引用传递

    一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...

  4. C#学习笔记(基础知识回顾)之值类型和引用类型

    一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...

  5. JAVA学习笔记—review基本知识[反射与异常]

    JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和E ...

  6. Quartz学习笔记:基础知识

    Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ...

  7. 大数据学习笔记——Linux基本知识及指令(理论部分)

    Linux学习笔记整理 上一篇博客中,我们详细地整理了如何从0部署一套Linux操作系统,那么这一篇就承接上篇文章,我们仔细地把Linux的一些基础知识以及常用指令(包括一小部分高级命令)做一个梳理, ...

  8. .net学习笔记---xml基础知识

    一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基 ...

  9. react学习笔记1--基础知识

    什么是react A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES[React是一个用于构建用户界面的JavaScript库.] React之所以快, ...

随机推荐

  1. Git学习总结(7)——Git GUI学习教程

    前言 之前一直想一篇这样的东西,因为最初接触时,我也认真看了廖雪峰的教程,但是似乎我觉得讲得有点多,而且还是会给我带来很多多余且重复的操作负担,所以我希望能压缩一下它在我工作中的成本,但是搜索了一下并 ...

  2. [转载]深入JVM锁机制-synchronized

    转自:http://blog.csdn.net/chen77716/article/details/6618779,并加上少量自己的理解 目前在Java中存在两种锁机制:synchronized和Lo ...

  3. 第九章 TCP和UDP同一时候用复用一个port实现一个回射server

    #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include &l ...

  4. iOS之数据请求NSURLConnection

    iOS之数据请求NSURLConnection NSString *lcsUrl = @"http://192.168.1.1:8080/lcsUrl"; //假设网址中有汉字.须 ...

  5. Effective JavaScript Item 34 在prototype上保存方法

    本系列作为EffectiveJavaScript的读书笔记. 不使用prototype进行JavaScript的编码是全然可行的,比如: function User(name, passwordHas ...

  6. jni传递对象中包含arraylist对象。

    相信在使用jni的过程中,总是要传递各种各样的类型,在这其中,我也碰到了一些问题. 简单的传一些内容,相信在网上一搜一大把. 所以我们就来说说.传递对象中包含arraylist吧. 在这里先给大家一个 ...

  7. Andoid 更好的Android多线程下载框架

    概述 为什么是更好的Android多线程下载框架呢,原因你懂的,广告法嘛! 本篇我们我们就来聊聊多线程下载框架,先聊聊我们框架的特点: 多线程 多任务 断点续传 支持大文件 可以自定义下载数据库 高度 ...

  8. [ Git ] [ GitHub ] 如何刪除自己github上面的Repository-轉載

    http://www.winwu.cc/2013/03/githubrepository.html

  9. Xrdp - 通过Windows的RDP连接Linux远程桌面(Ubuntu/CentOS/Redhat 7)(转载)

            您多久访问一次Linux桌面? 您使用什么工具来访问远程桌面? Xrdp是一个开源工具,允许用户通过Windows RDP访问Linux远程桌面. 除了Windows RDP之外,xr ...

  10. Intel投入5亿美元提升14nm工艺CPU需求

    虽然14nm行将收尾,但是却有大量的客户在赶“末班车”,导致CPU供货告急. Intel年初宣布增加10亿美元的额外资本支出用于转向更新的.更先进的生产工具,以便增加产能,在本周的第39届纳斯达克投资 ...