留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

利用激光散斑获取深度图

张绍阳 侯旭阳 崔华 高小梅

张绍阳, 侯旭阳, 崔华, 高小梅. 利用激光散斑获取深度图[J]. 中国光学, 2016, 9(6): 633-641. doi: 10.3788/CO.20160906.0633
引用本文: 张绍阳, 侯旭阳, 崔华, 高小梅. 利用激光散斑获取深度图[J]. 中国光学, 2016, 9(6): 633-641. doi: 10.3788/CO.20160906.0633
ZHANG Shao-yang, HOU Xu-yang, CUI Hua, GAO Xiao-mei. Depth image acquisition using laser speckle[J]. Chinese Optics, 2016, 9(6): 633-641. doi: 10.3788/CO.20160906.0633
Citation: ZHANG Shao-yang, HOU Xu-yang, CUI Hua, GAO Xiao-mei. Depth image acquisition using laser speckle[J]. Chinese Optics, 2016, 9(6): 633-641. doi: 10.3788/CO.20160906.0633

利用激光散斑获取深度图

doi: 10.3788/CO.20160906.0633
基金项目: 

中央高校基本科研业务费资助项目(自然科学类) No.310824152009

详细信息
    通讯作者: 张绍阳(1971-),男,山西襄汾人,博士后,教授,硕士生导师,主要从事交通信息工程、软件技术及理论、模式识别等方面的研究。E-mail:zhsy@chd.edu.cn
  • 中图分类号: TP391.4

Depth image acquisition using laser speckle

Funds: 

Supported by Basic Scientific Research Projects(Natural Sciences) of Central Universities of China No.310824152009

More Information
图(16) / 表 (2)
计量
  • 文章访问数:  696
  • HTML全文浏览量:  168
  • PDF下载量:  934
  • 被引次数: 0
出版历程
  • 收稿日期:  2016-06-22
  • 修回日期:  2016-07-18
  • 刊出日期:  2016-12-01

利用激光散斑获取深度图

doi: 10.3788/CO.20160906.0633
    基金项目:

    中央高校基本科研业务费资助项目(自然科学类) No.310824152009

    通讯作者: 张绍阳(1971-),男,山西襄汾人,博士后,教授,硕士生导师,主要从事交通信息工程、软件技术及理论、模式识别等方面的研究。E-mail:zhsy@chd.edu.cn
  • 中图分类号: TP391.4

摘要: 相对于普通灰度和彩色二维图像,深度图像可以得到物体的三维信息,使视觉识别和人机交互更加智能。国内外目前还没有低成本、公开的实时获取高质量深度图的方法。本文在对散斑图获取深度图原理研究的基础上,采取激光散斑的方式,运用块匹配的方法给出了一种大范围深度图的获取方法。首先,从原理上验证了块匹配方法的可行性;然后,分别从理论和实验两个方面对深度图的计算公式进行了推导和验证;再次,对深度图恢复过程进行了详细叙述,包括散斑图像的预处理和块匹配的过程;最后,给出了运用该块匹配方法得到的实验数据。实验结果表明,本文方法在物体距离相机50 cm左右时精度可以达到5 mm,200 cm时精度可以达到5 cm,可以满足室内大部分对象的识别要求。

English Abstract

张绍阳, 侯旭阳, 崔华, 高小梅. 利用激光散斑获取深度图[J]. 中国光学, 2016, 9(6): 633-641. doi: 10.3788/CO.20160906.0633
引用本文: 张绍阳, 侯旭阳, 崔华, 高小梅. 利用激光散斑获取深度图[J]. 中国光学, 2016, 9(6): 633-641. doi: 10.3788/CO.20160906.0633
ZHANG Shao-yang, HOU Xu-yang, CUI Hua, GAO Xiao-mei. Depth image acquisition using laser speckle[J]. Chinese Optics, 2016, 9(6): 633-641. doi: 10.3788/CO.20160906.0633
Citation: ZHANG Shao-yang, HOU Xu-yang, CUI Hua, GAO Xiao-mei. Depth image acquisition using laser speckle[J]. Chinese Optics, 2016, 9(6): 633-641. doi: 10.3788/CO.20160906.0633
    • 如何快速、准确地获取图像深度信息一直是计算机视觉领域的研究热点。一般来说,根据测量方法的不同,光学三维测量主要分为:被动式和主动式[1]。被动式是指利用周围环境条件成像,不需要主动投射,如双目测距,即通过两个摄像头对同一场景拍摄,再进行匹配,从而进行测距。主动式是指用专门的能量束(激光、超声波等)照射到物体上,并检测接收回波,主流技术包括TOF(Time-of-Flight)测距和结构光测距等。TOF通过测量光照射到物体并返回的时间进行测距,原理类似于雷达测距。结构光法是光源投影特定的编码图案到物体上,把深度变化信息转换成编码图案的变化,通过检测编码图案的变化从而获取深度信息。结构光法包括点结构光、线结构光、面结构光。单点结构光测量法每次只投影一点,测量精度高,效率很低;线结构光法包括单线结构光和多线结构光法,指的是光源向物体投影一条线或者多条线,精度较高,效率较低;面结构光是光源向物体投射平面几何图案,精度低,但是效率最高,成本较低。激光散斑属于面结构光的一种,是将激光透过毛玻璃形成随机干涉斑点,在毛玻璃与激光条件不变的情况下,利用激光散斑的分布随距离呈现出规律性的变化,从而进行深度信息获取[2-5]

      与TOF技术相比,基于散斑图像的深度摄像头,同样能实现实时性,但其成本大幅下降。微软的体感相机Kinect正是基于此技术实现的,Kinect深度图像处理的核心芯片PS1080由以色列Prime Sense公司生产,其核心技术正是使用散斑图像来获取深度图[6]。但是微软的Kinect价格较高并且技术封闭。Jan SMISEK在文献[7]中对Kinect做了比较系统的研究,介绍了Kinect的硬件结构和成像原理,并与单反相机成像性能、TOF成像性能做了比较,但其文章侧重于Kinect的应用与校准,对于Kinect原理的介绍不是很详细。王一娇在对结构光深度图像获取算法研究中,对Kinect成像原理与算法做了详细的介绍[1],但其算法运算量非常大,需要使用高性能计算机才能快速恢复出高质量的深度图,使用条件受到限制。

      本文在对获取的散斑图自相关性和互相关性进行详细研究的基础上,给出一种使用散斑图进行块匹配的深度获取算法,计算量小,便于更广泛的应用,有助于降低深度图成像设备的成本。

    • 红外激光发射器发射红外激光,然后红外激光通过毛玻璃,照射到物体表面[8-11],再通过红外摄像头拍摄红外激光在物面所形成的散斑图[12-17]。散斑图获取的示意图如图 1所示。

      图  1  散斑图获取示意图

      Figure 1.  Schematic diagram of laser speckle′s acquisition

    • 基于散斑图采用块匹配方法获取深度图,即在测试图中取任意一个小块,在参考图中搜索与其最相似的块。要利用散斑图进行块匹配,散斑图必须具有很好的自相关性和互相关性,即散斑图中的某一小块与自己的相关系数要高,与其它块的相关性要低,这样才能匹配得到。其次要验证与相机不同距离的平面上边的块要有很好的互相关性,这样才能实现准确匹配。

      本文选用距相机1 m的一个平面进行测试,红外摄像头的分辨率是1 280 pixel×720 pixel。选取平面上的一个点,并以该点为中心,取一个31 pixel×31 pixel的块。用该块与平面内所有点为中心的相同大小的块进行互相关计算(距边界15 pixel的点除外)。这里以点(768,450) 为例,计算出的互相关系数画成三维图如图 2所示。

      图  2  同一平面点(768,450) 与整幅图互相关系数三维图

      Figure 2.  Cross-correlation coefficient′s 3D graph of the same plane′s point(768,450) and the whole image

      图 2中最大的互相关系数是1,且互相关系数的峰值出现在点(768,450) 处。从图 2可以看出,相关系数只有一个峰值,在其它地方的互相关系数值都非常小。也就是说一幅散斑图中的某一块,只与自身有很大的相关性,与其它块相关性非常低,这是这种散斑图的一个非常重要性质,具备这种性质块匹配的方法才可行。

      在一幅散斑图中,某一块只与自身有较高的相关性,与其它块相关性很低。接下来需要测试不同深度的散斑图散斑规律是否会发生变化。

      这里以1 m和0.9 m的两个平面进行测试。随机抽取0.9 m平面上一个点为中心的31 pixel×31 pixel的块在1 m的平面上进行匹配。以点(768,450) 为例,计算出的互相关系数画成三维图如图 3所示。图 3中,最大的互相关系数是0.799 034,且互相关系数的峰值出现在1 m平面的点(762,450) 处,也就是说横向偏移了6 pixel。

      图  3  不同平面点(768,450) 与整幅图互相关相关系数三维图

      Figure 3.  Cross-correlation coefficient′s 3D graph of the different plane′s point (768,450) and the whole image

      为了验证横向偏移是由深度变化引起,而不是由物体本身的移动所导致,分别在距相机0.9 m和0.8 m处,移动物体,重复测试其与1 m参考平面的横向偏移,发现0.9 m处的物体横向偏移恒为6 pixel,0.8 m的物体横向偏移恒为15 pixel,这说明深度变化会引起散斑图像的横向偏移。

      图 3的互相关系数三维图可以看出,不同平面匹配也有很好的相关性,匹配到的互相关系数值要比没有匹配到的互相关系数值大得多,且只有一个峰值。这说明不同平面,散斑模式没有变化,只是散斑的亮度发生变化,散斑位置发生横向偏移。这个结论说明可以采用块匹配的方法,通过检测块的横向偏移来获取深度值。

      以上两个实验验证了散斑图的两个重要性质:(1) 一幅散斑图中的任意一块,只与自身有较大的相关性,与其它块相关性都很小;(2) 随着物体与相机距离的变化,散斑图只是发生横向偏移,散斑模式不发生变化。

    • 从2.2节实验得出的结论可知,物体距离相机距离发生变化,其散斑图模式不改变,只发生横向偏移。故可以选取一个平面作为参考图,检测测试图上每一块相对于参考图发生的横向偏移量,从而获取深度信息。散斑图的光路分析如图 4所示。其中,D点为红外激光发射器,C点为红外相机镜头,D点发射的红外激光照射到参考平面E点,在红外相机中成像点为B点,若光路中间有F点遮挡,并反射红外光,其成像点就会是A点,通过测量A点与B点的距离,就可以利用三角测距得出F点距离相机的距离[1]。设参考平面距离相机的距离是L,深度计算公式推导过程如下:

      图  4  光路几何图

      Figure 4.  Geometric graph of light path

      做辅助线FGG点为CF延长线与参考平面的交点,设相机的焦距为f,一个像素点的实际距离为p,偏移的像素量为n

      AB=np

      ∵△ABC与△CGE相似

      , 又∵△CDF与△EFG相似

      带入GE,得:

      (1)

      式中,CD表示红外摄像头和红外激光发射器的距离,L表示参考平面离相机的距离,f表示相机的焦距,n表示偏移的像素量,p表示一个像素格的实际距离,文中其它公式中的变量与式(1) 的意义相同。

      同理可以推导出当物体距离比参考平面远时,

      (2)

      即偏移的像素要记为负值。

      当物体在参考平面上时,偏移像素为0,即Dis=L,故上面推导出的距离计算公式同时满足物体近于参考平面、远于参考平面和在参考平面上的情况。

    • 为了验证以上公式的正确性,在0.5 m到2.0 m范围内,每隔10 cm拍摄一幅平面图。以1 m处的平面作为参考平面,计算每一个平面上每一个点(边界小于匹配块的一半的点除外)相对于参考平面的偏移量,并求其平均值,作为该平面相对于参考平面的偏移量。

      经过测试,得到不同深度图像与参考图的横向与纵向偏移量关系,如表 1所示。

      表 1  深度与横向偏移量关系

      Table 1.  Relation of depth and crosswise offset

      深度/m横向偏移/pixel纵向偏移/pixel深度/m横向偏移/pixel纵向偏移/pixel深度/m横向偏移/pixel纵向偏移/pixel深度/m横向偏移/pixel纵向偏移/pixel
      0.558.87-0.820.95.990.261.3-13.181.101.7-25.171.16
      0.639.22-0.421.0001.4-16.521.361.8-24.970.86
      0.724.6201.1-3.690.431.5-19.881.491.9-28.230
      0.814.840.171.2-8.800.751.6-23.891.682.0-28.710.75

      表 1可以看出,纵向偏移量在0左右,横向偏移量随着深度的变化而变化。把表 1中的横向偏移量和距离拟合成曲线,如图 5所示,其中横坐标是距离,纵坐标是像素横向偏移量。

      图  5  实际测量到的深度与像素横向偏移量关系曲线

      Figure 5.  Curve of measured depth vs. pixel′s crosswise offset

      本次测试,式(1) 和(2) 中的L(相机距参考平面的距离)为100 cm,CD(红外激光发射器与红外相机的距离)为5 cm,p(一个像素点代表的实际距离),f(相机焦距),都是红外相机的参数,f/p=1 187.464。把以上值带入式(1) 中,得到深度值与横向偏移的关系为:

      (3)

      同样,Dis在50 cm到200 cm范围内式(3) 画出的曲线图如图 6所示。

      图  6  公式计算到的深度与像素横向偏移量关系曲线

      Figure 6.  Curve of depth computed with formula vs. pixel′s crosswise offset

      对比图 5图 6,两个曲线基本重合,说明了式(1) 的正确性,因此可以用该公式来计算深度值。

    • 基于块匹配的深度图获取算法,其具体的恢复过程如下:

      首先,选择一幅平面散斑图作为参考图,以1 m作为示例。然后,在测试图上逐点进行匹配(边缘小于匹配块宽度一半的点除外),测试图上每一个点(x,y)的匹配方法为以(x,y)为中心,选择一个31 pixel×31 pixel的块,在参考图上搜索与其相匹配的块,并计算在参考图上匹配到点的坐标与(x,y)坐标的横向偏移量,向右偏移记为正,向左偏移记为负,把计算出的偏移量带入式(1) 就可以得到点(x,y)的深度值。依次计算每一个点的深度值,就恢复出了深度图像。

      这里的关键问题就在于如何在参考图上搜索与测试图中块相匹配的块。在2.2节散斑特性分析中,求两个块间的互相关系数可以用于匹配两个块。但是互相关系数的计算量非常大,测试图中每一个点对应的块,都要与参考图中不同偏移处对应的块进行互相关计算。以1 280 pixel×720 pixel大小的散斑图,要计算的目标深度范围为50~200 cm为例,要在参考图中搜索的偏移范围为90×3(如表 1所示,深度为50 cm时,测试图相对于参考图横向偏移量为58 pixel,深度为200 cm时,横向偏移量为-28 pixel,故在参考图中的搜索范围取横向偏移量为-30~60 pixel比较合适;由于纵向也会有少量偏移,故除了搜索测试图所在行外,最好搜索与其相邻的上下两行),所以计算互相关系数的次数大概为1 280×720×90×3,这个计算量相当巨大,计算速度也会很慢。

      所以要用更加简单的计算方法进行匹配。这里对散斑图像进行二值化,二值化后的参考图像与测试图像直接计算异或,测试图的亮斑处异或值为1表示未匹配到,为0则表示匹配到。

    • 首先对拍摄到的散斑图进行二值化,在二值化的过程中主要有两个问题:(1) 同一深度散斑图像不同位置亮度相差较大;(2) 不同深度散斑图像亮度相差较大。所以选用的二值化方法是局部自适应二值化。局部自适应二值化图的一部分如图 7所示。

      图  7  局部自适应二值化图

      Figure 7.  Local adaptive binary image

      从二值化图中可以看到,每一个亮斑都是一块并不是单点,有些地方两个块也连接到一起,而且图中出现单点的噪声点。所以接下来要剔除二值化图中的每一个孤立点,这些孤立点指一个亮点上下为黑或者左右均为黑的点。剔除点后的散斑图如图 8所示。

      图  8  剔除后的散斑二值化图

      Figure 8.  Speckle binary image after excluding isolated points

      剔除后的散斑图把孤立点都剔除掉了,被连接在一起的块也被分开。接下来把每一个连通域处理成单点即可。最后二值化的结果如图 9所示。

      图  9  单点散斑图

      Figure 9.  Single points speckle image

    • 把参考图像和测试图像都处理成图 9所示的单点散斑图。然后,测试图从向左偏移60 pixel(对应最近距离50 cm相对100 cm的横向偏移量)到向右偏移30 pixel(对应最远距离200 cm相对100 cm的横向偏移量),一个像素一个像素的移动,分别与参考图计算异或图,测试图与参考图不重叠部分不进行计算。如图 10所示,黑色表示参考图,灰色表示测试图。图 10(a)表示测试图向左偏移时,与参考图异或的示意图,图 10(b)表示测试图向右偏移时,与参考图异或的示意图。

      图  10  参考图与测试图异或区域示意图

      Figure 10.  Schematic diagram of reference image and test image′s xor area

      图 9所示的块与参考图在某个偏移上匹配到时和未匹配到时的异或图如图 11图 12所示。

      图  11  匹配到的异或图

      Figure 11.  Matched Xor image

      图  12  未匹配到的异或图

      Figure 12.  Unmatched Xor image

      对比图 11图 12可以看出,未匹配到时,测试图与参考图中的亮点在异或图中都为亮点,且对应的亮点间有一定的距离;匹配到的时候,在异或图中,要么对应的点成了黑点,要么对应的两个点相邻,极个别的点不相邻。

      并不是所有匹配到的点都是黑点的原因是距离不同时斑点除了横向偏移外,其整体亮度分布也有微量变化,这就导致3.1节中二值化后把斑点缩小成一个单点的时候位置会有微量变化。

      同一个斑点,在距离相机90 cm和100 cm时其散斑图如图 13(a)13(b)所示。二值化后的斑点如图 13(c)13(d)所示,图中画圈的地方为把连通域缩小成单点时单点的位置。

      图  13  不同距离亮斑图

      Figure 13.  Bright speckle image at different distances

      图 13(c)13(d)可以看出,不同距离同一个斑点缩小的单点位置将会不同,所以导致了同一位置的单点不能完全对应到一起,异或结果不为0。

      接下来,需要统计测试图上每一个点在所有偏移中对应的块(以该点为中心大小为31 pixel×31 pixel的块,边界点除外)上匹配到的点的数量,匹配到点最多的偏移量记为该点相对于参考图像的偏移量,带入式(1) 中即可求出该点的深度。以此类推,计算每一个点的深度。

      使用以上匹配方法计算拍摄到的散斑图像和参考散斑图像的异或值,计算次数为图像的像素数,而且计算方法非常简单、快速,算法复杂度只有O(n)。使用以上方法匹配到的深度图如图 14所示。

      图  14  测试散斑图和计算出的深度图

      Figure 14.  Test speckle image and the computed depth image

    • 深度图分辨率是指在一定距离处,深度值变化最小时,深度图像可以将其区分出来。这里以如图 15所示的斜面进行分析。

      图  15  斜面深度图

      Figure 15.  Depth image with inclined plane

      取其中一行画成曲线图如图 16所示。从斜面曲线图中可以很明显地看出,深度为0.9 m时,深度分辨率为1.6 cm,随着深度的增加,分辨率降低(可分辨的最小距离增大),深度到1.4 m时,深度分辨率降到了3.5 cm。

      图  16  斜面中一行的曲线图

      Figure 16.  Curve of graphone row in inclined plane

      在相同的深度下,相对于参考平面的横向偏移量n越大,深度分辨率越高。

      变换式(1) 可以得到:

      (4)

      故增大CD、f或者减小p都可以提高深度分辨率,也就是说要提高深度分辨率,需要增加红外相机和红外摄像头的距离,或者选用焦距较大和CCD感光点距离更小的相机。

      使用以上方法计算出的深度与实际深度对照表如表 2所示。

      表 2  实际深度与计算出的深度对比

      Table 2.  Comparison of real depth and computed depth

      实际深度/cm测量深度/cm实际深度/cm测量深度/cm实际深度/cm测量深度/cm实际深度/cm测量深度/cm
      5049.59088.07130128.48170172.09
      6058.27100100140140.72180183.23
      7069.00110109.0915149.97190192.00
      8079.12120119.97160161.04200205.94

      表 2可以看出,深度为50 cm时,精度可以达到5 mm,深度为200 cm时,精度可以达到5 cm。

    • 本文着重介绍了通过散斑图像获取深度图的理论基础、原理推导和计算过程, 本文采用的基于散斑的深度恢复方法,可以快速恢复大范围的深度信息,在模式识别,人机交互方面有广泛应用。目前国内还没有掌握这方面的核心技术,研究基于散斑的深度获取方法,可以以低成本获取一些工程上需要的深度图。采用本文的方法计算的深度图,距离在50 cm左右时精度可以达到5 mm,到200 cm时精度可以达到5 cm,能满足室内大多数物体的识别要求,并且通过改变硬件,提升空间很大,实用性高。

参考文献 (17)

目录

    /

    返回文章
    返回