训练神经网络的方法、训练神经网络的系统以及神经网络

文档序号:31963348发布日期:2022-10-28 23:51阅读:39来源:国知局
1.本公开涉及一种训练神经网络的方法、训练神经网络的系统以及神经网络。
背景技术
::2.已经提出通过使用在计算机系统上实现的神经网络来检测由相机获取的图像上的三维对象。通常,可取的是还获得与图像上可见的对象的6d姿态有关的信息。“6d姿态”是一种本领域技术人员公知的表示对象的三维位置和三维定向的组合的表达。获得6d姿态在其中检测和操纵对象的机器人领域中特别有用。对于在驾驶场景中确定对象的定向以允许自主或部分自主驾驶也是有用的。3.图像上可见的对象的视点是这样一种期望的与6d姿态有关的信息。视点可以被定义为对象相对于用于获取图像的相机的方位角、仰角和面内旋转。神经网络也已经用于自动确定图像上可见的对象的视点。4.对象视点估计是为了使自主系统能够理解三维(3d)世界而需要的关键组件之一。已观察到受控环境中的已知方法能够成功地检测对象的视点。这些已知方法受益于现代的可学习表征并已被证明有助于诸如对象检测和3d重建之类的其他视觉任务,并且已用于各种应用。例如,人工神经网络(下文中称为神经网络)已用于检测视点。5.为了获得进行自动确定图像上可见的对象的视点的任务的神经网络,必须进行神经网络的训练阶段。该训练阶段通常使用一组打标记的训练图像来进行。所谓打标记是指为该组训练图像中的每个图像提供感兴趣对象的视点;所提供的视点被称为真值(groundtruth)。然后,训练然后在于将来自训练集的图像输入到神经网络,将神经网络的输出与对应的真值进行比较,并基于该比较来适配神经网络的参数(例如使用公知的随机梯度法)。6.本领域众所周知,为了获得神经网络的良好训练,需要大量打标记的训练图像。大规模的打标记的数据集已经成为计算机视觉任务中的先进技术发展的重要驱动力。但注记(annotate)数据是昂贵的(即,耗时的),并且不能扩展到越来越多的复杂的视觉概念。事实上,获得真值/标记通常涉及使用专用硬件、受控环境以及操作人员手动将3dcad模型与真实世界对象对齐。7.上述方法可以被称为有监督法。这些方法已被广泛研究,并应用于机器人或自主驾驶领域。这些方法可以成功地得出围绕被检测对象的3d边界框。8.还存在学习知晓来自图像的对象的底层3d结构的表征(“3d感知表征”)的方法。已提出在有或没有姿态监督的情况下,使对象的姿态从其外观中分离出来(例如参见文献“interpretabletransformationswithencoder-decodernetworks”(danieleworrall,stephanjgarbin,daniyarturmukhambetov和gabrieljbrostow.inproceedingsoftheieeeinternationalconferenceoncomputervision,pages5726–5735,2017)或文献“deepconvolutionalinversegraphicsnetwork”(tejasdkulkarni,williamfwhitney,pushmeetkohli和joshtenenbaum.inadvancesinneuralinformationprocessingsystems,pages2539–2547,2015))。提出了各种解决方案。然而,为了学习有意义的嵌入,这些解决方案仍然需要3d注记。事实上,已观察到3d旋转会引起剧烈的外观变化,这样的外观变化对网络来说过于复杂,在没有注记的情况下网络无法学习。9.如何使用未标记的数据来训练神经网络进行诸如视点估计之类的任务仍然是所期望的,因为未标记的数据廉价并且易于获得。技术实现要素:10.本公开提供一种(例如由计算机系统进行的)方法,用于训练第一神经网络,以在图像输入到第一神经网络时,检测在该图像上可见且居中(即,在该图像中居中),并且属于给定对象类别的对象的视点,所述方法包括:11.提供多对图像的数据集,每对图像包括第一图像和第二图像,在第一图像上,属于所述类别的对象在第一视点下可见且居中(即,在第一图像中居中),在第二图像上,同一对象在与第一视点不同的第二视点下可见且居中(即,在第二图像中居中),12.提供第二神经网络,第二神经网络被配置成在图像输入到第二神经网络时,能够得出(deliver)在该图像上可见并且属于所述类别的对象的外观信息,13.提供第三神经网络,第三神经网络被配置成在对象的外观信息和视点输入到第三神经网络时,能够得出所述类别的对象(例如,以对象为中心)的合成图像,14.通过适配第一神经网络、第二神经网络和第三神经网络的参数,联合训练第一神经网络、第二神经网络和第三神经网络,以便使以下两者之间的距离最小化:15.出自所述多对图像的数据集的一对图像中的第一图像的至少一部分,该部分显示(作为一个整体)在图像上可见的对象,和16.由第三神经网络得出的合成图像,第三神经网络接收通过将第一图像输入到第一神经网络而得出的视点和通过将该对图像中的第二图像输入到第二神经网络而得出的外观信息作为输入。17.在多对图像的数据集的图像中,对象居中。例如,图像可以是另一个图像的裁剪结果,在所述另一个图像上检测到所述对象,并且所述对象被边界框围绕。该边界框也可以是手动放置的。合成图像将显示居中的对象,因为通过训练,它们将试图再现第一图像。18.第一图像的所述部分可以是对第一图像应用分割掩模的结果,其中分割掩模在应用时只保持对象的像素。这允许获得没有背景的合成图像和不考虑第一图像的背景的训练。一旦训练完成,确定视点就不会受背景的存在所影响。19.或者,如果多对图像的数据集的图像没有背景,则在使所述距离最小化时可以使用整个第一图像。在已从cad图像渲染数据集的图像时,可以使用这种备选方案。在这种情况下,确定放置在有背景的图像的中央的对象的视点仍然是可以实现的。20.应注意的是,第一神经网络对以对象为中心的图像(例如,由围绕被检测对象放置边界框的对象检测器输出的图像)进行操作(可以按照边界框裁剪图像)。21.所述方法于是提出一种完全无监督的训练方法。数据集(也可以被称为训练数据集)可以是未标记的数据集。在来自该数据集的图像上可见的对象的视点是未知的。然而,在每对图像显示同一对象(就对来说,不同的对可以显示不同的对象)但在不同视点下的条件下,可以进行第一神经网络的训练。事实上,如果视点检测是准确的,则第三神经网络输出的图像就会尽可能地接近原始的第一图像。训练然后将努力减小这两个图像之间的距离。22.在上述方法中,也不需要知道这两个图像之间的差异,只需要从第二图像中充分利用外观。23.所谓外观是指颜色、3d形状、纹理等。正是这种训练方法将迫使第二神经网络的输出为外观,因为它将用于重建将与显示对象并且没有外观的另一个图像进行比较的图像,训练将不会收敛。24.在训练的第一阶段,第一、第二和第三神经网络输出随机信息,并且后续的训练迭代将迫使第一神经网络的输出为视点,第二神经网络的输出包含外观信息,而第三神经网络的输出为图像,如上所述。25.结果,本领域的技术人员将能够选择这些中每一个的各层的维度,以便适应视点、外观信息(大小应大到足以包括形状、颜色等)、以及与训练数据集的图像大小相同的图像。26.应注意的是,第一神经网络是将在测试时使用(以检测对象的视点)的实际神经网络,但是另外两个神经网络(第二和第三神经网络)将在训练阶段使用,以及在训练阶段训练。27.这种方法可以在计算系统上实现,以便例如自动进行训练。28.在本说明中,视点意味着相对于用于获取其上对象可见的图像的相机的视点。29.以对象检测或语义分割领域的技术人员通常采用的方式,对象的类别可以被称为对象的类型或类。例如,可以在通常存在于在街道上观察到的场景中的对象的类别列表中选择类别。例如,可以在包括汽车、行人、自行车、公共汽车、卡车等的列表中选择类别。也可以更精确地定义类别(例如,对于汽车,可以考虑轿车、紧凑型汽车等)。例如,上述方法中的对象是汽车,一对图像将包括在不同视角下看到的同一辆汽车的两个图像。30.如上所述,输入到第一神经网络的图像以要针对其确定视点的对象为中心。这些图像可以由对象检测器在所述方法的预备步骤中输入(对于训练数据集的图像也是如此)。31.联合训练神经网络可以迭代地进行。例如,每次迭代可以包括将一对图像中的第一图像输入到第一神经网络,和将该对图像中的第二图像输入到第二神经网络,并计算所述距离。在每次计算距离之后,或者在计算多个距离之后(在批量训练的情况下),可以使用随机梯度下降或者任何其他适当的训练算法或随机梯度下降的变型。随机梯度下降可以用于以其本身已知的方式适配第一神经网络、第二神经网络和第三神经网络的参数。这些参数例如是这些神经网络的权重。使距离最小化包括计算要被最小化的损失,以及例如通过第一神经网络、第二神经网络和第三神经网络反向传播该损失。32.应注意的是,本领域的技术人员会知道如何选择第一神经网络、第二神经网络和第三神经网络的结构。例如,第一神经网络必须能够接收具有给定分辨率的图像作为深度为3的输入(如果它接收rgb图像),并且它还必须输出视点的表征(例如,用于表征视点(方位角、仰角、面内旋转)的至少三个数字,或者单位球面上的点的坐标),并且这对应于用于该第一神经网络的第一层和最后一层的神经元的给定数量。33.另外,例如,第二神经网络必须能够接收具有给定分辨率的图像作为深度为3的输入(如果它接收rgb图像)。它还必须能够输出在图像上可见的对象的外观信息,并且这对应于用于第二神经网络的第一层和第二神经网络的最后一层的神经元的给定数量。该外观信息的维度可以在校准步骤中找到。例如,外观信息应包含足够的信息,使得在任何视点下都能够制作(elaborate)对象的图像。如果对象是汽车,则外观信息应包含足够的信息,使得可以包含汽车的形状和颜色。34.应注意的是,外观信息可以为编码形式。如果第二神经网络具有可以在配置成处理图像的自动编码器中使用的编码器的结构,则可能出现这种情况。在自动编码器中,编码器的输出以编码方式包含足以检索原始图像的信息。第三神经网络被配置成得出图像,例如,分辨率与输入到第一和第二神经网络的图像相同的图像。这指示该第三神经网络的最后一层的神经元的数量。该第三神经网络也可以被配置成能够在其结构中的任何点处接收外观信息和视点。35.本领域的技术人员也会知道如何确定两个图像之间的距离,例如第三神经网络的输出与第二图像之间的距离。36.另外,上述方法能够自动确定来自给定类别的对象,或者来自多个类别的对象的视点。在上述方法中使用的图像优选每个图像只显示所述多种类别的一个对象。37.按照特定实施例,距离可以使用感知损失来定义。38.发明人已观察到使用感知损失可以在第三神经网络输出的图像的质量方面提供更好的结果。39.按照特定实施例,第一神经网络可被配置成得出多个视点假设,并且其中与最小距离关联的视点假设被用于适配所述参数。40.视点估计领域中的一个已知困难是如何处理对称对象,已知的方法经常产生可能是错误的结果(在+π或-π的方位角)。已观察到具有能够得出多个假设的第一神经网络可以克服这种困难。使用最佳假设的反向传播梯度然后将训练第一神经网络产生更好的假设。41.按照特定实施例,第一神经网络还可被配置成能够得出被配置成能够指示最佳假设的指标(indicator)。42.将在训练期间适配参与制作该指标的第一神经网络的权重。因此,进一步训练第一神经网络,以得出该指标。43.所述指标允许对于对称对象在测试阶段使用神经网络。所述指标指定的视点应是在测试阶段被视为第一神经网络的输出的视点。44.按照特定实施例,第三神经网络可以使用对象条件生成处理,以使用外观信息作为输入和/或使用视点作为输入。45.对象条件生成处理可以是文献“arbitrarystyletransferinreal-timewithadaptiveinstancenormalization”(xunhuang和sergebelongie.inproceedingsoftheieeeinternationalconferenceoncomputervision,pages1501–1510,2017)中的对象条件生成处理,换句话说,它可以基于自适应实例归一化(本领域的技术人员也称为“adain”)。已观察到对象条件生成处理确保在第三神经网络制作图像时,第三神经网络事实上考虑了对象的外观。其他方法(例如,使用来自自动编码器的解码器)可能忽略外观的贡献,因为没有正确地分解外观。由于对象条件生成处理可以适配不同规模的生成处理(即,图像的生成处理),因此降低了忽略外观的可能性。46.类似地,视点可以在图像生成处理的后期使用,以便确保考虑到视点来生成图像,以及以便避免视点信息被忽视的情况。47.按照特定实施例,第三神经网络可被配置成还接收通用代码作为输入,并且包括被配置成接收所述通用代码作为输入的多个连续的3d卷积层,其中每个3d卷积层的输出被配置成通过使用用作第三神经网络的输入的外观信息作为参数的给定仿射变换进行变换,以便获得变换后输出,48.其中第三神经网络包括渲染模块,渲染模块被配置成接收最后的3d卷积层的变换后输出和用作第三神经网络的输入的视点作为输入。49.变换后输出可以是体积(volume),这是使用3d卷积层的结果。50.在上述实施例中,通用代码例如可以是随机选择的代码(例如,具有根据经验选择的大小的随机1d向量)。在训练处理之后,通用代码将受到影响意味着它将编码规范姿态的平均对象。通用代码应在整个训练阶段内被固定。51.另外,连续的3d卷积层可以具有在每次应用仿射变换之后增加的分辨率。52.仿射变换实现对象条件生成处理。53.另外,在第三神经网络中,在最后的渲染步骤中考虑视点。这确保梯度的反向传播可传播到第一神经网络,并且保证视点误差不能由卷积层补偿。54.按照特定实施例,渲染模块可包括旋转模块,旋转模块被配置成按照用作第三神经网络的输入的视点,对渲染模块接收的变换后输出进行旋转,并被配置成输出旋转后输出,55.透视模块,透视模块被配置成对旋转后输出应用透视,和56.光线追踪模块,光线追踪模块被配置成制作由第三神经网络输出的图像,并使用应用了透视的旋转后输出。57.上面定义的渲染模块在生成处理(第三神经网络的操作)期间,实施上述体积(变换后输出)与最终的制作图像之间的几何一致性。58.按照特定实施例,光线追踪模块可被配置成:59.制作指示像素的光线在一深度停止的概率的概率地图,60.从概率地图获得占据地图,61.从占据地图和应用了透视的旋转后输出制作图像。62.按照特定实施例,所述方法还包括附加训练,附加训练至少包括:63.确定随机视点,64.从数据集中选择随机图像,65.将随机图像输入到第二神经网络,以获得外观信息,66.通过将随机视点和随机图像的外观信息输入到第三神经网络,得出附加合成图像,和67.使随机视点与在附加合成图像输入到第一神经网络时,第一神经网络的输出之间的距离最小化(例如,通过经由第一神经网络进行误差的反向传播)。68.本具体实施例确保在训练期间确实考虑到了视点,并且防止图像之间的相关性产生影响。69.本实施例利用了上述方法可以从随机视图生成图像的事实,并且改进了第一神经网络的训练,如果训练数据集有限的话。70.这种训练可以是迭代的,并且迭代可以在进行了联合训练之后进行,或者可以并行地进行。71.本发明还提供一种作为第一神经网络,由如上定义的方法训练的神经网络。72.该神经网络可以存储在电子载体上,例如存储在非易失性存储器中。73.本发明还提供一种用于训练第一神经网络,以在图像输入到第一神经网络时,检测在该图像上可见且居中并且属于给定对象类别的对象的视点的系统,所述系统包括:74.多对图像的数据集,每对图像包括第一图像和第二图像,在第一图像上,属于所述类别的对象在第一视点下可见且居中,在第二图像上,同一对象在与第一视点不同的第二视点下可见且居中,75.第二神经网络,第二神经网络被配置成在图像输入到第二神经网络时,能够得出在该图像上可见并且属于所述类别的对象的外观信息,76.第三神经网络,第三神经网络被配置成在对象的外观信息和视点输入到第三神经网络时,能够得出所述类别的对象的合成图像,77.训练模块,所述训练模块被配置成通过适配第一神经网络、第二神经网络和第三神经网络的参数,联合训练第一神经网络、第二神经网络和第三神经网络,以便使以下两者之间的距离最小化:78.出自所述多对图像的数据集的一对图像中的第一图像的至少一部分,该部分显示在图像上可见的对象,和79.由第三神经网络得出的合成图像,第三神经网络接收通过将第一图像输入到第一神经网络而得出的视点和通过将该对图像中的第二图像输入到第二神经网络而得出的外观信息作为输入。80.该系统可被配置成进行上面定义的方法的任何实施例。81.本发明还提供一种如上定义的系统,所述系统包括存储在载体上的来自上述训练方法的第一神经网络和相机。本发明还提供一种包括该系统的车辆。82.在一个特定实施例中,所述方法的各个步骤由计算机程序指令确定。83.从而,本发明还涉及一种计算机程序,在该程序由计算机执行时,所述程序用于执行如上所述的方法的各个步骤。84.该程序可以使用任何编程语言,并且采取源代码、目标代码或介于源代码和目标代码之间的代码的形式,比如部分编译形式,或者任何其他期望的形式。85.本发明还涉及一种计算机可读信息介质,所述计算机可读信息介质包含如上所述的计算机程序的指令。86.信息介质可以是能够存储程序的任何实体或设备。例如,介质可以包括存储装置,比如rom,例如cdrom或微电子电路rom,或者磁存储装置,例如磁盘(软盘)或硬盘。87.或者,信息介质可以是其中包含程序的集成电路,该电路适合于执行所讨论的方法或在其执行中使用。附图说明88.下面参考附图说明本发明的示例实施例的特征、优点以及技术和工业意义,附图中,相同的附图标记表示相同的元件,附图中:89.图1是训练方法的示意图,90.图2是训练模块的操作的示意图,91.图3是按照例子的系统的示意图,92.图4是按照例子的车辆。具体实施方式93.现在将说明用于训练神经网络以得出在图像上可见的给定对象的视点的示例方法。94.对象的视点可以被定义为对象相对于相机的方位角、对象的仰角和对象的面内旋转(欧拉角)的组合。视点也可以被定义为旋转矩阵r∈so3。95.图1是用于训练神经网络,使得该神经网络能够检测在输入到该神经网络的图像上可见的对象的视点的方法的示意图。图1中,该神经网络(以及由该神经网络实现的对应函数)被表示为fv。另外,由于在fv的训练期间将使用另外的神经网络,因此fv也将被称为第一神经网络。96.fv对图像空间i进行操作,以在姿态/视点空间v中输出视点:fv:i→v。该操作针对的是具有给定对象类别的对象。因此,fv进行对象检测的操作,但是输出被检测对象的视点。97.由于难以获得包含对象的图像和对应视点(真值)的训练数据集,因此提出进行自我监督训练,它使用来自条件生成和综合分析的原则(试图通过重建输入图像来理解视觉信息的方法)。为此,提出了通过神经网络所实现的两个函数来分解在图像上可见的对象的视点和外观:上述函数fv和第二个函数fa,本说明中的第二神经网络。实际上,fa被配置成能够接收图像作为输入,并输出在通过fa处理的图像上可见的对象的外观信息a,而fv输出视点v。98.在本技术中,外观信息可以包括颜色、3d形状、纹理等。另外,外观信息可以以编码形式表示。99.为了制作将允许进行比较以便验证视点估计是准确的对象,提供第三神经网络fd。第三神经网络被配置成在已知对象的视点v(这应是在重建图像上应看到该对象的视点)和该对象的外观a(在重建图像上,该对象应具有与a对应的外观)的条件下,能够重建显示该对象的合成图像i。100.三个神经网络fv、fa和fd具有分别表示为θv、θa和θd的参数(或权重)。在训练期间将适配这些参数,目的在于确保在不使用指示对象的视点的注记图像的情况下,fv得出准确的视点估计。为此,提供包含多对图像的训练数据集t。t被定义为:[0101][0102]其中(ii,i′i)表示包含n对图像的数据集t中的索引i的一对图像。在一对图像(ii,i′i)中,ii和i′i都显示同一对象(例如,同一汽车)但是分别在不同的视点vi和v′i下。对象在图像(ii,i′i)中居中,并且这些图像可以有背景也可以没有背景(例如,它们只显示对象)。例如,通过对在不同的视点下显示对象的视频的各帧使用对象检测器,可以获得图像(ii,i′i)(这种情况下,它们有背景),或者可以从cad模型生成图像(ii,i′i)(这种情况下,它们可能没有背景)。[0103]本方法提出通过适配第一神经网络、第二神经网络和第三神经网络的参数,联合训练第一神经网络fv、第二神经网络fa和第三神经网络fd,以便使以下两者之间的差距最小化:[0104]出自所述多对图像的数据集的一对图像中的第一图像i,和[0105]由第三神经网络得出的合成图像,第三神经网络接收通过将第一图像i输入到第一神经网络而得出的视点,和通过将该对图像中的第二图像i′输入到第二神经网络而得出的外观信息作为输入。[0106]换句话说,进行以下优化:[0107][0108]如果图像(ii,i′i)没有背景,则可以使用上面的等式。如果它们有背景,则优选将差值的右边项中的i替换为m(i),即,对i应用分割掩模的结果,该分割掩模界定显示对象的像素。[0109]更详细地,应注意的是,fv可以具有包含与批量归一化和relu激活函数交织的7个卷积层的结构。fv可被配置成接收分辨率为64x64的rgb图像。然而,本发明不限于这种结构和这种分辨率,本领域的技术人员将能够为fv制作其他神经网络结构。[0110]另外,fv被配置成输出视点v∈s2,即,单位球面上的点。球面上的每个点可以唯一地映射到视点。[0111]在训练阶段,视点v优选被表示为旋转矩阵,以便可以由第三神经网络fd使用,如下文中所述。[0112]为了获得表示为旋转矩阵的视点,对fv的输出进行正交化操作。首先,任意选择向量u表示向上方向,进行两个连续的叉积:(=v×u和u′=w×v,将结果归一化,旋转矩阵r被定义为[v,w,u′]。[0113]进行各个步骤以获得r的模块可以是可学习的(可微分的),并且还可以与v联合地学习u。[0114]虽然可以使用配置成只输出一个视点估计的第一神经网络fv,不过,优选使用配置成输出多个视点估计的第一神经网络fv。事实上,无监督视点估计的主要缺陷是由对称性引起的预测的崩溃。虽然大多数系统对于高度简化的对象(比如每个面不同地着色的立方体)工作良好,不过真实世界的对象往往即使没有许多对称的视点对,也具有至少一个对称的视点对。如果从v观察对象而产生的图像接近于从v′观察该对象而产生的图像,则认为两个视点v,v′形成对称对。例如,对于大多数汽车,(a,e,t)~(a+π,e,t)对任意方位角a、仰角e和相机倾角t形成对称对。因此,基于重建的无监督方法通常等同于这两个视点,导致预测的崩溃。为了缓解该问题,提出了不同的变通方法,比如使用对抗模型来实施对于姿态分布的先验,使用几个预测头,或者使用图像的翻转版本在预测中实施某些对称一致性。这些解决方案并不令人满意。例如,使用图像的翻转版本假定在翻转图像时语义被保留(假定有对象的先验知识),它只对左右平面对称有效:对于针对汽车获得的上述对称对,这种已知方法可能会失败。输出多个(例如,m个)视点假设克服了这种困难。例如,关于具有对称性的对象的两个假设将分别由fv同时输出,通过选择提供最小重建误差的一个假设,可以确定正确的假设。例如,正确的视点v*可以被定义为:[0115][0116]使得[0117][0118]其中表示第m个假设,m是假设的总数(例如,等于3)。应注意的是为了分离对称的假设,梯度只应通过索引m的fv的输出传播。[0119]应注意的是,在测试阶段(当对实际图像使用fv,以检测对象的视点时),拥有多个假设可能不方便或者昂贵。为了克服这种困难,提出了通过fv获得一个指标,该指标将被训练,以指示fv输出的多个假设当中的最佳假设。[0120]该指标可以被称为学生输出。[0121]已观察到在测试阶段保持多个假设将更加鲁棒。[0122]关于第二神经网络fa,应注意的是fa可以具有包含与批量归一化和relu激活函数交织的7个卷积层的结构。fa可被配置成接收分辨率为64x64的rgb图像。然而,本发明不限于这种结构和这种分辨率,本领域的技术人员将能够为fa制作其他神经网络结构。[0123]fa的操作是(n是根据经验选择的,例如设定为128、256或者甚至1024,以便确保系统在没有太多开销的情况下操作),并且fa具有编码器的结构,所述编码器可以是自动编码器的一部分。[0124]虽然fd可以具有自动编码器的解码器的结构,不过现在将说明一种有利的结构。事实上,已经观察到自动编码器结构不能保证当外观和视点被输入到解码器时,外观和视点被正确分解。例如,图像i′上的对象的视点v′可以包含在a′中,这意味着v′的变化会导致重建的外观的变化。在极端情况下,网络甚至可以忽略v,并通过记忆(i,i′)对来重建i。为了缓解该问题,使用这里基于自适应实例归一化(如在文献“arbitrarystyletransferinreal-timewithadaptiveinstancenormalization”中所述)的对象条件处理。虽然该方案最初用于风格迁移,不过归因于其适配不同规模的生成处理的能力,这种方案在gan中也很流行。[0125]在预备步骤中,定义随机静态代码(m是根据经验选择的,例如设定为1024,优选m》n,使得网络不能对fa的输出中的所有内容编码,从而需要依赖z来编码关于对象类别的全局信息),以便形成fd的主输入。z可以从1d向量的正态分布中随机选取,目的在于在训练阶段结束时对来自数据集的平均对象编码,并在整个训练阶段中保持不变/固定。z的用途是在训练之后对规范姿态的平均对象编码。[0126]z被输入到fd,更精确地说,被输入到第一3d卷积层,该卷积层的输出通过仿射变换进行变换,所述仿射变换使用a′作为该变换的参数(该步骤在图1中被表示为adain)。实现跟随有仿射变换(并且还跟随有relu)的多个这样的3d卷积层。例如,使用7个这样的3d卷积层和变换,并且这些3d卷积层的分辨率逐个增大。[0127]应注意的是a′是通过不同深度的变换,在每个特征通道上均匀地应用的,这将更好地影响重建。[0128]另外,在这个阶段,从fv获得的视点v还没有被使用fd。[0129]在最后一次变换之后,获得变换后输出。该变换后输出然后在渲染模块中使用,渲染模块接收变换后输出和从fv获得的视点v作为输入。[0130]变换后输出例如可以具有能够存储rgb值、占据网格和空间坐标(x、y和z)的多维结构。例如,变换后输出可以是张量。[0131]在渲染模块的第一个模块中,通过使用上面定义的矩阵r作为参数,旋转定义体积v的变换后输出,以获得旋转后输出。然后通过沿着旋转轴对数据进行重采样,获得新的体积。[0132]然后,对旋转后输出应用透视。由于针孔相机的单点透视具有与距离成比例地减小对象的表观尺寸的效果,因此这种透视应用可以包括体积中的近点的膨胀和体积中的远点的收缩。[0133]然后使用伪光线追踪模块,以便将体积投影到2d平面上。[0134]图2图形地表示了渲染模块的操作。[0135]对象的各个部分会受到自遮挡,这允许使用伪光线追踪模块来计算哪些部分将出现在最终的重建中,从而确保适当的几何一致性。[0136]在旋转和透视应用之后获得的体积v具有四个通道,前三个通道表示rgb分量,而第四个通道是占据地图,包含与对象的形状有关的信息。每个单元的值被解释为对象占据对应空间位置的概率。为了计算投影,应估计每条光线可能在哪里停止。由于透视已经考虑在内,所有光线是平行的,因此只留下每个停止点的深度待计算。应注意的是,不需要为每条光线计算路径:该路径嵌入在体积的形状中。使用并行操作可以同时计算所有光路。在像素坐标i;j处的光线在深度k停止的概率由下式给出:[0137][0138]按照惯例,空积等于1。[0139]第一项qi,j,k表示坐标(i,j,k)处的体素被占据的概率,而第二项是先前所有的不可见的概率。从而,最终的图像在坐标i;j处具有以下像素值:[0140][0141]虽然只使用分割掩模就可以提供监督,不过在系统知道光线是通过整个体积还是在某个点停止的情况下,优选另一种方法。提出将直接像素值用于监督,这意味着不提供关于光线通过或停止的信息,因为所有光线似乎都在某个点停止。从而,本方法的强失效模式包括使用体积v作为画布,并在两侧以不同的姿态“画”对象。这可能导致对象形状的误差,因为不知道哪些像素属于该对象。为了克服该问题,进行占据网格的重新参数化。代替学习q,学习q′,使得q=q′+s,其中s是以v为中心的三维高斯分布。本质上,学习q′包括学习s上的残差,即,使s变形,以匹配被观察对象的形状。这为对象的形状和位置设定先验,同时阻止网络使用远离中心的体素。[0142]另外,在图像空间中设定监督(即,与像素值比较,而不仅仅是分割掩模)提供了好处或允许生成新的视图。特别地,这些视图可以在训练期间使用,以帮助改进预测:可以对视点空间随机采样,并使用外观信息a′渲染新的图像然后,可以将这些图像送入姿态估计器,并将设定为(lcycle是fv对于的输出与之间的平方距离)。这允许在存在于训练集中的一组姿态之外泛化,并且新创建的样本有助于使姿态网络正则化。[0143]可以向渲染处理添加附加参数,比如通过比例因子实现的对象与相机之间的距离,或者为了照亮对象的各个部分而通过另一个旋转和光线追踪操作实现的照明。[0144]训练可以按64个样本批量进行,优化可以使用adam优化器来进行(参见文献“adam:amethodforstochasticoptimization”(diederikpkingma和jimmyba.arxivpreprintarxiv:1412.6980,2014.))。[0145]图3表示用于训练上面定义的第一神经网络fv的系统100。该系统包括处理器101,并且具有计算机系统的结构。[0146]它还包括上面存储三个神经网络fv、fa和fd,以及训练数据集t的非易失性存储器。用于进行训练的计算机程序指令103也存储在非易失性存储器中。计算机程序指令103和处理器101形成训练模块,训练模块被配置成通过适配第一神经网络、第二神经网络和第三神经网络的参数,联合训练第一神经网络、第二神经网络和第三神经网络,以便使以下两者之间的差距最小化:[0147]出自多对图像的数据集的一对图像中的第一图像,和[0148]由第三神经网络得出的合成图像,第三神经网络接收通过将第一图像输入到第一神经网络而得出的视点,和通过将该对图像中的第二图像输入到第二神经网络而得出的外观信息作为输入。[0149]图4是车辆200(这里是汽车)的示意图,车辆200配备有用于确定在车辆的相机202所获取的图像上可见的对象的视点的系统201。[0150]系统201包括处理器203和非易失性存储器204,在进行了如上定义的训练之后,神经网络fv存储在非易失性存储器204中。[0151]上述训练允许获得已观察到在检测视点方面,比使用一组打标记的训练图像(有监督训练)简单地训练的神经网络表现更好的神经网络。[0152]在包括权利要求书在内的整个说明中,除非另有说明,否则用语“包含一个”应被理解为与“包含至少一个”同义。另外,除非另有说明,否则在包括权利要求书在内的说明中所列的任何范围应被理解为包含其端值。所描述的元件的具体值应被理解为在为本领域技术人员所知的可以接受的制造或工业公差范围内,用语“大体上”和/或“大约”和/或“一般地”的任何使用应被理解成意味在此类可以接受的公差范围之内。[0153]尽管参考特定实施例说明了本公开,不过应理解的是,这些实施例仅仅说明本公开的原理和应用。[0154]说明书和例子仅仅是示例性的,本公开的真实范围由以下的权利要求书限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1