基于阵列图像的深度信息获取方法与流程

文档序号:12748915阅读:513来源:国知局
基于阵列图像的深度信息获取方法与流程

本发明属于数字图像处理技术领域,具体涉及一种基于微阵列镜头获取的阵列图像的深度信息获取方法,可用于图像测量和三维重建等技术。



背景技术:

深度信息的获取在计算机视觉领域一直是研究热点。深度信息对图像测量,三维重建和图像识别的效果有很大的影响。一般来说,获取深度信息的方法有3D激光扫描仪,结构光和Kinect等深度相机,但其成本都相对过高。在传统双目视觉系统中通过目标物在左右图像中的视差信息来获取该点的深度值,但其精度不高,存在闭塞区域和连续性差等问题。因此,在低成本高效率的需求下,阵列式镜头模组即微阵列相机应运而生。

阵列式摄像模组最初构想来源于2005年斯坦福大学Ren Ng博士论文提出的光场技术,核心技术是在主透镜与传感器之间加一个微透镜阵列,这种技术打破了传统相机拍照时对焦的理论,可先拍照后对焦。2007年美国Lytro公司利用该技术推出世界上首款光场相机,与传统相机不同,他能捕捉1100万道光束,并记录光的众多属性,比如颜色、强度和方向等。而在Lytro之前也有一家德国的Raytrix公司生产光场相机,Raytrix三维光场相机拥有实时长景深及不失焦的特点,可有效应用于科学与工业级用途,及3D立体显示技术。Raytrix系统与Lytro相机一样,其光学成像系统都是由主透镜系统、微透镜阵列和光电探测器件三部分组成。无论是Raytrix公司推出的三维光场相机还是Lytro公司推出的光场相机光学成像系统中间都有一个微透镜阵列,因此他们厚度较厚,尺寸大,不能用于手机,iPad等手持设备上。针对光场相机这一缺陷,2011年Pelican公司推出阵列相机,不再加入微透镜阵列,镜头直接由4×4排列共16枚子镜头组成。类似某些高端照相机单独配备的三基色感光芯片,阵列镜头组中的每个子镜头只能捕获RGB中的某一通道图,子镜头拍得的照片最后通过软件合成完整图片。除此之外,阵列镜头组中的子镜头又各自独立,代表不同的成焦平面。2013年5月Pelican公司从诺基亚和高通获得2000万美元的风险投资,同年8月,获得松下公司的融资,瑞声科技也成为Pelican最新阵列镜头模组的指定镜片供应商。阵列相机的研究得到越来越高的关注,成为未来摄像头发展趋势。

阵列式相机的原理就是用多个小镜头来代替一个大镜头的拍摄效果,与阵列式天文望远镜及昆虫的复眼类似。相比于传统的单目或者双目视觉系统来说,阵列式相机的视野更广,拍出的照片也更大,同时其体积更小。阵列图像和大多数手持单镜头相机所拍摄的图像不同,其是由多个按矩阵形式排列的镜头拍摄而成。因此,每行图像间具有横向位移,每列图像间具有纵向位移,因此每幅图像中均含有相异的信息,通过多视图间的差异,在立体匹配时可以得到比传统双目视觉系统更多的图像信息,更利于解决立体匹配中的遮挡,纹理连续性等限制,得到比较全面的深度图。利用阵列图像的相互信息可实现图像的重聚焦、三维重构、图像测量等多种功能。



技术实现要素:

本发明要解决的技术问题是:在传统的单目视觉系统中,由于图像采集的有限性,可获取的图像信息少,不能够充分甚至精确的用到图像测量和三维重建等技术中;在传统的双目视觉系统中,可以通过双目之间的视差信息计算出每个点的深度,但是这样的视差同样存在一定的闭塞区域和连续性弱的问题。本发明涉及的方法是利用阵列镜头获取的9幅图像,通过在空间划分层次构建网络图计算每个点的最佳匹配值,比传统的单目和双目系统图像信息更多,获取更好的深度信息,以提高图像测量和三维重建等技术的精度。

本发明要解决其技术问题所采用的技术方案是:

一种基于阵列图像的深度信息获取方法,实现了比传统的双目视觉系统更精确的深度图,包括以下步骤:

(1)对阵列镜头进行单个镜头标定以及以中心镜头为参考进行立体标定;

(2)使用阵列镜头对参考目标物进行拍摄,得到9幅图像;

(3)利用标定参数对9幅图像进行畸变校正和投影变换,并对9幅图像进行去噪预处理;

(4)对预处理后的9幅图像进行立体匹配计算,先定义中心图像为参考图像,并建立包含数据能量和平滑能量的能量函数;

(5)进行空间定义分层,用图割算法求解能量函数的最小化,计算对应的匹配值;

(6)将计算所得匹配值对应到空间深度网格位置,即得到有深度信息的深度图。

所述步骤(1)是使用3*3的阵列镜头同时拍摄20组标定图,即标定板在不同位置或不同角度摆放20次,阵列镜头的9个子镜头对同一场景的标定板进行同时拍摄所得为一组标定图,则每个子镜头都对应拍摄得到20幅标定图。利用单个镜头拍摄的标定图组对单个镜头进行标定,以获取单个镜头的内参数,再以中心镜头作为参考镜头,分别与其他镜头进行立体标定,获取中心镜头和其他镜头之间的外参数;

所述步骤(3)中选取9幅图的中心图像作为参考图像,先是用内参数对9幅图像做畸变校正,再以参考图像为基准用标定得到的外参数对参考图像和其他图像之间做投影变换,使得其他图像的坐标系能够变换到与参考图像同一坐标系下。并对同时采集到的9幅初始图像做去噪的预处理。同样以参考图像为基准和其他图像两两进行立体匹配的计算。

所述步骤(4)中的立体匹配计算是通过建立一个包含数据能量和平滑能量的能量函数,该能量函数用公式表示为:

E(f)=Edata(f)+Esmooth(f)

其中数据能量表示为:

<mrow> <msub> <mi>E</mi> <mrow> <mi>d</mi> <mi>a</mi> <mi>t</mi> <mi>a</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>f</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <mrow> <mi>x</mi> <mo>&Element;</mo> <mi>g</mi> </mrow> </munder> <msub> <mi>D</mi> <mi>x</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>f</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> </mrow>

其中Dx(fx)表示为参考图像与其他8幅图像在灰度一致性约束的条件下的NCC均值。

平滑能量表示为:

<mrow> <msub> <mi>E</mi> <mrow> <mi>s</mi> <mi>m</mi> <mi>o</mi> <mi>o</mi> <mi>t</mi> <mi>h</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>f</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <mrow> <mo>{</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>x</mi> <mn>2</mn> </msub> <mo>}</mo> <mo>&Element;</mo> <mi>N</mi> </mrow> </munder> <msub> <mi>V</mi> <mrow> <mo>{</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>x</mi> <mn>2</mn> </msub> <mo>}</mo> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>f</mi> <msub> <mi>x</mi> <mn>1</mn> </msub> </msub> <mo>,</mo> <msub> <mi>f</mi> <msub> <mi>d</mi> <mn>2</mn> </msub> </msub> <mo>)</mo> </mrow> </mrow>

其中N定义为参考图像的相邻像素集,表示参考图像中相邻像素点在各自对应深度下的光滑能量项。则图像匹配值的求解可转化为该能量函数的求解,使用比较经典的全局优化算法Graph Cuts来求解并使得该函数能量达到最小化,以每个像素点作为节点进行空间定义分层,并构造深度网络图,则可得到参考图像上每个像素点最佳匹配的深度值。

所述步骤(5)和步骤(6)中的空间定义分层和深度网络图,是指将每幅图像中所有的像素点作为节点定义一个空间网络图。该过程中,包括一个初始深度值,即实际目标物到镜头的距离,还包括在空间划分的层数以及层与层之间的间隔数。

附图说明

图1为本发明的基本流程图

图2为本发明所使用的阵列镜头模组

图3为阵列镜头的排列顺序

图4为阵列镜头获取的原始阵列图像

图5为用阵列图像得到的深度图

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,并参照附图,对本发明做进一步详细说明。

附图2所示为使用的阵列镜头模组图,该镜头排列是基于3*3的方式,且每个镜头之间上下左右的间距都是等距的5.2mm,以中心镜头作为参考镜头,周围镜头则可以获取目标物的更多信息。基于阵列镜头的深度信息获取方法的具体实施方法如下:

(1)对阵列镜头进行单个镜头标定以获得镜头的内参数,包括镜头的焦距,主点和畸变系数;再以中心镜头为参考镜头和其他镜头做立体标定,以获得中心镜头和其他镜头之间的外参数,包括旋转矩阵和平移向量;

(2)使用阵列镜头对参考目标物同时拍摄,得到9幅图像;

(3)利用标定得到的内参数对9幅图像进行畸变校正,目的是去除镜头存在的畸变现象,再用标定的外参数对其他镜头获取的图像做投影变换,目的是使得其他图像的坐标系能统一到参考图像的坐标系下,利于立体匹配的计算;并对9幅图像进行去噪预处理;

(4)对预处理后的9幅图像进行立体匹配计算,定义中心图像为参考图像,经过投影变换后的其他图像分别与参考图像进行匹配计算。该过程是通过建立一个包含数据能量和平滑能量的能量函数,该能量函数用公式表示为:

E(f)=Edata(f)+Esmooth(f)

其中数据能量表示为:

<mrow> <msub> <mi>E</mi> <mrow> <mi>d</mi> <mi>a</mi> <mi>t</mi> <mi>a</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>f</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <mrow> <mi>x</mi> <mo>&Element;</mo> <mi>g</mi> </mrow> </munder> <msub> <mi>D</mi> <mi>x</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>f</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> </mrow>

其中Dx(fx)表示为参考图像与其他8幅图像在灰度一致性约束条件下的NCC均值。

平滑能量表示为:

<mrow> <msub> <mi>E</mi> <mrow> <mi>s</mi> <mi>m</mi> <mi>o</mi> <mi>o</mi> <mi>t</mi> <mi>h</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>f</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <mrow> <mo>{</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>x</mi> <mn>2</mn> </msub> <mo>}</mo> <mo>&Element;</mo> <mi>N</mi> </mrow> </munder> <msub> <mi>V</mi> <mrow> <mo>{</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>x</mi> <mn>2</mn> </msub> <mo>}</mo> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>f</mi> <msub> <mi>x</mi> <mn>1</mn> </msub> </msub> <mo>,</mo> <msub> <mi>f</mi> <msub> <mi>d</mi> <mn>2</mn> </msub> </msub> <mo>)</mo> </mrow> </mrow>

其中N定义参考图像的相邻像素集,表示参考图像中相邻像素点在各自对应深度下的光滑能量项。

(5)进行空间分层,先设定一个初始深度值,即实际测量的目标物到镜头间的距离,然后从初始深度开始划分层次,即设定层数和层间隔,以每个像素点作为节点定义空间层次,构造深度网络图;然后使用比较经典的全局优化算法Graph Cuts求解并使得该函数能量达到最小化,,即可得到参考图像上每个像素点的最佳匹配的深度值。

(6)将计算所得匹配值对应到空间深度网格位置,即得到有深度信息的深度图。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1