一种多视点图像产生方法、装置、电子设备及存储介质与流程

文档序号:17586742发布日期:2019-05-03 21:23阅读:134来源:国知局
一种多视点图像产生方法、装置、电子设备及存储介质与流程

本发明涉及图像处理技术领域,特别是涉及一种多视点图像产生方法、装置、电子设备及存储介质。



背景技术:

现有的多视点图像产生方法包括:分别通过左、右两路相机,获取左视点图像和右视点图像;通过立体匹配算法,确定左视点图像和右视点图像的深度图;根据左、右两路相机的相机参数、左视点图像和右视点图像以及左视点图像和右视点图像的深度图表示的深度信息,确定多个虚拟视点的图像,其中,相机参数包括相机的内参和外参;将多个虚拟视点的图像进行合成,得到多视点图像。

可以看出,现有的多视点图像产生方法中,必须同时获知左、右两路相机的相机参数才能确定虚拟视点的图像,进而才能确定多视点图像,使得应用场景受限。



技术实现要素:

本发明实施例的目的在于提供一种多视点图像产生方法、装置、电子设备及存储介质,以扩大产生多视点图像的应用场景。具体技术方案如下:

第一方面,本发明实施例提供了一种多视点图像产生方法,包括:

获取左视点图像和右视点图像之一作为参考视点图像;

通过立体匹配算法,确定所述参考视点图像的深度信息;

根据所述参考视点图像的像素信息、所述参考视点图像的所述深度信息,以及预先设置的多个虚拟视点的参数,分别将所述参考视点图像中的像素点投影至所述多个虚拟视点的成像平面上,得到多个虚拟视点图像;

将所述多个虚拟视点图像和所述参考视点图像中的像素点进行合成,得到多视点图像。

可选的,所述预先设置的多个虚拟视点的参数包括:所述多个虚拟视点各自的成像单元的面积、所述多个虚拟视点分别与参考视点的基线距离,所述参考视点为所述参考视点图像的视点;

所述根据所述参考视点图像的像素信息、所述参考视点图像的所述深度信息,以及预先设置的多个虚拟视点的参数,分别将所述参考视点图像中的像素点投影至所述多个虚拟视点的成像平面上,包括:

确定所述参考视点对应的零视差平面,以及所述多个虚拟视点的成像单元分别偏离所述零视差平面的偏移距离;

针对所述多个虚拟视点中的每个虚拟视点,根据所述参考视点图像的像素信息、所述参考视点图像的所述深度信息,以及预先设置的该虚拟视点的参数,通过预设公式:确定所述参考视点图像中的像素点在该虚拟视点的成像平面上的坐标;

其中,ur、vr为确定出的该虚拟视点图像中像素点的横坐标、纵坐标,ul、vl为所述参考视点图像中的像素点的横坐标、纵坐标,h为该虚拟视点的成像单元偏离所述零视差平面的偏移距离;f为获取所述参考视点图像的相机的焦距;sx为该虚拟视点的成像单元的面积,b为该虚拟视点与所述参考视点的基线距离,zw为所述参考视点中像素点的深度信息。

可选的,确定所述多个虚拟视点的成像单元分别偏离所述零视差平面的偏移距离,包括:

针对所述多个虚拟视点中的每个虚拟视点,将获取所述参考视点图像的相机的焦距、该虚拟视点的成像单元的面积、以及该虚拟视点与所述参考视点的基线距离相乘,得到乘积;

将所述乘积除以两倍的该虚拟视点的零视差平面距离,并将得到的商确定为该虚拟视点的成像单元偏离所述零视差平面的偏移距离,其中,所述零视差平面距离为预先设置的该虚拟视点的参数。

可选的,将所述左视点图像和所述右视点图像中除参考视点图像之外的图像作为视差对应视点图像;

所述通过立体匹配算法,确定所述参考视点图像的深度信息,包括:

确定所述参考视点图像中每个第一像素点在所述视差对应视点图像中的视差对应点;

针对每个第一像素点,确定该第一像素点与该第一像素点的所述视差对应点之间的视差值;并根据所述视差值,以及视差值与深度值的预设对应关系,确定每个第一像素点的深度值;将所述参考视点图像中所有第一像素点的深度值,作为所述参考视点图像的深度信息。

可选的,所述确定所述参考视点图像中每个第一像素点在所述视差对应视点图像中的视差对应点,包括:

针对每个第一像素点,计算该第一像素点与所述视差对应视点图像中每个第二像素点的初始匹配代价;

针对每个第一像素点,构造可变支持窗口,并将所述可变支持窗口内所有第一像素点的所述初始匹配代价的平均值,作为该第一像素点的聚合匹配代价;

按照每个第一像素点的聚合匹配代价,以及预设约束条件,确定每个第一像素点对应的所述视差对应点。

可选的,所述计算该第一像素点与所述视差对应视点图像中每个第二像素点的初始匹配代价,包括:

根据绝对误差和sad代价计算公式,计算该第一像素点与所述视差对应视点图像中每个第二像素点的sad匹配代价;

根据census代价计算公式,计算该第一像素点与所述视差对应视点图像中每个第二像素点的census匹配代价;

通过代价融合公式,将该第一像素点的所述sad匹配代价和所述census匹配代价进行融合,得到该第一像素点的所述初始匹配代价。

第二方面,本发明实施例提供了一种多视点图像产生装置,包括:

获取模块,用于获取左视点图像和右视点图像之一作为参考视点图像;

确定模块,用于通过立体匹配算法,确定所述参考视点图像的深度信息;

投影模块,用于根据所述参考视点图像的像素信息、所述参考视点图像的所述深度信息,以及预先设置的多个虚拟视点的参数,分别将所述参考视点图像中的像素点投影至所述多个虚拟视点的成像平面上,得到多个虚拟视点图像;

合成模块,用于将所述多个虚拟视点图像和所述参考视点图像中的像素点进行合成,得到多视点图像。

可选的,所述预先设置的多个虚拟视点的参数包括:所述多个虚拟视点各自的成像单元的面积、所述多个虚拟视点分别与参考视点的基线距离,所述参考视点为所述参考视点图像的视点;

所述投影模块包括:

第一确定子模块,用于确定所述参考视点对应的零视差平面,以及所述多个虚拟视点的成像单元分别偏离所述零视差平面的偏移距离;

第二确定子模块,用于针对所述多个虚拟视点中的每个虚拟视点,根据所述参考视点图像的像素信息、所述参考视点图像的所述深度信息,以及预先设置的该虚拟视点的参数,通过预设公式:确定所述参考视点图像中的像素点在该虚拟视点的成像平面上的坐标;

其中,ur、vr为确定出的该虚拟视点图像中像素点的横坐标、纵坐标,ul、vl为所述参考视点图像中的像素点的横坐标、纵坐标,h为该虚拟视点的成像单元偏离所述零视差平面的偏移距离;f为获取所述参考视点图像的相机的焦距;sx为该虚拟视点的成像单元的面积,b为该虚拟视点与所述参考视点的基线距离,zw为所述参考视点中像素点的深度信息。

可选的,第一确定子模块包括:

相乘单元,用于针对所述多个虚拟视点中的每个虚拟视点,将获取所述参考视点图像的相机的焦距、该虚拟视点的成像单元的面积、以及该虚拟视点与所述参考视点的基线距离相乘,得到乘积;

相除单元,用于将所述乘积除以两倍的该虚拟视点的零视差平面距离,并将得到的商确定为该虚拟视点的成像单元偏离所述零视差平面的偏移距离,其中,所述零视差平面距离为预先设置的该虚拟视点的参数。

可选的,将所述左视点图像和所述右视点图像中除参考视点图像之外的图像作为视差对应视点图像;

所述确定模块包括:

第三确定子模块,用于确定所述参考视点图像中每个第一像素点在所述视差对应视点图像中的视差对应点;

第四确定子模块,用于针对每个第一像素点,确定该第一像素点与该第一像素点的所述视差对应点之间的视差值;并根据所述视差值,以及视差值与深度值的预设对应关系,确定每个第一像素点的深度值;将所述参考视点图像中所有第一像素点的深度值,作为所述参考视点图像的深度信息。

可选的,所述第三确定子模块包括:

计算单元,用于针对每个第一像素点,计算该第一像素点与所述视差对应视点图像中每个第二像素点的初始匹配代价;

构造单元,用于针对每个第一像素点,构造可变支持窗口,并将所述可变支持窗口内所有第一像素点的所述初始匹配代价的平均值,作为该第一像素点的聚合匹配代价;

确定单元,用于按照每个第一像素点的聚合匹配代价,以及预设约束条件,确定每个第一像素点对应的所述视差对应点。

可选的,所述计算单元包括:

第一计算子单元,用于根据绝对误差和sad代价计算公式,计算该第一像素点与所述视差对应视点图像中每个第二像素点的sad匹配代价;

第二计算子单元,用于根据census代价计算公式,计算该第一像素点与所述视差对应视点图像中每个第二像素点的census匹配代价;

第三计算子单元,用于通过代价融合公式,将该第一像素点的所述sad匹配代价和所述census匹配代价进行融合,得到该第一像素点的所述初始匹配代价。

第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法步骤。

本发明实施例提供的多视点图像产生方法、装置、电子设备及存储介质,结合参考视点图像的像素信息和该参考视点图像的深度信息,以及预先设置的虚拟视点的参数,即可确定虚拟视点图像,进而最终得到多视点图像。如此能够扩大应用场景,在无法同时获知获取左视点图像和右视点图像的左、右两路相机的相机参数时,也可以确定虚拟视点图像,进而得到多视点图像。同时,可以预先设置不同的虚拟视点的参数,确定不同的三维显示效果,进而观看者可以享受到不同的观看效果,提升用户体验。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的多视点图像产生方法的一种流程图;

图2为本发明实施例提供的多视点图像产生方法的另一种流程图;

图3(a)为会聚立体相机模型示意图;

图3(b)为平行立体相机模型示意图;

图3(c)为shift-sensor(位移传感器)相机模型示意图;

图4为本发明实施例中确定视差对应点过程的流程图;

图5为本发明实施例中构造可变支持窗口的示意图;

图6为本发明实施例中代价聚合过程的示意图;

图7为本发明实施例中扫描线优化过程的一种示意图;

图8(a)为本发明实施例中扫描线优化过程的另一种示意图;

图8(b)为本发明实施例中扫描线优化过程的另一种示意图;

图9为本发明实施例中通过现场可编程门阵列fpga实现代价聚合过程的示意图;

图10为本发明实施例中一致性校验过程的示意图;

图11为本发明实施例中亚像素求精过程的示意图;

图12为本发明实施例中得到虚拟视点图像过程的示意图;

图13本发明实施例提供的多视点图像产生装置的结构示意图;

图14本发明实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种多视点图像产生方法,如图1所示,包括:

s101,获取左视点图像和右视点图像之一作为参考视点图像。

具体地,可以通过相机获取左视点图像和右视点图像,并将左视点图像和右视点图像之一作为参考视点图像。相机可以是会聚立体相机、平行立体相机或者shift-sensor(位移传感器)相机等。获取到的左视点图像和右视点图像可以是左右格式等。

s102,通过立体匹配算法,确定参考视点图像的深度信息。

立体匹配算法,即从不同的视点图像中找到匹配的对应点。具体地可以根据对图像的特征进行计算来建立特征间的对应关系,从而建立同一个空间点在不同视点图像的像素点之间的关系,并由此得到相应的视差图,进而得到图像的深度信息。深度信息可以用深度图来表示。

s103,根据参考视点图像的像素信息、参考视点图像的深度信息,以及预先设置的多个虚拟视点的参数,分别将参考视点图像中的像素点投影至多个虚拟视点的成像平面上,得到多个虚拟视点图像。

利用dibr(depthimagebasedrendering,基于深度图的绘制)将参考视点图像中的像素点投影至三维欧式空间,再将三维欧式空间中的点分别投影至多个虚拟视点的成像平面上,如此可以得到多个虚拟视点图像。

具体地,预先设置虚拟视点的参数,例如,虚拟视点的零视差平面距离、虚拟视点的成像单元的面积、虚拟视点与参考视点的基线距离等。根据参考视点图像的像素信息、参考视点图像的深度信息,以及预先设置的多个虚拟视点的参数,分别将参考视点图像中的像素点投影至多个虚拟视点的成像平面上,得到多个虚拟视点图像。

s104,将多个虚拟视点图像和参考视点图像中的像素点进行合成,得到多视点图像。

本发明实施例提供的多视点图像产生方法,在无法同时获知获取左视点图像和右视点图像的左、右两路相机的相机参数时,也可以确定虚拟视点图像,进而得到多视点图像,扩大了多视点图像产生方法的应用场景。同时,可以实时改变虚拟视点的参数,得到多个不同的虚拟视点图像,进而使得观看者可以享受到不同的观看效果,提升用户体验。

本发明实施例还提供了一种多视点图像产生方法,如图2所示,包括:

s201,获取左视点图像和右视点图像之一作为参考视点图像。

可以通过相机获取左视点图像和右视点图像,并将左视点图像和右视点图像之一作为参考视点图像。相机可以是双目相机、会聚立体相机、平行立体相机、shift-sensor相机等。

下面对相机模型进行介绍,为了便于描述,首先对用到的符号进行说明。p、q为空间点,ol和or分别为左、右两路相机的光心,f为相机焦距,d为零视差平面距离,b为基线距离,h为偏离零视差平面的偏移距离,xl为空间点在左视点图像中的横坐标,xr为空间点在右视点图像中的横坐标,ωccdpixel为成像单元上像素点的物理间距,z为深度值。

会聚立体相机模型,如图3(a)所示。光轴汇聚于空间点q,q在两个成像平面的投影点都在中心位置,不存在视差,对于落在三角形qqlqr外接圆的任意空间点p,xl和xr相等,即空间点p的视差为0,会聚立体相机模型的等视差面为环形的柱状曲面。会聚立体相机模型可以适用于环形立体屏幕。

平行立体相机模型,如图3(b)所示,光轴平行,xl值永远大于xr,只存在正向视差。

shift-sensor相机模型,如图3(c)所示。左、右两路相机的ccd(charge-coupleddevice,电荷耦合元件)传感器分别向内侧平移了h的距离,使得两个相机的光心与ccd传感器中心会聚于空间点q,q点的视差为0。shift-sensor立体相机模型的零视差平面是深度值为d的平面。根据空间几何原理,视差值disp公式为:

本发明实施例一种可选的实现方式中,可以采用shift-sensor相机获取左视点图像和右视点图像,进而使得可以支持正负两个方向的视差。

在获取到左视点图像和右视点图像后,还可以对左视点图像和右视点图像进行预处理,例如,极限校正、一致性处理、图像增强,去除图像噪点等。

s202,确定参考视点图像中每个第一像素点在视差对应视点图像中的视差对应点。

将左视点图像和右视点图像中除参考视点图像之外的图像作为视差对应视点图像。例如,若将左视点图像作为参考视点图像,则右视点图像为作为参考视点图像的左视点图像对应的视差对应视点图像;若将右视点图像作为参考视点图像,则左视点图像为作为参考视点图像的右视点图像的视差对应视点图像。

具体地,确定参考视点图像中每个第一像素点在视差对应视点图像中的视差对应点,如图4所示,包括:

s401,针对每个第一像素点,计算该第一像素点与视差对应视点图像中每个第二像素点的初始匹配代价。

第一步,根据绝对误差和sad代价计算公式,计算该第一像素点与视差对应视点图像中每个第二像素点的sad匹配代价。

sad匹配代价的计算过程中,匹配窗口大小为1,也就是只参考单个像素点,在视差搜索范围内,参考视点图像中的像素点p与视差距离为d的视差对应视点图像的sad匹配代价为rgb三个分量插值的绝对值的平均值。

sad代价计算公式可以为:

cad(p,d)为第一像素点与视差对应视点图像中每个第二像素点的sad匹配代价,ii(p)为参考视点图像中第一像素点的像素值,ii(pd)为视差对应视点图像中第二像素点的像素值。

第二步,根据census代价计算公式,计算该第一像素点与视差对应视点图像中每个第二像素点的census匹配代价。

census匹配代价的计算过程中,可以使用9x7的大小的匹配窗口,其基本原理为比较匹配窗口中领域像素与中心像素灰度值的大小,领域像素的灰度值小于中心像素的灰度值时计为1,领域像素的灰度值大于或等于中心像素的灰度值时计为0,对于9x7大小的窗口,一个62bit的二进制数可以作为中心像素的特征值,使用汉明距离表示两个像素之间的census匹配代价。

第三步,通过代价融合公式,将该第一像素点的sad匹配代价和census匹配代价进行融合,得到该第一像素点的初始匹配代价。

得到sad匹配代价和census匹配代价后,将sad匹配代价和census匹配代价进行融合,代价融合公式如下:

c(p,d)=ρ(ccensus(p,d),λcensus)+ρ(cad(p,d),λad)

其中,λcensus、λad为常数,cad(p,d)为sad匹配代价,计算结果一般在0~255之间,ccensus(p,d)为census匹配代价,计算结果一般在0~62之间。

如此,即可得到参考视点图像中每个第一像素点分别与视差对应视点图像中每个第二像素点的初始匹配代价。

s402,针对每个第一像素点,构造可变支持窗口,并将可变支持窗口内所有第一像素点的初始匹配代价的平均值,作为该第一像素点的聚合匹配代价。

可变支持窗口用于自适应产生用于代价聚合的窗口,窗口中心像素点p为进行代价聚合的像素点。相比较于传统的矩形窗口,自适应窗口能够对图像进行简单分割,避免跨越图像边缘,能够提高匹配代价的准确性。

构造可变支持窗口,本发明实施例一种可选的实现方式中,构造十字骨架窗口。如图5所示,以p为中心像素点,分别在上、下、左、右四个方向进行十字骨架窗口的建立,通过公式确定十字骨架窗口的右臂501、左臂502、上臂503和下臂504。

dc(p1,p)<τ1;

dc(p1,p1+(1,0))<τ1;

ds(p1,p)<l1;

dc(p1,p)<τ2,ifl2<ds(p1,p)<l1。

其中,p1为p点最大臂长范围内的像素点,dc(p1,p)为p1和p之间三分量差值绝对值的最大值,ds(p1,p)为p1和p之间的距离,τ1、τ2为判决门限,l1为最大臂长,l2为为使用τ2作为判决门限的臂长门限。

构造十字骨架窗口后,在垂直方向的上臂和下臂的所有像素点建立水平方向的可变支持窗口,最终获得p点对应的支持窗口范围。

获得p点的支持窗口范围后,进行代价聚合操作,代价聚合操作如图6所示可以分为两步:步骤601:水平方向求和;步骤602:垂直方向求和。

为了获得稳定的代价聚合结果,代价聚合操作可以迭代4次,其中,第1次、第3次采用先水平后垂直的聚合方式,第2次、第4次采用先垂直后水平的聚合方式。对参考视点图像中所有第一像素点进行上述过程,最终可得到第一像素点的聚合匹配代价。

s403,按照每个第一像素点的聚合匹配代价,以及预设约束条件,确定每个第一像素点对应的视差对应点。

得到聚合匹配代价后,进行扫描线优化。扫描线优化通过建立能量函数,利用动态规划原理,寻找最优路径,具体地可以转化为最小化能量函数的问题。能量可以反映图像的深度跳变情况,使得能量函数最小的像素点即为视差对应点。能量函数为:

其中,c(p,dp)为p点对应的聚合匹配代价,为p点和领域内所有像素点q之间的约束,如果视差小于1,惩罚为p1,如果视差大于1,惩罚为p2。如此得到扫描线优化的求解公式:

lr(p,d)=c(p.d)+min(lr(p-r,d),

lr(p-r,d-1)+p1,

lr(p-r,d+1)+p1,

每一个像素点的代价聚合值是“当前代价+min(路径相邻点的当前视差代价聚合值,路径相邻点的视差差值为1的代价聚合值+p1,路径相邻点的视差插值大于1的最小代价聚合值+p2)-路径相邻点的视差插值大于1的最小代价聚合值”,当前代价聚合值由当前代价和路径上加了惩罚的点的最小代价聚合值所决定。扫描线优化过程的示意图如图7、图8(a)、图8(b)所示。

本发明一种可选的实施例中,可以通过fpga(field-programmablegatearray,现场可编程门阵列)实现初始匹配代价的计算、通过代价聚合操作得到聚合匹配代价的过程等,如图9所示,具体地可以包括:变换单元、缓存单元、水平创建单元、垂直创建单元、代价匹配单元、水平聚合单元、垂直聚合单元。

左视点图像作为参考视点图像,右视点图像为参考视点图像的视差对应视点图像。通过变换单元,如census变换单元,对左视点图像和右视点图像进行census变换。将原始的左视点图像和右视点图像以及对应得到的census变换的结果,输送至缓存单元,例如line_buffer缓存单元进行缓存,缓存单元的大小由可变支持窗口的大小决定。当缓存的行数达到可变支持窗口的大小时,从缓存单元中取出数据进行可变支持窗口的构造以及初始匹配代价的计算,其中,分别通过水平创建单元如horizontal_cross_construct、垂直创建单元如vertical_cross_construct完成水平和垂直的窗口的创建。通过代价匹配单元如cost_initialzation完成初始匹配代价的计算。通过水平聚合单元如horizontal_aggregation、垂直聚合单元vertical_aggregation分别完成水平和垂直方向的代价聚合操作。

s203,针对每个第一像素点,确定该第一像素点与该第一像素点的视差对应点之间的视差值;并根据视差值,以及视差值与深度值的预设对应关系,确定每个第一像素点的深度值;将参考视点图像中所有第一像素点的深度值,作为参考视点图像的深度信息。

得到每个第一像素点的视差对应点,即可确定该第一像素点以及视差对应点之间的视差值,在本发明一种可选的实施例中可以得到参考视点图像中所有第一像素点对应的视差图。得到视差值后,即可根据视差值与深度值的预设对应关系,确定对应的深度值。具体地,可以根据根据参考视点图像的视差图,得到参考视点图像对应的深度图。

另外,扫描线优化后可以进行左右一致性校验,如图10所示。具体地,分别计算左视点图像和右视点图像对应的视差图。对于左视点图像中的一个像素点p,p对应的视差值为d1,则p在右视点图像中的视差对应点应该是(p-d1),(p-d1)对应的视差值为d2。若|d1-d2|>threshold,则将p标记为遮挡点。

一致性校验后,由于存在遮挡点所在的遮挡区域等无法匹配区域,这些遮挡点即为不稳定点,可以对这些不稳定点进行填补,例如通过区域投票进行填补。区域投票的目的就是对遮挡点进行填充,具体地,通过统计支持窗口中的视差的直方图,若满足则使用dp作为遮挡点p的填充视差值,其中,的像素点个数,sp为稳定点的个数,dp为直方图值最大的像素点的个数,为遮挡点p的填充视差值,τs、τh为门限参数。

区域投票后,进行16方向的插值运算,如果p点为一个不稳定点,p点选择16方向上视差最小的点作为视差,不稳定点一般情况下都为背景像素点。经过区域投票和极线插值后,绝大多数空洞都应该已经被填补,剩下的没有填补的空洞可以通过在后续过程中通过空洞填充算法进行填充。

还可以通过亚像素求精提高整数视差的精度,如图11所示。具体地,可以通过多项式插值,如亚像素求精公式:

其中,d*为亚像素求精结果,d为视差距离,d+为d+1,d-为d-1,c2(p,d)为p点视差距离d对应的聚合匹配代价,c2(p,d+)为p点视差距离d+对应的聚合匹配代价,c2(p,d-)为p点视差距离d-对应的聚合匹配代价。

获取了参考视点图像的深度信息,如深度图后,根据参考视点图像的深度信息、参考视点图像的像素信息以及预先设置的多个虚拟视点的参数进行dibr,以将虚拟视点图像中的像素点分别投影至多个虚拟视点的成像平面上。

预先设置的多个虚拟视点的参数可以包括:多个虚拟视点各自的成像单元的面积、多个虚拟视点分别与参考视点的基线距离,参考视点为参考视点图像的视点。

根据参考视点图像的像素信息、参考视点图像的深度信息,以及预先设置的多个虚拟视点的参数,分别将参考视点图像中的像素点投影至多个虚拟视点的成像平面上,包括:

s204,确定参考视点对应的零视差平面,以及多个虚拟视点的成像单元分别偏离零视差平面的偏移距离。

确定零视差平面,如图12所示,其中,中心视点为参考视点,左、右各4个虚拟视点。当物体落在零视差平面中,各个视点之间的水平视差为0,此时确定多个虚拟视点的成像单元分别偏离零视差平面的偏移距离,具体地可以包括:

第一步,针对多个虚拟视点中的每个虚拟视点,将获取参考视点图像的相机的焦距、该虚拟视点的成像单元的面积、以及该虚拟视点与参考视点的基线距离相乘,得到乘积。

第二步,将该乘积除以两倍的该虚拟视点的零视差平面距离,并将得到的商确定为该虚拟视点的成像单元偏离零视差平面的偏移距离,其中,零视差平面距离为预先设置的该虚拟视点的参数。

确定虚拟视点的成像单元分别偏离零视差平面的偏移距离,如图12中h1、h2、h3、h4、h5、h6、h7、h8。

s205,针对多个虚拟视点中的每个虚拟视点,根据参考视点图像的像素信息、参考视点图像的深度信息,以及预先设置的该虚拟视点的参数,通过预设公式:确定参考视点图像中的像素点在该虚拟视点的成像平面上的坐标。

其中,ur、vr为确定出的该虚拟视点图像中像素点的横坐标、纵坐标,ul、vl为参考视点图像中的像素点的横坐标、纵坐标,h为该虚拟视点的成像单元偏离零视差平面的偏移距离;f为获取参考视点图像的相机的焦距;sx为该虚拟视点的成像单元的面积,b为该虚拟视点与参考视点的基线距离,zw为参考视点中像素点的深度信息。

如此,能够实现根据参考视点图像的像素信息、参考视点图像的深度信息,以及预先设置的多个虚拟视点的参数,分别将参考视点图像中的像素点投影至多个虚拟视点的成像平面上,得到多个虚拟视点图像。

可以看出,通过本发明实施例提供的方法,不需要同时获知获取左视点图像和右视点图像的左、右两路相机的相机参数,通过单个视点图像,如参考视点图像的像素信息和深度信息即可确定虚拟视点图像,同时,可以实时改变虚拟视点的参数,如此,通过改变虚拟视点的参数,可以获得不同景深,不同角度以及出屏、入屏不同效果的虚拟视点图像,实时的改变输出多视点视频的视点角度,场景景深和出屏入屏感,获得不同的观看效果。另外,基于可配置逻辑器件开发,支持参数化可重配的输入分辨率大小,视点个数等参数,能够适用于不同的应用场景。

本发明实施例一种可选的实施例中,还可以通过双向差值算法进行空洞填补。具体地,在水平方向上搜索空洞边界,若左右边界的深度差值超过预设门限时,则选取较远的边界图像进行空洞填充;若深度差值小于预设门限时,则使用反距离加权方式对左右边界图像进行插值获取空洞图像进行空洞填充。

s206,将多个虚拟视点图像和参考视点图像中的像素点进行合成,得到多视点图像。

得到多个虚拟视点图像后,将多个虚拟视点图像和参考视点图像中的像素点进行合成,得到多视点图像。具体地,多视点合成,裸眼3d显示的过程中,确定显示的像素点取自于具体的哪个视点的rgb分量。裸眼3d显示,主要实现途径为在显示屏幕前增加视差栅栏,通过栅栏控制各像素光线的射出方向,使某些图像仅射入左眼,某些图像仅摄入右眼,从而形成双目视差,产生立体视觉。通过栅栏遮挡控制多个视点的内容,从而实现在同一个显示器上同时显示多个视点的图像。

将多个虚拟视点图像和参考视点图像中的像素点进行合成,可以通过多视点子像素映射实现。多视点子像素映射的目的是为了确定lcd(liquidcrystaldisplay,液晶显示器)上显示的子像素应该取自哪个视点的rgb分量,每个柱镜光栅单元的栅距为p,在水平方向上覆盖rgb子像素的个数为x,透镜轴相对于lcd垂直轴的倾斜角为α。

子像素映射关系为:

其中,k为像素点在水平方向上的排列序号,l为像素点在垂直方向上的排列序号,ntol为视点的个数,x为每个柱镜光栅单元在水平方向上覆盖rgb子像素的个数,koff为常数,α为透镜轴相对于lcd垂直轴的倾斜角。

本发明实施例一种可选的实施例中,可以通过fpga实现多视点合成,通过fpga实时计算当前像素点对应的视点序号,并从对应的虚拟视点中取出像素值,由于计算出的视点序号可能不为整数,而非整数的视点序号会导致视点间图像的串扰,为了降低串扰,根据非整数的视点序号的大小,进行反距离加权操作。

本发明实施例还提供了一种多视点图像产生装置,如图13所示,包括:

获取模块1301,用于获取左视点图像和右视点图像之一作为参考视点图像;

确定模块1302,用于通过立体匹配算法,确定参考视点图像的深度信息;

投影模块1303,用于根据参考视点图像的像素信息、参考视点图像的深度信息,以及预先设置的多个虚拟视点的参数,分别将参考视点图像中的像素点投影至多个虚拟视点的成像平面上,得到多个虚拟视点图像;

合成模块1304,用于将多个虚拟视点图像和参考视点图像中的像素点进行合成,得到多视点图像。

本发明实施例提供的多视点图像产生装置,在无法同时获知获取左视点图像和右视点图像的左、右两路相机的相机参数时,也可以确定虚拟视点图像,进而得到多视点图像,扩大了多视点图像产生方法的应用场景。同时,可以实时改变虚拟视点的参数,得到多个不同的虚拟视点图像,进而使得观看者可以享受到不同的观看效果,提升用户体验。

可选的,预先设置的多个虚拟视点的参数包括:多个虚拟视点各自的成像单元的面积、多个虚拟视点分别与参考视点的基线距离,参考视点为参考视点图像的视点;

投影模块1303包括:

第一确定子模块,用于确定参考视点对应的零视差平面,以及多个虚拟视点的成像单元分别偏离零视差平面的偏移距离;

第二确定子模块,用于针对多个虚拟视点中的每个虚拟视点,根据参考视点图像的像素信息、参考视点图像的深度信息,以及预先设置的该虚拟视点的参数,通过预设公式:确定参考视点图像中的像素点在该虚拟视点的成像平面上的坐标;

其中,ur、vr为确定出的该虚拟视点图像中像素点的横坐标、纵坐标,ul、vl为参考视点图像中的像素点的横坐标、纵坐标,h为该虚拟视点的成像单元偏离零视差平面的偏移距离;f为获取参考视点图像的相机的焦距;sx为该虚拟视点的成像单元的面积,b为该虚拟视点与参考视点的基线距离,zw为参考视点中像素点的深度信息。

可选的,第一确定子模块包括:

相乘单元,用于针对多个虚拟视点中的每个虚拟视点,将获取参考视点图像的相机的焦距、该虚拟视点的成像单元的面积、以及该虚拟视点与参考视点的基线距离相乘,得到乘积;

相除单元,用于将乘积除以两倍的该虚拟视点的零视差平面距离,并将得到的商确定为该虚拟视点的成像单元偏离零视差平面的偏移距离,其中,零视差平面距离为预先设置的该虚拟视点的参数。

可选的,将左视点图像和右视点图像中除参考视点图像之外的图像作为视差对应视点图像;

确定模块1302包括:

第三确定子模块,用于确定参考视点图像中每个第一像素点在视差对应视点图像中的视差对应点;

第四确定子模块,用于针对每个第一像素点,确定该第一像素点与该第一像素点的视差对应点之间的视差值;并根据视差值,以及视差值与深度值的预设对应关系,确定每个第一像素点的深度值;将参考视点图像中所有第一像素点的深度值,作为参考视点图像的深度信息。

可选的,第三确定子模块包括:

计算单元,用于针对每个第一像素点,计算该第一像素点与视差对应视点图像中每个第二像素点的初始匹配代价;

构造单元,用于针对每个第一像素点,构造可变支持窗口,并将可变支持窗口内所有第一像素点的初始匹配代价的平均值,作为该第一像素点的聚合匹配代价;

确定单元,用于按照每个第一像素点的聚合匹配代价,以及预设约束条件,确定每个第一像素点对应的视差对应点。

可选的,计算单元包括:

第一计算子单元,用于根据绝对误差和sad代价计算公式,计算该第一像素点与视差对应视点图像中每个第二像素点的sad匹配代价;

第二计算子单元,用于根据census代价计算公式,计算该第一像素点与视差对应视点图像中每个第二像素点的census匹配代价;

第三计算子单元,用于通过代价融合公式,将该第一像素点的sad匹配代价和census匹配代价进行融合,得到该第一像素点的初始匹配代价。

需要说明的是,本发明实施例的多视点图像产生装置是应用上述多视点图像产生方法的装置,则上述多视点图像产生方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

本发明实施例还提供了一种电子设备,如图14所示,包括处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401,通信接口1402,存储器1403通过通信总线1404完成相互间的通信,

存储器1403,用于存放计算机程序;

处理器1401,用于执行存储器1403上所存放的程序时,实现上述多视点图像产生方法的方法步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例提供的电子设备,在无法同时获知获取左视点图像和右视点图像的左、右两路相机的相机参数时,也可以确定虚拟视点图像,进而得到多视点图像,扩大了多视点图像产生方法的应用场景。同时,可以实时改变虚拟视点的参数,得到多个不同的虚拟视点图像,进而使得观看者可以享受到不同的观看效果,提升用户体验。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述多视点图像产生方法的方法步骤。

本发明实施例提供的计算机可读存储介质,在无法同时获知获取左视点图像和右视点图像的左、右两路相机的相机参数时,也可以确定虚拟视点图像,进而得到多视点图像,扩大了多视点图像产生方法的应用场景。同时,可以实时改变虚拟视点的参数,得到多个不同的虚拟视点图像,进而使得观看者可以享受到不同的观看效果,提升用户体验。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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