当前位置: 首页 > news >正文

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或处理单元)的通信。

a129938e83793902cd9b85b6b311a871.png

ToF 技术具有以下的优点:1、软件复杂性低,设计与应用简单 2、在暗光与强光环境下表现不错 3、功耗不高 4、有较远的探测距离 5、成本低 6、响应速度快,缺点则在于室外受自然光红外线影响大、远距离无法保证精度。

飞行时间测量技术(D-ToF)

在经典的飞行时间测量中,直接飞行时间(Direct ToF,D-ToF,下文称为D-ToF)的原理比较直接,即直接发射一个光脉冲,之后测量反射光脉冲和发射光脉冲之间的时间间隔,就可以得到光的飞行时间。探测器系统在发射光脉冲产生的同时启动一个高精度的秒表。当探测到目标发出的光回波时,秒表停止并直接存储往返时间。目标距离z可通过以下简单方程估算:

38f932b1436a8b818ec76d91ea0212bc.png

其中表示光在空气中传播的速度。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相机的电子和照片混合设备的自然解决方案。

e9bb57a94ba52f2655279b30f28cabc4.png

学习文章摘录

【精选】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实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

Android-Framework 不允许应用商场下载的应用安装,adb 、pm 可以正常安装

一、环境 高通865 Android10 二、情景 从framework层禁止应用商场下载的应用安装&#xff0c;adb 、pm 可以正常安装 三、代码实现 frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java -35,6 35,7 import android.os.Build;…...

面试 4

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

【AI视野·今日Robot 机器人论文速览 第五十五期】Mon, 16 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Mon, 16 Oct 2023 Totally 27 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;***AcTExplore, 对于未知物体的主动触觉感知。基于强化学习自动探索物体的表面形貌&#xff0c;增量式重建。(from 马里兰…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...