【CV】3D摄像头
Backto DeepCV
触摸屏实现了交互方式从一维到平面, 而 3D 摄像头将交互方式从平面变为立体。
2D摄像头有平面,3D 多出来的那一个 dimension,指的是 深度depth
。
获取3D信息,有两种方式,一种是模拟人眼视差用多个2D摄像头合成3D场景,另外一种是2D摄像头搭配深度传感器。
1. 视差法 - 双目视觉 Stereo
人眼是一个天然的 3D 相机, 这主要得益于偏光原理, 当人眼在看任何物体时, 由于两只眼睛在空间有一定间距约为 5cm, 即存在两个视角。 这样形成左右两眼所看的图像不完全一样, 称为视差。 这种细微的视差通过视网膜传递到大脑里, 就能显示出物体的前后远近, 产生强烈的立体感。
模拟这种方式,使用两个 2D 摄像头合成 3D 场景,叫做双目视觉 Stereo。
代表公司 Leap Motion, ZED, 大疆。
2. 2D摄像头+深度传感器
利用一个专业的深度传感器去测量depth,再和2D摄像头的图像结合,来构建3D场景。这种模式更为通用,效果一般也更好。主流深度传感器又分为两种方式:
2.1 结构光深度传感器
结构光, 英文叫做 Structured light, 通常采用特定波长的不可见的红外激光作为光源。特定波长的 Laser 发出的结构光照射在物体表面, 其反射的光线被带滤波的camera 相机接收, 滤波片保证只有该波长的光线能为 camera 所接受。 Asic 芯片对接收到的光斑图像进行运算, 得出物体的深度数据。
苹果公司的 IphoneX 采用收购了 primesense 的技术, 使用的是散斑结构光, 所谓散斑就是是激光照射到粗糙物体或穿透毛玻璃后随机形成的衍射斑点。 这些散斑具有高度的随机性, 而且会随着距离的不同而变换图案。也就是说空间中任意两处的散斑图案都是不同的。 只要在空间中打上这样的结构光, 整个空间就都被做了标记, 把一个物体放进这个空间, 只要看看物体上面的散斑图案, 就可以知道这个物体在什么位置了。 当然, 在这之前要把整个空间的散斑图案都记录下来, 所以要先做一次光源标定, 通过对比标定平面的光斑分布, 就能精确计算出当前物体距离相机的距离。产品就是 iPhoneX 上首先使用的 FaceID
。
2.2 TOF 深度传感器
TOF,time of flight,顾名思义是测量光飞行时间来取得距离, 具体而言就是通过给目标连续发射激光脉冲, 然后用传感器接收从反射光线, 通过探测光脉冲的飞行往返时间来得到确切的目标物距离。 因为光速激光, 通过直接测光飞行时间实际不可行, 一般通过检测通过一定手段调制后的光波的相位偏移来实现。
TOF 法根据调制方法的不同, 一般可以分为两种: 脉冲调制( Pulsed Modulation) 和连续波调制(Continuous Wave Modulation)。 脉冲调制需要非常高精度时钟进行测量, 且需要发出高频高强度激光, 目前大多采用检测相位偏移办法来实现 TOF 功能。下面图片描述了 TOF 相机(连续波) 的基本原理, 实际应用中, 通常采用的是正弦波调制。 由于接收端和发射端正弦波的相位偏移和物体距离摄像头的距离成正比, 因此可以利用相位偏移来测量距离。
应用场景
- 3D 人脸识别:iPhone X - FaceID
- 车载手势交互:BMW X5
- 体感游戏:XBox Kinect (已官宣停产)