首页> 中国专利> 真实到合成图像域转移

真实到合成图像域转移

摘要

描述了用于确定性地生成训练或验证机器学习模型的标记数据以进行图像分析并用于使用此类机器学习模型通过使用到合成显现图像的域转移来确定实域图像的内容的系统、方法和机器可读介质。

著录项

  • 公开/公告号CN112166439A

    专利类型发明专利

  • 公开/公告日2021-01-01

    原文格式PDF

  • 申请/专利权人 雷哥尼公司;

    申请/专利号CN201980031835.4

  • 申请日2019-02-13

  • 分类号G06K9/62(20060101);

  • 代理机构11006 北京律诚同业知识产权代理有限公司;

  • 代理人徐金国;吴启超

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 09:23:00

说明书

相关申请

本申请要求2018年3月13日提交的美国临时申请号62/642,578和2018年5月21日提交的美国临时申请号62/674,497的优先权。

技术领域

本发明涉及用于使用机器学习模型的方法,所述机器学习模型使用确定性地生成的标记数据来训练。

背景技术

计算机视觉模型的开发可能因缺乏足够的训练数据而无法教授模型对图像的内容进行正确分类而受到阻碍。例如,用于对图像进行分类的计算机视觉模型通常被组装为预先存在的图像数据的集合,所述图像数据的集合由人类标记以指示图像中描绘的项目。然而,通过此方法,很难扩展训练数据集,因为可用图像与必须在实践中进行分类的图像类型可能不那么类似,并且因为模型必须学会使用相对不精确的标记来确定项目在图像中的位置——也就是说,标记通常不确切指示图像的什么部分包含标记的项目以及什么部分包含其他内容。例如,用于获得标记的图像训练数据的常规方法是通过Taskrabbit或Mechanical Turk雇用人类来标记图像,或者通过基于CAPTCHA的认证服务来获得人类标记的图像。此外,常规的之前的方法不允许响应于在使用机器学习模型处理图像的位置处的当前状况而根据需要生成目标训练数据。

此外,如果训练数据量、质量或其标记不足,则机器学习模型的准确性将不令人满意。在某些情况下,为了组装足够的训练数据集而生成的合成训练数据可用于训练模型。然而,这种模型可能不能很好地推广到识别真实图像中的内容。

因此,需要解决这些问题的方法,并且本申请公开了解决此需求的方面的实施例。

发明内容

描述了用于训练机器学习模型以将实域图像转换为合成显现图像(synthetic-appearing images)的方法、系统和计算机可读介质的实施例,其中所述机器学习模型与在某一位置处的安装的相机装置相关联,所述位置与场景类型相关联。接收与所述场景类型相关联的第一组实域训练图像,并且生成或接收也与所述场景类型相关联的第二组合成域训练图像。然后可使用所述第一组训练图像和所述第二组训练图像来训练所述机器学习模型,以基于相应的样本实域图像来生成相应的合成显现图像,其中所述相应的合成显现的输出图像的视觉特性与所述合成域训练图像的视觉特性的类似性大于与所述实域训练特性的视觉特性的类似性。

描述了用于使用机器学习模型来识别在实域样本图像中描绘的对象的方法、系统和计算机可读介质的另外的实施例,其中所述机器学习模型包括对象识别部件和真实到合成图像部件,并且其中所述机器学习模型与安装的相机装置相关联。可通过所述安装的相机装置的一个或多个图像传感器,生成一个或多个实域样本图像,所述一个或多个实域样本图像描绘所述安装的相机装置的视野。在所述安装的相机装置处,可通过所述真实到合成图像部件,基于所述相应的实域样本图像生成相应的合成显现样本图像。接下来,在所述安装的相机装置处,并且可通过所述对象识别部件识别在所述合成显现样本图像中描绘的对象,其中使用一组合成域图像数据训练所述对象识别部件。所述方法的结果是可准备并提供关于所述识别对象的报告。

附图说明

图1是根据本发明的一些实施例的关于用于训练机器学习模型的系统的示例性过程的流程图;

图2描绘根据本发明的一些实施例的示例性机器学习训练系统的部件;

图3描绘根据本发明的一些实施例的图像生成相机装置的示例性部件;

图4描绘根据本发明的一些实施例的用于实时图像处理的示例性分布式系统的部件;

图5是根据本发明的一些实施例的关于使用神经网络推断图像的内容的示例性过程的流程图;

图6是根据本发明的一些实施例的关于响应于对诸如异常状况的事件的检测而再训练神经网络模型的示例性过程的流程图;

图7是根据本发明的一些实施例的关于生成训练数据和训练神经网络模型的示例性过程的流程图;

图8示出根据本发明的一些实施例的示例性计算系统的框图;

图9示出根据本发明的一些实施例的关于在实域图像与合成域图像之间转换的过程的图表;

图10是根据本发明的一些实施例的关于训练机器学习模型以将实域图像转换为合成显现图像的示例性过程的流程图;

图11是根据本发明的一些实施例的关于使用机器学习模型来识别在实域样本图像中描绘的对象的示例性过程的流程图。

具体实施方式

描述了用于部署用于实时图像处理的系统的设备、计算机系统、计算机可读介质和方法的实施例,其包括用于确定性地生成用于训练或验证机器学习模型的标记数据的方法。例如,在某些实施例中,本文描述的方法可用于响应于产生等待推断的图像(即,由图像传感器在相机位置处生成的“样本图像”)的位置处的状况,生成实时目标训练数据。本发明的实施例可用于将样本图像或样本视频转变成语义意义。在某些实施例中,可另外将音频数据并入语义意义的确定中。例如,可对各种情形进行成像,并且可使用本文所描述的方法,识别情形,并且可采取响应动作(例如,发送包含情形的语义描述的通知)。例如,可识别可能的恐怖分子将可能爆炸的装置留在火车站的视频并给出语义描述——例如,一个人将背包放在相机的视野内的特定位置处。在另一个实例中,可将汽车阻塞车道的视频转换为语义描述——例如,与定位在车道前方的车辆类型相关联的时间点的范围和与离开车辆的人相关联的时间点的第二范围的规范。在另一个实例中,在音乐事件中,可从人的图像中获得水瓶的计数。在另一个实例中,可从道路的视频流中推断出诸如车祸或滑坡的事件,从而导致事件的响应通知。在另一个实例中,系统可准备语义描述,所述语义描述包括进入和离开商店的顾客的计数,包括每个顾客在商店中停留了多长时间以及每个顾客在商店内部时所碰触或朝向示意的对象。

为了使系统将样本图像数据转换成样本图像数据的语义描述,可首先训练系统来识别“目标内容”——即,训练系统识别并且可由此类语义描述表示的内容、情况和事件。如本文中所使用,“语义描述”是关于在所述图像数据或涉及所描绘的内容的事件中所描绘的内容的含义的规范。因此,在某些实施例中,所述系统被配置来生成描绘系统应可识别的目标内容或事件的图像训练数据。特别地,在某些实施例中,图像训练数据应描绘目标内容的实例的范围。例如,实例可包括目标内容的上下文中的变化,诸如,如果采样的图像将在室外,则在不同类型的天气中描绘目标内容,从而描绘相对于相机视角具有不同取向的目标内容,或者描绘与道具项目相结合的目标内容。在某些实施例中,训练数据的上下文中的某些变化可响应于目标内容的位置处的当前或预期状况——例如,部署的相机装置可提供所述位置处的场景的平均亮度;然后,可使用此平均亮度基于平均亮度值来生成一组图像训练数据,然后可使用所述组图像训练数据训练由部署的相机装置使用的机器学习模型,在部署的相机装置处更新模型,并且因此,可在当前平均亮度下提高对所述位置的目标内容的识别。目标内容所在位置处的状况可包括,例如,天气(雪、雨、雾)、亮度、周围大部分静态对象的物理变形或改变。在室内设置的情况下,状况的改变可包括,例如,零售商店改造、假期(万圣节、圣诞节等)特定装饰品的引入,或者由于相机装置的安装位置的物理改变而引起的状况改变。

在某些实施例中,图像训练数据应当描绘从预期视角查看的目标内容的实例以及具有用于捕获样本图像的图像传感器的装置(其中所述装置可以是具有一个或多个图像传感器的相机)的光学特性。例如,图像训练数据可描绘从具有图像传感器的装置的每个图像传感器的安装高度和特定视角查看的内容。此外,图像训练数据可匹配特定图像传感器的分辨率和颜色配置文件。将在下面进一步讨论这些视角和光学特性。

图1是关于用于训练机器学习模型的系统(例如,如图2所示的示例性机器学习训练系统200)的示例性过程100的流程图。机器学习训练系统可首先用用于生成标记的训练数据的资产来填充。例如,艺术家、开发商和其他人可通过资产门户网站210向训练系统提供资产模型、图像和其他资产(102)。资产可存储在资产数据库208中(104)。资产门户网站210可包括用于接收和管理资产数据库208的内容的用户界面和相关联的应用程序——例如,门户网站210可用于提供有关已提交资产的文档,以及从数据库208修改或删除资产。资产包括用于填充场景的资产模型和资产材料。可渲染场景以生成图像;这种图像可用作图像训练数据的部件。场景包括可渲染对象和相关联的元数据(例如,限定位置、旋转、相对比例)、对象的封闭环境的规范(例如,天空球或立方体图)以及由(但不限于)例如X和Y分辨率、焦距、光圈、曝光时间、各种压缩和测光设置的性质限定的相机模型。目标内容和道具项目可表示为对象。资产模型和资产材料可用于表示对象、对象环境(例如,天气、照明、天空球或立方体图的表示)以及渲染的图像训练数据中显示的任何其他内容。资产模型限定对象的形状,并且可包括例如限定对象的三维形状的三角形网格。资产材料可包括例如渲染为对象的表面纹理的纹理(例如,以图像形式提供,诸如瓶子的粘贴标记或金属盖纹理),以及用于细化对象的表面纹理的法线图。

可将场景规范概述(关于目标内容)和种子值提供作为输入202,以准备用于训练机器学习模型来识别图像数据中的目标内容的图像训练数据。场景规范概述是限定一系列场景的一组文本命令,其中某些场景(1)包括表示目标内容的各方面(导致目标内容的肯定实例)的一个或多个对象和某些场景(2)不包括表示目标内容(导致否定实例)的一个或多个对象。可根据资产数据库208中的项目来限定指定的对象。在某些实施例中,使用一组示例性场景限定场景的范围。可使用简洁的语法来指定场景规范概述中的场景限定。在某些实施例中,场景范围包括基于使用机器学习模型来处理样本数据的相机装置的特征,诸如特定于上下文的约束,所述样本数据包括例如场景拓扑(例如,对象实例在相机装置的环境中的类型)、相机装置的传感器相对于场景的安装位置和视角以及相机装置是在移动还是静止。

实施例1:

在一个实例中,场景规范概述中的示例性场景的一部分可包括限定场景的各方面的以下三个文本命令:

set_sun_position 300 120 45//将太阳光源位置设置为空间中的某个方向,spawn_object_from_group backpacks//调用具有随机纹理的背包,mesh load_scenescenes/train_station_01//加载任意场景

在此实例中,背包对象可表示目标内容(或者目标内容的一个方面,在例如目标内容是火车站处的人丢弃背包的事件的情况下)。

对象可被限定为表示各种各样的演员和道具。例如,可将人类对象指定为具有特定性别、年龄或年龄范围、种族、与各种颜色相关联的衣物;此外,对象可表示特定的车辆或配件。可将某些对象限定为由其他对象组成或具有对象部件的复杂标记,诸如限定人体关节、面部位置、取向的坐标和表达式。例如,为了训练机器学习模型来识别背着背包的人,可使用表示单独的人、单独的背包和背着背包的人的训练数据来训练模型。此外,可指定分别对应于人和背包的训练数据的细粒度部分(例如,像素)。

可使用环境结构库来限定对象以用作道具或上下文,所述对象包括天气、植被(例如,可例如被放置为道具以辅助检测目标对象在道具对象后面移动的树木、草、灌木)和建筑物。稳健地使用道具对象并提供周密的环境范围可辅助生成更真实的位置或环境,以便提高机器学习模型识别目标对象的能力。

可将场景规范概述和种子值作为输入提供给场景随机化器204(106)。场景随机化器基于场景规范概述和种子值生成一组扩展的场景规范(108)。换句话说,可基于场景规范概述在程序上创建各种各样的场景和相关联对象。场景随机化器通过使用用于生成半随机输出的种子命令(例如,其中此类命令提取自模糊库)的种子值(例如,数字或字符串)生成一组不同版本的单个文本命令来填充一组扩展的场景规范,所述半随机输出可用于参数化各个文本命令的不同版本。场景随机化器可以是上下文感知的——也就是说,场景随机化器可生成单个文本命令的版本,其中版本的范围取决于场景的各个方面,使得所生成的变化的类型是适当的或合理的。场景上下文可由随机化器维护,所述随机化器可允许插件(例如,在运行时加载的小型Python脚本)对各种属性(例如重力、其他物理现象、本地天气、当日时间等)进行建模。插件可实现可半随机地为资产数据库中的各种对象生成合理的位置、纹理、旋转和缩放的功能。场景的合理变化可使用气候引擎、物理引擎等来建模。例如,如果场景在室内,则场景随机化器可生成室内道具而不是室外道具。如果场景是在室外并且是雨天场景,则场景随机化器可生成不同类型的雨,并将照明限制为适合于雨天场景的较低光级。在某些实施例中,半随机输出可以是例如从由场景规范概述命令中的参数锚定的某个分布(诸如具有由场景规范概述命令中的参数设置的均值的正态分布)中提取的数字。在某些实施例中,半随机输出将以种子值或基于种子值的派生种子值作为种子,并且每次使用相同的种子值时将相应地生成相同的输出。换句话说,在某些实施例中,当由模糊库进行操作时,种子值用于确定性地产生相同的文本。如果改变种子,将生成相同类型的标记数据的新品类。

可将由场景随机化器生成的一系列场景规范提供给一个或多个渲染器206,以便生成与每个场景规范相对应的一组图像(110)。渲染的图像可基于将用于生成样本图像的相机装置的每个特定图像传感器的视角和光学特性,如场景规范中所指定。从每个图像传感器的视角来看,每组图像共同表示场景的单个“快照”,并且因此,一组图像中的每个图像与场景中的相同假设时间点相关联。在某些实施例中,一组的每个图像是根据单独的场景规范生成的。光学特性可包括,例如,传感器的分辨率、颜色检测配置文件、传感器相对于相机装置的其他传感器的位置、镜头性质(诸如广角镜头与常规镜头)、光信息的类型(红外、可见光等)、焦距、光圈等。例如,如果相机装置使用其四个图像传感器生成四个4k图像,则渲染器生成的一组图像可以是四个4k图像。此外,渲染器可另外使用如场景规范中指定的资产数据库中的资产来渲染一组图像。在某些实施例中,可将一系列场景规范分配给多个渲染器(例如,数量为N的渲染器206),使得可并行执行图像的渲染。基于单个场景规范的每组渲染图像可打包到对象标记的训练包中。对象标记的训练包包括一组渲染图像和指示渲染场景中某个对象的存在与否的标记,所述对象对应于目标内容。此外,对象标记的训练包可指定一组渲染图像中的像素,所述组渲染图像表示与目标内容相对应的对象和/或其他元数据,诸如照明条件的描述、道具项目在图像中的存在或位置、对象标记的训练包是否是时间数列的成员的时间点等。在某些实施例中,场景规范概述可用于限定一系列移动对象,所述移动对象表示代表事件的目标内容,并且这种事件可在图像训练数据中表示为对象标记的训练包的时间数列。

在某些实施例中,渲染器206使用诸如虚幻引擎、Unity、GoDot、Cry引擎的游戏引擎来渲染场景规范。

然后,队列管理器204可将对象标记的训练包在生成时流式传输到一个或多个训练实例212(112)。在某些实施例中,可存在多个训练实例(例如,数量为M的训练实例)。每个训练实例212可以是例如托管要训练的机器学习模型(诸如,包括相关联权重的卷积神经网络模型)的服务器、虚拟机或云服务容器。在某些实施例中,在用一组接收到的对象标记的训练包训练机器学习模型之前,训练实例212可初始化新的机器学习模型,或者训练实例可从先前训练的模型中加载检查点(例如,检查点可包含或识别通过神经网络学习的一组权重和偏差,所述神经网络的结构与要由训练实例进行训练的神经网络具有相同的结构)。在某些实施例中,队列管理器204可收集对象标记的训练包,并且当收集到设置数量的包时,将它们分派给单个训练实例。

训练实例可使用接收到的对象标记的训练包中的每一个来训练或更新机器学习模型,使得机器学习模型被优化为将每包图像集与其适当的标记相关联(114)。在某些实施例中,在通过机器学习训练系统200的任何部件进行训练之后,不保留对象标记的训练包,因为可使用简洁限定的场景规范概述和种子值根据需要重新生成包。这提供了允许使用较大或高分辨率图像来训练机器学习模型的优点,因为在需要调整或再访训练数据以便再训练机器学习模型或确定在使用训练数据进行训练时特定的机器学习模型为什么生成意外结果的情况下,不需要分配较大的存储空间来维护训练数据。

图3描绘图像生成相机装置300的示例性部件。相机装置300包括用于对装置300的环境进行成像的两个或更多个图像传感器302。例如,图像传感器302可在相应传感器之间以一定间隔布置在装置300中,以便能够推断来自装置300的对象在装置300的环境中的深度。在某些实施例中,可收集来自定位在多个物理装置上的图像传感器302的对应信息,例如,以便有利于深度推断。图像传感器302可检测灰度(单通道)光信息、颜色(例如,生成三个或更多个颜色通道的RGB、HSV/HSB、HSL或YUV)或红外光信息。图像传感器302可能够提供4K分辨率图像(即,生成沿一维具有至少4,000像素的图像)或10K分辨率或更大分辨率图像。在某些实施例中,相机装置300可安装在地面上方固定高度处的固定位置处。在某些实施例中,相机装置可安装在诸如人、车辆或无人机的移动对象上。

相机装置300可包括一个或多个相机装置处理器304。在某些实施例中,处理器304中的任何一个可以是用于计算神经网络推断计算的专用处理器。在某些实施例中,处理器304是通用处理器。处理器304可与图像传感器302、通信模块306、其他传感器308、存储部件310以及电力系统和/或电池312通信。电力系统/电池312可与一个或多个端口314通信。

相机装置300可包括一个或多个其他传感器308,诸如用于监测热负荷或环境温度的温度传感器、加速计、麦克风等。通信模块306可包括蜂窝无线电、蓝牙无线电、ZigBee无线电、近场通信(NFC)无线电、无线局域网(WLAN)无线电、用户身份模块(SIM)卡、GPS接收器以及由它们各自使用的用于通过各种网络(诸如,远程通信网络或无线局域网)传达数据的天线。存储器310可包括一种或多种类型的计算机可读介质,诸如,RAM、光学存储装置或快闪存储器,并且可存储操作系统、应用程序、通信程序和基于由图像传感器302生成的数据进行推断的机器学习模型(例如,本地机器学习模型)。电力系统/电池312可包括电力管理系统、一个或多个电源,诸如,电池和充电系统、AC、DC、电力状态指示灯等。在某些实施例中,相机装置300的部件可被封闭在单个外壳316中。

图4描绘用于实时图像处理的示例性分布式系统400的示例性数据流和部件。在某些实施例中,相机装置300的集合被放置在监测区域404(例如,目标内容或相机装置300的环境的可能位置)内。相机装置300可通过有线或无线通信信道向网关装置406提供推断的通知或输出,并且可通过那些信道接收对相机装置的本地机器学习模型的更新。网络408表示远程通信网络、有线或无线局域网或互联网。在某些实施例中,相机装置300可在没有网关装置406的情况下连接到网络408。在某些实施例中,报告系统414在托管服务器416(诸如,HTTP服务器)的云服务或一个或多个计算装置和可基于检测到的事件或基于相机装置300处的推断发起某些动作(例如,将报告发送到客户端装置)的应用程序420上运行。例如,可将限定的动作和/或用户账户信息存储在数据存储422中。应用程序420可支持提供对用于访问数据存储422的方法的外部访问的应用程序编程接口(API)418。在某些实施例中,运行在用户装置412或其他客户端装置上的客户端应用可使用诸如HTTP或FTP的协议通过服务器416访问API 418,以便例如查看训练系统用户界面或报告系统用户界面等。训练系统200可直接与相机装置300通信或通过网络408间接与相机装置300通信。

图5是关于使用神经网络推断图像内容的示例性过程500的流程图。首先,由诸如相机装置300的相机装置的图像传感器302生成一组样本图像(502)。例如,如果相机装置使用四个图像传感器,则一组样本图像将包含四个图像。样本图像可从每个图像传感器302的视角描绘例如监测区域404的内容。在某些实施例中,同时获得表示在单个时间点处的成像的真实世界场景的一组样本图像。在某些实施例中,预处理一组样本图像以有利于推断图像内容(504)。例如,可过滤例如一组样本图像以移除噪声、被裁剪为较小的大小或降低的分辨率。在某些实施例中,此预处理由相机装置执行。然后可将所述组样本图像提供给本地相机装置神经网络模型——也就是说,可由相机装置存储和使用神经网络模型(506)。相机装置可使用本地相机装置神经网络模型对所述组样本图像的内容进行分类(508)。例如,相机装置300使用的神经网络模型可能已经被训练为基于特定相机装置300在监测区域404中的位置和视角来识别场景内的车辆(即目标内容)。通过本地相机装置神经网络模型的单次正推法来处理一组样本图像,可生成有关目标内容在所述组样本图像中存在的描述——例如,所述输出可能是描绘的若干类型的车辆中的每一者在相机装置的视野内的计数(508)。在某些实施例中,有关目标内容的存在的描述可包括目标内容在图像中的实例的位置(其中实例是目标内容的识别的每个项目,例如,识别的单个车辆),或者目标内容的类别的分配(例如,识别的每个车辆的类型,诸如小汽车或卡车)。在某些实施例中,相机装置300或与相机装置300通信的装置可进一步分析一组或多组样本图像的分类,以识别可报告的情况,诸如异常状况(510)。例如,相机装置300可被配置来在有关目标内容的存在的描述满足作为警报条件的可报告情况的情况下,则发送警报。例如,如果监测区域404是停车场,并且有关目标内容的存在的描述指示车辆(目标对象)的计数大于阈值50,则这可指示停车场已满(警报条件)。响应于满足警报条件,相机装置300可生成警报并将警报发送到系统400的部件(例如网关406或报告系统414)以向所述部件通知警报条件。在某些实施例中,可基于本地相机装置神经网络模型未能对样本图像的内容进行分类而触发可报告情况。例如,神经网络模型可为每个可能的目标内容类别生成指示所述内容不太可能被正确分类的低概率值。相机装置300可报告所述情况,所述情况在报告中包括来自一组样本图像的一个或多个图像,或与所述组样本图像有关的视频剪辑等。在某些实施例中,报告可由每个相机装置300在时间间隔(例如一小时或一天)结束时自动生成,以总结在所述时间间隔期间每个相机装置300检测到的目标内容。

图6是关于响应于对事件或状况(诸如,异常状况)的检测而再训练神经网络模型的示例性过程600的流程图。首先,例如可如过程500中那样通过相机装置300基于样本图像数据的分类来检测异常状况(602)。相机装置300(或系统400的另一个部件)可基于异常状况制定再训练的请求(604)——例如,可训练本地相机装置神经网络在满足第一条件的第一情况(例如,场景的平均照明落在第一范围内的第一情况)下检测目标内容。例如,本地相机装置神经网络可能已经使用被生成的原始的一组对象标记的训练包进行了训练以满足第一条件。如果相机装置300例如基于样本图像数据确定监测区域404的平均照明不再落在第一范围内并且因此不再满足第一条件,则可根据第二条件(例如,涵盖当前平均照明值的平均照明的第二范围)制定用于再训练的请求。所述请求可进一步识别被用作本地相机装置模型的神经网络模型。可基于所述请求来生成第二新的训练数据集(606)。例如,训练系统200可接收请求,并且可通过用第二条件自动替换用于生成第一组对象标记的训练包的场景规范概述中的第一条件的表示来生成对象标记的训练包的第二训练数据集。因此,如结合过程100的步骤所描述的,使用这种修改的场景规范概述来生成对象标记的训练包,可生成第二组对象标记的训练包,其中仅照明信息相对于第一组改变,以便更好地适应当前状况(即第二条件)。可通过使用第二训练数据集(例如,使用训练系统200)来训练在请求中识别的神经网络模型来获得更新的神经网络模型(608)。一旦再训练完成(例如,在整个第二训练数据集已用于反向传播新权重之后,或在使用第二训练数据集将神经网络模型已经训练到足够的准确水平之后),可将更新的神经网络权重提供给相机装置以用于推断(610)。

在某些实施例中,可按照预定计划的方式将更新的神经网络模型提供给相机装置300。例如,如果相机装置300使用经训练以对儿童进行计数的神经网络模型,并且对于每个万圣节,监测区域404包含大量的不给糖就捣蛋的人,则可将被训练识别盛装儿童的经过专门训练的神经网络模型自动提供给相机装置300,以替换万圣节期间的普通本地神经网络模型。

图7是关于生成训练数据和训练神经网络模型以识别目标内容的示例性过程700的流程图。首先,诸如训练系统200的系统的部件可接收场景规范概述和种子值,其中场景规范概述指定场景的范围(702)。每个场景可包括一个或多个对象和相机模型。可使用种子值基于场景规范概述来生成多个场景规范,其中基于给定场景规范概述和给定种子值生成的一组场景规范将确定性地致使生成同一组场景规范(704)。场景规范应准备好包括目标对象表示的目标内容的至少一些实例;此外,场景规范可包括作为道具对象的对象。可根据多个场景规范中的每个场景规范来生成对象标记的训练包,每个包具有(1)关于可在场景规范中表示的一个或多个目标对象的标记(例如,指示目标对象存在于场景中的位置处的标记,或者指示目标对象不存在于场景中的标记),以及(2)多个图像,其中包中的多个图像中的每一者对应于安装的相机装置的特定图像传感器(例如,特定图像可具有与特定图像传感器相同的分辨率和视角)(706)。可将生成的对象标记的训练包流式传输到包括训练实例神经网络的一个或多个训练实例(708)。可使用接收到的对象标记的训练包对训练实例神经网络进行训练,从而使神经网络提高将对象标记的训练包的标记映射到对象标记的训练包的图像的能力(710)。对象标记的训练包在训练实例神经网络中被用于反向传播权重后,不被保留。在完成使用对象标记的训练包的训练时,将训练实例神经网络提供给监测区域404中的对应相机装置300(712)。

图8示出根据本发明的一些实施例的示例性计算系统的框图。

图8是示出表示本文所讨论的计算机系统或电子装置的任一者的示例性计算系统800的框图。注意,并非所有的各种计算机系统都具有系统800的所有特征。例如,系统可不包括显示器,因为显示功能可由通信地耦接到计算机系统的客户端计算机提供,或者显示功能可能是不必要的。

系统800包括总线2506或用于传达信息的其他通信机制,以及与总线2506耦接的用于处理信息的一个或多个处理器2504。计算机系统800还包括耦接到总线2506的用于存储将由处理器2504执行的信息和指令的主存储器2502,诸如随机存取存储器或其他动态存储装置。主存储器2502还可用于在执行将由处理器2504执行的指令期间,存储临时变量或其他中间信息。

系统800还可包括只读存储器2508或耦接到总线2506的用于为处理器2504存储静态信息和指令的其他静态存储装置。提供了存储装置2510(其可以是硬盘、基于快闪存储器的存储介质、磁带或其他磁存储介质、光盘(CD)-ROM、数字通用光盘(DVD)-ROM,或其他光学存储介质,或处理器2504可从中读取的任何其他存储介质中的一者或多者),并且所述存储装置2510耦接到总线2506,以用于存储信息和指令(例如,操作系统、应用程序等)。

计算机系统800可通过总线2506耦接到显示器2512以将信息显示给计算机用户。诸如键盘2514、鼠标2516或其他输入装置2518的输入装置可耦接到总线2506,以用于将信息和命令选择传达给处理器2504。通信/网络部件2520可包括网络适配器(例如,以太网卡)、蜂窝无线电、蓝牙无线电、NFC无线电、GPS接收器,以及各自用于通过各种网络(诸如,远程通信网络或LAN)传达数据的天线。

本文所提及的过程可由处理器2504执行包含在主存储器2502中的计算机可读指令的适当序列来实现。可从诸如存储装置2510的另一计算机可读介质将此类指令读入主存储器2502中,并且执行包含在主存储器2502中的指令的序列致使处理器2504执行相关联的动作。在替代实施例中,可使用硬连线电路或固件控制的处理单元(例如,现场可编程门阵列)来代替处理器2504及其相关联的计算机软件指令或与之组合以实现本发明。可以任何计算机语言来呈现计算机可读指令,所述计算机语言包括但不限于:Python、Objective C、C#、C/C++、Java、Javascript、汇编语言、标示语言(例如HTML、XML)等。通常,所有上述术语意在涵盖为实现给定目的而按序列执行的任何一系列逻辑步骤,这是任何计算机可执行应用程序的标志。除非另外特别指出,应当了解,在本发明的整个描述中,诸如“处理”、“运算”、“计算”、“确定”、“显示”、“接收”、“传输”等术语的使用是指适当编程的计算机系统(诸如计算机系统800)或类似的电子计算装置的动作和过程,所述系统或装置操纵其寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据转变成其存储器或寄存器或者其他此类信息存储、传输或显示装置内的类似地表示为物理量的其他数据。

图9示出关于用于在实域图像与合成域图像之间进行转换的过程900和905的图表。如本文所使用,“域转移”是指将第一图像分类的图像转换为具有第二图像分类的图像的视觉特性的图像(或基于来自第一图像分类的输入图像来生成新图像,其中所述新图像具有第二图像分类的图像的视觉特性)。例如,域转移可包括将统计信息、视觉样式、外观或性质从一个图像集转移到另一图像集(例如,将马的图像转换为斑马的图像,或者通过将可能的伪影幻化成图像,使模糊的图像再次变得清晰)。在某些实施例中,合成域图像是渲染的场景,其中所述场景包括资产模型和资产材料的规范。在某些实施例中,合成域图像是被渲染为对象描述和对象环境描述的图像。在某些实施例中,合成域图像是基于对象的语义描述而生成的图像。对象是可表示的项目,诸如人、武器、椅子、树或建筑物。对象的实例可用合成域图像或实域图像数据表示。在某些实施例中,实域图像是由图像传感器基于图像传感器的环境中的光信息生成的图像。在某些实施例中,实域图像是图像传感器的视野内的实际对象实例和/或图像传感器的视图内的环境的表示。在某些情况下,合成域图像具有与实域图像不同的视觉特性。例如,当与对象的实域图像相比时,使用三维渲染引擎(诸如,游戏引擎)生成的合成域图像可将对象描绘为具有不同的纹理或颜色。在一些实例中,合成域图像可比对应的实域图像使用更少的细节来描绘对象。迄今为止,人类往往能够从实际真实场景的视频中轻松地区分现代计算机游戏中的场景。然而,人类也可从合成场景的图像中学习并将他们的理解应用于类似场景的真实图像。在此公开的某些实施例提供了计算机机制,所述计算机机制使系统能够实现与人类从合成图像中学习的应用类似的结果。图9示出描绘年老的白人对象的实例的示例性合成域图像902,以及描绘年老的白人对象的另一个实例的对应示例性实域图像906。

训练机器学习模型以使用合成域图像数据识别图像中的对象的实践带来的挑战是,在合成数据上训练的模型可能不能很好地推广到检测实域图像数据中描绘的相同对象。解决此问题的一种可能方法是遵循以下步骤:(1)生成用于训练给定机器学习模型的合成域图像数据,(2)将合成域图像902转换为真实显现图像(real-appearing images)904(例如,过程900)——例如,通过将内容相关的噪声模型应用于图像数据(例如,通过使用生成对抗网络(GAN)算法),或通过将可能的伪影幻化到合成域图像数据中,以及(3)使用真实显现图像数据来训练机器学习模型,使得机器学习模型在实域样本图像上良好地执行。然而,将合成域图像数据转换为真实显现图像数据是困难的,因为例如将细节幻化为细节不足的合成域图像是具有挑战性的任务。替代方法是代之以依赖于将实域图像906转换为合成图像908(例如,过程905)。替代方法的一个实例是遵循以下步骤:(1)生成用于训练机器学习模型的合成域图像数据,(2)使用合成域图像数据训练机器学习模型,以及(3)将实域样本图像转换为合成显现图像908(过程905),然后(4)使用训练机器学习模型推断在正在合成显现样本图像的内容。如本发明人所确定的,这种替代方法具有的优点是,将实域图像转换为合成显现图像(905)——通过此方法从实域图像中移除了细节——与将合成图像转换为真实显现图像(900)相比是更容易的计算任务。然而,一般来说,域转移操作的计算成本很高(例如,每个图像帧10至50GigaOps)。出于这个原因,已知的图像域转移实现通常依赖于访问服务器或云计算来进行以下两者:训练模型(其中模型是例如GAN)和使用训练后的模型对样本图像进行域转移。参见,例如,Isola等人的“Image-to-Image Translationwith Conditional Adversarial Networks”,arXiv:1611,07004v2(2017)和Zhu等人的“Unpaired Image-to-Image Translation Using Cycle-Consistent AdversarialNetworks”,arXiv:1703,10593v4(2018)。

图10是用于关于训练机器学习模型以将实域图像转换为合成图像(即,执行从实域中的图像到具有合成域的显现的图像的域转移)的示例性过程1000的流程图。在某些实施例中,这种机器学习模型是一种类型的生成对抗网络(诸如周期GAN(也称为周期一致的对抗网络))或并入一种类型的生成对抗网络。组装或接收第一组实域训练图像(1002)。在某些实施例中,实域训练图像可与表征期望在某个位置处看到的对象和环境的类型的场景类型相关联。例如,场景类型可以是室内场景、室外场景、城市场景、乡村场景、夜晚场景、白天场景或特定位置处的特定视野。在某些实施例中,场景类型可以是一般的。在某些实施例中,实域训练图像具有相同的分辨率或尺寸;在其他实施例中,实域训练图像具有可变的分辨率或尺寸。生成第二组合成域训练图像(1004)。在某些实施例中,合成域训练图像与与第一组训练图像的场景类型相同的场景类型相关联。可使用以上描述的过程的各个方面(诸如,过程100的步骤102、104、106、108和110)生成合成域训练图像。在某些实施例中,可基于种子规范概述和种子值来生成合成域训练图像。注意,出于训练域转移模型的目的,在某些实施例中,不需要生成或维护关于所描绘的对象的语义标记。在某些实施例中,第一组训练图像和第二组训练图像两者描绘在这两组图像上具有潜在的结构类似性的对象(例如,描绘具有相同或类似形状但形状的大小不变化的对象的类似分布),但是其中来自第一组的每个特定图像不必与来自第二组的对应特定图像成对。例如,如果对象中的某些是人类,则可将在第一组训练图像和第二组训练图像中描绘的人类描绘为具有不同的年龄、种族、性别、穿戴着不同的饰品和不同类型的衣服,并且可以各种构型(诸如坐着、站着、走着、手里持有另一个对象、使手臂/手伸向另一个对象等)描绘此类人类。

然后可使用第一组训练图像和第二组训练图像来训练机器学习模型(1006)。例如,在机器学习模型是周期GAN的情况下,可训练生成器网络以生成从第一组(真实)到第二组(合成)和从第二组(合成)到第一组(真实)的映射,并且因此基于第一组图像和第二组图像,结合被训练来分别区别第一组图像与第一组显现图像、以及第二组图像与第二组显现图像的对抗性鉴别器神经网络生成第一组显现图像和第二组显现图像。在这种实施例中,可训练生成器以基于看起来与来自相反域的图像类似的训练图像来生成图像,同时可对鉴别器进行训练以在转移的图像与训练图像之间进行区分(例如,在合成显现图像与合成图像之间,以及在真实显现图像与真实图像之间进行区分)。当对这种机器学习模型进行充分训练时,所述模型的真实到合成生成器部件将能够生成结构上基于输入实域图像906的合成显现图像908。然后可将训练模型的全部或部件提供给边缘装置,诸如,安装的相机装置300(1008)。例如,可将模型的真实到合成生成器部件提供给安装的相机装置,以用于将由相机装置的图像传感器获得的真实图像转换成对应的合成显现图像908。然后,可通过相机装置处的对象识别机器学习模型将对应的合成显现图像用于后续推断。

图11是关于使用机器学习模型来识别实域样本图像中描绘的对象的示例性过程1100的流程图。机器学习模型可包括对象识别部件和真实到合成图像部件。在某些实施例中,对象识别部件可以是已被训练来识别合成域图像中描绘的对象或将合成域图像中描绘的对象分类的卷积神经网络。在某些实施例中,真实到合成图像部件是周期GAN的真实到合成生成器部件。机器学习模型可在安装的相机装置300处被存储和使用,以便实现在相机装置的视野内的对象和事件的实时语义推断。首先,可例如通过安装的相机装置的图像传感器来生成一个或多个实域样本图像(1102)。实域样本图像可描绘对象在安装的相机装置(诸如,装置300)的视野内的实例。接下来,在所安装的相机装置处,真实到合成图像部件基于每个实域样本图像生成合成显现图像(1104)。在某些实施例中,可将此域转移操作视为在过程500的步骤504中的在分类之前预处理一组样本图像的方面。接下来,在安装的相机装置处,通过对象识别部件,可识别在合成显现样本图像中描绘的对象,例如,如结合过程500的步骤508所描述的那样(1106)。基于识别的合成显现样本图像的内容,相机装置300可确定事件是否已经发生,和/或可准备有关识别的内容或事件的报告,并且可将所述报告提供给例如系统400的另一个部件(1108)。

尽管已经示出和描述了优选实施例,但是应当理解,并不旨在通过这种公开来限制本发明,而是旨在覆盖落入本发明的精神和范围内的所有修改和替代构造。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号