3D视觉硬件技术
目前市面上主流的3D光学视觉方案有三种:
双目立体视觉法(Stereo Vision,在下文称双目法),结构光法(Structured Light,在下文称结构光)以及飞行时间法(Time of Flight, ToF在下文称ToF)。
目前较为成熟的方案是结构光和ToF。其中结构光最为成熟,已经在工业3D视觉中大规模应用。ToF的概念是扎根于深度传感器的。这里的深度传感器是指采用像素阵列来获取整个场景的高分辨率深度分布。对于深度传感器来说,一般用于测量深度的方案分别有结构光、双目和ToF三种,其中结构光(iPhone目前的Face ID就是使用了基于结构光的深度传感器)和双目技术都是基于几何原理做间接深度估计,而ToF则是测量发射光和反射光之间的飞行时间并根据光速来直接估计深度。
1.1 双目立体视觉法(Stereo Vision)
双目立体视觉法的技术原理是通过从两个视点观察同一物体,从而来获得同一物体在不同视角下的图像。通过三角测量原理来计算图像像素间的位置偏差(视差)来获取物体的三维图像,比如把一只手指放在鼻尖前方,左右眼看到手指会有一个错位的效果,这个位置差被称为视差。相机所要拍摄的物体离相机越近,视差越大,离相机越远,视差就越小。由此可以得出,当两个相机的位置等条件已知时,就可以通过计算相似三角形的原理来得出从物体到相机的距离。过程跟人类眼睛的工作原理相似。在双目立体视觉系统的硬件结构中,通常采用两个摄像机作为视觉信号的采集设备,通过双输入通道图像采集卡与计算机连接,把摄像机采集到的模拟信号经过采样、滤波、强化、模数转换,最终向计算机提供图像数据。
双目立体视觉的开创性工作始于上世纪的60年代中期。美国MIT的Lawrence Roberts通过从数字图像中提取立方体、楔形体和棱柱体等简单规则多面体的三维结构,并对物体的形状和空间关系进行描述,把过去的简单二维图像分析推广到了复杂的三维场景,标志着立体视觉技术的诞生。随着研究的深入,研究的范围从边缘、角点等特征的提取,线条、平面、曲面等几何要素的分析,直到对图像明暗、纹理、运动和成像几何等进行分析,并建立起各种数据结构和推理规则。特别是在1982年,David Marr首次将图像处理、心理物理学、神经生理学和临床精神病学的研究成果从信息处理的角度进行概括,创立了视觉计算理论框架。这一基本理论对立体视觉技术的发展产生了极大的推动作用,在这一领域已形成了从图像的获取到最终的三维场景可视表面重构的完整体系,使得立体视觉已成为计算机视觉中一个非常重要的分支。
一个完整的双目立体视觉系统通常可分为数字图像采集、相机标定、图像预处理与特征提取、图像校正、立体匹配、三维重建六大部分。双目立体成像法具有高3D成像分辨率、高精度、高抗强光干扰等优势,而且可以保持低成本。但是需要通过大量的CPU/ASIC演算取得它的深度和幅度信息其算法极为复杂较难实现,同时该技术易受环境因素干扰,对环境光照强度比较敏感,且比较依赖图像本身的特征,因而拍摄暗光场景时表现差。双目立体视觉法还有另一个限制,它过度的依赖于被拍摄物体的表面纹理,如果被摄物体表面没有明显的纹理,使用双目立体视觉法会无法匹配与之对应的像素的问题。
1.2 结构光法(Structured Light)
该技术是一种主动双目视觉技术,结构光技术的基本原理是,通过近红外激光器,将具有已知的结构特征(比如离散光斑、条纹光、编码结构光等)的光线投射到被拍摄物体上,再由专门的红外摄像头进行采集三维物体物理表面成像的畸变情况,再通过观测图案与原始图案之前发生的形变由此来得到图案上的各个像素的视差。这个技术通过光学手段获取被拍摄物体的三维结构,再将获取到的信息进行更深入的应用。其工作原理可看作是另一种双目法,红外激光器和红外摄像头可当做是双目立体视觉法中的左右双目的观测原理。
结构光在消费电子领域的商用最早可追溯到2009年,微软与以色列3D感测公司 PrimeSense合作发布了搭载结构光模组的体感设备Kinect一代,2010年11月上市后,该产品成为 2011 年销售最快的消费电子设备。尽管产品大获成功,但第一代 Kinect 的准确度、图像分辨率和响应速度并不理想。2017年苹果发布iPhone X,首次搭载 3D 结构光模组,可实现3D人脸识别技术,成为苹果近几年最大的创新。此前由于半导体工艺等多方面技术的限制,3D 感测很难应用到体积非常有限、功耗要求低的手机上,因此iPhone X 的发布是结构光技术的重大突破,市场对结构光技术的热情重新点燃。主要结构光方案厂商还有美国的英特尔、高通/Himax,以色列 Mantis Vision 以及国内华为、奥比中光等公司。iPhone X 发布后,国内小米、华为和 OPPO 也先后发布了首款搭载结构光模组的智能手机,其中小米采用的是以色列 Mantis Vision 公司的解决方案,华为采用的是自研方案,OPPO采用的是国内公司奥比中光的解决方案。苹果在2018年和2019年的iPhone新产品中也全部搭载了结构光模组。
结构光技术相较于双目技术有一个好处,结构光的红外激光器发射出了光,可以照亮被扫描物体,所以它不需要像双目结构一样依赖于光源,而且在较平整,没有图案的物体表面也可以测算出物体的三维深度。综上所述,结构光相较于双目结构有两个优点:(1)在场景较暗的场景下也可以运作正常(2)在没有明显纹理的物体上也可以实现深度扫描。
1.3 飞行时间法介绍
ToF是Time of Flight的缩写,直译为飞行时间,通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测这些发射和接收光脉冲的飞行(往返)时间来得到目标物距离。传感器通过计算光线发射和反射时间差或相位差,来换算被拍摄景物的距离,以产生深度信息,此外再结合传统的相机拍摄,就能将物体的三维轮廓以不同颜色代表不同距离的地形图方式呈现出来。
ToF最早的商用可追溯到 2006 年 7 月,衍生自CSEM(瑞士电子与微技术中心)的 MESA Imaging公司成立,并推出商用ToF摄像头产品系列 SwissRanger,最开始应用于汽车的被动安全检测。ToF技术首次应用到智能手机是在 2016 年,Google 和联想合作推出了全球首个搭载ToF模组的智能手机 Phab2 Pro,采用的是pmd/英飞凌的ToF方案,该手机可实现一些如三维测量等简易的 AR 应用,但并没有引起市场较大的反响。2018年8月6日,OPPO 在北京召开了ToF技术沟通会, 并在8月23日发布了其首部搭载 ToF 摄像头的智能手机 OPPO R17 Pro,采用了 Sony 的解决方案。随后在 2018 年 12 月,vivo 发布了其首部搭载 ToF 摄像头的智能手机 vivo NEX 双屏版,采用了松下的解决方案; 华为发布了其首部搭载 ToF 摄像头模组的智能手机荣耀 V20,采用的是 OPPO R17 Pro 相同的 ToF方案。进入 2019 年后,安卓厂商纷纷加入 ToF 镜头的阵营。此后,有越来越多的手机厂商在手机上搭配ToF镜头。
典型ToF测量设置描绘在图中,它包含几个构建块:(a)脉冲/调制光源(在ToF中一般使用VCSEL,请见下文解释)(b)光学扩散片将光扩散传播出去,接着当光从物体上反射回来时,用(c)一组透镜收集从物体上折射回来的光。接着经过一个滤光片将折射回来的光收集起来并且适当地调整光源的波长,接着通过改善背景噪声抑制令光波可被芯片所识别。最后,测量系统的核心是由固态量程图像传感器(d),由一组光探测器(像素)组成,能够直接或间接地测量光脉冲从光源到目标并返回传感器所需的飞行时间。该系统还需要一个合适的传感器接口,为传感器提供电源、所需的偏置电压/电流信号、数字控制相位,并从传感器读取数据流,这通常需要进一步的小处理以获得3D体积数据。最后,传感器接口负责与外部(到PC或处理单元)的通信。
ToF 技术具有以下的优点:1、软件复杂性低,设计与应用简单 2、在暗光与强光环境下表现不错 3、功耗不高 4、有较远的探测距离 5、成本低 6、响应速度快,缺点则在于室外受自然光红外线影响大、远距离无法保证精度。
飞行时间测量技术(D-ToF)
在经典的飞行时间测量中,直接飞行时间(Direct ToF,D-ToF,下文称为D-ToF)的原理比较直接,即直接发射一个光脉冲,之后测量反射光脉冲和发射光脉冲之间的时间间隔,就可以得到光的飞行时间。探测器系统在发射光脉冲产生的同时启动一个高精度的秒表。当探测到目标发出的光回波时,秒表停止并直接存储往返时间。目标距离z可通过以下简单方程估算:
其中表示光在空气中传播的速度。D-ToF通常用于单点测距系统,但由于像素级亚纳秒电子秒表的实现困难,D-ToF的成本以及技术难度相较于I-ToF更高。这项技术特别适用于基于SPAD的ToF系统。目前主流的主流的ToF技术所采用的SPAD(single- photon avalanche diode,单光子雪崩二极管)是一种高灵敏度的半导体光电检测器,其被广泛运用于弱光信号检测领域。结合D-ToF技术,可用来精确检测记录光子的时间和空间信息,继而通过三维重极算法进行场景的三维重构。苹果在2020年发布的第四代iPad Pro中就运用到了D-ToF技术。D-ToF的原理看起来虽然很简单,但是实际能达到较高的精度很困难而且成本对比I-ToF要高很多。除了对时钟同步有非常高的精度要求以外,还对脉冲信号的精度有很高的要求。普通的光电二极管难以满足这样的需求。而D-ToF中的核心组件SPAD由于制作工艺复杂,能胜任生产任务的厂家并不多,并且集成困难。所以目前研究D-ToF的厂家并不多,更多的是在研究和推动I-ToF。
飞行时间测量技术(I-ToF)
D-ToF的另一种解决方案是所谓的间接ToF(Indirect ToF,I-ToF,下文称为I-ToF),而I-ToF的原理则要复杂一些。在I-ToF中,发射的并非一个光脉冲,而是调制过的光。接收到的反射调制光和发射的调制光之间存在一个相位差,通过检测该相位差就能测量出飞行时间,从而估计出距离。其中往返行程时间是从光强度的时间选通测量中间接外推的。在这种情况下,不需要精确的秒表,而是需要时间选通光子计数器或电荷积分器,它们可以在像素级实现,只需较少的计算工作和硅面积。I-ToF是基于ToF相机的电子和照片混合设备的自然解决方案。
学习文章摘录
【精选】ToF 3D视觉传感技术详解、应用场景和市场前景-CSDN博客
相关文章:

3D视觉硬件技术
目前市面上主流的3D光学视觉方案有三种: 双目立体视觉法(Stereo Vision,在下文称双目法),结构光法(Structured Light,在下文称结构光)以及飞行时间法(Time of Flight, ToF在下文称T…...

【使用OpenCV进行目标分割与计数的代码实例详解】
文章目录 概要实例一:硬币分割计数实例二:玉米粒分割计数 概要 在当今数字图像处理领域,图像分割技术是一项至关重要的任务。图像分割旨在将图像中的不同目标或区域准确地分开,为计算机视觉、图像识别和机器学习等领域提供了坚实…...

npm ERR! exited with error code: 128
1.遇到的问题 报错信息:npm ERR! E:\tools\Gitt\Git\cmd\git.EXE ls-remote -h -t https://github.com/nhn/raphael.git npm ERR! npm ERR! fatal: unable to access https://github.com/nhn/raphael.git/: OpenSSL SSL_read: Connection was reset, errno 10054 …...
Spark---数据输出
1. 输出为Python对象 collect算子:将RDD各个分区内的数据,统一收集到Driver中,形成一个List对象 reduce算子:对RDD数据集按照传入的逻辑进行聚合 take算子:取RDD的前N个元素,组合成list返回给你 count…...

虹科干货 | Redis Enterprise 自动分层技术:大数据集高性能解决方案
文章来源:虹科云科技 阅读原文:https://mp.weixin.qq.com/s/5ik-WLHwEmPn42f1FissQw 越来越多的应用程序依赖于庞大的数据集合,而这些应用程序必须快速响应。借助自动分层,Redis Enterprise 7.2 帮助开发人员轻松创建超快的应用程…...

信息系统项目管理师第四版学习笔记——组织通用治理
组织战略 组织战略是组织高质量发展的总体谋略,是组织相关干系方就其发展达成一致认识的重要基础。组织战略是指组织针对其发展进行的全局性、长远性、纲领性目标的策划和选择。 战略目标是组织在一定的战略期内总体发展的总水平和总任务。它决定了组织在该战略期…...
安装zip扩展(PHP)
记录一次 安装zip扩展的最优方案 (备注 网上以及Ai提供的很乱不能很快解决) 首先搜索zip包 yum search zip选择自己合适的php版本 比如我的php是7.4.33的 我就用php74-php-pecl-zip 如果没有的话 先添加软件源 sudo yum install epel-release sudo yu…...

深度学习YOLOv4环境配置
软件安装 1、什么是CUDA CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 CUDA下载地址为CUDA Toolkit Archive | NVIDIA Developer 版…...
从0到1:云计算工程师入门指南
华为职业认证覆盖ICT全领域,致力于提供领先的人才培养体系和认证标准培养数字化时代的新型ICT人才,构建良性的ICT人才生态。 华为推荐职业认证进阶路线 根据ICT从业者的学习和进阶需求华为职业认证分为工程师级别、高级工程师级别和专家级别三个认证等…...

【微信小程序】6天精准入门(第3天:小程序flex布局、轮播图组件及mock运用以及综合案例)附源码
一、flex布局 布局的传统解决方案,基于[盒状模型],依赖display属性 position属性 float属性 1、什么是flex布局? Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以…...

Hadoop3教程(二十五):Yarn的多队列调度器使用案例
文章目录 (136)生产环境多队列创建&好处(137)容量调度器多队列提交案例如何创建多个队列如何向指定队列提交任务 (138)容量调度器任务优先级(139)公平调度器案例参考文献 &#…...
【SA8295P 源码分析 (四)】27 - QNX Ethernet MAC 驱动 之 emac_tx_thread_handler 数据发送线程 源码分析
【SA8295P 源码分析】27 - QNX Ethernet MAC 驱动 之 emac_tx_thread_handler 数据发送线程 源码分析 系列文章汇总见:《【SA8295P 源码分析 (四)】网络模块 文章链接汇总 - 持续更新中》 本文链接:《【SA8295P 源码分析 (四)】27 - QNX Ethernet MAC 驱动 之 emac_tx_thread…...

思维模型 上瘾模型(hook model)
本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。你到底是怎么上瘾(游戏/抖音)的?我们该如何“积极的上瘾”?让我们来一切揭晓这背后的秘密。 1 上瘾模型的应用 1.1上瘾模型的积极应用 1 学…...

中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例
中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例 中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例。 软件功能: 1、系统设置:参数设定,账号及权限设置,系统初始化&a…...
【27】c++设计模式——>迭代器模式(1)
迭代器实现通常包含两个主要组件:迭代器和聚合对象,聚合对象一般是vector,list,set,map等,迭代器负责在聚合对象上进行遍历,并提供了一种统一的访问元素的方法。聚合对象用来存储,并…...
table的展开折叠按钮操作
按钮 <el-buttontype"info"plainicon"el-icon-sort"size"mini"click"toggleExpandAll">展开/折叠</el-button>table: default-expand-all“isExpandAll” <el-tablev-if"refreshTable"v-loading"loadi…...

计算机毕业设计 基于SpringBoot智慧养老中心管理系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...
Android-Framework 不允许应用商场下载的应用安装,adb 、pm 可以正常安装
一、环境 高通865 Android10 二、情景 从framework层禁止应用商场下载的应用安装,adb 、pm 可以正常安装 三、代码实现 frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java -35,6 35,7 import android.os.Build;…...

面试 4
1、作用域 w3scholl中定义:作用域指的是您有权访问的变量集合。 作用域是指在程序中定义变量的区域,该位置决定了变量的生命周期。通俗理解,作用域就是变量与函数的可访问范围,即作用域控制着变量和函数的可见性和生命周期。 在…...

【AI视野·今日Robot 机器人论文速览 第五十五期】Mon, 16 Oct 2023
AI视野今日CS.Robotics 机器人学论文速览 Mon, 16 Oct 2023 Totally 27 papers 👉上期速览✈更多精彩请移步主页 Interesting: 📚***AcTExplore, 对于未知物体的主动触觉感知。基于强化学习自动探索物体的表面形貌,增量式重建。(from 马里兰…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...