CN112334918A - 深度学习系统 - Google Patents

深度学习系统 Download PDF

Info

Publication number
CN112334918A
CN112334918A CN201980043331.4A CN201980043331A CN112334918A CN 112334918 A CN112334918 A CN 112334918A CN 201980043331 A CN201980043331 A CN 201980043331A CN 112334918 A CN112334918 A CN 112334918A
Authority
CN
China
Prior art keywords
data
neural network
machine learning
network
input
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
CN201980043331.4A
Other languages
English (en)
Inventor
D·M·莫洛尼
L·R·巴克利
L·M·罗德里格兹马汀德拉谢拉
C·马奎斯罗德里格斯-佩拉尔
C·M·布里克
J·D·拜恩
X·徐
D·A·佩纳卡里罗
M·S·朴
A·帕拉
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.)
Movidius Ltd Netherland
Original Assignee
Movidius Ltd Netherland
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 Movidius Ltd Netherland filed Critical Movidius Ltd Netherland
Publication of CN112334918A publication Critical patent/CN112334918A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Medical Informatics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

提供了一种机器学习系统来增强机器学习模型的各个方面。在一些方面,访问对象的基本照片般真实三维(3D)图形模型,并生成3D图形模式的训练图像集,生成该训练图像集以用于添加缺陷和降低训练图像的照片般真实质量。提供训练图像集作为训练数据以训练人工神经网络。

Description

深度学习系统
相关申请
本申请要求2018年5月23日提交的美国临时专利申请No.62/675,601号的权益并且该申请通过引用整体结合于此。
技术领域
本公开大体涉及计算机系统领域,并且更具体地涉及机器学习系统。
背景技术
计算机视觉和图形的世界正随着增强现实(AR)、虚拟现实(VR)和混合现实(MR)产品的出现而快速收敛,所述产品诸如来自MagicLeapTM、MicrosoftTM、HoloLensTM、OculusTMRiftTM的那些产品,以及诸如来自ValveTM和HTCTM的那些系统之类的其他VR系统。此类系统中的现任方法是使用并行运行的分开的图形处理单元(GPU)和计算机视觉子系统。这些并行系统可以与计算机视觉流水线并行地从现有的GPU组装,所述计算机视觉流水线实现在运行在处理器和/或可编程硬件加速器的阵列上的软件中。
附图说明
当结合以下附图考虑时,参考本公开主题的以下详细描述,可以更全面地理解所公开的主题的各种目标、特征和优点,其中相同的参考号标识相同的要素。附图是示意性地并且不旨在按比例绘制。为了清楚起见,并非每一个部件在每一个图中都被标记。在不需要图示来允许本领域普通技术人员理解所公开的主题的情况下,也不是所公开的主题的每一个实施例的每一个部件都被示出。
图1示出了常规的增强现实或混合现实渲染系统;
图2示出了根据一些实施例的基于体素(voxel)的增强现实或混合现实渲染系统;
图3示出了根据一些实施例的密集和稀疏体积表示之间的差异;
图4示出了根据一些实施例的场景的复合视图;
图5示出了根据一些实施例的示例元素树结构中的细节级别;
图6示出了根据一些实施例的可以利用本申请的数据结构和体素数据的应用;
图7示出了根据一些实施例的用于识别3D数字的示例网络;
图8示出了根据一些实施例的使用隐式细节级别在相同的数据结构上执行的多个分类;
图9示出了根据一些实施例的由2D卷积神经网络进行的操作消除;
图10示出了根据一些实施例的来自示例测试图像的分析的实验结果;
图11示出了根据一些实施例的用于剔除操作的硬件;
图12示出了根据一些实施例的对用于剔除操作的硬件的改进;
图13示出了根据一些实施例的硬件;
图14示出了根据至少一些实施例的采用示例训练集生成器的示例系统;
图15示出了根据至少一些实施例的合成训练数据的示例生成;
图16示出了根据至少一些示例实施例的示例暹罗网络(Siamese Network);
图17示出了根据至少一些示例实施例的暹罗网络执行自主比较的示例使用;
图18示出了根据至少一些实施例的点云的示例体素化;
图19是根据至少一些实施例的示例机器学习模型的简化框图;
图20是根据至少一些实施例的示出了模型的示例训练的各方面的简化框图;
图21示出了根据至少一些实施例的使用神经网络来生成用于导航的3D地图的示例机器人;
图22是根据至少一些实施例的示出了用于与惯性测量数据一起使用的示例机器学习模型的框图;
图23是根据至少一些实施例的示出了用于与图像数据一起使用的示例机器学习模型的框图;
图24是示出了结合图22和图23的示例中的模型的各方面的示例机器学习模型的框图;
图25A-图25B是示出了与图24的示例机器学习模型类似的机器学习模型的结果的图;
图26示出了根据至少一些实施例的包括示例神经网络优化器的示例系统;
图27是根据至少一些实施例的示出了神经网络模型的示例优化的框图;
图28是示出了在示例神经网络模型的优化期间生成和使用的示例结果的表;
图29是示出了在示例神经网络模型的优化期间生成和使用的示例结果的表;
图30A是根据至少一些实施例的混合神经网络裁剪的示例的简化框图;
图30B是根据至少一些实施例的神经网络的示例裁剪的简化流程图;
图31是根据至少一些实施例的结合神经网络的裁剪执行的示例权重量化的简化框图;
图32是比较示例神经网络裁剪技术的结果的表;
图33A-图33F是根据至少一些实施例的与机器学习相关联的示例计算机实现的技术的简化流程图;
图34描绘了根据一些实施例的示例多时隙向量处理器;
图35示出了根据一些实施例的示例体积加速硬件;
图36示出了根据一些实施例的体素立方体的组织;
图37示出了根据一些实施例的两级稀疏体素树;
图38示出了根据一些实施例的两级稀疏体素树;
图39示出了根据一些实施例的示例体素数据的存储;
图40示出了根据一些实施例的体素向示例体积数据结构中的插入;
图41示出了根据一些实施例的示例3D体积对象的投影;
图42示出了涉及示例体积数据结构的示例操作;
图43示出了根据一些实施例的使用投影来生成简化地图;
图44示出了根据一些实施例的来自嵌入式设备的示例体积3D测量结果和/或简单2D测量结果的示例聚合;
图45示出了根据一些实施例的在2D 2×2位图上的2D路径找寻的示例加速;
图46示出了根据一些实施例的使用示例体积数据结构的冲突检测的示例加速;
图47是根据至少一些实施例的具有设备的示例性网络的简化框图;
图48是根据至少一些实施例的示例性雾或云计算网络的简化框图;
图49是根据至少一些实施例的包括示例设备的系统的简化框图;
图50是根据至少一些实施例的示例处理设备的简化框图;
图51是根据至少一些实施例的示例性处理器的框图;以及
图52是根据至少一些实施例的示例性计算系统的框图。
具体实施方式
在以下描述中,阐述了与所公开的主题的系统和方法以及此类系统和方法可以操作的环境等相关的许多具体细节,以便提供对所公开的主题的透彻理解。然而,对于本领域技术人员将是显而易见的是,可以在没有这些具体细节的情况下实践所公开的主题,并且不详细描述在本领域中是众所周知的某些特征,以便避免复杂化所公开的主题。此外,应当理解,下文所提供的实施例是示例性的,并且构想了在所公开的主题的范围内存在其他的系统和方法。
各种技术基于增强现实、虚拟现实、混合现实、自主设备和机器人出现并与包含它们,这可利用表示三维空间和几何形状的体积的数据模型。使用此类3D或体积数据的各种真实环境和虚拟环境的描述在传统上具有大数据集,某些计算机系统一直难以以期望的方式处理所述大数据集。此外,当诸如无人机、可穿戴设备、虚拟现实系统等的设备变得更小时,此类设备的存储器和处理资源也可能受到限制。作为示例,AR/VR/MR应用可能对使用支持硬件生成的图形表示要求高帧率。然而,在一些应用中,此类硬件的GPU和计算机视觉子系统可能需要以高速率(诸如高达130fps(7毫秒))处理数据(例如,3D数据),以便产生期望的结果(例如,生成具有产生可信的结果的帧率的可信的图形场景、防止由于过长等待时间引起的用户的晕动病(motion sickness)、以及其他示例目标)。可以类似地挑战额外的应用以令人满意地处理描述大体积的数据,同时满足相对应的系统的处理、存储器、功率、应用要求中的限制,以及其他示例问题。
在一些实现方式中,可以为计算系统提供逻辑以生成和/或使用根据格式定义的稀疏体积数据。例如,可以提供定义的体积数据结构以在各种系统和应用中统一计算机视觉和3D渲染。可以使用光学传感器捕获对象的体积表示,诸如例如立体相机或深度相机。对象的体积表示可以包括多个体素。可以定义改进的体积数据结构,该改进的体积数据结构使得相对应的体积表示能够被递归地细分以获取对象的目标分辨率。在细分期间,可以从体积表示(和支持操作)中剔除体积表示中的空白空间,该空白空间可以被包括在体素中的一个或多个体素中。空白空间可以是体积表示的不包括对象的几何属性的区域。
因此,在改进的体积数据结构中,相对应的体积内的各个体素可以被标记为(由存在于相对应的体积空间内的某种几何形状)“占用的”或“空白的”(表示相对应的体积由空白空间构成)。此类标签可以附加地被解释为指定其相对应的子体积中的一个或多个子体积也是占用的(例如,如果父体素或更高级别的体素被标记为占用的),或者其子体积中的全部都是空白空间(即,在父体素或更高级别的体素被标记为空白的情况下)。在一些实现方式中,将体素标记为空白可以允许该体素和/或其相对应的子体积体素被从用于生成相对应的体积表示的操作中有效地移除。体积数据结构可以按照稀疏树结构,诸如按照稀疏六十四进制(sexaquaternary)树(SST)格式。进一步,此类稀疏体积数据结构的方法可以比传统地用于存储对象的体积表示的方法利用相对较少的存储空间。附加地,体积数据的压缩可以增加此类表示的传输可及性(viability)并且能够更快地处理此类表示,以及其他示例益处。
体积数据结构可以是硬件加速的以快速地允许对3D渲染器的更新,消除可能在分离的计算机视觉和图形系统中发生的延迟。此类延迟可导致等待时间,当在AR、VR、MR和其他应用中使用时,该等待时间可导致用户晕动病以及其他额外的缺点。快速测试体素在加速的数据结构中的几何属性的占用的能力允许了可以被实时更新的低等待时间AR、VR、MR或其他系统的构造。
在一些实施例中,体积数据结构的能力还可以提供帧内(intra-frame)警告。例如,在AR、VR、MR和其他应用中,当用户可能与成像的场景中的真实对象或合成对象碰撞时,或者在用于无人机或机器人的计算机视觉应用中,当此类设备可能与成像的场景中的真实对象或合成对象碰撞时,由体积数据结构提供的处理速度允许警告即将发生的碰撞。
本公开的实施例可以与在应用中(诸如机器人、用于增强现实和混合现实头戴设备的头戴式显示器以及电话和平板电脑)的体积数据的存储和处理相关。本公开的实施例将在一组体素内的每一个体积元素(例如,体素)以及可选地与体素的几何形状相关的物理性质表示为单个比特。与一组64个体素相关的附加参数可以与体素相关联,诸如相对应的红绿蓝(RGB)或其他着色编码、透明度、截断符号距离函数(truncated signed distancefunction,TSDF)信息等,并且存储在相关联的且可选的64位数据结构中(例如,使得两个或更多比特被用于表示每一个体素)。此类表示方案可以实现最小存储器要求。此外,通过单个比特表示体素允许了许多简化计算的执行以在逻辑上或数学上组合来自体积表示的元素。来自体积表示的组合元素可以包括,例如对体积中的平面进行或运算(OR-ing)以创建3D体积数据的2D投影,并且通过对在2.5D歧管中占用的体素的数量进行计数来计算表面积等。为了比较,可以使用异或(XOR)逻辑以比较64位子体积(例如,4^3子体积),并且体积可以被反转,其中可以通过将对象一起进行或运算来将对象合并以创建混合对象,以及其他示例。
图1示出了常规的增强现实系统或混合现实系统,其由并行的图形渲染和计算机视觉子系统构成,计算机视觉子系统具有后期渲染连接装置以考虑由于快速头部运动引起的变化和在环境中的变化,该环境中的变化可能在所渲染的图形中产生遮挡和阴影。在一个示例实现中,系统可以包括由主机存储器124支持的主机处理器100,以通过经由总线101、芯片上片上网络(on-chip network on-chip)的互连或其他互连来控制图形流水线、计算机视觉流水线和渲染后校正装置的执行。该互连允许主机处理器100运行适当的软件以控制图形处理单元(GPU)106、相关联的图形存储器111、计算机视觉流水线116、以及相关联的计算机视觉存储器124的执行。在一个示例中,使用GPU 106经由OpenGL图形着色器107(例如,对三角形列表105操作)进行的图形的渲染可以以与计算机视觉流水线相比更慢的速率发生。结果,可以执行经由弯曲引擎108和显示/遮挡处理器109的渲染后校正,以考虑自图形由GPU 106渲染以来可能已经发生的头部姿势变化和遮挡的场景几何形状中的变化。GPU 106的输出是带时间戳的,使得它可以结合分别来自头部姿势流水线120的校正控制信号121和来自遮挡流水线123的校正控制信号123来产生正确的图形输出,以考虑在头部姿势119和遮挡几何形状113以及其他示例中的任何变化。
与GPU 106并行的多个传感器和相机(例如,包括用于深度和视觉处理117的主动立体相机和被动立体相机)可以被连接到计算机视觉流水线116。计算机视觉流水线116可以包括至少三个阶段中的一个或多个阶段,所述阶段中的每一个阶段可以包含多个阶段的较低级别处理。在一个示例中,在计算机视觉流水线116中的阶段可以是图像信号处理(ISP)流水线118、头部姿势流水线120和遮挡流水线122。ISP流水线118可以采用输入相机传感器117的输出并对它们进行调节,使得它们可用于后续的头部姿势和遮挡处理。头部姿势流水线120可以采用ISP流水线118的输出并将它与头戴设备110中的惯性测量单元(IMU)的输出119一起使用,以计算自由GPU106渲染的相对应的输出图形帧以来头部姿势的变化。头部姿势流水线(HPP)120的输出121可以与用户指定的网格一起应用到弯曲引擎108,以扭曲GPU输出102,使得它与更新的头部姿势位置119相匹配。遮挡流水线122可以采取头部姿势流水线121的输出并且在视野中寻找新的对象,诸如进入视野的手部113(或其他示例对象),该手部113(或其他示例对象)应当在场景几何形状上产生相对应的阴影114。遮挡流水线122的输出123可以由显示和遮挡处理器109用于将视域正确地覆盖在弯曲引擎108的输出103的顶部上。显示和遮挡处理器109使用计算的头部姿势119产生用于合成阴影114的阴影掩模,并且显示和遮挡处理器109可以在阴影掩模的顶部上合成手部113的遮挡几何形状,以在弯曲引擎108的输出103的顶部上产生图形阴影114,并且产生用于在增强/混合现实头戴设备110上显示的(多个)最终输出帧104,以及其他示例用例和特征。
图2示出了根据本公开的一些实施例的基于体素的增强现实或混合现实渲染系统。在图2中描绘的装置可以包括主机系统,该主机系统组成在主机CPU 200和相关联的主机存储器201上。此类系统可以经由总线204、片上网络或其他通信机制来与统一的计算机视觉和图形流水线223和相关联的统一的计算机视觉和图形存储器213进行通信,并且计算机视觉和图形流水线223和相关联的统一的计算机视觉和图形存储器213包含要在最终场景中渲染的、用于在头戴式增强现实或混合现实显示器211上显示的真实体素和合成体素。AR/MR显示器211还可以包含多个主动和被动图像传感器214,以及惯性测量单元(IMU)212,该惯性测量单元(IMU)212用于测量头部姿势222定向的变化。
在组合的渲染流水线中,可以从三角形列表204开始生成合成几何形状,该三角形列表204由OpenGL JiT(即时,Just-in-Time)翻译器205处理以产生合成体素几何形状202。例如,可以通过选择来自三角形列表的三角形的主平面来生成合成体素几何形状。随后可以对在所选择的平面中的每一个三角形执行2D光栅化(例如,在X和Z方向上)。可以创建第三坐标(例如,Y)作为要跨三角形插值的属性。光栅化的三角形的每一个像素可以导致相对应的体素的定义。该处理可以由CPU或GPU执行。当由GPU执行时,每一个光栅化的三角形可以从GPU读回以在GPU绘制像素的地方创建体素,以及其他示例实现方式。例如,可以使用列表的2D缓冲器来生成合成体素,其中列表中的每一个条目都存储在该像素处渲染的多边形的深度信息。例如,可以使用正交视点(例如,自上而下)来渲染模型。例如,在示例缓冲器中提供的每一个(x,y)都可以表示在相对应的体素体积中的(x,y)处的列(例如,从(x,y,0)到(x,y,4095))。随后可以使用每一个列表中的信息来将每一个列从信息渲染为3D扫描线。
继续图2的示例,在一些实现方式中,合成体素几何形状202可以与使用同步定位和地图构建(SLAM)流水线217构造的测量的几何形状体素227相结合。SLAM流水线可以使用主动传感器和/或被动图像传感器214(例如,214.1和214.2),该主动传感器和/或被动图像传感器首先使用图像信号处理(ISP)流水线215进行处理以产生输出225,该输出225可以由深度流水线216转换为深度图像226。主动或被动图像传感器214(214.1和214.2)可以包括主动或被动立体传感器、结构光传感器、飞行时间传感器、以及其他示例。例如,深度流水线216可以处理来自结构光或飞行时间传感器214.1或替代地被动立体传感器214.2的深度数据。在一个示例实现方式中,立体传感器214.2可以包括一对被动的立体传感器,以及其他示例实现方式。
由深度流水线215生成的深度图像可以由密集SLAM流水线217使用SLAM算法(例如,体感融合(Kinect Fusion))处理以产生测量的几何形状体素227的体素化模型。可以提供光线追踪加速器206,其可以将测量的几何形状体素227(例如,真实体素几何形状)与合成体素几何形状202相结合以产生场景的2D渲染,用于经由显示处理器210输出到显示设备(例如,VR或AR应用中的头戴式显示器211)。在此类实现方式中,可以从测量的几何形状体素227的真实体素和合成几何形状202构造完整的场景模型。因此,不要求对2D渲染的几何形状进行弯曲(例如,如在图1中)。此类实现方式可以与头部姿势跟踪传感器和相对应的逻辑相结合以正确地对准真实几何形状和测量的几何形状。例如,示例头部姿势流水线221可以处理来自安装在头戴式显示器212中的IMU 212的头部姿势测量结果232,并且在经由显示处理器210渲染期间,可以考虑头部姿势测量结果流水线的输出231。
在一些示例中,统一的渲染流水线还可以使用测量的几何形状体素227(例如,真实体素模型)和合成几何形状202(例如,合成体素模型),以便对音频混响模型进行渲染和对真实世界场景、虚拟现实场景或混合现实场景的物理进行建模。作为示例,物理流水线218可以采用测量的几何形状体素227和合成几何形状202体素几何形状,并且使用光线投射加速器206来计算用于头戴式显示器(HMD)211中的左耳机和右耳机的输出音频样本,以使用内置于体素数据结构中的声反射系数计算输出样本230。类似地,由202和227构成的统一的体素模型还可以用于确定用于在复合AR/MR场景中的合成对象的物理更新。物理流水线218采取复合场景几何形状作为输入,并且在对合成几何形状202计算更新228以用于渲染并且作为物理模型的未来迭代的基础之前,使用光线投射加速器206来计算冲突。
在一些实现方式中,系统(诸如图2中所示的系统)可以附加地被提供有一个或多个硬件加速器,以实现和/或利用卷积神经网络(CNN),该卷积神经网络(CNN)可以处理来自ISP流水线215的输出的RGB视频/图像输入、来自SLAM流水线217的输出的体积场景数据、以及其他示例。神经网络分类器可以排他地使用硬件(HW)卷积神经网络(CNN)加速器207运行或在处理器和HW CNN加速器207的组合中运行以产生输出分类237。HW CNN加速器207进行体积表示上的推断的可用性可以允许将测量的几何形状体素227中的体素组标记为属于特定对象类别,以及其他示例使用。
标记体素(例如,使用CNN并支持硬件加速)可以允许那些体素所属的那些对象可以被系统识别为与已知对象相对应,并且可以将源体素从测量的几何形状体素227中移除并由与对象相对应的边界框替代和/或由与对象的来源、对象的姿势、对象描述符以及其他示例信息相关的信息替代。这可以导致可使用的场景的语义上远远更有意义的描述,例如,作为输入通过机器人、无人机或其他计算系统来与场景中的对象互动,或通过音频系统以查找场景中的对象的吸声系数并将它们反映在场景的声学模型中,以及其他示例使用。
一个或多个处理器设备和硬件加速器可以被提供用于实现在图2中示出并描述的示例系统的流水线。在一些实现方式中,组合的渲染流水线的硬件元素和软件元素中的全部可以共享对DRAM控制器209的访问,该DRAM控制器209进而允许数据被存储在共享的DDR存储器设备208中,以及其他示例实现方式。
呈现图3以根据一些实施例来说明密集体积表示和稀疏体积表示之间的差异。如图3的示例所示的,可以以如302中所示的密集方式或以如304中所示的稀疏方式的体素的形式来描述真实世界对象或合成对象300(例如,兔子的雕像)。诸如302的密集表示的优点是对体积中的所有体素的均匀速度的访问,但缺点是可能需要的存储量。例如,对于诸如512^3元素体积(例如,与使用体感(Kinect)传感器以1cm分辨率扫描的体积中的5m相对应)的密集表示,对每一个体素利用4字节截断符号距离函数(TSDF)以存储相对小的体积需要512兆字节。八叉树表示304体现了稀疏表示,在另一方面,可以仅存储在现实世界场景中具有真实几何形状的那些体素,由此减少存储相同体积所需的数据量。
转到图4,示出了根据一些实施例的示例场景的复合视图。具体地,图4示出了场景404的复合视图可以如何使用并行数据结构被保持、显示或使用并行数据结构经受进一步处理以分别表示在用于合成体素数据的等效边界框400内的合成体素401和用于现实世界体素数据的等效边界框402内的现实世界测量的体素403。图5示出了根据一些实施例的均匀4^3元素树结构中的细节级别。在一些实现方式中,可以利用少至1个比特来描述使用八叉树表示的体积中的每一个体素,诸如在图5的示例所表示的。然而,基于八叉树的技术的缺点可以是访问八叉树中的特定体素所利用的间接存储器访问的数量。在稀疏体素八叉树的情况下,相同的几何形状可以以多个细节级别隐式地表示,有利地允许了诸如光线投射、游戏物理、CNN和其他技术的操作,以允许从进一步计算中剔除场景的空白部分,这导致不仅所需的存储整体降低,而且在功耗和计算负荷方面整体降低,以及其他示例优点。
在一个实现方式中,改进的体素描述符(在本文中也被称作“体积数据结构”)可以被提供用于将体积信息组织成4^3(或64位)无符号整数,诸如在具有每体素1个比特的存储器要求的501中所示的。在该示例中,(与利用64位的SLAMbench/KFusion中的TSDF相比)每体素1个比特不足以存储截断符号距离函数值。在本示例中,附加(例如,64位)字段500可以被包括在体素描述符中。该示例可以被进一步增强,使得当在64位字段500中的TSDF是16位时,可以在体素描述符501中隐式地提供x、y和z中附加的2位小数分辨率,以使64位字段500中的体素TSDF和体素位置501的组合等效于分辨率高得多的TSDF,诸如在SLAMbench/KFusion或其他示例中所使用的。例如,64位字段500(体素描述符)中的附加数据可以被用于存储每项1字节的二次采样的RGB颜色信息(例如,来自经由被动RGB传感器的场景)和8位透明度值阿尔法、以及可以是特定应用的并且可以用于存储例如用于音频应用的声学反射率、用于物理应用的刚度、对象材料类型、以及其他示例的两个1字节保留字段R1和R2。
如图5所示,体素描述符501可以被逻辑地分组为四个2D平面,该四个2D平面中的每一个包括16个体素502。如图5所表示的,这些2D平面(或体素平面)可以基于4的升幂的连续分解来描述八叉树类型结构的每一个级别。在该示例实现方式中,选择64位体素描述符是因为它与相对应的系统实现方式中使用的64位总线基础设施由很好的匹配(尽管可以在其他系统实现方式中提供其他体素描述符大小和格式,并根据总线或系统的其他基础设施来设计大小)。在一些实现方式中,可以设计体素描述符的大小以降低用于获取体素的存储器访问的数量。例如,与对2^3元素操作的传统八叉树相比,64位体素描述符可以用于将访问八叉树中任意级别处的体素所需的存储器访问的数量减少1/2,以及其他示例考虑和实现方式。
在一个示例中,可从4^3根体积503开始描述八叉树,并且在示例256^3体积中描绘了其中用于呈现在下面的层504、505和506中的几何形状的编码的每一个非零条目。在该特定示例中,可以使用四个存储器访问以便访问八叉树中的最低层。在此类开销过高的情况下,可采用替代方式来将八叉树的最高级别编码为更大的体积,诸如64^3,如507中所示。在该情况下,507中的每一个非零条目可以指示在下面的256^3体积508中的下面的4^3八叉树的存在。与503、504和505中所示的替代公式相比,该替代组织的结果是仅需要两次存储器访问以访问256^3体积508中的任何体素。后一种方法在托管该八叉树结构的设备具有较大量的嵌入式存储器,从而允许体素八叉树508的仅较低和较少频率访问的部分在外部存储器中的情况下是有利的。该方法在存储方面成本更高,例如,在充满的、较大的(例如,64^3)体积被存储在片上存储器中的情况下,但是该折衷可以允许较快的存储器访问(例如,2倍速度)和低得多的功耗,以及其他示例优点。
转到图6,示出了根据一些实施例的示出可以利用本应用的数据结构和体素数据的示例应用的框图。在一个示例中,诸如图5中所示的,可以通过示例体素描述符500提供附加的信息。在体素描述符可以将利用的整体存储器增加到每体素2个比特时,体素描述符可以实现大范围的应用,这些应用可以利用体素数据,诸如图6中所表示的体素数据。例如,(诸如使用密集SLAM系统601(例如,SLAMbench)生成的)共享体积表示602可以被用于使用图形光线投射或光线追踪603渲染场景、用于音频光线投射604、以及其他实现方式。在又其他示例中,体积表示602还可以在卷积神经网络(CNN)推理605中使用,并且可以通过云基础设施607备份。在一些实例中,云基础设施607可以包含可以经由推理访问的对象(诸如树、一件家具或其他对象(例如,606))的详细体积描述符。基于推断或其他方式标识对象,相对应的详细描述符可以被返回到设备,允许由具有姿势信息和包含对象属性的描述符以及其他示例特征的边界框表示来替换体积表示602的体素。
在又其他实施例中,在一些系统中可以附加地或替代地利用上文所讨论的体素模型,使用3D到2D投影从体积表示602来构造示例环境的2D地图608。这些2D地图可以经由通信机器经由云基础设施和/或其他基于网络的资源607被再次分享并(例如,使用相同的云基础设施)聚合以使用众包(crowd-sourced)技术构建更高质量的图。这些图可以由云基础设施607分享到连接的机器和设备。在又进一步示例中,可以使用投影随后通过逐段简化609(例如,假设交通工具或机器人的宽度和高度固定)来针对超低带宽应用优化2D地图。简化路径随后可以在路径的每分段线性段仅具有单个X、Y坐标对,从而降低了将交通工具609的路径传送到云基础设施607并且聚合在该相同的云基础设施607中以使用众包技术构建更高质量的图所需的带宽量。这些地图可以由云基础设施607分享到连接的机器和设备。
为了实现这些不同的应用,在一些实现方式中,可以提供共用功能,诸如通过共享软件库,在一些实施例中可以使用硬件加速器或处理器指令集架构(ISA)扩展来加速该共享软件库,以及其他示例。例如,此类功能可以包括将体素插入到描述符中、删除体素或查找体素610。在一些实现方式中,还可以支持碰撞检测功能620,以及从体积630删除点/体素,以及其他示例。如上文所介绍的,可以提供具有从相对应的体积表示602(3D体积)(例如,其可用作路径或碰撞确定的基础)快速生成X方向、Y方向和Z方向上的2D投影640的功能的系统。在一些情况下,能够使用直方图金字塔650从体积表示602生成三角形列表也可以是有利的。进一步,可以提供具有用于快速确定体积空间602的2D和3D表示中的自由路径660的功能的系统。此类功能在一系列应用中可能是有用的。可以提供进一步功能,诸如阐述在体积中的体素数量、使用群体计数器以计数在体积表示602的掩模区域中的值为1的比特的数量来确定对象的表面、以及其他示例。
转到图7的简化框图,示出了根据至少一些实施例的示例网络,其包括配备有识别3D数字的功能的系统。例如,图6中所示的应用中的一个是体积CNN应用605,其在图7中被更详细地描述,其中示例网络被用于识别从数据集(诸如混合的国家标准与技术研究院(MNIST)数据集)生成的3D数字700。通过在训练之前对数字在X、Y和Z上施加适当的旋转和平移,可以将此类数据集中的数字用于训练基于CNN的卷积网络分类器710。当用于在嵌入式设备中的推理时,即使在数字经受在X、Y和Z上的旋转和平移的情况下,经训练的网络710也可以用于以高准确度对场景中的3D数字进行分类720,以及其他示例。在一些实现方式中,可以由图2所示的HW CNN加速器207加速CNN分类器的操作。随着神经网络的第一层使用体积表示602中的体素执行乘法运算,因为乘以零始终等于零并且数据值A乘以1(体素)等于A,所以可以跳过这些算术运算。
图8示出了使用隐式细节级别在相同的数据结构上执行的多个分类。使用体积表示602的CNN分类的进一步改进可以是,因为八叉树表示在如图5中所示的八叉树结构中隐式地包含多个细节级别,所以诸如图8中所示的,可以使用单个分类器830或并行的多个分类器以并行使用隐式细节级别800、810和820来在相同数据结构上执行多个分类。在传统的系统中,由于分类通过之间所需的图像缩放,可比较的并行分类可能是缓慢的。因为相同的八叉树可以在多个细节级别包含相同的信息,所以在应用本文所讨论的体素结构的实现方式中,此类缩放可以被预先决定。实际上,基于体积模型的单个训练数据集可以覆盖所有的细节级别,而不是诸如在常规CNN网络中所需的缩放的训练数据集。
转到图9的示例,根据一些实施例,示例操作消除由2D CNN示出。诸如图9中所示的,操作消除可以用于3D体积CNN以及2D CNN。例如,在图9中,在第一层中,位图掩模900可以被用于描述输入910的预期“形状”,并且可以被应用于传入的视频流920。在一个示例中,操作消除不仅可以用于3D体积CNN,而且可以用于2D体积CNN。例如,在图9的示例的2D CNN中,位图掩模900可以被应用于CNN的第一层以描述输入910的预期“形状”,并且可以应用于CNN的输入数据,诸如传入的视频流820。作为示例,图9中示出了将位图掩模应用于行人的图像用于在CNN网络中的训练或推理的效果,其中901表示行人901的原始图像,而903表示应用了位图掩模的相对应的版本。类似地,902中示出了不包含行人的图像以及904中示出了相对应的位图掩模版本。可以将相同的方法应用于任何类型的2D或3D对象,以便通过由检测器所预期的预期的2D或3D几何形状的知识来减少CNN训练或推理所需的操作数量。911中示出了3D体积位图的示例。920中示出了用于在真实场景中推理的2D位图的使用。
在图9的示例实现方式中,(在900处)示出了概念位图,而真实位图通过对针对特定类别的对象910的一系列的训练图像求平均而生成。所示的示例是二维的,然而类似的位图掩模还可以被生成用于所提出的具有每体素1个比特的体积数据格式中的3D对象。实际上,该方法还可以潜在地被扩展以使用每一个体素/像素附加的比特来指定预期的颜色范围或者2D或3D对象的其他特性,以及其他示例实现方式。
图10是根据一些实施例的示出涉及10,000 CIFAR-10测试图像的分析的示例实验的结果的表。在一些实现方式中,操作消除可以用于消除由于在CNN网络(诸如图10中所示的LeNet 1000)中频繁的整流线性单元(ReLU)操作而引起的在1D、2D和3D CNN中的中间计算。如图10中所示的,在使用10,000 CIFAR-10测试图像的实验中,由ReLU单元生成的依赖数据的零值的百分比可以高达85%,这意味着在零值的情况下,可以提供一种系统,该系统识别零值并且作为响应,不获取相对应的数据并执行相对应的乘法运算。在该示例中,该85%表示从修改的国家标准与技术研究院数据库(MNIST)测试数据集生成的ReLU动态零值的百分比。与这些零值相对应的相对应操作消除可以用于减少功耗和存储器带宽要求,以及其他示例益处。
可以基于位图剔除不重要的操作。例如,此类位图的使用可以根据在题为“Circuit for compressing data and a processor employing the same(用于压缩数据的电路和采用该电路的处理器)”的美国专利No.8,713,080中所讨论和示出的原理和实施例,其内容通过引用整体结合于此。一些实现方式可以提供能够使用此类位图的硬件,诸如在题为“Hardware for performing arithmetic operations(用于执行算术操作的硬件)”的美国专利No.9,104,633中所讨论和示出的系统、电路和其他实现方式,其内容也通过引用整体结合于此。
图11示出了根据一些实施例的可以被合并到系统中以提供用于基于位图剔除不重要的操作的功能的硬件。在该示例中,提供了多层神经网络,其包括重复的卷积层。该硬件可以包括一个或多个处理器、一个或多个微处理器、一个或多个电路、一个或多个计算机等。在该特定示例中,神经网络包括初始卷积处理层1100,之后是池化处理1110,以及最后是激活函数处理,诸如整流线性单元(ReLU)函数1120。提供ReLU输出向量1131的ReLU单元1120的输出可以被连接到随后的卷积处理层1180(例如,可能经由延迟1132),该卷积处理层1180接收ReLU输出向量1131。在一个示例实现方式中,还可以与ReLU单元1120到随后的卷积单元1180的连接并行地生成ReLU位图1130,该ReLU位图1130表示在ReLU输出向量1131中的哪些元素是零值以及哪些元素是非零。
在一个实现方式中,可以生成或以其他方式提供位图(例如,1130)以通知启用的硬件消除涉及神经网络的计算的操作的机会。例如,ReLU位图1130中的比特可以由位图调度器1160解释,在ReLU位图1130中存在相对应的二进制零的情况下,给定乘以零将总是产生零作为输出,该位图调度器1160指示随后的卷积单元1180中的乘法器跳过ReLU输出向量1131中的零值条目。并行地,还可以跳过从地址生成器1140对与ReLU位图1130中的零值相对应的数据/权重的存储器获取,这是由于获取的权重中几乎没有值,该获取的权重将被随后的卷积单元1180跳过。如果经由DDR控制器1150从附接的DDR DRAM存储设备1170获取权重,则等待时间可能太高以至于仅可能节省一些片上带宽和相关功耗。另一方面,如果从片上RAM 1180存储获取权重,则或许可能绕过/跳过整个权重获取操作,尤其是如果在对随后的卷积单元1180的输入处添加与RAM/DDR获取延迟1132相对应的延迟。
转到图12,呈现了根据一些实施例的简化框图以说明对配备有用于剔除不重要的操作(或执行操作消除)的电路和其他逻辑的示例硬件的改进。如图12的示例中所示的,可以提供附加的硬件逻辑以从前导最大池化(Max-Pooling)单元1210或卷积单元1200提前预测ReLU单元1220输入的符号。将符号预测和ReLU位图生成添加到最大池化单元1210可以允许从时序的视角较早地预测ReLU位图信息,以覆盖可能通过地址生成器1240、通过外部DDR控制器1250和DDR存储1270或内部RAM存储1271发生的延迟。如果延时足够低,则可以在地址生成器1240中解释ReLU位图并且与ReLU位图零值相关联的存储器获取可以被完全跳过,因为可以确定永不使用从存储器获取的该结果。对图11的方案的该修改可以节省附加的功率,并且如果通过DDR访问路径(例如,1240到1250到1270)或RAM访问路径(例如,1240到1271)的延迟足够低,以便不保证延迟阶段1232,则还可以允许移除在到随后的卷积单元1280的输入处的延迟阶段(例如,1132、1232),以及其他示例特征和功能。
图13是根据一些实施例的说明示例硬件的另一个简化框图。例如,CNN ReLU层可以产生与负输入相对应的高数量的输出零值。实际上,负ReLU输入可以通过查看对先前层(例如,图13的示例中的池化层)的(多个)符号输入来预测性地确定。浮点和整数算术可以以最高有效位(MSB)的方式明确地标符号,使得跨卷积层中将要相乘的输入向量的简单的逐位异或(XOR)操作可以预测哪些乘法将产生输出零值,诸如图13中所示。得到的经预测符号的ReLU位图向量可以被用作用于确定要消除的乘法的子集和从存储器读取的相关联的系数的基础,诸如以上文的其他示例中所描述的方式。
提供用于将ReLU位图的生成返回到先前的池化或卷积阶段(即,相对应的ReLU阶段之前的阶段)可以导致附加的功率。例如,当乘法器将产生将最终被ReLU激活逻辑设置为零值的负输出时,符号预测逻辑可以被提供用于禁用乘法器。例如,在乘法器1314输入1301和1302的两个符号位1310和1315通过异或门逻辑地组合以形成前ReLU(PreReLU)位图位1303的情况下示出了这一点。该相同的信号可以用于禁用乘法器1314的操作,否则其将不必要地消耗能量生成负输出,该负输出将在下一卷积阶段1390中被输入用于乘法之前被ReLU逻辑设置为零值,以及其他示例。
注意,1300、1301、1302和1303(符号A)的表示示出了在图13中的用B标记的表示中所示的视图的更高级别视图。在该示例中,对块1302的输入可以包括两个浮点操作数。输入1301可以包括显式符号位1310、包括多个位的尾数(Mantissa)1311、以及同样包括多个位的指数1312。类似地,输入1302可以同样地包括符号1315、尾数1317和指数1316。在一些实现方式中,尾数和指数可以具有不同的精度,因为结果1303的符号分别仅取决于1301和1302或1310和1315的符号。实际上,1301和1302都不需要是浮点数,但是只要它们是有符号数并且最高有效位(MSB)显式地或隐式地(例如,如果数字是反码或补码等)有效地是符号位,就可以是任何整数或固定点格式。
继续图13的示例,可以使用异或(XOR,有时在本文中替代地表示为ExOR或EXOR)门将两个符号输入1310和1315相结合以生成位图位1303,随后可以使用硬件处理该位图位1303以标识可以在下个卷积块(例如,1390)中省略的下游乘法。在两个输入数字1313(例如,与1301相对应)和1318(例如,与1302相对应)具有相反的符号并且将产生负输出1304,该负输出1304将被ReLU块1319设置为零值,从而导致在RELU输出向量13191中的零值,该零值要被输入到随后的卷积阶段1390的情况下,相同的异或输出1303还可以用于禁用乘法器1314。因此,在一些实现方式中,前ReLU位图1320可以并行地被传送到位图调度器1360,该位图调度器1360可以调度在卷积单元1390上运行(和/或省略)的乘法。例如,对于在位图1320中的每一个零值,可以在卷积单元1390中跳过相对应的卷积操作。并行地,位图1320可以由示例地址生成器1330消耗,该地址生成器1330控制用于在卷积单元1390中使用的权重的获取。与位图1320中的1值对应的地址列表可以在地址生成器1330中被编译,并且经由DDR控制器1350控制到DDR存储1370的路径,或控制到片上RAM 1380的路径。在任何一种情况下,可以获取并呈现与前ReLU位图1320中的1值相对应的权重(例如,在到权重输入1371的以时钟周期计的一些等待时间之后)到卷积块1390,同时与零值相对应的权重的获取可以被省略,以及其他示例。
如上所述,在一些实现方式中,延迟(例如,1361)可以介于位图调度器1360和卷积单元1390之间以平衡通过地址生成器1330、DDR控制器1350和DDR 1350的延迟、或通过地址生成器1330和内部RAM1380的路径的延迟。该延迟可以使得由位图调度器驱动的卷积能够与用于在卷积单元1390中卷积计算的相对应的权重在时间上正确地对齐。实际上,从时序的视角看,比ReLU块1319的输出处更早地生成ReLU位图可以允许获得附加的时间,该附加的时间可以用于在地址生成器1330生成对存储器(例如,RAM 1380或DDR 1370)的读取之前拦截它们,使得(例如,与零值相对应的)一些读数可以是预先决定的。因为存储器读取可以比芯片上的逻辑操作高得多,所以排除此类存储器获取可以导致非常显著的能量节省,以及其他示例优点。
在一些实现方式中,如果在时钟周期方面的节省仍存在不足以覆盖DRAM访问时间,则可以使用面向块的技术来提前从DDR中读取符号位(例如,1301)的组。这些符号位的组可以与来自输入图像或中间卷积层1302的符号块一起使用,以便使用一组(多个)异或门1300来生成前ReLU位图块(例如,以计算在2D或3D阵列/矩阵之间的2D或3D卷积中的符号位之间的差异,以及其他示例)。在此类实现方式中,可以在DDR或片上RAM中提供附加的1个比特存储用于存储每一个权重的符号,但是这可以允许以避免从DDR或RAM读取将从ReLU阶段被乘以零的权重的方式覆盖多个周期的等待时间。在一些实现方式中,可以避免在DDR或片上RAM中的每权重附加的1个比特存储,因为符号以它们可以独立于指数和尾数可寻址的方式存储,以及其他示例考虑和实现方式。
在一些实施方式中,访问现成的训练集来训练机器学习模型(包括上面所讨论的模型)可能特别困难。实际上,在一些情况下,训练集可能不存在于特定的机器学习应用或与将为待训练模型生成输入的传感器类型相对应,以及其他示例问题。在一些实现方式中,可以开发和利用合成训练集来训练神经网络或其他深度强化学习模型。例如,不是获取或捕获由成百上千张特定的人、动物、对象、产品等的图像组成的训练数据集,而是可以手动(例如,使用图形设计或3D照片编辑工具)或自动(例如,使用3D扫描仪)来生成主体的合成3D表示,并且所得到的3D模型可以作为自动生成与3D模型主体相关的训练数据的基础。该训练数据可以与其他训练数据组合以形成至少部分地由合成训练数据组成的训练数据集,并且该训练数据集可以用于训练一个或多个机器学习模型。
作为示例,深度强化学习模型或其他机器学习模型(诸如本文所介绍的)可以用于允许自主机器扫描商店、仓库或其他商业的货架,以评估商店内某些产品的可用性。因此,可以训练机器学习模型以允许自主机器检测单个产品。在一些情况下,机器学习模型不仅可以标识货架上的产品,还可以标识货架上的产品数量(例如,使用深度模型)。不是利用商店里(例如,来自相同或不同的商店)承载的每一个或每一件产品、产品的每一个或每一种配置的一系列真实世界图像(例如,产品在各种光照下在各种显示器上的每一个姿势或视图(完整的或部分的)、产品包装的各种取向的视图等)来训练机器学习模型,而是可以生成每一个产品(或至少产品中的一些)的合成3D模型(例如,通过产品提供商、机器学习模型的提供商、或其他来源)。3D模型在其细节和分辨率上可以是照片般真实的或近照片般真实的。3D模型可以与其他3D模型一起提供以供消费,以生成给定主体(例如,产品)的各种不同视图或者甚至生成不同主体的集合(例如,商店货架上的产品的集合,产品的各种组合在不同的光照下以不同的取向放置在彼此旁边等)以生成合成的训练数据图像集,以及其他示例应用。
转到图14,示出了示例计算系统(例如,1415)的简化框图1400,该示例计算系统实现训练集生成器1420以生成合成训练数据,以供机器学习系统1430训练一个或多个机器学习模型(例如1435)(诸如深度强化学习模型、暹罗神经网络、卷积神经网络、和其他人工神经网络)。例如,3D扫描仪1405或其他工具可以用于生成一组3D模型1410(例如,人、室内和/或室外建筑、景观元素、产品、家具、运输元素(例如,道路标志、汽车、交通危险等)、和其他示例),并且这些3D模型1410可被训练集生成器1420消费或者可被提供作为训练集生成器1420的输入。在一些实现方式中,训练数据生成器1420可以自动渲染来自3D模型1410的训练图像集、点云、深度图、或来自3D模型1410的其他训练数据1425。例如,训练集生成器1420可以被编程地配置为自动倾斜、旋转和缩放3D模型,并且在所得到的不同取向和姿势以及不同(例如,计算机模拟的)光照等中捕获该3D模型的图像的集合,其中整个3D模型主体的全部或一部分被捕获在图像中,以捕获大量和各种图像以满足“完整”和多样的图像的集合以捕获主体。
在一些实现方式中,从3D模型生成的合成训练图像可以具有与它们所基于的(多个)真实主体可比的照片般真实的分辨率。在一些情况下,训练集生成器1420可以被配置为以故意降低所得图像的分辨率和质量的方式(与高分辨率3D模型相比)从3D模型自动渲染或产生图像或其他训练数据。例如,图像质量可通过以下操作来降低:添加噪声、应用滤波器(例如高斯滤波器)、以及调整一个或多个渲染参数而引入噪声、降低对比度、降低分辨率、更改亮度水平、以及使图像达到与传感器(例如3D扫描仪、相机等)可能产生的图像相当的质量水平,以及其他调整,这些传感器预期为要训练的机器学习模型提供输入。
当构造专门用于训练深度神经网络的数据集时,训练集生成器系统可定义并考虑许多不同的条件或规则。例如,CNN传统上需要大量的数据用于训练,以产生准确的结果。合成数据可以避开可用训练数据集太小的情况。因此,可以针对特定的机器学习模型标识训练数据样本的目标数量,并且训练集生成器可以基于生成的训练样本的数量和类型来满足所期望的训练样本量。此外,训练集生成器可以设计和考虑条件,以生成在样本中具有超过阈值量的变化的集合。这是为了将机器学习模型的过度拟合最小化,并提供必要的泛化,以在大量高度变化的场景下表现良好。这样的变化可以通过训练集生成器应用的可调整参数来实现,该可调整参数诸如用于从3D模型生成单个样本的相机角度、相机高度、视野、光照条件等。
在一些实施例中,可以提供传感器模型(例如,1440),该传感器模型定义传感器的特定类型或模型(例如,特定的2D或3D相机、LIDAR传感器等)的各个方面,其中模型1440定义了要对原始图像、点云或其他训练数据(例如,从3D模型生成的)做出的滤波和其他修改以模拟由经建模传感器生成的数据(例如,分辨率、眩光敏感性、光照/黑暗敏感性、噪声敏感性等)。在此类实例中,训练集生成器可以人为地使从3D模型生成的样本降级,以模拟由经建模传感器生成的等效图像或样本。以该方式,可以生成合成训练数据中的样本,这些样本在质量上与要输入到经训练的机器学习模型的数据(例如,如由(多个)传感器的真实世界版本生成的)具有可比性。
转到图15,示出了图示合成训练数据的示例生成的框图1500。例如,可以生成特定主体的3D模型1410。3D模型可以是主体的逼真或照片般真实的表示。在图15的示例中,模型1410表示包含一组玻璃瓶的硬纸板包装。可以基于3D模型1410生成图像集合(例如,1505),捕获3D模型1410的各种视图,包括3D模型在各种照明、环境、状况(例如,在使用/闲置、打开/关闭、损坏等)下的视图。图像集合1505可以使用示例训练数据生成器的传感器滤波器(例如,在传感器模型中定义的)来处理。图像1505的处理可以导致图像1505被修改以使图像1505降级,以生成“真实的”图像1425,该图像1425模拟了使用真实传感器捕获的图像的质量和特征。
在一些实现方式中,为了帮助生成合成训练数据样本的降级版本,模型(例如,1410)可以包括元数据以指示模型主体的材料和其他特性。在此类实现方式中,训练数据生成器(例如,结合传感器模型)可以考虑模型中定义的主体的特性,以确定给定照明的特定传感器如何可能生成真实图像(或点云)、传感器相对于建模主体的位置、主体的特性(例如,(多种)材料)、以及其他考虑因素。例如,图15的特定示例中的模型1410(对瓶子的包装建模)可以包括元数据,以定义3D模型的哪些部分(例如,哪些像素或多边形)与玻璃材料(瓶子)相对应以及哪些部分与硬纸板(包装)相对应。因此,当训练数据生成器生成合成图像并将传感器滤波1510应用于图像1505(例如,对光从3D模型的各种表面反射的方式进行建模)时,所建模的传感器对这些特性的反应可以更实际地应用于生成可信的训练数据,该可信的训练数据更符合实际传感器在被用来生成训练数据时所创建的数据。例如,在3D模型中建模的材料可以允许生成训练数据图像,该训练数据图像模拟传感器的敏感性,以生成具有眩光、噪声或其他缺陷的图像,例如,与图15的示例中瓶子的玻璃表面的反射相对应的图像,但与不那么反光的硬纸板表面相对应的噪声或眩光较少。类似地,在主体的3D模型表示中建模的材料类型、温度和其他特性可能对不同的传感器(例如,相机传感器与LIDAR传感器)具有不同的影响。因此,示例测试数据生成器系统可以考虑3D模型以及特定的传感器模型的元数据,以自动地确定将哪些滤波或处理应用于图像1505,以便生成模拟很有可能由真实世界传感器生成的各图像版本的图像的降级版本(例如,1425)。
附加地,在一些实现方式中,图像1505的进一步后处理可以包括景深调整。在一些3D渲染程序中,软件中使用的虚拟相机是完美的,可以完美对焦地捕获近距离和远距离的对象。然而,对于真实世界相机或传感器(并且可以在训练集生成器使用的相对应的传感器模型的属性中这样定义的),这可能不是真的。因此,在一些实现方式中,在后处理期间可以对图像应用景深效果(例如,使用训练集生成器自动地标识和选择相机将聚焦在背景上的点,并导致所建模的主体的特征出现失焦,从而创建有缺陷但更真实的照片(例如,1425)的实例。附加的后处理可以包括在图像上添加噪声,以模拟摄影中出现的噪声伪影。例如,训练集生成器可以包括通过限制光线跟踪算法在对象上计算的光反弹数以及其他示例技术来添加噪声。附加地,轻微的像素化可以应用于渲染模型的顶部,以消除由于合成过程而出现的任何过度或不真实的平滑边缘或表面。例如,可以添加光模糊层以平均出像素的“块”,其与其他后处理操作(例如,基于相对应的传感器模型)相结合可以产生更真实的合成训练样本。
如图15所示,在从示例3D模型1410生成训练数据样本(例如,1425)时,可以将样本(例如,图像、点云等)添加到或包括在其他真实或合成生成的训练样本中,以构建用于深度学习模型(例如,1435)的训练数据集。还如图14的示例所示的,(例如,示例机器学习系统1430的)模型训练器1455可以用于训练一个或多个机器学习模型1435。在一些情况下,可以从(多个)3D模型生成合成深度图像。经训练的机器学习模型1435随后可以被自主机器用于执行各种任务,诸如对象识别、自动库存处理、导航等。
在图14的示例中,实现示例训练集生成器1420的计算系统1415可以包括一个或多个数据处理装置1445、一个或多个计算机可读存储元件1450、以及在硬件和/或软件中实现的逻辑,以实现训练集生成器1420。应当理解,虽然图14的示例示出了计算系统1415(及其组件)与用于训练和/或执行机器学习模型(例如,1435)的机器学习系统1430分开,但在一些实现方式中,单个计算系统可以用于实现模型生成器1405、训练集生成器1420和机器学习系统1430中的两个或更多个的组合功能以及其他替代实现方式和示例架构。
在一些实现方式中,可以提供一种计算系统,该系统能够使用合成训练数据进行一次性学习。此类系统可以在不需要训练成百上千张图像的情况下进行对象分类。一次性学习允许从很少的训练图像中分类,甚至在某些情况下,单个训练图像。这节省了开发用于训练特定机器学习模型的训练集的时间和资源。在一些实现方式中,诸如在图16和图17所示出的,机器学习模型可以是学习在两个输入之间的区分的神经网络,而不是学习对其输入进行分类的模型的神经网络。此类机器学习模型的输出可以标识提供给模型的两个输入之间的相似性度量。
在一些实现方式中,可以提供机器学习系统,诸如在图14的示例中,该机器学习系统可以模拟从少数训练示例中分类对象类别的能力。此类系统还可以消除创建多个类的大数据集的需要,以便有效地训练相对应的机器学习模型。同样,可以选择不需要对多个类进行训练的机器学习模型。机器学习模型可以用于通过将对象(例如,产品、人、动物、或其他对象)的单个图像与比较图像一起馈送给该模型来识别该对象。如果系统无法识别比较图片,则使用机器学习模型(例如,暹罗网络)确定对象不匹配。
在一些实现方式中,可以将暹罗网络用作使用合成训练数据训练的机器学习模型,诸如以上示例中介绍的。例如,图16示出了简化框图1600,其示出了由两个相同的神经网络1605a、1605b组成的示例暹罗网络,其中网络中的每一个在训练后具有相同的权重。可以提供比较块(例如,1620)来评估两个相同网络的输出的相似性,并将所确定的相似性与阈值进行比较。如果相似性在阈值范围内(例如,低于或高于给定阈值),则暹罗网络(由两个神经网络1605a、1605b和比较块1620组成)的输出可以指示(例如,在1625处)两个输入是否参考共同对象。例如,可以将两个样本1610、1615(例如,图像、点云、深度图像等)作为各自的输入提供给两个相同的神经网络1605a、1605b中的每一个。在一个示例中,神经网络205a、1605b可以实现为基于ResNet的网络(例如,ResNet50或另一个变体),并且每一个网络的输出可以是输入到比较块1620的特征向量。在一些实现方式中,比较块可以从两个特征向量输入生成相似向量,以指示两个输入1610、1615的相似性。在一些实现中,此类暹罗网络实现的输入(例如,1610、1615)可以构成表示代理的当前观察(例如,由自主机器的传感器生成的图像或深度图)和目标的两个图像。深度暹罗网络是一种用于判别嵌入式学习的双流神经网络模型,该双流神经网络模型可以利用合成的训练数据进行一次性学习。例如,两个输入(例如,1610、1615)中的至少一个可以是合成生成的训练图像或参考图像,诸如上文所讨论的。
在一些实现方式中,暹罗网络或使用合成数据训练的其他机器学习模型的执行可以利用专门的机器学习硬件(诸如机器学习加速器(例如,Intel运动神经计算棒(NCS))),该机器学习硬件可以与通用微型计算机接口,以及其他示例实现方式中。该系统可以在多种应用中使用。例如,网络可以用于安全或认证应用中,诸如在允许触发允许访问人、动物或交通工具的致动器之前要识别人、动物或交通工具的应用。作为具体示例,智能门可以配备图像传感器以识别接近门的人或动物,并且可以只向与一组授权用户中的一个匹配的用户授予访问权限(使用机器学习模型)。此类机器学习模型(例如,利用合成数据训练的)也可以用于工业或商业应用,诸如产品验证、库存和利用商店中的产品识别来确定产品是否存在(或有多少)或产品存在于特定位置内(例如,在适当的架子上)的其他应用,以及其他示例。例如,如在图17的简化框图1700所示的示例中所示,与消费品有关的两个示例图像1705、1710可以被提供为具有阈值确定逻辑1720的暹罗网络的输入。暹罗网络模型1720可以确定两个样本图像1705、1710是否可能是同一产品(在1715处)的图像。实际上,在一些实现方式中,此类暹罗网络模型1720可以在各种旋转和遮挡处标识产品。在一些实例中,3D模型可以用于为更复杂的产品和对象生成多个参考图像,以进行附加级别的验证,以及其他示例性考虑和特征。
在一些实现方式中,计算系统可以配备适于执行机器学习任务以执行点云注册或合并两个或更多个独立点云的逻辑和硬件。为了执行点云的合并,需要找到一个转换,它将点云的内容对准。此类问题在涉及自主机器的应用中很常见,诸如在机器人感知应用、为未知环境创建地图、以及其他用户案例。
在一些实现方式中,卷积网络可以用作找到2D图像之间相对姿势的解决方案,从而提供与传统的基于特征的方法可比较的结果。3D扫描技术的进步允许进一步创建多个数据集,其中3D数据有助于训练神经网络。在一些实现方式中,可以提供机器学习模型,该模型可以接受两个或更多个不同输入的流,该两个或更多个数据输入中的每一个包含各自的三维(3D)点云。两个3D点云可以是从两个不同的相应姿势测量的相同物理(或物理的虚拟化版本)空间或对象的表示。机器学习模型可以接受这两个3D点云输入,并作为输出生成两个3D点云的源之间的相对或绝对姿势的指示。然后,可以使用相对姿势信息从环境的多个快照(3D点云)(来自一个或多个不同的传感器和设备(例如,多个无人机或移动同一无人机以扫描环境))生成表示环境的全局3D点云表示。相对姿势还可以用于将由特定机器测量的3D点云输入与先前生成的环境的全局3D点云表示进行比较,以确定特定机器在环境内的相对位置,以及其他示例用途。
在一个示例中,使用体素化点云处理技术,该体素化点云处理技术创建3D网格来对点进行排序,其中可以应用卷积层,诸如图18的示例所示的。在一些实现方式中,3D网格或点云可以被实现或表示为基于体素的数据结构,诸如本文所讨论的。例如,在图18的示例中,可以从通过对示例3D环境进行RGB-D相机或LIDAR扫描来生成的点云1805中生成基于体素的数据结构(由1810表示)。在一些实现方式中,可以提供给比较机器学习模型的两个点云输入,诸如采用暹罗网络的点云输入可以是一对3D体素网格(例如,1810)。在一些实例中,两个输入可以首先在多个潜在体素分辨率中的任何一个处进行体素化(并转换为基于体素的数据结构(例如,1810)),诸如上文所讨论的。
在由图19的简化框图1900表示的一个示例中,机器学习模型可以由表示部分1920和回归部分1925组成。如上所述,基于暹罗网络的机器学习模型可以被配置为从一对3D体素网格输入(例如,1905、1910)或其他点云数据直接估计相对相机姿势。在一些实现方式中,给定体素网格数据的组织结构,在具有经典卷积层的神经网络中可以有利地使用3D体素网格。使用网络确定的相对相机姿势可以用于合并体素网格输入的相对应的点云。
在一些实现方式中,示例网络的表示部分1920可以包括具有共享权重和偏差的暹罗网络。每一个分支(或暹罗网络的信道)由连续的卷积层形成,以提取各自输入1905、1910的特征向量。此外,在一些实现方式中,在每一个卷积层之后,可以提供整流线性单元(ReLU)作为激活函数。在一些情况下,可以省略池层以确保数据的空间信息被保留。从网络的表示部分1920输出的特征向量可以被组合以进入回归部分1925。回归部分1925包括能够产生表示两个输入点云1905、1910之间的相对姿势的输出1930的全连接层集。在一些实现方式中,回归部分1925可以由两个全连接层集组成,一个层集负责生成姿势估计的旋转值,第二层集负责生成姿势的平移值。在一些实现方式中,回归部分1925的全连接层之后可以跟随ReLu激活函数(除了最终层,因为输出可能具有负值),以及其他示例性特征和实现方式。
在一些实现方式中,可以在训练阶段对机器学习模型进行自监督学习,诸如在上面的图19的示例中。例如,由于网络(在图19的示例中示出)的目标是解决回归问题,因此可以提供引导网络以实现其解决方案的损失函数。可以提供训练阶段来导出损失函数,诸如基于标签或通过将两个点云的对准量化的损失函数。在一个示例中,可以实现示例训练阶段2020,如图20的简化框图2000所示,其中将输入2005提供给基于迭代最近点(ICP)的方法2015(例如,与相对应的CNN 2010相关),该方法用于获取基于数据的基准真值,该基准真值对于y用于预测损失函数2025将其与网络预测相比较的姿势。在此类示例中,不需要具有带标签的基准真值的数据集。
一种基于暹罗网络的训练模型(诸如图19-图20中所讨论的)可以用于诸如3D地图生成、导航和定位等应用。例如,如图21的示例所示,此类网络可以由移动机器人(例如,2105)或其他自主机器(结合机器学习硬件(例如,NCS设备2110))以帮助在环境内导航。该网络还可以用于生成环境2115的3D地图(例如,稍后可以由机器人或自主机器使用的),以及其他同步定位和地图构建(SLAM)应用。
在一些实现方式中,边缘到边缘机器学习可以用于在应用内执行传感器融合。此类解决方案可以通过融合不同传感器的数据来回归机器人随时间的移动。虽然这是研究得很好的问题,但当前的解决方案会承受随时间漂移或者计算很昂贵。在一些示例中,机器学习方法可以用于计算机视觉任务,同时对数据中的噪声、照明变化和运动模糊不太敏感,以及其他示例优点。例如,卷积神经网络(CNN)可以用于对象识别并且以计算光流。执行基于CNN的模型的系统硬件可以采用硬件组件和子系统,诸如长短期存储器(LSTM)块来识别附加效率,该附加效率诸如信号回归的良好结果,以及其他示例。
在一个示例中,可以提供一种系统,该系统利用能够接受来自不同类型数据(例如,诸如RGB和IMU数据)的多个源的输入的机器学习模型,以便独立地克服每一个源的弱点(例如,单目RGB:缺乏标度,IMU:随时间漂移等)。机器学习模块可以包括针对每一种类型的数据源的分析而调整的相应的神经网络(或其他机器学习模型),其可以被连接并馈送到全连接层的阶段中,以从多个数据流生成结果(例如,姿势)。例如,此类系统可以在用于实现机器(诸如机器人、无人机、或交通工具)自主导航的计算系统中找到用途,以及其他示例应用。
例如,如图22的示例所示的,可以将IMU数据提供为针对IMU数据而调整的网络的输入。IMU数据可以提供一种通过测量加速度和取向来跟踪主体的移动的方法。然而,在一些情况下,当在机器学习应用中单独使用时,IMU数据可能会随时间漂移。在一些实现方式中,LSTM可以用来跟踪该数据随时间的关系,从而有助于减少漂移。在由图22的简化框图2200所示的一个示例中,n个原始加速计(acc)和陀螺仪(gyr)数据元素2205的子序列用作示例LSTM 2210的输入(例如,其中每一个数据元素由6个值(分别来自IMU的加速计和陀螺仪的3个轴)组成)。在其他实例中,输入2205可以包括图像帧之间的n(例如,10)个相对姿势的子序列(例如,帧fi和帧fi+1之间的n个相对姿势,
Figure BDA0002861092220000291
)。可以在网络中提供全连接层(FC)2215以提取转换的旋转分量和平移分量。例如,在全连接层2215之后,所得的输出可以馈送到用于提取旋转值2230的全连接层2220和用于提取平移值2225的全连接层2225中的每一个。在一些实现方式中,模型可以被构建为包括更少的LSTM层(例如,1个LSTM层)和更多数量的LSTM单元(例如,512个或1024个单元等)。在一些实现方式中,使用三个全连接层2215的集合,接着是旋转2220和平移2225全连接层。
转到图23的示例,示出了能够处理图像数据(诸如单目RGB数据)的数据流的网络的简化框图2300。因此,可以提供RGB CNN部分,该部分被训练以用于计算光流并且可以具有用于姿势估计的维数减少的特征。例如,可以提供若干个全连接层来降低维数和/或特征向量可以被整形为矩阵,并且可以使用一组4个LSTM来寻找特征之间的对应关系并缩减维数等。
在图23的示例中,可以提供预先训练的光流CNN(例如,2310)以接受作为输入2305的一对连续RGB图像,该预先训练的光流CNN诸如FlowNetSimple、FlowNetCorr、引导光流、VINet、或其他光网络。可以进一步构造该模型以通过光流CNN 2310从图像对2305提取特征向量,然后对该向量进行缩减以获取与输入2305相对应的姿势向量。例如,可以将光网络部分2310的输出提供给一组一个或更多个附加卷积层2315(例如,用于从光网络部分2310的输出中减小维数和/或移除用于估计流向量但不需要用于姿势估计的信息),其输出可以是矩阵,该矩阵可以被展平成相对应的向量(在2320处)。可将该向量提供给全连接层2325以执行该展平的向量的维数的缩减(例如,从1536到512的缩减)。可以将该缩减的向量提供回到整形块2330以将该向量转换或整形为矩阵。然后,可以使用一组四个LSTM 2335(所整形的矩阵的每一个方向一个(例如,从左到右、从顶到底;从右到左、从底到顶;从顶到底、从左到右;以及从底到顶、从右到左))可以用来跟踪沿时间的特征对应关系并缩减维数。然后,LSTM集2335的输出可以提供给旋转全连接层2340以基于图像对2305生成旋转值2350,以及提供给平移全连接层2345以基于图像对2305生成旋转值2355,以及其他示例实现方式。
转到图24,示出了传感器融合网络2405的简化框图2400,该传感器融合网络2405将IMU神经网络部分2410(例如,如图22的示例所示的)和RGB神经网络部分2415(例如,如图23的示例所示的)的结果连接。此类机器学习模型2405可以通过从每一个传感器类型中取最优来进一步使得能够进行传感器融合。例如,机器学习模型可以将CNN和LSTM结合以得到更可靠的结果(例如,CNN能够从一对连续图像中提取特征,并且LSTM能够获取关于传感器的渐进移动的信息)。在该方面,CNN和LSTM的输出是互补的,使机器能准确估计两个连续帧之间的差异(及其相对变换)及其在真实世界单元中的表示。
在图24的示例中,可以将每一个传感器特定部分(例如,2405、2410)的结果连接并提供给组合机器学习模型2405(或传感器融合网络)的全连接层,以生成包含旋转姿势和平移姿势的姿势结果。虽然单独地,IMU数据和单目RGB似乎不能为回归问题的可靠解决方案提供足够的信息,但是将这些数据输入组合(诸如本文所示出和所讨论的)可以提供更稳健和可靠的结果(例如,诸如图25A-25B中的2500a、2500b中所示的示例结果所示的)。此类网络2405利用两种传感器类型(例如,RGB和IMU)的有用信息。例如,在该特定示例中,网络2405的RGB CNN部分2415可以提取关于连续图像之间的相对变换的信息,而基于IMU LSTM的部分2410提供转换的标度。由每一个部分2410、2415输出的相应的特征向量可以被馈送到连接器(concatenator)块2420以连接向量并将该结果馈送到核心全连接层2425中,接着被馈送到旋转全连接层2430以生成旋转值2440并被馈送到平移全连接层2435以生成平移值2445,该旋转值和平移值的生成基于RGB图像2305和IMU数据2205的组合。应该理解,虽然图22-图24的示例示出了RGB数据和IMU数据的融合,根据本文所讨论的原理,其他数据类型可以替代(例如,利用GPS数据替代和补充IMU数据等)和组合到机器学习模型中。实际上,在其他示例实现方式中,可以提供两个以上的数据流(以及馈送到连接器中的相对应的神经网络部分),以便在其他示例实现方式中允许更稳健的解决方案,以及其他示例修改和替代方案。
在一些实现方式中,可以提供神经网络优化器,该神经网络优化器可以向用户或系统标识针对特定应用的一个或多个推荐的神经网络和使用神经网络执行机器学习任务的硬件平台。例如,如图26所示,可以提供计算系统2605,该计算系统2605包括微处理器2610和计算机存储器2615。计算系统2605可以实现神经网络优化器2620。神经网络优化器2620可以包括执行引擎,以使得使用机器学习硬件(例如,2625)来执行一组机器学习任务(例如,2635),诸如本文所描述的,以及其他示例硬件。神经网络优化器2620可以附加地包括一个或多个探针(例如,2630)以监测机器学习任务的执行,因为这些任务是由使用由神经网络优化器2620所选的神经网络集中的一个来执行的,该神经网络优化器2620用于在机器学习硬件2625上执行并由神经网络优化器2620监测。探针2630可以测量诸如由机器学习硬件2625在任务执行期间消耗的功率、机器学习硬件在执行期间的温度、使用特定神经网络完成任务所花费的速度或时间、使用特定神经网络的任务结果的准确性、使用的存储器(例如,存储正在使用的神经网络)的量等的属性,以及其他示例参数。
在一些实现方式中,计算系统2605可以与神经网络生成系统(例如,2640)对接。在一些实现方式中,评估神经网络的计算系统(例如,2605)和神经网络生成系统2640可以在同一计算系统上实现。神经网络生成系统2640可以使用户能够针对各种任务和解决方案手动地设计神经网络模型(例如,CNN)。在一些实现方式中,神经网络生成系统2640可以附加地包括先前生成的神经网络的储存库2645。在一个示例中,神经网络生成系统2640(例如,诸如CAFFE、TensorFlow等的系统)可以生成神经网络集2650。该集合可以随机生成,从头开始生成新的神经网络(例如,基于适合于给定应用的一些广义参数,或根据一般神经网络类型或属)和/或从储存库2645中随机选择神经网络。
在一些实现方式中,神经网络集2650可以由神经网络生成系统2640生成并提供给神经网络优化器2620。神经网络优化器2620可使特定机器学习硬件(例如,2625)使用该神经网络集2650中的每一个来执行一个或多个机器学习任务的标准化集合。神经网络优化器2620可以监测与硬件2625使用该神经网络2650集中的每一个有关的任务的执行。神经网络优化器2620可以附加地接受数据作为输入,以标识在由神经网络优化器确定神经网络集中的哪一个是“最好的”时候由神经网络优化器的探针(例如,2630)测量的哪些参数或特性将被赋予最高权重或给予优先级。基于这些准则和神经网络优化器在使用(例如,随机生成的)神经网络集中的一个期间的观察,神经网络优化器2620可以基于所提供的准则来标识和提供用于特定机器学习硬件(例如,2625)的性能最佳的神经网络。在一些实现方式中,神经网络优化器可以自动地将这个性能最佳的神经网络提供给硬件,以便附加的使用和训练等。
在一些实现方式中,神经网络优化器可以采用进化探索来迭代改进从由神经网络优化器(例如,2620)评估的初始(例如,随机生成的)神经网络集合所标识的结果。例如,神经网络优化器可以从神经网络优化器所评估的初始集合中标识性能最佳的一个或多个神经网络的特性。然后,神经网络优化器可以向神经网络生成器(例如,2640)发送请求,以生成具有与针对特定硬件(例如,2625)的性能最佳的神经网络中所标识的那些性能相似的性能的另一组不同的神经网络。然后,神经网络优化器2620可以使用由神经网络生成器基于来自由神经网络优化器评估的初始批次中性能最佳的神经网络生成的下一组或下一代的神经网络来重复其评估。再一次,神经网络优化器2620可以根据所提供的准则来标识该第二代神经网络中哪一个性能最佳,并再次确定第二代中性能最佳的神经网络的特性,作为向神经网络生成器发送请求以生成用于评估的第三代神经网络的基础,并因此利用神经网络优化器2620迭代地评估神经网络,这些神经网络从一代到下一代的进化(理论上是改进的)。如在先前的示例中,神经网络优化器2620可以提供最新一代的性能最佳的神经网络的指示或副本,以供机器学习硬件(例如,2625)使用,以及其他示例实现方式。
作为具体示例,如图27的框图2700所示,机器学习硬件2625(诸如Movidius NCS)可以与用作设计空间探索工具的神经网络优化器一起使用,该工具可以使用神经网络生成器2640或提供者(诸如Caffe)来在硬件限制下以最高准确度找到网络。可提供此类设计空间探索(DSX)工具以利用包括带宽测量和网络图在内的完整API。此外,可以对机器学习硬件API进行一些扩展或在机器学习硬件API中提供一些扩展,以提取对设计空间探索有用的附加参数,诸如温度测量、推断时间测量,以及其他示例。
为了示出DSX概念的强大,本文提供了示例,其中探讨了小型始终在线人脸检测器的神经网络设计空间,诸如以在最新的手机中实现的面部检测唤醒作为示例。可以将各种神经网络提供给机器学习硬件,并且可以针对每一个神经网络的使用来监测性能,诸如在推理阶段训练的网络的功率使用。DSX工具(或神经网络优化器)可以为给定的分类任务生成不同的神经网络。数据可以传输到硬件(例如,在NCS的情况下,使用NCS API经由USB往返于NCS)。通过上文所解释的实现方式,用于不同目的的最佳模型可以是设计空间探索的结果,而不是通过手动编辑、复制和粘贴任何文件来找到。作为说明性示例,图28示出了表2800,该表2800示出了DSX工具对多个不同的、随机生成的神经网络的评估的示例结果,包括在使用每一个神经网络执行机器学习任务期间机器学习硬件(例如,连接到NCS的通用微处理器)的性能特性(例如,显示准确度、执行时间、温度、存储器中神经网络的大小、和所测量的功率等示例参数、以及其他示例参数,这些参数可由DSX工具测量)图29示出了验证准确度与执行时间(在2900处)和大小(在2905处)的比较结果。这些关系和比率可以由NCS在确定被评估的神经网络中的哪一个对于特定的机器学习平台是“最佳”时加以考虑。
深度神经网络(DNN)在各种计算机视觉任务(诸如图像分类和对象检测)中提供了最先进的准确度。然而,DNN的成功通常是通过显著增加计算量和存储器来实现的,这使得它们很难部署在资源受限的推理边缘设备上。在一些实现方式中,如修剪和量化等的网络压缩技术可以降低计算和存储器需求。这也有助于防止过度拟合,特别是对于小型自定义数据集的转移学习,准确度几乎没有损失。
在一些实现方式中,还可以提供神经网络优化器(例如,2620)或其他工具来动态地、自动地减小神经网络的大小,以供特定的机器学习硬件使用。例如,神经网络优化器可以执行细粒度修剪(例如,连接或权重修剪)和粗粒度修剪(例如,卷积核、神经元或信道修剪),以减小由给定机器学习硬件存储和操作的神经网络的大小。在一些实现方式中,机器学习硬件(例如,2625)可以配备有能够执行稀疏矩阵乘法的算术电路,使得硬件可以有效地处理经权重修剪的神经网络。
在一个实现方式中,神经网络优化器2620或其他工具可以执行神经网络的混合修剪(例如,如图30A的框图3000a所示的),以在卷积核级别和权重级别二者上进行修剪。例如,神经网络优化器2620或其他工具可以考虑一个或多个算法、规则或参数,以自动标识可以从给定神经网络中修剪3010的卷积核集或信道集(在3005处)。在第一信道修剪步骤完成之后(在3015处),可以对剩余的信道3015执行权重修剪3020,如图30A的示例图示所示的。例如,规则可以控制权重修剪,从而设置阈值,由此修剪低于阈值的权重(例如,重新分配权重“0”)(在3025处)。然后,可以运行或迭代混合修剪网络,以允许从修剪中恢复网络的准确度,从而产生网络的紧凑版本,而不会有害地降低模型的准确度。附加地,在一些实现方式中,可以量化修剪后剩余的权重,以进一步减少存储经修剪的模型的权重所需的存储器的量。例如,如图31的框图3100所示的,可以执行对数标度量化3110,使得浮点权重值(在3105处)被其最近的以2为底的对应物替换(在3115处)。以该方式,32位浮点值可以替换为4位以2为底的值,以显著减少存储网络权重所需的存储器的量,同时仅最小程度地牺牲紧凑神经网络的准确度,以及在其他示例量化和特征(例如,如图32的表3200所示的示例结果所示的)。实际上,在图32的特定示例中,混合修剪的应用的研究被示出为应用于示例神经网络,诸如ResNet50。附加地,示出了权重量化在经修剪的稀疏薄ResNet50上的应用,以进一步减小模型尺寸以对模型更友好。
如图30B的简化框图3000b所示的,在一个示例中,可以通过访问初始或参考神经网络模型3035和(可选地)使用正则化(L1、L2或L0)3040训练该模型来执行示例神经网络的混合修剪。网络内的单个神经元(或连接)的重要性可以被评估3045,其中被确定为重要性较低的神经元(在3050处)从网络中修剪掉。经修剪的网络可以被微调3055并从该修剪中生成的最终紧凑(或稀疏)的网络3060。如图30B的示例所示,在一些情况下,可以迭代地修剪网络,其中在对经修剪的网络进行微调3055之后执行附加的训练和修剪(例如,3040-3050),以及其他示例实现方式。在一些实现方式中,可以利用诸如上文所描述的混合修剪技术来确定神经元的重要性3045。例如,可以执行细粒度权重修剪/稀疏化(例如,利用(平均值+标准差*因子)的全局渐进修剪)。粗粒度信道修剪可以基于灵敏度测试和/或目标MAC数量来逐层执行(例如,权重和(sum)修剪)。粗修剪可以在稀疏修剪之前进行。例如,还可以执行权重量化,以将对非零权重的约束设置为2或0的幂和/或使用1位表示0,使用4位表示权重。在一些情况下,可以执行低精度(例如,权重和激活)量化,以及其他示例技术。修剪技术(诸如上文所讨论的),可以产生各种各样的示例好处。例如,紧凑矩阵可以减少所存储的网络参数的大小,而运行时权重解压缩可以减少DDR带宽。还可以提供加速计算,以及其他示例优点。
图33A是用于生成包括合成训练数据样本(例如,合成生成的图像或合成生成的点云)的训练数据集的示例技术的简化流程图3300a。例如,可以从计算机存储器访问3302数字3D模型,并且可以从数字3D模型的各种视图生成3304多个训练样本。训练样本可以被修改3306,以便向训练样本添加缺陷以模拟如通过一个或多个真实世界样本生成的训练样本。生成3308训练数据集以包括经修改的合成生成的训练样本。可以使用所生成的训练数据集来训练一个或多个神经网络3310。
图33B是用于使用示例暹罗神经网络模型执行一次性分类的示例技术的简化流程图3300b。主体输入可以被提供3312作为暹罗神经网络模型的第一部分的输入,并且参考输入可以被提供3314作为暹罗神经网络模型的第二部分的输入。模型的第一部分和第二部分可以相同,并且具有相同的权重。可以基于主体输入和参考输入(诸如差异向量)从第一和第二部分的输出生成3316暹罗网络的输出。例如,可基于暹罗神经网络模型的输出的相似性的阈值来确定3318该输出是否指示主体输入与参考输入充分相似(例如,指示主体输入的主体与参考输入的主体相同)。
图33C是用于使用示例暹罗神经网络模型确定相对姿势的示例技术的简化流程图3300c。例如,第一输入可以被接收3320作为暹罗神经网络模型的第一部分的输入,该第一输入表示来自(例如自主机器的)第一姿势的3D空间(例如,点云数据、深度地图数据等)的视图。第二输入可以被接收3322作为暹罗神经网络模型的第二部分的输入,该第二输入表示来自第二姿势的3D空间的视图。可以基于第一和第二输入生成3324暹罗网络的输出,该输出表示第一和第二姿势之间的相对姿势。与第一和第二姿势相关联的机器的位置和/或机器所驻留的3D地图可以基于所确定的相对姿势来确定3326。
图33D是涉及传感器融合机器学习模型的示例技术的简化流程图3300d,该模型将两个或更多个机器学习模型的至少各部分组合起来,这些部分被调整以供与两个或更多个不同数据类型中的相对应的一个类型一起使用。第一类型的第一传感器数据可以被接收3330作为传感器融合机器学习模型中的两个或更多个机器学习模型中的第一个的输入。第二类型的第二传感器数据(例如,与第一传感器数据同时生成(例如,由相同或不同机器上的传感器生成))可以被接收3332作为该两个或更多个机器学习模型中的第二个的输入。第一和第二机器学习模型的输出可以被连接3334,所连接的输出被提供3336给传感器融合机器学习模型的全连接层集。基于第一和第二传感器数据,传感器融合机器学习模型可以生成3338输出,以定义设备(例如,生成第一和第二传感器数据的传感器位于其上的机器)的姿势。
图33E是用于根据进化的算法生成针对特定机器学习硬件进行调整的改进或优化的神经网络的示例技术的简化流程图3300e。例如,可以访问3340或生成神经网络集(例如,根据随机选择的属性自动生成)。机器学习任务可以由使用神经网络集的特定硬件执行3342,并且可以监测3344这些任务的特定硬件的性能的属性。基于该监测的结果,可以标识3346集合中的一个或多个性能最好的神经网络。可以确定性能最好的神经网络(用于特定硬件)的特性,并且可以生成3350包括此类特性的另一个神经网络集。在一些实例中,还可以测试该新的神经网络集(例如,通过步骤3342-3348),以迭代地改进考虑与该硬件联用的神经网络集,直到针对特定硬件标识出一个或多个性能足够好或充分优化的神经网络。
图33F是用于修剪神经网络的示例技术的简化流程图3300f。例如,可以将神经网络标识为3352,并且可以将神经网络的卷积核的子集3354确定为不太重要或以其他方式作为修剪的良好候选。该卷积核的子集可以被修剪3356,以生成神经网络的修剪版本。然后,可以进一步修剪剩余卷积核3358,以从这些剩余卷积核中修剪权重的子集,以在粗粒度和细粒度级别二者上进一步修剪神经网络。
图34是根据一些实施例的表示示例多时隙向量处理器(例如,超长指令字(VLIW)向量处理器)的简化框图。在该示例中,向量处理器可以包括多个(例如,9个)功能单元(例如,3403-3411),其可以由多端口存储器系统3400馈送,由向量寄存器文件(VRF)3401和通用寄存器文件(GRF)3402备份。处理器包含指令解码器(IDEC)3412,其解码指令并生成控制功能单元3403-3411的控制信号。功能单元3403-3411是预测执行单元(PEU)3403、分支和重复单元(BRU)3404、负载存储端口单元(例如,LSU0 3405和LSU1 3406)、向量运算单元(VAU)3407、标量运算单元(SAU)3410、比较和移动单元(CMU)3408、整数运算单元(IAU)3411以及体积加速单元(VXU)3409。在该特定实现方式中,VXU 3409可以加速对体积数据的操作,包括存储/检索操作两者、逻辑操作和算术操作。虽然在图34的示例中将VXU电路3409示出为单一组件,但应当理解,VXU(以及其他功能单元3403-3411中的任一个)的功能可以被分布在多个电路之间。进一步,在一些实现方式中,VXU 3409的功能可以在一些实现方式中被分布在处理器的其他功能单元(例如,3403-3408、3410、3411)中的一个或多个功能单元内,以及其他示例实现方式。
图35是根据一些实施例的示出了VXU 3500的示例实现方式的简化框图。例如,VXU3500可以提供至少一个64位输入端口3501以从向量寄存器文件3401或通用寄存器文件3402接受输入。该输入可以与多个功能单元相连接以对64位无符号整数体积位图操作,该功能单元包括寄存器文件3503、地址生成器3504、点寻址逻辑3505、点插入逻辑3506、点删除逻辑3507、在X维度中3D到2D投影逻辑3508、在Y维度中3D到2D投影逻辑3509、在X维度中3D到2D投影逻辑3510、2D直方图金字塔生成器3511、3D直方图金字塔生成器3512、群体计数器3513、2D路径找寻逻辑3514、3D路径找寻逻辑3515和可能地附加功能单元。从块3502的输出可以被写回到向量寄存器文件VRF 3401或通用寄存器文件GRF 3402寄存器文件。
转到图36的示例,表示了4^3体素立方体3600的组织的表示。还表示了第二体素立方体3601。在该示例中,体素立方体可以定义在如64位整数3602的数据中,其中立方体内的每一个单个体素由64位整数中的单个对应位来表示。例如,在地址{x,y,z}={3,0,3}处的体素3512可以被设置为“1”以指示在由体素立方体3601所表示的体积空间内的该坐标处的几何形状的存在。进一步,在该示例中,所有其他体素(除体素3602外)可以与“空白的”空间对应,并且可以被设置为“0”以指示在那些坐标处不存在物理几何形状,以及其他示例。转到图37,根据一些实施例示出了示例两层稀疏体素树3700。在该示例中,仅单个“占用的”体素被包括在体积内(例如,在位置{15,0,15})。在该情况下,树3701的上层级0包含单个体素条目{3,0,3}。该体素进而指向树3702的在元素{3,0,3}中包含单个体素的下一层。在与稀疏体素树的层级0相对应的数据结构中的条目是具有一个体素被设置为占用的64位整数3703。该被置位的体素意味着64位整数的阵列随后被分配到与3703中的体素体积集对应的树的层级1中。在层级1子阵列3704中,仅一个体素被设置为占用,而其他所有体素被设置为未占用。在该示例中,因为树是两层树,所以层级1表示树的底部,使得层级结构终止于此。
图38示出了根据一些实施例的两层稀疏体素树3800,其包含在特定体积的位置{15,0,3}和{15,0,15}中的占用的体素。在该情况下(将特定体积细分为64个上层级0体素),树3801的上层级0包含具有相对应的数据3804的两个体素条目{3,0,0}和{3,0,3},该数据3804示出了两个体素被置位(或占用)。稀疏体素树(SVT)的下一层被提供为64位整数的阵列,其包含两个子立方体3802和3803,每一个子立方体用于一个层级0中的体素集。在层级1子阵列3805的中,两个体素被设置为占用:v15和v63,并且所有其他体素被设置为未占用和树。该格式是灵活的,因为在树的下一层中的64个条目总是与在树的上层中的每一个被置位的体素相对应地分配。只要已经置位了上层中的相对应的体素,该灵活性可以允许以灵活的方式(即,而不是以固定顺序,诸如随机地)将动态变化的场景几何形状插入到现有的体积数据结构中。如果没有置位上层中的相对应的体素,则或者将保持指针的表,这导致更高的存储器要求,或者将要求至少部分地重建树以便插入未预见的几何形状。
图39示出了根据一些实施例的用于存储来自图38的体素的替代技术。在该示例中,整体体积3900包含如图23中的存储在全局坐标{15,0,3}和{15,0,15}的两个体素。在该方法中,不是分配64个条目的阵列以表示在层级0以下的层级1中的所有子立方体,而是仅将那些在层级1中的实际包含几何形状(例如,如由相应层级0体素是占用者还是非占用者所指示的)的元素分配为相对应的64位层级1记录,在该示例中,使得层级1仅具有两个64位条目而非64个条目(即,针对64个层级1体素中的每一个体素,无论是占用的还是空的)。因此,在该示例中,第一层级0 3904等同于图38中的3804,而下一层3905在存储器要求方面是图38中的相对应的3905的1/62。在一些实现方式中,如果没有已经在层级1中为将要插入到层级0中的新几何形状分配空间,则树必须被复制和重新排列。
在图39的示例中,可以通过对在当前层以上的层级中的占用体素计数来导出子体积。以此方式,系统可以确定在体素数据中一个较高层级在哪里终止以及下一个较低层级在哪里开始。例如,如果三个层级0体素被占用,则系统可以预期三个对应的层级1条目将跟随在体素数据中,并且(在这三个之后)下一个条目与层级2中的第一个条目相对应,以此类推。在场景的某些部分不随时间变化的情况下,或在应用中需要远程传输体积数据(例如从扫描冥王星表面的宇宙探测器,其中每一个比特的传输都是昂贵且耗时的)情况下,此类最优压紧可以是非常有用的。
图40示出了根据一些实施例的可以将体素插入到表示为64位整数体积数据结构条目的4^3立方体中的方式,以反映在相应体积内的几何形状的变化。在一个示例中,如4000中所示的,每一个体素块可以被组织为64位整数内的四个逻辑的16位平面。每一个平面与Z值0到3相对应,并且在每一个平面内的每一个y值编码用于4个逻辑的4位位移0到3,以及最后在每一个4位y平面内的每一个比特编码用于x的4个可能值(0到3),以及其他示例组织。因此,在该示例中,为将体素插入到4^3体积中,首先可以将x值0到3位移一位,随后可以将该值位移0/4/8/12位以编码y值,并且最后可以如4001中的C代码表达式中所示的,通过位移0/16/32/48位来表示z值。最后,因为每一个64位整数可以是最多64个体素的组合,每一个体素被单独写入,所以如4002中所示,新的位图必须通过将旧位图值和新位图值进行或运算来与从稀疏体素树中读取的旧的64位值进行逻辑组合。
转到图41,示出了根据一些实施例的表示,以解说如何能够将存储在64位整数4100中的3D体积对象通过在X方向上的逻辑或运算来投影以产生2D图案4101、通过Y方向上的逻辑或运算来投影以产生2D输出4102并且最后通过Z方向上的逻辑或运算来投影以产生4103中所示的图案。图42示出了根据一些实施例的来自输入64位整数的比特如何逻辑地或运算以产生在X、Y和Z中的输出投影。在该示例中,表4201逐列示出了对来自输入向量4200的哪些元素索引进行或运算以产生x投影输出向量4202。表4203逐列示出了对来自输入向量4200的哪些元素索引进行或运算以产生y投影输出向量4204。最后表4205逐列示出了对来自输入向量4200的哪些元素索引进行或运算以产生z投影输出向量4206。
X投影对来自输入数据4200的第0、1、2、3位比特进行逻辑或运算以产生X投影4201的第0位比特。例如,可以通过异或来自4200的第4、5、6和7位比特来产生4201中的第1位比特,以此类推。类似地,可以通过对4200的第0、4、8和12位比特一起进行或运算来产生Y投影4204中的第0位比特。并且通过对4200的第1、5、9和13位比特一起进行或运算来产生4204的第1位比特。最后,可以通过对4200的第0、16、32和48位比特一起进行或运算来产生Z投影4206中的第0位比特。并且可以通过对4200的第1、17、33和49位比特一起进行或运算来产生4206的第1位比特,以此类推。
图43示出了根据一些实施例的如何可以将投影用于生成简化图的示例。在该场景中,目标可以是从体素体积4302产生路径的紧密2D地图,高度为h 4310且宽度为w 4301的交通工具4300沿该路径行进。此处,Y投影逻辑可以用于从体素体积4302生成初始粗略2D地图4303。在一些实现方式中,可以处理该地图以检查特定维度的特定交通工具(例如,汽车(或自主汽车)、无人机等)是否能够穿过路径的宽度约束4301和高度约束4310。这可以通过执行在Z中的投影以检查宽度约束4301并且在Y中的投影可以被掩蔽以限制对交通工具高度4310的计算来执行,以便确保路径是可通过的。通过(例如,在软件中)附加的后处理可以看出,对于可通过且仅X和Z满足宽度和高度限制的路径,沿路径的点A 4304、B 4305、C4306、D 4307、E 4308和F 4309的坐标可以仅被存储或通过网络传输,以便完全重构合法路径,交通工具可以沿该合法路径行进。给定该路径可以被解析成这样的分段片段,仅用该路径的每分段线性区域一字节或两字节来完全描述路径是可能的。这可以有助于此类路径数据的(例如,通过自主运载工具)快速传输和处理,以及其他示例。
图44示出了根据一些实施例的可以如何通过数学方法聚合来自嵌入式设备的体积3D测量结果或简单2D测量结果,以便生成高质量众包地图作为使用LIDAR或其他昂贵装置进行精密测量的替代。在所提出的系统中,多个嵌入式设备4400、4401等可以配备有能够取得测量结果的各种传感器,所述测量结果可以被发送到中央服务器4410。在服务器上运行的软件执行对所有测量结果的聚合4402并且由非线性解算器4403对结果矩阵执行数值解算以产生高度准确的地图,所述地图可以随后被重新分配回到嵌入式设备。实际上,数据聚合还可以包括来自卫星4420、空中LIDAR勘测4421和地面LIDAR测量4422的高准确度勘测数据(在这些高保真数据集可用的情况下),以提高所得地图的准确度。在一些实现方式中,可以以具有诸如本文中所描述的格式的稀疏体素数据结构来生成地图和/或记录的测量结果、将地图和/或记录的测量结果转换为具有诸如本文中所描述的格式的稀疏体素数据结构、或使用具有诸如本文中所描述的格式的稀疏体素数据结构以其他方式表达地图和/或记录的测量结果,以及其他示例实现方式。
图45是根据一些实施例的示出如何可以加速在2D 2×2位图上的2D路径找寻的示图。操作的原理是,为使在相同网格单元的地图上的点之间存在连接性,在x或y或x和y中连续排列的单元的值必须全部被设置为一值。所以,可以实例化从那些单元中汲取的比特的逻辑与(AND)以测试在网格中的位图是否存在有效路径,并且可对通过N×N网格的每一个有效路径实例化不同的与门。在一些实例中,该方法可以引入组合复杂度,因为即使8×82D网格可以包含264-1个有效路径。因此,在一些改进实现方式中,网格可以被减小到2×2或4×4图块,其可以被分层地测试连接性。2×2位图4500包含标记为b0、b1、b2和b3的4个比特。该4个比特可以采用0000至1111的值,具有相应的标签4501至4517。这些比特图案中的每一个表示在标记为4521至4530的2×2网格的面之间的连接性的不同等级。例如,当2×2网格4500包含位图1010(7112)、1011(7113)、1110(7116)或1111(7117)时,存在表示在4500中的x0和y0之间的垂直连接性的4521或v0。2输入逻辑与或如表4518的第1行中所示的4500中的b0和b3在连接性图中生成v0,该连接性图可以在更高等级硬件或软件中使用以通过已经被细分成2×2子网格的全局网格来决定全局连通性。如果全局图在x轴或y轴上包含奇数数量的网格点,则顶层网格将需要填充到下个最高偶数数量的网格点(例如,使得将需要的额外1行零值被添加到在全局网格上的x轴和/或y轴)。图45进一步示出了示例性7×7网格4550,其示出如何通过添加附加的填充有零值的行4532和列4534来填充到8×8。与其他技术(例如,深度优先搜索、广度优先搜索或Dijkstra算法、或其他基于图形的方法)相比,为了加速路径查找,本示例可以将N×N图4550逐渐子采样到2×2图。例如在该示例中,通过对4550中的单元A、B、C和D的内容进行或运算来填充4540中的单元W,以此类推。进而,对4540中的2×2单元中的比特进行或运算以填充4542中的单元。就路径找寻而言,算法从网格4542的最小2×2表示开始,并且测试每一个比特。因为我们知道零值的比特意味着在4540中不存在相对应的2×2网格单元,所以仅与2×2网格4542中的一个比特相对应的4540中的4×4网格(由四个2×2网格组成)的该部分需要被测试连接性。该方法还可以用于在4520中搜索8×8网格,例如,如果4540中的单元W包含零值,则随后我们知道在4520中的ABCD中不存在路径等。该方法从所使用的图搜索算法中修剪分支,无论所使用的图搜索算法是A*、Dijkstra、DFS、BFS还是其变体。除此之外,具有2×2组织的硬件基础路径找寻器4518的使用可以进一步限制相关联的计算。实际上,4×4基础硬件元件可以使用具有与4540和4542相同布置的5个2×2硬件块来组成,以进一步限制需要执行的图搜索的量。此外,可以使用具有与4542、4540、4500等相同布置的21个2×2HW块(7118)来构造8×8基于硬件搜索引擎,以用于潜在地任何N×N拓扑结构。
图46是根据一些实施例的简化框图,其示出了如何可以使用所提出的体积数据结构来加速冲突检测。几何形状的3D N×N×N图可以被子采样为由最低细节级别(LoD)2×2×2体积4602、下一最高4×4×4体积4601、8×8×8体积4600、以此类推一直到N×N×N构成的金字塔。如果经由诸如GPS的定位方法,或经由从3D地图重新定位,在3D空间中已知无人机、交通工具或机器人4605的位置,则随后可以通过将无人机/机器人的x位置、y位置和z位置适当地缩放(将其除以2相关次数)来将该位置快速地用于测试几何形状存在或不存在于相关2×2×2子体积的象限中,并且向4602询问几何形状的存在(例如,检查相应的位图位是否是指示可能的冲突的1)。如果存在可能的冲突(例如,找到了“1”),则随后可以进一步在体积4601、4600等中执行检查以证实无人机/机器人是否可以移动。然而,如果在4602中的体素是自由的(例如,“0”),则随后机器人/无人机可以将相同体素解释为自由空间并且操纵方向控制以自由地移动通过地图的大部分。
虽然将本文中所描述并示出的系统和解决方案中的一些已经被描述为包含多个元件或与多个元件相关联,但是不是所有被清晰地示出或描述的元件都用于本公开的每一个替代的实现方式中。另外,可以将元件中的一个或多个定位在系统外部,而在其他实例中,可以将某些元件包括在其他所述的元件以及未在所示的实现方式中描述的其他元件中的一个或多个元件内,或者作为其他所述的元件以及未在所展示的实现方式中描述的其他元件中的一个或多个元件的一部分。进一步,可以将某些元件与其他组件以及用于除本文中所描述的那些目的之外的替代的目的或附加的目的的组件相组合。
进一步,应该理解到,上文所呈现的示例是仅为了说明某些原则和特征的目的而提供的非限制性示例,并且不一定限制或约束本文中所描述的概念的可能的实施例。例如,可以利用本文中所描述的特征和组件的各种组合(包括通过本文中所描述的组件的各种实现方式来实现的组合)来实现各种不同的实施例。应该从本说明书的内容中理解其他实现方式、特征和细节。
图47-图52是可根据本文中所公开的实施例来使用的示例性计算机架构的框图。实际上,本文所描述的系统的计算设备、处理器以及其他逻辑和电路可以包含功能的全部或一部分以及实现此类功能的支持软件和/或硬件电路。进一步,还可以将本领域已知的用于处理器和计算系统的其他计算机架构设计在这里示出的示例之外使用。一般来说,适用于本文中所公开的实施例的计算机架构可以包括但不限于图47-图52中示出的配置。
图47示出了通过链路耦合到对应的网关的对应的物联网(IoT)网络的示例域拓扑。物联网(IoT)是这样一种概念,其中大量的计算设备彼此互连,并且连接到互联网,以提供非常低级别的功能和数据采集。因此,如本文所使用的,IoT设备可以包括半自主设备,该设备执行与其他IoT设备以及更广泛的网络(诸如因特网)通信的功能(诸如感测或控制等等)。此类IoT设备可以配备有逻辑和存储器以实现和使用(诸如上文所介绍的)散列表。
通常,IoT设备在内存、大小或功能上受到限制,允许以与较小数量的较大设备类似的成本部署较大数量的IoT设备。然而,IoT设备可以是智能电话、膝上型计算机、平板或PC、或其他较大设备。进一步,IoT设备可以是虚拟设备,诸如在智能电话或其他计算设备上的应用。IoT设备可包括IoT网关,用于将IoT设备耦合到其他IoT设备和将IoT设备耦合到云应用,以进行数据存储、过程控制等。
IoT设备的网络可以包括商业和家庭自动化设备,例如供水系统、配电系统、管道控制系统、工厂控制系统、灯开关、恒温器、锁、相机、警报器、运动传感器等。IoT设备可以通过远程计算机、服务器或其他系统来访问,例如,以控制系统或访问数据。
互联网和类似网络的未来增长可能涉及极大量的IoT设备。因此,在本文讨论的技术的上下文中,对于这种未来网络化的许多创新将解决对所有这些层不受阻碍地增长、发现连接的资源并使其可访问、以及支持隐藏和划分连接的资源的能力的需求。可以使用任何数量的网络协议和通信标准,其中每一个协议和标准设计用于解决特定目标。此外,协议是支持人类可访问服务的结构的一部分,这些服务无论位置、时间或空间如何都进行操作。所述创新包括服务递送和相关联的基础设施,诸如硬件和软件、安全增强、以及基于在服务水平和服务递送协议中指定的服务质量(QoS)的服务的提供。如将被理解的,IoT设备和网络(诸如图47和图48中所介绍的那些)的使用在包括有线和无线技术的组合的异构连接网络中提出了许多新的挑战。
图47具体提供了域拓扑的简化图,该域拓扑可用于包括IoT设备4704的多个物联网(IoT)网络,其中IoT网络4756、IoT网络4758、IoT网络4760、IoT网络4762通过主干链路4702耦合到相应的网关4754。例如,多个IoT设备4704可以与网关4754通信,并且通过网关4754与彼此通信。为简化图,不是每一个IoT设备4704或通信链路(例如,链路4716、4722、4728或4732)都被标记。主干链路4702可以包括任意数量的有线技术或无线技术(包括光网络),并且可以是局域网(LAN)、广域网(WAN)或互联网的一部分。另外,这种通信链路促进IoT设备4704和网关4754两者之间的光信号路径,包括使用多路复用/多路分解(MUXing/deMUXing)组件,以促进各种设备的互连。
网络拓扑可以包括任意数量类型的IoT网络,例如使用蓝牙低能耗(BLE)链路4722与网络4756一起提供的网状网络。可能存在的其他类型的IoT网络包括无线局域网(WLAN)网络4758,用于通过IEEE 802.11
Figure BDA0002861092220000452
Figure BDA0002861092220000453
链路4728与IoT设备4704通信;蜂窝网络4760,用于通过LTE/LTE-A(4G)或5G蜂窝网络与IoT设备4704通信;以及低功率广域(LPWA)网络4762,例如,与LoRa联盟颁布的LoRaWan规范兼容的LPWA网络,或者与因特网工程任务组(IETF)颁布的规范兼容的低功率广域网(LPWAN)网络上的IPv6。此外,相应的IoT网络可以使用任何数量的通信链路与外部网络提供商(例如,第2层或第3层提供商)通信,通信链路诸如LTE蜂窝链路、LPWA链路,或者基于IEEE 802.15.4标准(诸如
Figure BDA0002861092220000451
)的链路。相应的IoT网络还可以使用各种网络和互联网应用协议(诸如受限应用协议(CoAP))进行操作。相应的IoT网络还可以与协调器设备集成,该协调器设备提供形成所链接的设备和网络的集群树的链路链。
这些IoT网络中的每一个都可以为新技术特征(诸如本文所描述的那些)提供机会。改进的技术和网络可以使设备和网络指数性增长,包括将IoT网络用作雾设备或系统。随着这些改进技术的使用的增长,可以开发IoT网络用于自我管理、功能演进和协作,而无需直接的人为干预。改进技术甚至可以使IoT网络能够在没有中央控制系统的情况下起作用。因此,本文所描述的改进技术可以用于远超当前实现方式的自动化和增强网络管理和操作功能。
在示例中,IoT设备4704之间的通信,诸如通过主干链路4702的通信,可以由用于认证、授权和计费(AAA)的分散式系统保护。在分散式AAA系统中,可以跨互连的异构网络基础设施实现分布式支付、贷款、审计、授权和认证系统。这允许系统和网络向自主操作移动。在这些类型的自主操作中,系统甚至可以签约人力资源并与其他机器网络协商伙伴关系。这可以允许实现共同的目标,并实现相对于概述的、计划的服务水平协议的平衡的服务交付,以及实现提供计量、测量、可跟踪性和可追踪性的解决方案。创建新的供应链结构和方法可以在没有人员参与的情况下创建大量服务、挖掘大量服务的价值并使大量服务崩溃。
通过将诸如声音、光、电子交通、面部和模式识别、气味、振动等传感技术集成到IoT设备之间的自治组织中,可以进一步增强这种IoT网络。传感系统的集成可以允许服务交付的相对于合同服务目标、基于服务编排和服务质量(QoS)的资源聚集和融合的系统且自主的通信和协调。基于网络的资源处理的各个示例中的一些包括以下各项。
例如,网状网络4756可以由执行内联数据到信息转换的系统来增强。例如,包括多链路网络的处理资源的自形成链可以以有效的方式分配原始数据到信息的转换,以及具有在资产和资源以及每一个资产和资源的相关管理之间进行区分的能力。此外,可以插入基础设施的适当组件和基于资源的信任和服务索引,以提高数据完整性、质量、保证并且提供数据置信度度量。
例如,WLAN网络4758可以使用执行标准转换的系统来提供多标准连接,从而使得IoT设备4704能够使用不同的协议进行通信。其他系统可以提供跨多标准基础设施的无缝互连,多标准基础设施包括可见的因特网资源和隐藏的因特网资源。
例如,蜂窝网络4760中的通信可以通过卸载数据、将通信扩展到更多远程设备或卸载数据并将通信扩展到更多远程设备的系统来增强。LPWA网络4762可以包括执行非网际协议(IP)到IP互连、寻址和路由的系统。此外,每一个IoT设备4704可以包括合适的收发机,该收发机用于与该设备进行广域通信。进一步,每一个IoT设备4704可以包括使用附加的协议和频率用于通信的其他收发机。关于图49和图50中描绘的IoT处理设备的通信环境和硬件进一步讨论了这一点。
最后,IoT设备集群可以被配备成与其他IoT设备以及云网络进行通信。这可以允许IoT设备在设备之间形成自组织(ad-hoc)网络,允许它们用作单个设备,单个设备可以被称为雾设备。以下关于图48进一步讨论了该配置。
图48示出了与作为云计算网络边缘处的雾设备操作的IoT设备(设备4802)的网状网络通信的云计算网络。IoT设备的网状网络可以被称为雾4820,在云4800的边缘处操作。为了简化该图,不是每一个IoT设备4802都被标记。
可以将雾4820认为是大规模地互连的网络,其中数个IoT设备4802例如通过无线电线路4822与彼此进行通信。作为示例,可以使用开放连接基金会(Open ConnectivityFoundationTM,OCF)发布的互连规范来促进该互连网络。该标准允许设备发现彼此并建立通信以用于互连。还可以使用其他互连协议,包括例如,优化链路状态路由(OLSR)协议、移动自组织网络较佳方案(B.A.T.M.A.N.)路由协议、或OMA轻量级M2M(LWM2M)协议等。
尽管在本示例中展示三种类型的IoT设备4802:网关4804、数据聚合器4826、以及传感器4828,但可以使用IoT设备4802和功能的任何组合。网关4804可以是提供云4800和雾4820之间通信的边缘设备,并且还可以针对从传感器4828获取的数据(诸如运动数据、流量数据、温度数据等)提供后端处理功能。数据聚合器4826可以从任何数量的传感器4828收集数据,并执行后端处理功能用于分析。结果数据、原始数据或两者可以通过网关4804被传递到云4800。传感器4828可以是完整的IoT设备4802,例如,既能够收集数据又能够处理数据。在一些情况下,传感器4828可以在功能上更有限,例如,收集数据并允许数据聚合器4826或网关4804处理数据。
来自任何IoT设备4802的通信可以沿着任何IoT设备4802之间的方便路径(例如,最方便的路径)被传递以到达网关4804。在这些网络中,互连的数目提供了大量冗余,这允许即使在损失数个IoT设备4802的情况下也维持通信。进一步,使用网状网络可以允许使用非常低功耗或定位在远离基础设施的IoT设备4802,因为连接到另一个IoT设备4802的距离可以远小于连接到网关4804的距离。
从这些IoT设备4802提供的雾4820可以被呈现给云4800中的设备(诸如服务器4806)作为位于云4800边缘处的单个设备,例如雾设备。在该示例中,来自雾设备的警报可以在不被标识为来自雾4820内的特定IoT设备4802的情况下被发送。以这种方式,雾4820可以被认为是分布式平台,该分布式平台提供计算和存储资源以执行处理或数据密集型任务,诸如数据分析、数据聚合和机器学习等。
在一些示例中,可以使用命令式编程风格来配置IoT设备4802,例如,每一个IoT设备4802具有特定功能和通信伙伴。然而,可以以声明式编程风格来配置形成雾设备的IoT设备4802,这允许IoT设备4802重新配置它们的操作和通信,诸如响应于条件、查询和设备失效来确定所需的资源。作为示例,来自位于服务器4806的用户与由IoT设备4802监视的设备子集的操作相关的查询可能导致雾4820设备选择回答查询所需的IoT设备4802(诸如特定传感器4828)。然后,来自这些传感器4828的数据在由雾4828设备发送到服务器4806以回答查询之前,可以由传感器4828、数据聚合器4826或网关4804的任何组合进行聚合和分析。在该示例中,雾4820中的IoT设备4802可以基于查询(诸如添加来自流量传感器或温度传感器的数据)来选择所使用的传感器4828。此外,如果IoT设备4802中的一些IoT设备不可操作,则雾4820设备中的其他IoT设备4802可以提供类似的数据(如果可用的话)。
在其他示例中,以上所描述的操作和功能可以由示例形式为电子处理系统的IoT设备机器来体现,根据示例实施例,在该电子处理系统中可以执行指令集或指令序列以使得该电子处理系统执行本文讨论的方法中的任何一种。所述机器可以是IoT设备或IoT网关,包括由个人计算机(PC)、平板PC、个人数字助理(PDA)、移动电话或智能手机、或能够(相继或以其他方式)执行指定要由该机器要采取的动作的指令的任何机器的各方面所体现的机器。此外,虽然在以上的示例中只描述和引用单个机器,但是此类机器也应该被视为包括单独地或联合地执行一组(或多组)指令以执行此处所讨论的方法中的任何一个或多个的机器的任何集合。此外,这些示例和与基于处理器的系统类似的示例应被视为包括由处理器(例如,计算机)控制或操作、以单独地或联合地执行指令来执行在此所讨论的方法论中的任何一种或多种的一个或多个机器的任何集合。在一些实现中,可以协作地操作一个或多个多个设备以实现功能和执行本文所描述的任务。在一些情况下,一个或多个主机设备可以供应数据、提供指令、聚合结果或其他方式促成由多个设备提供的联合操作和功能。当功能由单个设备实现时,可以被认为是设备本地的功能;在多个设备作为单个机器操作的实现方式中,该功能可以被认为是设备共同地本地的,并且该设备集合可以提供或消耗由其他远程机器(实现为单个设备或设备集合)提供的结果,以及其他示例实现方式。
例如,图49示出了与多个物联网(IoT)设备通信的云计算网络或云4900的图示。云4900可以表示互联网,或者可以是局域网(LAN),或广域网(WAN),诸如公司的专有网络。IoT设备可以包括任何数量的不同类型的设备,分组在各种组合中。例如,交通控制组4906可以包括沿城市中街道的IoT设备。这些IoT设备可包括交通信号灯、交通流监视器、相机、天气传感器等。交通控制组4906或其他子组可通过有线或无线链路4900(诸如LPWA链路、光学链路等)与云4908通信。进一步,有线或无线子网络4912可以允许IoT设备(诸如通过局域网、无线局域网等)与彼此通信。IoT设备可以使用另一设备(诸如网关4910或网关4928)来与远程位置(诸如云4900)通信;IoT设备还可以使用一个或多个服务器4930来促进与云4900或与网关4910的通信。例如,一个或多个服务器4930可以作为中间网络节点来操作以支持本地局域网之间的本地边缘云或雾实现方式。此外,所描绘的网关4928可以以云到网关到多个边缘设备(cloud-to-gateway-to-many edge devices)配置来操作(诸如各种IoT设备4914、4920、4924对于云4900中资源的分配和使用是受限的或动态的)。
IoT设备的其他示例组可以包括远程气象站4914、本地信息终端4916、警报系统4918、自动柜员机4920、警报面板4922、或移动交通工具(诸如应急交通工具4924或其他交通工具4926,等等)。这些IoT设备中的每一个可以与其他IoT设备、与服务器4904、与另一个IoT雾设备或系统(未示出,但在图48中描绘)、或其中的组合通信。该组IoT设备可以被部署在各种住宅设置、商业设置和工业设置中(包括在私有环境或公共环境两者中)。
如从图49中可以看出的,大量的IoT设备可以通过云4900进行通信。这可以允许不同的IoT设备自主地向其他设备请求或提供信息。例如,一组IoT设备(例如,交通控制组4906)可请求来自一组远程气象站4914的当前天气预报,该组远程气象站4914可在没有人为干预的情况下提供预报。此外,应急交通工具4924可被自动柜员机4920警告:盗窃正在进行。当应急交通工具4924朝自动柜员机4920前进时,它可以访问交通控制组4906以请求到该位置的通行许可,例如,通过将信号灯转变为红灯以在交叉路口阻挡交叉交通达足够的时间以使应急交通工具4924无阻碍地进入交叉路口。
IoT设备集群(诸如远程气象站4914或交通控制组4906)可以被配备成与其他IoT设备以及云4900通信。这可以允许IoT设备在设备之间形成自组织网络,允许它们用作单个设备,单个设备可以被称为雾设备或系统(例如,如上参考图48所述)。
图50是可以存在于IoT设备5050中用于实现本文描述的技术的组件的示例的框图。IoT设备5050可以包括在示例中示出的组件或在以上公开中引用的组件的任何组合。这些组件可被实现为适用于IoT设备5050中的IC、IC的部分、分立电子设备或其他模块、逻辑、硬件、软件、固件或其组合,或被实现为另外并入较大系统的机箱内的组件。另外,图50的框图旨在描绘IoT设备5050的组件的高级视图。然而,所示出的组件中的一些组件可以被省略,可以存在附加的组件,并且可能在其他实现方式中发生所示组件的不同布置。
IoT设备5050可以包括处理器5052,该处理器5052可以是微处理器、多核处理器、多线程处理器、超低压处理器、嵌入式处理器或其他已知的处理元件。处理器5052可以是片上系统(SoC)的一部分,其中处理器5052和其他组件形成为单个集成电路,或者单个封装(诸如来自英特尔(Intel)的爱迪生(EdisonTM)或伽利略(GalileoTM)SoC板)。作为示例,处理器5052可以包括基于英特尔架构核(
Figure BDA0002861092220000511
Architecture CoreTM)的处理器(诸如QuarkTM、AtomTM、i3、i5、i7或MCU级处理器,或者可以从加利福尼亚州的圣克拉拉市(SantaClara,California)的英特尔公司(
Figure BDA0002861092220000512
Corporation)获得的另一个这样的处理器。然而,可以使用任何数量的其他处理器,诸如来自加利福尼亚州森尼维尔市(Sunnyvale)的超微半导体有限公司(Advanced Micro Devices,Inc.,AMD)的处理器,来自加利福尼亚州森尼维尔市(Sunnyvale)的MIPS技术有限公司(MIPS Technologies,Inc.)的基于MlPS的设计的处理器,来自ARM控股有限公司(ARM Holdings,Ltd.)或其客户许可的或其被许可证人或采用者许可的基于ARM的设计的处理器。处理器可以包括诸如来自苹果有限公司(
Figure BDA0002861092220000513
Inc)的A5-A10处理器,来自高通科技有限公司(
Figure BDA0002861092220000514
Technologies,Inc)的SnapdragonTM处理器或来自德州仪器有限公司(Texas Instruments,Inc)的OMAPTM处理器的单元。
处理器5052可以通过互连5056(例如,总线)与系统存储器5054通信。可以将任何数量的存储器设备用于提供给定量的系统存储器。作为示例,存储器可以是根据联合电子设备工程委员会(Joint Electron Devices Engineering Council,JEDEC)设计(诸如DDR或移动DDR标准(例如,LPDDR、LPDDR2、LPDDR3或LPDDR4))的随机存取存储器(RAM)。在各种实现方式中,各个存储器设备可以是任何数量的不同封装类型,诸如单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(Q17P)。在一些示例中,这些设备可以被直接焊接到主板上以提供低配置解决方案,而在其他示例中,该设备被配置为一个或多个存储器模块,该一个或多个存储器模块通过给定连接器进而耦合到主板。可以使用任何数量的其他存储器实现方式,诸如其他类型的存储器模块,例如,不同种类的双列直插式存储器模块(DIMM),包括但不限于microDIMMs或MiniDIMMs。
为了提供诸如数据、应用程序、操作系统等信息的持久存储,存储5058还可以经由互连5056耦合到处理器5052。在示例中,存储5058可以经由固态硬盘驱动器(SSDD)实现。可用于存储5058的其他设备包括闪存卡(诸如SD卡、microSD卡、xD显卡等),以及USB闪存驱动器。在低功耗实现方式中,存储5058可以是与处理器5052相关联的管芯上存储器或管芯上寄存器。然而,在一些示例中,存储5058可以使用微型硬盘驱动器(HDD)实现。进一步,除了所描述的技术外,或替代所描述的技术,可以将任何数量的新技术用于存储5058,所述新技术诸如电阻变化存储器、相变存储器、全息存储器或化学存储器等。
组件可以通过互连5056进行通信。互连5056可以包括任何数量的技术,包括工业标准体系结构(ISA)、扩展ISA(EISA)、外围组件互连(PCI)、扩展的外围组件互连(PCIx)、快速PCI(PCIe)或任何数量的其他技术。互连5056可以是专用总线,例如,在基于SoC的系统中使用的专用总线。可以包括其他总线系统,诸如I2C接口、SPI接口、点对点接口和电源总线等。
互连5056可以将处理器5052耦合到网状收发机5062,用于与其他网状设备5064通信。网状收发机5062可以使用任何数量的频率和协议(诸如IEEE 802.15.4标准下的2.4千兆赫(GHz)传输,使用由蓝牙特别兴趣小组(
Figure BDA0002861092220000521
Special Interest Group)定义的蓝牙低功耗(BLE)标准,或者
Figure BDA0002861092220000522
标准等)。配置用于特定无线通信协议的任何数量的无线电可以用于到网状设备5064的连接。例如,可以根据电气和电子工程师协会(IEEE)802.11标准将WLAN单元用于实现Wi-FiTM通信。另外,(例如,根据蜂窝或其他无线广域协议)无线广域通信可以经由WWAN单元发生。
网状收发机5062可以使用多个标准或无线电进行通信以用于不同范围的通信。例如,IoT设备5050可以使用基于BLE的本地收发机或另一低功率无线电与近距离设备(例如,在大约10米内)通信以省电。更远的网状设备5064(例如,在大约50米内)可以通过ZigBee或其他中间功率无线电到达。两种通信技术可以在不同功率电平上发生在单个无线电上,或者可以发生在分离的收发机上,例如,使用BLE的本地收发机和使用ZigBee的分离的网状收发机。
可以包括无线网络收发机5066以经由局域或广域网络协议与云5000中的设备或服务通信。无线网络收发机5066可以是遵循IEEE 802.15.4或IEEE802.15.4g标准等的LPWA收发机。IoT设备5050可以使用由Semtech和LoRa联盟开发的LoRaWANTM(长距离广域网,LongRange Wide Area Network)在广泛区域上进行通信。本文所描述的技术不限于这些技术,而是可以与实现长距离、低带宽通信的任何数量的其他云收发机(诸如Sigfox以及其他技术)使用。进一步,可以使用在IEEE 802.15.4e规范中所描述的其他通信技术,诸如时隙信道跳跃(time-slotted channel hopping)。
除了针对网状收发机5062和无线网络收发机5066所提及的系统之外,可以使用任何数量的其他无线电通信和协议,如本文所述。例如,无线电收发机5062和5066可以包括LTE或使用扩频(SPA/SAS)通信以实现高速通信的其他蜂窝收发器。进一步,可以使用任何数量的其他协议(诸如
Figure BDA0002861092220000531
网络)用于中速通信和提供网络通信。
无线电收发机5062和5066可以包括与任何数量的3GPP(Third GenerationPartnership Project,第三代合作伙伴计划)规范兼容的无线电,尤其是长期演进(LongTerm Evolution,LTE)、高级长期演进(Long Term Evolution-Advanced,LTE-A)和高级长期演进专业版(Long Term Evolution-Advanced Pro,LTE-A Pro)。可以注意到,可以选择与任何数量的其他固定通信技术和标准、移动通信技术和标准或卫星通信技术和标准兼容的无线电。这些可以包括,例如,任何蜂窝广域无线电通信技术,蜂窝广域无线电通信技术可以包括,例如第五代(5G)通信系统、全球移动通信系统(GSM)无线通信技术、通用分组无线业务(GPRS)无线通信技术,或者GSM演进增强型数据速率(EDGE)无线通信技术、通用移动电信系统(UMTS)通信技术,除了上述标准之外,任何数量的卫星上行链路技术可用于无线网络收发机5066,包括例如符合国际电信联盟(ITU)或欧洲电信标准协会(ETSI)等发布的标准的无线电。本文所提供的示例因此被理解为可应用于既有的和尚未制订的各种其他通信技术。
可以包括网络接口控制器(NIC)5068以向云5000或其他设备(诸如网状设备5064)提供有线通信。有线通信可以提供以太网连接,或者可以基于其他类型的网络(诸如控制器局域网(CAN)、本地互连网(LIN)、设备网、控制网、数据高速公路+、PROFIBUS或PROFINET等)。可以包括附加的NIC 5068以允许连接到第二个网络,例如,一个NIC 5068通过以太网向云提供通信,并且第二个NIC 5068通过另一类型的网络向其他设备提供通信。
互连5056可以将处理器5052耦合到用于连接外部设备或子系统的外部接口5070。外部设备可包括传感器5072,诸如加速度计、水平传感器(level sensor)、流量传感器、光学光传感器(optical light sensors)、相机传感器、温度传感器、全球定位系统(GPS)传感器、压力传感器、气压传感器等。外部接口5070进一步可以用于将IoT设备5050连接到致动器5074,诸如电源开关、阀门致动器、可听声音发生器、视觉警告设备等。
在一些可选示例中,各种输入/输出(I/O)设备可以存在于IoT设备5050内或连接到IoT设备5050。例如,可以包括显示器或其他输出设备5084以显示信息,诸如传感器读数或致动器位置。可以包括诸如触摸屏或小键盘之类的输入设备5086以接受输入。输出设备5084可以包括任何数量的多种形式的音频或视觉显示,包括简单的视觉输出(诸如二进制状态指示器(例如,LED)和多字符视觉输出),或者更复杂的输出(诸如显示屏(例如,LCD屏幕)),其中字符、图形、多媒体对象等的输出由IoT设备5050的操作生成或产生。
电池5076可以给IoT设备5050供电,尽管在IoT设备5050被安装在固定位置的示例中,它可以具有耦合到电网的电源。电池5076可以是锂离子电池或金属-空气电池(诸如锌-空气电池、铝-空气电池、锂-空气电池等)。
在IoT设备5050中可以包括电池监视器/充电器5078,以跟踪电池5076的充电状态(SoCh)。电池监视器/充电器5078可以用于监视电池5076的其他参数(诸如电池5076的健康状态(SoH)和功能状态(SoF))以提供失效预测。电池监视器/充电器5078可以包括电池监视集成电路(诸如例如来自线性科技(Linear Technologies)的LTC4020或LTC2990,来自亚利桑那州凤凰城的ON半导体的ADT7488A,或来自德克萨斯州达拉斯的德州仪器的UCD90xxx系列的IC。电池监视器/充电器5078可以通过互连5076将针对电池5076的信息传送至处理器5052。电池监视器/充电器5078还可以包括模数(ADC)转换器,模数转换器允许处理器5052直接监视电池5076的电压或来自电池5076的电流。电池参数可用于确定IoT设备5050可以执行的动作,诸如传输频率、网状网络操作、感测频率等。
电源块5080或耦合到电网的其他电源可以与电池监视器/充电器5078耦合以对电池5076充电。在一些示例中,电源块5080可以被替换为无线电力接收器以(例如,通过在IoT设备5050中的环路天线)无线地获得电力。电池监视器/充电器5078可以包括无线电池充电电路(诸如来自加利福尼亚州米尔皮塔斯的线性技术(Linear Technologies)的LTC4020芯片)。所选择的特定充电电路取决于电池5076的大小,并且因此,取决于所需的电流。充电可以使用空中燃料联盟(Airfuel Alliance)颁布的空气燃料标准、无线充电联盟(WirelessPower Consortium)颁布的Qi无线充电标准或无线电力联盟(Alliance for WirelessPower)颁布的Rezence充电标准等来执行。
存储5058可以包括以软件、固件或硬件命令的形式的指令3582,以实现本文描述的技术。虽然这些指令5082被示为包括在存储器5054和存储5058中的代码块,但是可以理解的是,任何代码块都可以被硬连线电路代替,例如,内置到专用集成电路(ASIC)中。
在示例中,经由存储器5084、存储5058或处理器5052提供的指令5082可以被具体化为非瞬态的、机器可读的介质5060,介质5060包括用于指引处理器5052在IoT设备5050中执行电子操作的代码。处理器5052可以通过互连5056访问非瞬态的、机器可读的介质5060。例如,非瞬态的、机器可读的介质5060可以由图50的存储5058描述的设备体现,或者可以包括特定的存储单元(诸如光盘、闪存驱动器或任何数量的其他硬件设备)。非瞬态的、机器可读的介质5060可以包括指引处理器5052执行特定动作序列或流程的指令,例如,如关于上述操作和功能的(多个)流程图和(多个)框图所描述的。
图51是根据实施例的处理器的示例图示。处理器5100是可以与以上实现方式相联系地使用的一种硬件设备的示例。处理器5100可以是用于任何类型的处理器,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、多核处理器、单核处理器、或用于执行代码的其他设备。尽管图51展示了仅一个处理器5100,但处理元件可以可替代地包括多于一个图51中所展示的处理器5100。处理器5100可以是单线程的核,或者对于至少一个实施例,处理器5100可以是多线程的,因为所述处理器可以每一个核包括多个硬件线程上下文(或“逻辑处理器”)。
图51还示出根据实施例的耦合至处理器5100存储器5102。存储器5102可以是如本领域技术人员已知的或以其他方式可获得的多种多样的存储器(包括存储器层级的不同层)中的任何存储器。这样的存储器元件可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA)的逻辑框、可擦除可编程只读存储器(EPROM)、以及电可擦除可编程ROM(EEPROM)。
处理器5100可以执行与本文中详细描述的算法、过程、或操作相关联的任何类型的指令。一般来说,处理器5100能够将要素或物品(例如,数据)从一种状态或事物变换成另一状态或事物。
代码5104(其可能是要由处理器5100来执行的一个或多个指令)可以将存储在存储器5102中,或者可以将该代码3604存储在软件、硬件、固件、或其任何适合的组合中,或者存储在任何其他内部或外部的组件、设备、元件、或适合的且基于特定需求的对象中。在一个示例中,处理器5100可以遵循由代码5104指示的指令的程序序列。每一个指令进入前端逻辑5106并且由一个或多个解码器5108进行处理。所述解码器可以生成诸如预定格式的固定宽度微操作的微操作作为其输出,或者可以生成反映原始代码指令的其他指令、微指令或控制信号。前端逻辑5106还包括寄存器重命名逻辑5110和调度逻辑5112,其通常分配资源并且对与用于执行的指令相对应的操作进行排队。
处理器5100还可以包括具有一组执行单元5116a、5116b、5116n等的执行逻辑5114。一些实施例可以包括专用于特定功能或功能组的若干个执行单元。其他实施例可以仅包括一个执行单元或一个可执行特定功能的执行单元。执行逻辑5114执行由代码指令指定的操作。
在代码指令指定的操作执行完成之后,后端逻辑5118可引退代码5104的指令。在一个实施例中,处理器5100允许无序执行,但要求指令的有序引退。引退逻辑5120可采取各种已知的形式(例如,重排序缓冲器等等)。以此方式,至少在由解码器生成的输出、由寄存器重命名逻辑5100利用的硬件寄存器和表以及由执行逻辑5110修改的任何寄存器(未示出)方面,在代码5104的执行期间可以转换处理器5114。
尽管图51未示出,但处理元件可以包括具有处理器5100的芯片上的其他元件。例如,处理元件可以包括存储器控制逻辑连同处理器5100。处理元件可以包括I/O控制逻辑、和/或可以包括与存储器控制逻辑集成的I/O控制逻辑。处理元件还可以包括一个或多个高速缓存。在一些实施例中,还可将非易失性存储器(诸如闪速存储器或熔断器)包括在具有处理器5100的芯片上。
图52示出了根据实施例的被安排为点对点(PtP)配置的计算系统5200。具体地,图52示出了一种系统,在所述系统中,处理器、存储器以及输入/输出设备通过许多点对点接口互连。一般来说,可以按与计算系统5200相同或类似的方式来配置本文中所描述的计算系统中的一个或多个计算系统。
处理器5270和5280还可以各自包括用于与存储器元件5232和5234进行通信的集成存储器控制器逻辑(MC)5272和5282。在替代实施例中,存储器控制器逻辑5272和5282可以是与处理器5270和5280分开的分立逻辑。存储器元件5232和/或5234可以存储要由处理器5270和5280使用于获取本文中所概述的操作和功能中的各种数据。
处理器5270和5280可以是任何类型的处理器,诸如与其他附图相联系地讨论的那些处理器。处理器5270和5280可以分别使用点对点(PtP)接口电路5278和5288经由点对点(PtP)接口5250来交换数据。处理器5270和5280中可以各自使用点对点接口电路5276、5286、5294和5298经由单独的点对点接口5252和5254来与芯片集5290交换数据。芯片集5290还可以使用接口电路5292(其可以是PtP接口电路)经由高性能图形接口5239来与高性能图形电路5238交换数据。在替代实施例中,可以将图52中所示的任何或所有PtP链路实现为多站式总线而非有PtP链路。
芯片集5290可以经由接口电路5296与总线5220进行通信。总线5220可以具有通过其通信的一个或多个设备,诸如总线桥接器5218和I/O设备5216。经由总线5210,总线桥接器5218可以与其他设备进行通信,诸如用户接口5212(诸如键盘、鼠标、触摸屏、或其他输入设备)、通信设备5226(诸如调制解调器、网络接口设备、或可通过计算机网络5260进行通信的其他类型的通信设备)、音频I/O设备5214、和/或数据存储设备5228。数据存储设备5228可以存储代码5230,该代码可以由处理器5270和/或5280来执行。在替代实施例中,可以利用一个或多个PtP链路实现总线架构的任何部分。
图52中描绘的计算机系统是可用于实现在此讨论的各种实施例的计算系统的实施例的示意性图示。将理解,图52中描绘的各种组件可以在能够达到本文中所提供的示例和实现方式的功能和特征的片上系统(SoC)架构中或以任何其他合适的配置来组合。
在进一步示例中,机器可读介质还包括能够储存、编码或携带供该机器执行的指令并促使该机器执行本公开的方法中的任何一者或多者,或能够储存、编码或携带被这样的指令利用或与这样的指令集相关联的数据结构的任何有形的介质。因此,“机器可读介质”可以包括但不限于,固态存储器、以及光介质和磁介质。机器可读介质的具体示例包括非易失性存储器,包括但不限于,作为示例,半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存设备;磁盘(诸如内部硬盘和可移除磁盘);磁光盘;以及CD-ROM和DVD-ROM盘。可使用传输介质,经由网络接口设备,利用数个传输协议中的任何一种协议(例如,HTTP),进一步在通信网络上传送或接收由机器可读介质体现的指令。
应当理解,本说明书中描述的功能单元或能力可以被称为或标记为“组件”或“模块”,以便更加具体地强调其实现独立性。这些组件可以由任意数量的软件或硬件形式体现。例如,组件或模块可以实现为包括定制的超大规模集成(VLSI)电路或门阵列、或现成半导体(例如逻辑芯片、晶体管或其他分立组件)的硬件电路。组件或模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等可编程硬件设备中实现。组件或模块还可以在由各种类型的处理器执行的软件中实现。例如,可执行代码的所标识的组件或模块可以包括例如被组织为对象、过程或功能的计算机指令的一个或多个物理或逻辑块。然而,所标识的组件或模块的可执行文件不需要物理上定位在一起,而是可以包括存储在不同位置的不同指令,当这些可执行文件被逻辑地连接在一起时包括所述组件或模块并且实现所述组件或模块的规定的目的。
实际上,可执行代码的组件或模块可以是单个指令或许多指令、并且甚至可以在若干个不同的代码段上、在不同的程序之间、以及跨越几个存储器设备或处理系统分布。特别地,所描述的过程的一些方面(诸如代码重写和代码分析)可以在与部署代码的处理系统(例如,在嵌入传感器或机器人中的计算机中)所不同的处理系统(例如,在数据中心的计算机中)上发生。类似地,本文中操作数据可以在组件或模块内进行标识和说明,并且可以以任何合适的形式具体化并且被组织在任何合适类型的数据结构内。类似地,本文中操作数据可以在组件或模块内进行标识和说明,并且可以以任何合适的形式具体化并且被组织在任何合适类型的数据结构内。组件或模块可以是无源的或有源的,包括可操作以执行期望功能的代理。
当前描述的方法、系统和设备实施例的附加示例包括以下非限制性配置。以下非限制性示例中的每一个可以独立存在,或者可以以任何排列组合或与以下提供的或在整个本公开内容中提供的任何一个或多个其他示例组合。
尽管已经在某些实现方式和一般相关联方法的方面描述了本公开,这些实现方式和方法的更改和置换将对于本领域技术人员来说是显而易见的。例如,本文中描述的动作可以以与所描述的顺序不同的顺序来执行,并仍获得期望的结果。作为一个示例,在附图中描绘的过程不一定需要所示出的特定顺序或相继顺序来实现期望的结果。在某些实现方式中,多重任务处理和并行处理可能是有利的。另外,可以支持其他用户接口布局和功能。其他变体在下述权利要求书的范围内。
尽管本说明书包含许多特定实施细节,但是这些细节不应被解读为是对任何发明或者可能要求保护的内容的范围的限制,而应被解读为是对具体发明的具体实施例特有的特征的描述。在本说明书中在分开的实施例的情境下所描述的某些特征还可以在单个实施例中被组合地实施。相反,在单一实施例的情境下描述的各个特征也可以被单独的或以任何合适的子组合的方式实现在多个实施例中。而且,虽然特征在上文可以被描述为以某些组合起作用并且甚至如此最初被要求,但来自所要求保护的组合的一个或多个特征在某些情况下可以与组合离体,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然附图中以具体顺序描绘了操作,但这不应被理解成要求这种操作以所示出的具体顺序或以有序顺序执行,或者所有展示的操作可以被执行,以实现令人希望的结果。在某些情况下,多任务处理和并行处理可能是有利的。而且,上述实施例中的不同系统组件的分离不应被理解成在所有实施例中都要求这种分离,并且应理解的是,所描述的程序组件和系统通常可以一起整合在单个软件产品中或封装进多个软件产品中。
以下示例与根据本说明书的实施例有关。示例1是一种方法,包括:从存储器访问对象的合成三维(3D)图形模型,其中所述3D图形模型具有照片般真实的分辨率;从所述3D图形模型的视图生成多个不同的训练样本,其中生成多个训练样本以向所述多个训练样本添加缺陷以模拟由真实世界传感器设备生成的真实世界样本的特性;以及生成包括所述多个训练样本的训练集,其中训练数据是为了训练人工神经网络。
示例2包括示例1的主题,其中,所述等多个训练样本包括数字图像,并且所述传感器设备包括相机传感器。
示例3包括示例1-2中任一项的主题,其中,所述多个训练样本包括所述对象的点云表示。
示例4包括示例3的主题,其中,所述传感器包括LIDAR传感器。
示例5包括示例1-4中任一项的主题,进一步包括:访问数据以指示所述传感器设备的参数;以及基于所述参数确定要添加到所述多个训练样本中的缺陷。
示例6包括示例5的主题,其中,所述数据包括所述传感器设备的模型。
示例7包括示例1-6中任一项的主题,进一步包括:访问数据以指示由所述3D图形模型建模的所述对象的一个或多个表面的特性;以及基于所述特性确定要添加到所述多个训练样本中的缺陷。
示例8包括示例7的主题,其中,所述3D图形模型包括所述数据。
示例9包括示例1-8中任一项的主题,其中,所述缺陷包括噪声或炫光中的一个或多个。
示例10包括示例1-9中任一项的主题,其中,生成所述多个不同的训练样本包括:将不同的照明设置应用于所述3D图形模型,以模拟环境内的照明;确定在应用所述不同的照明设置中的特定一个期间生成的所述多个训练样本的子集的所述缺陷,其中所述多个训练样本的所述子集的所述缺陷基于特定的照明设置。
示例11包括示例1-10中任一项的主题,其中,生成所述多个不同的训练样本包括:将所述3D图形模型放置在不同的图形环境中,其中所述图形环境对各自的真实世界环境进行建模;当所述3D图形模型被放置在所述不同的图形环境中时,生成所述多个训练样本的子集。
示例12是一种系统,包括用于执行如权利要求1-11中任一项所述的方法的装置。
示例13包括示例12的主题,其中,所述系统包括一种装置,所述装置包括用于执行权利要求1-11中任一项所述的方法的至少一部分的硬件电路。
示例14是一种计算机可读存储介质,用于存储处理器可执行的指令,以执行如权利要求1-11中任一项所述的方法。
示例15是一种方法,包括:在暹罗神经网络处接收主体输入和参考输入,其中所述暹罗神经网络包括第一网络部分和第二网络部分,所述第一网络部分包括第一多个层并且所述第二网络部分包括第二多个层,所述第一网络部分的权重与所述第二网络部分的权重相同,所述主体输入被提供作为对所述第一网络部分的输入,所述参考输入被提供作为对所述第二网络部分的输入;以及基于所述主体输入和所述参考输入生成所述暹罗神经网络的输出,其中所述暹罗神经网络的所述输出用于指示所述参考输入和所述主体输入之间的相似性。
示例16包括示例15的主题,其中,生成所述输出包括:确定所述参考输入和所述主体输入之间的差异量;以及确定所述差异量是否满足阈值,其中所述输出标识所述差异量是否满足阈值。
示例17包括示例16的主题,其中,确定所述参考输入和所述主体输入之间的所述差异量包括:接收由所述第一网络部分输出的第一特征向量和由所述第二网络部分输出的第二特征向量;以及基于所述第一特征向量和所述第二特征向量确定差异向量。
示例18包括示例15-17中任一项的主题,其中,生成所述输出包括一次性分类。
示例19包括示例15-18中任一项的主题,进一步包括使用一个或多个合成训练样本训练所述暹罗神经网络。
示例20包括示例19的主题,其中,根据权利要求1-11中任一项所述的方法生成所述一个或多个合成训练样本。
示例21包括示例15-20中任一项的主题,其中,所述参考输入包括合成生成的样本。
示例22包括示例21的主题,其中,根据权利要求1-11中任一项所述的方法生成所述合成生成的样本。
示例23包括示例15-22中任一项的主题,其中,所述主体输入包括第一数字图像,并且所述参考输入包括第二数字图像。
示例24包括示例15-22中任一项的主题,其中,所述主体输入包括第一点云表示,并且所述参考输入包括第二点云表示。
示例25是一种系统,包括用于执行如权利要求15-24中任一项所述的方法的装置。
示例26包括示例25的主题,其中,所述系统包括一种装置,所述装置包括用于执行权利要求15-24中任一项所述的方法的至少一部分的硬件电路。
示例27包括示例25的主题,其中,所述系统包括机器人、无人机或自主交通工具中的一个。
示例28是一种存储指令的计算机可读存储介质,所述指令能由处理器执行以执行如权利要求15-24中任一项所述的方法。
示例29是一种方法,包括:向暹罗神经网络提供第一输入数据,其中所述第一输入数据包括来自第一姿势的3D空间的第一表示;向所述暹罗神经网络提供第二输入数据,其中所述第二输入数据包括来自第二姿势的3D空间的第二表示,所述暹罗神经网络包括第一网络部分和第二网络部分,所述第一网络部分包括第一多个层并且所述第二网络部分包括第二多个层,所述第一网络部分的权重与所述第二网络部分的权重相同,所述第一输入数据被提供作为对所述第一网络部分的输入,所述第二输入数据被提供作为对所述第二网络部分的输入;以及生成所述暹罗神经网络的输出,其中所述输出包括所述第一姿势和所述第二姿势之间的相对姿势。
示例30包括示例29的主题,其中,所述3D空间的所述第一表示包括第一3D点云,并且所述3D空间的所述第二表示包括第二3D点云。
示例31包括示例29-30中任一项的主题,其中,所述3D空间的所述第一表示包括第一点云,并且所述3D空间的所述第二表示包括第二点云。
示例32包括示例31的主题,其中,所述第一点云和所述第二点云各自包括相应的体素化点云表示。
示例33包括示例29-32中任一项的主题,进一步包括基于所述相对姿势,从至少所述第一输入数据和所述第二输入数据生成所述3D空间的3D地图构建。
示例34包括示例29-32中任一项的主题,进一步包括基于所述相对姿势确定所述第一姿势的观察者在所述3D空间内的位置。
示例35包括示例34的主题,其中,所述观察者包括自主机器。
示例36包括示例35的主题,其中,所述系统包括无人机、机器人或自主交通工具中的一个。
示例37是一种系统,包括用于执行如权利要求29-36中任一项所述的方法的装置。
示例38包括示例37的主题,其中,所述系统包括一种装置,所述装置包括用于执行权利要求29-36中任一项所述的方法的至少一部分的硬件电路。
示例39是一种存储指令的计算机可读存储介质,所述指令能由处理器执行以执行如权利要求29-36中任一项所述的方法。
示例40是一种方法,包括:提供所述第一传感器数据作为机器学习模型的第一部分的输入;提供第二传感器数据作为所述机器学习模型的第二部分的输入,其中所述机器学习模型包括连接器和全连接层集,所述第一传感器数据是由设备生成的第一类型的数据,并且所述第二传感器数据是由所述设备生成的不同的第二类型的数据,其中所述连接器将所述机器学习模型的所述第一部分的输出取作第一输入,并且将所述机器学习模型的所述第二部分的输出取作第二输入,并且所述连接器的输出被提供给所述全连接层集;以及从所述第一数据和所述第二数据生成包括所述设备在环境内的姿势的机器学习模型的输出。
示例41包括示例40的主题,其中,所述第一传感器数据包括图像数据,并且所述第二传感器数据标识所述设备的移动。
示例42包括示例41的主题,其中,所述图像数据包括红绿蓝(RGB)数据。
示例43包括示例41的主题,其中,所述图像数据包括惯性测量单元(IMU)数据。
示例44包括示例41的主题,其中,所述第二传感器数据包括惯性测量单元(IMU)数据。
示例45包括示例41的主题,其中,所述第二传感器数据包括全球定位数据。
示例46包括示例40-45中任一项的主题,其中,所述机器学习模型的所述第一部分针对所述第一类型的传感器数据进行调整,并且所述机器学习模型的所述第二部分针对所述第二类型的传感器数据进行调整。
示例47包括示例40-46中任一项的主题,进一步包括提供第三类型的第三传感器数据作为所述机器学习模型的第三部分的输入,并且基于所述第三数据进一步生成所述输出。
示例47包括示例40-46中任一项的主题,其中,所述姿势的输出包括旋转分量和平移分量。
示例49包括示例48的主题,其中,所述全连接层集中的一个全连接层包括用于确定所述旋转分量的全连接层,并且所述全连接层集中的另一个全连接层包括用于确定所述平移分量的全连接层。
示例50包括示例40-49中任一项的主题,其中,所述机器学习模型的所述第一部分和所述第二部分中的一者或二者包括相应的卷积层。
示例51包括示例40-50中任一项的主题,其中,所述机器学习模型的所述第一部分和所述第二部分中的一者或二者包括一个或多个相应的长短期存储器(LSTM)块。
示例52包括示例40-51中任一项的主题,其中,所述设备包括自主机器,并且基于所述姿势在所述环境内导航所述自主机器。
示例53包括示例52的主题,其中,所述系统包括无人机、机器人或自主交通工具中的一个。
示例54是一种系统,包括用于执行如权利要求40-52中任一项所述的方法的装置。
示例55包括示例54的主题,其中,所述系统包括一种装置,所述装置包括用于执行权利要求40-52中任一项所述的方法的至少一部分的硬件电路。
示例56是一种存储指令的计算机可读存储介质,所述指令能由处理器执行以执行如权利要求40-52中任一项所述的方法。
示例57是一种方法,包括:请求随机生成神经网络集;使用所述神经网络集中的每一个来执行机器学习任务,其中所述机器学习任务是使用特定的处理硬件来执行的;为所述神经网络集中的每一个神经网络监测执行所述机器学习任务的属性,其中所述属性包括所述机器学习任务的结果的准确度;以及当使用所述特定的处理硬件执行所述机器学习任务时,基于性能最佳的神经网络的所述属性来标识所述神经网络集中性能最佳的神经网络。
示例58包括示例57的主题,进一步包括提供所述性能最佳的神经网络以供机器在执行机器学习应用时使用。
示例59包括示例57-58中任一项的主题,进一步包括:确定所述性能最佳的神经网络的性能;以及根据所述特性请求生成第二神经网络集,其中所述第二神经网络集包括多个不同的神经网络,每一个神经网络包括一个或多个特性;使用所述第二神经网络集中的每一个来执行所述机器学习任务,其中所述机器学习任务是使用所述特定的处理硬件来执行的;为所述第二神经网络集中每一个神经网络监测执行所述机器学习任务的属性;以及基于所述属性标识所述第二神经网络集中性能最佳的神经网络。
示例60包括示例57-59中任一项的主题,进一步包括基于参数接收准则,其中所述性能最佳的神经网络是基于所述准则的。
示例60包括示例57-60中任一项的主题,其中,所述属性包括所述特定的处理硬件的属性。
示例62包括示例61的主题,其中,所述特定的处理硬件的属性包括由所述特定的处理硬件在执行所述机器学习任务期间消耗的功率、所述特定的处理硬件在执行所述机器学习任务期间的温度,以及用于将所述神经网络存储在所述特定的处理硬件上的存储器中的一个或多个。
示例63包括示例57-62中任一项的主题,其中,所述属性包括使用所述神经网络集中的相对应的一个来完成所述机器学习任务的时间。
示例64是一种系统,包括用于执行如权利要求57-63中任一项所述的方法的装置。
示例65包括示例64的主题,其中,所述系统包括一种装置,所述装置包括用于执行权利要求57-63中任一项所述的方法的至少一部分的硬件电路。
示例66是一种存储指令的计算机可读存储介质,所述指令能由处理器执行以执行如权利要求57-63中任一项所述的方法。
示例67是一种方法,包括:标识包括多个卷积核的神经网络,其中所述卷积核中的每一个包括相应的权重集;根据一个或多个参数修剪所述多个卷积核的子集,以将所述多个卷积核缩减为特定的卷积核集;修剪所述特定的卷积核集中的权重的子集以形成所述神经网络的修剪版本,其中所述权重的所述子集的修剪将所述权重的所述子集中的一个或多个非零权重指派为零,其中基于所述权重的原始值选择所述权重的所述子集。
示例68包括示例67的主题,其中,将基于低于阈值的所述权重的所述子集的值修剪所述权重的所述子集。
示例69包括示例67-68中任一项的主题,进一步包括使用所述神经网络的修剪版本来执行机器学习任务的一次或多次迭代,以恢复由于所述卷积核和权重的修剪而损失的至少一部分准确度。
示例70包括示例67-69中任一项的主题,进一步包括量化所述神经网络的所述修剪版本中未修剪的权重的值,以生成所述神经网络的紧凑版本。
示例71包括示例70的主题,其中,所述量化包括对数底量化。
示例72包括示例71的主题,其中,所述权重从浮点值量化为以2为底的值。
示例72包括示例67-72中任一项的主题,进一步包括提供所述神经网络的所述修剪版本以使用适于稀疏矩阵算法的硬件执行所述机器学习任务。
示例74是一种系统,包括用于执行如权利要求67-73中任一项所述的方法的装置。
示例75包括示例64的主题,其中,所述系统包括一种装置,所述装置包括用于执行权利要求67-73中任一项所述的方法的至少一部分的硬件电路。
示例76是一种存储指令的计算机可读存储介质,所述指令能由处理器执行以执行如权利要求67-73中任一项所述的方法。
因此,己经描述了主题的具体实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求书中所列举的动作可以用不同顺序来执行,并且仍然获得期望结果。此外,在附图中描绘的过程不一定需要所示出的特定顺序或相继顺序来实现期望的结果。

Claims (76)

1.一种方法,包括:
从存储器访问对象的合成三维(3D)图形模型,其中所述3D图形模型具有照片般真实的分辨率;
从所述3D图形模型的视图生成多个不同的训练样本,其中生成多个训练样本以向所述多个训练样本添加缺陷以模拟由真实世界的传感器设备生成的真实世界样本的特性;以及
生成包括所述多个训练样本的训练集,其中训练数据是为了训练人工神经网络。
2.如权利要求1所述的方法,其特征在于,所述等多个训练样本包括数字图像,并且所述传感器设备包括相机传感器。
3.如权利要求1-2中任一项所述的方法,其特征在于,所述多个训练样本包括所述对象的点云表示。
4.如权利要求3所述的方法,其特征在于,所述传感器包括LIDAR传感器。
5.如权利要求1-4中任一项所述的方法,进一步包括:
访问数据以指示所述传感器设备的参数;以及
基于所述参数确定要添加到所述多个训练样本中的缺陷。
6.如权利要求5所述的方法,其特征在于,所述数据包括所述传感器设备的模型。
7.如权利要求1-6中任一项所述的方法,进一步包括:
访问数据以指示由所述3D图形模型建模的所述对象的一个或多个表面的特性;以及
基于所述特性确定要添加到所述多个训练样本中的缺陷。
8.如权利要求7所述的方法,其特征在于,所述3D图形模型包括所述数据。
9.如权利要求1-8中任一项所述的方法,其特征在于,所述缺陷包括噪声或炫光中的一个或多个。
10.如权利要求1-9中任一项所述的方法,其特征在于,生成所述多个不同的训练样本包括:
将不同的照明设置应用于所述3D图形模型,以模拟环境内的照明;
确定在应用所述不同的照明设置中的特定一个期间生成的所述多个训练样本的子集的所述缺陷,其中所述多个训练样本的所述子集的所述缺陷基于特定的照明设置。
11.如权利要求1-10中任一项所述的方法,其特征在于,生成所述多个不同的训练样本包括:
将所述3D图形模型放置在不同的图形环境中,其中所述图形环境对各自的真实世界环境进行建模;
当所述3D图形模型被放置在所述不同的图形环境中时,生成所述多个训练样本的子集。
12.一种系统,包括用于执行如权利要求1-11中任一项所述的方法的装置。
13.如权利要求12所述的系统,其特征在于,所述系统包括一种装置,所述装置包括用于执行权利要求1-11中任一项所述的方法的至少一部分的硬件电路。
14.一种存储指令的计算机可读存储介质,所述指令能由处理器执行以执行如权利要求1-11中任一项所述的方法。
15.一种方法,包括:
在暹罗神经网络处接收主体输入和参考输入,其中所述暹罗神经网络包括第一网络部分和第二网络部分,所述第一网络部分包括第一多个层并且所述第二网络部分包括第二多个层,所述第一网络部分的权重与所述第二网络部分的权重相同,所述主体输入被提供作为对所述第一网络部分的输入,所述参考输入被提供作为对所述第二网络部分的输入;以及
基于所述主体输入和所述参考输入生成所述暹罗神经网络的输出,其中所述暹罗神经网络的所述输出用于指示所述参考输入和所述主体输入之间的相似性。
16.如权利要求15所述的方法,其特征在于,生成所述输出包括:
确定所述参考输入和所述主体输入之间的差异量;以及
确定所述差异量是否满足阈值,其中所述输出标识所述差异量是否满足所述阈值。
17.如权利要求16所述的方法,其特征在于,确定所述参考输入和所述主体输入之间的所述差异量包括:
接收由所述第一网络部分输出的第一特征向量和由所述第二网络部分输出的第二特征向量;以及
基于所述第一特征向量和所述第二特征向量确定差异向量。
18.如权利要求15-17中任一项所述的方法,其特征在于,生成所述输出包括一次性分类。
19.如权利要求15-18中任一项所述的方法,进一步包括使用一个或多个合成训练样本训练所述暹罗神经网络。
20.如权利要求19所述的方法,其特征在于,所述一个或多个合成训练样本是根据权利要求1-11中任一项所述的方法生成的。
21.如权利要求15-20中任一项所述的方法,其特征在于,所述参考输入包括合成生成的样本。
22.如权利要求21所述的方法,其特征在于,所述合成生成的样本是根据权利要求1-11中任一项所述的方法生成的。
23.如权利要求15-22中任一项所述的方法,其特征在于,所述主体输入包括第一数字图像,并且所述参考输入包括第二数字图像。
24.如权利要求15-22中任一项所述的方法,其特征在于,所述主体输入包括第一点云表示,并且所述参考输入包括第二点云表示。
25.一种系统,包括用于执行如权利要求15-24中任一项所述的方法的装置。
26.如权利要求25所述的系统,其特征在于,所述系统包括一种装置,所述装置包括用于执行权利要求15-24中任一项所述的方法的至少一部分的硬件电路。
27.如权利要求25所述的系统,其特征在于,所述系统包括机器人、无人机或自主交通工具中的一个。
28.一种存储指令的计算机可读存储介质,所述指令能由处理器执行以执行如权利要求15-24中任一项所述的方法。
29.一种方法,包括:
向暹罗神经网络提供第一输入数据,其中所述第一输入数据包括来自第一姿势的3D空间的第一表示;
向所述暹罗神经网络提供第二输入数据,其中所述第二输入数据包括来自第二姿势的3D空间的第二表示,所述暹罗神经网络包括第一网络部分和第二网络部分,所述第一网络部分包括第一多个层并且所述第二网络部分包括第二多个层,所述第一网络部分的权重与所述第二网络部分的权重相同,所述第一输入数据被提供作为对所述第一网络部分的输入,所述第二输入数据被提供作为对所述第二网络部分的输入;以及
生成所述暹罗神经网络的输出,其中所述输出包括所述第一姿势和所述第二姿势之间的相对姿势。
30.如权利要求29所述的方法,其特征在于,所述3D空间的所述第一表示包括第一3D点云,并且所述3D空间的所述第二表示包括第二3D点云。
31.如权利要求29-30中任一项所述的方法,其特征在于,所述3D空间的所述第一表示包括第一3D点云,并且所述3D空间的所述第二表示包括第二3D点云。
32.如权利要求31所述的方法,其特征在于,所述第一点云和所述第二点云各自包括相应的体素化点云表示。
33.如权利要求29-32中任一项所述的方法,进一步包括:
基于所述相对姿势,从至少所述第一输入数据和所述第二输入数据生成所述3D空间的3D地图构建。
34.如权利要求29-32中任一项所述的方法,进一步包括:
基于所述相对姿势确定所述第一姿势的观察者在所述3D空间内的位置。
35.如权利要求34所述的方法,其特征在于,所述观察者包括自主机器。
36.如权利要求35所述的方法,其特征在于,所述自主机器包括机器人、无人机或自主交通工具中的一个。
37.一种系统,包括用于执行如权利要求29-36中任一项所述的方法的装置。
38.如权利要求37所述的系统,其特征在于,所述系统包括一种装置,所述装置包括用于执行权利要求29-36中任一项所述的方法的至少一部分的硬件电路。
39.一种存储指令的计算机可读存储介质,所述指令能由处理器执行以执行如权利要求29-36中任一项所述的方法。
40.一种方法,包括:
提供第一传感器数据作为机器学习模型的第一部分的输入;
提供第二传感器数据作为所述机器学习模型的第二部分的输入,其中所述机器学习模型包括连接器和全连接层集,所述第一传感器数据是由设备生成的第一类型的数据,并且所述第二传感器数据是由所述设备生成的不同的第二类型的数据,其中所述连接器将所述机器学习模型的所述第一部分的输出取作第一输入,并且将所述机器学习模型的所述第二部分的输出取作第二输入,并且所述连接器的输出被提供给所述全连接层集;以及
从所述第一数据和所述第二数据生成包括所述设备在环境内的姿势的机器学习模型的输出。
41.如权利要求40所述的方法,其特征在于,所述第一传感器数据包括图像数据,并且所述第二传感器数据标识所述设备的移动。
42.如权利要求41所述的方法,其特征在于,所述图像数据包括红绿蓝(RGB)数据。
43.如权利要求41所述的方法,其特征在于,所述图像数据包括3D点云数据。
44.如权利要求41所述的方法,其特征在于,所述第二传感器数据包括惯性测量单元(IMU)数据。
45.如权利要求41所述的方法,其特征在于,所述第二传感器数据包括全球定位数据。
46.如权利要求40-45中任一项所述的方法,其特征在于,所述机器学习模型的所述第一部分针对所述第一类型的传感器数据进行调整,并且所述机器学习模型的所述第二部分针对所述第二类型的传感器数据进行调整。
47.如权利要求40-46中任一项所述的方法,进一步包括提供第三类型的第三传感器数据作为所述机器学习模型的第三部分的输入,并且基于所述第三数据进一步生成所述输出。
48.如权利要求40-47中任一项所述的方法,其特征在于,所述姿势的输出包括旋转分量和平移分量。
49.如权利要求48所述的方法,其特征在于,一个全连接层集包括用于确定所述旋转分量的全连接层,并且另一个全连接层集包括用于确定所述平移分量的全连接层。
50.如权利要求40-49中任一项所述的方法,其特征在于,所述机器学习模型的所述第一部分和所述第二部分中的一者或二者包括相应的卷积层。
51.如权利要求40-50中任一项所述的方法,其特征在于,所述机器学习模型的所述第一部分和所述第二部分中的一者或二者包括一个或多个相应的长短期存储器(LSTM)块。
52.如权利要求40-51中任一项所述的方法,其特征在于,所述设备包括自主机器,并且所述自主机器基于所述姿势在所述环境内导航。
53.如权利要求52所述的方法,其特征在于,所述自主机器包括机器人、无人机或自主交通工具中的一个。
54.一种系统,包括用于执行如权利要求40-52中任一项所述的方法的装置。
55.如权利要求54所述的系统,其特征在于,所述系统包括一种装置,所述装置包括用于执行权利要求40-52中任一项所述的方法的至少一部分的硬件电路。
56.一种存储指令的计算机可读存储介质,所述指令能由处理器执行以执行如权利要求40-52中任一项所述的方法。
57.一种方法,包括:
请求随机生成神经网络集;
使用所述神经网络集中的每一个神经网络来执行机器学习任务,其中所述机器学习任务是使用特定的处理硬件来执行的;
为所述神经网络集中的每一个神经网络监测执行所述机器学习任务的属性,其中所述属性包括所述机器学习任务的结果的准确度;以及
当使用所述特定的处理硬件执行所述机器学习任务时,基于性能最佳的神经网络的所述属性来标识所述神经网络集中性能最佳的神经网络。
58.如权利要求57所述的方法,进一步包括:
提供所述性能最佳的神经网络以供机器在执行机器学习应用时使用。
59.如权利要求57-58中任一项所述的方法,进一步包括:
确定所述性能最佳的神经网络的特性;以及
根据所述特性请求生成第二神经网络集,其中所述第二神经网络集包括多个不同的神经网络,所述多个不同的神经网络中的每一个神经网络包括一个或多个特性;
使用所述第二神经网络集中的每一个神经网络来执行所述机器学习任务,其中所述机器学习任务是使用所述特定的处理硬件来执行的;
所述第二神经网络集中每一个神经网络监测执行所述机器学习任务的属性;以及
基于所述属性标识所述第二神经网络集中性能最佳的神经网络。
60.如权利要求57-59中任一项所述的方法,进一步包括基于参数接收准则,其中所述性能最佳的神经网络是基于所述准则的。
61.如权利要求57-60中任一项所述的方法,其特征在于,所述属性包括所述特定的处理硬件的属性。
62.如权利要求61所述的方法,其特征在于,所述特定的处理硬件的属性包括由所述特定的处理硬件在执行所述机器学习任务期间消耗的功率、所述特定的处理硬件在执行所述机器学习任务期间的温度,以及用于将所述神经网络存储在所述特定的处理硬件上的存储器中的一个或多个。
63.如权利要求57-62中任一项所述的方法,其特征在于,所述属性包括使用所述神经网络集中的相对应的一个神经网络来完成所述机器学习任务的时间。
64.一种系统,包括用于执行如权利要求57-63中任一项所述的方法的装置。
65.如权利要求64所述的系统,其特征在于,所述系统包括一种装置,所述装置包括用于执行权利要求57-63中任一项所述的方法的至少一部分的硬件电路。
66.一种存储指令的计算机可读存储介质,所述指令能由处理器执行以执行如权利要求57-63中任一项所述的方法。
67.一种方法,包括:
标识包括多个卷积核的神经网络,其中所述卷积核中的每一个包括相应的权重集;
根据一个或多个参数修剪所述多个卷积核的子集,以将所述多个卷积核缩减为特定的卷积核集;
修剪所述特定的卷积核集中的权重的子集以形成所述神经网络的修剪版本,其中修剪所述权重的子集将所述权重的子集中的一个或多个非零权重指派为零,其中所述权重的子集基于所述权重的原始值来选择。
68.如权利要求67所述的方法,其特征在于,所述权重的子集将基于所述权重的子集中的低于阈值的值来修剪。
69.如权利要求67-68中任一项所述的方法,进一步包括使用所述神经网络的修剪版本来执行机器学习任务的一次或多次迭代,以恢复由于所述卷积核和权重的修剪而损失的至少一部分准确度。
70.如权利要求67-69中任一项所述的方法,进一步包括量化所述神经网络的所述修剪版本中未修剪的权重的值,以生成所述神经网络的紧凑版本。
71.如权利要求70所述的方法,其特征在于,所述量化包括对数底量化。
72.如权利要求71所述的方法,其特征在于,所述权重从浮点值量化为以2为底的值。
73.如权利要求67-72中任一项所述的方法,进一步包括提供所述神经网络的所述修剪版本以使用适于稀疏矩阵算法的硬件执行所述机器学习任务。
74.一种系统,包括用于执行如权利要求67-73中任一项所述的方法的装置。
75.如权利要求64所述的系统,其特征在于,所述系统包括一种装置,所述装置包括用于执行权利要求67-73中任一项所述的方法的至少一部分的硬件电路。
76.一种存储指令的计算机可读存储介质,所述指令能由处理器执行以执行如权利要求67-73中任一项所述的方法。
CN201980043331.4A 2018-05-23 2019-05-21 深度学习系统 Pending CN112334918A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862675601P 2018-05-23 2018-05-23
US62/675,601 2018-05-23
PCT/US2019/033373 WO2019226686A2 (en) 2018-05-23 2019-05-21 Deep learning system

Publications (1)

Publication Number Publication Date
CN112334918A true CN112334918A (zh) 2021-02-05

Family

ID=68614653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980043331.4A Pending CN112334918A (zh) 2018-05-23 2019-05-21 深度学习系统

Country Status (7)

Country Link
US (3) US20190362235A1 (zh)
EP (1) EP3797386A4 (zh)
JP (2) JP7372010B2 (zh)
KR (1) KR20210003937A (zh)
CN (1) CN112334918A (zh)
DE (1) DE112019002589T5 (zh)
WO (1) WO2019226686A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361198A (zh) * 2021-06-09 2021-09-07 南京大学 一种基于公共和私有信息挖掘的众包测试报告融合方法
CN113449205A (zh) * 2021-08-30 2021-09-28 四川省人工智能研究院(宜宾) 一种基于元数据增强的推荐方法及系统
CN114594776A (zh) * 2022-03-14 2022-06-07 安徽大学 一种基于层次化和模块化学习的导航避障方法

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3637325A4 (en) * 2017-05-23 2020-05-27 Shanghai Cambricon Information Technology Co., Ltd TREATMENT METHOD AND ACCELERATION DEVICE
US11616781B2 (en) * 2017-12-05 2023-03-28 Goldilock Secure s.r.o. Air gap-based network isolation device
US10936913B2 (en) * 2018-03-20 2021-03-02 The Regents Of The University Of Michigan Automatic filter pruning technique for convolutional neural networks
WO2020014590A1 (en) * 2018-07-12 2020-01-16 Futurewei Technologies, Inc. Generating a compressed representation of a neural network with proficient inference speed and power consumption
US20200037962A1 (en) * 2018-08-01 2020-02-06 General Electric Company Plane selection using localizer images
KR20200023238A (ko) * 2018-08-23 2020-03-04 삼성전자주식회사 딥러닝 모델을 생성하는 방법 및 시스템
JP6986503B2 (ja) * 2018-09-10 2021-12-22 日立Astemo株式会社 電子制御装置、ニューラルネットワーク更新システム
US11010132B2 (en) * 2018-09-28 2021-05-18 Tenstorrent Inc. Processing core with data associative adaptive rounding
US20200137380A1 (en) * 2018-10-31 2020-04-30 Intel Corporation Multi-plane display image synthesis mechanism
EP3871088A1 (en) * 2019-02-26 2021-09-01 Google LLC Reinforcement learning techniques for selecting a software policy network and autonomously controlling a corresponding software client based on selected policy network
US11556796B2 (en) * 2019-03-25 2023-01-17 Nokia Technologies Oy Compressing weight updates for decoder-side neural networks
KR20200129458A (ko) * 2019-05-08 2020-11-18 삼성전자주식회사 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템
US11176699B2 (en) * 2019-05-24 2021-11-16 Tencent America LLC Augmenting reliable training data with CycleGAN for hand pose estimation
US11138751B2 (en) * 2019-07-06 2021-10-05 Toyota Research Institute, Inc. Systems and methods for semi-supervised training using reprojected distance loss
US11107004B2 (en) * 2019-08-08 2021-08-31 Capital One Services, Llc Automatically reducing machine learning model inputs
US11327178B2 (en) * 2019-09-06 2022-05-10 Volvo Car Corporation Piece-wise network structure for long range environment perception
US11568180B2 (en) * 2019-09-13 2023-01-31 Rohde & Schwarz Gmbh & Co. Kg Method and cloud server for training a neural network for triggering an input signal in a measurement device and method for autonomous determining a trigger type/parameter
KR20210032140A (ko) * 2019-09-16 2021-03-24 삼성전자주식회사 뉴럴 네트워크에 대한 프루닝을 수행하는 방법 및 장치
CN110728330A (zh) * 2019-10-23 2020-01-24 腾讯科技(深圳)有限公司 基于人工智能的对象识别方法、装置、设备及存储介质
US11816574B2 (en) 2019-10-25 2023-11-14 Alibaba Group Holding Limited Structured pruning for machine learning model
CA3067400A1 (en) * 2019-11-28 2021-05-28 Xesto Inc. System and method for mobile 3d scanning and measurement
JP7497734B2 (ja) * 2019-12-05 2024-06-11 日本電気株式会社 グラフ探索装置、グラフ探索方法、及びプログラム
US11525596B2 (en) * 2019-12-23 2022-12-13 Johnson Controls Tyco IP Holdings LLP Methods and systems for training HVAC control using simulated and real experience data
US11796338B2 (en) * 2019-12-31 2023-10-24 Gm Cruise Holdings Llc Automated semantic mapping
US20210209461A1 (en) * 2020-01-03 2021-07-08 Baidu Usa Llc Methods for neural network sparsity channel generation and inference
US11935271B2 (en) * 2020-01-10 2024-03-19 Tencent America LLC Neural network model compression with selective structured weight unification
US11095855B2 (en) * 2020-01-16 2021-08-17 Microsoft Technology Licensing, Llc Remote collaborations with volumetric space indications
JP2023513079A (ja) * 2020-02-03 2023-03-30 ナノトロニクス イメージング インコーポレイテッド 深層フォトメトリック学習(dpl)システム、装置、及び方法
US20210256385A1 (en) * 2020-02-14 2021-08-19 Northeastern University Computer-implemented methods and systems for dnn weight pruning for real-time execution on mobile devices
US20210256384A1 (en) * 2020-02-14 2021-08-19 Northeastern University Computer-implemented methods and systems for achieving real-time dnn execution on mobile devices with pattern-based weight pruning
US11496775B2 (en) * 2020-02-20 2022-11-08 Tencent America LLC Neural network model compression with selective structured weight unification
US11652972B2 (en) * 2020-03-04 2023-05-16 Toyota Research Institute, Inc. Systems and methods for self-supervised depth estimation according to an arbitrary camera
US20210295175A1 (en) * 2020-03-18 2021-09-23 Fair Isaac Corporation Training artificial neural networks with constraints
US20210295168A1 (en) * 2020-03-23 2021-09-23 Amazon Technologies, Inc. Gradient compression for distributed training
US11142194B1 (en) * 2020-03-24 2021-10-12 Kiomars Anvari Use of IoT network and IoT ranging device for an object control system
KR20210121415A (ko) * 2020-03-30 2021-10-08 주식회사 모빌린트 인공신경망에서 점 구름 데이터를 처리하기 위한 방법 및 그 장치
US11631001B2 (en) 2020-04-10 2023-04-18 SiMa Technologies, Inc. Heterogeneous computing on a system-on-chip, including machine learning inference
US11321607B2 (en) 2020-04-03 2022-05-03 SiMa Technologies, Inc. Machine learning network implemented by statically scheduled instructions, with compiler
CN113516237B (zh) * 2020-04-09 2024-01-09 黑芝麻智能科技(重庆)有限公司 修剪卷积神经网络的方法
US11989581B2 (en) 2020-04-17 2024-05-21 SiMa Technologies, Inc. Software managed memory hierarchy
KR102430090B1 (ko) * 2020-04-20 2022-08-11 세이지리서치 주식회사 사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여 가상 결함 이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치
US11586894B2 (en) 2020-05-04 2023-02-21 SiMa Technologies, Inc. Ordering computations of a machine learning network in a machine learning accelerator for efficient memory usage
US11734605B2 (en) 2020-04-29 2023-08-22 SiMa Technologies, Inc. Allocating computations of a machine learning network in a machine learning accelerator
US11886981B2 (en) 2020-05-01 2024-01-30 SiMa Technologies, Inc. Inter-processor data transfer in a machine learning accelerator, using statically scheduled instructions
US11734549B2 (en) 2020-04-21 2023-08-22 SiMa Technologies, Inc. Avoiding data routing conflicts in a machine learning accelerator
CN111612703A (zh) * 2020-04-22 2020-09-01 杭州电子科技大学 一种基于生成对抗网络的图像盲去模糊方法
CN113642593B (zh) * 2020-04-27 2024-03-01 台达电子工业股份有限公司 影像处理方法与影像处理系统
US11354846B2 (en) * 2020-05-04 2022-06-07 Microsoft Technology Licensing, Llc Computing photorealistic versions of synthetic images
US20210397963A1 (en) * 2020-06-17 2021-12-23 Tencent America LLC Method and apparatus for neural network model compression with micro-structured weight pruning and weight unification
CN111738435B (zh) * 2020-06-22 2024-03-29 上海交通大学 一种基于移动设备的在线稀疏训练方法及系统
US11500962B1 (en) * 2020-06-30 2022-11-15 Amazon Technologies, Inc. Emulating fine-grained sparsity in a systolic array
US11803736B1 (en) 2020-06-30 2023-10-31 Amazon Technologies, Inc. Fine-grained sparsity computations in systolic array
US20210407302A1 (en) * 2020-06-30 2021-12-30 Sony Group Corporation System of multi-drone visual content capturing
CN112749797B (zh) * 2020-07-20 2022-09-27 腾讯科技(深圳)有限公司 一种神经网络模型的剪枝方法及装置
EP3945470A1 (en) * 2020-07-31 2022-02-02 Aptiv Technologies Limited Methods and systems for reducing the complexity of a computational network
CN111931914A (zh) * 2020-08-10 2020-11-13 北京计算机技术及应用研究所 一种基于模型微调的卷积神经网络通道剪枝方法
CN112001483A (zh) * 2020-08-14 2020-11-27 广州市百果园信息技术有限公司 一种剪枝神经网络模型的方法和装置
US20220058466A1 (en) * 2020-08-20 2022-02-24 Nvidia Corporation Optimized neural network generation
KR102520133B1 (ko) * 2020-10-21 2023-04-11 주식회사 팀솔루션 기계 학습용 이미지 데이터 생성 방법 및 그 장치
US20220147680A1 (en) * 2020-11-12 2022-05-12 Samsung Electronics Co., Ltd. Method for co-design of hardware and neural network architectures using coarse-to-fine search, two-phased block distillation and neural hardware predictor
TWI757999B (zh) * 2020-12-04 2022-03-11 國立陽明交通大學 即時避障系統、即時避障方法及具有即時避障功能的無人載具
US11782757B2 (en) 2021-05-07 2023-10-10 SiMa Technologies, Inc. Scheduling off-chip memory access for programs with predictable execution
CN112784885B (zh) * 2021-01-11 2022-05-24 腾讯科技(深圳)有限公司 基于人工智能的自动驾驶方法、装置、设备、介质及车辆
KR102541461B1 (ko) * 2021-01-11 2023-06-12 한국과학기술원 저전력 고성능 인공 신경망 학습 가속기 및 가속 방법
CN112836751A (zh) * 2021-02-03 2021-05-25 歌尔股份有限公司 一种目标检测方法和装置
KR102556642B1 (ko) * 2021-02-10 2023-07-18 한국기술교육대학교 산학협력단 기계 학습 훈련을 위한 데이터 생성방법
WO2021178981A1 (en) * 2021-05-03 2021-09-10 Innopeak Technology, Inc. Hardware-friendly multi-model compression of neural networks
IL284515A (en) * 2021-06-30 2023-01-01 Arpalus Ltd Use of 3D information from simultaneous localization and mapping to optimize training and the use of deep neural networks for identifying and tracking 3D objects
CN113705775A (zh) * 2021-07-29 2021-11-26 浪潮电子信息产业股份有限公司 一种神经网络的剪枝方法、装置、设备及存储介质
US11645784B1 (en) * 2021-08-05 2023-05-09 Bentley Systems, Incorporated Techniques for detecting and classifying relevant changes
KR102531763B1 (ko) * 2021-08-25 2023-05-11 인하대학교 산학협력단 네트워크 프루닝 기법을 통해 경량화 된 신경망에 대한 데이터와 미세 조정 학습이 필요 없는 성능 복구 방법 및 장치
KR20230031036A (ko) * 2021-08-26 2023-03-07 (주)서울로보틱스 3차원 공간에 대한 점군을 정합하는 방법 및 서버
US20230075473A1 (en) * 2021-09-09 2023-03-09 Mycronic AB Device and method for enabling deriving of corrected digital pattern descriptions
CN113872804B (zh) * 2021-09-24 2024-05-28 北京金山云网络技术有限公司 一种带宽分配方法、装置、电子设备以及计算机可读存储介质
KR102421776B1 (ko) * 2021-09-27 2022-07-19 주식회사 넥스트도어 3차원 객체모델 생성 장치 및 그 방법
WO2023065038A1 (en) * 2021-10-20 2023-04-27 Airy3D Inc. Methods and systems using depth imaging for training and deploying neural networks for biometric anti-spoofing
WO2023076596A1 (en) * 2021-10-28 2023-05-04 The Regents Of The University Of California System and method for adipose tissue segmentation on magnetic resonance images
WO2023082004A1 (en) * 2021-11-11 2023-05-19 Deeplite Inc. Data free neural network pruning
US20230154240A1 (en) * 2021-11-16 2023-05-18 The Boeing Company Digital twin generation and logging for a vehicle
WO2023095936A1 (ko) * 2021-11-24 2023-06-01 심용수 가상공간의 객체생성 방법 및 그 장치
KR102527798B1 (ko) * 2021-12-23 2023-05-02 경희대학교 산학협력단 3차원 컨텐츠 전송 장치 및 방법
EP4238714A1 (en) * 2022-03-02 2023-09-06 Robert Bosch GmbH Device and method for controlling a robot
US11908080B2 (en) * 2022-04-04 2024-02-20 Tencent America LLC Generating surfaces with arbitrary topologies using signed distance fields
CN114492847B (zh) * 2022-04-18 2022-06-24 奥罗科技(天津)有限公司 一种高效个性化联邦学习系统和方法
TWI833209B (zh) * 2022-04-27 2024-02-21 緯創資通股份有限公司 用於神經網路的優化方法、電腦系統及電腦可讀取媒體
US20230360642A1 (en) * 2022-05-09 2023-11-09 International Business Machines Corporation Self-supervised speech recognition
EP4280118A1 (en) * 2022-05-18 2023-11-22 Tata Consultancy Services Limited Method and system for generating a data model for text extraction from documents
TWI795306B (zh) * 2022-06-14 2023-03-01 艾歐圖科技股份有限公司 基於深度學習六維姿態迴歸之自主移動機器人之定位失效偵測系統
US20240037404A1 (en) * 2022-07-26 2024-02-01 Deeplite Inc. Tensor Decomposition Rank Exploration for Neural Network Compression
WO2024065530A1 (en) * 2022-09-29 2024-04-04 Intel Corporation Methods and apparatus to perform artificial intelligence-based sparse computation based on hybrid pattern and dynamic encoding
CN115436881B (zh) * 2022-10-18 2023-07-07 兰州大学 一种定位方法、系统、计算机设备及可读存储介质
WO2024098375A1 (en) * 2022-11-11 2024-05-16 Nvidia Corporation Techniques for pruning neural networks
DE102022212901A1 (de) 2022-11-30 2024-06-06 Robert Bosch Gesellschaft mit beschränkter Haftung Automatisches Ermitteln einer optimalen Architektur für ein neuronales Netzwerk
GB2624926A (en) 2022-12-01 2024-06-05 Continental Autonomous Mobility Germany GmbH A computer-implemented method for reducing false positives in a computer vision task and application thereof to motor vehicle exterior monitoring
CN116188543B (zh) * 2022-12-27 2024-03-12 中国人民解放军61363部队 基于深度学习无监督的点云配准方法及系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7609893B2 (en) * 2004-03-03 2009-10-27 Trw Automotive U.S. Llc Method and apparatus for producing classifier training images via construction and manipulation of a three-dimensional image model
JP2006007824A (ja) * 2004-06-22 2006-01-12 Honda Motor Co Ltd 車両制御装置
GB2447494A (en) 2007-03-15 2008-09-17 Linear Algebra Technologies Lt A method and circuit for compressing data using a bitmap to identify the location of data values
GB2476800A (en) 2010-01-07 2011-07-13 Linear Algebra Technologies Ltd Sparse matrix vector multiplier using a bit map of non-zero elements to control scheduling of arithmetic operations
US20150032258A1 (en) * 2013-07-29 2015-01-29 Brain Corporation Apparatus and methods for controlling of robotic devices
US20170178030A1 (en) 2015-12-20 2017-06-22 Prophecy Sensors, Llc Method, system and apparatus using field learning to upgrade trending sensor curves into fuel gauge based visualization of predictive maintenance by user driven feedback mechanism
KR101880035B1 (ko) 2015-09-24 2018-07-19 주식회사 뷰노 영상 생성 방법 및 장치, 및 영상 분석 방법
US9875429B2 (en) 2015-10-06 2018-01-23 Adobe Systems Incorporated Font attributes for font recognition and similarity
US10410113B2 (en) * 2016-01-14 2019-09-10 Preferred Networks, Inc. Time series data adaptation and sensor fusion systems, methods, and apparatus
US10691999B2 (en) * 2016-03-16 2020-06-23 Maluuba Inc. Parallel-hierarchical model for machine comprehension on small data
US20180260687A1 (en) 2016-04-26 2018-09-13 Hitachi, Ltd. Information Processing System and Method for Operating Same
US20180082181A1 (en) * 2016-05-13 2018-03-22 Samsung Electronics, Co. Ltd. Neural Network Reordering, Weight Compression, and Processing
US10832136B2 (en) * 2016-05-18 2020-11-10 Nec Corporation Passive pruning of filters in a convolutional neural network
WO2017201023A1 (en) * 2016-05-20 2017-11-23 Google Llc Machine learning methods and apparatus related to predicting motion(s) of object(s) in a robot's environment based on image(s) capturing the object(s) and based on parameter(s) for future robot movement in the environment
CA3034644A1 (en) 2016-08-22 2018-03-01 Magic Leap, Inc. Augmented reality display device with deep learning sensors
JP6529470B2 (ja) 2016-09-08 2019-06-12 日本電信電話株式会社 移動状況学習装置、移動状況認識装置、方法、及びプログラム
SG10201700299QA (en) 2017-01-13 2018-08-30 Otsaw Digital Pte Ltd Three-dimensional mapping of an environment
DE112017007252T5 (de) 2017-03-14 2019-12-19 Omron Corporation Fahrerüberwachungsvorrichtung, fahrerüberwachungsverfahren, lernvorrichtung und lernverfahren
KR102419136B1 (ko) * 2017-06-15 2022-07-08 삼성전자주식회사 다채널 특징맵을 이용하는 영상 처리 장치 및 방법
CN107368885A (zh) 2017-07-13 2017-11-21 北京智芯原动科技有限公司 基于多粒度剪枝的网络模型压缩方法及装置
CN107562805B (zh) * 2017-08-08 2020-04-03 浙江大华技术股份有限公司 一种以图搜图的方法及装置
WO2019033380A1 (en) * 2017-08-18 2019-02-21 Intel Corporation SLURRY OF NEURAL NETWORKS IN MACHINE LEARNING ENVIRONMENTS
US20190087729A1 (en) * 2017-09-18 2019-03-21 Intel Corporation Convolutional neural network tuning systems and methods
WO2019190340A1 (en) * 2018-03-28 2019-10-03 Intel Corporation Channel pruning of a convolutional network based on gradient descent optimization

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361198A (zh) * 2021-06-09 2021-09-07 南京大学 一种基于公共和私有信息挖掘的众包测试报告融合方法
CN113361198B (zh) * 2021-06-09 2023-11-03 南京大学 一种基于公共和私有信息挖掘的众包测试报告融合方法
CN113449205A (zh) * 2021-08-30 2021-09-28 四川省人工智能研究院(宜宾) 一种基于元数据增强的推荐方法及系统
CN114594776A (zh) * 2022-03-14 2022-06-07 安徽大学 一种基于层次化和模块化学习的导航避障方法
CN114594776B (zh) * 2022-03-14 2022-09-20 安徽大学 一种基于层次化和模块化学习的导航避障方法

Also Published As

Publication number Publication date
EP3797386A4 (en) 2022-03-09
US20190362235A1 (en) 2019-11-28
WO2019226686A2 (en) 2019-11-28
DE112019002589T5 (de) 2021-08-19
KR20210003937A (ko) 2021-01-12
EP3797386A2 (en) 2021-03-31
US20240127068A1 (en) 2024-04-18
JP7372010B2 (ja) 2023-10-31
US20210201526A1 (en) 2021-07-01
WO2019226686A3 (en) 2020-02-06
US11900256B2 (en) 2024-02-13
JP2021526253A (ja) 2021-09-30
JP2024001220A (ja) 2024-01-09

Similar Documents

Publication Publication Date Title
JP7372010B2 (ja) 深層学習システム
JP7485482B2 (ja) コンピュータビジョンシステム
US11593987B2 (en) Dynamic culling of matrix operations
US11532117B2 (en) Density coordinate hashing for volumetric data
US20240219181A1 (en) Path planning using sparse volumetric data

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