一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于域泛化的数据增强的制作方法

2023-10-20 18:05:40 来源:中国专利 TAG:


1.本公开涉及用于域泛化的数据增强。在实施例中,本公开涉及使用图像分割为机器学习应用创建新的增强图像。


背景技术:

2.机器学习已经在各个领域都取得了显著的成功,诸如计算机视觉、自然语言处理、医疗保健、自动驾驶等。机器学习的目标是设计能够从训练数据中学习通用知识和预测知识的模型,并且然后将该模型应用于新的(测试)数据。这种机器学习模型可以依赖于域泛化,也称为域偏移或域正则化。
3.域泛化利用机器学习模型旨在解决数据可能来自各种域的任务。例如,该模型可以是对象检测模型或图像识别模型,其应充分执行以在各种条件(例如,背景、照明、模糊度、干扰、对比度等)下正确检测对象。这些不同的条件构成模型的不同数据域。模型性能通常将取决于域而不同,并且具体而言,取决于来自用于训练模型的数据集中每个域的数据量而不同。域泛化的任务是在训练集中未充分表示的域或根本没有表示的域(即,经训练的模型以前从未见过这些域)中维护模型性能。简而言之,域泛化处理具有挑战性的设置,其中给定了一个或若干不同但相关的域,并且目标是学习可以泛化到未见过的测试域的模型。


技术实现要素:

4.根据实施例,一种用于在对部件的自主控制下执行至少一个任务的系统包括:图像传感器,被配置为输出所述部件的图像;致动器,被配置为基于所述部件中检测到的缺陷来分拣所述部件;处理器;以及存储器,包括当由处理器执行时使处理器执行以下步骤的指令:检索存储在存储器中的源图像;检索存储在存储器中的目标图像;利用图像分割器以源图像来生成具有前景区域和背景区域的源图像分割掩模;利用图像分割器以目标图像来生成具有前景区域和背景区域的目标图像分割掩模;基于源图像分割掩模确定源图像的源图像前景和源图像背景;基于目标图像分割掩模确定目标图像的目标图像前景和目标图像背景;从目标图像中移除目标图像前景;将源图像前景插入移除了目标图像前景的目标图像中,以创建具有源图像前景和目标图像背景的增强图像;用增强图像更新机器学习模型的训练数据;利用具有更新的训练数据的机器学习模型来确定所述部件中的缺陷;以及基于所述部件中所确定的缺陷来使致动器致动以分拣所述部件。
5.根据实施例,一种用于生成机器学习模型的训练数据的计算机实现的方法包括:从图像数据库中选择源图像;从图像数据库中选择目标图像;利用图像分割器以源图像来生成具有前景区域和背景区域的源图像分割掩模;利用图像分割器以目标图像来生成具有前景区域和背景区域的目标图像分割掩模;基于源图像分割掩模确定源图像的源图像前景和源图像背景;基于目标图像分割掩模确定目标图像的目标图像前景和目标图像背景;从目标图像中移除目标图像前景;将源图像前景插入移除了目标图像前景的目标图像中,以
创建具有源图像前景和目标图像背景的增强图像;以及用增强图像更新机器学习模型的训练数据。
6.根据另一实施例,一种用于训练机器学习模型的系统包括:配置为存储计算机可执行指令的计算机可读存储介质;以及一个或多个处理器,配置为执行计算机可执行指令,计算机可执行命令包括:利用图像分割器以源图像来生成具有前景区域和背景区域的源图像分割掩模;利用图像分割器以目标图像来生成具有前景区域和背景区域的目标图像分割掩模;基于源图像分割掩模确定源图像的源图像前景和源图像背景;基于目标图像分割掩模确定目标图像的目标图像前景和目标图像背景;从目标图像中移除目标图像前景;将源图像前景插入移除了目标图像前景的目标图像中,以创建具有源图像前景和目标图像背景的增强图像;以及用增强图像更新机器学习模型的训练数据。
7.根据另一实施例,一种非暂时性计算机可读介质包括多个指令,当由处理器执行时,所述多个指令使处理器执行以下操作:利用图像分割器以源图像来生成具有前景区域和背景区域的源图像分割掩模;利用图像分割器以目标图像来生成具有前景区域和背景区域的目标图像分割掩模;基于源图像分割掩模确定源图像的源图像前景和源图像背景;基于目标图像分割掩模确定目标图像的目标图像前景和目标图像背景;从目标图像中移除目标图像前景;将源图像前景插入移除了目标图像前景的目标图像中,以创建具有源图像前景和目标图像背景的增强图像;以及用增强图像更新机器学习模型的训练数据。
附图说明
8.图1示出了根据实施例的用于训练神经网络的系统。
9.图2示出了根据实施例的用于训练和利用神经网络的计算机实现的方法。
10.图3a示出了根据实施例的用于生成机器学习模型的训练数据的系统流程图,并且图3b示出了根据实施例的生成训练数据的示意表示。
11.图4示出了根据实施例的在输入层、多个隐藏层和输出层中具有节点的深度神经网络的示意图。
12.图5描绘了根据实施例的计算机控制机器和控制系统之间的交互的示意图。
13.图6描绘了根据实施例的图5的控制系统的示意图,该控制系统配置为控制载具,该载具可以是部分自主载具、完全自主载具、部分自主机器人或完全自主机器人。
14.图7描绘了图5的控制系统的示意图,该控制系统被配置为控制制造系统(例如生产线的一部分)的制造机器,例如冲头切割机、切割机或枪钻。
15.图8描绘了图5的控制系统的示意图,该控制系统被配置为控制具有至少部分自主模式的电动工具,例如电钻或驱动器。
16.图9描绘了配置为控制自动个人助理的图5的控制系统的示意图。
17.图10描绘了图5的控制系统的示意图,该控制系统被配置为控制监控系统,例如控制访问系统或监督系统。
18.图11描绘了图5的控制系统的示意图,该控制系统被配置为控制成像系统,例如mri装置、x射线成像装置或超声波装置。
19.图12是根据实施例的用于生成机器学习模型的训练数据并更新机器学习模型的数据库的算法的流程图。
具体实施方式
20.本文描述本公开的实施例。然而,应理解,所公开的实施例仅仅是示例,并且其他实施例可以采取各种和替代形式。附图不一定是按比例的;一些附图可以被放大或最小化以示出特定组件的细节。因此,本文公开的特定结构和功能细节不应被解释为限制性的,而仅仅是作为教导本领域技术人员以不同方式采用各种实施例的代表性基础。如本领域普通技术人员将理解的,参考任一附图所示和描述的各种特征可以与一个或多个其他附图中所示的特征相组合,以产生未明确示出或描述的实施例。所示特征的组合为典型应用提供了代表性实施例。然而,对于特定应用或实现,与本公开的教导一致的特征的各种组合和修改可以是合乎期望的。
21.本公开的实施例涉及域泛化,也称为域偏移或域正则化。在域泛化中,提供了模型f,并且模型f旨在解决数据可能来自各种域的任务。例如,f可以是自主载具中人们希望在各种天气条件下良好执行的对象检测模型,所述天气条件例如晴天、多云、雨天、夜间等。不同的天气条件将构成不同的数据域。模型性能通常将取决于域而不同,并且具体而言,取决于来自数据集中每个域的数据量以及来自用于训练模型的每个域的数据量而不同。域泛化的一个任务是在训练集中未充分表示的域或根本没有表示的域(例如,经训练的模型在测试时间之前从未见过这些域)中维护模型性能。
22.如下面将更全面地描述的,模型的训练数据可以包括图像(例如,照片、激光雷达、雷达等),其中训练模型以基于其与存储的训练数据的比较来确定检测到的对象是什么。在特定域没有太多训练数据的情况下,模型的准确性可能要使用改进。例如,训练数据可能没有足够数量的关于特定类型对象的图像,并且因此应用于该类型对象的对象检测模型中的相应准确性可能滞后。
23.图像增强可以帮助为机器学习模型数据库创建更多的图像。图像增强涉及改变图像训练数据以创建新图像,以及将该新图像存储在训练数据中以扩展训练数据库中存储的图像的数量。
24.cutmix是一种图像增强工具。在cutmix中,通过组合来自原始训练集的图像来创建新的训练图像。选择两个图像(例如,“源”图像和“目标”图像),并创建新图像(例如“增强”图像)。通过从源图像中选择矩形补片(patch)并将其粘贴到目标图像上来创建增强图像。增强图像的标签被视为源图像类和目标图像类的加权平均值,其中权重由形成源图像和目标图像的像素比例给出。例如,如果来自源图像的矩形补片是图像大小的1/4,则增强成像的标签将为0.25[源图像类]和0.75[目标图像类]。
[0025]
与此相对的,根据本文中的各种实施例描述的发明涉及确定每个图像的哪些部分被组合,以及如何确定所得图像的标签。本文描述的方法和系统不是选择源图像的随机矩形补片,而是使用图像分割器(图像分割机器学习模型)来将源图像中的像素划分为前景区域和背景区域,并将目标图像中的象素划分为前景区域和背景区域。换句话说,确定源图像和目标图像中的每个的前景和背景。然后,将源图像的前景与目标图像的背景相组合,以创建新的增强图像或缝合图像,以添加到机器学习模型的训练数据中。与cutmix不同,从源图像剪切的区域是由图像分割器确定的源图像的前景。这可以使增强图像看起来更加自然,从而使依赖于经训练数据的机器学习模型有更好的性能。
[0026]
所公开的系统和方法依赖于机器学习模型,例如神经网络(例如,深度神经网络
(dnn)、图形神经网络(gnn)、深度卷积网络(dcn)、卷积神经网络(cnn)等)等。图1示出了用于训练神经网络(例如深度神经网络)的系统100。示出和描述的神经网络或深度神经网络只是可以使用的机器学习网络或神经网络类型的示例。系统100可以包括用于访问神经网络的训练数据102的输入接口。例如,如图1所示,输入接口可以由数据存储接口104构成,该数据存储接口可以从数据存储部106访问训练数据102。例如,数据存储接口104可以是存储器接口或持久存储接口,例如硬盘或ssd接口,但也可以是个人、本地或广域网络接口,例如蓝牙、zigbee或wi-fi接口或以太网或光纤接口。数据存储部106可以是系统100的内部数据存储部,诸如硬盘驱动器或ssd,但也可以是外部数据存储部,例如,网络可访问的数据存储部。
[0027]
在一些实施例中,数据存储部106还可以包括神经网络的未训练版本的数据表示108,系统100可以从数据存储部106访问该神经网络。然而,将理解,训练数据102和未训练神经网络的数据表示108也可以分别从不同的数据存储部中访问,例如,通过数据存储接口104的不同子系统。每个子系统可以是如上所述的数据存储接口104的类型。在其他实施例中,未训练神经网络的数据表示108可以由系统100基于神经网络的设计参数在内部生成,并且因此可以不显式地存储在数据存储部106上。系统100还可以包括处理器子系统110,其可以被配置为在系统100的操作期间提供迭代函数,作为要训练的神经网络层的堆叠的替代。这里,被替换的层堆叠的各个层可以具有相互共享的权重,并且可以接收前一层的输出作为输入,或者对于层堆栈的第一层,接收初始激活和层堆叠的输入的一部分作为输入。处理器子系统110可以进一步配置为使用训练数据102迭代训练神经网络。这里,处理器子系统110的训练迭代可以包括前向传播部分和后向传播部分。处理器子系统110可以被配置为通过以下方式来执行前向传播部分:除了定义可以执行的前向传播部分的其他操作外,还确定迭代函数的平衡点,在该平衡点处迭代函数收敛到固定点,其中,确定平衡点包括使用数值根查找算法来找到迭代函数减去其输入的根解;以及提供平衡点来代替神经网络中的层堆叠的输出。系统100还可以包括输出接口,用于输出经训练神经网络的数据表示112,该数据也可以称为经训练模型数据112。例如,也如图1所示,输出接口可以由数据存储接口104构成,在这些实施例中,所述接口是输入/输出(“io”)接口,通过该接口,经训练模型数据112可以存储在数据存储部106中。例如,定义“未训练”神经网络的数据表示108可以在训练期间或之后被替换,至少部分替换为经训练神经网络的数据表示112,因为神经网络的参数,例如神经网络的权重、超参数和其他类型的参数,可以适于在训练数据102上反映训练。在图1中,还通过参考数据存储部106上的相同数据记录的附图标记108、112来说明这一点。在其他实施例中,数据表示112可以与定义“未训练”神经网络的数据表示108分开存储。在一些实施例中,输出接口可以与数据存储接口104分离,但通常可以是如上所述的数据存储接口104的类型。
[0028]
系统100的结构是可用于训练本文所述的图形神经网络和深度神经网络的系统的一个示例。用于操作和训练机器学习模型的附加结构示出在图2中。
[0029]
图2描绘了用于实现本文所述的机器学习模型的系统200,例如本文所述的深度神经网络。可以使用其他类型的机器学习模型,并且这里描述的dnn并不是能够用于本公开的系统的唯一类型的机器学习模型。例如,如果输入图像包含有序的像素序列,则可以利用cnn。系统200可以被实现为执行本文所述的图像识别的一个或多个阶段。系统200可以包括
至少一个计算系统202。计算系统202可以包括至少一个处理器204,该处理器204操作性地连接到存储器单元208。处理器204可以包括实现中央处理单元(cpu)206的功能的一个或多个集成电路。cpu 206可以是商用处理单元,其实现诸如x86、arm、power或mips指令集系列之一的指令集。在操作期间,cpu 206可以执行从存储器单元208检索的存储的程序指令。存储的程序指令可以包括控制cpu 206的操作以执行本文描述的操作的软件。在一些示例中,处理器204可以是将cpu 206、存储器单元208、网络接口和输入/输出接口的功能集成到单个集成设备中的片上系统(soc)。计算系统202可以实现用于管理操作的各个方面的操作系统。虽然图2中示出了一个处理器204、一个cpu 206和一个存储器208,但是当然,在整个系统中可以利用不止一个上述中的每一项。
[0030]
存储器单元208可以包括用于存储指令和数据的易失性存储器和非易失性存储器。非易失性存储器可以包括固态存储器,例如nand闪存、磁性和光学存储介质,或者当计算系统202被停用或丢失电力时保留数据的任何其他合适的数据存储设备。易失性存储器可以包括存储程序指令和数据的静态和动态随机存取存储器(ram)。例如,存储器单元208可以存储机器学习模型210或算法、机器学习模型210的训练数据集212、原始源数据集216。
[0031]
计算系统202可以包括网络接口设备222,其被配置为提供与外部系统和设备的通信。例如,网络接口设备222可以包括由电气和电子工程师协会(ieee)802.11系列标准定义的有线和/或无线以太网接口。网络接口设备222可以包括用于与蜂窝网络(例如,3g、4g、5g)通信的蜂窝通信接口。网络接口设备222可以进一步配置为向外部网络224或云提供通信接口。
[0032]
外部网络224可以称为万维网或互联网。外部网络224可以在计算设备之间建立标准通信协议。外部网络224可以允许在计算设备和网络之间容易地交换信息和数据。一个或多个服务器230可以与外部网络224通信。
[0033]
计算系统202可以包括输入/输出(i/o)接口220,其可以被配置为提供数字和/或模拟输入和输出。i/o接口220用于在内部存储部和外部输入和/或输出设备(例如,hmi设备)之间传递信息。i/o 220接口可以包括相关联的电路或bus网络,以将信息传递到(一个或多个)处理器和存储部或者在(一个或多个)处理器和存储部之间传递信息。例如,i/o接口220可以包括:可以被(一个或多个)处理器读取或设置的数字i/o逻辑线;用于监督通过i/o线的数据传递的握手线;定时和计数设施;以及其他已知的提供此类功能的结构。输入设备的示例包括键盘、鼠标、传感器等。输出设备的示例包括监控器、打印机、扬声器等。i/o接口220可以包括用于与外部设备进行通信的附加串行接口(例如,通用串行总线(usb)接口)。i/o接口220可以被称为输入接口(因为它从外部输入(诸如传感器)传递数据),或输出接口(因为它向外部输出(诸如显示器)传递数据)。
[0034]
计算系统202可以包括人机接口(hmi)设备218,该设备218可以包括使系统200能够接收控制输入的任何设备。输入设备的示例可以包括人机接口输入,例如键盘、鼠标、触摸屏、语音输入设备和其他类似设备。计算系统202可以包括显示设备232。计算系统202可以包括用于将图形和文本信息输出到显示设备232的硬件和软件。显示设备232可以包括电子显示屏、投影仪、打印机或用于向用户或操作员显示信息的其他适当设备。计算系统202可以进一步配置为允许通过网络接口设备222与远程hmi和远程显示设备进行交互。
[0035]
系统200可以使用一个或多个计算系统来实现。虽然该示例描绘了实现所有所描
述特征的单个计算系统202,但意在通过相互通信的多个计算单元来分离和实现各种特征和功能。所选择的特定系统架构可以取决于各种因素。
[0036]
系统200可以实现被配置为分析原始源数据集216的机器学习算法210。原始源数据集216可以包括原始或未处理的传感器数据,这些传感器数据可以代表用于机器学习系统的输入数据集。原始源数据集216可以包括视频、视频片段、图像、基于文本的信息、音频或人类语音、时间系列数据(例如,随时间变化的压力传感器信号)、原始或部分处理的传感器数据(例如,对象的雷达图)。此外,原始源数据集216可以是来自相关联传感器的输入数据,所述传感器诸如相机、激光雷达、雷达、超声波传感器、运动传感器、热成像相机或产生具有空间维度的相关联数据的任何其他类型的传感器,其中在那些空间维度内有一些

前景



背景

的概念。这里提到的输入或输入“图像”不一定来自相机,而是可以来自上面列出的任何一种传感器。参考图6-12示出和描述了若干不同的输入示例。在一些示例中,机器学习算法210可以是神经网络算法(例如,深度神经网络),其被设计为执行预定功能。例如,神经网络算法可以被配置为在制造部件之后但在离开工厂之前标识该部件中的缺陷(例如,裂纹、应力、凸起等)。在另一实施例中,神经网络算法可以被配置在汽车应用中,以标识图像中的障碍物或行人,以及他们各自的姿势、行驶方向等。
[0037]
计算机系统200可以存储用于机器学习算法210的训练数据集212。训练数据集212可以表示用于训练机器学习算法210的一组先前构造的数据。机器学习算法210可以使用训练数据集212来学习与神经网络算法相关联的加权因子。训练数据集212可以包括一组源数据,该组源数据具有机器学习算法210试图通过学习过程复制的相应成果或结果。在一个示例中,训练数据集212可以包括输入图像,所述输入图像包括对象(例如,行人)。输入图像可以包括在其中标识对象的各种场景。
[0038]
机器学习算法210可以使用训练数据集212作为输入在学习模式下操作。可以使用来自训练数据集212的数据在多个迭代中执行机器学习算法210。对于每个迭代,机器学习算法210可以基于实现的结果更新内部加权因子。例如,机器学习算法210可以将输出结果(例如,在图像数据是输入的情况下,重建的或补充的图像)与包括在训练数据集212中的结果进行比较。由于训练数据集212包括预期结果,因此机器学习算法210可以确定何时性能是可接受的。在机器学习算法210达到预定的性能水平(例如,与训练数据集212相关联的成果100%一致)或收敛之后,可以使用不在训练数据集中212中的数据来执行机器学习算法210。应该理解的是,在本公开中,

收敛

可以意指设置的(例如,预定的)迭代次数已经发生,或者残差足够小(例如,近似概率在迭代中的变化正以小于阈值而变化),或者其他收敛条件。经训练的机器学习算法210可以应用于新的数据集以生成带注释的数据。
[0039]
机器学习算法210可以被配置为标识原始源数据216中的特定特征。原始源数据216可以包括需要补充结果的多个实例或输入数据集。例如,机器学习算法210可以被配置为标识视频图像中行人的存在并注释发生的情况。在另一个示例中,机器学习算法210可以被配置为通过捕获所制造部件的图像来标识该部件中缺陷的存在。机器学习算法210可以被编程为处理原始源数据216以标识特定特征的存在。机器学习算法210可以被配置为将原始源数据216中的特征标识为预定特征(例如,障碍物、行人、路标等)。原始源数据216可以从各种源导出。例如,原始源数据216可以是由机器学习系统收集的实际输入数据。原始源数据216可以是为了测试系统由机器生成的。作为示例,原始源数据216可以包括来自相机
的原始视频图像。
[0040]
给定机器学习模型的上述描述,以及配置为施行模型的图1-2的结构示例,图3示出了用于生成机器学习模型(例如上面描述的模型)的训练数据的系统300的流程图,并且图3b示出了根据实施例的训练数据生成的示意表示。接收第一图像或源图像302以及第二图像或目标图像304。例如,源图像302和目标图像304可以存储在数据库106中或作为训练数据212。系统300工作来从源图像302和目标图像304创建增强图像306(或缝合图像)。然后,增强图像306也可以存储在数据库106或存储器208中,作为用于改进机器学习模型210的训练数据212。
[0041]
源图像302和目标图像304通过图像分割器308。图像分割器308可以由本文描述的一个或多个处理器执行。图像分割器308被配置为创建对应于源图像302和目标图像304的图像分割掩模。图像分割器308可以被配置为通过将检测到的前景区域转换为第一颜色,并将剩余的(即,背景区域)转换为第二颜色来变换图像。图像分割器308可以是图像分割机器学习模型、语义分割模型等,其被配置为确定相应源图像302和目标图像304的前景区域和背景区域。在这样的实施例中,图像分割器308可以依赖于预先训练的机器学习模型(例如,cnn、dcn等,诸如上文所述)。可以基于图像中对象的颜色、着色、取向和大小对模型进行训练,以确定哪些对象在前景中,以及哪些对象在背景中。图像分割器不需要一定是机器学习模型;在其他实施例中,图像分割器308可以是配置为改变源图像302和目标图像304的像素颜色以创建分割掩模的可编程软件。例如,可编程软件可以被编程为通过如下方式以阈值化来操作:将处于或高于特定亮度阈值的图像像素转换为第一颜色(例如白色),并将低于阈值的图像像素转换为第二颜色(例如黑色),以及将一种颜色指定为前景,并将另一种颜色指定为背景,以创建图像分割掩模。在其他实施例中,图像本身包含表示图像中对象的深度的数据;例如,图像源可以是激光雷达或雷达设备,其可以包括所产生图像中的每个像素或位置的深度信息。前景和背景的最终确定可以基于该深度信息(例如,低于某个深度阈值的对象是前景,并且其余的是背景)。
[0042]
图像分割器308可以是相同的分割器,或者可替代地,一个图像分割器可以用于源图像302,并且另一个图像分割器可以用于目标图像304。
[0043]
图像分割器308的输出是源图像和目标图像304中的每一个的图像分割掩模。换句话说,图像分割器308将源图像302转换为源图像分割掩模310,并将目标图像304转换为目标图像分割掩模312。源图像分割掩模310具有转换为表示源图像的前景的单色的一组像素,以及转换为表示源图像的背景的另一单色的另一组像素,如图3b所示。可以输出两个单独的掩模,如图3b所示,其中一个以黑色示出背景中的像素(例如,左图像),并且另一个将前景中的像素示出为黑色(例如,右图像)。在其他实施例中,仅提供一个掩模,使得前景被着色一种颜色,并且背景被着色另一种颜色。以图3b的示例为例,将星形内的像素转换为黑色并标记为前景,并且将星形外的其余像素转换为白色并标记为背景。对于目标图像304,利用图像分割器308将检测到的前景(例如,椭圆形)转换为一种颜色,并将椭圆形外部的其余像素外部的像素转换为另一种颜色,来重复该相同的过程。
[0044]
在314处,系统被配置为移除目标图像的前景。移除目标图像的前景可以包括在与由图像分割器308确定为前景的区域相对应的目标图像304的区域上进行绘制(修复(inpainting))。换句话说,改变目标图像304的像素,所述像素与目标图像分割掩模312被
设色为表示前景的位置相对应。这些像素可以改变颜色、粉刷、变暗、变亮等。在一个实施例中,在314处,将目标图像的前景中的所有像素绘制为对应于背景像素的平均颜色的颜色。下文关于图12中所示的算法提供对此的附加描述。在316处,所得图像是移除前景或设色为单色的目标图像。在其他实施例中,目标图像前景中的像素以对应于目标图像背景中的颜色的各种颜色被着色。
[0045]
在318处,系统将源前景粘贴到目标图像上目标图像前景被移除的位置。为此,改变源图像前景将被输入的位置处的来自316的目标图像的像素,以匹配源图像前景的像素颜色。这给出了源图像前景已插入到目标图像背景上或目标图像背景中的外观。结果是增强图像306。然后,可以将增强图像306存储或保存到存储器中(例如,在数据库106中或存储器208中作为用于改进机器学习模型210的训练数据212)。
[0046]
为了说明性目的,图4示出了机器学习模型400的示例示意图,例如作为图像分割器执行的机器学习模型,或者利用训练数据212的机器学习模型,该训练数据现在包括增强图像306。如上所讨论的,机器学习模型400可以是神经网络(例如,在某些情况下,虽然不是必需,是深度神经网络)。如果将机器学习模型400用作图像分割器,则机器学习模型40可以配置为使用面向数据的方法来确定目标图像的每个像素的新颜色的面向数据的图像处理模型。如果机器学习模型400用作对象检测模型(例如,确定部件中存在缺陷、确定载具外部存在对象等),则可以相应地配置机器学习模型。机器学习模型400可以包括输入层(具有多个输入节点)和输出层(具有多个输出节点)。在一些示例中,机器学习模型400可以包括多个隐藏层。输入层、输出层和隐藏层的节点可以耦合到后续层或先前层的节点。并且输出层的每个节点可以执行激活函数——例如,有助于确定是否应激活相应节点以提供机器学习模型400的输出的函数。在输入层、隐藏层和输出层中示出的节点数量仅是示例性的,并且可以使用任何合适的数量。
[0047]
如上所述,本文描述的机器学习模型可以用于许多不同的应用中,其中用于域泛化的数据增强可能有益于该模型,例如载具的行人或路标检测、制造厂中的部件缺陷检测等。在部件缺陷检测的示例中,例如,具有更新的增强训练数据的机器学习模型可以更好地装备为通过将该部件的图像(例如,如本文所解释的从诸如相机、激光雷达、雷达、热传感器等的图像传感器中获取的图像)与经训练数据进行比较来确定该部件中是否存在缺陷,以及基于检测到的图像对该部件进行分拣。将部件分拣可能包括标示、分类、改变装配线中的方向流、激光修整以及标示部件或将部件与无防护的部件分离的其他方法。
[0048]
图6-11中示出了可以使用的用于域泛化的附加应用数据增强。在这些实施例中,通过增强图像产生的并被存储以供模型使用的附加训练数据最终改进了模型的性能。用于针对这些应用(和其他应用)训练和使用机器学习模型的结构在图5中举例说明。图5描绘了计算机控制的机器500和控制系统502之间的交互的示意图。计算机控制的机器500包括致动器504和传感器506。致动器504可以包括一个或多个致动器,并且传感器506可以包括一个或多个传感器。传感器506被配置为感测计算机控制的机器500的条件。传感器506可以被配置为将所感测的条件编码为传感器信号508,并将传感器信号508传输到控制系统502。传感器506的非限制性示例包括视频、雷达、激光雷达、超声波和运动传感器,如上参照图1-2所描述的。在一个实施例中,传感器506是被配置为感测计算机控制的机器500附近环境的光学图像的光学传感器。
[0049]
控制系统502被配置为从计算机控制的机器500接收传感器信号508。如下所述,控制系统502可以进一步配置为根据传感器信号计算致动器控制命令510,并将致动器控制命令540传输到计算机控制的机器500的致动器504。
[0050]
如图5所示,控制系统502包括接收单元512。接收单元512可以被配置为从传感器506接收传感器信号508,并将传感器信号508变换为输入信号x。在替代实施例中,传感器信号508直接作为输入信号x接收,而无需接收单元512。每个输入信号x可以是每个传感器信号508的一部分。接收单元512可以被配置为处理每个传感器信号508以产生每个输入信号x。输入信号x可以包括对应于由传感器506记录的图像的数据。
[0051]
控制系统502包括分类器514。分类器514可以被配置为使用机器学习(ml)算法,例如上面描述的神经网络,将输入信号x分类为一个或多个标签。分类器514被配置为通过参数来参数化,例如上面描述的那些参数(例如,参数θ)。参数θ可以存储在非易失性存储部516中并由其提供。分类器514被配置为从输入信号x确定输出信号y。每个输出信号y包括将一个或多个标签分配给每个输入信号x的信息。分类器514可以将输出信号y传输到转换单元518。转换单元518被配置为将输出信号y转换为致动器控制命令510。控制系统502被配置为将致动器控制命令510传输到致动器504,致动器504被配置为响应于致动器控制命令510来致动计算机控制的机器500。在另一实施例中,致动器504被配置为直接基于输出信号y来致动计算机控制的机器500。
[0052]
在致动器504接收到致动器控制命令510时,致动器504被配置为执行对应于相关致动器控制命令510的动作。致动器504可以包括被配置为将致动器控制命令510变换为用于控制致动器504的第二致动器控制命令的控制逻辑。在一个或多个实施例中,替代于或附加于致动器,致动器控制命令510可用于控制显示器。
[0053]
在另一实施例中,替代于或附加于计算机控制的机器500包括传感器506,控制系统502包括传感器506。替代于或附加于计算机控制的机器500包括致动器504,控制系统502还可以包括致动器504。
[0054]
如图5所示,控制系统502还包括处理器520和存储器522。处理器520可以包括一个或多个处理器。存储器522可以包括一个或多个存储器设备。一个或多个实施例的分类器514(例如,机器学习算法,例如上文针对预训练分类器306描述的那些)可以由控制系统502实现,该控制系统502包括非易失性存储部516、处理器520和存储器522。
[0055]
非易失性存储部516可以包括一个或多个持久性数据存储设备,例如硬盘驱动器、光学驱动器、磁带驱动器、非易失固态设备、云存储或能够持久存储信息的任何其他设备。处理器520可以包括一个或多个选自高性能计算(hpc)系统的设备,包括高性能内核、微处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路、模拟电路、数字电路、或基于驻留在存储器522中的计算机可执行指令来操纵信号(模拟或数字)的任何其他设备。存储器522可以包括单个存储器设备或多个存储器设备,包括但不限于随机存取存储器(ram)、易失性存储器、非易失性存储器、静态随机存取存储器(sram)、动态随机存取存储器(dram)、闪存、高速缓冲存储器或能够存储信息的任何其他设备。
[0056]
处理器520可以被配置为读入存储器522并执行驻留在非易失性存储部516中并且体现一个或多个实施例的一个或多个ml算法和/或方法的计算机可执行指令。非易失性存
储部516可以包括一个或多个操作系统和应用程序。非易失性存储部516可以存储使用各种编程语言和/或技术创建的编译性和/或解释性计算机程序,包括但不限于单独或组合的java、c、c 、c#、objective c、fortran、pascal、java script、python、perl和pl/sql。
[0057]
在处理器520执行时,非易失性存储部516的计算机可执行指令可以使控制系统502实现本文公开的ml算法和/或方法中的一个或多个。非易失性存储部516还可以包括支持本文描述的一个或多个实施例的功能、特征和过程的ml数据(包括数据参数)。
[0058]
体现本文描述的算法和/或方法的程序代码能够以各种不同的形式作为程序产品单独或集体分发。程序代码可以使用在其上具有计算机可读程序指令的计算机可读存储介质来分发,用于使处理器施行一个或多个实施例的方面。固有地是非暂时性的计算机可读存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性以及可移动和不可移动的有形介质,所述信息例如计算机可读指令、数据结构、程序模块或其他数据。计算机可读存储介质还可以包括ram、rom、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、闪存或其他固态存储器技术、便携式致密盘只读存储器(cd-rom)或其他光学存储部、盒式磁带、磁带、磁盘存储部或其他磁存储设备,或可用于存储所需信息并可由计算机读取的任何其他介质。计算机可读程序指令可以通过网络从计算机可读存储介质下载到计算机、另一类型的可编程数据处理装置或另一设备,或者下载到外部计算机或外部存储设备。
[0059]
存储在计算机可读介质中的计算机可读程序指令可用于指引计算机、其他类型的可编程数据处理装置或其他设备以特定方式运转,使得存储在计算机可读介质中的指令产生制品,包括实现流程图或图表中指定的功能、动作、和/或操作的指令。在某些替代实施例中,流程图和图表中指定的功能、动作和/或操作可以根据一个或多个实施例重新排序、串行处理和/或并发处理。此外,与根据一个或多个实施例所示的那些相比,流程图和/或图表中的任何一个可以包括更多或更少的节点或块。
[0060]
可以使用适当的硬件组件(例如专用集成电路(asic)、现场可编程门阵列(fpga)、状态机、控制器或其他硬件组件或设备)或硬件、软件和固件组件的组合来全部或部分地体现过程、方法或算法。
[0061]
图6描绘了配置为控制载具600的控制系统502的示意图,该载具600可以是至少部分自主的载具或至少部分自主机器人。载具600包括致动器504和传感器506。传感器506可以包括一个或多个视频传感器、相机、雷达传感器、超声波传感器、激光雷达传感器和/或位置传感器(例如gps)。一个或多个特定传感器中的一个或多个可以集成到载具600中。在本文所述的标志识别和处理上下文中,传感器506是安装在载具600上或集成到载具600中的相机。替代于或附加于上面标识的一个或多个特定传感器,传感器506可以包括软件模块,该软件模块被配置为在执行时确定致动器504的状态。软件模块的一个非限制性示例包括被配置为确定载具600附近或其他位置的当前或未来天气状态的天气信息软件模块。
[0062]
载具600的控制系统502的分类器514可以配置为根据输入信号x来检测载具600附近的对象。在这种实施例中,输出信号y可以包括表征对象在载具600附近的信息。致动器控制命令510可以根据该信息确定。致动器控制命令510可用于避免与检测到的对象碰撞。
[0063]
在载具600是至少部分自主载具的实施例中,致动器504可以体现在载具600的制动器、推进系统、发动机、传动系或转向中。可以确定致动器控制命令510,从而控制致动器
504,使得载具600避免与检测到的对象碰撞。检测到的对象也可以根据分类器514认为它们最可能是什么来分类,例如行人或树木。根据分类,可以确定致动器控制命令510。在可能发生对抗性攻击的场景中,可以进一步训练上述系统以更好地检测对象或标识载具600上的传感器或相机的照明条件或角度的变化。
[0064]
在载具600是至少部分自主的机器人的其他实施例中,载具600可以是配置为施行一个或多个功能的移动机器人,所述功能例如飞行、游泳、潜水和步进。移动机器人可以是至少部分自主的割草机或至少部分自主的清洁机器人。在这些实施例中,可以确定致动器控制命令510,从而可以控制移动机器人的推进单元、转向单元和/或制动单元,使得移动机器人可以避免与标识出的对象碰撞。
[0065]
在另一实施例中,载具600是园艺机器人形式的至少部分自主机器人。在这样的实施例中,载具600可以使用光学传感器作为传感器506来确定载具600附近环境中植物的状态。致动器504可以是配置为喷洒化学品的喷嘴。根据植物的标识出的物种和/或标识出的状态,可以确定致动器控制命令510,以使致动器504向植物喷洒适当量的适当化学品。
[0066]
载具600可以是家用电器形式的至少部分自主机器人。家用电器的非限制性示例包括洗衣机、炉子、烤箱、微波炉或洗碗机。在这种载具600中,传感器506可以是光学传感器,其被配置为检测将经历由家用电器进行的处理的对象的状态。例如,在家用电器是洗衣机的情况下,传感器506可以检测洗衣机内的衣物的状态。可以基于检测到的衣物状态来确定致动器控制命令510。
[0067]
图7描绘了配置为控制制造系统702(例如生产线的一部分)的系统700(例如,制造机器)的控制系统502的示意图,系统700诸如冲头切割机、切割机或枪钻。控制系统502可以配置为控制致动器504,致动器504配置为控制系统700(例如,制造机器)。
[0068]
系统700(例如,制造机器)的传感器506可以是配置为捕获所制造产品704的一个或多个属性的光学传感器(例如上文描述的那些)。分类器514可以配置为根据捕获的一个或多个属性来确定所制造产品704的状态。致动器504可以配置为根据所制造产品704的确定状态,针对所制造产品704的后续制造步骤或者如果所制造产品704具有检测到的缺陷则针对分拣所制造产品704(例如丢弃、分类、标示、修整或修理),来控制系统700(例如,制造机器)。致动器504可以配置为根据所制造产品704的确定状态来控制系统700(例如,制造机器)在系统700(例如,制造机器)后续所制造产品706上的功能。
[0069]
图8描绘了配置为控制具有至少部分自主模式的电动工具800(例如电钻或驱动器)的控制系统502的示意图。控制系统502可以配置为控制致动器504,致动器504配置为控制电动工具800。
[0070]
电动工具800的传感器506可以是光学传感器,其被配置为捕获工作表面802和/或正在被驱动到工作表面802中的紧固件804的一个或多个属性。分类器514可以被配置为根据捕获的一个或多个属性来确定工作表面802和/或紧固件804相对于工作表面802的状态。状态可以是紧固件804与工作表面802平齐。可替代地,状态可以是工作表面802的硬度。致动器504可以配置为控制电动工具800,使得电动工具800的驱动功能根据紧固件804相对于工作表面802的确定状态或工作表面802的一个或多个捕获属性来调整。例如,如果紧固件804的状态相对于工作表面802齐平,则致动器504可以不再继续驱动功能。作为另一个非限制性示例,致动器504可以根据工作表面802的硬度应用额外或更少的扭矩。
[0071]
图9描绘了配置为控制自动个人助理900的控制系统502的示意图。控制系统502可以配置为控制致动器504,致动器504配置为控制自动个人助理900。自动个人助理900可以配置为控制家用电器,例如洗衣机、炉子、烤箱、微波炉或洗碗机。
[0072]
传感器506可以是光学传感器和/或音频传感器。光学传感器可以被配置为接收用户902的手势904的视频图像。音频传感器可以被配置为接收用户902的语音命令。
[0073]
自动个人助理900的控制系统502可以配置为确定配置为控制系统502的致动器控制命令510。控制系统502可以配置为根据传感器506的传感器信号508确定致动器控制命令510。自动个人助理900被配置为将传感器信号508传输到控制系统502。控制系统502的分类器514可以被配置为执行手势识别算法,以标识用户902做出的手势904,确定致动器控制命令510,并将致动器控制命令510传输到致动器504。分类器514可以被配置为响应于手势904从非易失性存储部中检索信息,并以适合于用户902接收的形式输出检索的信息。
[0074]
图10描绘了配置为控制监控系统1000的控制系统502的示意图。监控系统1000可以配置为物理地控制通过门1002的访问。传感器506可以配置为检测与决定是否授予访问相关的场景。传感器506可以是被配置为生成和传输图像和/或视频数据的光学传感器。控制系统502可以使用这种数据来检测人的面部。
[0075]
监控系统1000的控制系统502的分类器514可以配置为通过匹配存储在非易失性存储部516中的已知人员的身份来解释图像和/或视频数据,从而确定人员的身份。分类器514可以被配置为响应于图像和/或视频数据的解释而生成致动器控制命令510。控制系统502被配置为将致动器控制命令510传输到致动器504。在该实施例中,致动器504可以配置为响应于致动器控制命令510锁定或解锁门1002。在其他实施例中,也可以进行非物理的逻辑访问控制。
[0076]
监控系统1000也可以是监督系统。在这样的实施例中,传感器506可以是被配置为检测处于监督下的场景的光学传感器,并且控制系统502被配置为控制显示器1004。分类器514被配置为确定场景的分类,例如,由传感器506检测到的场景是否可疑。控制系统502被配置为响应于分类将致动器控制命令510传输到显示器1004。显示器1004可以配置为响应于致动器控制命令510调整显示的内容。例如,显示器1004可以突出显示分类器514认为可疑的对象。利用所公开的系统的实施例,监督系统可以预测对象在未来的某些时间内会出现。
[0077]
图11描绘了配置为控制成像系统1100的控制系统502的示意图,成像系统1100例如mri装置、x射线成像装置或超声波装置。例如,传感器506可以是成像传感器。分类器514可以被配置为确定全部或部分感测到的图像的分类。分类器514可以被配置为响应于通过经训练的神经网络获得的分类来确定或选择致动器控制命令510。例如,分类器514可以将感测到的图像的区域解释为潜在异常。在这种情况下,可以确定或选择致动器控制命令510,以使显示器1102显示成像并突出显示潜在异常区域。
[0078]
本文描述的(一个或多个)处理器可以被配置为执行用于生成机器学习模型的训练数据的算法。现在将描述该算法的一个实施例。在下面的描述中,上标用于表示不同的图像,并且下标用于表示图像内的像素,因此xi是图像,并且是图像xi中位置(a,b)处的像素。
[0079]
该算法可以接收多个输入,例如:
[0080]
·
图像-标签对的数据集d={(x1,y1),...,(xn,yn)},其中图像xi∈[0,1]w×h×3算且yi∈{1,...,k}
[0081]
·
数据域d1,...,dm,其中数据集中的每个图像-标签对正好属于一个域
[0082]
·
图像分割模型或方法(例如图像分割器308),例如其预测每个像素将处于前景(其对应于分割器输出等于1的像素)还是背景(分割器输出0)
[0083]
·
要创建的缝合或增强图像的数量n
[0084]
算法的输出或返回是增强数据集d
*

[0085]
根据实施例,该算法执行如下。处理器可以初始化增强数据集d
*
:={}。然后,对于i=1,...,n,可以发生以下步骤。首先,处理器选择源域ds和目标域d
t
,其中ds≠d
t

[0086]
应该注意,有许多方式选择源域和目标域。例如,该算法可以以某种概率对域集进行采样。在这种情况下,由于期望改进在训练集中未充分表示的域上的性能,因此可以用概率来配置该算法,使得选择数据域的概率随着域中图像数量的增加而降低。
[0087]
在选择源图像时,处理器可以选择源图像-标签对(xs,ys)∈ds,其中x和y是像素。同样,在选择目标图像时,处理器可以选择目标图像-标签对(x
t
,y
t
)∈d
t

[0088]
然后,将源图像和目标图像通过图像分割器,以生成分割掩模zs:=g(xs)和z
t
:=g(x
t
)。
[0089]
然后通过使用目标图像背景的平均颜色进行修复,移除目标图像的前景。这可以按如下方式完成。首先,(一个或多个)处理器确定目标图像背景中像素(即其中目标掩模像素的所有像素位置)的平均颜色c。然后,(一个或多个)处理器为其中目标掩模像素的所有像素位置(a,b)分配
[0090]
在该步骤中,该算法本质上是通过将前景像素替换为背景中的平均颜色来在前景“上绘制”。可以使用移除目标前景的其他方法;例如,有许多用于修复或推断缺失像素的深度学习方法可以代替使用。
[0091]
一旦移除了目标图像的前景,就可以将源前景粘贴到目标图像上。为此,(一个或多个)处理器为其中源掩模像素的所有像素位置(a,b)分配
[0092]
(一个或多个)处理器将具有源图像标签(x
t
,ys)的增强图像添加到增强数据集d*。换句话说,可以用与源图像相同的标签来标记增强图像。
[0093]
然后,可以使用原始训练集和增强数据集的联合d∪d
*
来进行机器学习模型的训练。
[0094]
应该注意,该算法假设数据集中的图像都是统一大小的。如果它们不是统一大小,则可以修改将源前景粘贴到目标图像上的步骤,以首先将源图像重塑为目标图像的尺寸,并然后将其粘贴到目标图像上。
[0095]
图12示出了根据本文描述的实施例的用于生成机器学习模型的训练数据的方法1200。该方法是上述算法的总结。方法1200可以由本文描述的一个或多个处理器和相关联存储器执行,并且可以与本文中关于生成训练数据(例如图1-4中所示以及上文关于算法的一个实施例所描述)的教导一起使用。
[0096]
在1202,处理器选择源图像302,并且在1204,处理器选择目标图像304。这些图像的选择可以基于改进一类对象的数据库的需要。换句话说,由于可能希望改进训练集中未充分表示的域上的性能,因此在步骤1202和1204中可以利用概率,使得选择数据域的概率随着域中图像数量的增加而降低。例如,如果机器学习系统需要针对特定类型的路标的更多训练,则处理器可以选择源图像302,因为在前景中具有该路标。可替代地,可以手动执行这些步骤。
[0097]
在1206,源图像302和目标图像304通过图像分割器(例如上面描述的图像分割器308)以生成分割掩模。参考上述算法,由分割器生成掩模zs:=g(xs)和z
t
:=g(x
t
),使得一些像素被转换为0,并且其余的被转换为1。
[0098]
在1208,移除目标图像304的前景。这可以根据本文的教导来执行,例如使用目标图像背景的平均颜色进行修复,或使用其他方法。
[0099]
在1210,将源图像的前景绘制到目标图像上。再次,根据一个实施例,根据为其中源掩模像素的所有像素位置(a,b)进行来改变目标图像中的像素颜色。这产生增强图像。
[0100]
在1212,将增强图像添加到训练数据或数据集,以训练机器学习模型。
[0101]
虽然上面描述了示例性实施例,但这些实施例并不意图描述权利要求所涵盖的所有可能形式。本说明书中使用的词是描述词,而不是限制词,并且应理解,可以在不背离本公开的精神和范围的情况下进行各种更改。如前所述,可以组合各种实施例的特征以形成本发明进一步的实施例,这些进一步的实施例可能未明确描述或说明。虽然可能已经将各种实施例描述为在一个或多个所需特性方面提供优势或优于其他实施例或现有技术实现,但本领域普通技术人员认识到,可以权衡一个或多个特征或特性以实现所需的整体系统属性,这取决于具体的应用和实现。这些属性可以包括但不限于成本、强度、耐久性、生命周期成本、适销性、外观、包装、大小、适用性、重量、可制造性、易于组装等。因此,就任何实施例在一个或多个特性方面被描述为不如其他实施例或现有技术实现合乎期望而言,这些实施例并非在本公开的范围之外,并且对于特定应用可以是合乎期望的。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表