训练多幅图像的对齐的制作方法

文档序号:32128448发布日期:2022-11-09 08:58阅读:30来源:国知局
训练多幅图像的对齐的制作方法

1.本发明涉及图像对齐的领域,并且更特别地涉及训练神经网络以对齐多幅图像(例如,合成视图)。


背景技术:

2.深度信息(例如,估计的深度图(几何))对于基于观察到的/捕获到的图像对虚拟视图的合成/绘制是必需的。当根据多幅参考图像来预测虚拟/合成的视图时,使用偏置的和/或不准确的深度信息会导致明显发生移位的纹理,并且/或者当观察者更改虚拟视图时会导致可见的转变。例如,双图像/发生移位的纹理可能是由于深度图的偏置(例如,高估或低估)引起的。因此,期望自动和/或准确地采集深度信息。
3.然而,已经证明:从多幅相机图像中自动提取3d几何信息很困难。一个特定的困难之处可能是由于缺乏可靠的深度线索而无法获得准确的深度信息。针对多视图图像的改进的深度估计仅仅使得用于3d重建的合成视图的质量得到适度提高。
4.已知的获得深度信息的方法包括使用红外光源、红外飞行时间、后期制作中的手动细化以及施加应用相关的约束。然而,对于许多实况事件,后期制作和使用红外光源都是不可行的。
5.因此,仍然需要获得对对齐多幅图像和/或合成虚拟视图有用的数据的构思。


技术实现要素:

6.本发明由权利要求来限定。
7.根据本发明的一个方面的示例,提供了一种用于生成输入图像数据集的方法,所述输入图像数据集用于训练神经网络以对齐多幅图像。所述方法包括:获得参考图像的第一副本;获得所述参考图像的第二副本;将所述参考图像的所述第一副本在第一方向上进行移位以生成第一移位图像;将所述参考图像的所述第二副本在第二方向上进行移位以生成第二移位图像;并且基于所述第一移位图像和所述第二移位图像来生成包括多幅图像的输入图像数据集。
8.提出了生成输入样本的构思,所述输入样本可以用于训练对多幅合成图像的对齐。这样的构思可以基于以下思想:根据任意参考图像的副本来生成输入样本,这些副本在各个方向上发生移位。通过这种方式,可以使用单幅任意图像来创建人为未对齐的输入样本(即,输入图像数据集),所述人为未对齐的输入样本(即,输入图像数据集)能够用于训练神经网络。
9.提出的实施例可以采用例如以下构思:获取任意图像,并且将原始的任意图像在相反的方向上进行多次移位以创建人为未对齐的输入图像数据集。这样的方法可以避免对数据注释的需求,因为人为创建了输入样本数据。提出的实施例还可以有助于创建大量合成训练样本。另外,可以选择应用的移位(例如基于相机捕获几何、相机取向等)对预计的未对齐移位进行建模。
10.与常规的数据增强(其中对第一样本x1执行操作以生成额外的样本x2、x3等(即,增大数据集大小))不同,提出采用参考图像y(例如,目标输出图像)并使用移位操作和裁剪操作来形成合成输入图像x1、x2,合成输入图像x1、x2不形成个体样本,而是进行组合(例如,堆叠或串联(concatenate))以形成针对神经网路的单个输入样本x=[x1,x2]。举例来说,可以选择移位操作,以便对x1与x2之间的预期未对齐进行建模。例如,为了获得x1,根据向量d将参考图像y的第一实例进行移位;并且为了获得x2,根据向量-d将参考图像y的第二实例进行移位。而且,可以改变向量d的方向和长度,以对在实践中可能发生的x1与x2之间的可能的未对齐进行建模。当使用神经网络时,可以将神经网络训练为将[x1,x2]映射到参考图像y,即,将神经网络训练为进行映射[x1,x2]

y。进一步举例来说,当使用神经网络来根据y形成四幅合成输入图像x1、x2、x3、x4时,可以将神经网络训练为将[x1,x2,x3,x4]映射到参考图像y,即,将神经网络训练为进行映射[x1,x2,x3,x4]

y。
[0011]
例如,可以对任意图像(可能容易获得的图像)使用简单的图像移位操作和裁剪操作以生成有价值的训练输入样本。而且,所采用的图像移位可以基于对通常观察到的未对齐进行建模的统计分布。
[0012]
在一些实施例中,将所述参考图像在所述第一方向上进行移位可以包括:将所述参考图像的第一副本在所述第一方向上移位一定距离。另外,将所述参考图像在所述第二方向上进行移位然后可以包括:将所述参考图像的第二副本在相反的第二方向上移位相同的距离。通过这种方式,可以将参考图像的两个实例在相反的方向上移位相等的量,使得能够将神经网络训练为将这两幅移位图像移向确切位于它们之间的中点的中间位置。
[0013]
一些实施例还可以包括将所述参考图像的第三副本在第三方向上进行移位以生成第三移位图像。生成输入图像数据集然后还基于第三移位图像。因此将意识到,实施例可以用于根据单幅参考图像来生成两幅以上的移位图像。通过这种方式,实施例可以支持生成大量合成训练图像。
[0014]
举例来说,将所述参考图像的所述第一副本、所述第二副本和所述第三副本进行移位以生成所述第一移位图像、所述第二移位图像和所述第三移位图像的移位是分别通过第一向量、第二向量和第三向量来表示的。所述第一向量、所述第二向量和所述第三向量的总和然后等于零。换句话说,用于创建多幅移位图像的移位操作可以被配置为使得所有移位向量的总和等于零。通过这种方式,参考图像可以被认为位于质心位置(或重心),并且神经网络可以利用该知识来训练移位图像到参考图像的映射。
[0015]
在实施例中,生成所述输入图像数据集可以包括串联所述第一移位图像与所述第二移位图像。通过这种方式,可以将根据参考图像生成的移位图像(例如在通道轴上)进行组合或堆叠,以便形成针对神经网络的单个输入图像数据集(或张量)。
[0016]
将所述参考图像的所述第一副本/实例在第一方向上进行移位可以包括:将移位操作应用于所述参考图像的所述第一副本,以便生成中间图像,所述中间图像包括在所述第一方向上移位的所述参考图像的所有像素;并且裁剪所述中间图像,以便生成所述第一移位图像。这样的实施例可以基于以下基本假设:在局部空间邻域中,未对齐是不变的。然而,对于发生(去除)遮挡/(去除)覆盖的区域,情况可能并非如此,因为在这样的区域中,未对齐可能会迅速发生变化。因此,在一些实施例中,可以通过在覆盖(即,遮挡)参考图像的部分之后生成移位图像来考虑遮挡问题。举例来说,在实施例中,将所述参考图像的所述第
一副本在第一方向上进行移位可以包括:用前景图像覆盖所述参考图像的所述第一副本的部分,以便生成部分遮挡的图像,所述部分遮挡的图像包括:所述参考图像的非遮挡部分;以及包括所述前景图像的遮挡部分;将第一移位操作应用于所述参考图像的所述非遮挡部分,以便生成中间非遮挡部分,所述中间非遮挡部分包括在所述第一方向上移位了第一移位距离的参考图像的所述非遮挡部分的所有像素;将第二移位操作应用于所述遮挡部分,以便生成中间遮挡部分和中间空白部分,所述中间遮挡部分包括在所述第一方向上移位了更大的第二移位距离的所述前景图像的所有像素,所述中间空白部分没有来自所述参考图像和所述前景图像的像素;根据所述中间非遮挡部分、所述中间遮挡部分和所述中间空白部分来形成中间图像;并且裁剪所述中间图像,以便生成所述第一移位图像。例如,可以用单个颜色值或零数据值来填充空白部分,使得能够在例如训练过程期间容易地识别和忽略空白部分。通过这种方式,实施例可以适于通过以下操作来处理遮挡:将前景元素(例如,纹理或图像)放置在参考图像的部分上,然后将前景元素移位了与参考图像不同的量(以例如模拟对参考图像的部分的去除覆盖)。
[0017]
在实施例中,将所述参考图像的所述第一副本在第一方向上进行移位可以包括:将移位操作应用于所述参考图像的所述第一副本,其中,所述移位操作被配置为模拟所述参考图像的预测未对齐。这样的实施例因此可以对预计的未对齐移位进行建模,以便例如有助于更准确的图像对齐。
[0018]
根据本发明的另一方面,提供了一种训练神经网络以对齐多幅图像的方法,所述方法包括:生成根据所提出的实施例的输入图像数据集;并且将所述神经网络训练为将所述输入图像数据集映射到所述参考图像。因此,所提出的实施例可以用于训练卷积神经网络以对齐图像。通过这种方式,可以提供对齐网络,该对齐网络被配置为将两幅或更多幅图像咬合(snap)在一起以使它们对齐。
[0019]
举例来说,神经网络可以包括最初为图像分割而设想的卷积神经网络架构。然而,预计可以训练许多其他卷积神经网络架构来对齐多幅图像。因此,实施例可以与许多不同形式或类型的神经网络结合使用。
[0020]
根据本发明的另一方面,提供了一种包括代码单元的计算机程序,所述代码单元用于在所述程序在处理系统上运行时实施根据实施例的方法。
[0021]
根据本发明的另一方面,提供了一种用于生成输入图像数据集的系统,所述输入图像数据集用于训练神经网络以对齐多幅图像。所述系统包括:移位部件,其被配置为:将参考图像的第一副本在第一方向上进行移位以生成第一移位图像,并且将所述参考图像的第二副本在第二方向上进行移位以生成第二移位图像;以及样本生成器,其被配置为基于所述第一移位图像和所述第二移位图像来生成输入图像数据集。
[0022]
根据本发明的又一方面,提供了一种用于训练神经网络以对齐多幅图像的系统,所述系统包括:根据实施例的用于生成输入图像数据集的系统;以及训练部件,其被配置为将所述神经网络训练为将所述输入图像数据集映射到所述参考图像。
[0023]
参考下文描述的(一个或多个)实施例,本发明的这些方面和其他方面将是明显的并且得到阐明。
附图说明
[0024]
为了更好地理解本发明并且更清楚地展示如何将本发明付诸实践,现在将仅通过举例的方式来参考附图,在附图中:
[0025]
图1图示了根据所提出的实施例的训练神经网络以对齐多幅图像的方法;
[0026]
图2a描述了用于生成输入图像数据集的方法的实施例,所述输入图像数据集用于训练神经网络以对齐多幅图像;
[0027]
图2b描绘了根据所提出的实施例的用于对齐多幅图像的系统的实施例,其中,所述系统包括图2a的神经网络;
[0028]
图3描述了可以用于所提出的实施例的神经网络的示例性unet架构;
[0029]
图4图示了应用所提出的神经网络的示例性结果(c),该示例性结果(c)被呈现在(a)真实情况和(b)应用常规的混合方法的结果旁边;
[0030]
图5描绘了用于生成输入图像数据集的方法的替代实施例,所述输入图像数据集用于训练神经网络;
[0031]
图6是被表示为计算图的lukas-kanade光流的图示,其中,提供的输入是两幅强度图像,即,图像1和图像2;
[0032]
图7描绘了可以用于将光流纳入而作为在其他方面可训练的神经网络架构的部分的示例性架构;并且
[0033]
图8图示了计算机的示例,在所述计算机内可以采用实施例的一个或多个部分。
[0034]
特定实施方式
[0035]
将参考附图来描述本发明。
[0036]
应当理解,详细的描述和特定的示例虽然指示装置、系统和方法的示例性实施例,但是它们旨在仅是出于图示的目的且并不旨在限制本发明的范围。根据下面的描述、权利要求和附图将更好地理解本发明的装置、系统和方法的这些和其他特征、方面和优点。虽然某些措施被记载在互不相同的从属权利要求中,但是这并不指示不能有利地使用这些措施的组合。
[0037]
本领域技术人员通过研究附图、公开内容和权利要求,在实践请求保护的发明时能够理解并实现对所公开的实施例的变型。在权利要求中,“包括”一词并不排除其他元件或步骤,并且词语“一”或“一个”并不排除多个。
[0038]
应当理解,附图仅是示意图且并未按比例绘制。还应当理解,贯穿所有附图,相同的附图标记用于指示相同或相似的部分。
[0039]
提出了生成输入样本的构思,所述输入样本用于训练神经网络以对齐多幅图像。这样的构思可以根据参考图像的实例来生成输入图像数据集,所述参考图像的实例各自在不同的方向上发生移位。通过这种方式,参考图像可以用于根据参考图像的多个移位版本来创建人为输入图像数据集。
[0040]
特别地,由所提出的实施例生成的输入图像数据集可以用于训练神经网络以进行图像对齐。通过这种方式,可以提供改进的图像/视图合成,这样在预测/合成视图中减少或避免了明显发生移位的纹理。例如,当观察者更改虚拟相机视图时,实施例可以用于根据无缝地混合在一起的多幅参考图像来提供视图预测(即,减少或避免可见的转变)。
[0041]
举例来说,所提出的实施例通过以下操作根据任意参考图像来生成输入样本:将
参考图像的实例在不同的方向上进行移位,然后将参考图像的不同移位版本进行组合。例如,实施例可以获取任意图像(y),并且将图像(y)的实例在相反的方向上进行移位以根据人为未对齐的图像来创建输入图像数据集(x)。所生成的输入图像数据集(x)可以例如用于训练卷积神经网络以对齐多幅图像。
[0042]
通过人为创建输入图像数据集,所提出的实施例可以避免对数据注释的需求。
[0043]
可以选择所采用的移位操作,以便对预计的未对齐移位(例如由于图像捕获几何、取向、基线等)进行建模。
[0044]
现在参考图1,图示了根据所提出的实施例的训练神经网络以对齐多幅图像的方法。该方法包括两个主要阶段:根据参考图像来生成100输入图像数据集;并且将神经网络训练105为将输入图像数据集映射到参考图像。
[0045]
更具体地,第一阶段包括方法100,即,根据所提出的实施例生成用于训练神经网络的输入图像数据集。这里,首先将任意参考图像115在第一方向上进行移位120以生成第一移位图像125。还将参考图像115在第二方向上进行移位130以生成第二移位图像135。
[0046]
通过进一步解释,将参考图像115在第一方向上进行移位120的过程包括将参考图像115的第一副本115a在第一方向上移位第一距离d。更具体地,将参考图像115的第一副本115a在第一方向上进行移位120包括将移位操作应用于参考图像的第一副本115a,以便生成中间图像,所述中间图像包括在第一方向上移位了第一距离d的参考图像的所有像素。这里,配置/选择移位操作,以便模拟参考图像115的预测未对齐。然后裁剪中间图像(例如裁剪到与参考图像相同的边界),以便生成第一移位图像125。
[0047]
类似地,将参考图像115在第二方向上进行移位130的过程包括将参考图像115的第二副本115b在相反的第二方向上移位相同的距离d。
[0048]
换句话说,通过将参考图像115的第一副本115a和第二副本115b在相反的方向上移位相等的距离d来生成第一移位图像125和第二移位图像135。因此,如果将参考图像115的第一副本115a和第二副本115b进行移位以生成第一移位图像125和第二移位图像135的移位是分别通过第一向量d1和第二向量d2来表示的,则第一向量和第二向量的总和等于零(即,d1+d2=0)。
[0049]
然后,通过在通道轴上堆叠140第一移位图像125和第二移位图像135来生成输入图像数据集150。例如,可以考虑用具有维度(3,w,h)的张量表示的大小为w
×
h的彩色(三通道)图像。神经网络设计中的操作是要串联(堆叠)多个这样的张量。在两幅颜色图像的情况下,能够串联这两幅颜色图像以形成具有维度(6,w,h)的单个张量。另外的(卷积)算子作用于该张量,因此网络能够开始对在这两幅图像中的某个像素位置处发生的颜色值之间的关系进行建模。然而,应当注意,替代地,在用卷积层处理了每幅图像之后,稍后在网络中可能发生串联。
[0050]
然后将所生成的输入图像数据集150提供到神经网络160以对齐图像。在该示例中,神经网络160包括卷积神经网络,所述卷积神经网络被配置为“咬合”两幅或更多幅图像,使得它们正确对齐。神经网络160被训练为将输入图像数据集150映射到参考图像115。结果,神经网络160可以被配置为输出预测图像165
[0051]
将意识到,图1的示例性实施例被配置为根据参考图像115来创建多幅合成图像(即,移位图像)。通过这种方式,所提出的实施例支持创建大量合成图像,这些合成图像能
够组合成针对神经网络160的输入图像数据集150。通过将参考图像在不同的方向上进行移位和裁剪,能够以相对简单的方式创建每幅合成图像。
[0052]
可以根据均匀分布来生成移位向量的长度。然而,设想到一些实施例可以生成更多具有更接近于零的移位的合成图像(与具有大得多的移位的合成图像相比)。例如,可以使用对数正态分布或负指数分布的裁剪版本对预测/预计的未对齐进行建模。
[0053]
现在参考图2a,描绘了这样一个实施例,其中,将参考图像115移位了第一向量d1并且裁剪了参考图像115以生成第一移位图像x
1 125。也将原始的参考图像115移位了第二向量d2并且裁剪了原始的参考图像115以生成第一移位图像x
2 135。第二向量d2与第一向量d1大小相等但方向相反。因此,第一向量d1与第二向量d2的总和等于零(即,d1+d2=0)。
[0054]
然后堆叠140第一移位图像x1和第二移位图像x2以形成包括多幅图像的输入图像数据集x。更具体地,在该示例中,串联第一移位图像x1与第二移位图像x2,使得x=[x1,x2]。
[0055]
将输入图像数据集x提供为针对神经网络160的输入。然后训练神经网络106以预测没有移位的第三图像y(即,参考图像115)。由于应用的移位d1和d2在方向上相反,因此神经网络160学习将第一移位图像x1和第二移位图像x2移向确切位于它们之间的中点的中间位置。
[0056]
在系统中可以例如采用图2a的经训练的神经网络160来对齐多幅图像。举例来说,图2b描绘了根据所提出的实施例的用于对齐多幅图像的系统165的实施例,其中,该系统包括图2a的神经网络。在该示例中,系统165适于通过对齐所获得的图像(例如,所捕获的视图)来生成一幅或多幅虚拟图像(例如,视图)。
[0057]
更具体地,系统165包括输入接口170,输入接口170适于获得表示通过多个处于不同位置处的图像捕获设备175(例如,相机)捕获的目标172的视图的图像。在该示例中,第一图像捕获设备1751捕获目标172的第一图像(即,第一视图)v1,并且第二图像捕获设备1752捕获目标172的第二图像(即,第二视图)v2。输入接口170接收第一图像v1和第二图像v2,并且将它们输入到(根据图2a的实施例已经训练的)神经网络160。基于第一图像v1和第二图像v2,神经网络160生成表示通过位于第一图像捕获设备1751与第二图像捕获设备1752之间的虚拟捕获设备175v捕获的目标172的视图的图像。换句话说,根据神经网络160的训练,神经网络160将第一图像v1(表示第一视图)与第二图像v2(表示第二视图)对齐以生成目标172的虚拟相机视图vv。经由系统165的输出接口输出所生成的虚拟相机视图vv。
[0058]
根据图2b的上述示例,将意识到,可以采用使用根据所提出的(一个或多个)构思生成的输入样本来训练的神经网络,以基于观察到的/捕获到的图像来合成/绘制虚拟视图。因此,可以使用单幅任意图像来创建用于训练神经网络的输入图像数据集,并且随后可以(例如在系统内)采用经训练的神经网络来对齐图像和/或合成虚拟视图。
[0059]
应当理解,特定的神经网络架构可能不如生成输入样本数据的方式那样相关。然而,纯粹通过完整性,注意到已知的unet架构效果很好(参考:o.ronneberger,p.、fischer,t.、brox在2015年的文件“unet:convolutional networks for biomedical image segmentation”)。另外,预计改变架构会改善结果。尽管如此,在图3中也示出了发明人已经测试的已知unet架构的变体。
[0060]
更具体地,图3描绘了可以用于所提出的实施例的神经网络的示例性unet架构。在图3的所描绘的架构中:
[0061]ck
=用k
×
k内核进行的卷积
[0062]
pk=因子k下缩放求平均
[0063]
uk=因子k双线性上采样
[0064]
a=沿通道轴的串联
[0065]nconv
=n
innout
k2+n
out
[0066]ndown
=0
[0067]nup
=0
[0068]ntotal
=26923
[0069]
通过图示,图4(c)示出了应用所提出的神经网络的结果。为了进行比较,将图4(c)中示出的所提出的实施例的结果呈现在(a)真实情况和(b)应用常规的混合方法的结果旁边。
[0070]
从图4中的图像可以看出,当由于深度偏置而导致移位很大时,在使用常规的混合方法时会出现重影(如图4(b)所示),而所提出的实施例的结果(如图4(c)所示)对齐了在图片中存在的最重要的轮廓。
[0071]
应当理解,能够扩展所提出的构思以对齐源自两幅以上的参考图像(例如,来自最接近的三幅或四幅参考图像)的预测。在这样的示例中,能够使用所提出的模拟方法,该方法使用经移位和裁剪的图像。然后,能够将真实情况图像定义为位于两幅以上的参考图像的伪随机应用移位的重心。也就是说,所有应用的平移向量都能够被配置为总和为零。对于这样的情况,神经网络然后可以取用来自参考图像(例如,各种相机视图)的所有移位图像的堆叠作为其输入,然后学习预测最终的中心图像。
[0072]
上面描述的实施例对像素的全局平移移位进行建模。这是基于以下假设:能够仅通过将多个参考像素进行移位来预测输出视图。然而,情况并非总是如此。例如,当一个(或多个)相机围绕着遮挡(即,阻挡观看)背景的前景目标进行观看时,可能会发生去除遮挡(即,去除覆盖)的情况。
[0073]
可以修改或扩展所提出的建议以解决遮挡问题(即,为此需要提供服务)。例如,现在参考图5,描绘了这样一个实施例,其中,为了创建每幅移位图像,应用了伪随机移位并结合了利用向量kd和-kd对新放置的前景纹理的移位(其中,k是能够具有负值和正值的标量,并且|k|≥1)。这两个(即,前景和背景)纹理之间的移位变化模拟了深度差异。
[0074]
更具体地,在图5的示例实施例中,将参考图像215的第一副本在第一方向上进行移位包括用前景图像220覆盖参考图像215的第一副本的部分,以便生成部分遮挡的图像,所述部分遮挡的图像包括:参考图像的非遮挡部分225;以及包括前景图像220的遮挡部分230。将(利用向量d进行的)第一移位操作应用于参考图像的非遮挡部分225,以便生成中间非遮挡部分240,所述中间非遮挡部分240包括在第一方向上移位了第一移位距离的参考图像的非遮挡部分的所有像素。将(利用向量kd进行的)第二移位操作应用于遮挡部分230,以便生成中间遮挡部分245和中间空白部分250,所述中间遮挡部分245包括在第一方向上移位了更大的第二移位距离的前景图像的所有像素,所述中间空白部分250没有来自参考图像和前景图像的像素。然后根据中间非遮挡部分240、中间遮挡部分245和中间空白部分250来形成中间图像,并且裁剪该中间图像,以便生成第一移位图像2601。利用参考图像215的第二份副本进行了类似的移位过程以生成第二移位图像2602,但在进行该操作时,将(利用
向量-kd进行的)相反的第二移位操作应用于非遮挡部分。
[0075]
这里注意到前景图像的位移的方向与d的方向相同。之所以这样做,是因为实际的用例是使用处于立体设置的两个相机进行的插值。
[0076]
然后堆叠270第一移位图像2601与第二移位图像2602以形成输入图像数据集x’,即,x’[0077]
=[2601,2602]。
[0078]
虽然上面描述了未覆盖的区被视为空白部分,但它们可以用保留的颜色值(例如,全白色)或单独的二元2d图进行编码,从而例如易于识别和/或处理。
[0079]
将输入图像数据集x’提供为针对神经网络280的输入。神经网络280被配置为在训练期间(零错误)忽略未覆盖的区(即,空白部分)。替代地或额外地,神经网络280可以被配置为学习根据邻域像素来解读(一个或多个)空白部分。
[0080]
作为替代方案,实施例可以将基于当前操作深度图像的绘制器用作模拟器内部的部件。在这样的情况下,纹理只是在遮挡区域中被拉伸,因为位于目标的边缘上的三角形被拉伸。然后,所使用的深度图必须匹配标量因子k。例如,可以从均匀分布中对k进行采样。
[0081]
也可以修改和/或扩展所提出的实施例,以用于计算光流作为神经网络的输入的目的。
[0082]
光流是一种已知的用于运动估计的基于滤波器的方法,其中,估计基于滤波器操作的组合。一种众所周知的示例性实施方式是lucas-kanade方法。
[0083]
(可以通过所提出的实施例解决的)图像对齐可以受益于与两幅或更多幅图像之间的相对运动(即,移位)有关的信息。此外,可能的情况是:如果这样的相对运动信息可用,则可以减少(在可训练的网络+光流方程中的)操作总数(这例如可能对实时实施方式有益)。lucas-kanade方法主要包括线性过滤器,因此能够被表示为计算图,可以使用在典型的神经网络推理实施方式中也支持的标准操作来运行该计算图,作为更大的神经网络的部分。图6图示了一个这样的示例。
[0084]
图6是被表示为计算图的lucas-kanade光流的图示,其中,所提供的输入是两幅强度图像,即,图像1和图像2。通过进一步的解释和举例,图7描绘了可以用于这种光流的示例性架构。在该示例中,网络取用两幅颜色图像作为输入。这些颜色图像均是沿着颜色通道轴汇总的,以形成针对光流子图的灰度输入图像。另一分支沿着通道轴串联这两幅颜色图像,以形成具有六个通道的张量。输出光流运动场与这六个通道串联,并且结果得到的八个通道进入神经网络的其余部分。在训练阶段期间,图7(光流子图)的整个灰色框中的所有层/参数都被设定为“不可训练”。
[0085]
图8图示了计算机800的示例,在计算机800内可以采用实施例的一个或多个部分。上面讨论的各种操作可以利用计算机800的功能。例如,可以在本文讨论的任何元件、模块、应用和/或部件中纳入用于提供对象特异性用户接口的系统的一个或多个部分。在这一点上,应当理解,系统功能框能够在单个计算机上运行,也可以分布在(例如经由互联网连接的)几个计算机和位置上。
[0086]
计算机800包括但不限于pc、工作站、笔记本电脑、pda、掌上设备、服务器、存储装置等。通常,就硬件架构而言,计算机800可以包括一个或多个处理器810、存储器820以及一个或多个i/o设备870,它们经由本地接口(未示出)进行通信性耦合。本地接口能够是但不
限于本领域已知的一条或多条总线或其他有线或无线连接。本地接口可以具有额外的元件(例如,控制器、缓冲器(高速缓冲存储器)、驱动器、中继器和接收器)以实现通信。另外,本地接口可以包括地址、控件和/或数据连接,以在前述部件之间实现适当的通信。
[0087]
处理器810是用于运行能够在存储器820中存储的软件的硬件设备。处理器810几乎能够是任何定制的或商业可用的处理器、中央处理单元(cpu)、数字信号处理器(dsp)或与计算机800相关联的若干处理器之间的辅助处理器,并且处理器810可以是基于半导体的微处理器(以微芯片的形式)或微处理器。
[0088]
存储器820能够包括以下各项中的任一项或组合:易失性存储器元件(例如,随机存取存储器(ram),例如,动态随机存取存储器(dram)、静态随机存取存储器(sram)等)和非易失性存储器元件(例如,rom、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁带、光盘只读存储器(cd-rom)、磁盘、软盘、卡式磁带、盒式磁带等)。此外,存储器820可以包含电子、磁性、光学和/或其他类型的存储介质。请注意,存储器820能够具有分布式架构,其中,各种部件彼此远离,但可以由处理器810访问。
[0089]
存储器820中的软件可以包括一个或多个单独的程序,其中的每个程序都包括用于实施逻辑功能的可执行指令的有序列表。存储器820中的软件包括根据示例性实施例的合适的操作系统(o/s)850、编译器840、源代码830以及一个或多个应用程序860。如图所示,应用程序860包括许多功能部件,以用于实施示例性实施例的特征和操作。计算机800的应用程序860可以表示根据示例性实施例的各种应用程序、计算单元、逻辑单元、功能单元、过程、操作、虚拟实体和/或模块,但是应用程序860并不意味着限制。
[0090]
操作系统850控制其他计算机程序的运行,并且提供调度、输入-输出控制、文件和数据管理、存储器管理以及通信控制及相关服务。发明人预想到,在所有可商业获得的操作系统上都可以应用用于实施示例性实施例的应用程序860。
[0091]
应用程序860可以是源程序、可执行程序(目标代码)、脚本或包括一组要执行的指令的任何其他实体。当为源程序时,通常经由编译器(例如,编译器840)、汇编器、解释器等来翻译程序,这些部件可以被包括在存储器820中,也可以不被包括在存储器820中,以便与o/s 850连接而正确操作。此外,应用程序860能够被写为面向对象的编程语言(其具有数据和方法的类别)或过程编程语言(其具有例程、子例程和/或函数,例如但不限于c、c++、c#、pascal、basic、api调用、html、xhtml、xml、asp脚本、javascript、fortran、cobol、perl、java、ada、.net等)。
[0092]
i/o设备870可以包括输入设备,例如但不限于鼠标、键盘、扫描仪、麦克风、相机等。此外,i/o设备870还可以包括输出设备,例如但不限于打印机、显示器等。最后,i/o设备870还可以包括传送输入和输出的设备,例如但不限于nic或调制器/解调器(用于访问远程设备、其他文件、设备、系统或网络)、射频(rf)或其他收发器、电话接口、电桥、路由器等。i/o设备870还包括用于通过各种网络(例如,互联网或内联网)进行通信的部件。
[0093]
如果计算机800是pc、工作站、智能设备等,则存储器820中的软件还可以包括基本输入输出系统(bios)(为简单起见的简写)。bios是一组必需的软件例程,其在启动时对硬件进行初始化和测试,启动o/s 850,并且支持在硬件设备之间的数据传输。bios被存储在某种类型的只读存储器(例如,rom、prom、eprom、eeprom等)中,使得在激活计算机800时能
够运行bios。
[0094]
当计算机800正在运行时,处理器810被配置为运行在存储器820内存储的软件,以与存储器820进行双向数据通信,并且通常根据软件来控制计算机800的操作。应用程序860和o/s 850由处理器810全部或部分读取,可能在处理器810内缓存,然后被运行。
[0095]
当应用程序860被实施在软件中时,应当注意,应用程序860几乎能够被存储在任何计算机可读介质上,以供与任何计算机相关的系统或方法使用或与其连接。在本文档的背景中,计算机可读介质可以是电子、磁性、光学或其他物理设备或单元,其能够包含或存储计算机程序,以供与计算机相关的系统或方法使用或与其连接。
[0096]
应用程序860能够被实施在任何计算机可读介质中,以供指令运行系统、装置或设备(例如,基于计算机的系统、包含处理器的系统或能够从指令运行系统、装置或设备取回指令的其他系统)使用或与其连接并且运行指令。在本文档的背景中,“计算机可读介质”能够是能够存储、传送、传播或传输供指令运行系统、装置或设备使用或与其连接的程序的任何单元。计算机可读介质能够例如是但不限于电子、磁性、光学、电磁、红外或半导体系统、装置、设备或传播介质。
[0097]
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质(或媒介),其上具有用于使处理器执行本发明的各个方面的计算机可读程序指令。
[0098]
计算机可读存储介质能够是有形设备,其能够保留并存储供指令运行设备使用的指令。计算机可读存储介质可以例如是但不限于电子存储设备、磁性存储设备、光学存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适组合。计算机可读存储介质的更具体的示例的非详尽列表包括以下各项:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多用盘(dvd)、存储器棒、软盘、机械编码的设备(例如,打孔卡或沟槽中的凸起结构,其中记录有指令),以及前述各项的任何合适组合。本文使用的计算机可读存储介质不应被解释为瞬时信号本身,例如,无线电波或其他自由传播的电磁波、通过波导或其他传输媒介(例如,通过光纤线缆传递的光脉冲)传播的电磁波或通过电线传输的电信号。
[0099]
能够将本文描述的计算机可读程序指令从计算机可读存储介质下载到相应的计算/处理设备,或者能够经由网络(例如,互联网、局域网、广域网和/或无线网络)将本文描述的计算机可读程序指令下载到外部计算机或外部存储设备。网络可以包括铜线传输电缆、传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口都会从网络接收计算机可读程序指令,并且转发计算机可读程序指令以将其存储在相应的计算/处理设备中的计算机可读存储介质中。
[0100]
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器依赖性指令、微代码、固件指令、状态设定数据或用一种或多种编程语言(包括面向对象的编程语言(例如,smalltalk、c++等)和常规的过程编程语言(例如,“c”编程语言或类似的编程语言))的任何组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上运行,部分在用户的计算机上运行,作为独立软件包运行,部分在用户的计算机上运行且部分在远程计算机上运行,或者完全在远程计算机或服
务器上运行。在后一种场景中,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以(例如通过使用互联网服务提供商提供的互联网)连接到外部计算机。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息对电子电路进行个性化处理来运行计算机可读程序指令,以便执行本发明的各个方面。
[0101]
本文参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各个方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合能够通过计算机可读程序指令来实施。
[0102]
单个处理器或其他单元可以实现在权利要求中记载的若干项目的功能。
[0103]
计算机程序可以被存储/分布在合适的介质(例如,光学存储介质或固态介质,其是与其他硬件一起提供的或者作为其他硬件的部分)上,但也可以以其他形式(例如经由互联网或其他有线或无线的电信系统)进行分布。
[0104]
这些计算机可读程序指令可以被提供到通用计算机、专用计算机或其他可编程数据处理装置的处理器以生产机器,使得指令(其经由计算机或其他可编程数据处理装置的处理器来运行)创建用于实施在流程图和/或框图的一个或多个框中指定的功能/动作的单元。这些计算机可读程序指令也可以被存储在能够指导计算机、可编程数据处理装置和/或其他设备以特定方式运行的计算机可读存储介质中,使得其中存储有指令的计算机可读存储介质包括以下制造品,该制造品包括实施在流程图和/或框图中的一个或多个框中指定的功能/动作的各个方面的指令。
[0105]
计算机可读程序指令也可以被加载到计算机、其他可编程数据处理装置或其他设备上,以引起在计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实施的过程,使得在计算机、其他可编程装置或其他设备上运行的指令实施在流程图和/或框图中的一个或多个框中指定的功能/动作。
[0106]
附图中的流程图和框图图示了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。在这一点上,流程图或框图中的每个框可以表示指令模块、指令段或指令部分,其包括一个或多个用于实施所指定的(一种或多种)逻辑功能的可执行指令。在一些替代实施方式中,框中指出的功能可以不以附图中指出的顺序发生。例如,相继示出的两个框实际上可以基本上同时运行,或者这些框有时可以以反向顺序运行,具体取决于所涉及的功能。还将注意到,能够通过执行特定功能或动作或者执行专用硬件与计算机指令的组合的基于专用硬件的系统来实施在框图和/或流程图中的每个框和在框图和/或流程图中的框的组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1