3D感知和建模关键硬件技术:双目、3D结构光和TOF

techbrood 发表于 2019-02-28 14:28:08

标签: ar, xr, hardware

- +

无论VR、AR和3D打印,其核心技术包含3D成像和建模。

而3D建模属于劳动密集型的工作,耗时耗力,凡这类工作都会是被新技术革命的地方,自动3D建模技术就是为了解决这样的产业瓶颈。

而自动3D建模的一个技术前提是需要设备(如手机或专业的3D扫描仪)能够有效(高精度且快速)感知3D景深

这就引出了本文的主题,也就是当前主流的几种3D视觉解决方案:双目、3D结构光和TOF。

由于本站并非专业的硬件网站,所以尽量从应用层面以浅显易懂的方式来介绍这些硬件方案的特性和工作方式。

1.jpg

上图是这3种解决方案的工作原理和技术特点。

双目方案是根据自然光线下双摄像头成像的计算机视觉差异来判断景深,类似人眼的判断方式。

缺点是计算量大,功耗高,受环境影响大(比如雾天人就很难感知周围环境)。

3D结构光和TOF方案都是类似雷达探测的方式,也就是依靠额外的专门的光源来探测景深,以及关联硬件对该特殊光源的特定处理。

由于无需处理复杂的自然光,这些硬件能够更为高效精准的获得景深数据,而且不依赖于现实光照情况。

3D结构光

3D结构光本身是优点颇多的,精度高、功耗低、全天候、环境适应性好,非常适合用作人脸识别、支付,以及对自拍美颜进行细节补充。所以,在iPhone X搭载这项技术后,有的Android旗舰也开始搭载这项技术。OPPO Find X就是Android阵营的3D结构光代表。

以散斑结构光为基础原理的3D结构光,发射衍射光斑到物体上,传感器接收到发生形变的光斑,从而根据光斑形变的量来判断深度信息。它所发射的衍射光斑在一定距离外能量密度会降低,所以不适用于远距离的深度信息采集。3D结构光的工作距离范围很短,仅0.2m-1.2m,适合手机前置摄像头,而需要长距离信息的后置摄像头也不适用3D结构光。

3.jpg

TOF

TOF是Time of Flight即飞行时间的缩写。其具体原理是通过给被测目标连续发送光信号,然后在传感器端接收从被测目标返回的光信号,再通过计算发射和接收光信号的往返飞行时间来得到被测目标的距离。和3D结构光一样,TOF是一个用以补充图像Z轴深度信息的技术。

不过,和3D结构光不同的是,TOF技术是发射的不是散斑,而是面光源,所以在一定距离内,TOF的光信息不会出现大量的衰减,同时TOF感光元件的单位像素非常大,为10μm,对于光的采集有足够的保障,理论上只要提高发射端的功率,TOF的使用距离会非常远。一般情况下,TOF的工作距离范围是0.4m-5m。因此整体上来看,TOF更适合用在后置摄像头上。

TOF的解决方案里,用的图像传感器是CCD,功耗颇高,这对于电池续航本就捉襟见肘的手机不啻为一个大问题。

好在,索尼在2017年12月推出的IMX456QL CMOS解决了功耗问题,其功耗仅为CCD方案的1/5~1/3。该传感器结合了两种像素技术,一是提高反射光信号读取精度的像素技术,二是背照式CMOS影像传感器的像素技术,从而大幅提升了光线收集率和测距速度。该传感器搭载了高感光度的驱动模式,即使远距离也可实现高精度测距。

2.jpg


possitive(23) views8457 comments0

发送私信

最新评论

请先 登录 再评论.
相关文章
  • HTML5 And Canvas 2D Specs Are Now Feature Complete, First HTML 5.1 Working Draft Published

    We’ve been writing about HTML5 for quite a while, but, until today, the actual HTML5 specs and standards were still moving targets. Now, however, the...

  • WebAssembly工作原理和JavaScript语言性能对比分析

    本文简单说明WebAssembly(简称wasm)工作原理和高性能的原由(和JavaScript相比)。不过需要提醒的是Wasm并非设计来完全替代JS,而是对JS的一个强大补充,JS中...

  • React JSX语法简介

    JSX是一种类似XML的标签语法,用来简化代码,我们可以不使用JSX,但了解并使用也没什么坏处:)在React中,JSX是一个使用 React.createElement() API的快捷方式...

  • 函数式JavaScript编程基础概念:Curry和Partial Application

    本文介绍JS函数式编程中的两个概念:柯里(Curry)和部分应用程序(Partial Application)。什么是应用程序(Application)将函数应用于其参数以产生返回值的过...

  • 使用SVG和CSS3创建圆形进度条动画

    圆形进度条是一个经典的控制面板元素,常用于显示任务进度,比如用户档案的完整程度,或者升级状态。有很多方法来实现圆形进度条,比如用JS, CSS3, Canvas, SVG...

  • 深度贴图(depth map)概念简介和生成流程

    Depth map 深度图是一张2D图片,每个像素都记录了从视点(viewpoint)到遮挡物表面(遮挡物就是阴影生成物体)的距离,这些像素对应的顶点对于观察者而言是“可...

  • CSS3图片混合(Blend)效果及其参考计算公式一览表

    在Photoshop软件中,混合是将两个图层的色彩值进行合成,从而创造出大量的效果。在这些效果的背后实际是一些简单的数学公式在起作用。下面所介绍的公式仅适用于R...

  • WebGL入门教程5 - 详解纹理滤镜(Texture Filter)

    WebGL中使用纹理贴图来实现细腻的物体表面观感,其中一个重要的参数是纹理滤镜(Texture Filter)。
    这个参数用来处理当对象出现缩放时,纹理如何处理中间...

  • 浏览器控制台报JS脚本执行错误:Module is not defined

    现在JS分成了两个分支,一部分在服务器端发展如NodeJS,一部分是传统的浏览器运行环境。
    有些插件在编写JS代码时,是针对Node编写的,所以直接在浏览器中使...

  • WebGL入门教程1 - 3D绘图基础知识

    现代浏览器努力使得Web用户体验更为丰富,而WebGL正处于这样的技术生态系统的中心位置。其应用范围覆盖在线游戏、大数据可视化、计算机辅助设计、虚拟现实以及数...

  • D3.js读取外部json数据

    D3.js是一个很好的数据可视化工具,支持从web服务读取json数据,或者从外部文件如.json, .csv文件中直接读取。由于部分服务比如flickrs上的图文数据服务需要VPN...

  • SVG过滤器feColorMatrix矩阵变换效果用法详解

    在计算机图形学(数学)中,矩阵乘法可用于把空间向量进行几何变换。我们可以把颜色的值(RGBA)表示成一个四维空间向量:color = (r, g, b, a);那么就可以应用...

  • 如何使用纯CSS3实现一个3D泡沫

    要实现一个逼真的泡沫,涉及到比较复杂的光学/物理学知识。我们这里先简化下问题,实现一个相对简单而足够实用的泡沫元素。我们可以把基础的泡沫元素应用在很多场景中,比如水景、泡咖啡、啤酒甚至火焰特效中。泡沫首先是一个圆形元素.bubble

  • 如何使用CSS3/SCSS实现逼真的车窗雨滴效果

    在天气预报类的Web移动应用中,常常需要实现屏幕的雨滴效果,表示阴雨天气。感觉上比较神奇,其实想通了,这个效果的实现只需要一点物理知识和CSS3的简单变换。实现一个小雨滴首先雨滴是一个个小的椭圆形元素:.raindrop

  • 在PHP网页程序中执行Sass/Compass命令

    我们需要在wow云开发平台支持sass/compass等预编译样式语言,为此我们首先尝试了scssphp扩展,但是在支持最新语法上,经常会出现异常。所以我们采用了代理的方式...

  • 更多...