一种基于单双目混合数据集的视图合成方法与流程

文档序号:21107990发布日期:2020-06-16 21:28阅读:475来源:国知局
技术简介:
本发明针对单目图像生成双目数据时数据不足及光照、运动干扰问题,提出利用小规模双目数据预训练视差估计网络,再通过该网络为大规模单目图像生成伪右图与视差标签,构建伪双目数据集,最终训练视差估计网络并结合视差渲染实现新视图合成。
关键词:单双目混合数据集,视差估计网络,视图合成

本发明属于计算机视觉和图像渲染领域,涉及一种基于深度学习的视图合成方法,尤其是一种基于小规模双目训练集的视图合成方法。



背景技术:

在生活中有很多情况下需要用到视图合成技术,例如虚拟现实里面的虚拟画面渲染、3d展示技术、2d视频转3d视频等。现有的视图合成方法主要是基于深度学习的方法,使用卷积神经网络作为图像处理模型提取图像特征,进而估算场景的深度信息,再利用基于深度图的渲染技术生成新视角的图像。然而,现有的基于深度学习的方法多是基于双目或多目数据集的,并且所需数据集规模较大。虽然已有某些大规模双目图像数据集和单目视频数据集可用于训练,但是这些数据集所包含的场景比较单一化、同质化,不利于模型的泛化。一方面,如果构建一个包含各类场景的双目或者多目数据集,会耗费大量时间、人力、设备成本,相比较而言,构建一个小规模的单目图片数据集会更加容易,只需要在互联网上搜集各种单张图片即可。另一方面,单目视频数据集存在相机的运动和场景中物体的移动等情况,这些因素会给模型训练增加难度,对比之下,利用单目图片数据集进行训练可以避免这些问题。



技术实现要素:

本发明的目的是克服上述现有方法存在的缺陷,提供了一种基于小规模左右双目图片和大规模单目图片混合数据集的视图合成方法,利用小规模双目数据集预训练一个单目视差估计网络,该网络用于后续单目数据集的视差图和“伪右图”的生成,从而构建新的“伪双目”数据集,用于训练最终的视图合成网络。

本发明的上述技术问题主要是通过以下技术方案得以解决的,一种基于单双目混合数据集的视图合成方法,包括以下步骤:

步骤1,构建一个包含小规模左右双目图像对和大规模单目图像集的混合数据集;

步骤2,利用小规模左右双目图像对预训练一个单目视差估计网络;

步骤3,利用步骤2中预训练的模型,针对混合数据集中的单目图像,将所有图片视为“左图”,估计每张图片的“伪视差图”;

步骤4,利用单目图像数据和其对应的估计的“伪视差图”,采用基于视差图的渲染方法,生成对应的“伪右图”;

步骤5,利用单目图像集以及步骤3、步骤4中生成的“伪视差图”、“伪右图”一起构成一个带有视差标签的“伪双目”数据集;

步骤6,利用步骤5生成的“伪双目”数据集,重新训练一个双目视差估计网络;

步骤7,利用步骤6中训练的双目视差估计网络,为输入的左右双目测试图片对估计视差图并进行基于视差图的渲染,生成左右图像对相机基线上的新视图合成结果。

进一步的,步骤1中构建的数据集为小规模的左右双目图像对和大规模单目图像集混合数据集,其中,小规模左右双目图像对为立体矫正后的图像对,其规模为(102级),大规模单目图像集为从互联网搜集的包含各种室内、室外场景的图像集,其规模为(104级)。

进一步的,步骤2中利用小规模左右双目图像对预训练单目视差估计网络时,将左图作为网络输入,右图用于监督;网络输出左、右图像对应的左、右视差图并利用基于视差图的渲染分别生成右图和左图,其过程可表示为:

(dl,dr)=ng(il)

其中,il表示小规模左右双目图像对中的左图,ng表示视差估计网络,(dl,dr)表示网络输出的左、右视差图,表示基于左图和预测的右视差图,渲染生成的右图,表示基于右图和预测的左视差图,渲染生成的左图,(i,j)表示图片的像素坐标。

进一步的,步骤2中利用小规模左右双目图像对预训练单目视差估计网络时,使用真实的左、右图作为双向的监督信息。以左图的监督为例,其具体实现过程如下:

步骤2.1,将生成的左图和真实的左图il比较,求ssim和l1加权损失:

其中,n表示左图像素点的总数,α为平衡ssim损失和l1损失的权值。

步骤2.2,使用梯度平滑项约束生成的左视差图的梯度,使得生成的视差图足够平滑:

其中,表示偏微分,e为自然对数,|*|表示求绝对值。

步骤2.3,对生成的左、右视差图进行一致性约束,使得生成的视差图满足左、右之间的几何条件限制:

步骤2.4,将步骤2.1、步骤2.2和步骤2.3中损失函数的左、右图交换,得到针对右图的损失函数总体的损失函数为:

其中,α*为控制三项损失占比的权值。通过最小化监督网络ng进行梯度更新。

进一步的,步骤3中的单目图像集被视为“左图”,利用步骤2中预训练的网络ng估计出每张图片对应的视差图,其过程可表示为:

其中,表示将单目数据集输入步骤2中预训练的网络ng所预测的“伪视差图”。

进一步的,步骤4利用单目图像集和步骤3中生成的“伪视差图”,基于视差图的渲染方法,生成“伪右图”,其过程定义为如下:

进一步的,步骤5利用单目图像集以及步骤3、步骤4中生成的“伪视差图”、“伪右图”一起构成一个带有视差标签的“伪双目”数据集:

该数据集作为后续步骤网络训练的数据集,将后续视差估计网络的训练转换为一个有监督的训练过程。

进一步的,步骤6基于步骤5生成的“伪双目”数据集,重新训练了一个双目视差估计网络,并以“伪双目”数据集中的“伪视差图”作为监督信号。其具体实现过程如下:

步骤6.1,将“伪双目”数据集中的“左图”和“伪右图”输入网络,估计视差图:

其中,na表示新训练的双目视差估计网络,d表示网络预测的左右视图的视差值。

步骤6.2,将生成的视差图d和“伪双目”数据集中的“伪视差图”比较,求l1损失:

通过最小化监督网络na进行梯度更新。

进一步的,步骤7利用步骤6训练好的双目视差估计网络,输入真实世界的左右双目图像对估计其视差值,并利用基于视差图像的渲染,生成左右图像对相机基线上的一系列中间视图结果。其过程具体实现如下:

步骤7.1,利用步骤6训练好的双目视差估计网络,输入真实世界的左右双目图像对估计视差值:

d=na(il,ir)

其中,(il,ir)表示真实世界的左右图像对,na表示训练好的双目视差估计网络,d表示(il,ir)被估计的视差值。

步骤7.2,利用步骤7.1估计的视差图,计算左右图像对相机基线上α位置处的视差图:

其中,α∈[0,1]表示目标视图在左右图像对相机基线上与左图的相对位置,例如,α=0.5表示该位置距离左图的距离为左右图像相机距离的0.5倍。

步骤7.3,利用步骤7.2生成的α位置处的视差图和基于视差图的渲染方法,生成α位置处的图像:

其中,il表示真实世界的左右图像对中的左图,(i,j)表示图像像素坐标。

与现有技术相比,本发明有如下优点:

1.本发明基于小规模双目数据集(102)训练了一个视差估计网络;

2.本发明基于大规模单目数据集生成了一个带有视差标签的大规模“伪双目数据集”;

3.本发明基于自己生成的“伪数据集”训练了一个视差估计网络;

4.本发明提出用大规模单目数据集训练视差估计网络,数据集更容易构建且不存在光照不一致、相机运动和物体运动等因素。

附图说明

图1是本发明的总流程图。

具体实施方式

下面结合附图和实施例对本发明的技术方案作进一步说明。

如图1所示,一种基于小规模左右双目训练集和大规模单目训练集的双目视图合成方法,包括如下步骤:

步骤1,构建一个包含小规模左右双目图像对和大规模单目图像集的混合数据集,其具体实现方式为:

构建小规模左右双目图像对,并进行立体矫正,其规模为(102级),从互联网搜集包含各种室内、室外场景的图像集,构建大规模单目图像集,其规模为(104级)。

步骤2,利用小规模左右双目图像对预训练一个单目视差估计网络,网络为现有的网络结构dispnet,其具体实现方式为:

步骤2.1,将左图作为网络输入,网络输出左、右图像对应的左、右视差图并利用基于视差图的渲染分别生成右图和左图,其过程可表示为:

(dl,dr)=ng(il)

其中,il表示小规模左右双目图像对中的左图,ng表示视差估计网络,(dl,dr)表示网络输出的左、右视差图,表示基于左图和预测的右视差图,渲染生成的右图,表示基于右图和预测的左视差图,渲染生成的左图,(i,j)表示图片的像素坐标。

步骤2.2,利用小规模左右双目图像对预训练单目视差估计网络时,使用真实的左、右图作为双向的监督信息。以左图的监督为例,其具体实现过程如下:

步骤2.2.1,将生成的左图和真实的左图il比较,求ssim和l1加权损失:

其中,n表示左图像素点的总数,α为平衡ssim损失和l1损失的权值,α=0.85。

步骤2.2.2,使用梯度平滑项约束生成的左视差图的梯度,使得生成的视差图足够平滑:

其中,表示偏微分,e为自然对数,|*|表示求绝对值。

步骤2.2.3,对生成的左、右视差图进行一致性约束,使得生成的视差图满足左、右之间的几何条件限制:

步骤2.2.4,将步骤2.2.1、步骤2.2.2和步骤2.2.3中损失函数的左、右图交换,得到针对右图的损失函数总体的损失函数为:

其中,α*为控制三项损失占比的权值,αap=1,αds=0.1,αlr=1。通过最小化监督网络ng进行梯度更新。

步骤3,将混合数据集中的单目图像集视为“左图”,利用步骤2中预训练的网络ng估计出每张图片对应的视差图,其过程可表示为:

其中,表示将单目数据集输入步骤2中预训练的网络ng所预测的“伪视差图”。

步骤4,利用单目图像集和步骤3中生成的“伪视差图”,基于视差图的渲染方法,生成“伪右图”,其过程定义为如下:

步骤5,利用单目图像集以及步骤3、步骤4中生成的“伪视差图”、“伪右图”一起构成一个带有视差标签的“伪双目”数据集,该数据集的具体构成为:

该数据集作为后续步骤网络训练的数据集,将后续视差估计网络的训练转换为一个有监督的训练过程。

步骤6,基于步骤5生成的“伪双目”数据集,重新训练一个双目视差估计网络,并以“伪双目”数据集中的“伪视差图”作为监督信号。其具体实现过程如下:

步骤6.1,将“伪双目”数据集中的“左图”和“伪右图”输入网络,估计视差图:

其中,na表示新训练的双目视差估计网络,d表示网络预测的左右视图的视差值。

步骤6.2,将生成的视差图d和“伪双目”数据集中的“伪视差图”比较,求l1损失:

通过最小化监督网络na进行梯度更新。

步骤7,利用步骤6中训练好的双目视差估计网络,输入真实世界的左右双目图像对估计其视差值,并利用基于视差图像的渲染,生成左右图像对相机基线上的一系列中间视图结果。其过程具体实现如下:

步骤7.1,利用步骤6训练好的双目视差估计网络,输入真实世界的左右双目图像对估计视差值:

d=na(il,ir)

其中,(il,ir)表示真实世界的左右图像对,na表示训练好的双目视差估计网络,d表示(il,ir)被估计的视差值。

步骤7.2,利用步骤7.1估计的视差图,计算左右图像对相机基线上α位置处的视差图:

其中,α∈[0,1]表示目标视图在左右图像对相机基线上与左图的相对位置,例如,α=0.5表示该位置距离左图的距离为左右图像相机距离的0.5倍。

步骤7.3,利用步骤7.2生成的α位置处的视差图和基于视差图的渲染方法,生成α位置处的图像:

其中,il表示真实世界的左右图像对中的左图,(i,j)表示图像像素坐标。

与现有技术相比,本发明有如下优点:

1.本发明基于小规模双目数据集(102)训练了一个视差估计网络;

2.本发明基于大规模单目数据集生成了一个带有视差标签的大规模“伪双目数据集”;

3.本发明基于自己生成的“伪数据集”训练了一个视差估计网络;

4.本发明提出用大规模单目数据集训练视差估计网络,数据集更容易构建且不存在光照不一致、相机运动和物体运动等因素。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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