3D感知和建模关键硬件技术:双目、3D结构光和TOF
无论VR、AR和3D打印,其核心技术包含3D成像和建模。
而3D建模属于劳动密集型的工作,耗时耗力,凡这类工作都会是被新技术革命的地方,自动3D建模技术就是为了解决这样的产业瓶颈。
而自动3D建模的一个技术前提是需要设备(如手机或专业的3D扫描仪)能够有效(高精度且快速)感知3D景深。
这就引出了本文的主题,也就是当前主流的几种3D视觉解决方案:双目、3D结构光和TOF。
由于本站并非专业的硬件网站,所以尽量从应用层面以浅显易懂的方式来介绍这些硬件方案的特性和工作方式。
上图是这3种解决方案的工作原理和技术特点。
双目方案是根据自然光线下双摄像头成像的计算机视觉差异来判断景深,类似人眼的判断方式。
缺点是计算量大,功耗高,受环境影响大(比如雾天人就很难感知周围环境)。
3D结构光和TOF方案都是类似雷达探测的方式,也就是依靠额外的专门的光源来探测景深,以及关联硬件对该特殊光源的特定处理。
由于无需处理复杂的自然光,这些硬件能够更为高效精准的获得景深数据,而且不依赖于现实光照情况。
3D结构光
3D结构光本身是优点颇多的,精度高、功耗低、全天候、环境适应性好,非常适合用作人脸识别、支付,以及对自拍美颜进行细节补充。所以,在iPhone X搭载这项技术后,有的Android旗舰也开始搭载这项技术。OPPO Find X就是Android阵营的3D结构光代表。
以散斑结构光为基础原理的3D结构光,发射衍射光斑到物体上,传感器接收到发生形变的光斑,从而根据光斑形变的量来判断深度信息。它所发射的衍射光斑在一定距离外能量密度会降低,所以不适用于远距离的深度信息采集。3D结构光的工作距离范围很短,仅0.2m-1.2m,适合手机前置摄像头,而需要长距离信息的后置摄像头也不适用3D结构光。
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影像传感器的像素技术,从而大幅提升了光线收集率和测距速度。该传感器搭载了高感光度的驱动模式,即使远距离也可实现高精度测距。


最新评论
- 相关文章
CentOS6 Apache2.2多站点HTTPS配置
可以使用letsencrypt(certbot)免费证书服务。支持多系统、多站点和多目录,支持wildcard(通配符域名),90天生效,可用定时任务自动更新。需要注意一点的是apache2.4以下版本需要在默认的ssl配置中添加如下的指令:NameVirtualHost
OpenGL/WebGL顶点坐标变换过程简介
世界坐标是按照笛卡尔坐标系定义出来的绝对坐标系,下面的各种坐标系都建立在世界坐标的基础上。对象坐标系对象被应用于任何...
CSS3特性查询(Feature Query: @supports)功能简介
这是2017年不能不了解和学习的一个CSS新特性,非常实用,考虑到现实世界浏览器的复杂性,该特性本应该先于其他新特性出来。我们已经知道使用媒体查询(Media Que...
React JSX语法简介
JSX是一种类似XML的标签语法,用来简化代码,我们可以不使用JSX,但了解并使用也没什么坏处:)在React中,JSX是一个使用 React.createElement() API的快捷方式...
常见面试题JavaScript闭包(ES5语法)
JavaScript闭包(Closure)是常见的JS面试题,是否理解闭包是一个简单的区分JS初级和高级程序员的判例。几乎每个JS程序员都在使用闭包,有意或无意间。比如编写一个jQuery鼠标点击处理函数:$(function()
CSS3弹性布局弹性流(flex-flow)属性详解和实例
弹性布局是CSS3引入的强大的布局方式,用来替代以前Web开发人员使用的一些复杂而易错hacks方法(如使用float进行类似流式布局)。其中flex-flow是flex-direction...
通过实例深入理解HTML5/CSS3/SVG/WebGL的技术本质
使用HTML5 FileReader和Canvas压缩用户上传的图片
手机用户拍的照片通常会有2M以上,这对服务器带宽产生较大压力。因此在某些应用下(对图片要求不那么高)我们可以在客户端来压缩图片,然后再提交给服务器。总体...
WebVR简介和常用资源链接
什么是WebVR这是一个实验性的JavaScript API,提供了在用户网页浏览器中访问虚拟现实设备的统一接口。当前主流VR设备如Oculus Rift DK2、谷歌的CardBoard、三星...
CSS3图片混合(Blend)效果及其参考计算公式一览表
在Photoshop软件中,混合是将两个图层的色彩值进行合成,从而创造出大量的效果。在这些效果的背后实际是一些简单的数学公式在起作用。下面所介绍的公式仅适用于R...
WebGL入门教程4 - 使用纹理贴图(Texture Map)
3D建模和纹理贴图的关系就好比人体和皮肤(或着装)的关系,3D建模用来处理空间属性,而贴图适合用来处理细腻的表面属性。如果不使用贴图,而想在表面达到足够的...
如何使用WebGL创建一个逼真的下雨动画
之前写过文章来分别讲解如何使用CSS3和Canvas2D实现过雨滴和下雨动画。通过背景处理看起来也有视觉上的3D效果,但并非真正的3D场景,如果要加入用户交互,进行36...
IE各版本CSS Hack(兼容性处理)语法速查表
为了兼容IE各个版本,需要在CSS中添加额外的代码,比如以前常用的_width。之所以工作,是因为浏览器会忽略不能解析的样式规则,因此举个例子来说,把_width写在w...
如何基于Canvas来模拟真实雨景Part2:重力掉落和雨滴融合
更多...