一种视点图像处理方法及相关设备与流程

文档序号:24382280发布日期:2021-03-23 11:16阅读:124来源:国知局
一种视点图像处理方法及相关设备与流程

本发明涉及图像处理技术领域,尤其涉及一种视点图像处理方法及相关设备。



背景技术:

多视点图像数据是一种用多个视频或图像采集设备获得的具有多个视角的图像或视频数据。比如在虚拟现实视频内容的拍摄中,可利用多个相机在不同位置拍摄视频,获得多视点图像数据,然后经过计算机进行图像处理得到虚拟视点图像,给用户营造虚拟现实视频体验。

由于现有图像传感器像素或硬件成本的限制,现有的拍摄设备不能同时获得较高的空间分辨率(单个视点图像分辨率)和角度分辨率(视点图像数量)。因此,通过拍摄空间分辨率较高、视点图像较少的多视点图像数据,并利用视点图像合成技术合成虚拟视点图像,重建高空间分辨率的自由视点图像数据成为解决该问题的有效途径。

现有技术中合成虚拟视点图像的方法中,例如如图1、图2和图3所示的方案。图1所示的方案,通过提取已有视点图像的深度信息作为卷积神经网络(convolutionalneuralnetworks,cnn)的训练特征,通过cnn预测合成虚拟视点图像。但是,由于该方案是基于已有视点图像的深度信息作为训练特征来合成虚拟视点图像,很难保证获取的深度信息的准确性,因此合成的虚拟视点图像的质量较差,另外,该方案每合成一个虚拟视点图像都需要重新提取已有视点图像的特征,然后运行整个合成网络,导致虚拟视点图像的合成效率较低。

需要说明的是,上述已有视点图像是用视频或图像采集设备(例如相机、摄像机、图像传感器等)在空间中某个位置实际拍摄获取到的图像。具体的,视点图像又可以称为视点。此外,上述虚拟视点图像为未经过视频或图像采集设备的实际拍摄,而是依靠计算虚拟合成的图像。

图2所示的方案,使用cnn和互相关来预测两个视点图像之间的光流,并通过光流信息来合成两个视点图像之间的虚拟视点图像。但是,该方案只能处理两个已有视点图像之间的虚拟视点图像合成问题,所合成的虚拟视点图像只能在两个虚拟视点图像之间的一维连线上;此外,该方案难以估计像素级别的光流信息,如果用到虚拟视点图像合成相关应用,将致使合成的虚拟视点图像的物体边缘部分质量较差。

图3所示的方案,使用cnn和自适应卷积核来合成两个视点图像的中间视点图像。但是,该方案只能生成一维两个视点图像的中间视点图像,对于多个视点图像需要重复的运行cnn,合成效率较低。

综上所述,如何在保证虚拟视点图像合成质量的情况下,提高合成的效率是本领域技术人员急需解决的技术问题。



技术实现要素:

本申请实施例公开了一种视点图像处理方法及相关设备,能够提高合成的虚拟视点的质量,同时提高合成的效率。

第一方面,本申请实施例公开了一种视点图像处理方法,该方法包括:

获取至少两个第一视点图像,所述至少两个第一视点图像包括分别在所述至少两个视点位置采集到的图像;

将所述至少两个第一视点图像和待合成的第二视点图像的位置信息输入虚拟视点合成网络;其中,所述虚拟视点合成网络为基于所述至少两个第一视点图像中每一个像素的自适应卷积核来合成所述第二视点图像的网络;所述位置信息表征所述第二视点图像的视点位置,所述第二视点图像在目标区域内,所述目标区域包括所述至少两个第一视点图像组成的区域;

通过所述虚拟视点合成网络计算得到所述第二视点图像。

上述第一视点图像可以是已有视点图像,上述第二视点图像可以是虚拟视点图像。需要说明的是,上述已有视点图像是用视频或图像采集设备(例如相机、摄像机、图像传感器等)在空间中某个位置实际拍摄获取到的图像。具体的,视点图像又可以称为视点。此外,上述虚拟视点图像为未经过视频或图像采集设备的实际拍摄,而是依靠计算虚拟合成的图像。

针对上述图1、图2和图3所述的现有技术的问题,本发明针对需要合成的虚拟视点的位置信息,动态地产生目标虚拟视点的自适应卷积核,直接生成对应视点图像,解决了该多个已有视点图像之间任意位置的虚拟视点合成问题,并提高了虚拟视点的主观质量和合成效率。

在其中一种可能的实施方式中,所述通过所述虚拟视点合成网络计算得到所述第二视点图像,包括:

获取所述至少两个第一视点图像之间的几何特征矩阵,所述几何特征矩阵为用于表征所述至少两个第一视点图像的像素之间几何位置的关系信息的矩阵;

根据所述几何特征矩阵和所述位置信息生成所述至少两个第一视点图像中每一个像素的自适应卷积核;

根据所述自适应卷积核和所述至少两个第一视点图像的像素生成所述至少两个待处理的虚拟合成像素矩阵;

将所述至少两个待处理的虚拟合成像素矩阵合成所述第二视点图像。

在其中一种可能的实施方式中,所述获取所述至少两个第一视点图像之间的几何特征矩阵,包括:

分别提取所述至少两个第一视点图像中的特征得到所述至少两个的特征矩阵;

将所述至少两个的特征矩阵中的任意每两个特征矩阵都执行互相关运算得到一个或多个运算后的特征矩阵;

在得到一个运算后的特征矩阵的情况下,将所述一个运算后的特征矩阵作为所述几何特征矩阵;在得到多个运算后的特征矩阵的情况下,根据所述多个运算后的特征矩阵计算得到所述几何特征矩阵。

在本申请实施例中,将该多个已有视点图像中两两之间几何位置的关系信息统一为一个几何特征矩阵后,虚拟视点的合成就可以利用该几何特征矩阵中所有已有视点图像中的有效信息,实现更好的合成效果。

在其中一种可能的实施方式中,所述获取所述至少两个第一视点图像之间的几何特征矩阵,包括:

分别提取所述至少两个第一视点图像的像素得到所述至少两个的像素矩阵;

将所述至少两个的像素矩阵组合成一个混合像素矩阵;

将所述混合像素矩阵输入第一预设卷积神经网络模型得到所述几何特征矩阵。

在其中一种可能的实施方式中,所述待合成的第二视点图像的位置信息为坐标值,所述根据所述几何特征矩阵和待合成的第二视点图像的位置信息生成所述至少两个第一视点图像中每一个像素的自适应卷积核,包括:

将所述坐标值扩展为与所述几何特征矩阵的行数和列数相同的位置矩阵;

将所述位置矩阵和所述几何特征矩阵组成一个混合信息矩阵;

将所述混合信息矩阵分别输入所述至少两个的第二预设卷积神经网络模型中,所述至少两个的第二预设卷积神经网络模型结构相同,参数不同;

根据所述至少两个的第二预设卷积神经网络模型的输出结果确定所述至少两个的第一视点图像中每一个像素的自适应卷积核。

在本申请实施例中,通过自适应卷积核将现有技术中的像素插值和邻域像素采样统一起来,隐式地处理了遮挡问题,可以生成更高质量的虚拟视点。自适应卷积核能够根据待合成的视点图像的位置信息自动调整,可以根据需要合成相应的虚拟视点,提高了现有技术的灵活性。

在其中一种可能的实施方式中,所述根据所述自适应卷积核和所述至少两个第一视点图像的像素生成所述至少两个待处理的虚拟合成像素矩阵,包括:

将所述至少两个第一视点图像中的每一个像素的自适应卷积核与以所述每一个像素为中心的像素矩阵一一对应地做卷积,得到所述每一个像素的像素位置对应的虚拟合成像素;所述像素矩阵的行数与所述每一个像素的自适应卷积核的行数相同,所述像素矩阵的列数与所述每一个像素的自适应卷积核的列数相同;

将得到的所述虚拟合成像素组成所述至少两个的虚拟合成像素矩阵。

在本申请实施例中,先根据上述多个已有视点图像和自适应卷积核生成初步的表征待合成视点图像的虚拟合成像素矩阵,后续再根据该初步生成虚拟合成像素矩阵合成最终的虚拟视点图像,从而能够提高合成的视点图像的质量。

第二方面,本申请实施例提供一种视点图像处理设备,该设备包括处理器、收发器和存储器,其中,所述存储器用于存储计算机程序和/或数据,所述处理器用于执行所述存储器中存储的计算机程序,使得所述设备执行如下操作:

获取至少两个第一视点图像,所述至少两个第一视点图像包括分别在所述至少两个视点位置采集到的图像;

将所述至少两个第一视点图像和待合成的第二视点图像的位置信息输入虚拟视点合成网络;其中,所述虚拟视点合成网络为基于所述至少两个第一视点图像中每一个像素的自适应卷积核来合成所述第二视点图像的网络;所述位置信息表征所述第二视点图像的视点位置,所述第二视点图像在目标区域内,所述目标区域包括所述至少两个第一视点图像组成的区域;

通过所述虚拟视点合成网络计算得到所述第二视点图像。

在其中一种可能的实施方式中,所述通过所述虚拟视点合成网络计算得到所述第二视点图像,包括:

获取所述至少两个第一视点图像之间的几何特征矩阵,所述几何特征矩阵为用于表征所述至少两个第一视点图像的像素之间几何位置的关系信息的矩阵;

根据所述几何特征矩阵和所述位置信息生成所述至少两个第一视点图像中每一个像素的自适应卷积核;

根据所述自适应卷积核和所述至少两个第一视点图像的像素生成所述至少两个待处理的虚拟合成像素矩阵;

将所述至少两个待处理的虚拟合成像素矩阵合成所述第二视点图像。

在其中一种可能的实施方式中,所述获取所述至少两个第一视点图像之间的几何特征矩阵,包括:

分别提取所述至少两个第一视点图像中的特征得到所述至少两个的特征矩阵;

将所述至少两个的特征矩阵中的任意每两个特征矩阵都执行互相关运算得到一个或多个运算后的特征矩阵;

在得到一个运算后的特征矩阵的情况下,将所述一个运算后的特征矩阵作为所述几何特征矩阵;在得到多个运算后的特征矩阵的情况下,根据所述多个运算后的特征矩阵计算得到所述几何特征矩阵。

在其中一种可能的实施方式中,所述获取所述至少两个第一视点图像之间的几何特征矩阵,包括:

分别提取所述至少两个第一视点图像的像素得到所述至少两个的像素矩阵;

将所述至少两个的像素矩阵组合成一个混合像素矩阵;

将所述混合像素矩阵输入第一预设卷积神经网络模型得到所述几何特征矩阵。

在其中一种可能的实施方式中,所述待合成的第二视点图像的位置信息为坐标值,所述根据所述几何特征矩阵和待合成的第二视点图像的位置信息生成所述至少两个第一视点图像中每一个像素的自适应卷积核,包括:

将所述坐标值扩展为与所述几何特征矩阵的行数和列数相同的位置矩阵;

将所述位置矩阵和所述几何特征矩阵组成一个混合信息矩阵;

将所述混合信息矩阵分别输入所述至少两个的第二预设卷积神经网络模型中,所述至少两个的第二预设卷积神经网络模型结构相同,参数不同;

根据所述至少两个的第二预设卷积神经网络模型的输出结果确定所述至少两个的第一视点图像中每一个像素的自适应卷积核。

在其中一种可能的实施方式中,所述根据所述自适应卷积核和所述至少两个第一视点图像的像素生成所述至少两个待处理的虚拟合成像素矩阵,包括:

将所述至少两个第一视点图像中的每一个像素的自适应卷积核与以所述每一个像素为中心的像素矩阵一一对应地做卷积,得到所述每一个像素的像素位置对应的虚拟合成像素;所述像素矩阵的行数与所述每一个像素的自适应卷积核的行数相同,所述像素矩阵的列数与所述每一个像素的自适应卷积核的列数相同;

将得到的所述虚拟合成像素组成所述至少两个的虚拟合成像素矩阵。

第三方面,本申请实施例提供一种视点图像处理设备,该设备包括:

第一获取单元,用于获取至少两个第一视点图像,所述至少两个第一视点图像包括分别在所述至少两个视点位置采集到的图像;

输入单元,用于将所述至少两个第一视点图像和待合成的第二视点图像的位置信息输入虚拟视点合成网络;其中,所述虚拟视点合成网络为基于所述至少两个第一视点图像中每一个像素的自适应卷积核来合成所述第二视点图像的网络;所述位置信息表征所述第二视点图像的视点位置,所述第二视点图像在目标区域内,所述目标区域包括所述至少两个第一视点图像组成的区域;

计算单元,用于通过所述虚拟视点合成网络计算得到所述第二视点图像。

在其中一种可能的实施方式中,所述计算单元包括:

第二获取单元,用于获取所述至少两个第一视点图像之间的几何特征矩阵,所述几何特征矩阵为用于表征所述至少两个第一视点图像的像素之间几何位置的关系信息的矩阵;

第一生成单元,用于根据所述几何特征矩阵和所述位置信息生成所述至少两个第一视点图像中每一个像素的自适应卷积核;

第二生成单元,用于根据所述自适应卷积核和所述至少两个第一视点图像的像素生成所述至少两个待处理的虚拟合成像素矩阵;

合成单元,用于将所述至少两个待处理的虚拟合成像素矩阵合成所述第二视点图像。

在其中一种可能的实施方式中,所述第二获取单元包括:

提取单元,用于分别提取所述至少两个第一视点图像中的特征得到所述至少两个的特征矩阵;

互相关运算单元,用于将所述至少两个的特征矩阵中的任意每两个特征矩阵都执行互相关运算得到一个或多个运算后的特征矩阵;

计算单元,用于在得到一个运算后的特征矩阵的情况下,将所述一个运算后的特征矩阵作为所述几何特征矩阵;在得到多个运算后的特征矩阵的情况下,根据所述多个运算后的特征矩阵计算得到所述几何特征矩阵。

在其中一种可能的实施方式中,所述第二获取单元包括:

提取单元,用于分别提取所述至少两个第一视点图像的像素得到所述至少两个的像素矩阵;

第一组成单元,将所述至少两个的像素矩阵组合成一个混合像素矩阵;

第一输入单元,将所述混合像素矩阵输入第一预设卷积神经网络模型得到所述几何特征矩阵。

在其中一种可能的实施方式中,所述待合成的第二视点图像的位置信息为坐标值,所述第一生成单元包括:

扩展单元,用于将所述坐标值扩展为与所述几何特征矩阵的行数和列数相同的位置矩阵;

第二组成单元,用于将所述位置矩阵和所述几何特征矩阵组成一个混合信息矩阵;

第二输入单元,用于将所述混合信息矩阵分别输入所述至少两个的第二预设卷积神经网络模型中,所述至少两个的第二预设卷积神经网络模型结构相同,参数不同;

确定单元,用于根据所述至少两个的第二预设卷积神经网络模型的输出结果确定所述至少两个的第一视点图像中每一个像素的自适应卷积核。

在其中一种可能的实施方式中,所述第二生成单元包括:

卷积单元,用于将所述至少两个第一视点图像中的每一个像素的自适应卷积核与以所述每一个像素为中心的像素矩阵一一对应地做卷积,得到所述每一个像素的像素位置对应的虚拟合成像素;所述像素矩阵的行数与所述每一个像素的自适应卷积核的行数相同,所述像素矩阵的列数与所述每一个像素的自适应卷积核的列数相同;

第三组成单元,用于将得到的所述虚拟合成像素组成所述至少两个的虚拟合成像素矩阵。

第四方面,本申请实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第一方面任意一项所述的方法。

第五方面,本申请实施例提供一种芯片,所述芯片包括中央处理器、神经网络处理器和存储器,其特征在于,所述装置被配置为执行上述第一方面任意一项所述的方法。

第六方面,本发明实施例提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面描述的方法。

第七方面,本申请实施例还提供了一种虚拟视点合成网络的训练方法,通过该虚拟视点合成网络可以实现上述第一方面任一项所述的视点图像处理方法,该训练方法包括:

获取多个已有视点图像和待合成的虚拟视点图像的位置信息;

获取该多个已有视点图像中每一个视点图像的像素矩阵;

根据上述获取到的像素矩阵计算得到几何特征矩阵;

根据该几何特征矩阵和上述待合成的虚拟视点的位置信息生成与上述多个已有视点图像数量相同的多个待处理虚拟合成像素矩阵;

根据上述多个待处理虚拟合成像素矩阵合成上述虚拟视点图像;

利用损失函数计算上述合成的虚拟视点图像与在上述待合成的虚拟视点图像的位置实际拍摄到的图像之间的损失值,然后根据该损失值对前面的表征网络、生成网络和修正网络中的卷积神经网络模型的参数进行适应性地调整;

不断重复上述步骤的操作,直到整个虚拟视点合成网络最终输出的虚拟视点图像与对应位置的实际图像的损失值小于阈值。

综上所述,针对上述图1、图2和图3所述的现有技术的问题,本发明利用多个已有视点图像之间的空间关系,将该多个已有视点图像的特征统一为一个整体的几何特征矩阵,解决了该多个已有视点图像之间几何位置的关系信息表征问题。在此基础上,本发明针对需要合成的虚拟视点的位置信息,动态地产生目标虚拟视点的自适应卷积核,直接生成对应视点,解决了该多个已有视点图像之间任意位置的虚拟视点合成问题,并提高了虚拟视点的主观质量和合成效率。

附图说明

下面将对本申请实施例中所需要使用的附图作介绍。

图1为现有技术中的一种虚拟视点图像生成的方法示意图;

图2为现有技术中的另一种虚拟视点图像生成的方法示意图;

图3为现有技术中的另一种虚拟视点图像生成的方法示意图;

图4为应用本申请实施例提供的视点图像处理方法的一个场景结构示意图;

图5为应用本申请实施例提供的视点图像处理方法的另一个场景结构示意图;

图6为应用本申请实施例提供的视点图像处理方法的另一个场景结构示意图;

图7为本申请实施例提供的视点图像处理方法涉及的系统结构示意图;

图8为本申请实施例提供的视点图像处理方法涉及的卷积神经网络结构示意图;

图9为本申请实施例提供的视点图像处理方法涉及的芯片硬件结构示意图;

图10为本申请实施例提供的虚拟视点合成网络的训练方法的流程示意图;

图11为本申请实施例提供的虚拟视点合成网络的结构示意图;

图12为本申请实施例提供的视点图像处理方法的流程示意图;

图13为本申请实施例提供的多个已有视点图像的关系示意图;

图14为本申请实施例提供的生成网络的运算过程的示意图;

图15为本申请实施例提供的视点图像处理设备的虚拟结构示意图;

图16为本申请实施例提供的虚拟视点合成网络的训练装置结构示意图;

图17为本申请实施例提供的视点图像处理设备的实体结构示意图。

具体实施方式

下面结合本发明实施例中的附图对本发明实施例进行描述。

本申请实施例提供的视点图像处理方法能够应用在光场视频内容虚拟视点合成、多个图像或视频采集设备拍摄的视频内容的视点图像合成、视频插帧等场景。

一个具体的应用场景:图像或视频采集设备阵列拍摄光场视频后,服务器获取该视频,并通过编码后传输到终端例如vr显示头盔,vr显示头盔根据头盔中位置传感器获取的待合成的视点图像的位置,然后根据本申请实施例提供的视点图像处理方法进行对应的视点图像合成,然后显示给用户观看。具体的可以参见图4,图像或视频采集设备阵列包括4个设备,该4个设备可以组成一个矩形阵列,该4个设备将采集到的视频或图像发送给服务器,服务器的接收模块接收到视频或图像后,传递给编码模块对其进行编码,然后再由发送模块发送给终端。终端接收到服务器发送的数据后,通过解码模块对其进行解码,然后终端的视点合成模块根据解码后的数据以及获取到的待合成的视点图像的位置信息采用本申请实施例提供的视点图像处理方法合成对应的视点图像,然后将合成的视点图像通过显示模块显示给用户。需要说明的是,由于视频是由一帧一帧的图像组成的,因此也可以采用本申请实施例提供的视点图像处理方法合成对应的虚拟视点图像。

或者,图像或视频采集设备阵列拍摄光场视频后,服务器获取该视频,同时服务器获取终端发送过来的待合成的视点图像的位置信息,然后根据本申请实施例提供的视点图像处理方法合成对应的视点,然后将合成的视点图像通过编码后传输到终端,然后显示给用户观看。具体的可以参见图5,图像或视频采集设备阵列包括4个设备,该4个设备可以组成一个矩形阵列,该4个设备将采集到的视频或图像发送给服务器,在服务器的接收模块接收到终端的发送模块发送的待合成视点图像的位置信息后,通过视点合成模块根据采集到的视频或图像以及待合成视点图像的位置信息合成对应的视点图像,然后通过编码模块将该合成的视点图像编码后,再通过发送模块将编码后的数据发送给终端。终端接收到服务器发送的数据后,通过解码模块解码得到合成的视点图像的原始图像数据,然后通过显示模块将该合成的视点图像显示给用户。

在上述应用场景中,通过本方案来合成虚拟视点图像可以提高合成的效率和合成的视点图像的质量。

另一个具体的应用场景:应用于视频插帧。通过本申请实施例提供的视点图像处理方法可以将低帧率的视频合成高帧率的视频。具体的,获取一个低帧率的视频,指定需要进行视频插值的两个视频帧(即为帧图像),然后采用本申请实施例提供的视点图像处理方法合成两个视频帧之间的多个虚拟帧,从而得到高帧率的视频输出。具体的可以参见图6,指定的两个视频帧为帧1和帧2,将帧1和帧2输入到本申请实施例提供的视点图像处理方法对应的虚拟视点合成网络中,通过该网络生成多个虚拟插值帧,最终得到高帧率的视频。

在上述应用场景中,本申请实施例提供的视点图像处理方法相较于基于深度信息的插值能够得到更自然的物体边缘和更少的噪点。同时,本申请实施例中的生成的自适应卷积核(下面会详细介绍,此处暂不详述)能够根据虚拟视频帧的位置信息自动适应,从而可以合成两个视频帧之间的任意一帧,解决了现有基于自适应卷积只能合成两个视频帧的中间位置虚拟的帧的问题,提高了视频插值的效率。

下面从模型训练侧和模型应用侧对本申请提供的方法进行描述:

本申请实施例提供的虚拟视点合成网络的训练方法,涉及计算机视觉的处理,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据(如本申请中的图像像素矩阵)进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的虚拟视点合成网络;并且,本申请实施例提供的视点图像处理方法可以运用上述训练好的虚拟视点合成网络,将输入数据(如本申请中的至少两个已有视点图像的像素矩阵和待合成的虚拟视点图像的位置信息)输入到所述训练好的虚拟视点合成网络中,得到输出数据(如本申请中的虚拟视点图像)。需要说明的是,本申请实施例提供的虚拟视点合成网络的训练方法和视点图像处理方法是基于同一个构思产生的发明,也可以理解为一个系统中的两个部分,或一个整体流程的两个阶段:如模型训练阶段和模型应用阶段。

需要说明的是,上述已有视点图像是用视频或图像采集设备(例如相机、摄像机、图像传感器等)在空间中某个位置实际拍摄获取到的图像。具体的,视点图像又可以称为视点。此外,上述虚拟视点图像为未经过视频或图像采集设备的实际拍摄,而是依靠计算虚拟合成的图像。

由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。

(1)神经网络

神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:

其中,s=1、2、……n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activationfunctions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。

(2)深度神经网络

深度神经网络(deepneuralnetwork,dnn),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从dnn按不同层的位置划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于dnn层数多,则系数w和偏移向量的数量也就很多了。这些参数在dnn中的定义如下所述:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第l-1层的第k个神经元到第l层的第j个神经元的系数定义为需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。

(3)卷积神经网络

卷积神经网络(convolutionalneuronnetwork,cnn)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(featuremap)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。

卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。

(4)循环神经网络(recurrentneuralnetworks,rnn)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。rnn之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,rnn能够对任何长度的序列数据进行处理。对于rnn的训练和对传统的cnn或dnn的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将rnn进行网络展开,那么其中的参数,如w,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法(backpropagationthroughtime,bptt)。

既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?rnn就应运而生了。rnn旨在让机器像人一样拥有记忆的能力。因此,rnn的输出就需要依赖当前的输入信息和历史的记忆信息。

(5)损失函数

在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(lossfunction)或目标函数(objectivefunction),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。

(6)反向传播算法

卷积神经网络可以采用误差反向传播(backpropagation,bp)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。

(7)像素值

图像的像素值可以是一个红绿蓝(rgb)颜色值,像素值可以是表示颜色的长整数。例如,像素值为256*red+100*green+76blue,其中,blue代表蓝色分量,green代表绿色分量,red代表红色分量。各个颜色分量中,数值越小,亮度越低,数值越大,亮度越高。对于灰度图像来说,像素值可以是灰度值。

下面介绍本申请实施例提供的系统架构。

参见附图7,本发明实施例提供了一种系统架构700。如所述系统架构700所示,数据采集设备760用于采集训练数据,本申请实施例中训练数据包括:多个作为训练特征的视点图像、多个作为用户标签的视点图像以及该多个作为用户标签的视点图像对应的位置信息。该多个作为训练特征的视点图像可以为m*m(m为大于等于2的整数)的视频或图像采集设备(例如相机、摄像机、图像传感器等)矩形阵列拍摄得到的图像中4个顶点的视频或图像采集设备拍摄到的图像,然后除了该4个顶点图像之外的其它(m*m-4)个图像作为用户标签的视点图像,该(m*m-4)个图像对应的视频或图像采集设备所在的空间位置信息作为用户标签的视点图像对应的位置信息,该位置信息可以是二维坐标或者三维坐标。或者,该多个作为训练特征的视点图像可以为m(m为大于等于2的整数)个视频或图像采集设备在一条直线上拍摄得到的图像中2个顶点的视频或图像采集设备拍摄到的图像,然后除了该2个顶点图像之外的其它(m-2)个图像作为用户标签的视点图像,该(m-2)个图像对应的视频或图像采集设备所在的空间位置信息作为用户标签的视点图像对应的位置信息。或者,该多个作为训练特征的视点图像可以为m(m为大于2的整数)个视频或图像采集设备组成其它多边形阵列拍摄得到的图像中该多边形阵列的顶点的视频或图像采集设备拍摄到的图像,然后除了该多个顶点图像之外的其它图像作为用户标签的视点图像,该其它图像对应的视频或图像采集设备所在的空间位置信息作为用户标签的视点图像对应的位置信息。当然,在训练的时候可以输入多组上述多个作为训练特征的视点图像、多个作为用户标签的视点图像以及该多个作为用户标签的视点图像对应的位置信息进行训练以达到更高的精度和准确度。

然后,将上述训练数据存入数据库730,训练设备720基于数据库730中维护的训练数据训练得到目标模型/规则701(解释说明:这里的701就是前面介绍的经训练阶段训练得到的模型,可以是用于虚拟视点合成的网络等)。下面将以实施例一更详细地描述训练设备720如何基于训练数据得到目标模型/规则701,该目标模型/规则701能够用于实现本申请实施例提供的视点图像处理方法,即,将至少两个已有视点图像和待合成的虚拟视点图像的位置信息通过相关预处理后输入该目标模型/规则701,即可得到虚拟视点图像。本申请实施例中的目标模型/规则701具体可以为虚拟视点合成网络。需要说明的是,在实际的应用中,所述数据库730中维护的训练数据不一定都来自于数据采集设备760的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备720也不一定完全基于数据库730维护的训练数据进行目标模型/规则701的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。

需要说明的是,上述已有视点图像是用视频或图像采集设备(例如相机、摄像机、图像传感器等)在空间中某个位置实际拍摄获取到的图像。具体的,视点图像又可以称为视点。

此外,虚拟视点图像为未经过视频或图像采集设备的实际拍摄,而是依靠计算虚拟合成的图像。

根据训练设备720训练得到的目标模型/规则701可以应用于不同的系统或设备中,如应用于图7所示的执行设备710,所述执行设备710可以是终端,如手机终端,平板电脑,笔记本电脑,ar/vr设备,车载终端等,还可以是服务器或者云端等。在附图7中,执行设备710配置有i/o接口712,用于与外部设备进行数据交互,用户可以通过客户设备740向i/o接口712输入数据,所述输入数据在本申请实施例中可以包括:待合成的虚拟视点的位置信息,该信息可以是用户输入的,客户设备740自动检测到的,具体依方案而定。

预处理模块713用于根据i/o接口712接收到的输入数据(如所述多个已有视点图像)进行预处理,在本申请实施例中,预处理模块713可以用于获取多个已有视点图像的像素矩阵等。

在执行设备710对输入数据进行预处理,或者在执行设备710的计算模块711执行计算等相关的处理过程中,执行设备710可以调用数据存储系统750中的数据、计算机程序等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统750中。

最后,i/o接口712将处理结果,如上述得到的虚拟视点图像返回给客户设备740,从而提供给用户。

值得说明的是,训练设备720可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则701,该相应的目标模型/规则701即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。

在附图7中所示情况下,用户可以手动给定输入数据,该手动给定可以通过i/o接口712提供的界面进行操作。另一种情况下,客户设备740可以自动地向i/o接口712发送输入数据,如果要求客户设备740自动发送输入数据需要获得用户的授权,则用户可以在客户设备740中设置相应权限。用户可以在客户设备740查看执行设备710输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备740也可以作为数据采集端,采集如图所示输入i/o接口712的输入数据及输出i/o接口712的输出结果作为新的样本数据,并存入数据库730。当然,也可以不经过客户设备740进行采集,而是由i/o接口712直接将如图所示输入i/o接口712的输入数据及输出i/o接口712的输出结果,作为新的样本数据存入数据库730。

值得注意的是,附图7仅是本发明实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图7中,数据存储系统750相对执行设备710是外部存储器,在其它情况下,也可以将数据存储系统750置于执行设备710中。

如图7所示,根据训练设备720训练得到目标模型/规则701,该目标模型/规则701在本申请实施例中可以是虚拟视点合成网络,具体的,本申请实施例提供的虚拟视点合成网络可以包括:表征网络、生产网络和修正网络。在本申请实施例提供的虚拟视点合成网络中,所述表征网络、生产网络和修正网络都可以是卷积神经网络。

如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deeplearning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,cnn是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。

如图8所示,卷积神经网络(cnn)800可以包括输入层810,卷积层/池化层820(其中池化层为可选的),以及神经网络层830。

卷积层/池化层820:

卷积层:

如图8所示卷积层/池化层820可以包括如示例821-826层,举例来说:在一种实现中,821层为卷积层,822层为池化层,823层为卷积层,824层为池化层,825为卷积层,826为池化层;在另一种实现方式中,821、822为卷积层,823为池化层,824、825为卷积层,826为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。

下面将以卷积层821为例,介绍一层卷积层的内部工作原理。

卷积层821可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depthdimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个大小(行×列×通道数)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵大小(行×列×通道数)相同,经过该多个大小相同的权重矩阵提取后的特征图的大小也相同,再将提取到的多个大小相同的特征图合并形成卷积运算的输出。

这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络800进行正确的预测。

需要说明的是,本申请实施例中涉及的三维矩阵的大小一般用(行×列×通道数)来表示,这里的行、列与二维矩阵中的行、列的意思相同,这里的通道数指的是有多少个行和列组成的二维矩阵。例如,如果一个三维矩阵的大小为3*4*5,也就是说这个矩阵有3行、4列和5个通道,那么这里的5个通道表示的是该三维矩阵是由5个3行4列的二维矩阵组成的。

当卷积神经网络800有多个卷积层的时候,初始的卷积层(例如821)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络800深度的加深,越往后的卷积层(例如826)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。

池化层:

由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图8中820所示例的821-826各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小大小的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像大小相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像大小可以小于输入池化层的图像的大小,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。

神经网络层830:

在经过卷积层/池化层820的处理后,卷积神经网络800还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层820只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络800需要利用神经网络层830来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层830中可以包括多层隐含层(如图8所示的831、832至83n)以及输出层840,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。

在神经网络层830中的多层隐含层之后,也就是整个卷积神经网络800的最后层为输出层840,该输出层840具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络800的前向传播(如图8由810至840方向的传播为前向传播)完成,反向传播(如图8由840至810方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络800的损失,及卷积神经网络800通过输出层输出的结果和理想结果之间的误差。

需要说明的是,如图8所示的卷积神经网络800仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。

下面介绍本申请实施例提供的一种芯片硬件结构。

图9为本发明实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器90。该芯片可以被设置在如图7所示的执行设备710中,用以完成计算模块711的计算工作。该芯片也可以被设置在如图7所示的训练设备720中,用以完成训练设备720的训练工作并输出目标模型/规则701。如图8所示的卷积神经网络中各层的算法均可在如图9所示的芯片中得以实现。

神经网络处理器90可以是嵌入式神经网络处理器(neural-networkprocessingunit,npu)、张量处理单元即tpu(tensorprocessingunit,tpu)或者图形处理器(graphicsprocessingunit,gpu)等一切适合用于大规模异或运算处理的处理器。以npu为例:npu可以作为协处理器挂载到主cpu(hostcpu)上,由主cpu为其分配任务。npu的核心部分为运算电路903,通过控制器904控制运算电路903提取存储器(901和902)中的矩阵数据并进行乘加运算。

在一些实现中,运算电路903内部包括多个处理单元(processengine,pe)。在一些实现中,运算电路903是二维脉动阵列。运算电路903还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路903是通用的矩阵处理器。

举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路903从权重存储器902中取矩阵b的权重数据,并缓存在运算电路903中的每一个pe上。运算电路903从输入存储器901中取矩阵a的输入数据,根据矩阵a的输入数据与矩阵b的权重数据进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)908中。

统一存储器906用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(dmac,directmemoryaccesscontroller)905,被搬运到权重存储器902中。输入数据也通过dmac被搬运到统一存储器906中。

总线接口单元(biu,businterfaceunit)910,用于dmac和取指存储器(instructionfetchbuffer)909的交互;总线接口单元901还用于取指存储器909从外部存储器获取指令;总线接口单元901还用于存储单元访问控制器905从外部存储器获取输入矩阵a或者权重矩阵b的原数据。

dmac主要用于将外部存储器ddr中的输入数据搬运到统一存储器906中,或将权重数据搬运到权重存储器902中,或将输入数据搬运到输入存储器901中。

向量计算单元907多个运算处理单元,在需要的情况下,对运算电路903的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。向量计算单元907主要用于神经网络中非卷积层,或全连接层(fc,fullyconnectedlayers)的计算,具体可以处理:pooling(池化),normalization(归一化)等的计算。例如,向量计算单元907可以将非线性函数应用到运算电路903的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元907生成归一化的值、合并值,或二者均有。

在一些实现中,向量计算单元907将经处理的向量存储到统一存储器906。在一些实现中,经向量计算单元907处理过的向量能够用作运算电路903的激活输入,例如用于神经网络中后续层中的使用,如图8所示,若当前处理层是隐含层1(831),则经向量计算单元907处理过的向量还可以被用到隐含层2(832)中的计算。

控制器904连接的取指存储器(instructionfetchbuffer)909,用于存储控制器904使用的指令。

统一存储器906,输入存储器901,权重存储器902以及取指存储器909均为on-chip存储器。外部存储器独立于该npu硬件架构。

其中,图8所示的卷积神经网络中各层的运算可以由运算电路903或向量计算单元907执行。

实施例一:

图10为本发明实施例一提供的一种虚拟视点合成网络的训练方法1000,该虚拟视点合成网络的结构示意图可以参见图11,在图11中,虚拟视点合成网络包括三个部分,分别为表征网络、生成网络和修正网络。其中,表征网络用于获取输入的已有视点图像的特征,并根据这些特征计算得到一个表征输入的已有视点图像之间几何位置的关系信息的特征矩阵;生成网络用于根据该特征矩阵生成初步的合成视点的虚拟合成像素矩阵;修正网络用于根据初步合成视点的虚拟合成像素矩阵生成最终的合成视点输出。

下面将介绍训练该虚拟视点合成网络的方法,该方法包括但不限于如下步骤:

步骤1001、获取多个已有视点图像和待合成的虚拟视点图像的位置信息。

具体的,该多个已有视点图像为作为训练特征的图像,具体对该训练特征的图像的描述可以参见图7所对应的描述中对训练数据的描述,此处不再赘述。

步骤1002、获取该多个已有视点图像中每一个视点图像的像素矩阵。

具体的,该像素矩阵可以是包括r、g和b三通道的像素信息的三维像素矩阵。或者,如果图像是灰度图像,那么获取到的像素矩阵可以是二维的像素矩阵。

步骤1003、根据上述多个像素矩阵计算得到几何特征矩阵。

具体的,将上述获取到的多个像素矩阵输入到表征网络中,输出一个表征该多个已有视点图像之间几何位置的关系信息的几何特征矩阵。该表征网络中包括一个特征提取的卷积神经网络模型和特征计算模型。首先,该特征提取的卷积神经网络模型根据输入的像素矩阵提取每一个已有视点对应的特征矩阵。提取出的每一个特征矩阵可以包括对应的视点图像的颜色特征、纹理特征、形状特征和空间关系特征中的一项或多项特征信息。然后,计算模型将该多个特征矩阵的任意每两个进行互相关操作得到多个互相关运算之后的矩阵,然后将该多个互相关运算之后的矩阵相加得到几何特征矩阵。

或者,根据上述多个像素矩阵计算得到几何特征矩阵也可以是如下的实现方式:

将获取到的多个像素矩阵按预设的顺序组成一个三维的混合像素矩阵(具体的组成方式下面会详细介绍,此处暂不详述),然后将该混合像素矩阵输入到表征网络中,输出即为上述几何特征矩阵。该表征网络可以包括一个用于根据上述混合像素矩阵计算输出上述几何特征矩阵的卷积神经网络模型。

步骤1004、根据几何特征矩阵和上述待合成的虚拟视点的位置信息生成与上述多个已有视点图像数量相同的多个待处理虚拟合成像素矩阵。

具体的,将上述待合成的虚拟视点图像的位置信息(例如二维坐标或者三维坐标的各坐标值)扩展为与该几何特征矩阵的行列相同的矩阵,然后将该矩阵连接在上述几何特征矩阵的前面或者后面形成一个混合信息矩阵,然后将该混合信息矩阵输入到生成网络中,得到上述多个待处理视点图像。该生成网络包括与上述多个已有视点图像数量相同的多个自适应卷积核生成模型(该模型可以为卷积神经网络模型)和卷积计算模型。将上述混合信息矩阵分别输入该多个自适应卷积核生成模型,分别生成上述多个已有视点图像的像素矩阵中每一个像素对应的自适应卷积核。然后,卷积计算模块将每一个像素矩阵的自适应卷积核与以该自适应卷积核对应的像素为中心的像素块(像素块即为像素矩阵,大小与对应卷积核的大小相同)做卷积,得到每一个像素的像素位置对应的虚拟合成像素。然后,上述多个已有视点图像中每一个图像对应的所有虚拟合成像素按照该图像的像素顺序组合成一个虚拟合成像素矩阵,得到多个待处理虚拟合成像素矩阵。每一个虚拟合成像素矩阵表征一个待处理虚拟视点图像。

步骤1005、根据上述多个待处理虚拟合成像素矩阵合成上述虚拟视点图像。

具体的,将该多个待处理虚拟合成像素矩阵组合成一个混合虚拟合成像素矩阵,然后将该混合虚拟合成像素矩阵输入到修正网络中得到上述虚拟视点图像。该修正网络包括修正卷积神经网络,该神经网络用于根据输入的混合虚拟合成像素矩阵合成最终的虚拟视点图像并输出。

步骤1006、利用损失函数计算上述合成的虚拟视点图像与在上述待合成的虚拟视点图像的位置实际拍摄到的图像之间的损失值,然后根据该损失值对前面的表征网络、生成网络和修正网络中的卷积神经网络模型的参数进行适应性地调整。

步骤1007、不断重复上述步骤1001至步骤1006的操作,直到整个虚拟视点合成网络最终输出的虚拟视点图像与对应位置的实际图像的损失值小于阈值,则表明已经成功将该虚拟视点合成网络训练出来。

在一些可能的实施方式中,在整个训练过程中,步骤1001中的获取多个已有视点图像、步骤1002和步骤1003可以只执行一次,然后分别输入不同的位置信息(这些位置信息是上述多个已有视点图像组成的多边形所包围的区域中的位置的信息,或者是两个已有视点图像之间的直线上的位置的信息;同时,在该位置上生成的虚拟视点图像在上述多个已有视点图像包括的区域内,即该合成的虚拟视点图像表征的内容不超出该多个已有视点图像表征的内容的范围。)得到不同的位置的虚拟视点图像与对应位置的实际图像作比较,然后慢慢修正整个虚拟视点合成网络中卷积神经网络的参数,直至最终输出的虚拟视点图像与对应位置的实际图像的损失值小于阈值。

所述方法1000具体可以由如图7所示的训练设备720执行,所述方法1000中的多个已有视点图像、待合成的虚拟视点图像的位置信息以及在虚拟视点图像对应的位置中实际拍摄到的图像可以是如图7所示的数据库730中维护的训练数据。可选的,所述方法1000的步骤1001和步骤1002可以在训练设备720中执行,也可以在训练设备720之前由其他功能模块预先执行,即先对从所述数据库730中接收或者获取到的训练数据进行预处理,如步骤1001和步骤1002所述的获取多个已有视点图像和待合成的虚拟视点图像的位置信息,然后获取该多个已有视点图像中每一个视点图像的像素矩阵过程,得到多个像素矩阵,作为所述训练设备720的输入,并由所述训练设备720执行步骤1003至步骤1007。

可选的,所述方法1000可以由cpu处理;或者,也可以由cpu和gpu共同处理;或者也可以由cpu和其他适合用于神经网络计算的处理器共同处理,具体的处理器的选择根据实际的情况确定,本申请不做限制。

实施例二:

图12是本发明实施例提供的一种视点图像处理方法1200,该方法1200包括但不限于如下步骤:

步骤1201、获取预设个数的第一视点图像。

具体的,第一视点图像为已有视点图像。

在具体实施例中,如果是在服务器端(包括云服务器,可以是对图7的描述中所述的服务器或云端)完成虚拟视点图像的合成,那么,服务器可以与预设个数的视频或图像采集设备联网连接,该预设个数的采集设备在预设个数的空间位置采集到预设个数的图像之后,将该预设个数的图像发送给服务器。如果是在终端(可以是对图7的描述中所述的终端)完成虚拟视点图像的合成,那么服务器从上述预设个数的采集设备获取到预设个数的已有视点图像后,将该预设个数的图像发送给终端。具体的,上述预设个数的已有视点图像对应的图像任意每两个图像都有重叠的部分。

可选的,上述预设个数的已有视点图像可以是大于等于2的任意整数个数的已有视点图像。

可选的,上述预设个数的已有视点图像为上述预设个数的视频或图像采集设备在同一时刻采集到的图像。

可选的,预设个数的空间位置可以称为已有视点位置,即在拍摄已有视点图像时采集设备在空间中的位置称为已有视点位置。上述预设个数的视频或图像采集设备分别在一个已有视点位置上。

可选的,上述预设个数的已有视点位置可以位于同一平面。

可选的,上述预设个数的已有视点位置可以在同一平面中成矩阵排列的形式,例如,有4个已有视点位置,那么这4个已有视点位置可以以矩形的形式排列,每一个已有视点位置作为该矩形的顶点。

在其中一种可能的实施方式中,上述获取的预设个数的第一视点图像可以是根据终端发送的待合成的虚拟视点图像的位置信息确定获取的。具体的,终端采集该待合成的虚拟视点图像的位置信息,并将该位置信息发送给服务器,服务器根据该位置信息分析出可以根据上述预设个数的第一视点图像合成该虚拟视点图像,因此,该服务器向对应预设个数的采集设备发送拍摄指令,该预设个数的采集设备根据指令拍摄对应的图像发送给服务器。

可选的,上述待合成的虚拟视点图像可以是依靠计算根据上述预设个数的已有视点图像虚拟合成的图像。

可选的,如果上述终端是vr显示头盔,那么虚拟视点图像的位置信息可以通过vr显示头盔设备中的位置传感器获得。具体的,在用户启动vr头盔时,该头盔自动设置了一个坐标原点,并建立了一个默认的坐标系,头盔可以随着用户的头上下左右移动,每移动到一个位置,头盔中的位置传感器就获取对应位置的信息(坐标信息)作为待合成的虚拟视点图像的位置信息。

可选的,如果终端是电脑或触屏设备,可以通过响应于鼠标或触控笔等的拖拽、点击操作来确定待合成的虚拟视点图像的位置信息,或者可以响应于鼠标或触控笔等的移动的方向来确定待合成的虚拟视点图像的位置信息。

可选的,待合成的虚拟视点图像的位置可以是上述预设个数的已有视点图像位置组成的封闭范围内的任意一个位置的信息。例如,假设上述预设个数的已有视点图像为4个视点图像,将该4个视点图像对应的已有视点位置依次连线组成一个多边形(例如矩形),那么待合成的虚拟视点图像的位置可以是该多边形中的位置;且在该位置上生成的虚拟视点图像在该预设个数的第一视点图像包括的区域内,即该合成的虚拟视点图像表征的内容不超出该预设个数的第一视点图像表征的内容的范围。

步骤1202、获取上述预设个数的已有视点图像之间的几何特征矩阵。

在具体实施例中,上述几何特征矩阵可以用于表征上述预设个数的已有视点图像之间几何位置的关系信息,具体的,该几何特征矩阵可以用于表征上述预设个数的已有视点图像的像素之间几何位置的关系信息。

可选的,该几何位置的关系信息可以包括上述预设个数的已有视点图像中任意两个图像的像素之间的位置偏移关系信息,还可以包括任意两个图像的像素之间的位置偏移权重(或者说位置偏移量的大小)。为了便于理解举例说明:假设有a和b两个视点图像,这两个图像的重叠部分有一个像素a,以a视点图像为参考,那么b视点图像中的像素a相对于a视点图像中的像素a的位置偏移权重为5,可以表明b视点图像中的像素a相对于a视点图像中的像素a的位置偏移量的大小为5个单位的距离。

可选的,该几何位置的关系信息还可以包括上述预设个数的已有视点图像中任意两个图像的像素之间的位置偏移的方向信息。为了便于理解举例说明:假设有a和b两个视点图像,这两个图像的重叠部分有一个像素a,以a视点图像为参考,那么b视点图像中的像素a相对于a视点图像中的像素a的位置偏移的方向例如可以包括向左偏移、向右偏移、向上偏移、向下偏移、向左下方偏移、向右上方偏移、向左上方偏移、向右下方偏移等等。

需要说明的是,上述两个举例只是示例性的说明,具体的几何位置的关系信息根据具体情况确定,本方案对此不作出限制。

下面介绍三种获取上述预设个数的已有视点图像之间的几何特征矩阵的具体的实现方式:

实现方式一:

上述获取上述预设个数的已有视点图像之间的几何特征矩阵,包括:分别提取上述预设个数的已有视点图像中的特征得到上述预设个数的特征矩阵,上述特征包括上述预设个数的已有视点图像的颜色特征、纹理特征、形状特征和空间关系特征中的一项或多项;将上述预设个数的特征矩阵中的任意每两个特征矩阵都执行互相关运算得到一个或多个运算之后的特征矩阵;在得到一个运算后的特征矩阵的情况下,将所述一个运算后的特征矩阵作为所述几何特征矩阵;在得到多个运算后的特征矩阵的情况下,根据所述多个运算后的特征矩阵计算得到所述几何特征矩阵。

在具体实施例中,可以通过已经训练好的特征提取模型来提取上述预设个数的已有视点图像对应的图像的特征。具体的,将上述预设个数的已有视点图像输入到该特征提取模型中,得到各个视点图像对应的特征矩阵。该预设个数的特征矩阵可以包括对应图像的像素信息、颜色特征、纹理特征、形状特征和空间关系特征中的一项或多项。这些特征矩阵是通用上述特征提取模型对原始图像经过下采样、卷积等一系列处理后获得的。

然后,将上述得到的预设个数的特征矩阵中的任意每两个矩阵进行互相关操作,得到大小相同的一个或多个互相关运算之后的特征矩阵。具体的,在上述预设个数为2的情况下,那么提取特征矩阵进行互相关操作之后仅得到一个互相关运算之后的特征矩阵,此时,该一个互相关运算之后的特征矩阵即为上述几何特征矩阵。在上述预设个数大于2的情况下,那么提取特征矩阵进行互相关操作之后可以得到多个互相关运算之后的特征矩阵,然后,将该多个互相关运算之后的特征矩阵相加得到上述几何特征矩阵。

可选的,上述特征提取模型可以是预先训练好用来提取图像的上述特征的卷积神经网络(convolutionalneuralnetworks,cnn)。

可选的,上述经过特征提取模型得到各个视点图像对应的特征矩阵可以是三维矩阵。假设输入图像的大小是w*h*c,那么得到的特征矩阵的大小可以为(w/4)*(h/4)*c0(这里得到的矩阵的大小只是示例性地给出,也可以是其它大小的矩阵,此处不做限制),其中c0为第三维度的大小,可以称为通道数。每一个通道表征的是图像的一种特征,例如,假设提取的特征为图像的像素信息、颜色特征、纹理特征、形状特征和空间关系特征,那么得到的该图像的像素矩阵的通道数c0为5,五个通道分别表征的是该图像的像素信息、颜色特征、纹理特征、形状特征和空间关系特征。当然还可以是其它的图像特征,这里只是示例性介绍。

可选的,上述输入的图像可以指的是表征该图像的像素矩阵,该像素矩阵是三维的像素矩阵,可以表征r、g和b三个颜色通道的像素,此时上述c为3。上述w和h根据实际图像中的大小来确定,此处不做限制。

可选的,如果上述输入的图像是灰度图,那么输入图像的大小可以w*h,可以是一个二维的像素矩阵,可以表征该灰度图的像素。

需要说明的是,上述输入图像是灰度图和不是灰度图这两种情况下,特征提取模型的参数可以是不同的,具体根据训练结果来确定。

可选的,上述多个互相关运算之后的特征矩阵的大小可以是(w/4)*(h/4)*c1,该c1=n*n,该n在选取时需考虑输入的预设个数的图像中拍摄位置距离最远的两幅图像之间像素的最大偏移量。

例如,参见图13,假设上述预设个数的已有视点图像为4个视点图像,分别为a视点图像、b视点图像、c视点图像和d视点图像。其中,a视点图像和b视点图像中的1301区域为该两个视点图像中重叠的区域,b视点图像和c视点图像中的区域1302为该两个视点图像中重叠的区域,c视点图像和d视点图像中的1303区域为该两个视点图像中重叠的区域,d视点图像和a视点图像中的区域1304为该两个视点图像中重叠的区域,a、b、c和d四个视点图像中的区域1305为该四个视点图像中的重叠区域。此外,假设a、b、c和d该四个视点图像中的1306为一个像素点,该像素点位于该四个视点图像中的不同位置,但是该像素点为图像中对应的实际物体中的同一个像素点,这是由于该四个视点图像对应的采集图像的视点图像位置不同(例如该四个视点图像位置呈矩形排列)导致该像素点落在该四个视点图像中的不同位置。

在图13中,假设a视点图像对应的像素矩阵中像素1306的下标为[a1][a2],b视点图像对应的像素矩阵中像素1306的下标为[b1][b2],c视点图像对应的像素矩阵中像素1306的下标为[c1][c2],d视点图像对应的像素矩阵中像素1306的下标为[d1][d2],又假设a视点图像为参考视点图像,那么其它三个视点图像中的像素1306相对于a视点图像中的像素1306中偏移最大的为d视点图像中的像素1306,因此计算a、d视点图像中该像素1306的偏移量即得到当然也可以以b为参考视点图像,那么其它三个视点图像中的像素1306相对于b视点图像中的像素1306中偏移最大的为c视点图像中的像素1306,因此计算b、c视点图像中该像素1306的偏移量即得到那么,n≥max(nad,nbc),且n为整数。

可选的,由于上述多个互相关运算之后的特征矩阵的大小可以是(w/4)*(h/4)*c1,那么该多个互相关运算之后的特征矩阵相加得到的几何特征矩阵的大小也是(w/4)*(h/4)*c1。

可选的,为了便于理解上述任意每两个特征矩阵做互相关操作的过程,下面举例说明:假设做互相关操作的两个矩阵分别成为a矩阵和b矩阵,这两个矩阵中的下标[i][j][k]表示的是第i行、第j列、第k通道的元素的下标。假设a,b两个矩阵的大小为m1*m2*m3,即表明这两个矩阵有m1行、m2列、m3个通道。又假设上述偏移量n为3。那么,在a矩阵中取下标为[i][j][1]、[i][j][2]、[i][j][3]、…、[i][j][m3]这m3个元素组成一个第一向量。在b矩阵中取下标为[i-1][j-1][1]、[i-1][j-1][2]、[i-1][j-1][3]、…、[i-1][j-1][m3]、[i-1][j][1]、[i-1][j][2]、[i-1][j][3]、…、[i-1][j][m3]、[i-1][j+1][1]、[i-1][j+1][2]、[i-1][j+1][3]、…、[i-1][j+1][m3]、[i][j-1][1]、[i][j-1][2]、[i][j-1][3]、…、[i][j-1][m3]、[i][j][1]、[i][j][2]、[i][j][3]、…、[i][j][m3]、[i][j+1][1]、[i][j+1][2]、[i][j+1][3]、…、[i][j+1][m3]、[i+1][j-1][1]、[i+1][j-1][2]、[i+1][j-1][3]、…、[i+1][j-1][m3]、[i+1][j][1]、[i+1][j][2]、[i+1][j][3]、…、[i+1][j][m3]、[i+1][j+1][1]、[i+1][j+1][2]、[i+1][j+1][3]、…、[i+1][j+1][m3]这3*3*m3个元素组成的第一矩阵,即该第一矩阵为以[i][j][(1+m3)/2]为中心的大小为3*3*m3的矩阵。然后,将该第一向量与第一矩阵做互相关操作得到3*3个元素构成的向量。其中,i大于等于1且小于等于m1,j大于等于1且小于等于m2。经过上述计算,最后得到m1*m2个大小为3*3的向量,然后,按照与a矩阵原来的元素对应的顺序将该m1*m2个向量组成大小为m1*m2*9的互相关运算之后的特征矩阵。

需要说明的是,当[i][j][1]是矩阵边缘的元素时,在矩阵b中获取不到3*3*m3个元素的第一矩阵的时候,那么获取不到的元素,可以用0补充,也可以用最边缘对应的元素进行补充,以使得能够组成一个3*3*m3个元素的第一矩阵。

当然这里只是示例性的介绍互相关的过程,上述的参数可以根据具体的情况而定,本方案对此不做限制。

实现方式二:

上述获取所述预设个数的已有视点图像之间的几何特征矩阵,包括:分别提取所述预设个数的已有视点图像的像素得到所述至少两个的像素矩阵;将所述得到所述至少两个的像素矩阵组合成一个混合像素矩阵;将所述混合像素矩阵输入第一预设卷积神经网络模型得到所述几何特征矩阵。

在具体的实施例中,上述第一卷积神经网络模型为训练好的根据上述混合像素矩阵计算得到上述几何特征矩阵的机器学习模型。

具体的,在本申请实施例中,如果上述预设个数的已有视点图像为彩色图像,那么可以先通过像素读取函数或程序获取到上述预设个数的视点图像中每一个视点图像的r、g和b这三个颜色通道的像素矩阵,然后将获取到的预设个数的像素矩阵按顺序组成一个三维的混合像素矩阵。

可选的,将获取到的预设个数的像素矩阵按顺序组成一个三维的混合像素矩阵包括:将获取到的预设个数的像素矩阵头尾相连组合成三维的通道数为3倍预设个数的混合像素矩阵。为了便于理解,下面举例说明:

例如,如果有4个视点图像a、b、c和d,每一个视点图像都可以获取到一个包括r、g和b三个通道的像素的三维像素矩阵(该三维矩阵的第一通道、第二通道和第三通道分别表征的是r、g和b的像素值),那么可以获取到4个三维像素矩阵。假设这4个三维像素矩阵称为矩阵1、矩阵2、矩阵3和矩阵4。那么,可以按照矩阵1、矩阵2、矩阵3和矩阵4的顺序,将矩阵2添加到矩阵1的第三通道的后面得到6通道的矩阵,然后将矩阵3添加到矩阵2的第三通道后面得到9通道的矩阵,然后将矩阵4添加到矩阵3的第三通道后面得到12通道的矩阵,该12通道的矩阵即为最终得到的三维的混合像素矩阵。或者也可以按照矩阵1、矩阵3、矩阵2和矩阵4的顺序来组成该混合像素矩阵,或者也可以按照矩阵2、矩阵1、矩阵3和矩阵4的顺序来组成该混合像素矩阵等等,具体的顺序可以按照实际情况决定,本方案对此不做限定。

需要说明的是,上述不同顺序组合得到的混合像素矩阵对应的上述第一卷积神经网络模型的结构和参数可以不相同。

具体的,在本申请实施例中,如果上述预设个数的已有视点图像为灰度图像,那么可以先通过灰度值读取函数或程序获取到上述预设个数的视点图像中每一个视点图像的灰度值矩阵,该灰度值矩阵是一个一通道的像素矩阵。然后将获取到的预设个数的灰度值矩阵按顺序组成一个三维的混合像素矩阵。

可选的,将获取到的预设个数的灰度值矩阵按顺序组成一个三维的混合像素矩阵包括:将获取到的预设个数的灰度值矩阵头尾相连组合成三维的通道数为上述预设个数的混合像素矩阵。为了便于理解,下面举例说明:

例如,如果有4个视点图像a、b、c和d,每一个视点图像都可以获取到一个灰度值矩阵,那么可以获取到4个灰度值矩阵。假设这4个灰度值矩阵称为矩阵11、矩阵21、矩阵31和矩阵41。那么,可以按照矩阵11、矩阵21、矩阵31和矩阵41的顺序,将矩阵21添加到矩阵11的后面得到2通道的矩阵,然后将矩阵31添加到矩阵21的后面得到3通道的矩阵,然后将矩阵41添加到矩阵31的后面得到4通道的矩阵,该4通道的矩阵即为最终得到的三维的混合像素矩阵。或者也可以按照矩阵11、矩阵31、矩阵21和矩阵41的顺序来组成该混合像素矩阵,或者也可以按照矩阵21、矩阵11、矩阵31和矩阵41的顺序来组成该混合像素矩阵等等,具体的顺序可以按照实际情况决定,本方案对此不做限定。

需要说明的是,上述不同顺序组合得到的混合像素矩阵对应的上述第一卷积神经网络模型的结构和参数可以不相同。

实现方式三:

上述获取所述预设个数的已有视点图像之间的几何特征矩阵,包括:分别提取所述预设个数的已有视点图像中的特征得到所述预设个数的特征矩阵,所述特征包括所述预设个数的已有视点图像的颜色特征、纹理特征、形状特征和空间关系特征中的一项或多项;将所述预设个数的特征矩阵组成混合特征矩阵;将所述混合特征矩阵输入预设卷积神经网络模型得到所述几何特征矩阵。

在本申请实施例中,将特征矩阵替换上述实现方式二的像素矩阵即可,具体的实现方式可以参见上述实现方式二的具体描述,此处不再赘述。

需要说明的是,上述实现方式三中的预设卷积神经网络模型与上述实现方式二中的第一预设卷积神经网络模型的结构和参数可以不同,具体的结构和参数根据实际训练的情况决定。

步骤1203、根据上述几何特征矩阵和待合成的第二视点图像的位置信息生成上述预设个数的已有视点图像中每一个像素的自适应卷积核。

具体的,上述待合成的第二视点图像即为待合成的虚拟视点图像。

在具体实施例中,如果是在服务器端完成虚拟视点图像的合成,那么,上述待合成的虚拟视点图像的位置信息可以由终端采集然后发送给服务器。如果是在终端完成虚拟视点图像的合成,那么上述待合成的虚拟视点图像的位置信息可以直接由终端采集,然后用于虚拟视点图像的合成。

具体的对待合成的虚拟视点图像的位置信息的描述可以参见步骤1201中的对应描述,此处不再赘述。

在具体实施例中,获得了上述几何特征矩阵和待合成的虚拟视点图像的位置信息后,将该两项信息输入到预先训练好的卷积神经网络中,得到上述预设个数的已有视点图像中每一个像素点的自适应卷积核。

可选的,上述得到的每一个像素点的自适应卷积核可以是一个大小为n*n的矩阵,该n可以是上述图13中所述的最大偏移量n。

下面介绍一种根据上述几何特征矩阵和待合成的第二视点图像的位置信息生成上述预设个数的已有视点图像中每一个像素的自适应卷积核的具体的实现方式:

上述待合成的虚拟视点图像的位置信息为二维坐标或者三维坐标,根据上述几何特征矩阵和待合成的虚拟视点图像的位置信息确定上述预设个数的已有视点图像中每一个像素的自适应卷积核,包括:将上述待合成的虚拟视点图像的位置信息扩展为与上述几何特征矩阵的行数和列数相同的位置矩阵;将上述位置矩阵和上述几何特征矩阵组成一个混合信息矩阵;将上述混合信息矩阵分别输入上述预设个数的第二预设卷积神经网络模型中,上述预设个数的第二预设卷积神经网络模型结构相同,参数不同;根据上述预设个数的第二预设卷积神经网络模型的输出结果得到上述预设个数的已有视点图像中每一个像素的自适应卷积核。

为了便于理解本申请实施例,下面举例说明。

假设上述几何特征矩阵的大小为(w/4)*(h/4)*c1,上述待合成的虚拟视点图像的位置的坐标为(x0,y0),那么根据将坐标值该坐标扩展为三维矩阵,将x0扩展为(w/4)*(h/4)个x0,该(w/4)*(h/4)个x0在同一个维度平面内,同时将y0扩展为(w/4)*(h/4)个,该(w/4)*(h/4)个y0在同一个维度平面内,将该两个维度的x0和y0组合到一起可以形成(w/4)*(h/4)*2的位置矩阵。然后将该位置矩阵组合到几何特征矩阵中形成一个大小为(w/4)*(h/4)*(c1+2)的三维混合信息矩阵。

可选的,上述待合成的虚拟视点图像的位置信息可以为三维坐标,例如可以是(x0,y0,z0)。假设上述几何特征矩阵的大小为(w/4)*(h/4)*c1,那么根据坐标值将该坐标扩展为三维矩阵,将x0扩展为(w/4)*(h/4)个x0,该(w/4)*(h/4)个x0在同一个通道平面内,同时将y0扩展为(w/4)*(h/4)个,该(w/4)*(h/4)个y0在同一个通道平面内,同时将z0扩展为(w/4)*(h/4)个,该(w/4)*(h/4)个z0在同一个通道平面内,将该三个通道的x0、y0和z0组合到一起可以形成(w/4)*(h/4)*3的位置矩阵。然后将该位置矩阵组合到几何特征矩阵中形成一个大小为(w/4)*(h/4)*(c1+3)的三维混合信息矩阵。

可选的,上述位置矩阵可以组合到上述几何特征矩阵的任意位置,例如可以组合到它的前面、后面,或者在其中间的位置,但考虑到卷积处理的含义,一般将其组合在几何特征矩阵的前面或者后面。需要说明的是,组合在前面和组合在后面,上述第二预设卷积神经网络模型的参数是不相同的,具体根据训练的结果确定。

假设上述预设个数的已有视点图像为4个视点图像a、b、c和d,那么上述预设个数的第二预设卷积神经网络模型为4个,该4个第二预设卷积神经网络模型分别称为模型a、模型b、模型c和模型d。模型a是预先训练好的用于根据上述混合信息矩阵计算得到视点图像a中每一个像素的自适应卷积核,模型b是预先训练好的用于根据上述混合信息矩阵计算得到视点图像b中每一个像素的自适应卷积核,模型c是预先训练好的用于根据上述混合信息矩阵计算得到视点图像c中每一个像素的自适应卷积核,模型d是预先训练好的用于根据上述混合信息矩阵计算得到视点图像d中每一个像素的自适应卷积核。因此,得到上述混合信息矩阵之后,将该混合信息矩阵分别输入到模型a、模型b、模型c和模型d中,该四个模型分别对应输出视点图像a、b、c和d中每一个像素的自适应卷积核。

可选的,上述模型a、模型b、模型c和模型d的卷积神经网络结构相同,但是参数不同,具体的参数根据训练的结果来确定。

步骤1204、根据上述自适应卷积核和上述预设个数的已有视点图像的像素生成上述预设个数的待处理虚拟合成像素矩阵。

具体的,假设有4个已有视点图像a、b、c和d,那么每一个视点图像的自适应卷积核与该视点图像的像素做卷积得到一个待处理虚拟合成像素矩阵,即视点图像a的自适应卷积核与该视点图像a的像素做卷积得到一个待处理虚拟合成像素矩阵a,视点图像b的自适应卷积核与该视点图像b的像素做卷积得到一个待处理虚拟合成像素矩阵b,视点图像c的自适应卷积核与该视点图像c的像素做卷积得到一个待处理虚拟合成像素矩阵c,视点图像d的自适应卷积核与该视点图像d的像素做卷积得到一个待处理虚拟合成像素矩阵d。

下面介绍一种根据上述自适应卷积核和上述预设个数的已有视点图像的像素生成上述预设个数的待处理虚拟合成像素矩阵的具体实现方式:

上述根据所述预设个数的已有视点图像中每一个像素的自适应卷积核和所述预设个数的已有视点图像的像素生成所述预设个数的待处理虚拟合成像素矩阵,包括:将所述预设个数的已有视点图像中的每一个像素的自适应卷积核与以所述每一个像素为中心的像素矩阵一一对应地做卷积,得到所述每一个像素的像素位置对应的虚拟合成像素;所述像素矩阵的行数与所述每一个像素的自适应卷积核的行数相同,所述像素矩阵的列数与所述每一个像素的自适应卷积核的列数相同;将所述每一个像素对应的虚拟合成像素组成所述预设个数的虚拟合成像素矩阵。

为了便于理解本申请实施例,下面举例说明。

假设上述预设个数的已有视点图像为4个视点图像a、b、c和d,该四个视点图像的像素矩阵的大小均为w*h*3,即每一个视点图像的像素矩阵有w*h*3个像素,该w*h*3个像素中的每一个像素对应有一个自适应卷积核。这里的3表示该像素矩阵有三个通道,该三个通道分别为r、g和b这三个颜色通道。

在本申请实施例中,将以该4个视点图像的像素矩阵中的每一个像素为中心、大小与该每一个像素对应的自适应卷积核的大小相同的像素矩阵,与该像素对应的自适应卷积核做卷积,得到该4个视点图像的像素矩阵中的每一个像素位置对应的虚拟合成像素。每一个视点图像中所有的像素位置对应的虚拟合成像素可以组成一个虚拟合成像素矩阵,那么4个视点图像则可以组成4个虚拟合成像素矩阵,该4个虚拟合成像素矩阵的大小于已有视点图像的大小相同,即为w*h*3。每一个虚拟合成像素矩阵表征一个待处理虚拟视点图像,那么4个虚拟合成像素矩阵表征了四个待处理虚拟视点图像。该待处理虚拟视点图像为初步得到的虚拟视点图像,还需要进一步处理才得到最终需要合成的虚拟视点图像。

为了便于理解上述步骤1203和步骤1204,可以参见图14。在图14中,将由上述几何特征矩阵和位置矩阵组成的混合信息矩阵输入到生成网络中,首先分别输入到上述模型a、模型b、模型c和模型d中,该4个模型分别对应输出视点图像a、b、c和d中每一个像素的自适应卷积核,然后通过生成网络的卷积计算模块将得到的自适应卷积核与对应的像素矩阵做卷积,该对应的像素矩阵即为以卷积核对应像素为中心、大小与卷积核相同的像素块。每一个卷积核卷积后得到一个虚拟合成像素,最后得到与视点图像a、b、c和d一一对应的虚拟合成像素矩阵a、b、c和d。该虚拟合成像素矩阵a、b、c和d即为上述待处理虚拟合成像素矩阵。

步骤1205、根据所述预设个数的待处理虚拟合成像素矩阵合成上述第二视点图像。

在具体实施例中,预先训练好了一个卷积神经网络模型用于根据上述预设个数的待处理虚拟合成像素矩阵合成上述第二视点图像。具体的,先将上述预设个数的待处理虚拟合成像素矩阵组成一个混合虚拟合成像素矩阵,然后将该混合虚拟合成像素矩阵输入到训练好的模型中,得到最终的上述待合成的虚拟视点图像的位置信息对应的虚拟视点图像。

可选的,在本申请实施例中,假设上述预设个数为4,则可以将上述得到的4个待处理虚拟合成像素矩阵组合成大小为w*h*12的组合矩阵,然后将该组合矩阵输入到上述训练好的模型中,输出即为上述待合成的虚拟视点图像的位置信息对应的虚拟视点图像

可选的,假设上述4个虚拟合成像素矩阵分别称为矩阵a、矩阵b、矩阵c和矩阵d,那么,将该4个虚拟合成像素矩阵组合成大小为w*h*12的组合矩阵时,可以按照矩阵a、矩阵b、矩阵c和矩阵d顺序、且每个矩阵按照r、g、b的顺序组合成w*h*12的组合矩阵。或者,也可以按照矩阵b、矩阵a、矩阵c和矩阵d顺序、且每个矩阵按照r、g、b的顺序组合成w*h*12的组合矩阵;或者也可以按照矩阵a、矩阵b、矩阵c和矩阵d顺序、且每个矩阵按照g、r、b的顺序组合成w*h*12的组合矩阵等等。这里只是示例性的介绍组合的顺序,还可以是其它的顺序,只要能够组合成w*h*12的组合矩阵的组合顺序都在保护范围内。

综上所述,整个系统是一个端到端的深度神经网络,网络中所有的操作(卷积、互相关和自适应卷积等)都是可微分的,因此可以利用基于梯度下降的优化算法进行优化,如adam算法。训练时的目标函数为mae等可以衡量像素误差的代价函数。对于一组已有视点图像,本发明中的表征网络只需要运行一次,随后可以根据表征网络产生的crosscostvolume和需要合成的虚拟视点图像的位置来生成虚拟视点图像。

可选的,图12所述方法可以由cpu处理;或者,也可以由cpu和gpu共同处理;或者也可以由cpu和其他适合用于神经网络计算的处理器共同处理,具体的处理器的选择根据实际的情况确定,本申请不做限制。

可以理解实施例一为该虚拟视点合成网络的训练阶段(如图7所示的训练设备720执行的阶段),具体训练是采用由实施例一以及实施例一基础上任意一种可能的实现方式中提供的虚拟视点合成网络进行的;而实施例二则可以理解为是该虚拟视点合成网络的应用阶段(如图7所示的执行设备710执行的阶段),具体可以体现为采用由实施例一训练得到的虚拟视点合成网络,并根据用户输入的已有视点图像和待合成的虚拟视点的位置信息,从而得到输出虚拟视点图像,即实施例二中的第二视点图像。

上述主要从视点图像处理设备(即执行上述图12所述方法的服务器或终端)的角度对本申请实施例提供的视点图像处理方法进行了介绍。可以理解的是,视点图像处理设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的设备及方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对视点图像处理设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图15示出了上述实施例中所涉及的视点图像处理设备的一种可能的逻辑结构示意图,视点图像处理设备1500包括:收发单元1501和处理单元1502。示例性的,收发单元1501用于支持视点图像处理设备1500执行前述图5所示方法实施例中视点图像处理设备1500接收信息的步骤。收发单元1501还用于支持视点图像处理设备1500执行前述图5所示方法实施例中视点图像处理设备1500发送信息的步骤。处理单元1502,用于支持视点图像处理设备1500执行前述图5所示方法实施例中视点图像处理设备1500生成信息的步骤,以及除收发单元1501的功能以外的其它功能等。

可选的,该视点图像处理设备1500还可以包括存储单元,用于存储计算机程序或者数据。一种可能的方式中,处理单元1502可以调用存储单元的计算机程序或者数据,使得视点图像处理设备1500获取至少两个第一视点图像,所述至少两个第一视点图像包括分别在所述至少两个视点位置采集到的图像;获取所述至少两个第一视点图像之间的几何特征矩阵,所述几何特征矩阵为用于表征所述至少两个第一视点图像的像素之间几何位置的关系信息的矩阵;根据所述几何特征矩阵和待合成的第二视点图像的位置信息生成所述至少两个第一视点图像中每一个像素的自适应卷积核;其中,所述位置信息表征所述第二视点图像的视点位置,所述第二视点图像在目标区域内,所述目标区域包括所述至少两个第一视点图像组成的区域;根据所述自适应卷积核和所述至少两个第一视点图像的像素生成所述至少两个待处理的虚拟合成像素矩阵;将所述至少两个待处理的虚拟合成像素矩阵合成所述第二视点图像。

图16是本申请实施例提供的一种虚拟视点合成网络的训练设备的硬件结构示意图。图16所示的虚拟视点合成网络的训练设备1600(该设备1600具体可以是一种计算机设备)包括存储器1601、处理器1602、通信接口1603以及总线1604。其中,存储器1601、处理器1602、通信接口1603通过总线1604实现彼此之间的通信连接。

存储器1601可以是只读存储器(readonlymemory,rom),静态存储设备,动态存储设备或者随机存取存储器(randomaccessmemory,ram)。存储器1601可以存储程序,当存储器1601中存储的程序被处理器1602执行时,处理器1602和通信接口1603用于执行本申请实施例的虚拟视点合成网络的训练方法的各个步骤。

处理器1602可以采用通用的中央处理器(centralprocessingunit,cpu),微处理器,应用专用集成电路(applicationspecificintegratedcircuit,asic),图形处理器(graphicsprocessingunit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的虚拟视点合成网络的训练设备中的单元所需执行的功能,或者执行本申请方法实施例的虚拟视点合成网络的训练方法。

处理器1602还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的虚拟视点合成网络的训练方法的各个步骤可以通过处理器1602中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1602还可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1601,处理器1602读取存储器1601中的信息,结合其硬件完成本申请实施例的虚拟视点合成网络的训练设备中包括的单元所需执行的功能,或者执行本申请方法实施例的虚拟视点合成网络的训练方法。

通信接口1603使用例如但不限于收发器一类的收发装置,来实现设备1600与其他设备或通信网络之间的通信。例如,可以通过通信接口1603获取训练数据(如本申请实施例一所述的已有视点图像等)。

总线1604可包括在设备1600各个部件(例如,存储器1601、处理器1602、通信接口1603)之间传送信息的通路。

图17是本申请实施例提供的视点图像处理设备的硬件结构示意图。图17所示的视点图像处理设备1700(该设备1700具体可以是一种计算机设备)包括存储器1701、处理器1702、通信接口1703以及总线1704。其中,存储器1701、处理器1702、通信接口1703通过总线1704实现彼此之间的通信连接。

存储器1701可以是只读存储器(readonlymemory,rom),静态存储设备,动态存储设备或者随机存取存储器(randomaccessmemory,ram)。存储器1701可以存储程序,当存储器1701中存储的程序被处理器1702执行时,处理器1702和通信接口1703用于执行本申请实施例的视点图像处理方法的各个步骤。

处理器1702可以采用通用的中央处理器(centralprocessingunit,cpu),微处理器,应用专用集成电路(applicationspecificintegratedcircuit,asic),图形处理器(graphicsprocessingunit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的视点图像处理设备中的单元所需执行的功能,或者执行本申请方法实施例的视点图像处理方法。

处理器1702还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的视点图像处理方法的各个步骤可以通过处理器1702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1702还可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1701,处理器1702读取存储器1701中的信息,结合其硬件完成本申请实施例的视点图像处理设备中包括的单元所需执行的功能,或者执行本申请方法实施例的视点图像处理方法。

通信接口1703使用例如但不限于收发器一类的收发装置,来实现设备1700与其他设备或通信网络之间的通信。例如,可以通过通信接口1703获取训练数据(如本申请实施例二所述的x图像)。

总线1704可包括在设备1700各个部件(例如,存储器1701、处理器1702、通信接口1703)之间传送信息的通路。

应理解,视点图像处理设备1500中的收发单元1501相当于视点图像处理设备1700中的通信接口1703;视点图像处理设备1500中的处理单元1502可以相当于处理器1702。补充说明:这里是把虚拟设备与实体设备结合起来。

应注意,尽管图16和图17所示的设备1600和设备1700仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,设备1600和设备1700还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,设备1600和设备1700还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,设备1600和设备1700也可仅仅包括实现本申请实施例所必须的器件,而不必包括图16或图17中所示的全部器件。

可以理解,所述设备1600相当于图7中的所述训练设备720,所述设备1700相当于图7中的所述执行设备710。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

综上所述,针对上述图1、图2和图3所述的现有技术的问题,本发明利用多个已有视点图像之间的空间关系,将该多个已有视点图像的特征统一为一个整体的几何特征矩阵,解决了该多个已有视点图像之间几何位置的关系信息表征问题。在此基础上,本发明针对需要合成的虚拟视点的位置信息,动态地产生目标虚拟视点的自适应卷积核,直接生成对应视点,解决了该多个已有视点图像之间任意位置的虚拟视点合成问题,并提高了虚拟视点的主观质量和合成效率。

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

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