TOF与结构光技术分析

一.概述

结构光(Structuredlight),通常采用特定波长的不可见的激光作为光源,它发射出来的光带有编码信息,投射在物体上,通过一定算法来计算返回的编码图案的畸变来得到物体的位置和深度信息。

光飞行时间法(TOF),利用测量光飞行时间来取得距离,简单来说就是,发出一道经过处理的光,碰到物体以后会反射回来,捕捉来回的时间,因为已知光速和调制光的波长,所以能快速准确计算出到物体的距离。

TOF技术主要是为了实现3D成像而生,X,Y两维的手机拍照大家都非常熟悉了,TOF在其基础上增加了Z轴的深度信息。实现3D的其他方案还包括,散斑结构光、编码结构光、双目视觉以及双目结构光等,iPhoneX使用的就是散斑结构光方案,而 iPhoneXs同样采用了结构光方案。

相对结构光方案,TOF的3D方案实现起来更为简单,主要包括投射器和接收模组,通过控制投射器发出经调制的近红外光波,遇物体后反射,接收模组计算发射光波和接收光波的时间差或相位差,换算成被拍摄景物的距离,以获取深度信息。

二.ToF方案的几个优点

优点一,工作距离远,可以获得5m内的有效&实时深度信息。

优点二,适用场景广,无论被摄物体有无特征点,无论环境光较强(如:日光)或较弱,都可获得有效的景深信息。

优点三,较远距离精度高,ToF在手机与被摄物体的绝对精度,即被摄物体之间的相对精度,都可以达到厘米级的水平。

三.ToF方案的几个缺点

缺点一:当前手机端可用的主流ToF传感器分辨率相对较低(180*240,240*320,240*480等),因此在近距离的精度和X/Y分辨率也会相对较低,大家感兴趣可以自行了解前置结构光的精度。

缺点二:元件在工作时的功耗与发热量也相对较大,长时间工作需要很好的散热条件,在消费类电子设备上使用还需要不断优化。

缺点三:目前基于ToF方案的解决方案还未完全成熟,相应的内容生产和开发群体较为薄弱,支持的应用场景较少。

四.TOF技术的改进

TOF技术由来已久,并不是近期火起来的新产品,今年应用于智能手机端算是个突破,这也要归功于近几年TOF技术的不断进步。

TOF这个3D模块中最核心的器件在于TOF芯片,它集众多功能于一身,包括驱动投射器,接收反射光线,进而生成raw图,再送给软件处理成深度信息。

前些年的TOF芯片多是CCD类型的,功耗和发热在实际使用中是一个大问题,这也是TOF由来已久却迟迟没有应用于手机端的原因之一。芯片厂商致力于技术的创新改良,使TOF芯片从CCD转向CMOS,在功耗方面实现了很大的突破,使TOF应用于便携手机成为可能。而且CMOS芯片以其复杂的逻辑结构,可以实现将高速率多帧图像合成单张图像用以计算最终的深度,降低图像噪声以提高深度的精度。

方案上,3D结构光投射的是散斑或编码图案,接收模组需要拍摄到清晰的图案才能计算出深度。而随着距离的增加,投出的图案或出现模糊,或出现亮度能量上的衰减,导致深度图不完整,出现破洞,甚至于失效,所以3D结构光并不适用于远距离深度信息采集。

TOF技术发射的不是散斑或编码图案,而是面光源,在一定距离内光信息不会出现大量的衰减,配合TOF芯片背照式的、大pixel size的设计,大幅提升了光线收集率和测距速度,使远距离应用成为可能。这也是TOF可以被用作手机后摄,而结构光无法用作后摄的原因之一。

TOF技术

五.TOF vs 3D结构光

外形尺寸应用

iPhoneX/Xs特色的长留海一度被网友吐槽,其实这是3D结构光结构上的局限造成的。熟悉结构光的朋友都清楚,结构光的精度和Baseline(投射器和接收模组的距离)关系非常大,Baseline间隔越长,精度就越高。常用的Baseline至少需要保证20mm以上,iPhoneX更是选择了27mm的Baseline,所以长留海也是不得已而为之的设计。

反观TOF就没有Baseline的要求,投射器和接收模组可以紧挨在一起,尺寸上会更加紧凑。

在器件组成上,TOF投射器组成更简单,供货也会更容易保障。

TOF投射器主要包括VCSEL+Diffuser。TOF的VCSEL并不像结构光那样对编码图案有一定要求,只是最常规的规则排列,器件制作上更为简单,可供选择的VCSEL供应商也会更多。结构光的VCSEL需要制作成特定的图案,对图案表现的一致性、器件高温漂移情况、发热表现、耐环境高温等都会有更高的要求,总体来说,对VCSEL供应商的工艺及设计能力以及产品良率上考验更大。TOF的Diffuser的设计制作难度,相对于结构光投射器中的DOE不可同日而语,能稳定供应DOE的厂商全球范围内屈指可数,而Diffuser的生产则表现得更加容易,供货厂商也更多。

TOF最具技术含金量的器件就是TOF芯片,然而TOF芯片和普通的可见光CMOS芯片在基础构造上大同小异。目前芯片资源多来自日本的Sony,还有其他几家日本、美国等供应商。众所周知,Sony长久以来一直作为手机摄像头CMOS芯片主力提供商,已稳定供货长达十几年之久,在品质和供货上均有保证。有这样强大的芯片设计和生产背景,相信在TOF芯片的供货保证上也不会让人失望。

六.生产应用的复杂度

结构光主要瓶颈在于模组的产品良率较低,无法正常供货。事实上,结构光对组装精度要求之高,业内已不是秘密,主要受制于它是通过三角测量法来计算深度信息的工作原理。一旦Baseline有所偏移,或者投射接收模组之间的角度发生偏移,都会带来深度计算的误差。这是对模组供应商和手机厂商生产能力的一种考验,而且低良率势必带来高成本和昂贵的价格。TOF深度计算的原理则完全不同,是通过TOF芯片接收反射回来光线的相位差来计算深度,只需确保相位接收正确,对组装精度要求更低,生产上会容易得多。

七.结构光的算法大战

2017年是结构光被火热追捧的一年,然而并没有像大众所预想的那样,在手机端广泛铺开被使用。除了前面提到的制作工艺,以及器件供应上的难度,更大的原因可能还是在于算法。

结构光的算法原理在实现上看起来并不难,难的是算法的优化,如何让算法工作起来轻松便捷,功耗低,占用资源少是最难的问题。大多结构光算法运算数据量较为庞大,需要附加额外的算法处理芯片到手机端。

大陆手机厂可供选择的成熟算法厂商并不多,大多算法公司之前只止步于常规安防或者商用等阶段,没有在手机类消费便携设备上使用的经验,有些算法公司甚至还停留于实验演示阶段,远远无法满足便携设备对于功耗低、发热低、尺寸小、易集成等方面的要求。加上算法公司难以适应手机端突然到来的结构光热潮,很多算法公司的精力都只够支持1~2家手机终端的应用。算法资源非常紧缺,一度出现了手机终端抢占算法资源的现象。

TOF的核心算法在于深度信息的生成,通常由TOF芯片厂商提供Library,放在手机AP里面调用,算法整体运算量并不大,不需要额外附加处理芯片,对AP本身的硬件能力要求也相对不高。相同的方案和算法Library可供不同的手机厂商采用,移植简单灵活,通用性更广,不像结构光整体移植工程较为庞大,对平台硬件有一定要求,且受制于专利等原因通用性没有那么强。

当然,复杂的算法计算也有给结构光带来优势,虽然它并不适用于远距离拍摄,但是近距离的深度精度表现较好,如果算法足够好,深度响应速率可以和接收芯片保持相同,在点云响应上速度也较快,这也是结构光目前被用于前摄3D成像的主要原因。

八.TOF应用可玩性更大

消费者最关心的主要是应用了,目前结构光应用主要有人脸建模、人脸识别、移动支付、角色创建等。

人脸识别和角色动画的门槛不高,通过RGB+IR或者双IR摄像头也可以实现识别+活体检测,各手机终端出于成本考虑,也在研究双摄方案看能否在中低端系列手机上实现3D人脸识别和角色创建等效果。

人脸支付应用实现的技术门槛更高,对深度的精度和准确度要求更高。不过,据业内可靠消息称,目前TOF已基本具备实现人脸支付的能力,人脸占据一定像素以上便可实现支付,TOF作为人脸支付距离相对结构光更远,使用起来也许没有结构光那么方便。随着TOF技术的不断进步,后续完全替代结构光方案也不是没有可能。

同时,TOF在后摄应用上的可玩空间也很大,TOF通过3D建模可用于AR成像,应用包括AR游戏、AR装潢、3D试装、体感游戏、全息影像交互等。

5G网络带来的高带宽,为3D视觉技术提供了信息传输的保障, 3D视频通话、虚景+虚景的远程VR、虚景+实景的远程AR、实景+实景的远程JR等泛在现实使用场景将迎来爆发式应用。

综合TOF应用便捷集成度高、供货稳定、可玩性强等多方面的优势,并随着TOF精度的不断改良,后续替代结构光方案成为前摄应用看起来有很大可能。TOF以其多方面的优势,成为旗舰手机3D成像的主要方案,已成为不争的事实。同时,目前已有手机终端都在用多摄像头方案,用以替代结构光成为中低端手机前置3D方案的选择。3D市场风云变幻,结构光看起来越来越没有竞争力了。

TOF与结构光技术分析的更多相关文章

  1. 3D-camera结构光原理

    3D-camera结构光原理 目前主流的深度探测技术是结构光,TOF,和双目.具体的百度就有很详细的信息. 而结构光也有双目结构光和散斑结构光等,没错,Iphone X 的3D深度相机就用 散斑结构光 ...

  2. 教你如何认识人脸识别开发套件中的双目摄像、3D结构光摄像头、单目摄像头的区别及详细讲解

    深圳市宁远电子提供的人脸识别模组可支持双目摄像头和3D结构光摄像头,在客户咨询中经常有被问到双目的为什么会比单目的成本高,区别在哪里,他们的适用于哪些场景呢?在此,深圳市宁远电子技术工程师就为大家详细 ...

  3. 3D结构光

    3D结构光 3D结构光的整个系统包含结构光投影设备.摄像机.图像采集和处理系统.其过程就是投影设备发射光线到被测物体上,摄像机拍摄在被测物体上形成的三维光图形,拍摄图像经采集处理系统处理后获得被测物体 ...

  4. WaterfallTree(瀑布树) 详细技术分析系列

    前言 WaterfallTree(瀑布树) 是最强纯C#开源NoSQL和虚拟文件系统-STSdb专有的(版权所有/专利)算法/存储结构. 参考 关于STSdb,我之前写过几篇文章,譬如: STSdb, ...

  5. 横向技术分析C#、C++和Java优劣

    转自横向技术分析C#.C++和Java优劣 C#诞生之日起,关于C#与Java之间的论战便此起彼伏,至今不辍.抛却Microsoft与Sun之间的恩怨与口角,客观地从技术上讲,C#与Java都是对传统 ...

  6. C/S结构与B/S结构的特点分析

    C/S结构与B/S结构的特点分析 为了区别于传统的C/S模式,才特意将其称为B/S模式.认识到这些结构的特征,对于系统的选型而言是很关键的. 1.系统的性能 在系统的性能方面,B/S占有优势的是其异地 ...

  7. AOP技术分析

    AOP的概述(http://www.cnblogs.com/lxp503238/p/6837653.html)        1. 什么是AOP的技术?        * 在软件业,AOP为Aspec ...

  8. [IC]Lithograph(1)光刻技术分析与展望

    文章主体转载自: 1.zol摩尔定律全靠它 CPU光刻技术分析与展望 2.wiki:Extreme ultraviolet lithography 3.ITRS 2012 1. 光刻技术组成和关键点 ...

  9. 3D动态人脸识别技术分析——世纪晟人脸识别实现三维人脸建模

    - 目录 - 国内3D动态人脸识别现状概况 - 新形势下人脸识别技术发展潜力 - 基于深度学习的3D动态人脸识别技术分析 1. 非线性数据建模方法 2. 基于3D变形模型的人脸建模 - 案例结合——世 ...

随机推荐

  1. Thinkphp5 日期与时间戳相互转换

    日期转换为时间戳 $date="2013-10-01 12:23:14"; dump(strtotime($date)); //=>1380601394 时间戳 转换为日期 ...

  2. poj2418map或者字典树

    题意:      给你一些串,然后求出每个串出现的概率. 思路:      简单题目,做法也很多,我用字典树做了下,然后又用map做了下,其实这个题目我感觉直接排序一遍之后线性输出应该是最简单最快的( ...

  3. 网站指纹识别工具Whatweb的使用

    目录 whatweb 一些常见的Whatweb的扫描 常规扫描 批量扫描 详细回显扫描 扫描强度等级控制 快速本地扫描(扫描内网的主机) 将扫描结果导出至文件内 whatweb whatweb 是ka ...

  4. Python 爬虫与HTTP协议简介

    爬虫的实际例子: 搜索引擎(百度.谷歌.360搜索等). 伯乐在线. 惠惠购物助手. 数据分析与研究(数据冰山知乎专栏). 抢票软件等. 什么是网络爬虫: 通俗理解:爬虫是一个模拟人类请求网站行为的程 ...

  5. 【转】风控中的特征评价指标(二)——PSI

    转自:https://zhuanlan.zhihu.com/p/79682292 风控业务背景 在风控中,稳定性压倒一切.原因在于,一套风控模型正式上线运行后往往需要很久(通常一年以上)才会被替换下线 ...

  6. 死磕Spring之AOP篇 - Spring 事务详解

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读. Spring 版本:5.1 ...

  7. Spring Boot & Cloud 轻量替代框架 Solon 1.3.37 发布

    Solon 是一个微型的Java开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Micro service.WebSocket. ...

  8. Pytorch_Part7_模型使用

    VisualPytorch beta发布了! 功能概述:通过可视化拖拽网络层方式搭建模型,可选择不同数据集.损失函数.优化器生成可运行pytorch代码 扩展功能:1. 模型搭建支持模块的嵌套:2. ...

  9. OO随笔之追求完美的第三单元——初试JML

    前言 这一章的JML比较简单,那么大家的关注点自然地移到了性能优化上.于是大家一股脑地去利用各种数据结构去做时间上的优化(当然很多人最后还是倒在了正确性上),故称追求完美的一单元.当然这也是得益于JM ...

  10. CentOS7 / CentOS8 设置终端屏幕分辨率

    Centos7 修改文件 /boot/grub2/grub.cfg 搜索 linux16 / /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=881ac4e6-4a5 ...