首页> 中国专利> 图像识别方法和装置、图像生成方法和装置、神经网络的训练方法和装置

图像识别方法和装置、图像生成方法和装置、神经网络的训练方法和装置

摘要

本公开实施例提供图像识别方法和装置、图像生成方法和装置、神经网络的训练方法和装置。图像识别方法包括:获取第一图像,所述第一图像中包括由一个或多个真实物体堆叠形成的真实堆叠物;将所述第一图像输入预先训练的第一神经网络,获取所述第一神经网络输出的所述一个或多个第一真实物体中各个真实物体的类别信息;其中,所述第一神经网络基于第二图像训练得到,所述第二图像基于虚拟堆叠物生成,所述虚拟堆叠物由至少一个第二真实物体的三维模型堆叠形成。

著录项

  • 公开/公告号CN113228116A

    专利类型发明专利

  • 公开/公告日2021-08-06

    原文格式PDF

  • 申请/专利权人 商汤国际私人有限公司;

    申请/专利号CN202180001447.9

  • 发明设计人 田茂清;蒋逸民;伊帅;

    申请日2021-04-28

  • 分类号G06T17/00(20060101);G06K9/62(20060101);G06N3/04(20060101);

  • 代理机构11415 北京博思佳知识产权代理有限公司;

  • 代理人艾佳

  • 地址 新加坡新加坡广场05-318号海滨路7500A座

  • 入库时间 2023-06-19 12:07:15

说明书

相关申请的交叉引用

本公开要求于2020年12月28日提交的、申请号为10202013080R、发明名称为“图像识别方法和装置、图像生成方法和装置、神经网络的训练方法和装置”的新加坡专利申请的优先权,该新加坡专利申请公开的全部内容以引用的方式并入本文中。

技术领域

本公开涉及计算机视觉技术领域,尤其涉及图像识别方法和装置、图像生成方法和装置、神经网络的训练方法和装置。

背景技术

对象识别在实际生产和生活中有着重要应用。例如,在生产线、运输线、分拣线上需要对堆叠的产品进行识别。常见的对象识别方式基于经过训练的卷积神经网络实现,在训练卷积神经网络的过程中,需要大量有标注的真实物体的二维图像作为样本数据。

发明内容

本公开实施例提供图像识别方法和装置、图像生成方法和装置、神经网络的训练方法和装置。

根据本公开实施例的第一方面,提供一种图像识别方法,所述方法包括:获取第一图像,所述第一图像中包括由一个或多个第一真实物体堆叠形成的真实堆叠物;将所述第一图像输入预先训练的第一神经网络,获取所述第一神经网络输出的所述一个或多个第一真实物体中各个第一真实物体的类别信息;其中,所述第一神经网络基于第二图像训练得到,所述第二图像基于虚拟堆叠物生成,所述虚拟堆叠物由至少一个第二真实物体的三维模型堆叠形成。

在一些实施例中,所述方法还包括:获取所述至少一个第二真实物体的多个三维模型;对所述多个三维模型进行空间堆叠,得到所述虚拟堆叠物。

在一些实施例中,获取所述至少一个第二真实物体的多个三维模型,包括:对所述至少一个第二真实物体中一个或多个第二真实物体的三维模型进行复制;对复制得到的三维模型进行平移和/或旋转,得到所述至少一个第二真实物体的多个三维模型。

在一些实施例中,所述至少一个第二真实物体属于多个类别,对所述至少一个第二真实物体中一个或多个第二真实物体的三维模型进行复制,包括:对所述多个类别中每个类别,确定所述至少一个第二真实物体中属于该类别的至少一个目标真实物体;对所述至少一个目标真实物体中的单个真实物体的三维模型进行复制。

在一些实施例中,所述方法还包括:获取所述至少一个目标真实物体中单个真实物体的多张二维图像;基于所述多张二维图像进行三维重建,得到所述至少一个目标真实物体中单个真实物体的三维模型。

在一些实施例中,所述方法还包括:在获取所述虚拟堆叠物之后,对所述虚拟堆叠物进行渲染处理,得到渲染结果;对所述渲染结果进行风格迁移,生成所述第二图像。

在一些实施例中,所述对渲染结果进行风格迁移,包括:将所述渲染结果和第三图像输入第二神经网络,得到与所述第三图像风格相同的所述第二图像,其中,所述第三图像包括由所述至少一个第二真实物体堆叠形成的真实堆叠物。

在一些实施例中,所述第一神经网络包括:第一子网络,用于从所述第一图像中提取特征;以及第二子网络,用于基于所述特征预测所述至少一个第二真实物体中各个第二真实物体的类别信息。

在一些实施例中,所述第一神经网络按照如下方式训练得到:基于所述第二图像对所述第一子网络和所述第二子网络进行第一训练;基于第四图像,对经过第一训练的所述第二子网络进行第二训练,其中,所述第四图像包括所述至少一个第二真实物体堆叠形成的真实堆叠物;或者,所述第一神经网络按照如下方式训练得到:基于所述第二图像对所述第一子网络和第三子网络进行第一训练;所述第一子网络和第三子网络用于构成第三神经网络,所述第三神经网络用于对所述第二图像中的物体进行分类;基于第四图像,对所述第二子网络和经过第一训练的所述第一子网络进行第二训练,其中,所述第四图像包括所述至少一个第二真实物体堆叠形成的真实堆叠物。

在一些实施例中,所述方法还包括:基于所述第一神经网络输出的所述一个或多个第一真实物体中各个第一真实物体的类别信息,确定所述第一神经网络的性能;响应于确定所述第一神经网络的性能不满足预设的条件,基于第五图像,对所述第一神经网络的网络参数值进行修正,其中,所述第五图像包括所述一个或多个第一真实物体堆叠形成的真实堆叠物。

在一些实施例中,所述一个或多个第一真实物体包括一个或多个第一片状物体,所述至少一个第二真实物体包括至少一个第二片状物体,所述真实堆叠物的堆叠方向是所述一个或多个第一片状物体的厚度方向,所述虚拟堆叠物的堆叠方向是所述至少一个第二片状物体的厚度方向。

根据本公开实施例的第二方面,提供一种图像生成方法,所述方法包括:获取一个或多个物体的三维模型和类别信息,所述一个或多个物体的三维模型基于所述一个或多个物体的二维图像生成;对多个所述三维模型进行堆叠,得到虚拟堆叠物;将所述虚拟堆叠物转换为所述虚拟堆叠物的二维图像;基于所述虚拟堆叠物中多个虚拟物体的类别信息,生成所述虚拟堆叠物的二维图像的类别信息。

在一些实施例中,所述方法还包括:对所述一个或多个物体中至少一个物体的三维模型进行复制;对复制得到的三维模型进行平移和/或旋转,得到多个所述三维模型。

在一些实施例中,所述一个或多个物体属于多个类别,对所述一个或多个物体中至少一个物体的三维模型进行复制,包括:对所述多个类别中每个类别,确定所述一个或多个物体中属于该类别的至少一个目标物体,对所述至少一个目标物体中的单个物体的三维模型进行复制。

在一些实施例中,所述方法还包括:获取所述至少一个目标物体中单个物体的多张二维图像;基于所述多张二维图像进行三维重建,得到所述至少一个目标物体中该单个物体的三维模型。

在一些实施例中,所述方法还包括:在获取所述虚拟堆叠物之后,对所述虚拟堆叠物的三维模型进行渲染处理,得到渲染结果;对所述渲染结果进行风格迁移,生成所述虚拟堆叠物的二维图像。

在一些实施例中,所述一个或多个物体包括一个或多个片状物体;对多个所述三维模型进行堆叠,包括:沿所述一个或多个片状物体的厚度方向,对多个所述三维模型进行堆叠。

根据本公开实施例的第三方面,提供一种神经网络的训练方法,所述方法包括:获取由本公开任一实施例所述的图像生成方法生成的图像作为样本图像;基于所述样本图像对第一神经网络进行训练,所述第一神经网络用于识别真实堆叠物中各个真实物体的类别信息。

根据本公开实施例的第四方面,提供一种图像识别装置,所述装置包括:第一获取模块,用于获取第一图像,所述第一图像中包括由一个或多个第一真实物体堆叠形成的真实堆叠物;输入模块,用于将所述第一图像输入预先训练的第一神经网络,获取所述第一神经网络输出的所述一个或多个第一真实物体中各个第一真实物体的类别信息;其中,所述第一神经网络基于第二图像训练得到,所述第二图像基于虚拟堆叠物生成,所述虚拟堆叠物由至少一个第二真实物体的三维模型堆叠形成。

在一些实施例中,所述装置还包括:第四获取模块,用于获取所述至少一个第二真实物体的多个三维模型;堆叠模块,用于对所述多个物体的三维模型进行空间堆叠,得到所述虚拟堆叠物。

在一些实施例中,所述第四获取模块包括:复制单元,用于对所述至少一个第二真实物体中一个或多个第二真实物体的三维模型进行复制;平移旋转单元,用于对复制得到的三维模型进行平移和/或旋转,得到所述至少一个第二真实物体的多个三维模型。

在一些实施例中,所述至少一个第二真实物体属于多个类别;所述复制单元用于:对所述多个类别中每个类别,确定所述至少一个第二真实物体中属于该类别的至少一个目标真实物体;对所述至少一个目标真实物体中的单个真实物体的三维模型进行复制。

在一些实施例中,所述装置还包括:第五获取模块,用于获取所述至少一个目标真实物体中单个真实物体的多张二维图像;第一三维重建模块,用于基于所述多张二维图像进行三维重建,得到所述至少一个目标真实物体中单个真实物体的三维模型。

在一些实施例中,所述装置还包括:第一渲染模块,用于在获取所述虚拟堆叠物之后,对所述虚拟堆叠物进行渲染处理,得到渲染结果;第一风格迁移模块,用于对所述渲染结果进行风格迁移,生成所述第二图像。

在一些实施例中,所述第一风格迁移模块用于:将所述渲染结果和第三图像输入第二神经网络,得到与所述第三图像风格相同的所述第二图像,其中,所述第三图像包括由所述至少一个第二真实物体堆叠形成的真实堆叠物。

在一些实施例中,所述第一神经网络包括:第一子网络,用于从所述第一图像中提取特征;以及第二子网络,用于基于所述特征预测所述至少一个第二真实物体中各个第二真实物体的类别信息。

在一些实施例中,所述第一神经网络采用如下模块训练得到:第一训练模块,用于基于所述第二图像对所述第一子网络和所述第二子网络进行第一训练;第二训练模块,用于基于第四图像,对经过第一训练的所述第二子网络进行第二训练,其中,所述第四图像包括所述至少一个第二真实物体堆叠形成的真实堆叠物;或者,所述第一神经网络采用如下模块训练得到:第一训练模块,用于基于所述第二图像对所述第一子网络和第三子网络进行第一训练;所述第一子网络和第三子网络用于构成第三神经网络,所述第三神经网络用于对所述第二图像中的物体进行分类;第二训练模块,用于基于第四图像,对所述第二子网络和经过第一训练的所述第一子网络进行第二训练,其中,所述第四图像包括所述至少一个第二真实物体堆叠形成的真实堆叠物。

在一些实施例中,所述一个或多个第一真实物体包括一个或多个第一片状物体,所述至少一个第二真实物体包括至少一个第二片状物体,所述真实堆叠物的堆叠方向是所述一个或多个第一片状物体的厚度方向,所述虚拟堆叠物的堆叠方向是所述至少一个第二片状物体的厚度方向。

根据本公开实施例的第五方面,提供一种图像生成装置,所述装置包括:第二获取模块,用于获取一个或多个物体的三维模型和类别信息,所述一个或多个物体的三维模型基于所述一个或多个物体的二维图像生成;第一堆叠模块,用于对多个所述三维模型进行堆叠,得到虚拟堆叠物;转换模块,用于将所述虚拟堆叠物转换为所述虚拟堆叠物的二维图像;生成模块,用于基于所述虚拟堆叠物中多个虚拟物体的类别信息,生成所述虚拟堆叠物的二维图像的类别信息。

在一些实施例中,所述装置还包括:复制模块,用于对所述一个或多个物体中的至少一个物体的三维模型进行复制;平移旋转模块,用于对复制得到的三维模型进行平移和/或旋转,得到所述多个三维模型。

在一些实施例中,所述一个或多个物体属于多个类别,所述复制模块用于:对所述多个类别中每个类别,确定所述一个或多个物体中属于该类别的至少一个目标物体;对所述至少一个目标物体中的该单个物体的三维模型进行复制。

在一些实施例中,所述装置还包括:第六获取模块,用于获取所述至少一个目标物体中单个物体的多张二维图像;第二三维重建模块,用于基于所述多张二维图像进行三维重建,得到所述至少一个目标物体中单个物体的三维模型。

在一些实施例中,所述装置还包括:第二渲染模块,用于在获取所述虚拟堆叠物之后,对所述虚拟堆叠物的三维模型进行渲染处理,得到渲染结果;第二风格迁移模块,用于对所述渲染结果进行风格迁移,生成所述虚拟堆叠物的二维图像。

在一些实施例中,所述一个或多个物体包括一个或多个片状物体;所述第一堆叠模块用于:沿所述一个或多个片状物体的厚度方向,对所述多个三维模型进行堆叠。

根据本公开实施例的第六方面,提供一种神经网络的训练装置,所述装置包括:第三获取模块,用于获取由本公开任一实施例所述的图像生成装置生成的图像作为样本图像;训练模块,用于基于所述样本图像对第一神经网络进行训练,所述第一神经网络用于识别真实堆叠物中各个真实物体的类别信息。

根据本公开实施例的第七方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现任一实施例所述的方法。

根据本公开实施例的第八方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现任一实施例所述的方法。

根据本公开实施例的第九方面,提供一种存储在存储介质上的计算机程序,该计算机程序被处理器执行时实现任一实施例所述的方法。

本公开实施例采用第一神经网络获取真实堆叠物中真实物体的类别信息,在第一神经网络的训练过程中,通过采用基于虚拟堆叠物生成的第二图像来代替真实物体的图像来训练第一神经网络,由于真实堆叠物的样本图像获取难度较高,因此,通过本公开实施例的方法,实现了虚拟堆叠物的样本图像的批量生成,并基于虚拟堆叠物的样本图像训练第一神经网络,减少了需要的真实堆叠物的样本数量,从而降低了用于训练第一神经网络的样本图像的获取难度,从而降低了第一神经网络的训练成本。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。

图1是本公开实施例的图像识别方法的一个流程示意图。

图2A和图2B分别是物体的堆叠方式的示意图。

图3是本公开实施例的生成第二图像的流程示意图。

图4A和图4B是本公开实施例的网络参数迁移过程的示意图。

图5是本公开实施例的图像生成方法的一个流程示意图。

图6是本公开实施例的神经网络的训练方法流程图。

图7是本公开实施例的图像识别装置的示意框图。

图8是本公开实施例的图像生成装置的示意框图。

图9是本公开实施例的神经网络的训练装置的示意框图。

图10是本公开实施例的计算机设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为了使本技术领域的人员更好的理解本公开实施例中的技术方案,并使本公开实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本公开实施例中的技术方案作进一步详细的说明。

如图1所示,本公开实施例提供一种图像识别方法,所述方法包括步骤101-102。

步骤101:获取第一图像,所述第一图像中包括由一个或多个第一真实物体堆叠形成的真实堆叠物;

步骤102:将所述第一图像输入预先训练的第一神经网络,获取所述第一神经网络输出的所述一个或多个第一真实物体中各个第一真实物体的类别信息;

其中,所述第一神经网络基于第二图像训练得到,所述第二图像基于虚拟堆叠物生成,所述虚拟堆叠物由至少一个第二真实物体的三维模型堆叠形成。在本公开实施例中,第一真实物体和第二真实物体的类别信息可以相同,也可以不同。以第一真实物体和第二真实物体均为片状游戏币、类别信息表征游戏币的面值为例,第一真实物体可以包括面值为1美元和0.5美元的游戏币,第二真实物体可以包括面值为5美元的游戏币。

本公开实施例采用第一神经网络获取真实堆叠物中的真实物体的类别信息,真实物体指有形且可见的实体。在第一神经网络的训练过程中,通过采用基于虚拟堆叠物生成的第二图像来代替真实堆叠物的图像来训练第一神经网络,由于真实堆叠物的样本图像获取难度较高,而虚拟堆叠物的样本图像获取难度较低,因此,通过本公开实施例的方法,实现了虚拟堆叠物的样本图像的批量生成,并基于虚拟堆叠物的样本图像训练第一神经网络,减少了需要的真实堆叠物的样本数量,从而降低了用于训练第一神经网络的样本图像的获取难度,从而降低了第一神经网络的训练成本。

在步骤101中,所述真实堆叠物可以置于一平面(例如,桌面)上。可以通过设置在所述平面周围和/或所述平面上方的图像采集装置采集所述第一图像。进一步地,还可以对所述第一图像进行图像分割处理,以从所述第一图像中去除背景区域,从而提高后续处理效率。

在本公开实施例中,真实物体也可以被称为物体。第一图像中包括的真实堆叠物中真实物体的数量可以是一个或多个,其数量预先并不确定。真实堆叠物中每个物体的形状和尺寸可以相同或者相近,例如,直径5厘米左右的圆柱形物体或者边长均为5厘米左右的立方体形物体,但本公开不限于此。在物体的数量为多个的情况下,多个物体可以沿着某一堆叠方向堆叠,例如,可以按照图2A所示的方式在竖直方向上堆叠,或者按照图2B所示的方式在水平方向上堆叠。应当说明的是,在实际应用中,并不要求堆叠的多个物体严格对齐,各个物体可以以比较随机的方式进行堆叠,例如,各个物体的边缘可以不对齐。

在步骤102中,可以通过预先训练的第一神经网络对真实堆叠物中各个物体的类别信息进行识别。根据实际需要,可以对所述真实堆叠物中一个或多个位置处的物体的类别信息进行识别。或者,可以从所述真实堆叠物中识别出一种或多种类别的物体。或者,也可以对所述真实堆叠物中的全部物体的类别信息进行识别。在这里,物体的类别信息表征物体在某一分类维度下所归属的类别,例如颜色、尺寸、价值或其他预设维度,等等。在一些实施例中,所述第一神经网络还可以输出所述物体的数量、堆叠高度信息、位置信息等中的一项或多项。例如,可以基于识别结果确定所述真实堆叠物中一个或多个类别的物体的数量。识别结果可以是一个序列,该序列的长度与真实堆叠物中物体的数量相关。表1示出了第一神经网络的识别结果,其中,共识别出A、B、C三种类别的物体,例如,A类别的物体的数量为3,颜色为红色,所处的位置为真实堆叠物中的1号、2号和4号位置。在表1所示的情况下,第一神经网络输出的序列可以是如下形式的:{A,3,红,(1,2,4);B,2,黄,(5,9);C,5,紫,(3,6,7,8,10)}。

表1第一神经网络的识别结果

在一些实施例中,上述方法还包括:获取所述至少一个第二真实物体的多个三维模型,对所述多个三维模型进行堆叠,得到所述虚拟堆叠物。通过上述方式能够模拟真实物体的堆叠情况,进而通过生成虚拟堆叠物的第二图像代替真实物体的图像来训练第一神经网络。

可选地,多个三维模型可以包括不同类别的物体的多个三维模型。例如,可以包括类别1的物体的三维模型M1,类别2的物体的三维模型M2,……,以及类别n的物体的三维模型Mn。可选地,多个三维模型也可以包括同一类别的物体的多个三维模型。例如,可以包括类别1的物体O1的三维模型M1,类别1的物体O2的三维模型M2,……,类别1的物体On的三维模型Mn。其中,类别1的物体O1,类别1的物体O2,……,类别1的物体On可以是同一物体,或者是同一类别的不同物体。上述n为正整数。可选地,多个三维模型可以既包括不同类别的物体的多个三维模型,又包括同一类别的物体的多个三维模型。为了尽量模拟真实场景下物体的堆叠情况,在对所述多个三维模型进行堆叠时,也可以使各个三维模型以较为随机的方式进行堆叠,即各个三维模型的边缘可以不对齐。

在多个三维模型包括同一类别的物体的多个三维模型的情况下,可以对属于该类别的至少一个物体的三维模型进行复制,对复制得到的三维模型进行平移和/或旋转,得到多个三维模型。这样,可以基于属于该类别的至少一个物体的三维模型获取多个三维模型,增加了三维模型的数量,降低了获取多个三维模型的复杂度。其中,通过同一个待复制三维模型复制得到的各个三维模型的类别与该待复制的三维模型的类别相同。旋转和平移操作均不改变三维模型的类别。因此,可以直接将复制得到的三维模型对应的类别标注为待复制的三维模型对应的物体的类别,由此可以快速获得包含物体类别标注信息的三维模型,提高了标注效率,从而进一步提高了第一神经网络的训练效率。

在至少一个第二真实物体中包括多个类别的物体的情况下,对于各个类别,确定至少一个第二真实物体中属于该类别的至少一个目标真实物体,并对至少一个目标真实物体中的单个物体的三维模型进行复制。例如,可以对类别1的单个物体的三维模型进行复制,得到c1个类别1的三维模型,对类别2的单个物体的三维模型进行复制,得到c2个类别2的三维模型,以此类推,其中,c1和c2是正整数。复制得到的各个类别的三维模型可以随机进行堆叠,得到多个虚拟堆叠物,以使得到的虚拟堆叠物中包括不同数量和类别分布的三维模型,从而尽量模拟真实场景下物体的数量和分布情况。还可以基于不同的虚拟堆叠物生成多张不同的第二图像以用于训练第一神经网络,从而提高训练出的第一神经网络的准确性。例如,用于生成第二图像I1的虚拟堆叠物S1由一个类别1的三维模型和2个类别2的三维模型堆叠形成,用于生成第二图像I2的虚拟堆叠物S2由三个类别3的三维模型堆叠形成,等等。

单个物体的三维模型可以通过三维模型绘制软件绘制得到,或者,也可以通过对单个物体的多张二维图像进行三维重建得到。具体来说,可以获取单个物体的不同视角的多张二维图像,包括所述物体各个表面的图像。例如,在所述物体为立方体形状的情况下,可以获取物体的六个侧面的图像。又例如,在所述物体为圆柱体形状的情况下,可以获取所述物体上下表面的图像和侧面的图像。在对所述物体的多张二维图像进行三维重建时,可以对所述物体的多张二维图像中的每张二维图像进行边缘分割,以去除二维图像中的背景区域。然后,通过对二维图像进行旋转、拼接等处理,重建出三维模型。通过三维重建得到三维模型的方式复杂度较低,从而能够提高获取三维模型的效率,进而提高第一神经网络的训练效率,减少训练过程中的计算资源消耗。

在获取虚拟堆叠物之后,还可以对虚拟堆叠物进行预处理,以使虚拟堆叠物更加接近真实堆叠物,从而提高训练出的第一神经网络的精确度。可选地,所述预处理包括对虚拟堆叠物进行渲染处理。通过渲染处理,可以使虚拟堆叠物的颜色和/或纹理更加接近真实堆叠物。所述渲染处理可以通过渲染引擎中的渲染算法实现,本公开对渲染算法的类型不做限制。其中,渲染处理所得到的渲染结果可以是虚拟堆叠物,也可以是虚拟堆叠物的二维图像。

可选地,所述预处理还可以包括对所述渲染结果进行风格转换(也称为风格迁移,即style transfer),即,将所述渲染结果转换为与真实堆叠物比较接近的风格。例如,对渲染结果中的高光部位进行处理,或者为渲染结果添加阴影效果,使渲染结果的风格更加接近实际场景下拍摄到的物体的风格。通过上述处理,能够模拟真实场景下的光照等情况,提高训练出的第一神经网络的准确性。所述风格转换可以采用第二神经网络来实现。应当说明的是,风格转换可以在渲染处理之后执行,也可以在渲染处理之前执行,即,对虚拟堆叠物或者虚拟堆叠物的二维图像进行风格迁移,再对风格迁移结果进行渲染处理。

以先进行渲染处理再进行风格迁移为例,可以将所述渲染结果和第三图像输入第二神经网络,得到与所述第三图像风格相同的所述第二图像,其中,所述第三图像包括真实物体堆叠形成的真实堆叠物。因此,根据真实场景下的物体生成的第三图像,可将渲染结果转换为与真实场景相同的风格,实现方式简单。

在一些实施例中,可以采用如图3所示的方式生成第二图像。如图3所示,通过对单个物体的图像进行三维重建,得到单个物体的三维模型,再对单个物体的三维模型进行三维变换(例如,复制、旋转、平移等),得到虚拟堆叠物,然后对虚拟堆叠物或者虚拟堆叠物生成的图像进行渲染,并对渲染结果进行风格转换,最终可得到第二图像。应当说明的是,上述实施例中的一个或多个步骤可以根据实际需要而省略,各个步骤之间的执行顺序也可以调整,例如,渲染和风格转换的顺序可以调整。

在一些实施例中,所述第一神经网络包括第一子网络和第二子网络,第一子网络用于从所述第一图像中提取特征,第二子网络用于基于所述特征预测所述物体的类别信息。其中,所述第一子网络可以是卷积神经网络(Convolutional Neural Networks,CNN),所述第二子网络可以是CTC(Connectionist Temporal Classification)分类器、循环神经网络或者注意力模型等能够根据固定长度的特征得到不定长度的输出结果的模型,从而在真实堆叠物中物体的数量不固定的应用场景下准确地输出分类结果。

为了提高训练出的第一神经网络的准确度,可以基于真实堆叠物的图像与虚拟堆叠物的图像共同对第一神经网络进行训练。通过这种方式,修正了由于虚拟堆叠物的图像与真实堆叠物的图像之间的差异导致的误差,提高了训练出的第一神经网络的准确性。如图4A所示,可以基于所述第二图像对所述第一子网络和所述第二子网络进行第一训练,并基于第四图像,对经过第一训练的所述第二子网络进行第二训练,其中,所述第四图像包括真实物体堆叠形成的真实堆叠物。在第二训练过程中,可保持第一子网络的网络参数值固定不变,只对第二子网络的网络参数值进行调整。

或者如图4B所示,可以基于所述第二图像对所述第一子网络和第三子网络进行第一训练;所述第一子网络和第三子网络用于构成第三神经网络,所述第三神经网络用于对所述第二图像中的物体进行分类;基于第四图像,对所述第二子网络和经过第一训练的所述第一子网络进行第二训练,其中,所述第四图像包括真实物体堆叠形成的真实堆叠物。

在一些实施例中,第二子网络与第三子网络的类型和结构可以相同也可以不同。例如,第二子网络为CTC分类器,第三子网络为循环神经网络;或者第二子网络和第三子网络均为CTC分类器。

在如图4B所示的训练方式中,由于将第一训练得到的第一子网络的网络参数值作为第二训练过程中第一子网络的初始参数值,可能导致第二训练过程中第一子网络和第二子网络的训练不同步。为了解决上述问题,在第二训练过程中,可以先保持第一子网络的网络参数值固定不变,只对第二子网络进行训练,在第二子网络的训练满足预设条件的情况下,再对所述第一子网络和所述第二子网络进行联合训练。上述预设条件可以是训练次数达到预设次数、第一神经网络的输出误差小于预设误差,或者也可以是其他条件。

上述实施例采用了参数迁移的方式对第一神经网络进行训练,即,基于虚拟堆叠物的图像对第一神经网络进行预训练(第一训练),再将预训练得到的网络参数值作为初始参数值,采用第四图像对第一神经网络进行二次训练(第二训练)。通过这种方式,修正了由于虚拟堆叠物的图像与真实堆叠物的图像之间的差异导致的误差,提高了训练出的第一神经网络的准确性。

由于第一神经网络先通过虚拟堆叠物的图像进行了预训练,因此,在二次训练时只需采用少量真实堆叠物的图像来对第一神经网络进行参数值微调,由此进一步优化第一神经网络的参数值。相比于直接采用真实物体的图像来训练第一神经网络的方式,本公开实施例一方面能够显著减少训练过程中所需的真实物体的图像的数量,另一方面能够提高训练出的第一神经网络的识别准确度。

上述物体可以包括片状物体,真实堆叠物和虚拟堆叠物的堆叠方向是片状物体的厚度方向。实际场景中,片状物体在其堆叠方向(厚度方向)上堆叠得比较紧密,通过图像分割的方法实现将堆叠的片状物体分割为单个片状物体的难度较大,因此采用经过训练的神经网络来处理堆叠物的图像时,可以提高识别精度和识别效率。然而由于片状物体堆叠形成的堆叠物的图像信息不易收集,通过本公开上述实施例的方法解决了这个问题。在本公开实施例中,可以获得大量的虚拟堆叠物的图像来训练神经网络,提升了对堆叠的片状物体的识别效率和准确性。

下面以一个具体场景为例,对本公开实施例的方案进行说明。在游戏场景中,每个玩家都有游戏币,游戏币可以是圆柱形的薄片。首先,使用海量游戏币的三维模型堆叠形成的虚拟堆叠物的二维图像,对第一神经网络进行第一阶段的训练。第一神经网络包括CNN和CTC两部分,CNN部分使用卷积神经网络提取图像的特征,CTC分类器将CNN输出的特征转变为不定长度的序列预测结果。然后,使用真实的物体堆叠形成的真实堆叠物的图像,对第一神经网络进行第二阶段的训练。在第二阶段训练第一神经网络的过程中,可以保持第一阶段训练后的CNN的参数值不变,仅对第一阶段训练后的CTC的参数值进行调整,经过第二训练的第一神经网络可用于进行游戏币识别。

在一些场景下,用于生成三维模型的物体与第一图像中的物体可能具有不同类别,从而二者具有不同的大小、形状、颜色和/或纹理等。例如,第一图像中的物体是面值为一美元的硬币,而用于生成三维模型的物体是面值为五美分的硬币。在这种情况下,第一神经网络输出的第一图像中的物体的类别信息是不正确的,因此在本公开实施例中,图像识别方法还可以包括:基于第一神经网络输出的第一图像中物体的类别信息,确定第一神经网络的性能;响应于确定第一神经网络的性能不满足预设的条件,可以采用数量较少的第五图像对已训练好的第一神经网络的网络参数值进行修正,所述第五图像包括由面值为一美元的硬币堆叠形成的真实堆叠物,再基于修正的第一神经网络对第一图像中的真实物体进行识别。在本申请实施例中,第一神经网络的性能可以基于第一神经网络对物体类别信息的预测误差来评估,预设的条件可以是第一神经网络的预测误差阈值,当第一神经网络对物体类别信息的预测误差大于该预测误差阈值时,确定第一神经网络的性能不满足预设的条件。当确定第一神经网络的性能不满足预设的条件时,可以将预测类别错误的第一图像作为第五图像来对第一神经网络进行微调。通过上述方式,实现了跨数据迁移训练方法,解决了融合不同数据集训练时产生的数据差别问题,进一步提高了第一神经网络的识别准确性。

本公开实施例提供的图像识别方法,减少了样本数据收集过程中的人工参与,大幅提升了样本数据生成的效率。现有的样本数据采集与标注过程中存在着很多问题:

(1)训练第一神经网络需要大量的样本数据,而在真实场景下采集样本数据的速度较慢,工作量较大;

(2)采集到的样本数据需要经过人工标注标签,很多情况下样本数据的种类繁多且部分样本数据之间非常近似,人工标注速度慢且标注准确率不高;

(3)真实环境中灯光等外界因素变化较大,需要采集不同场景下的样本数据,进一步增大了数据采集的难度和工作量;

(4)出于数据隐私和数据安全的需要,一些样本对象难以在真实环境下采集。

(5)在堆叠物识别场景中,真实堆叠物的样本图像获取难度较高,且由于真实物体的厚度较薄、数量较多等原因,真实堆叠物的图像信息不易收集。

本公开实施例通过采用基于虚拟堆叠物生成的第二图像来代替真实物体的图像来训练第一神经网络,由于虚拟堆叠物的样本图像获取难度较低,因此,通过本公开实施例的方法,减少了需要的真实堆叠物的样本数量,从而降低了用于训练第一神经网络的样本图像的获取难度,从而降低了第一神经网络的训练成本。不同的三维模型可基于真实物体的模型生成,生成的三维模型无需进行人工标注,进一步提高了第一神经网络的训练效率,同时提高了样本数据的准确性。通过渲染、风格转换等方式,能够尽量模拟真实环境中的光照等条件,只需要在真实场景下采集少量的样本数据,降低了样本数据采集的难度。

如图5所示,本公开实施例还提供一种图像生成方法,所述方法可包括步骤501-504。

步骤501:获取一个或多个物体的三维模型和类别信息,所述一个或多个物体的三维模型基于所述一个或多个物体的二维图像生成;

步骤502:对多个所述三维模型进行堆叠,得到虚拟堆叠物;

步骤503:将所述虚拟堆叠物转换为所述虚拟堆叠物的二维图像;

步骤504:基于所述虚拟堆叠物中多个虚拟物体的类别信息,生成所述虚拟堆叠物的二维图像的类别信息。

在一些实施例中,所述方法还包括:对所述一个或多个物体中的至少一个物体的三维模型进行复制;对复制得到的三维模型进行平移和/或旋转,得到多个所述三维模型。

在一些实施例中,所述一个或多个物体属于多个类别,对所述一个或多个物体中至少一个物体的三维模型进行复制,包括:对所述多个类别中每个类别,确定所述一个或多个物体中属于该类别的至少一个目标物体,对所述至少一个目标物体中的单个物体的三维模型进行复制。

在一些实施例中,所述方法还包括:获取所述至少一个目标物体中单个物体的多张二维图像;基于所述至少一个目标物体中单个物体的多张二维图像进行三维重建,得到所述至少一个物体中单个物体的三维模型。

在一些实施例中,所述方法还包括:在获取所述虚拟堆叠物之后,对所述虚拟堆叠物的三维模型进行渲染处理,得到渲染结果;对所述渲染结果进行风格迁移,生成所述虚拟堆叠物的二维图像。

在一些实施例中,所述一个或多个物体包括一个或多个片状物体;对多个三维模型进行堆叠,包括:沿所述一个或多个片状物体的厚度方向,对所述多个三维模型进行堆叠。

本方法实施例的具体细节可参见前述图像识别方法的实施例,此处不再赘述。

如图6所示,本公开还提供一种神经网络的训练方法,所述方法包括:

步骤601:获取样本图像;

步骤602:基于所述样本图像对第一神经网络进行训练,所述第一神经网络用于识别真实堆叠物中各个真实物体的类别信息。

其中,步骤601中获取的样本图像可基于本公开任一实施例所述的图像生成方法生成。换言之,可以获取本公开任一实施例所述的图像生成方法生成的图像作为样本图像。

在一些实施例中,所述样本图像中还包括标注信息,用于表示样本图像中的虚拟堆叠物中三维模型的类别信息。其中,一个三维模型的类别信息与生成该三维模型的真实物体的类别相同,如果通过对一三维模型进行复制、旋转、平移中的至少任一操作得到多个三维模型,这多个三维模型的类别与该三维模型的类别相同。

本方法实施例的具体细节可参见前述图像识别方法的实施例,此处不再赘述。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

如图7所示,本公开实施例还提供一种图像识别装置,所述装置包括:

第一获取模块701,用于获取第一图像,所述第一图像中包括一个或多个第一真实物体堆叠形成的真实堆叠物;

输入模块702,用于将所述第一图像输入预先训练的第一神经网络,获取所述第一神经网络输出的所述一个或多个第一真实物体中各个第一真实物体的类别信息;

其中,所述第一神经网络基于第二图像训练得到,所述第二图像基于虚拟堆叠物生成,所述虚拟堆叠物由至少一个第二真实物体的三维模型堆叠形成。

在一些实施例中,所述装置还包括:第四获取模块,用于获取所述至少一个第二真实物体的多个三维模型;堆叠模块,用于对所述多个三维模型进行空间堆叠,得到所述虚拟堆叠物。

在一些实施例中,所述第四获取模块包括:复制单元,用于对所述至少一个第二真实物体中的一个或多个第二真实物体的三维模型进行复制;平移旋转单元,用于对复制得到的三维模型进行平移和/或旋转,得到所述至少一个第二真实物体的多个三维模型。

在一些实施例中,所述至少一个第二真实物体属于多个类别;所述复制单元用于:对所述多个类别中每个类别,确定所述至少一个第二真实物体中属于该类别的至少一个目标真实物体;对所述至少一个目标真实物体中的单个真实物体的三维模型进行复制。

在一些实施例中,所述装置还包括:第五获取模块,用于获取所述至少一个目标真实物体中单个真实物体的多张二维图像;第一三维重建模块,用于基于所述多张二维图像进行三维重建,得到所述至少一个目标真实物体中单个真实物体的三维模型。

在一些实施例中,所述装置还包括:第一渲染模块,用于在获取所述虚拟堆叠物之后,对所述虚拟堆叠物进行渲染处理,得到渲染结果;第一风格迁移模块,用于对所述渲染结果进行风格迁移,生成所述第二图像。

在一些实施例中,所述第一风格迁移模块用于:将所述渲染结果和第三图像输入第二神经网络,得到与所述第三图像风格相同的所述第二图像,其中,所述第三图像包括由所述至少一个第二真实物体堆叠形成的真实堆叠物。

在一些实施例中,所述第一神经网络包括:第一子网络,用于从所述第一图像中提取特征;以及第二子网络,用于基于所述特征预测所述至少一个第二真实物体中各个第二真实物体的类别信息。

在一些实施例中,所述第一神经网络采用如下模块训练得到:第一训练模块,用于基于所述第二图像对所述第一子网络和所述第二子网络进行第一训练;第二训练模块,用于基于第四图像,对经过第一训练的所述第二子网络进行第二训练,其中,所述第四图像包括所述至少一个第二真实物体堆叠形成的真实堆叠物;或者,所述第一神经网络采用如下模块训练得到:第一训练模块,用于基于所述第二图像对所述第一子网络和第三子网络进行第一训练;所述第一子网络和第三子网络用于构成第三神经网络,所述第三神经网络用于对所述第二图像中的物体进行分类;第二训练模块,用于基于第四图像,对所述第二子网络和经过第一训练的所述第一子网络进行第二训练,其中,所述第四图像包括所述至少一个第二真实物体堆叠形成的真实堆叠物。

在一些实施例中,所述装置还包括修正模块,用于基于所述第一神经网络输出的所述一个或多个第一真实物体中各个第一真实物体的类别信息,确定所述第一神经网络的性能;响应于确定所述第一神经网络的性能不满足预设的条件,基于第五图像,对所述第一神经网络的网络参数值进行修正,其中,所述第五图像包括所述一个或多个第一真实物体堆叠形成的真实堆叠物。

在一些实施例中,所述一个或多个第一真实物体包括一个或多个第一片状物体,所述至少一个第二真实物体包括至少一个第二片状物体,所述真实堆叠物的堆叠方向是所述一个或多个第一片状物体的厚度方向,所述虚拟堆叠物的堆叠方向是所述至少一个第二片状物体的厚度方向。

如图8所示,本公开实施例还提供一种图像生成装置,所述装置包括:

第二获取模块801,用于获取一个或多个物体的三维模型和类别信息,所述一个或多个物体的三维模型基于所述一个或多个物体的二维图像生成;

第一堆叠模块802,用于对多个三维模型进行堆叠,得到虚拟堆叠物;

转换模块803,用于将所述虚拟堆叠物转换为所述虚拟堆叠物的二维图像;

生成模块804,用于基于所述虚拟堆叠物中多个虚拟物体的类别信息,生成所述虚拟堆叠物的二维图像的类别信息。

在一些实施例中,所述装置还包括:复制模块,用于对所述一个或多个物体中至少一个物体的三维模型进行复制;平移旋转模块,用于对复制得到的三维模型进行平移和/或旋转,得到所述多个三维模型。

在一些实施例中,所述一个或多个物体属于多个类别,所述复制模块用于:对所述多个类别中每个类别,确定所述一个或多个物体中属于该类别的至少一个目标物体,对所述至少一个目标物体中的单个物体的三维模型进行复制。

在一些实施例中,所述装置还包括:第六获取模块,用于获取所述至少一个目标物体中单个物体的多张二维图像;第二三维重建模块,用于基于所述多张二维图像进行三维重建,得到所述至少一个目标物体中该单个物体的三维模型。

在一些实施例中,所述装置还包括:第二渲染模块,用于在获取所述虚拟堆叠物之后,对所述虚拟堆叠物的三维模型进行渲染处理,得到渲染结果;第二风格迁移模块,用于对所述渲染结果进行风格迁移,生成所述虚拟堆叠物的二维图像。

在一些实施例中,所述一个或多个物体包括一个或多个片状物体;所述第一堆叠模块用于:沿所述一个或多个片状物体的厚度方向,对所述多个三维模型进行堆叠。

如图9所示,本公开实施例还提供一种神经网络的训练装置,所述装置包括:

第三获取模块901,用于获取由本公开任一实施例所述的图像生成装置生成的图像作为样本图像;

训练模块902,用于基于所述样本图像对第一神经网络进行训练,所述第一神经网络用于识别真实堆叠物中各个真实物体的类别信息。

在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。

本公开实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述计算机程序时实现前述任一实施例所述的方法。

图10示出了本公开实施例所提供的一种计算机设备硬件结构示意图,该设备可以包括:处理器1001、存储器1002、输入/输出接口1003、通信接口1004和总线1005。其中处理器1001、存储器1002、输入/输出接口1003和通信接口1004通过总线1005实现彼此之间在设备内部的通信连接。

处理器1001可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1002可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1002可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1002中,并由处理器1001来调用以执行前述任一实施例所述的方法。

输入/输出接口1003用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图10中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1004用于连接通信模块(图10中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如通用串行总线(USB)、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1005包括一通路,在设备的各个组件(例如处理器1001、存储器1002、输入/输出接口1003和通信接口1004)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1001、存储器1002、输入/输出接口1003、通信接口1004以及总线1005,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图10中所示的全部组件。

本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一实施例所述的方法。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体。可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(例如个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本说明书实施例的方案。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号