掌桥专利:专业的专利平台
掌桥专利
首页

使用卷积神经网络来重建场景的方法、系统、制品和装置

文献发布时间:2023-06-19 09:29:07


使用卷积神经网络来重建场景的方法、系统、制品和装置

相关申请

美国临时专利申请第62/674,462号由此通过引用全部并入本文。由此要求美国临时专利申请第62/674,462号的优先权。

技术领域

本公开总体上涉及场景重建,并且更具体地,涉及使用卷积神经网络来重建场景的方法、系统、制品和装置。

背景技术

近年来,图像和视频数据已变得非常可用,特别是在静态摄像机(例如,监视摄像机)和动态移动摄像机(例如,四旋翼摄像机、无人机等)出现的情况下。尽管人脑包括基于以前的经验从单个视角推断对象的能力,但是捕获的图像和视频数据的一个或多个空隙针对基于机器的解释和/或分析可能会导致问题。

附图说明

图1是根据本公开的教导构造的示例重建系统的示意图示。

图2是由图1的示例重建系统实现以使用卷积神经网络来重建场景的类或(OR-like)架构。

图3是表示可以被执行以实现合成数据库创建的机器可读指令的流程图。

图4是表示可以被执行以实现场景重建的机器可读指令的流程图。

图5是被构造为执行图3和/或图4的指令来实现图1和图2的示例重建系统的示例处理平台的框图。

各幅图未按比例绘制。而是,可以在附图中放大层或区域的厚度。

具体实施方式

获取的图像数据可以包括由一个或多个因素引起的误差和/或空隙。在一些示例中,获取的图像数据中的误差和/或空隙是由使图像获取设备(例如,光检测和测距(LiDAR)系统)饱和的高反射性表面引起的。在一些示例中,误差和/或空隙是由场景中的遮挡(例如,树木、车辆、建筑物等)引起的。在本文公开的示例中,机器学习用于创建可以用于处理输入传感器数据以纠正输入数据中的误差(例如,由场景中的遮挡引起的空隙)的一个或多个模型。

机器学习(ML)和/或人工智能(AI)使机器(例如,计算机、逻辑电路等)能够基于给定的输入生成输出。AI使机器能够使用模型来处理输入并生成输出。ML使模型得以训练,以使得特定的(多个)输入导致特定的(多个)输出。通常,实现ML/AI系统涉及两个阶段,学习/训练阶段和推理阶段。在学习/训练阶段,训练算法用于训练模型,以基于例如训练数据在给定特定输入的情况下创建特定输出。通常,模型包含内部参数,这些参数指导如何将输入数据转换为输出数据。另外,将超参数用作训练过程的一部分,以控制学习被执行的方式(例如,学习率、机器学习模型中要使用的层数等)。一旦被训练,其他数据(例如,实时数据)在推理阶段输入模型,以创建输出。该推理阶段是AI在“思考”以基于从训练(例如,从模型)中学习到的内容生成输出时。在一些示例中,输入数据在被用作机器学习模型的输入之前经过预处理。而且,在一些示例中,在由AI模型生成输出数据之后,输出数据可以经过后处理,以将输出转换成有用的结果(例如,将由机器执行的指令)。

存在许多不同类型的机器学习模型和/或机器学习架构。在本文公开的示例中,使用了卷积神经网络(CNN)模型。在本文公开的示例中,将附加的“或”门结构添加到机器学习模型以减少误报(例如,减少经由机器学习模型的处理引入误差的可能性)。使用CNN模型使得能够处理任意大小的传入传感器数据。然而,可以附加地或替代地使用其他模型架构,例如,深度神经网络(DNN)、支持向量机(SVM)等。

如上面指出的,在给定特定输入的情况下,训练ML/AI模型以产生特定输出。基于ML/AI模型的类型和/或预期输出,可以执行不同类型的训练。例如,监督训练使用输入和对应的期望输出来选择减少模型误差的用于ML/AI模型的参数(例如,通过迭代选择参数的组合)。

在本文公开的示例中,使用地面真实数据(例如,已知不包括噪声的精选的传感器数据)和具有添加的噪声的地面真实数据来训练ML/AI模型。即,将添加了噪声的地面真实数据用作训练输入,而将(没有添加的噪声的)地面真实数据用作预期输出。在本文公开的示例中,训练在中央设施处(例如,在云计算环境中)执行,但是可以附加地或替代地在任何其他计算环境处执行。

一旦训练完成,就将模型存储在数据库中。该数据库可以位于服务器位置(例如,在云计算环境中)。在一些示例中,可以将模型提供给边缘设备(例如,边缘用户计算机、无人机、物联网(IoT)设备等)。然后可以由服务器和/或边缘设备执行模型以生成重建的场景。这种方法在其中无人机在环境中操作并尝试执行场景重建以用于导航和/或避免碰撞目的的场景中很有用。

图1是示例重建系统100的示意图示。在图1所示的示例中,重建系统100包括示例扫描重建管理器101、(多个)传感器102和传感器数据存储装置(103)。示例扫描重建管理器101包括示例传感器数据获取器104、示例环境检测器106、示例模型选择器108、示例模型构建器110、示例模型调整器112、示例误差特性评估器114、示例合成数据库构建器116、示例合成数据存储装置124和示例场景重建器130。示例总线118通信地连接示例重建管理器101的上述结构。示例传感器数据获取器104也通信地连接至示例传感器数据源103和/或(多个)示例传感器102。

图1的所示示例的(多个)示例传感器102由一个或多个数据获取传感器实现,例如,一个或多个光检测和测距(LiDAR)传感器、图像传感器、距离传感器、超声传感器等。在一些示例中,使用多种不同类型的传感器。在本文公开的示例中,(多个)传感器102向传感器数据获取器104提供数据。在一些示例中,来自(多个)传感器102的数据被存储在传感器数据存储装置103中。在一些示例中,传感器数据作为指示三维空间中的图像信息的体素(体积元素)被存储和/或以其他方式提供。在一些其他示例中,传感器数据作为用于生成体素表示的图像数据被提供。在一些示例中,传感器数据作为用于生成体素表示的点云被提供。在一些示例中,体素包括指示三维空间中的点和/或区域的占用(例如,特定空间是否被对象消耗)的二进制值。在一些示例中,这样的体素信息包括附加信息,例如,颜色(例如,RGB(红色、绿色、蓝色))数据、亮度数据等。

图1的所示示例的示例传感器数据存储装置103由用于存储数据的任何存储器、存储设备和/或存储盘来实现,例如,闪速存储器、磁性介质、光学介质、固态存储器、(多个)硬盘驱动器、(多个)拇指驱动器等。此外,存储在示例传感器数据存储装置103中的数据可以是任何数据格式,例如,二进制数据、逗号分隔的数据、制表符分隔的数据、结构化查询语言(SQL)结构等。虽然在所示示例中,传感器数据存储装置103被示为单个设备,但是本文描述的示例传感器数据存储装置103和/或任何其他数据存储设备可以由任何数量和/或类型的存储器来实现。在图1的所示示例中,示例传感器数据存储装置103存储传感器数据(例如,由(多个)传感器102收集的缓存的传感器数据)和/或地面真实数据(例如,已知不包括噪声的精选的传感器数据)。

图1的所示示例的示例传感器数据获取器104是由诸如硬件处理器之类的逻辑电路来实现的。然而,可以附加地或替代地使用任何其他类型的电路,例如,一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)专用集成电路(ASIC)、(多个)可编程逻辑器件(PLD)、(多个)现场可编程逻辑器件(FPLD)、(多个)数字信号处理器(DSP)等。示例传感器数据获取器104获取地面真实数据和/或传感器数据(例如,图像、视频等)。在一些其他示例中,传感器数据和/或地面真实数据作为图像数据被提供,示例传感器数据获取器104使用该图像数据来生成体素表示。在一些示例中,传感器数据和/或地面真实数据作为点云被提供,示例传感器数据获取器104使用该点云来生成体素表示。

图1的所示示例的示例环境检测器106是由诸如硬件处理器之类的逻辑电路来实现的。然而,可以附加地或替代地使用任何其他类型的电路,例如,一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)ASIC、(多个)PLD、(多个)FPLD、(多个)可编程控制器、(多个)GPU、(多个)DSP等。示例环境检测器106识别地面真实数据和/或传感器数据的特性和/或(多个)特性类型。在本文公开的示例中,这样的特性包括识别环境是城市环境(例如,城市景观)还是乡村环境。在一些示例中,可以识别环境的另外的特性,例如,环境中通常存在的建筑物和/或建筑的类型。例如,现代城市景观/建筑(例如,旧金山、纽约等)可能会产生与其他城市景观/建筑(例如,意大利的锡耶纳;爱尔兰的都柏林)不同的模型。在一些示例中,包括在传感器数据中的元数据(例如,可交换图像文件格式(EXIF)数据)可以用于确定环境的地理位置。

图1的所示示例的示例模型选择器108是由诸如硬件处理器之类的逻辑电路来实现的。然而,可以附加地或替代地使用任何其他类型的电路,例如,一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)ASIC、(多个)PLD、(多个)FPLD、(多个)可编程控制器、(多个)GPU、(多个)DSP等。示例模型选择器108基于由环境检测器106识别的(多个)环境特性来选择合成数据库以供在场景重建中使用。在本文公开的示例中,合成数据库表示在执行场景重建时要使用的一个或多个机器学习模型。

图1的所示示例的示例模型构建器110是由诸如硬件处理器之类的逻辑电路来实现的。然而,可以附加地或替代地使用任何其他类型的电路,例如,一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)ASIC、(多个)PLD、(多个)FPLD、(多个)可编程控制器、(多个)GPU、(多个)DSP等。示例模型构建器110将地面真实数据划分为训练集。在本文公开的示例中,使用三个训练集。然而,可以附加地或替代地使用任何其他数量的训练集。在一些示例中,训练集各自包括与其他训练集相同的数据。这种方法允许通过合成数据库构建器116将各种级别的噪声施加到训练集。然而,在一些其他示例中,使用单个训练集,并且渐进噪声量被施加于训练集。在本文公开的示例中,训练集具有相同的大小。然而,可以附加地或替代地使用任何大小的训练数据。

示例模型构建器110使用训练集(包括合成数据库构建器116施加的噪声)来训练模型。在本文公开的示例中,使用卷积神经网络(CNN)实现模型。然而,可以附加地或替代地使用任何其他机器学习模型架构。在本文公开的示例中,示例模型构建器110使用随机梯度下降来训练模型。然而,可以附加地或替代地使用任何其他训练算法。在本文公开的示例中,关于每个训练集,执行训练直到达到验证数据集(例如,地面真实数据的一部分和/或噪声被施加的训练数据)与地面真实数据之间的可接受的误差水平为止。

然后,示例模型构建器110确定是否存在任何附加训练集,并且如果存在,则重复训练,直到已经使用了所有训练集为止。在本文公开的示例中,可变噪声量可以被施加于各种训练集(例如,通过合成数据库构建器116)。例如,在第一次迭代中,第一噪声量可以被施加到第一训练集(例如,10%噪声),而在第二次迭代中,与第一噪声量不同的第二噪声量可以被施加到第二训练集,例如,20%噪声。在本文公开的示例中,使用三个训练集,其噪声值分别为10%、20%和50%。使用渐增的噪声量改进模型的收敛性,因为在噪声逐渐增加的场景中,模型会逐渐对其自身进行改进。

图1的所示示例的示例模型调整器112是由诸如硬件处理器之类的逻辑电路来实现的。然而,可以附加地或替代地使用任何其他类型的电路,例如,一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)ASIC、(多个)PLD、(多个)FPLD、(多个)可编程控制器、(多个)GPU、(多个)DSP等。一旦模型构建器110已经使用所有训练集来生成模型,示例模型调整器112就会利用剩余的“或”门连接适配和/或以其他方式增强模型。因此,在一些示例中,模型调整器112可以被称为“或”门定制器。如上面指出的,添加的“或”门通过消除虚假推理来改进系统精度。也就是说,“或”门架构确保模型的最终结果(例如,当与实时数据结合使用时)不会导致创建错误的体素数据。换句话说,保证系统的性能不比输入数据差。

典型的CNN技术以与产生一定程度误差的回归类似的方式操作。在一些传统方法中,CNN技术在图像输入数据和一个或多个卷积层之间采用逻辑“与”运算。这样,如果有噪声的和/或以其他方式不完美的(例如,包含误差/空隙)输入传感器不包含指示当前结构的特定体素的信息,并且CNN层建议指示当前结构的非零概率,则逻辑“与”架构产生零值输出。类似地,如果有噪声的输入包括指示结构的体素(例如,体素中的二进制值“1”),但是CNN层迭代不指示结构,则逻辑“与”架构产生零值输出。这样,传统的CNN技术可能导致输出图像重建比初始输入图像差(例如,当与真实数据相比时,包含更多的误差)。在其中输入传感器数据中的空隙很常见的环境中,这种影响会加剧。

本文公开的示例部分地通过示例模型调整器112在剩余连接中采用类“或”门(OR-like gate)来改进场景重建,从而消除了虚假推理(例如,误报识别)。图2示出了示例类“或”架构200。在图2的所示示例中,示例架构200包括编码器阶段202,其包括第一网络层204、第二网络层206和第三网络层208。图2的所示示例还包括解码器阶段210,其包括对应的第四网络层212、第五网络层214和第六网络层216。为了在示例扫描重建管理器101的卷积活动期间消除虚假推理,示例架构200包括对应的“或”门218、219、220,其接受与图像数据相关联的输入以及中间的卷积输出。在一些示例中,架构200生成结合源图像数据的特定细微差别而适配的一个或多个合成数据源/模型。

返回图1,图1的所示示例的示例误差特性评估器114是由诸如硬件处理器之类的逻辑电路来实现的。然而,可以附加地或替代地使用任何其他类型的电路,例如,一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)ASIC、(多个)PLD、(多个)FPLD、(多个)可编程控制器、(多个)GPU、(多个)DSP等。示例误差特性评估器114确定与感兴趣的环境相关联的典型误差特性。例如,城市环境(例如,具有金属结构和/或玻璃窗的环境)可能会在传感器数据中遇到反射。这样的反射可能使其自身表现为未被占用的体素(此时该体素实际上应该具有被占用的值)。示例合成数据库构建器116使用误差特性来将特定类型和/或量的误差(例如,噪声)施加于地面真实数据。

图1的所示示例的示例合成数据库构建器116是由诸如硬件处理器之类的逻辑电路来实现的。然而,可以附加地或替代地使用任何其他类型的电路,例如,一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)ASIC、(多个)PLD、(多个)FPLD、(多个)可编程控制器、(多个)GPU、(多个)DSP等。示例合成数据库构建器116将特定于环境的误差/噪声注入地面真实数据的第一训练集。为了将噪声施加于训练集,示例合成数据库构建器116将一个或多个体素从已占用值(例如,指示对象在特定位置处存在)切换为未占用值(例如,指示对象在特定位置处不存在)。在本文公开的示例中,出现在训练数据中的体素的百分比被切换(例如,10%、20%等)。然而,可以附加地或替代地使用用于识别要切换的体素的任何其他方法。此外,在一些示例中,代替从已占用值切换为未占用值,合成数据库构建器116可以将体素从未占用值切换为已占用值(例如,表示噪声,该噪声指示对象在特定位置处存在,此时在该位置处没有这样的对象)。在本文公开的示例中,合成数据库构建器116将噪声随机施加到训练数据集中的体素。然而,可以以任何其他方式将噪声施加到训练数据集中的体素。

图1的所示示例的示例合成数据存储装置124由用于存储数据的任何存储器、存储设备和/或存储盘来实现,例如,闪速存储器、磁性介质、光学介质、固态存储器、(多个)硬盘驱动器、(多个)拇指驱动器等。此外,示例合成数据存储装置124中存储的数据可以具有任何数据格式,例如,二进制数据、逗号分隔的数据、制表符分隔的数据、结构化查询语言(SQL)结构等。虽然在所示示例中,合成数据存储装置124被示为单个设备,但是本文描述的示例合成数据存储装置124和/或任何其他数据存储设备可以由任何数量和/或类型的存储器来实现。在图1的所示示例中,示例合成数据存储装置124存储可以用于场景重建的特定于环境的机器学习模型(例如,合成数据库)。

图1的所示示例的示例场景重建器130是由诸如硬件处理器之类的逻辑电路来实现的。然而,可以附加地或替代地使用任何其他类型的电路,例如,一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)ASIC、(多个)PLD、(多个)FPLD、(多个)可编程控制器、(多个)GPU、(多个)DSP等。在(多个)经训练的模型的推理和/或使用阶段期间,示例场景重建器130使用所选择的模型来处理传感器数据(例如,经由传感器数据获取器104接收的传感器数据),以生成重建的场景。以这种方式,使用针对由传感器数据表示的特定环境适配的机器学习模型来创建场景(例如,以考虑到预期在正在重建的环境中出现的误差)。这样的适配确保在分析传感器数据时考虑特定于该类型环境的噪声。然后,所生成的场景可以用于例如促进无人机的导航。

在操作中,示例传感器数据获取器104从示例传感器数据源103和/或(多个)示例传感器102获取传感器数据,例如,图像数据。获取的图像数据可以与以不同的方式影响图像获取设备/硬件的特定类型的环境相关联。例如,当在城市环境中收集空间数据时,LiDAR系统可能会表现出特定的误差。更具体地,后现代城市环境(例如,旧金山)可能包括利用高反射性材料(例如,高反射性玻璃、高反射性金属等)的办公楼和/或摩天大楼,这样的高反射性材料使得(多个)LiDAR传感器变得饱和。然而,由于例如相对较大程度的光学突变的建筑物材料,LiDAR系统在传统城市(例如,锡耶纳-意大利、巴斯-英格兰等)中可能不会以相同程度表现出这种误差。相反,LiDAR系统在此类环境中可能会表现出由阴影引起的不同类型的误差。

示例环境检测器106识别与获取的传感器数据相关联的环境目标,并且示例模型选择器108(从示例合成数据存储装置124中)选择与所识别的环境目标相关联的合成数据库。环境目标可能包括但不限于由后现代城市图像、传统城市图像、后现代住宅图像、乡村图像等引起的情形和细微差别。一般而言,所选择的合成数据库包括与获取的图像数据相关的训练数据,以便当获取的图像包括空隙和/或误差时,改进图像重建工作。示例模型选择器108选择与所识别的环境目标相关联的合成数据库和/或数据集,并且示例模型构建器110构建CNN。

示例误差特性评估器114确定与在其中取得地面真实数据的环境相关联的典型误差特性。如上面描述的,在地面真实数据是在后现代城市环境中取得的情况下,则示例误差特性评估器114将亮度饱和识别为基于LiDAR的获取系统感兴趣的特性。示例合成数据库构建器116将特定于环境的误差注入到地面真实数据中,并且通过一个或多个神经网络训练操作来开发特定于环境的模型。这样,该模型可以应用于其他类似情况的环境,而无需针对替代环境(例如,另一个后现代城市,其表现出建筑材料具有相对高程度的光反射率)重新获取地面真实数据。在一些示例中,环境可以对应于要承载(多个)传感器102的传感器平台(例如,操作(多个)传感器102的设备)预期运行的区域的类型。例如,环境可以对应于自动驾驶车辆在其上运行的道路的类型(例如,城市街道、郊区街道、乡村道路、高速公路等)。

在一些示例中,扫描重建管理器101在服务器处实现。在这样的示例中,然后可以使用附加的服务器资源来执行对(多个)机器学习模型的训练。此外,在服务器处实现的扫描重建管理器101然后可以从传感器平台(例如,操作(多个)传感器102的设备)接收传感器数据,并且向传感器平台提供重建的场景。在一些示例中,扫描重建管理器101被实现为传感器平台的组件和/或与传感器平台通信。这种方法使传感器平台(例如,移动设备、无人飞行器(UAV)、无人机、工业设备、自动驾驶汽车等)能够本地处理传感器数据并执行特定于环境的场景重建。

虽然在图1和图2中示出了实现图1的重建系统100的示例方式,但是图1和图2示出的元件、进程和/或设备中的一个或多个可以以任何其他方式组合、分割、重新布置、省略、消除和/或实现。此外,图1的示例传感器数据获取器104、示例环境检测器106、示例模型选择器108、示例模型构建器110、示例模型调整器112、示例特性评估器114、示例合成数据库构建器116、示例合成数据存储装置124、示例场景重建器130和/或更一般地示例扫描重建管理器101可以通过硬件,软件,固件和/或硬件、软件和/或固件的任何组合来实现。因此,例如,图1的示例传感器数据获取器104、示例环境检测器106、示例模型选择器108、示例模型构建器110、示例模型调整器112、示例特性评估器114、示例合成数据库构建器116、示例合成数据存储装置124、示例场景重建器130和/或更一般地示例扫描重建管理器101中的任何一个可以通过一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)可编程控制器、(多个)图形处理单元(GPU)、(多个)数字信号处理器(DSP)、(多个)专用集成电路(ASIC)、(多个)可编程逻辑器件(PLD)和/或(多个)现场可编程逻辑器件(FPLD)来实现。当阅读到本专利的装置或系统权利要求中的任一个以涵盖纯软件和/或固件实现方式时,图1的示例传感器数据获取器104、示例环境检测器106、示例模型选择器108、示例模型构建器110、示例模型调整器112、示例特性评估器114、示例合成数据库构建器116、示例合成数据存储装置124、示例场景重建器130和/或更一般地示例扫描重建管理器101中的至少一个特此明确地定义为包括非暂时性计算机可读存储设备或存储盘,例如,存储器、数字通用盘(DVD)、光盘(CD)、蓝光盘等,其包括软件和/或固件。更进一步,图1的示例重建系统100可以包括除了或替代图1和/或图2所示的元件、进程和/或设备的一个或多个元件、进程和/或设备,和/或可以包括所示的元件、进程和设备中的任何一个或全部中的一个以上。如本文所使用的,短语“通信”(包括其变体)涵盖直接通信和/或通过一个或多个中间组件的间接通信,并且不要求直接的物理(例如,有线)通信和/或恒定的通信,而是附加地包括以周期性间隔、计划间隔、非周期性间隔和/或一次性事件的选择性通信。

在图3和/或图4中示出了流程图,其表示用于实现图1和/或图2的重建系统100的示例硬件逻辑、机器可读指令、硬件实现的状态机和/或其任何组合。机器可读指令可以是用于由计算机处理器执行的可执行程序或可执行程序的一部分,该计算机处理器例如是下面结合图5讨论的示例处理器平台500中所示的处理器512。程序可以体现为存储在诸如CD-ROM、软盘、硬盘驱动器、DVD、蓝光盘或与处理器512相关联的存储器之类的非暂时性计算机可读存储介质中的软件,但是整个程序和/或其部分可以替代地由除处理器512之外的设备执行,和/或体现为固件或专用硬件。此外,尽管参照图3和图4所示的流程图描述了示例程序,但是可以替代地使用实现示例重建系统100的许多其他方法。例如,可以改变框的执行顺序,和/或可以改变、消除或组合所描述的框中的一些框。附加地或替代地,框中的任一个或所有框可以由构造成在不执行软件或固件的情况下执行对应操作的一个或多个硬件电路(例如,分立和/或集成的模拟和/或数字电路、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路等)来实现。

本文描述的机器可读指令可以以压缩格式、加密格式、分段格式、打包格式等中的一种或多种存储。本文描述的机器可读指令可以存储为数据(例如,指令、代码、代码表示的部分等),该数据可以用于创建、制造和/或产生机器可执行指令。例如,机器可读指令可以被分段并且存储在一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可能要求安装、修改、改编、更新、组合、补充、配置、解密、解压缩、解包、分发、重新分配等中的一项或多项,以使它们可以由计算设备和/或其他机器直接读取和/或执行。例如,机器可读指令可以存储在多个部分中,这些部分被单独压缩、加密并存储在单独的计算设备上,其中,这些部分在解密、解压缩和组合时形成一组可执行指令,该组可执行指令实现了诸如本文描述的程序之类的程序。在另一示例中,机器可读指令可以以它们可以被计算机读取的状态存储,但是要求添加库(例如,动态链接库(DLL)、软件开发套件(SDK)、应用编程接口(API)等),以便在特定计算设备或其他设备上执行指令。在另一个示例中,在机器可读指令和/或(多个)对应程序可以整体或部分执行之前,可能需要配置机器可读指令(例如,存储设置、输入数据、记录网络地址等)。因此,所公开的机器可读指令和/或(多个)对应程序旨在涵盖这样的机器可读指令和/或(多个)程序,而与机器可读指令和/或(多个)程序在存储或以其他方式静止或行进时的特定格式或状态无关。

如上面提及的,图3-4的示例进程可以使用存储在非暂时性计算机和/或机器可读介质(例如,硬盘驱动器、闪速存储器、只读存储器、压缩盘、数字通用盘、高速缓存、随机存取存储器和/或其中以任何持续时间存储信息(例如,延长的时间段、永久地、短暂的时刻、临时缓冲和/或缓存信息)的任何其他存储设备或存储盘)上的可执行指令(例如,计算机和/或机器可读指令)来实现。如本文所使用的,术语非暂时性计算机可读介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号并排除传输介质。

“包括”和“包含”(及其所有形式和时态)在本文中用作开放式术语。因此,无论何时权利要求将任何形式的“包括”或“包含”(例如,包含有、包括有、包含了、包括了、具有等)作为序言或在任何种类的权利要求陈述中采用,应理解为在不超出对应权利要求或陈述的范围的情况下,可以存在附加元素、术语等。如本文中所使用的,当例如在权利要求的前序中使用短语“至少”作为过渡术语时,其以与术语“包含”和“包括”是开放式的相同的方式是开放式的。当例如以诸如A,B和/或C的形式使用时,术语“和/或”是指A,B,C的任何组合或子集,例如,(1)仅A,(2)仅B,(3)仅C,(4)A与B,(5)A与C,(6)B与C,以及(7)A与B和C。如本文在描述结构、组件、物品、对象和/或事物的上下文中所使用的,短语“A和B中的至少一个”旨在指代包括以下中的任何一个的实现方式:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。类似地,如本文在描述结构、组件、物品、对象和/或事物的上下文中所使用的,短语“A或B中的至少一个”旨在指代包括以下中的任何一个的实现方式:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。如本文在描述进程、指令、动作、活动和/或步骤的执行或实施的上下文中所使用的,短语“A和B中的至少一个”旨在指代包括以下中的任何一个的实现方式:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。类似地,如本文在描述进程、指令、动作、活动和/或步骤的执行或实施的上下文中所使用的,短语“A或B中的至少一个”旨在指代包括以下中的任何一个的实现方式:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。

图3的示例进程300当被执行时,导致创建对应于一个或多个特定环境的机器学习模型。图3的程序300在示例传感器数据获取器104获取地面真实数据(例如,图像、视频等)时开始。(框310)。在本文公开的示例中,地面真实数据表示特定环境(例如,城市)的高质量图像、视频、传感器数据等。在一些示例中,地面真实数据被手动精选和/或编辑以确保地面真实数据不包括噪声。在本文公开的示例中,地面真实数据被存储在传感器数据存储装置103中。然而,地面真实数据可以被存储在任何其他位置。

示例环境检测器106识别地面真实数据的特性。(框315)。在本文公开的示例中,这样的特性包括环境是城市环境(例如,城市景观)还是乡村环境。在一些示例中,可以识别环境的另外的特性,例如,环境中通常存在的建筑物和/或建筑的类型。例如,现代城市景观/建筑(例如,旧金山、纽约等)可能会产生与其他城市景观/建筑(例如,意大利的锡耶纳;爱尔兰的都柏林)不同的模型。在一些示例中,包括在传感器数据中的元数据(例如,可交换图像文件格式(EXIF)数据)可以用于确定环境的地理位置。

示例误差特性评估器114确定与感兴趣的环境相关联的典型误差特性。(框320)。例如,城市环境(例如,具有金属结构和/或玻璃窗的环境)可能会在传感器数据中遇到反射。这样的反射可能使其自身表现为未被占用的体素(此时该体素实际上应该具有被占用的值)。示例模型构建器110将地面真实数据划分为训练集。(框330)。在本文公开的示例中,使用三个训练集。然而,可以附加地或替代地使用任何其他数量的训练集。在一些示例中,训练集各自包括与其他训练集相同的数据。这种方法允许将各种级别的噪声施加于训练集。然而,在一些其他示例中,使用单个训练集,并且渐进噪声量被施加于训练集。在本文公开的示例中,训练集具有相同的大小。然而,可以附加地或替代地使用任何大小的训练数据。

示例合成数据库构建器116将特定于环境的误差/噪声注入到地面真实数据的第一训练集中。(框340)。为了将噪声施加于训练集,将一个或多个体素从已占用值(例如,指示对象在特定位置处存在)切换到未占用值(例如,指示对象在特定位置处不存在)。在本文公开的示例中,出现在训练数据中的体素的百分比被切换(例如,10%、20%等),然而,可以附加地或替代地使用用于识别要切换的体素的任何其他方法。此外,在一些示例中,代替从已占用值切换到未占用值,可以将体素从未占用值切换到已占用值(例如,表示噪声,该噪声指示对象在特定位置处存在,此时在该位置处没有这样的对象)。在本文公开的示例中,将噪声随机地施加于训练数据集中的体素。然而,可以以任何其他方式将噪声施加于训练数据集中的体素。

示例模型构建器110使用训练集来训练模型。(框350)。在本文公开的示例中,示例模型构建器110使用随机梯度下降来训练模型。然而,可以附加地或替代地使用任何其他训练算法。在本文公开的示例中,执行训练,直到达到验证数据集(例如,地面真实数据的一部分和/或噪声被施加的训练数据)和地面真实数据之间的可接受的误差水平为止。

示例模型构建器110然后确定是否存在任何附加训练集。(框360)。如果存在附加训练集,则控制返回到框340,在框340处,重复框340至360的示例进程,直到已经使用了所有训练集。在本文公开的示例中,可变噪声量可以被施加到各种训练集(例如,在框340处)。例如,在第一次迭代中,第一噪声量可以被施加到第一训练集(例如,10%噪声),而在第二次迭代中,可以将与第一噪声量不同的第二噪声量施加到第二训练集,例如,20%噪声。在本文公开的示例中,使用三个训练集,其噪声值分别为10%、20%和50%。使用渐增的噪声量改进模型的收敛性,因为在噪声逐渐增加的场景中,模型会逐渐对其自身进行改进。

一旦所有训练集已经用于生成模型(例如,框360返回否的结果),则示例模型调整器112利用剩余的“或”门连接来适配和/或以其他方式增强模型。(框370)。如上面指出的,添加的“或”门通过消除虚假推理来改进系统精度。也就是说,“或”门架构确保模型的最终结果(例如,当与实时数据结合使用时)不会导致创建错误的体素数据。换句话说,保证系统的性能不比输入数据差。

然后,示例合成数据库构建器116将模型存储在合成数据存储装置124中。(框380)。与结合框315识别的环境特性相结合来存储示例模型。结合环境特性(在框315处识别)来存储模型,之后允许基于环境选择各种模型以供使用。然后,示例合成数据库构建器116确定是否存在地面真实数据的附加位置(例如,替代环境)。(框390)。如果访问了地面真实数据的附加位置(例如,框390返回“是”的结果),则图3的示例进程重复,直到已经处理了地面真实数据的这种其他位置(例如,创建模型)为止。一旦已经处理了地面真实数据的附加位置(例如,框390返回“否”的结果),则图3的示例进程终止。可以例如在附加的地面真实数据变得可用时、在(例如,来自用户、来自管理员等的)执行重新训练的指示时等重复图3的示例进程。

图4的示例进程400当被执行时,导致使用对应于环境的机器学习模型。图4的程序400开始于框410,其中示例传感器数据获取器104获取传感器数据。(框410)。在本文公开的示例中,传感器数据表示实时传感器数据(例如,来自一个或多个传感器)。在一些示例中,传感器数据是从正在环境中进行导航的无人机和/或其他无人飞行器(UAV)获得的。在一些示例中,扫描重建管理器101可以在无人机本地实现,使得传感器数据在无人机上被处理。在一些其他示例中,传感器数据可以被发送到远程位置(例如,服务器)以进行处理。

示例环境检测器106识别可以与特定环境相关联的环境特性和/或细微差别。(框420)。在本文公开的示例中,环境特性表示关于要重建的环境的信息(例如,元数据)。在本文公开的示例中,这样的特性包括环境是城市环境(例如,城市景观)还是乡村环境。在一些示例中,可以识别环境的另外的特性,例如,环境中通常存在的建筑物和/或建筑的类型。例如,现代城市景观/建筑(例如,旧金山、纽约等)可能会产生与其他城市景观/建筑(例如,意大利的锡耶纳;爱尔兰的都柏林)不同的模型。在一些示例中,全球定位数据(GPS)可以用于确定传感器数据所对应的位置和/或环境。

使用所识别的(多个)环境特性,示例模型选择器108选择合成数据库。(框430)。然后,示例场景重建器130使用所选择的模型来处理传感器数据以生成场景。(框440)。以这种方式,可以使用针对由传感器数据表示的特定环境适配的机器学习模型来创建场景。这样的适配确保在分析传感器数据时考虑特定于该类型环境的噪声。然后,所生成的场景可以用于例如促进无人机的导航。

图5是被构造为执行图3和/或图4的指令来实现图1和图2的重建系统100的示例处理器平台500的框图。处理器平台500可以是例如服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,手机、智能电话、平板电脑(例如,iPad

所示示例的处理器平台500包括处理器512。所示示例的处理器512是硬件。例如,处理器512可以由来自任何期望的系列或制造商的一个或多个集成电路、逻辑电路、微处理器、GPU、DSP或控制器来实现。硬件处理器可以是基于半导体的(例如,基于硅的)设备。在该示例中,处理器实现示例扫描重建管理器101及其中包含的组件/结构。

所示示例的处理器512包括本地存储器513(例如,高速缓存)。所示示例的处理器512经由总线518与包括易失性存储器514和非易失性存储器516的主存储器通信。易失性存储器514可以由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、

所示示例的处理器平台500还包括接口电路520。接口电路520可以通过任何类型的接口标准来实现,例如,以太网接口、通用串行总线(USB)、

在所示示例中,一个或多个输入设备522连接到接口电路520。(多个)输入设备522允许用户将数据和/或命令输入到处理器512中。(多个)输入设备可以由例如音频传感器、麦克风、摄像机(静止或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、isopoint和/或语音识别系统来实现。

一个或多个输出设备524也连接到所示示例的接口电路520。输出设备524可以例如由显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器(LCD)、阴极射线管显示器(CRT)、就地开关(IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器来实现。因此,所示示例的接口电路520通常包括图形驱动器卡、图形驱动器芯片和/或图形驱动器处理器。

所示示例的接口电路520还包括通信设备,例如,发射机、接收机、收发机、调制解调器、住宅网关、无线接入点和/或网络接口,以促进经由网络526与外部机器(例如,任何种类的计算设备)进行数据交换。通信可以经由例如以太网连接、数字用户线(DSL)连接、电话线连接、同轴电缆系统、卫星系统、直线对传式(line-of-site)无线系统、蜂窝电话系统等来进行。

所示示例的处理器平台500还包括用于存储软件和/或数据的一个或多个大容量存储设备528。这种大容量存储设备528的示例包括软盘驱动器、硬盘驱动器、压缩盘驱动器、蓝光盘驱动器、独立磁盘冗余阵列(RAID)系统和数字通用盘(DVD)驱动器。

图3和图4的机器可执行指令532可以存储在大容量存储设备528中,在易失性存储器514中,在非易失性存储器516中,和/或在诸如CD或DVD之类的可移除非暂时性计算机可读存储介质上。

从前述内容中,将认识到,已经公开了通过在神经网络的卷积过程中利用类“或”结构来改进对图像和/或视频数据的三维扫描重建的示例系统、方法、装置和制品。另外,本文公开的示例避免了对于获得表现出相似环境特性的感兴趣区域的真实数据的耗时的、处理器密集的和存储器密集的要求。例如,由于旧金山和芝加哥因其后现代城市特征(例如,具有反射性表面的摩天大楼)而表现出相似环境特性,因此仅需要在这两个地点之一执行一次地面真实数据获取工作。然后可以将所得模型用于其他类似情况的地点。

注意,该专利要求享有美国临时专利申请第62/674,462号的优先权,该申请于2018年5月21日提交,并且其全部内容由此通过引用并入。

本文公开了使用卷积神经网络重建场景的方法、装置、系统和制品。另外的示例及其组合包括以下内容:

示例1包括一种生成用于场景重建的模型的装置,该装置包括:传感器数据获取器,其用于获取表示环境的地面真实数据;环境检测器,其用于识别环境的环境特性;合成数据库构建器,其用于向地面真实数据施加噪声以形成训练集;模型构建器,其用于使用训练集和地面真实数据训练机器学习模型;以及模型调整器,其用于修改机器学习模型以在机器学习模型的相应层之间包括剩余的“或”门连接,其中,合成数据库构建器还用于与环境的环境特性相关联地存储机器学习模型。

示例2包括示例1的装置,该装置还包括用于确定与环境特性相关联的误差特性的环境特性评估器,合成数据库构建器用于基于误差特性向地面真实数据施加噪声。

示例3包括示例1或2中任一项的装置,其中,合成数据库构建器用于将地面真实数据划分为多个训练集,并且向多个训练集中的相应的训练集施加不同噪声量,模型构建器用于基于多个训练集来训练机器学习模型。

示例4包括示例3的装置,其中,模型构建器用于使用具有渐增的噪声量的训练集来训练机器学习模型。

示例5包括示例1-4中任一项的装置,其中,环境特性包括环境中的光反射率的量。

示例6包括示例1-5中任一项的装置,其中,机器学习模型是使用卷积神经网络(CNN)实现的。

示例7包括示例1至6中任一项的装置,其中,环境特性是第一环境特性,传感器数据获取器用于访问传感器数据,环境检测器用于识别由传感器数据表示的环境的第二环境特性,并且该装置还包括:模型选择器,其用于基于与第一环境特性匹配的第二环境特性来选择机器学习模型;以及场景重建器,其用于使用所选择的机器学习模型来处理传感器数据以创建场景。

示例8包括示例7的装置,其中,环境检测器用于基于结合传感器数据而访问的元数据来识别第二环境特性。

示例9包括示例1至8中任一项的装置,还包括用于存储机器学习模型的合成数据存储装置。

示例10包括至少一种非暂时性计算机可读介质,其包括指令,该指令在被执行时使至少一个处理器至少进行以下操作:获取表示环境的地面真实数据;识别环境的环境特性;向地面真实数据施加噪声以形成训练集;使用训练集和地面真实数据训练机器学习模型;修改机器学习模型以在机器学习模型的相应层之间包括剩余的“或”门连接;以及与环境的环境特性相关联地存储机器学习模型。

示例11包括示例10的至少一种非暂时性计算机可读介质,其中,指令在被执行时还使至少一个处理器确定对与环境特性相关联的误差特性进行确定,并且其中,向地面真实数据施加的噪声是基于误差特性的。

示例12包括示例10或11中任一项的至少一种非暂时性计算机可读介质,其中,指令在被执行时还使至少一个处理器将地面真实数据划分为多个训练集,向多个训练集中的相应的训练集施加不同噪声量,并且基于多个训练集来训练机器学习模型。

示例13包括示例12的至少一种非暂时性计算机可读介质,其中,指令在被执行时还使至少一个处理器使用具有渐增的噪声量的训练集来训练机器学习模型。

示例14包括示例10至14中任一项的至少一种非暂时性计算机可读介质,其中,环境特性包括环境中的光反射率的量。

示例15包括示例10至示例14中任一项的至少一种非暂时性计算机可读介质,其中,机器学习模型是使用卷积神经网络(CNN)实现的。

示例16包括示例10至15中任一项的至少一种非暂时性计算机可读介质,其中,环境特性是第一环境特性,并且指令在被执行时还使至少一个处理器进行以下操作:访问传感器数据;识别由传感器数据表示的环境的第二环境特性;基于与第一环境特性匹配的第二环境特性来选择机器学习模型;以及使用所选择的机器学习模型处理传感器数据以重新创建场景。

示例17包括示例16的至少一种非暂时性计算机可读介质,其中,指令在被执行时还使至少一个处理器基于结合传感器数据而访问的元数据来识别第二环境特性。

示例18包括一种生成用于场景重建的模型的方法,该方法包括:获取表示环境的地面真实数据;识别环境的环境特性;向地面真实数据施加噪声以形成训练集;使用训练集和地面真实数据来训练机器学习模型;修改机器学习模型以在机器学习模型的相应层之间包括剩余的“或”门连接;以及与环境的环境特性相关联地存储机器学习模型。

示例19包括示例18的方法,该方法还包括确定与环境特性相关联的误差特性,并且其中,向地面真实数据施加的噪声是基于误差特性的。

示例20包括示例18至20中任一项的方法,还包括将地面真实数据划分为多个训练集,其中,噪声向训练集的施加包括向相应的训练集施加不同噪声量,并且对机器学习模型的训练是基于多个训练集来执行的。

示例21包括示例20的方法,其中,对机器学习模型的训练是使用具有渐增的噪声量的训练集来执行的。

示例22包括示例18至22中任一项的方法,其中,环境特性包括环境中的光反射率的量。

示例23包括示例18至23中任一项的方法,其中,机器学习模型是使用卷积神经网络(CNN)实现的。

示例24包括示例18至23中任一项的方法,其中,环境特性是第一环境特性,并且该方法还包括:访问传感器数据;识别由传感器数据表示的环境的第二环境特性;基于与第一环境特性匹配的第二环境特性来选择机器学习模型;以及使用所选择的机器学习模型处理传感器数据以重新创建场景。

示例25包括示例24的方法,其中,对第二环境特性的识别是基于结合传感器数据而访问的元数据的。

示例26包括一种生成用于场景重建的模型的装置,该装置包括:用于获取表示环境的地面真实数据的模块;用于识别环境的环境特性的模块;用于向地面真实数据施加噪声以形成训练集的模块;用于使用训练集和地面真实数据训练机器学习模型的模块;以及用于修改机器学习模型以在机器学习模型的相应层之间包括剩余的“或”门连接的模块,用于施加的模块用于与环境的环境特性相关联地存储机器学习模型。在一些示例中,可以通过示例传感器数据获取器104来实现用于获取的模块。在一些示例中,可以通过示例环境检测器106来实现用于识别的模块。在一些示例中,可以通过示例合成数据库构建器116来实现用于施加的示例模块。在一些示例中,可以通过示例模型构建器110来实现用于训练的示例模块。在一些示例中,可以通过示例模型调整器112来实现用于修改的示例模块。

示例27包括示例26的装置,该装置还包括用于确定与环境特性相关联的典型误差特性的模块,并且其中,用于施加噪声的模块用于基于误差特性向地面真实数据施加噪声。在一些示例中,可以通过环境特性评估器114来实现用于确定的模块。

示例28包括示例26或27中任一项的装置,其中,用于施加的模块用于将地面真实数据划分为多个训练集,用于施加的模块用于向相应的训练集施加不同噪声量,并且用于训练的模块用于基于多个训练集来执行训练。

示例29包括示例28的装置,其中,用于训练的模块用于使用施加了渐增的噪声量的训练集来训练机器学习模型。

示例30包括示例26至29中任一项的装置,其中,环境特性包括在环境中预期的光反射率的量。

示例31包括示例26至30中任一项的装置,其中,机器学习模型是使用卷积神经网络(CNN)实现的。

示例32包括示例26至31中任一项的装置,其中,环境特性是第一环境特性,并且该装置还包括:用于访问传感器数据的模块,其中,用于识别的模块用于识别由传感器数据表示的环境的第二环境特性;用于基于与第一环境特性匹配的第二环境特性选择机器学习模型的模块;以及用于使用所选择的机器学习模型处理传感器数据以重新创建场景的模块。

示例33包括示例32的装置,其中,用于识别的模块用于基于结合传感器数据而访问的元数据来识别第二环境特性。尽管本文已经公开了某些示例方法、装置和制品,但是本专利的覆盖范围不限于此。相反,本专利涵盖了完全落入本专利权利要求范围内的所有方法、装置和制品。

相关技术
  • 使用卷积神经网络来重建场景的方法、系统、制品和装置
  • 融合单视点场景分析的多视点三维场景重建方法及其系统
技术分类

06120112181159