【深度学习基础】3D相机成像原理简介

:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
:文章若有幸对你有帮助,可点赞 收藏 ⭐不迷路
:内容若有错误,敬请留言 指正!原创文,转载请注明出处

文章目录

    • 简介
    • 3D 相机方案
    • 结构光
    • 双目视觉
    • 光飞行时间法(TOF)
    • 总结


简介

随着机器视觉,自动驾驶等颠覆性的技术逐步发展,采用3D 相机进行物体识别,行为识别,场景建模的相关应用越来越多,可以说3D 相机就是终端和机器人的眼睛。3D 相机跟之前的普通相机(2D)比,又有哪些差别。3D 相机又称之为深度相机,顾名思义,就是通过该相机能检测出拍摄空间的景深距离,这也是与普通摄像头最大的区别。普通的彩色相机拍摄到的图片能看到相机视角内的所有物体并记录下来,但是其所记录的数据不包含这些物体距离相机的距离。仅仅能通过图像的语义分析来判断哪些物体离我们比较远,哪些比较近,但是并没有确切的数据。而3D 相机则恰恰解决了该问题,通过3D 相机获取到的数据,我们能准确知道图像中每个点离摄像头距离,这样加上该点在2d 图像中的(x,y)坐标,就能获取图像中每个点的三维空间坐标。通过三维坐标就能还原真实场景,实现场景建模等应用。
从上面描述可以看出,我们的眼睛就是一个天然的3D 相机,这主要得益于偏光原理,当人眼在看任何物体时,由于两只眼睛在空间有一定间距约为5cm,即存在两个视角。这样形成左右两眼所看的图像不完全一样,称为视差。这种细微的视差通过视网膜传递到大脑里,就能显示出物体的前后远近,产生强烈的立体感,这是1839 年,英国科学家温特斯顿发现的奇妙现象。自然的,人类就想到通过两个一定距离的普通摄像头来模拟人眼来获取3D 数据。这就是最初的双目立体相机,鉴于双目相机的一些缺陷,后来人们又发明了结构光和TOF 的方法来获取3D 数据。

3D 相机方案

目前市面上常有的3D 相机方案就这3 种:
(1)结构光(Structured-light),代表公司有奥比中光,苹果(Prime Sense),微软Kinect-1,英特尔
RealSense, Mantis Vision 等。
(2)双目视觉(Stereo),代表公司Leap Motion, ZED, 大疆;
(3)光飞行时间法(TOF),代表公司微软Kinect-2,PMD,SoftKinect, 联想Phab。
下图是这三种方式的一个简单而形象的图片介绍
【深度学习基础】3D相机成像原理简介_第1张图片

结构光

结构光,英文叫做Structured light,通常采用特定波长的不可见的红外激光作为光源,它发射出来的光经过一定的编码投影在物体上,通过一定算法来计算返回的编码图案的畸变来得到物体的位置和深度信息。根据编码图案不同一般有条纹结构光—enshape ,编码结构光—Mantis Vision, Realsense(F200), 散斑结构光—apple(primesense), 奥比中光。下图是一个典型的结构光相机的示意图:

【深度学习基础】3D相机成像原理简介_第2张图片
特定波长的Laser 发出的结构光照射在物体表面,其反射的光线被带滤波的camera 相机接收,滤波片保证只有该波长的光线能为camera 所接受。Asic 芯片对接收到的光斑图像进行运算,得出物体的深度数据。其基本的算法原理可参看下图:
【深度学习基础】3D相机成像原理简介_第3张图片
A 点:激光投影模块位置
C 点:CMOS 相机位置
d: BaseLine
l: 参考面到相机的距离
Z(X,Y): 物体表面(x,y)点到标定平面的距离。
物体表面任一点P(x,y)的深度信息可以通过比较P(x,y)与激光散斑投射到参考平面(虚线所示)上的点P’(x,y)的x 方向的偏移量得到。以奥比中光的方案为例,采用的是散斑结构光的技术,下图是camera 接收到的散斑图苹果公司的IphoneX 采用收购至primesense 的技术,也是散斑结构光,所谓散斑就是是激光照射到粗糙物体或穿透毛玻璃后随机形成的衍射斑点。这些散斑具有高度的随机性,而且会随着距离的不同而变换图案。【深度学习基础】3D相机成像原理简介_第4张图片
也就是说空间中任意两处的散斑图案都是不同的。只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置了。当然,在这之前要把整个空间的散斑图案都记录下来,所以要先做一次光源标定, 通过对比标定平面的光斑分布,就能精确计算出当前物体距离相机的距离。

结构光(散斑)的优点主要有:
1) 方案成熟,相机基线可以做的比较小,方便小型化。
2) 资源消耗较低,单帧IR 图就可计算出深度图,功耗低。
3) 主动光源,夜晚也可使用。
4) 在一定范围内精度高,分辨率高,分辨率可达1280x1024,帧率可达60FPS。
散斑结构光的缺点与结构光类似:
1) 容易受环境光干扰,室外体验差。
2) 随检测距离增加,精度会变差。

双目视觉

双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形式,他是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。目前有主动双目,被动双目之,被动双目就是采用可见光,好处是不需要额外光源,但是晚上无法使用,主动双目就是主动发射红外激光做补光,这样晚上也能使用。双目视觉仅仅依靠图像进行特征匹配,对附加设备要求低,在使用双目视觉相机前必须对双目中两个摄像头的位置进行精确标定。下面图片很好的简单阐述了双目相机如何获取物体的深度数据。同一直线上的3 个点在下端的相机都投影到cmos 同一个点,因此单独的这个相机没法分辨三个点的距离,但是这3 各点在上端相机的投影位置不同,通过三角测量办法和两个相机基线距离B,我们就可以计算出这3 个点离相机平面距离。
【深度学习基础】3D相机成像原理简介_第5张图片
当然完整的双目深度计算非常复杂,主要涉及到左右相机的特征匹配,计算会非常消耗资源。

双目相机的主要优点有:
1)硬件要求低,成本也低。普通CMOS 相机即可。
2)室内外都适用。只要光线合适,不要太昏暗。

但是双目的缺点也是非常明显:
1)对环境光照非常敏感。光线变化导致图像偏差大,进而会导致匹配失败或精度低。
2)不适用单调缺乏纹理的场景。双目视觉根据视觉特征进行图像匹配,没有特征会导致匹配失败。
3)计算复杂度高。该方法是纯视觉的方法,对算法要求高,计算量较大。
4)基线限制了测量范围。测量范围和基线(两个摄像头间距)成正比,导致无法小型化。

光飞行时间法(TOF)

顾名思义是测量光飞行时间来取得距离,具体而言就是通过给目标连续发射激光脉冲,然后用传感器接收从反射光线,通过探测光脉冲的飞行往返时间来得到确切的目标物距离。因为光速激光,通过直接测光飞行时间实际不可行,一般通过检测通过一定手段调制后的光波的相位偏移来实现。TOF 法根据调制方法的不同,一般可以分为两种:脉冲调制(Pulsed Modulation)和连续波调制(Continuous Wave Modulation)。脉冲调制需要非常高精度时钟进行测量,且需要发出高频高强度激光,目前大多采用检测相位偏移办法来实现TOF 功能。下面图片描述了TOF 相机(连续波)的基本原理,实际应用中,通常采用的是正弦波调制。由于接收端和发射端正弦波的相位偏移和物体距离摄像头的距离成正比,因此可以利用相位偏移来测量距离。

【深度学习基础】3D相机成像原理简介_第6张图片

因为TOF 并非基于特征匹配,这样在测试距离变远时,精度也不会下降很快,目前无人驾驶以及一些高
端的消费类Lidar 基本都是采用该方法来实现。
TOF 的优点主要有:
1)检测距离远。在激光能量够的情况下可达几十米。
2)受环境光干扰比较小。
但是TOF 也有一些显而易见的问题:
1)对设备要求高,特别是时间测量模块。
2)资源消耗大。该方案在检测相位偏移时需要多次采样积分,运算量大。
3)边缘精度低。
4)限于资源消耗和滤波,帧率和分辨率都没办法做到较高。目前消费类最大也就VGA。

总结

从上面三种主流的3D 相机成像方案来看,各有优劣,但是从实际应用场景来看,在非无人驾驶领域,结构光,特别是散斑结构光的用途是最广泛。因为从精度,分辨率,还有应用场景的范围来看双目和TOF 都没有办法做到最大的平衡。而且对于结构光容易受环境光干扰,特别是太阳光影响问题,鉴于此类相机都有红外激光发射模块,非常容易改造为主动双目来弥补该问题。针对这三种方案,我们针对常用场景做了一些测试。
当然这三种方案在发展过程中也有一些互相融合趋势,如主动双目+结构光,取长补短,使3D 相机能适应更多的场景。也有一些同时使用,如手机前置基本确认会采用结构光来做FaceId,但是后置用来做AR 应用,结构光和TOF 都有机会。虽然项目具体使用哪种方案,要结合当前硬件资源,对性能要求等来确定,但从最广泛的使用角度来看,散斑结构光无疑是目前最佳的方案。

你可能感兴趣的:(#,Deep,Learning,机器学习,人工智能,3d)