CN117769724A - 使用深度学习的对象检测和分类的合成数据集创建 - Google Patents

使用深度学习的对象检测和分类的合成数据集创建 Download PDF

Info

Publication number
CN117769724A
CN117769724A CN202180101317.2A CN202180101317A CN117769724A CN 117769724 A CN117769724 A CN 117769724A CN 202180101317 A CN202180101317 A CN 202180101317A CN 117769724 A CN117769724 A CN 117769724A
Authority
CN
China
Prior art keywords
images
rendered
interest
image
parameters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180101317.2A
Other languages
English (en)
Inventor
欧根·索洛乔
伊内斯·乌加尔德·迪亚斯
亚什·沙普尔卡尔
胡安·L·阿帕里西奥·奥赫亚
海科·克劳森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Publication of CN117769724A publication Critical patent/CN117769724A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/776Validation; Performance evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/70Labelling scene content, e.g. deriving syntactic or semantic representations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computational Linguistics (AREA)
  • Image Analysis (AREA)

Abstract

一种用于构建对象检测模块的计算机实现的方法使用属于指定的关注的对象类的对象的网格表示来通过基于物理的模拟器渲染图像。每个渲染图像捕获包含放置在箱中或桌子上的属于多个关注的对象类的对象的模拟环境。渲染图像是通过由模拟器对一组参数进行随机化来生成的,以渲染一系列模拟环境。随机化参数包括环境和基于传感器的参数。为每个渲染图像生成标签,该标签包括指示该渲染图像帧中对象的位置和对象类的二维表示。每个渲染图像和相应的标签构成合成训练数据集的数据样本。使用合成训练数据集训练深度学习模型,以从现实世界物理环境的输入图像输出对象类。

Description

使用深度学习的对象检测和分类的合成数据集创建
技术领域
本公开总体涉及基于人工智能的对象检测领域,并且具体地,涉及一种用于创建合成数据集以帮助机器人操纵任务的技术,该合成数据集用于训练用于从输入的现实世界图像进行对象检测和分类的深度学习模型。
背景技术
人工智能(AI)和机器人是工厂设置内外自动化任务的强大组合。在机器人领域中,已经借助于AI技术设想和实现了许多自动化任务。例如,存在用于视觉映射和导航、对象检测、抓取、装配等的最先进的解决方案,通常采用如深度神经网络或强化学习技术的机器学习。
随着机器人任务复杂性的增加,可能需要支持AI的解决方案的组合。在许多机器人操纵任务中,对被操纵对象的语义识别是必要的。在这种情况下,对象检测神经网络通常与运动规划算法结合使用。
机器人操纵任务的代表性示例是箱拾取。箱拾取由配备有传感器和相机的机器人组成,使用机器人末端执行器从箱中拾取具有随机姿态的对象。对象可以是已知的或未知的,可以是相同类型的或混合的。典型的箱拾取应用程序包括用于从堆中收集所述对象的选择的请求组。在每个请求处,箱拾取算法必须计算并决定机器人接下来执行哪个抓取。该算法可以采用对象检测神经网络结合使用各种感测输入的抓取计算神经网络。如果抓取任务不仅包括清理箱,还包括从列表中拾取特定对象,则需要对象检测神经网络。在一些示例中,对象检测器可以输入RGB(红-绿-蓝)图像帧,并检测该帧中关注的对象。
用于为对象检测神经网络生成训练数据集的现有技术使用预训练的神经网络,其中第一层不改变,并且只有最后一层在新对象上被重新训练。这被称为迁移学习,它可以将每个对象类所需的图像数量从数万个降低到大约几百个。尽管取得了这一进展,但为每个对象类收集几百个图像仍然需要几个小时。
发明内容
简而言之,本公开的方面提供了一种用于创建合成数据集的技术,该合成数据集用于训练用于从输入的现实世界图像进行对象检测和分类的深度学习模型。
本公开的第一方面提供了一种用于构建对象检测模块的计算机实现的方法。该方法包括获得属于指定的关注的对象类的对象的网格表示。该方法还包括通过基于物理的模拟器使用对象的网格表示来渲染多个图像。每个渲染图像捕获包含放置在箱中或桌子上的属于多个所述关注的对象类的对象的模拟环境。多个渲染图像是通过由模拟器对一组参数进行随机化来生成的,以渲染一系列模拟环境,该组参数包括环境和基于传感器的参数。该方法还包括为每个渲染图像生成标签,该标签包括指示在相应的渲染图像帧中的对象的位置和对象类的二维表示。每个渲染图像和相应的标签构成合成训练数据集的数据样本。该方法还包括使用合成训练数据集来训练深度学习模型,以从现实世界物理环境的输入图像输出对象类。
本公开的其他方面在计算机程序产品和计算系统中实现了上述方法的特征。
通过本公开的技术可以实现附加的技术特征和优点。本文详细描述了本公开的实施方式和方面,并将其视为所要求保护的主题的一部分。为了更好地理解,参考详细描述和附图。
附图说明
当结合附图阅读时,从下面的详细描述可以最好地理解本公开的前述和其他方面。为了容易地识别对任何元素或动作的讨论,附图标记中的最高有效位数字指的是该元素或动作首次引入的附图。
图1示出了用于执行机器人操纵任务的自主系统的示例,其中可以实现本公开的方面。
图2是示出根据本公开的示例性实施方式的用于构建基于AI的对象检测模块的流水线的示意框图。
图3示出了由模拟器生成的渲染图像的示例。
图4是示出根据示例实施方式的计算环境的示意框图。
具体实施方式
现在将参考附图描述与系统和方法有关的各种技术,在附图中,相同的附图标记始终表示相同的元件。以下讨论的附图以及用于描述本专利文献中本公开的原理的各种实施方式仅作为说明,并且不应以任何方式解释为限制本公开的范围。本领域技术人员将理解,本公开的原理可以在任何合适布置的装置实施。应当理解,描述为由某些系统元件执行的功能可以由多个元件执行。类似地,例如,元件可以被配置为执行被描述为由多个元件执行的功能。将参考示例性非限制性实施方式来描述本申请的许多创新教导。
本公开的方面提供了用于创建用于训练用于对象检测的深度学习模型的数据集的合成流水线,最小化或者甚至消除了捕获和手动标记现实世界对象的图像进行训练的需要。如本文所使用的术语“对象检测”包括对象识别和分类(例如,输出围绕输入图像中关注的对象的边界框和标签)以及语义图像分割(即,输出输入图像的逐像素掩模)的方面。
由于物理模拟器和现实世界之间的差异,产生与创建合成训练数据集相关联的挑战之一。一种已知的方法是系统识别,这是为物理系统建立数学模型的过程。这里,数学模型是物理模拟器。为了使模拟器更加真实,需要仔细的校准,这是耗时并且往往容易出错的。此外,低保真度图像渲染器通常无法再现用于测试的现实世界相机产生的质量和噪声。这些差异统称为“现实性差距(reality gap)”。
这里公开的方法利用域随机化技术来解决现实性差距。在域随机化中,不是在模拟器渲染的单个模拟环境上训练深度学习模型,而是将模拟器随机化,以创建具有随机化参数的各种模拟环境,并训练跨所有环境工作的模型。在模拟中有足够的可变性,模型可以适应现实世界环境,这是期望在一个样本中训练变化的丰富分布。
已经研究了用于姿态估计的域随机化,如文献中所公开的:X.Ren,Jianlan Luo、Eugen Solowjow、Juan Aparicio Ojea、Abhishek Gupta、Aviv Tamar、Pieter Abbeel,“用于主动姿态估计的域随机化(Domain Randomization for Active Pose Estimation)”,2019年机器人与自动化国际会议(ICRA),2019年3月10日。
所公开的方法提供了对域随机化的一般技术的创造性适应,以创建用于对象检测/图像分割神经网络的合成数据集。作为另一个方面,公开了一种主动学习方法,其涉及在训练神经网络后基于神经网络的现实世界性能重新渲染和重新标记合成图像。
现在参考图1,示出了本公开的方面可以得到应用的示例性自主系统100。例如,可以在工厂设置中实现自主系统100。与传统自动化相反,自主性赋予工厂车间的每项资源决策和自我控制能力,以便在发生局部问题时独立行动。自主系统100包括一个或多个可控设备(例如机器人102)。一个或多个设备(例如机器人102)可由控制系统104控制,以在物理环境106内执行一个或多个工业任务。工业任务的示例包括装配、运输等。如本文所使用的,物理环境可以指任何未知的或动态的工业环境。物理环境106定义了由机器人102执行任务的环境,并且可以包括例如机器人102本身、单元的设计或布局、由机器人处理的工件或工具(例如,夹具、抓握器等)等。
控制系统104可以包括工业PC或任何其他计算设备,例如台式机或膝上型电脑、或嵌入式系统等。控制系统104可以包括一个或多个处理器,其被配置为处理信息和/或控制与机器人102相关联的各种操作。具体地,一个或多个处理器可以被配置为执行用于操作机器人102的应用程序,例如工程工具。
为了实现系统100的自主性,在一个实施方式中,应用程序可以被设计成在基于技能的编程环境中操作机器人102来执行任务。与传统自动化相反,在传统自动化中,工程师通常从头到尾参与对整个任务进行编程,通常利用低级代码来生成单独的命令,在如本文所描述的自主系统中,使用技能而不是单独的命令以更高的抽象级别对物理设备(如机器人102)进行编程。技能是为以编程的物理设备如何修改物理环境为中心的更高级别的抽象行为导出的。技能的说明性示例包括抓取或拾取对象的技能、放置对象的技能、开门的技能、检测对象的技能等等。
应用程序可以生成控制器代码,该控制器代码例如使用如上所述的技能功能在高级别上定义任务,其可以被部署到机器人控制器108。从高级别控制器代码,机器人控制器108可以为一个或多个马达生成低级别控制信号,以控制机器人102的运动,例如机器人手臂的角度位置、机器人基座的旋转角度等,以执行指定的任务。在其他实施方式中,由应用程序生成的控制器代码可以被部署到中间控制设备(例如可编程逻辑控制器(PLC)),该中间控制设备随后可以为要控制的机器人102生成低级别控制命令。此外,应用程序可以被配置为直接集成来自机器人102在其中操作的物理环境106的传感器数据。为此,控制系统104可以包括网络接口,以促进在应用程序和物理环境106之间传递实时数据。
仍然参考图1,机器人102可以包括机器人臂或操纵器110和被配置为支撑机器人操纵器110的基座112。基座112可以包括轮114,或者可以以其他方式被配置为在物理环境106内移动。机器人102可以还包括附接到机器人操纵器110的末端执行器116。末端执行器116可以包括一个或多个被配置为抓取和/或移动对象118的工具。在所示的场景中,对象118被放置在接收器或“箱”中。示例末端执行器116包括指抓握器或基于真空的抓握器。机器人操纵器110可以被配置为移动,以便改变末端执行器116的位置,例如,以便在物理环境106内放置或移动对象118。自主系统100可以还包括一个或多个相机或传感器(通常是多个传感器),其中一个被描绘为安装到机器人操纵器110的传感器122。传感器,例如传感器122,被配置为捕获物理环境106的图像,以使自主系统能够感知和导航场景。
机器人操纵任务的代表性示例是箱拾取。尽管已经关于箱拾取描述了所公开方法的示例应用,但是所公开的方法可以在各种操纵任务中找到应用,例如配套,或者其他装配操作,其中需要对被操纵的对象进行语义识别。
箱拾取应用涉及以单一的方式从放置在箱中或桌子上的对象组中抓取对象。在所示的图示中,多个对象118被放置在箱120中。箱拾取任务涉及由机器人操纵器110使用末端执行器116单独抓取对象118。对象118可以以任意姿态布置在箱120内。对象118可以是分类类型的,如图1中所示。经由由一个或多个传感器捕获的图像来感知包括放置在箱120中的对象118的物理环境。传感器可以包括一个或多个单模态或多模态传感器,例如,RGB传感器、深度传感器、红外相机、点云传感器等,其可以被战略性地定位以共同获得箱120的全视图。
来自传感器的输出可以被馈送到部署在控制系统104上的一个或多个对象检测算法和一个或多个抓取计算算法。一个或多个抓取计算算法确定要由机器人102执行的最佳抓取(由选择的抓取位置定义)。然而,当箱120包含分类的对象类型时,箱拾取目标可能需要选择性地拾取指定类型的对象118(例如,仅拾取“杯子”)。在这种情况下,除了确定最佳抓取之外,还需要对场景中的对象118执行语义识别。出于这个原因,分类或未知对象的箱拾取涉及组合对象检测算法和抓取计算算法,对象检测算法用于在分类堆中定位关注的对象,抓取计算算法用于在给定场景的3D地图的情况下计算抓取。对象检测和抓取计算算法通常包括深度学习模型,例如神经网络。
抓取计算神经网络可以在任意对象的合成数据上进行完全训练,之后它们能够概括和计算任何对象上的抓取点。对于抓取计算,不需要对象类的语义识别,因为抓取仅取决于对象的局部几何形状。另一方面,用于对象检测的神经网络,特别是语义图像分割,需要在关注的特定对象类的图像上进行训练,因为每个检测到的对象都有语义意义。例如,模型需要了解剪刀的样子,以便以后检测剪刀。
为了训练用于对象检测/语义图像分割的神经网络,每个关注的对象类都需要图像。在这些图像中,对象可能需要手动注释和标记边界框和/或轮廓,并在不同的环境条件下以不同的姿态显示,这是耗时的过程,并且不容易扩展。
图2是示出根据本公开的一个实施方式的用于构建基于AI的对象检测模块的流水线的功能块的示意框图,其解决了一些上述技术挑战。例如,可以由图1中所示的控制系统104执行功能块,或者由另一计算系统(例如,在云计算环境中)执行,该计算系统包括至少一个处理器和存储指令的存储器,当由至少一个处理器执行该指令时,使得计算系统执行所描述的方法。参考图4描述了可以在其中实现本公开的方面的计算系统的示例。图2中所示的实施方式是示例性实现方式。应当理解,所提出的方法的一般应用不一定涉及图2中所示的每个和每一个元件。
如本文所使用的术语“模块”是指包含一个或多个例程的计算机程序的软件部件或部分,这些例程是独立的和可互换的,并且被配置为执行期望功能的一个方面。在所描述的实施方式中,对象检测模块包括深度学习模型,例如神经网络。在实施方式中,计算机程序(所描述的模块是其一部分)包括用于由诸如机器人的可控设备自主执行技能功能(即,拾取或抓取对象)的代码。
参考图2,所描述的流水线使用能够在模拟环境中渲染图像的基于物理的模拟器202。模拟器202渲染多个图像204,其中每个渲染图像204捕获包含属于放置在接收结构(例如桌子或箱)上的多个关注的对象类的对象的模拟环境。适用于这一应用的基于物理的模拟器的示例包括物理引擎,例如BulletTM、MujocoTM等,它们可能具有内置的渲染器。由模拟器202通过将不同类的对象的3D网格表示(例如,CAD模型)随机放置在模拟桌面上或模拟箱中来渲染图像204。关注的对象可以包括简单的几何对象或不规则对象,例如工业部件。由于模拟器202可以访问基本事实,所以它可以为渲染图像204生成相应的标签206。如下文所述,每个渲染图像204的标签206包括指示相应渲染图像帧中对象的位置和对象类的二维表示。每个渲染图像204和相应的标签206构成合成训练数据集208的数据样本。
关注的对象的3D网格表示可以例如从包括关注的对象的可用CAD模型的CAD库获得。然而,当关注的对象的网格表示不可用时,例如,当工业部件的CAD模型构成不共享或不容易访问的专有信息时,可能会遇到这种情况。在这种情况下,可以由网格生成器流水线210生成多个对象类之一的网格表示。
在第一示例实施方式中,网格生成器210可以使用具有传感器(例如RGB-D传感器)的机器人来自动扫描关注的现实世界对象。可以将由传感器捕获的每个帧转换为点云。然后,可以将来自多个帧的点云融合到体素网格中,以导出对象表面的参数化。参数化可以包括隐式函数,例如符号距离函数(SDF),其被定义为使得它为边界(对象表面)内的点分配正距离值,为边界外的点分配负距离值(或者反之亦然,符号被反转)。参数化可以定义等值曲面(例如,在SDF的情况下为零等值曲面),其可以例如使用Marching Cubes算法等适当地转换为三角形或多边形网格。
在第二示例实施方式中,网格生成器210可以从网格数据库下载属于关注的对象类的对象的网格表示,该网格数据库可以在线获得,例如Thingiverse等。基于对下载的网格表示和现实世界对象之间的相似性度量的评估,可以使用下载的网格表示来表示关注的现实世界对象。相似性度量可以基于一个或多个表面属性,例如凸包、表面法线等。在一个实现方式中,相似性度量可以基于两个对象的网格表示上的局部曲率分布之间的欧几里德距离(L2范数),其示例在文献中详细说明:Heung-yeung Shum,Martial Hebert,KatsushiIkeuchi,“On 3D Shape Similarity”,1995年11月,CMU-CS-95-212。当下载的网格表示和现实世界对象的相似性度量在定义的阈值内不同时,可以确定下载的网格表示的可用性。对于每个对象类,网格生成器210可以从一个或多个网格数据库下载多个网格表示,并选择一个提供与相同对象类的现实世界对象最接近的相似性度量的网格表示。
模拟器202通过对一组参数进行随机化来生成渲染图像204,以渲染宽范围的模拟环境。在环境参数(例如对象的数量、纹理和照明)以及基于传感器的参数(包括模拟相机的设置)的高度变化的情况下生成渲染图像204。渲染图像204不必与现实世界相匹配,使得低质量的快速渲染可以用于生成训练图像。利用关注的对象类的精确3D模型,存在可以从训练数据集208中的所有渲染图像204中提取的特征组,这些特征足以预测现实世界图像中的对象类标签。
为了创建用于训练用于对象检测/图像分割的深度学习模型的数据集208,模拟器202可以改变以下参数以渲染图像204:
-场景中存在的对象的数量和对象类;
-桌子上或箱中的对象的位置和纹理;
-包括桌子或箱的背景的纹理;
-相机设置,例如,包括模拟相机的位置、取向和视场;
-场景的照明条件;以及
-可选地,添加到图像的噪声的类型和量
每个渲染图像可以包括RGB帧。在实施方式中,通过为每个关注的对象和背景元素选择:随机RGB值、或随机选择的RGB值之间的梯度、或涉及多个随机RGB值的图案,可以为关注的对象类和背景元素(例如,桌子或箱、墙壁等)选择随机纹理。渲染不需要照片逼真,避免了高质量渲染或纹理和照明的逼真选择的需要。由于模拟数据中足够的可变性,现实世界对模型来说只是另一种变化。
在训练中随机化用于渲染图像的相机设置避免了在现实世界中校准和精确放置相机的需要。在一个实施方式中,模拟相机可以放置在与现实世界相机的位置、取向和视场近似匹配的模拟场景处。为了渲染图像样本204:模拟相机可以随机定位在初始位置周围的定义区域内;相机取向可以相对于初始取向在两个方向上的限定角度内变化;并且视场可以从初始视场放大到定义的程度。在其他实施方式中,模拟相机的相机设置可以在更宽的设置范围内随机化,而没有对应于现实世界相机的初始设置。在一个合适的实现方式中,模拟相机的一个或多个设置(位置、取向、视场)可以通过一系列已知的变换针对每个场景而变化,以帮助确定用于记录用于对象检测的现实世界图像的最佳相机姿态。
在一些实施方式中,作为基于RGB的对象检测的替代,RGB-D传感器数据可以用于该任务。这里,渲染图像204还包括深度帧。来自可用的低保真度RGB-D传感器的数据通常有噪声,并且包含环境和基于传感器的失真,例如边缘周围的缺失数据、反射产生的伪像等。这些失真可以由现实世界RGB-D传感器的噪声模型捕获。在实施方式中,随机化的该组参数可以额外包括从一个或多个RGB-D传感器的噪声模型获得的环境和基于传感器的失真。
渲染图像204的元数据包括放置在模拟环境中以渲染每个图像样本的3D网格表示的对象类。这种元数据可以用于为每个渲染图像204生成标签206。与姿态估计任务相反,其中每个图像的标签包括由现实世界参考系中的x、y、z坐标(通常是对象的质心)定义的单个对象的位置,根据所公开的方法,每个渲染图像204的标签206包括指示相应渲染图像帧中对象的位置和对象类的二维表示。
图3示出了由模拟器202生成的渲染图像204的示例。处于说明目的,附图描绘了的像素,为了清晰起见,这些像素被故意放大。此外,为了清晰起见,图像204被示出为线条画,没有示出任何纹理或照明特征。渲染的模拟环境包括放置在模拟箱318内的属于五个不同的关注的对象类的随机布置对象302、304、306、308、310、312、314和316。如图所示,对象302-316中的每一个与指示对象的类(或类型)的相应类标签(1至5)相关联。
根据第一公开的表示数据集的方法,为每个渲染图像生成标签包括相应渲染图像帧204的逐像素标记,其中,基于与关注的对象类或背景的关联来标记每个像素。在图3中所示的示例中,渲染图像帧204的每个像素被分配一个类标签,该类标签可以取决于其与关注的对象类或背景的关联,取0到5之间的任何整数值。背景320可以包括不属于关注的对象类的任何元素,包括箱318或任何其他干扰物对象(如果存在)。因此,与关注的对象302-316中的任何一个相关联的像素被分配相应对象的类标签(1-5),而所有其他像素被假定与背景320相关联,包括与箱318相关联的像素,并且被分配类标签0。因此,为渲染图像帧204生成的标签是类标签值的二维逐像素表示。
根据第二公开的表示数据集的方法,为每个渲染图像204生成标签包括确定定义相应的一组角点的像素,其中每组角点对应于渲染图像帧204中属于关注的对象类之一的对象周围的边界框。每组角点被分配一个类标签,指示相应有界对象的对象类。图3示出了对象306的一组角点,由黑色填充的像素描绘,其定义了对象306周围的边界框322。在所示的示例中,这些角点与类标签2相关联。可以基于包含场景的3D信息的渲染图像204的元数据来确定角点,该元数据可以被投影到2D图像帧(x-y平面)中,以确定沿着对象306的x和y轴的端点。包围x和y端点的集合像素表示一组角点,可以在其上拟合矩形以生成边界框322。以类似的方式,可以为渲染图像帧204中的每个关注的对象确定定义相应边界框的一组角点(像素),并为其分配类标签。根据这一方法,为每个渲染图像帧204生成的标签包括每组角点像素的位置的二维表示,以及被分配给每组角点像素的类标签。
再次参考图2,在随机化参数中具有足够可变性的情况下,渲染图像204和相应的标签206可以用于在监督学习机制中训练深度学习模型212,以学习基于关注的对象类的几何属性的预测,从诸如纹理、照明和背景元素的其他视觉线索中抽象出来。因此,深度学习模型212能够从渲染图像204中提取能够很好地传递到现实世界图像的特征。由此得到的经训练的深度学习模型214被配置为从现实世界物理环境的输入图像输出对象类。
在一个实施方式中,深度学习模型212可以包括骨架模型,而不使用预训练的权重。对于大量的合成训练数据,随机权重初始化在传递到现实世界时可以实现与预训练的权重初始化相当的性能。在其他实施方式中,具有预训练的权重的模型可以用作起点,这可能需要生成较少的训练数据。
深度学习模型212可以包括卷积神经网络。神经网络212的确切架构不是本公开的主题。举例来说,神经网络212可以包括基于区域的卷积神经网络(R-CNN)。R-CNN模型可以包括多个模块,包括区域建议、特征提取器和分类器模块。区域建议模块生成关于输入图像帧中可能存在关注的对象的区域的建议。特征提取器和分类器模块从每个候选区域提取特征,并将特征分类为已知对象类之一。在一些实施方式中,模型可以在候选区域中关注的对象的像素级生成掩模(图像分割)。
对于测试,可以部署经训练的深度学习模型214来对一组现实世界测试图像216运行推理。在本公开的另一方面中,可以基于经训练的模型214在现实世界图像216上的性能来调整训练数据集208,即,基于响应于每个输入测试图像216而生成的推理输出218的测量成功。为了测量成功,可以定义一个或多个成功标准,其可以包括推理218是否包含正确或不正确的标签预测和/或标签预测的置信度分数是否高于或低于定义的阈值。
推理输出218不满足第一定义的成功标准(例如,未能检测到对象或推理的置信度分数非常低)的测试图像216可以被识别为“失败”图像,这指示需要改进训练数据以提供更好的回归。被识别为“失败”图像的图像可以被反馈到模拟器202以渲染附加图像。可以通过围绕对应于“失败”图像的环境或基于传感器的设置随机化参数组来生成附加渲染图像。
例如,“失败”图像可以包括描绘箱中的多个对象的现实世界测试图像216,其中,对于一个(或多个)对象,经训练的深度学习模型214已经生成了具有不正确或具有低置信度分数的标签的边界框。经训练的深度学习模型214的输出218可以被反馈到模拟器202,以生成大量附加的渲染图像,这些图像具有与“失败”图像中的相关对象相同或相似的取向,但是具有其他环境参数(包括照明、纹理和周围对象)和/或基于传感器的参数(例如,相机位置、取向和视场)的随机化。可替代地或附加地,基于输出218,模拟器202可以生成大量附加的渲染图像,这些图像具有与“失败”图像中相同或相似的相机设置,但是具有随机化的基于环境的参数(例如,错误标记的对象的不同姿态)。
附加的渲染图像和对应的标签(例如,如上所述生成的)然后可以用于重新训练深度学习模型。因此,这种闭环方法可以调整训练数据分布,以确保数据集中不存在盲点。
在又一个方面中,可以从一组测试图像216中识别一个或多个“成功”图像,对于这些图像,生成的推理输出218满足第二定义的成功标准。第二成功标准可以与第一成功标准相同或不同。在一个实施方式中,与第一成功标准相比,第二成功标准可以指定更高的推理置信度分数阈值。从推理输出218获得的被识别为“成功”图像的图像及其相应的标签可以被直接反馈到训练数据集中,以重新训练深度学习模型。因此,模型推理引擎对测试图像216的自动注释(生成标签)可以用于在训练数据集208中添加标记的现实世界表示。
在又一方面中,可以利用所公开的域随机化方法来确定用于捕获用于对象检测的现实世界图像的最佳相机姿态。这里,在创建用于训练深度学习模型212的训练数据集208期间,对于每个模拟场景设置,除了随机化诸如纹理、照明条件等环境参数之外,模拟器202还通过一系列已知变换改变模拟相机的姿态或相机设置(即,位置、取向、视场之外的一个或多个参数)来渲染多个图像204。一系列变换可以定义沿着连续轨迹的一组离散相机姿态。例如,如上所述,可以为渲染图像204生成相应的标签206,用于训练深度学习模型212。随后,为了测试/验证经训练的深度学习模型214,通过为每个测试场景应用相同系列的已知的相机姿态的变换来生成测试图像216。例如,可以使用机器人手持的相机来执行测试阶段中的相机姿态的变换,该相机可以由机器人操纵器主动移动。在其他实施方式中,可以由模拟器202合成生成测试图像。作为变换的函数的模型推理输出的置信度分数的连续变化可以被识别为确定现实世界中的最佳相机姿态的指示符。例如,如果相机位置在朝向桌子1m的距离和30度的角度处导致推理输出比朝向桌子1.2m的距离和10度的角度成功20%,则可以利用这一信息对现实世界中的记录设置施加偏差。作为使用随机化图像进行训练的附加步骤,这涉及记录和统计分析包含关于姿态变换的信息的图像的元数据。在要检测的对象不具有最佳视点(例如,被隐藏)的情况下,和/或当对象在给定的相机视点处具有使其难以检测的对称性时,使用域随机化来确定最佳相机姿态是特别有益的。
图4示出了包括可以在其中实现本公开的方面的计算机系统402的示例性计算环境。如本文所描述的,在一个实施方式中,计算环境可以包括云计算环境,该云计算环境包括一个或多个计算系统。计算机和计算环境,例如计算机系统402和计算环境400,是本领域技术人员已知的,因此在此简要描述。
如图4中所示,计算机系统402可以包括通信机制,例如用于在计算机系统402内通信信息的系统总线404或其他通信机制。计算机系统402还包括与系统总线404耦接用于处理信息的一个或多个处理器406。处理器406可以包括一个或多个中央处理单元(CPU),图形处理单元(GPU)或本领域中已知的任何其他处理器。
计算机系统402还包括耦接到系统总线404的系统存储器408,用于存储信息和将由处理器406执行的指令。系统存储器408可以包括易失性和/或非易失性存储器形式的计算机可读存储介质,例如只读存储器(ROM)410和/或随机存取存储器(RAM)412。系统存储器RAM 412可以包括其他动态存储设备(例如,动态RAM、静态RAM、以及同步DRAM)。系统存储器ROM 410可以包括其他静态存储设备(例如,可编程ROM、可擦除PROM和电可擦除PROM)。此外,系统存储器408可以用于在处理器406执行指令期间存储临时变量或其他中间信息。可以在系统存储器ROM 410中存储基本输入/输出系统414(BIOS),该基本输入/输出系统包含诸如在启动期间帮助在计算机系统402内的元件之间传递信息的基本例行程序。系统存储器RAM 412可以包含数据和/或程序模块,这些数据和/或程序模块可以被处理器406立即访问和/或当前被其操作。系统存储器408可以附加地包括例如操作系统416、应用程序418、其他程序模块422和程序数据422。
计算机系统402可以包括耦接到系统总线404的盘控制器424,以控制用于存储信息和指令的一个或多个存储设备,诸如磁硬盘426和可移动媒体驱动器428(例如,软盘驱动器、光盘驱动器、磁带驱动器和/或固态驱动器)。可以使用适当的设备接口(例如,小型计算机系统接口(SCSI)、集成设备电子设备(IDE)、通用串行总线(USB)或FireWire)将存储设备添加到计算机系统402。
计算机系统402还可以包括耦接到系统总线404的显示控制器430,以控制显示器432(例如阴极射线管(CRT)或液晶显示器(LCD)等),用于向计算机用户显示信息。计算机系统402包括用户输入接口434和一个或多个输入设备,例如键盘436和/或指向设备438,用于与计算机用户交互并向一个或多个处理器406提供信息。例如,指向设备438可以是鼠标、光笔、轨迹球或指向棒,用于向一个或多个处理器406传送方向信息和命令选择,并用于控制显示器432上的光标移动。显示器432可以提供触摸屏接口,其允许输入来补充或替换由指向设备438进行的方向信息和命令选择的通信。
计算系统402还包括耦接到系统总线404的I/O适配器446,以将计算系统402连接到可控物理设备,例如机器人。在图4中所示的示例中,I/O适配器446连接到机器人控制器448,该机器人控制器包括例如一个或多个马达,用于控制物理设备或机器人的各种部分(例如,臂、基座等)的线性和/或角度位置。
计算机系统402可以响应于一个或多个处理器406执行包含在诸如系统存储器408的存储器中的一个或多个指令的一个或多个序列,执行本发明的实施方式的部分或全部处理步骤。这样的指令可以从另一计算机可读介质(例如磁性硬盘426或可移除介质驱动器428)读入系统存储器408。磁性硬盘426可以包含本公开的实施方式使用的一个或多个数据存储和数据文件。数据存储内容和数据文件可以被加密以提高安全性。处理器406还可以在多处理布置中使用,以执行系统存储器408中包含的一个或多个指令序列。在替代实施方式中,可以使用硬连线电路来代替软件指令或与软件指令结合使用。因此,实施方式不限于硬件电路和软件的任何特定组合。
计算机系统402可以包括至少一个计算机可读存储介质或存储器,用于保存根据本公开的实施方式编程的指令并且用于包含本文描述的数据结构、表、记录或其他数据。如本文所使用的术语“计算机可读存储介质”是指参与向一个或多个处理器406提供指令以供执行的任何介质。计算机可读存储介质可以采用许多形式,包括但不限于非暂时性、非易失性介质、易失性介质和传递介质。非易失性介质的非限制性示例包括光盘、固态驱动器、磁盘和磁光盘,例如磁性硬盘426或可移除介质驱动器428。易失性介质的非限制性示例包括动态存储器,例如作为系统存储器408。传递介质的非限制性示例包括同轴电缆、铜线和光纤、包括构成系统总线404的线。传递介质也可以采用声波或光波的形式,例如在无线电波和红外数据通信过程中产生的那些。
计算环境400还可以包括使用到诸如远程计算设备444的一个或多个远程计算机的逻辑连接在网络环境中操作的计算机系统402。远程计算设备444可以是个人计算机(笔记本电脑或台式机)、移动设备、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常包括上面相对于计算机系统402描述的许多或所有元件。当在联网环境中使用时,计算机系统402可以包括调制解调器442,用于通过诸如因特网之类的网络440建立通信。调制解调器442可以经由网络接口446或经由另一适当的机制连接至系统总线404。
网络440可以是本领域中通常已知的任何网络或系统,包括因特网、内联网、局域网(LAN)、广域网(WAN)、城域网(MAN)、直接连接或一系列连接,蜂窝电话网络或能够促进计算机系统402与其他计算机(例如,远程计算设备444)之间的通信的任何其他网络或介质。网络440可以是有线的,无线的或其组合。可以使用以太网、通用串行总线(USB)、RJ-6或本领域通常已知的任何其他有线连接来实现有线连接。可以使用Wi-Fi、WiMAX和蓝牙、红外、蜂窝网络、卫星或本领域通常已知的任何其他无线连接方法来实现无线连接。此外,几个网络可以单独工作或彼此通信以促进网络440中的通信。
可以用硬件和软件的任意组合来实现本公开的实施方式。此外,本公开的实施方式可以被包括在制造品(例如,一个或多个计算机程序产品)中,该制造品具有例如非暂时性计算机可读存储介质。计算机可读存储介质在其中体现了例如用于提供和促进本公开的实施方式的机制的计算机可读程序指令。可以包括制造品作为计算机系统的一部分,或者单独出售。
计算机可读存储介质可以包括有形设备,该有形设备可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。本文描述的计算机可读程序指令可以经由网络,例如互联网、局域网、广域网和/或无线网络,从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。
图中的系统和过程不是排他性的。可以根据本公开的原理导出其他系统、过程和菜单来实现相同的目标。尽管已经参考具体实施方式描述了本公开,但是应当理解,本文所示和描述的实施方式和变化仅用于说明目的。在不脱离本公开的范围的情况下,本领域技术人员可以实现对当前设计的修改。

Claims (14)

1.一种用于构建对象检测模块的计算机实现的方法,包括:
获得属于指定的关注的对象类的对象的网格表示,
通过基于物理的模拟器使用所述对象的所述网格表示来渲染多个图像,其中,每个渲染图像捕获包含放置在箱中或桌子上的属于多个所述关注的对象类的对象的模拟环境,其中,多个所述渲染图像是通过由所述模拟器对一组参数进行随机化以渲染一系列模拟环境来生成的,该组参数包括环境的和基于传感器的参数,
为每个所述渲染图像生成标签,所述标签包括指示在相应的渲染图像帧中的对象的位置和对象类的二维表示,其中,每个所述渲染图像和相应的标签构成合成训练数据集的数据样本,以及
使用所述合成训练数据集来训练深度学习模型,以从现实世界物理环境的输入图像输出对象类。
2.根据权利要求1所述的方法,其中,被随机化的该组参数包括:
场景中存在的对象的数量和对象类;
所述桌子上或所述箱中的对象的位置和纹理;
包括所述桌子或所述箱的背景的纹理;
模拟相机的设置;以及
场景的照明条件。
3.根据权利要求1和2中任一项所述的方法,其中,为每个所述渲染图像生成标签包括相应的渲染图像帧的逐像素标记,其中,基于与关注的对象类或背景的关联来标记每个像素。
4.根据权利要求1和2中任一项所述的方法,其中,为每个所述渲染图像生成标签包括:
确定定义相应的一组角点的像素,每组角点对应于所述渲染图像中属于所述关注的对象类之一的对象周围的边界框,以及
标记指示相应的有界对象的对象类的每组角点。
5.根据权利要求1至4中任一项所述的方法,还包括:
部署用于在一组现实世界测试图像上进行测试的经训练的深度学习模型,以为每个测试图像生成推理输出,以及
基于所生成的推理输出的成功来调整所述训练数据集。
6.根据权利要求5所述的方法,包括:
从该组测试图像中识别所生成的推理输出不满足定义的成功标准的“失败”图像,
将所述“失败”图像馈送到所述模拟器,以通过围绕对应于所述“失败”图像的环境或基于传感器的设置随机化该组参数来渲染附加图像,并且为每个附加渲染的图像生成相应的标签,
使用所渲染的附加图像和相应的标签重新训练所述深度学习模型。
7.根据权利要求5和6中任一项所述的方法,包括:
从该组测试图像中识别所生成的推理输出满足定义的成功标准的“成功”图像,
将来自所述推理输出的所述“成功”图像和相应的标签馈送到所述训练数据集,以重新训练所述深度学习模型。
8.根据权利要求1至7中任一项所述的方法,包括:
对于每个模拟场景,除了随机化环境参数之外,还由所述模拟器通过一系列已知的变换改变模拟相机的相机姿态来渲染多个图像,其中,所渲染的图像和相应的标签用于训练所述深度学习模型,
在通过为每个测试场景应用相机姿态的所述一系列已知的变换而生成的测试图像上测试经训练的深度学习模型,以及
基于识别根据所应用的变换与所述测试图像相关联的推理输出的置信度分数的连续变化,确定用于捕获现实世界图像进行对象检测的最佳相机姿态。
9.根据权利要求1至8中任一项所述的方法,其中,每个所述渲染图像包括RGB(红-绿-蓝)帧。
10.根据权利要求9所述的方法,其中,每个所述渲染图像还包括深度帧,其中,被随机化的该组参数包括从RGB-D传感器的噪声模型获得的环境的和基于传感器的失真。
11.根据权利要求1至10中任一项所述的方法,其中,所述网格表示通过以下方式获得:
由传感器扫描属于关注的对象类的现实世界对象,
将由所述传感器捕获的每个帧转换为点云,
将来自多个帧的所述点云融合到体素网格,以导出对象表面的参数化,并且
将参数化的对象表面转换为3D网格模型。
12.根据权利要求1至10中任一项所述的方法,其中,所述网格表示通过以下方式获得:
从网格数据库下载属于关注的对象类的对象的网格表示,并且基于对所下载的网格表示和关注的现实世界对象之间的相似性度量的评估,使用所下载的网格表示来表示所述关注的现实世界对象。
13.一种非暂时性计算机可读存储介质,包括指令,当由计算系统处理时,所述指令配置所述计算系统以执行根据权利要求1至12中任一项所述的方法。
14.一种计算系统,包括:
处理器;以及
存储器,存储指令,当由所述处理器执行时,所述指令使得所述计算系统执行根据权利要求1至12中任一项所述的方法。
CN202180101317.2A 2021-08-06 2021-08-06 使用深度学习的对象检测和分类的合成数据集创建 Pending CN117769724A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/044867 WO2023014369A1 (en) 2021-08-06 2021-08-06 Synthetic dataset creation for object detection and classification with deep learning

Publications (1)

Publication Number Publication Date
CN117769724A true CN117769724A (zh) 2024-03-26

Family

ID=77519862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180101317.2A Pending CN117769724A (zh) 2021-08-06 2021-08-06 使用深度学习的对象检测和分类的合成数据集创建

Country Status (4)

Country Link
US (1) US20240296662A1 (zh)
EP (1) EP4367644A1 (zh)
CN (1) CN117769724A (zh)
WO (1) WO2023014369A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024174136A1 (en) * 2023-02-22 2024-08-29 Siemens Aktiengesellschaft Method for improving prediction accuracy of ai model, electronic device and medium
CN117495938B (zh) * 2024-01-02 2024-04-16 山东力乐新材料研究院有限公司 一种基于图像处理的可折叠中空板生产数据提取方法

Also Published As

Publication number Publication date
WO2023014369A1 (en) 2023-02-09
US20240296662A1 (en) 2024-09-05
EP4367644A1 (en) 2024-05-15

Similar Documents

Publication Publication Date Title
Mitash et al. A self-supervised learning system for object detection using physics simulation and multi-view pose estimation
US12053886B2 (en) Device control using policy training based on task embeddings
CN111695562B (zh) 一种基于卷积神经网络的机器人自主抓取方法
RU2700246C1 (ru) Способ и система захвата объекта с помощью роботизированного устройства
CN109816725A (zh) 一种基于深度学习的单目相机物体位姿估计方法及装置
Hamer et al. An object-dependent hand pose prior from sparse training data
JP7458741B2 (ja) ロボット制御装置及びその制御方法及びプログラム
Zhuang et al. Instance segmentation based 6D pose estimation of industrial objects using point clouds for robotic bin-picking
US20240296662A1 (en) Synthetic dataset creation for object detection and classification with deep learning
Marchionne et al. GNC architecture solutions for robust operations of a free-floating space manipulator via image based visual servoing
Veres et al. An integrated simulator and dataset that combines grasping and vision for deep learning
Xiao et al. One-shot sim-to-real transfer policy for robotic assembly via reinforcement learning with visual demonstration
Wei et al. Vision-guided fine-operation of robot and its application in eight-puzzle game
Vysocky et al. Generating synthetic depth image dataset for industrial applications of hand localization
Sui et al. Transfer of robot perception module with adversarial learning
US20210056247A1 (en) Pose detection of objects from image data
Hosseini et al. Multi-modal robust geometry primitive shape scene abstraction for grasp detection
Ghahramani et al. 6d object pose estimation for robot programming by demonstration
Martinson Interactive training of object detection without imagenet
Broderick On the Feasiblity of Simulated Data for 3D Object Classification and Transfer Learning
US20230169324A1 (en) Use synthetic dataset to train robotic depalletizing
Castro-Vargas et al. Detecting and manipulating objects with a social robot: An ambient assisted living approach
US20240198530A1 (en) High-level sensor fusion and multi-criteria decision making for autonomous bin picking
Solberg et al. Utilizing Reinforcement Learning and Computer Vision in a Pick-And-Place Operation for Sorting Objects in Motion
US20240198515A1 (en) Transformation for covariate shift of grasp neural networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination