3D结构光
3D结构光
3D结构光的整个系统包含结构光投影设备、摄像机、图像采集和处理系统。其过程就是投影设备发射光线到被测物体上,摄像机拍摄在被测物体上形成的三维光图形,拍摄图像经采集处理系统处理后获得被测物体表面数据。在这个系统中,当相机和投影设备相对位置一定时,投射在被测物体上的光线畸变程度取决于物体表面的深度,所以在拍摄图像中可以得到一张拥有深度的光线图像。
3D结构光的根本就是通过光学手段获取被拍摄物体的三维结构,再通过这一信息进行更深度的应用。

1 红外发射器
红外光发射部分是整个3D视觉重要的组件之一,用于发射经过特殊调制的不可见红外光至拍摄物体,其发射图像的质量对整个识别效果至关重要。
采用结构光方案的 3D 视觉相比于 TOF 方案要复杂得多,主要是结构光方案需要采用 pattern 图像(如激光散斑等)进行空间标识,因此需要定制的DOE(衍射光栅)和 WLO(晶圆级光学透镜,包括扩束元件、准直元件、投射透镜等)。但实际上WLO要视情况而定,在我从事的VCSEL项目中,就只有准直Lens,没有扩束元件和投射透镜。

整个不可见光红外线(IR)发射模组的工作流程主要为:
1)不可见红外光发射源(激光器或者LED)发射出不可见红外光;2)不可见红外光通过准直镜头进行校准;3)校准后的不可见红外光通过光学衍射元件(DOE)进行散射,进而得到所需的散斑图案。因为散斑图案发射角度有限,所以需要光栅将散斑图案进行衍射“复制”后,扩大其投射角度。因此IR发射模组主要部件包括:不可见红外光发射源(激光器或者LED)、准直镜头(WLO)、光学衍射元件(DOE)。
1.1 近红外光源选择,VCSEL是最佳方案
目前,可以提供 800-1000nm 波段的近红外光源主要有三种:红外LED、红外LD-EEL(边发射激光二极管)和VCSEL(垂直腔面发射激光器)。
VCSEL 可以说是红外激光LD的一种,全名为垂直共振腔表面放射激光器,顾名思义,它采用垂直发射模式,与其他红外LD的边发射模式不同。
VCSEL的垂直结构更加适合进行晶圆级制造和封测,规模量产之后的成本相比于边发射LD有优势,可靠性高,没有传统的激光器结构如暗线缺陷的失效模式。相比于LED,VCSEL的光谱质量高,中心波长温漂小,响应速度快,优势明显。
边发射EEL激光二极管LD结构图

垂直发射模式VCSEL结构图

三种主流近红外光发射光源优劣对比:

综合分析三种方案,LED 虽然成本低,但是发射光角度大,必须输出更多的功率以克服损失。此外,LED 不能快速调制,限制了分辨率,需要增加闪光持续时间;边发射LD 也是手势识别的可选方案(如DFB),但是输出功率固定,边缘发射的模式在制造工艺方面兼容性不好;VCSEL 比 LD-EEL 的优势在于所需的驱动电压和电流小,功耗低,光源可调变频率更高(可达数
GHz),与化合物半导体工艺兼容,适合大规模集成制造。尤其是 VCSEL 功耗低、可调频率高、垂直发射的优点,使其比 LD-EEL 更加适合消费电子智能终端。
1.2 晶圆级光学元件WLO是核心组件
WLO 晶圆级光学器件,是指晶元级镜头制造技术和工艺。与传统光学器件的加工技术不同,WLO 工艺在整片玻璃晶元上,用半导体工艺批量复制加工镜头,多个镜头晶元压合在一起,然后切割成单颗镜头,具有尺寸小、高度低、一致性好等特点。光学透镜间的位置精度达到 nm 级。传统光学镜头与晶圆级镜头对比

在 3D 视觉发射端结构复杂的情况下,光学器件采用 WLO 工艺,可以有效缩减体积空间,同时器件的一致性好,光束质量高,采用半导体工艺在大规模量产之后具有成本优势,是未来标准化的光学透镜组合的最佳选择。
由于WLO 工艺由于是采用半导体工艺和设计思路进行光学器件的制造,因此整个流程更加复杂,无论是设计流程还是加工环节,都需要更加先进的设计思路和更加精细的加工处理。
1.3 DOE对于结构光方案至关重要
在3D视觉结构光方案中,经过准直镜头校准后的激光束并没有特征信息,必须采用特定的 pattern 光学图案(如激光散斑等)实现深度信息的测量,因此下一步需要对激光束进行调制,使其具备特征结构,光学衍射元件(DOE)就是用来完成这一任务的。
VCSEL射出的激光束经准直后,通过DOE进行散射,即可得到所需的散斑图案。由于DOE对于光束进行散射的角度(FOV)有限,所以需要光栅将散斑图案进行衍射“复制”后,扩大其投射角度。

DOE 衍射光学元件(Diffractive Optical
Elements)是基于光的衍射原理,利用计算机辅助设计,并通过半导体芯片制造工艺,在基片上(或传统光学器件表面)刻蚀产生台阶型或连续浮雕结构(一般为光栅结构),形成同轴再现、且具有极高衍射效率的一类光学元件。通过不同的设计来控制光束的发散角和形成光斑的形貌,实现光束形成特定图案的功能。
2 不可见光红外线(IR)接收模组
在3D结构光方案中,RX红外接收部分主要为一颗红外摄像头,用于接收被物体反射的红外光,采集空间信息。该红外摄像头主要包括三部分:红外CMOS传感器、光学镜头、红外窄带干涉滤色片。在基本结构上与目前主流的可见光摄像头类似,但是在具体的零部件方面存在差异:
1)可见光CMOS传感器需要识别RGB三色,对分辨率的要求高,红外CMOS只需要识别近红外光,分辨率要求不高;
2)可见光摄像头需要红外截止滤色片将红外光截止掉,只通过可见光,而红外摄像头只通过特定波段的近红外光,而将可见光截止掉,因此需要窄带滤色片;
3)由于可见光摄像头对图像分辨率要求高,因此光学镜头的设计非常复杂,红外摄像头对光学镜头的要求不高。
红外摄像头主要结构

典型可见光摄像头基本构成

2.1 特制红外CMOS
在 3D 视觉方案中,红外 CMOS的要求是其能接受被拍摄物体发射回来的红外散斑图案,不需要对其他波长的光线进行成像。
2.2窄带滤光片
在IR发送端,VCSEL发射的是940nm波长的红外光,因此在接受端需要将940nm以外的环境光剔除,让接受端的特制红外CMOS只接收到940nm的红外光。为达到这一目的,需要用到窄带滤光片。
所谓窄带滤光片,就是在特定的波段允许光信号通过,而偏离这个波段以外的两侧光信号被阻止。窄带滤光片主要采用干涉原理,需要几十层光学镀膜构成,相比普通的RGB吸收型滤光片具有更高的技术难度和产品价格。这个镜片在国内,很大部分由水晶光电提供。

2.3 接收端镜头(Lens)
接收端镜头为普通镜头,业内方案成熟,各个厂商都能提供。
总体而言,接收端除窄带滤波片较特殊,制造难度较高外,特制红外CMOS和镜头都是成熟产品,不存在制造难度。
3 可见光摄像头
可见光镜头模组,采用普通镜头模组,用于2D彩色图片拍摄,非新增业务。
在 3D 视觉体系中,无论是结构光方案,还是 TOF 方案,红外光线的作用都是采集深度 Z 轴信息,从而确定物体的景深信息,而物体的平面 XY 轴信息需要借助普通可见光摄像头进行采集。

4 图像处理芯片
图像处理芯片,将普通镜头模组拍摄的2D彩色图片和IR接收模组获取的3D信息集合,通过复杂的算法将IR接收端采集的空间信息和镜头成像端采集的色彩信息相结合,生成具备空间信息的三维图像。

该芯片设计壁垒高,尤其是算法层面的要求较高,需要根据3D视觉方案处理深度信息,目前仅有少数几家公司拥有该技术。
好了,3D成像技术的硬件构成我们全部拆解清楚了,总结成下图,有了这个基础,再找其供应商就是对号入座的事情了。

3D结构光的更多相关文章
- 教你如何认识人脸识别开发套件中的双目摄像、3D结构光摄像头、单目摄像头的区别及详细讲解
深圳市宁远电子提供的人脸识别模组可支持双目摄像头和3D结构光摄像头,在客户咨询中经常有被问到双目的为什么会比单目的成本高,区别在哪里,他们的适用于哪些场景呢?在此,深圳市宁远电子技术工程师就为大家详细 ...
- 3D-camera结构光原理
3D-camera结构光原理 目前主流的深度探测技术是结构光,TOF,和双目.具体的百度就有很详细的信息. 而结构光也有双目结构光和散斑结构光等,没错,Iphone X 的3D深度相机就用 散斑结构光 ...
- TOF与结构光技术分析
TOF与结构光技术分析 一.概述 结构光(Structuredlight),通常采用特定波长的不可见的激光作为光源,它发射出来的光带有编码信息,投射在物体上,通过一定算法来计算返回的编码图案的畸变来得 ...
- 结构光和ToF
- 双目结构光三维扫描仪获得的三维点云模型(GIF)
- “全隐藏式3D摄像头”亮相,FindX如何将设计与体验融为一体
北京时间6月20日,OPPO在卢浮宫发布暌违四年之久的Find旗舰系列新手机--Find X.在Find X背后,我认为其设计值得深思.尤其是Find X为突破传统设计束缚,首创双轨潜望结构有着重要启 ...
- Kinect开发学习笔记之(一)Kinect介绍和应用
Kinect开发学习笔记之(一)Kinect介绍和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...
- Kinect的学习笔记发展(一)Kinect引进和应用
Kinect的学习笔记发展(一)Kinect引进和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...
- Kinect的学习笔记发展一Kinect引进和应用
Kinect开发学习笔记之(一)Kinect介绍和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...
随机推荐
- 030- 控制语句if…else…
语法: 第一种结构: if(boolean表达式){ java语句; } 解释:如果if后面的boolean表达式是true就执行大括号里面的java语句 如果是false就不执行大括号中的java语 ...
- hdu4993(水题)
题意: x * a + y * b = c xyab都是正整数,给你a,b,c问有多少对xy组合满足等式. 思路: 水题,直接枚举其中一个,然后看求出的y是不是正整数就行了,第 ...
- YII框架中的srbac权限管理模块的安全与使用(版本是1.1.20)
0x01 前言 srbac的原理: YII框架的srbac模块是一个专门管理权限的一个模块,那它是怎么管理权限的呢.我们知道YII框架的网页显示是由控制器实现的,控制器继承父类CController和 ...
- Nginx配置动静分离
简单解释 所谓动静分离指的是当访问静态资源时,路由到一台静态资源服务器,当访问是非静态资源时,路由到另外一台服务器 配置实现 修改server块 server块配置参考,配置规则可自行修改,符合正则语 ...
- 腾讯暑期 前后七面 + hr(已拿offer面经)
以下是时间线 魔方 魔术师工作室 3.19 一面(120mins) c++ struct和union区别? 指针和引用的区别? 左值和右值? 字节对齐的作用? 什么情况下需要自定义new? mallo ...
- Linux 内核调度器源码分析 - 初始化
导语 上篇系列文 混部之殇-论云原生资源隔离技术之CPU隔离(一) 介绍了云原生混部场景中CPU资源隔离核心技术:内核调度器,本系列文章<Linux内核调度器源码分析>将从源码的角度剖析内 ...
- C++ primer plus读书笔记——第10章 对象和类
第10章 对象和类 1. 基本类型完成了三项工作: 决定数据对象需要的内存数量: 决定如何解释内存中的位: 决定可使用数据对象执行的操作或方法. 2. 不必在类声明中使用关键字private,因为这是 ...
- ElasticSearch7使用指导
目录结构: 一.es概述 二.es安装/head插件安装/kibana安装 三.es核心概念 四.IK分词器 五.RestFul操作 六.CRUD(增删改查) 七.Springboot集成es --- ...
- 数据流分析软件SQLFlow的高阶模式Job任务介绍
SQLFlow是一个可视化的在线处理SQL对象依赖关系的工具,只需要上传你的SQL脚本,它可以自动分析SQL里的数据对象,包括database.schema.table.view.column.pro ...
- [bug] flink on yarn 启动失败
参考 https://www.cnblogs.com/huangguoming/p/11732663.html