一种深度图像生成方法和装置与流程

文档序号:22616772发布日期:2020-10-23 19:17阅读:170来源:国知局
一种深度图像生成方法和装置与流程

本发明涉及计算机视觉技术领域,具体为一种深度图像生成方法和装置。



背景技术:

单目散斑结构光系统为一种深度感知设备,应用于智能安防、移动机器人、增强现实等领域。该系统利用散斑投射装置将精细的散斑图案投射到场景表面,同时由相机采集场景图像,并将该图像与预先存储的参考图进行匹配,从而获得场景的深度图。在该过程中,图像匹配是生成深度图的重要步骤,匹配结果的好坏直接影响深度结果的准确性。

现有的匹配方法主要分为基于灰度的方法和基于二值的方法两大类,这两类方法一般都采用图像块匹配的思路来计算匹配代价。图像块匹配基于的假设是同一个图像块中所有像素的视差值基本相等。而对于比较复杂的场景图像来说,局部区域中各像素视差可能会有一个很大的变化范围,导致场景图像中每个像素点深度估计结果的准确度低。



技术实现要素:

本发明的目的是提供一种深度图像生成方法。对于局部深度变化较大的区域,提高场景图像中每个像素点深度估计结果的准确度。

为了实现上述目的,采用的技术方案包括如下步骤:

s110:获取场景图像和预先存储的参考图像,根据场景图像中场景像素点的坐标和灰度以及参考图像中对应参考像素点的坐标和灰度,计算场景图像中每个场景像素点的亚像素视差值。

s120:以场景图像中的单个场景像素点为中心,构建大小为m×n个场景像素点的场景图像块e。设定场景图像块中每个场景像素点的亚像素视差值满足公式(1)。

di=a0xi+b0yi+c0公式(1)

其中,di为第i个场景像素点的亚像素视差值,xi为第i个场景像素点坐标的x分量,yi为第i个场景像素点坐标的y分量,a0、b0、c0为多项式系数。

根据公式(1)、场景图像块e中每个场景像素点的亚像素视差值和坐标,生成一个包含m×n个方程的超限定方程组,根据超限定方程组获取场景图像块对应的多项式系数。

s130:计算场景图像块中每个场景像素点的灰度梯度,将超过梯度阈值的多个场景像素点作为有效场景像素点。

s140:根据有效场景像素点的坐标和多项式系数,获取有效场景像素点对应参考图像中同名亚像素点的坐标,根据同名亚像素点的横坐标和同名亚像素点左右相邻两个像素点的灰度值,获取同名亚像素点的灰度值。

s150:根据有效场景像素点的灰度值和同名亚像素点的灰度值,获取有效场景像素点的灰度值与同名亚像素点的灰度值之间的归一化互相关函数值。

s160:根据归一化互相关函数值和多项式系数的关系,获取归一化互相关函数值最大时对应的目标多项式系数。

s170:根据公式(1)、目标多项式系数和单个场景像素点的坐标,获取场景像素点的目标视差。

s180:根据场景像素点的目标视差、参考图像的深度、系统基线长度和相机焦距,获取场景像素点对应的深度值。

s190:对场景图像中所有场景像素点重复s120至s180,获取每个场景像素点对应的深度值,以生成场景图像对应的深度图像。

本发明还提供一种深度图像生成装置,其包括:

亚像素视差值获取模块,其被配置为获取场景图像和预先存储的参考图像,根据场景图像中场景像素点的坐标和灰度以及参考图像中对应参考像素点的坐标和灰度,计算场景图像中每个场景像素点的亚像素视差值。

多项式系数获取模块,其被配置为以场景图像中的单个场景像素点为中心,构建大小为m×n个场景像素点的场景图像块。设定场景图像块e中每个场景像素点的亚像素视差值满足公式(1)。

di=a0xi+b0yi+c0公式(1)

其中,di为第i个场景像素点的亚像素视差值,xi为第i个场景像素点坐标的x分量,yi为第i个场景像素点坐标的y分量,a0、b0、c0为多项式系数。

根据公式(1)、场景图像块e中每个场景像素点的亚像素视差值和坐标,生成一个包含m×n个方程的超限定方程组,根据超限定方程组获取场景图像块对应的多项式系数。

有效场景像素点获取模块,其被配置为计算场景图像块中每个场景像素点的灰度梯度,将超过梯度阈值的多个场景像素点作为有效场景像素点。

灰度值获取模块,其被配置为根据有效场景像素点的坐标和多项式系数,获取有效场景像素点对应参考图像中同名亚像素点的坐标,根据同名亚像素点的横坐标和同名亚像素点左右相邻两个整像素点的灰度值,获取同名亚像素点的灰度值。

函数值获取模块,其被配置为根据有效场景像素点的灰度值和同名亚像素点的灰度值,获取有效场景像素点的灰度值与同名亚像素点的灰度值之间的归一化互相关函数值。

目标多项式系数获取模块,其被配置为根据归一化互相关函数值和多项式系数的关系,获取归一化互相关函数值最大时对应的目标多项式系数。

目标视差获取模块,其被配置为根据公式(1)、目标多项式系数和单个场景像素点的坐标,获取场景像素点的目标视差。

深度值获取模块,其被配置为根据场景像素点的目标视差、参考图像的深度、系统基线长度和相机焦距,获取场景像素点对应的深度值。

深度图像生成模块,其被配置为获取每个场景像素点对应的深度值,以生成场景图像对应的深度图像。

与现有技术相比,本发明的技术效果为:通过根据公式(1)、场景图像块e中每个场景像素点的亚像素视差值和坐标,生成一个包含m×n个方程的超限定方程组,根据超限定方程组获取场景图像块对应的多项式系数。

本发明的关键点是通过步骤s130至s160优化多项式系数获得目标多项式系数,根据优化后的目标多项式系数、公式(1)和单个场景像素点的坐标,获取场景像素点的目标视差。这样目标视差更接近于实际的视差值。通过s180和s190生成场景图像对应的深度图像,这样对于局部深度变化较大的区域,能够提高场景图像中每个像素点深度估计结果的准确度。

附图说明

图1为本发明中深度图像生成方法的流程示意图。

图2为本发明中有效场景像素点对应同名亚像素点的映射示意图块。

图3为本发明场景像素点的亚像素视差值获取的示意图。

图4为本发明中场景像素点的亚像素视差值获取的流程示意图。

图5为本发明深度图像生成装置的结构示意图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述。

如图1所示,本发明一实施例为一种深度图像生成方法,包括如下步骤:

s110:获取场景图像和预先存储的参考图像,根据场景图像中场景像素点的坐标和灰度以及参考图像中对应参考像素点的坐标和灰度,计算场景图像中每个场景像素点的亚像素视差值。

图2示出了一个场景图像1和一个预先存储的参考图像2。其中,场景图像1为通过相机实际拍摄的一个场景的图像。参考图像2为用散斑投射装置将精细的散斑图案投射到场景表面,然后由相机采集的图像。

s120:以场景图像中的单个场景像素点为中心,构建大小为m×n个场景像素点的场景图像块。设定场景图像块中每个场景像素点的亚像素视差值满足公式(1)di=a0xi+b0yi+c0。

根据公式(1)、场景图像块e中每个场景像素点的亚像素视差值和坐标,生成一个包含m×n个方程的超限定方程组,根据超限定方程组获取场景图像块对应的多项式系数。

下面结合图2具体说明如何获取场景图像块e对应的多项式系数。

以场景图像1中的单个场景像素点p为中心,构建大小为m×n个场景像素点的场景图像块e。设定场景图像块e中每个场景像素点的亚像素视差值满足公式(1)di=a0xi+b0yi+c0。

其中,di为第i个场景像素点的亚像素视差值,xi为第i个场景像素点坐标的x分量,yi为第i个场景像素点坐标的y分量,a0、b0、c0为多项式系数。

根据公式(1)、场景图像块e中每个场景像素点的亚像素视差值和坐标,生成一个包含m×n个方程的超限定方程组,根据超限定方程组获取场景图像块对应的多项式系数。

具体地,将场景图像块e中每个场景像素点坐标的x分量、y分量,以及由s110计算得到的亚像素视差值代入,生成一个包含m×n个方程的超限定方程组,超限定方程组如下所示:

其中,a、b和c为未知数,通过最小二乘法求解该超限定方程组,得到与场景图像块e对应a、b和c的初值分别为a0、b0和c0,a0、b0和c0即为多项式系数。

本发明通过下述步骤s130至s160对优化多项式系数获得目标多项式系数,步骤s130至s160为本发明的关键步骤。根据优化后的目标多项式系数、公式(1)和单个场景像素点的坐标,获取场景像素点的目标视差。这样获取的目标视差更接近于实际的视差值。

下述具体说明优化多项式系数的步骤。

s130:计算场景图像块中每个场景像素点的灰度梯度,将超过梯度阈值的多个场景像素点作为有效场景像素点。

也就是对于场景图像块e,可以通过索贝尔算子计算场景图像块e中每一个场景像素点的灰度梯度,比如场景图像块e中包括i个场景像素点,则计算场景像素点p1至pi的灰度梯度。

通过设置梯度阈值,将超过梯度阈值的多个场景像素点作为有效场景像素点。换言之,就是剔除场景像素点p1至pi中灰度梯度低于梯度阈值的像素点,提高下述步骤中获取同名亚像素点的质量。

其中,索贝尔算子是计算机视觉领域的一种重要处理方法。主要用于获得数字图像的一阶梯度。索贝尔算子是把图像中每个场景像素点的上下左右四个邻域的灰度值加权差,获得每个场景像素点的灰度梯度。

s140:根据有效场景像素点的坐标和多项式系数,获取有效场景像素点对应参考图像中同名亚像素点的坐标,根据同名亚像素点的横坐标和同名亚像素点左右相邻两个整像素点的灰度值,获取同名亚像素点的灰度值。

图2中,根据有效场景像素点pi的坐标和多项式系数,获取有效场景像素点pi对应参考图像中同名亚像素点qi的坐标,根据同名亚像素点qi的横坐标和同名亚像素点qi左右相邻两个整像素点qi-1和qi+1的灰度值,获取同名亚像素点qi的灰度值。

场景图像1中有效场景像素点pi的同名点在参考图像2中的映射示意图。场景图像块中每个场景像素点对应的同名亚像素点的集合形成场景图像块e的映射区域f。也就是场景图像1中场景图像块e同名点映射后为参考图像2中映射区域f。

同名点就是实际物体上同一个点在不同影像上成的像点。比如,地面上同一个点在场景图像和参考图像上分别成的场景像素点p和同名亚像素点q。

具体地,s140中根据有效场景像素点的坐标和多项式系数,获取有效场景像素点对应参考图像中同名亚像素点的坐标,包括:

有效场景像素点的坐标设为pi(xi,yi),有效场景像素点pi对应参考图像中同名亚像素点的坐标为qi(xi-di,yi),其中,di通过公式(1)计算获得。

具体地,s140中根据同名亚像素点的横坐标和同名亚像素点相邻两个像素点的灰度值,获取同名亚像素点的灰度值,包括:

同名亚像素点qi的灰度值g'i通过公式(3)获得。

公式(3)

其中,round()表示取整函数,g'il和g'ir分别为同名亚像素点qi左侧像素点的灰度值和右侧像素点的灰度值。

s150:根据有效场景像素点的灰度值和同名亚像素点的灰度值,获取有效场景像素点的灰度值与同名亚像素点的灰度值之间的归一化互相关函数值。

具体地,归一化互相关函数值为z,设定z=1-c,其中,c通过公式(4)计算获得。

公式(4)

其中,gi是第i个有效场景像素点pi的灰度,g'i是pi的同名亚像素点qi的灰度,gv是n个有效场景像素点pi(i=1…n)的灰度均值,g'v是n个同名亚像素点qi(i=1…n)的灰度均值。

s160:根据归一化互相关函数值和多项式系数的关系,获取归一化互相关函数值最大时对应的目标多项式系数。

具体地,以a0,b0,c0为起始点,通过增量法计算c对a,b,c的偏导数矩阵和海森矩阵。

偏导数矩阵为

海森矩阵为

通通过牛顿迭代法逐次计算a,b,c的增量∆a、∆b和∆c,直到增量小于设定增量阈值,获得目标多项式系数a、b和c的解。

s170:根据公式(1)、目标多项式系数和单个场景像素点的坐标,获取场景像素点的目标视差。

具体地,将目标多项式系数a、b和c的解带入式,求得场景图像块e中心的单个场景像素点p的目标视差d。其中,x,y分别为单个场景像素点p坐标的x分量和y分量。

s180:根据场景像素点的目标视差、参考图像的深度、系统基线长度和相机焦距,获取场景像素点对应的深度值。

具体地,通过公式(5)计算场景像素点p对应的深度z。

公式(5)

其中,d为目标视差,z0为参考图像对应的深度,b为系统基线长度,f为相机焦距。

s190:对场景图像中所有场景像素点重复s120至s180,获取每个场景像素点对应的深度值,以生成场景图像对应的深度图像。

本发明中通过s110和s120得到多项式系数,不使用多项式系数计算场景图像中场景像素点的视差,而是通过s130至s160对多项式系数优化,得到优化多项式系数后的目标多项式系数,通过公式(1)、目标多项式系数和单个场景像素点的坐标来计算场景像素点的目标视差,这样对于待测量场景中的斜面和其他局部深度变化较大的区域,能够获取更准确的场景像素点的深度估计结果,同时具有较快的计算速度。

如图3和图4所示,本发明在上述实施例的基础上,本发明中s110具体包括下述步骤。

s111:基于场景图像中的初始场景像素点,以初始场景像素点为中心获取设定尺寸的一个初始场景图像块。

具体地,对于场景图像1中的任意一个初始场景像素点p(x,y),以初始场景像素点p为中心,选取设定尺寸的m×n的初始场景图像块。

s112:获取参考图像中与场景像素点位置相同的参考像素点。在参考图像中以参考像素点为中心获取设定尺寸的一个初始参考图像块。

图3中获取参考图像2中与场景像素点p位置相同的参考像素点p1'。在参考图像2中以参考像素点p1'为中心获取设定尺寸的一个初始参考图像块b1'。

在参考图像2中获取与p(x,y)位置相同的参考像素点p'(x,y)。在参考像素点p'(x,y)附近选择搜索区域g:[x-δ1~x+δ2,y],对于区域a中的每一个像素点pi',以该像素点为中心,选取大小为m×n个场景像素点的图像块bi'。分别计算bi'(i=1,…r,r为搜索区域g中像素点的个数)与场景图像块e之间的差异值,即cost,优选地,采用如下公式计算cost值:

公式(6)

s113:基于参考图像的参考像素点的位置设定搜索区域,以搜索区域中每个像素点为中心选取若干个参考图像块。

s114:计算初始场景图像块与每个参考图像块的差异值,将差异值最小的参考图像块作为匹配图像块,将匹配图像块中心的一个参考像素点作为匹配像素点。

比如,图3中初始场景图像块e与参考图像块b1'、b2'和b3'的差异值,差异值最小的参考图像块b1'作为匹配图像块。

s115:将匹配像素点和场景像素点的横坐标差值作为场景像素点的初始视差值。

s116:获取匹配像素点左右相邻的两个参考像素点对应的差异值。

通过公式(2)计算初始场景像素点对应的亚像素视差值。

其中,d为所述初始场景像素点对应的亚像素视差;所述初始场景像素点对应的初始视差值为d';初始场景像素点在参考图中对应的匹配像素点的差异值为c;匹配像素点左侧相邻点的差异值为c1;匹配像素点右侧相邻点的差异值为c2。

本发明中通过块匹配的方法获得场景图像中每个场景像素点的亚像素视差值,提高每个场景像素点的亚像素视差值的准确度。

参见图5所示,本发明另一实施例还提供一种深度图像生成装置,其包括:

亚像素视差值获取模块202,其被配置为获取场景图像和预先存储的参考图像,根据场景图像中场景像素点的坐标和灰度以及参考图像中对应参考像素点的坐标和灰度,计算场景图像中每个场景像素点的亚像素视差值。

多项式系数获取模块204,其被配置为以场景图像中的单个场景像素点为中心,构建大小为m×n个场景像素点的场景图像块e。设定场景图像块e中每个场景像素点的亚像素视差值满足公式(1)。

di=a0xi+b0yi+c0公式(1)

其中,di为第i个场景像素点的亚像素视差值,xi为第i个场景像素点坐标的x分量,yi为第i个场景像素点坐标的y分量,a0、b0、c0为多项式系数。

根据公式(1)、场景图像块e中每个场景像素点的亚像素视差值和坐标,生成一个包含m×n个方程的超限定方程组,根据超限定方程组获取场景图像块对应的多项式系数。

有效场景像素点获取模块206,其被配置为计算场景图像块中每个场景像素点的灰度梯度,将超过梯度阈值的多个场景像素点作为有效场景像素点。

灰度值获取模块208,其被配置为根据有效场景像素点的坐标和多项式系数,获取有效场景像素点对应参考图像中同名亚像素点的坐标,根据同名亚像素点的横坐标和同名亚像素点左右相邻两个整像素点的灰度值,获取同名亚像素点的灰度值。

函数值获取模块210,其被配置为根据有效场景像素点的灰度值和同名亚像素点的灰度值,获取有效场景像素点的灰度值与同名亚像素点的灰度值之间的归一化互相关函数值。

目标多项式系数获取模块212,其被配置为根据归一化互相关函数值和多项式系数的关系,获取归一化互相关函数值最大时对应的目标多项式系数。

目标视差获取模块214,其被配置为根据公式(1)、目标多项式系数和单个场景像素点的坐标,获取场景像素点的目标视差。

深度值获取模块216,其被配置为根据场景像素点的目标视差、参考图像的深度、系统基线长度和相机焦距,获取场景像素点对应的深度值。

深度图像生成模块218,其被配置为获取每个场景像素点对应的深度值,以生成场景图像对应的深度图像。

本实施例的深度图像生成装置与上述深度图像生成方法为同一发明构思,具体参见上述深度图像生成方法的具体说明,此处不再赘述。

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