CN110392902A - 使用稀疏体积数据的操作 - Google Patents

使用稀疏体积数据的操作 Download PDF

Info

Publication number
CN110392902A
CN110392902A CN201780063371.6A CN201780063371A CN110392902A CN 110392902 A CN110392902 A CN 110392902A CN 201780063371 A CN201780063371 A CN 201780063371A CN 110392902 A CN110392902 A CN 110392902A
Authority
CN
China
Prior art keywords
voxel
level
volume
detail
data
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.)
Granted
Application number
CN201780063371.6A
Other languages
English (en)
Other versions
CN110392902B (zh
Inventor
D·M·莫洛尼
J·D·拜恩
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
Priority to CN202410028163.4A priority Critical patent/CN117764811A/zh
Publication of CN110392902A publication Critical patent/CN110392902A/zh
Application granted granted Critical
Publication of CN110392902B publication Critical patent/CN110392902B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/246Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/617Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • 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/005Tree description, e.g. octree, quadtree
    • 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/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo 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
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • G06V20/13Satellite images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • G06V20/17Terrestrial scenes taken from planes or by drones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • 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/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • 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/10032Satellite or aerial image; Remote sensing
    • 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/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • 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/30244Camera pose
    • 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
    • G06T2207/30261Obstacle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/004Annotating, labelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Molecular Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Astronomy & Astrophysics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

体积数据结构对特定体积进行建模从而以多个细节层次表示该特定体积。体积数据结构中的第一条目包括以第一细节层次表示体素的第一组位,第一细节层次包括体积数据结构中的最低细节层次,第一组位的值指示体素中的相应的一个体素是否至少部分地由对应的几何结构占据,其中,体积数据结构进一步包括以高于所述第一细节层次的第二细节层次表示体素的多个第二条目,处于第二细节层次的体素表示由处于第一细节层次的体素表示的体积的子体积,并且第二条目的数量与第一组位中具有指示相应的体素体积被占据的值的位的数量相对应。

Description

使用稀疏体积数据的操作
相关申请
本申请要求于2016年8月19日提交的美国临时专利申请序列号62/377,471的权益,并且所述美国临时专利申请通过引用以其全文结合于此。
技术领域
本公开总体上涉及计算机系统领域,并且更具体地,涉及计算机视觉和增强或混合现实系统。
背景技术
随着诸如来自MagicLeapTM、MicrosoftTM HoloLensTM、OculusTM RiftTM的那些增强现实(AR)、虚拟现实(VR)和混合现实(MR)产品以及诸如来自ValveTM和HTCTM的系统等其他VR系统的出现,计算机视觉和图形的世界迅速融合。这种系统中的现有方法是使用并行运行的分开的图形处理单元(GPU)和计算机视觉子系统。这些并行系统可以由与在处理器阵列和/或可编程硬件加速器阵列上运行的软件中实施的计算机视觉流水线并行的预先存在的GPU来组装。
附图说明
当结合以下附图考虑时,参考下面对所公开主题的详细描述,可以更充分地理解所公开主题的各种目的、特征和优点,在附图中相似的附图标记表示相似的元件。这些附图是示意性的,并且不旨在按比例绘制。为了清楚起见,在每个附图中并非每个组件都被标记。也并未示出所公开主题的每个实施例的每个组件,其中图示无需允许本领域普通技术人员理解所公开主题。
图1展示了常规的增强或混合现实渲染系统;
图2展示了根据一些实施例的基于体素的增强或混合现实渲染系统;
图3展示了根据一些实施例的密集体积表示与稀疏体积表示之间的差异;
图4展示了根据一些实施例的场景的复合视图;
图5展示了根据一些实施例的示例元素树结构中的细节层次;
图6展示了根据一些实施例的可以利用本申请的数据结构和体素数据的应用;
图7展示了根据一些实施例的用于辨识3D数字的示例网络;
图8展示了根据一些实施例的使用隐含的细节层次来对同一数据结构执行的多种分类;
图9展示了根据一些实施例的2D卷积神经网络的操作消除;
图10展示了根据一些实施例的来自对示例测试图像的分析的实验结果;
图11展示了根据一些实施例的用于剔除操作的硬件;
图12展示了根据一些实施例的对用于剔除操作的硬件的精化;
图13展示了根据一些实施例的硬件;
图14展示了根据一些实施例的使用示例体积数据来合成音频流;
图15展示了根据一些实施例的可重复使用混响滤波器元件的示例;
图16展示了根据一些实施例的FIR混响滤波器的构造;
图17示出了根据一些实施例的FIR混响滤波器的向量化实施方式;
图18示出了根据一些实施例的使用向量化处理进行的光线投射;
图19描绘了根据一些实施例的示例多时隙向量处理器;
图20展示了根据一些实施例的示例体积加速硬件;
图21展示了根据一些实施例的体素立方体的组织;
图22展示了根据一些实施例的两级稀疏体素树;
图23展示了根据一些实施例的两级稀疏体素树;
图24展示了根据一些实施例的示例体素数据的存储;
图25展示了根据一些实施例的将体素插入示例体积数据结构中;
图26展示了根据一些实施例的用于将体素插入示例体积数据结构中的逻辑;
图27展示了根据一些实施例的用于生成地址三元组以控制多路复用器的逻辑;
图28展示了根据一些实施例的地址选择逻辑;
图29展示了根据一些实施例的示例3D体积对象的投影;
图30展示了涉及示例体积数据结构的示例操作;
图31示出了根据一些实施例的示例3D到2D投影的硬件组织;
图32示出了根据一些实施例的使用投影来生成简化地图;
图33展示了根据一些实施例的来自嵌入式设备的示例体积3D和/或简单2D测量结果的示例聚合;
图34展示了一些实施例中的X、Y或Z上的示例投影;
图35示出了根据一些实施例的由2D位图生成直方图金字塔的示例加速;
图36示出了根据一些实施例的由3D位图生成直方图金字塔的示例加速;
图37示出了根据一些实施例的在2D 2×2位图上进行2D路径查找的示例加速;
图38示出了根据一些实施例的在2D 2×2位图上进行2D路径查找的示例加速;
图39示出了根据一些实施例的使用示例体积数据结构进行碰撞检测的示例加速;
图40是根据至少一些实施例的具有设备的示例性网络的简化框图;
图41是根据至少一些实施例的示例性雾或云计算网络的简化框图;
图42是根据至少一些实施例的包括示例设备的系统的简化框图;
图43是根据至少一些实施例的示例处理设备的简化框图;
图44是根据至少一些实施例的示例性处理器的框图;并且
图45是根据至少一些实施例的示例性计算系统的框图。
具体实施方式
在下面的描述中,关于所公开主题的系统和方法以及这些系统和方法可以运算的环境等,阐述了许多具体细节,以便提供对所公开主题的透彻理解。然而,本领域技术人员将清楚的是,可以在没有这些具体细节的情况下实践所公开主题,并且本领域公知的某些特征未进行详细描述,以避免使所公开主题复杂化。此外,应当理解的是,下面提供的实施例是示例性的,并且可以预期,在所公开主题的范围内存在其他系统和方法。
基于并结合增强现实、虚拟现实、混合现实、自主设备和机器人的各种技术正在出现,这些技术可以利用表示三维空间和几何结构的体积的数据模型。使用这种3D或体积数据对各种真实环境和虚拟环境的描述传统上涉及大数据集,一些计算系统一直在努力以期望的方式来处理所述大数据集。进一步地,随着诸如无人机、可穿戴设备、虚拟现实系统等设备变得越来越小,此类设备的存储器和处理资源也可能受到约束。作为示例,AR/VR/MR应用可能要求用于使用支持硬件生成的图形呈现的高帧速率。然而,在一些应用中,这种硬件的GPU和计算机视觉子系统可能需要以诸如高达130fps(7毫秒)的高速率来处理数据(例如,3D数据),以便产生期望的结果(例如,以生成具有产生可信结果、防止用户由于过长的等待时间而导致的晕动病、以及其他示例目标的帧速率的可信图形场景)。可以类似地挑战附加应用以令人满意地处理描述大体积的数据,同时满足相应系统的处理、存储器、功率、应用要求中的约束以及其他示例问题。
在一些实施方式中,计算系统可以设置有用于生成和/或使用根据格式定义的稀疏体积数据的逻辑。例如,可以提供定义的体积数据结构以统一各种系统和应用中的计算机视觉和3D渲染。例如,可以使用诸如立体相机或深度相机等光学传感器来捕获对象的体积表示。对象的体积表示可以包括多个体素。可以定义使得能够递归地细分相应的体积表示以获得对象的目标分辨率的改进的体积数据结构。在细分期间,体积表示中的可以包括在一个或多个体素中的空白空间可以从体积表示(和支持操作)中剔除。所述空白空间可以是体积表示中不包括对象的几何属性的区域。
因此,在改进的体积数据结构中,相应体积内的各个体素可以被标记为“被占据”(由于相应的体积空间内存在一些几何结构)或被标记为“空白”(表示相应的体积由空白空间组成)。此类标记可以另外被解释为指示其相应子体积中的一个或多个也被占据(例如,如果父级或更高级别的体素被标记为被占据)或者其所有子体积是空白空间(即,在父级或更高级别的体素被标记为空白的情况下)。在一些实施方式中,将体素标记为空白可以允许从用于生成相应体积表示的操作中有效地移除体素和/或其相应子体积体素。体积数据结构可以根据稀疏树结构,诸如,根据稀疏六四元树(sexaquaternary)(SST)格式。进一步地,这种用于稀疏体积数据结构的方法可以利用比传统上使用的方法相对更少的存储空间来存储对象的体积表示。另外,压缩体积数据可以增加传输这种表示的可行性,并且使得能够更快地处理这种表示,以及其他示例益处。
体积数据结构可以被硬件加速,以快速允许对3D渲染器的更新,从而消除可能在分开的计算机视觉系统和图形系统中发生的延迟。这种延迟可能引发等待时间,所述等待时间可能在AR、VR、MR和其他应用中使用时引起用户的晕动病以及其他附加缺点。在加速数据结构中快速测试体素的几何属性占据的能力允许构造可以实时更新的低等待时间AR、VR、MR或其他系统。
在一些实施例中,体积数据结构的能力还可以提供帧内警告。例如,在AR、VR、MR和其他应用中,当用户可能与成像场景中的真实或合成对象碰撞时,或者在无人机或机器人的计算机视觉应用中,当此类设备可能与成像场景中的真实或合成对象碰撞时,由体积数据结构提供的处理速度允许警告即将发生的碰撞。
本公开的实施例可以涉及针对诸如机器人、用于增强和混合现实头戴式耳机的头戴式显示器以及电话和平板计算机等应用中的体积数据进行存储和处理。本公开的实施例将一组体积元素(例如,体素)内的每个体素以及可选地与所述体素的几何结构有关的物理量表示为单个位。与一组64个体素有关的附加参数可以与诸如相应的红绿蓝(RGB)或其他着色编码、透明度、舍位带符号距离函数(TSDF)信息等体素相关联,并且被存储在相关联且可选的64位数据结构中(例如,使得使用两个或更多个位来表示每个体素)。这种表示方案可以实现最小的存储器要求。此外,由单个位来表示体素允许执行许多简化的计算以逻辑地或数学地组合来自体积表示的元素。组合来自体积表示的元素可以包括例如:对体积中的平面进行或运算(OR-ing)以创建3D体积数据的2D投影,以及通过对2.5D流形中的被占据体素的数量进行计数来计算表面积等。为了进行比较,可以使用异或逻辑来对64位子体积(例如,4^3个子体积)进行比较,并且可以反转体积,其中,可以通过将对象一起进行或运算来合并所述对象以创建混合对象,以及其他示例。
图1展示了常规的增强或混合现实系统,其由具有后渲染连接装置的并行的图形渲染子系统和计算机视觉子系统组成,以考虑由于快速头部移动引起的变化、以及环境中可能在所渲染的图形中产生遮挡和阴影的变化。在一种示例实施方式中,系统可以包括由主机存储器124支持的主机处理器100,以通过经由总线101、片上片上网络的互连或其他互连来控制图形流水线、计算机视觉流水线和后渲染校正装置的执行。所述互连允许主机处理器100运行适当的软件来控制图形处理单元(GPU)106、相关联图形存储器111、计算机视觉流水线116、及相关联的计算机视觉存储器124的执行。在一个示例中,使用GPU 106经由OpenGL图形着色器107(例如,对三角形列表105进行操作)来渲染图形可以以比计算机视觉流水线更慢的速率进行。因此,可以经由扭曲引擎108和显示/遮挡处理器109来执行后渲染校正,以考虑自通过GPU 106渲染图形以来可能已经发生的头部姿态和遮挡场景几何结构的变化。除其他示例之外,对GPU 106的输出加时间戳,使得其可以分别与来自头部姿态流水线120和遮挡流水线123的正确控制信号121和123结合使用以产生正确的图形输出,从而考虑头部姿态119和遮挡几何结构113的任何变化。
与GPU 106并行地,多个传感器和相机(例如,包括用于深度和视觉处理的有源立体相机和无源立体相机117)可以连接到计算机视觉流水线116。计算机视觉流水线116可以包括至少三个级中的一个或多个,每个级可以包含多个更低级的处理级。在一个示例中,计算机视觉流水线116中的级可以是图像信号处理(ISP)流水线118、头部姿态流水线120、和遮挡流水线122。ISP流水线118可以获取输入相机传感器117的输出并对其进行调节,使得所述输出可以用于随后的头部姿态和遮挡处理。头部姿态流水线120可以获取ISP流水线118的输出并将其与头戴式耳机110中的惯性测量单元(IMU)的输出119一起使用,以计算自通过GPU 106渲染相应的输出图形帧以来的头部姿态变化。可以将头部姿态流水线(HPP)120的输出121与用户指定的网格一起施加至扭曲引擎108以使GPU输出102失真,使得其与更新的头部姿态位置119相匹配。遮挡流水线122可以获取头部姿态流水线121的输出并且在视野中寻找新对象,诸如进入视野的手113(或其他示例对象),所述新对象应该在场景几何结构上产生相应的阴影114。遮挡流水线122的输出123可以由显示和遮挡处理器109使用,以将视野正确地覆盖在扭曲引擎108的输出103之上。除其他示例用例和特征之外,显示和遮挡处理器109使用计算的头部姿态119来产生用于合成阴影114的阴影掩码,并且显示和遮挡处理器109可以在阴影掩码之上合成手113的遮挡几何结构,以在扭曲引擎108的输出103之上产生图形阴影114,并产生最终的(多个)输出帧104以用于在增强/混合现实头戴式耳机110上显示。
图2展示了根据本公开的一些实施例的基于体素的增强或混合现实渲染系统。图2中描绘的装置可以包括在主机CPU 200和相关联主机存储器201上组成的主机系统。这种系统可以经由总线204、片上网络或其他通信机制来与统一计算机视觉和图形流水线223以及相关联的统一计算机视觉和图形存储器213进行通信,所述统一计算机视觉和图形存储器包含要在最终场景中渲染以供在头戴式增强或混合现实显示器211上显示的真实体素和合成体素。AR/MR显示器211还可以包含多个有源图像传感器和无源图像传感器214以及用于测量头部姿态222的取向变化的惯性测量单元(IMU)212。
在组合渲染流水线中,可以从三角形列表204开始生成合成几何结构,所述三角形列表由OpenGL JiT(即时)翻译器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,所述输出可以由深度流水线216转换为深度图像226。除其他示例之外,有源或无源图像传感器214(214.1和214.2)可以包括有源或无源立体传感器、结构光传感器、飞行时间传感器。例如,深度流水线216可以处理来自结构光或飞行时间传感器214.1、或可替代地无源立体传感器214.2的深度数据。在一种示例实施方式中,除其他示例实施方式之外,立体传感器214.2可以包括无源立体传感器对。
由深度流水线215生成的深度图像可以由密集SLAM流水线217使用SLAM算法(例如,Kinect融合)来处理,以产生所测得几何结构体素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将复合场景几何作为输入,并且使用光线投射加速器206来计算碰撞,然后计算对合成几何结构202的更新228以供渲染并作为物理模型的未来迭代的基础。
在一些实施方式中,除其他示例之外,诸如图2所示的系统等系统可以另外设置有一个或多个硬件加速器以实施和/或利用卷积神经网络(CNN),所述卷积神经网络可以处理来自ISP流水线215的输出的RGB视频/图像输入、来自SLAM流水线217的输出的体积场景数据。神经网络分类器可以专门使用硬件(HW)卷积神经网络(CNN)加速器207来运行或在处理器与HW CNN加速器207的组合中运行,以产生输出分类237。除其他示例用途之外,用于对体积表示进行推断的HW CNN加速器207的可用性可以允许将所测得几何结构体素227中的体素组标记为属于特定对象类。
标记体素(例如,使用CNN和支持硬件加速)可以允许那些体素所属的那些对象被系统辨识为与已知对象相对应,并且源体素可以从所测得几何结构体素227中移除并由与对象和/或关于对象的原点、对象的姿态、对象描述符的信息以及其他示例信息相对应的边界框所替换。除其他示例用途之外,这可以导致对场景的语义上更有意义的描述,所述描述可以例如用作机器人、无人机或其他计算系统的输入以与场景中的对象进行交互,或者用作音频系统的输入以查找场景中对象的吸声系数并将其反映在场景的声学模型中。
可以提供一个或多个处理器设备和硬件加速器以实施图2中示出和描述的示例系统的流水线。在一些实施方式中,除其他示例实施方式之外,组合渲染流水线的所有硬件元件和软件元件可以共享对DRAM控制器209的访问,所述控制器进而允许将数据存储在共享DDR存储器设备208中。
图3被呈现用于说明根据一些实施例的在密集体积表示与稀疏体积表示之间的差异。如图3的示例所示,可以以如302所示的密集方式或如304所示的稀疏方式在体素方面描述真实世界或合成对象300(例如,兔子的雕像)。诸如302等密集表示的优点是对体积中所有体素的访问速度均匀,但缺点是可能需要的存储量。例如,对于密集表示,诸如512^3元素体积(例如,对于使用Kinect传感器扫描的体积,1cm分辨率对应于5m),512M字节用于存储相对较小的体积,其中,每个体素4字节舍位带符号距离函数(TSDF)。另一方面,体现稀疏表示的八叉树表示304可以仅存储在真实世界场景中存在实际几何结构的那些体素,从而减少存储同一体积所需的数据量。
转到图4,展示了根据一些实施例的示例场景的复合视图。具体地,图4示出了场景404的复合视图可以如何使用并行数据结构来维持、显示或经受进一步处理,以分别表示在合成体素数据和真实世界体素数据的等效边界框400和402内的合成体素401和真实世界所测得体素403。图5展示了根据一些实施例的均匀4^3元素树结构中的细节层次。在一些实施方式中,可以利用少至1位来描述使用八叉树表示的体积中的每个体素,诸如在图5的示例中所表示的。然而,基于八叉树的技术的缺点可能是用于访问八叉树中的特定体素的间接存储器访问次数。在稀疏体素八叉树的情况下,可以以有利地允许诸如光线投射、游戏物理、CNN和其他技术等操作的多个细节层次隐含地表示同一个几何结构,以便允许从进一步计算中剔除场景的空白部分,从而导致不仅所需存储减少,而且在功耗和计算负荷方面总体上减少,以及其他示例优点。
在一种实施方式中,可以提供改进的体素描述符(在本文中也称为“体积数据结构”)以将体积信息组织为4^3(或64位)无符号整数,诸如501中所示,其中,每体素的存储器要求为1位。在本示例中,每体素1位不足以存储舍位带符号距离函数值(与利用64位的SLAM平台/K融合中的TSDF相比)。在本示例中,体素描述符中可以包括附加(例如,64位)字段500。可以进一步增强这个示例,使得尽管64位字段500中的TSDF是16位的,但可以在体素描述符501中隐含地提供x、y和z中的附加2位的分数分辨率,以使得64位字段500中的体素TSDF与体素位置501的组合等效于诸如在SLAM平台/K融合或其他示例中所使用的更高分辨率的TSDF。例如,除其他示例之外,64位字段500(体素描述符)中的附加数据可以用于存储二次采样的RGB颜色信息(例如,经由无源RGB传感器来自场景),其中,每个信息具有一个字节、并且具有8位透明度值α以及两个1字节保留字段R1和R2,所述保留字段可以是应用特定的并且可以用于存储例如音频应用的声反射率、物理应用的刚性、对象材料类型等。
如图5所示,体素描述符501可以在逻辑上分组成四个2D平面,每个平面包含16个体素502。这些2D平面(或体素平面)可以基于4的升幂的连续分解来描述八叉树样式结构的每个级别,如图5中所表示的。在本示例实施方式中,选择64位体素描述符,因为其与相应的系统实施方式中使用的64位总线基础设施良好匹配(但在其他系统实施方式中可以提供其他体素描述符大小和格式并且根据系统的总线或其他基础设施来调整其大小)。在一些实施方式中,可以将体素描述符的大小调整以减少获得体素所使用的存储器访问次数。例如,除其他示例考虑和实施方式之外,与对2^3个元素操作的传统八叉树相比,可以使用64位体素描述符将访问八叉树中处于任意级别的体素所需的存储器访问次数减少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(例如,SLAM平台)生成的共享体积表示602可以用于使用图形光线投射或光线跟踪603来渲染场景、用于音频光线投射604、以及其他实施方式。在仍其他示例中,体积表示602还可以用于卷积神经网络(CNN)推断605,并且可以由云基础设施607来备份。在一些实例中,云基础设施607可以包含诸如可以经由推断进行访问的树、家具或其他对象(例如,606)等对象的详细体积描述符。基于推断或以其他方式识别对象,可以将相应的详细描述符返回到设备,从而允许由具有姿态信息以及包含对象属性和其他示例特征的描述符的边界框表示来替换体积表示602的体素。
在仍其他实施例中,可以在一些系统中另外地或可替代地利用上面讨论的体素模型,以使用来自体积表示602的3D到2D投影来构造示例环境608的2D地图。这些2D地图可以再次经由通信机器、经由云基础设施和/或其他基于网络的资源607共享并且被聚合(例如,使用相同的云基础设施)以使用众包技术来构建更高质量的地图。这些地图可以由云基础设施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。当用于嵌入式设备中的推断时,除其他示例之外,经训练网络710可以用于以高准确度对场景中的3D数字进行分类,即使在数字经受X、Y和Z上的旋转和平移的情况下也是如此720。在一些实施方式中,CNN分类器的操作可以由图2所示的HW CNN加速器207来加速。当神经网络的第一层使用体积表示602中的体素执行乘法时,可以跳过这些算术运算,因为乘以零始终为零并且数据值A与一(体素)的相乘等于A。
图8展示了使用隐含的细节层次对同一数据结构执行的多种分类。使用体积表示602进一步精化CNN分类可以是:因为在如图5所示的八叉树结构中八叉树表示隐含地包含多个细节层次,所以可以使用单个分类器830或多个并行分类器使用隐含细节层次800、810和820来并行的对同一数据结构执行多种分类,诸如图8所示。在传统系统中,由于图像需要在分类通道之间重新调整大小,因此相当的并行分类可能很慢。在应用本文所讨论的体素结构的实施方式中可以放弃这种重新调整大小,因为同一八叉树可以以多个细节层次包含相同的信息。实际上,基于体积模型的单个训练数据集可以覆盖所有细节层次而不是诸如将在常规CNN网络中需要的重新调整训练数据集的大小。
转到图9的示例,根据一些实施例通过2D CNN展示了示例操作消除。可以在3D体积CNN上以及在2D CNN上使用操作消除,如图9所示。例如,在图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的一系列训练图像求平均来生成的。所示出的示例是二维的,但是也可以为采用所提出的每体素具有一位的体积数据格式的3D对象生成类似的位图掩码。实际上,除其他示例实施方式之外,所述方法还可以潜在地扩展为每体素/像素使用附加位来指定2D或3D对象的预期颜色范围或其他特性。
图10是表格,展示了根据一些实施例的涉及对10,000个CIFAR-10测试图像的分析的示例实验的结果。在一些实施方式中,由于在诸如LeNet 1000等CNN网络中频繁进行的修正线性单元(ReLU)操作,可以使用操作消除来消除1D、2D和3D CNN中的中间计算,如图10所示。如图10所示,在使用10,000个CIFAR-10测试图像的实验中,由ReLU单元生成的数据相关的零的百分比可以达到85%,这意味着在零的情况下,可以提供辨识零并且作为响应不取出相应数据和执行相应乘法运算的系统。在本示例中,85%表示根据修改的国家标准与技术研究院数据库(MNIST)测试数据集生成的ReLU动态零的百分比。与这些零相对应的相应操作消除可以用于降低功耗和存储器带宽要求、以及其他示例益处。
可以基于位图来剔除琐碎操作。例如,这种位图的使用可以根据在名称为“Circuit for compressioning data and a processors using the same(用于压缩数据的电路以及使用所述电路的处理器)”的美国专利号8,713,080中讨论和说明的原理和实施例,所述美国专利通过引用以其全文结合在此。一些实施方式可以提供能够使用这样的位图的硬件,诸如系统、电路系统以及在名称为“Hardware for performing arithmeticoperations(用于执行算术运算的硬件)”的美国专利号9,104,633中讨论和说明的其他实施方式,所述美国专利通过引用以其全文结合在此。
图11展示了根据一些实施例的可以结合到系统中以提供用于基于位图来剔除琐碎操作的功能的硬件。在本示例中,提供了包括重复的卷积层的多层神经网络。所述硬件可以包括一个或多个处理器、一个或多个微处理器、一个或多个电路、一个或多个计算机等。在这个特定示例中,神经网络包括初始卷积处理层1100、然后是池化处理1110、并且最后是激活函数处理(诸如,修正线性单元(ReLU)函数1120)。提供ReLU输出向量1131的ReLU单元1120的输出可以连接到随后的卷积处理层1180(例如,可能经由延迟1132),所述卷积处理层接收ReLU输出向量1131。在一种示例实施方式中,还可以与ReLU单元1120到随后的卷积单元1180的连接并行地生成ReLU位图1130,ReLU位图1130表示ReLU输出向量1131中的哪些元素为零并且哪些为非零。
在一种实施方式中,可以生成或以其他方式提供位图(例如,1130),以向启用的硬件通知消除在神经网络的计算中涉及的操作的机会。例如,ReLU位图1130中的位可以由位图调度器1160解释,考虑到乘以零将始终产生零作为输出,所述位图调度器指示随后的卷积单元1180中的乘法器跳过ReLU输出向量1131中的在ReLU位图1130中存在相应的二进制零的零条目。并行地,还可以跳过从地址生成器1140对与ReLU位图1130中的零相对应的数据/权重的存储器取出,因为在取出将由随后的卷积单元1180跳过的权重时几乎没有值。如果要经由DDR控制器1150从附接的DDR DRAM存储设备1170取出权重,则等待时间可能很高,以至于只能节省一些片上带宽和有关功耗。另一方面,如果从片上RAM 1180存储装置取出权重,则可以绕过/跳过整个权重取出操作,特别是如果在输入处将与RAM/DDR取出延迟1132相对应的延迟添加到随后的卷积单元1180的话。
转到图12,提供了简化框图以说明根据一些实施例的对配备有用于剔除琐碎操作(或执行操作消除)的电路系统和其他逻辑的示例硬件的精化。如图12的示例所示,可以提供附加硬件逻辑以预测从在前的最大池化单元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层可以产生与负输入相对应的大量输出零。实际上,可以通过查看到先前层(例如,图13的示例中的池化层)的(多个)符号输入来预测性地确定负ReLU输入。浮点和整数运算可以根据最高有效位(MSB)显式地带有符号,因此在卷积层中跨要相乘的输入向量进行简单的逐位异或(XOR)运算可以预测哪些乘法将产生输出零,诸如图13所示。所得的符号预测的ReLU位图向量可以用作用于确定乘法的子集和从存储器进行读取的相关联系数的基础,以便诸如以上文其他示例中描述的方式进行消除。
将ReLU位图的生成提供回到先前的池化级或卷积级(即,在相应的ReLU级之前的级)可能产生附加的功率。例如,可以提供符号预测逻辑以在乘法器将产生负输出时禁用所述乘法器,所述负输出将由ReLU激活逻辑最终设置为零。例如,这示出了乘法器1314的输入1301和1302的这两个符号位1310和1315在逻辑上由异或门进行组合以形成PreReLU位图位1303的情况。除其他示例之外,此同一信号可以用于禁用乘法器1314的操作,所述操作否则将不必要地消耗生成负输出的能量,所述负输出将在被输入用于下一卷积级1390中的乘法之前由ReLU逻辑设置为零。
应注意的是,1300、1301、1302和1303(标注A)的表示示出了图13中标为B的表示中所示的更高级视图。在本示例中,到框1302的输入可以包括两个浮点操作数。输入1301可以包括:显式符号位1310、包括多个位的尾数1311、以及再次包括多个位1312的指数。类似地,输入1302同样可以包括符号1315、尾数1317和指数1316。在一些实施方式中,尾数和指数可以具有不同的精度,因为结果1303的符号分别仅取决于1301和1302、或者1310和1315的符号。事实上,1301和1302都不需要是浮点数,而是只要其是有符号数并且最高有效位(MSB)实际上是显式或隐式的符号位(例如,如果数字是一或二的补码等),就可以是任何整数或定点格式。
继续图13的示例,这两个符号输入1310和1315可以使用异或(XOR,有时在本文中可替代地表示为ExOR或EXOR)门进行组合以生成位图位1303,然后可以使用硬件来处理所述位图位以识别可能在下一卷积框(例如,1390)中省略的下游乘法。在这两个输入数字1313(例如,对应于1301)和1318(例如,对应于1302)具有相反符号并且将产生负输出1304的情况下,还可以使用相同的异或输出1303来禁用乘法器1314,所述负输出将由ReLU框1319设置为零,从而导致RELU输出向量13191中的零值,所述零值将被输入到随后的卷积级1390。因此,在一些实施方式中,PreReLU位图1320可以并行地传输到位图调度器1360,所述位图调度器可以调度乘法以在卷积单元1390上运行(和/或省略)。例如,对于位图1320中的每个零,可以在卷积单元1390中跳过相应的卷积运算。并行地,位图1320可以被示例地址生成器1330消耗,所述示例地址生成器控制对在卷积单元1390中使用的权重的取出。位图1320中对应于1的地址列表可以在地址生成器1330中被编译,并且控制经由DDR控制器1350到DDR存储装置1370的路径,或者控制到片上RAM 1380的路径。除其他示例之外,在任一种情况下,可以取出与PreReLU位图1320中的一相对应的权重并且将其呈现(例如,在关于权重输入1371的时钟周期的一定等待时间之后)给卷积框1390,而可以省略对与零相对应的权重的取出。
如上所述,在一些实施方式中,可以在位图调度器1360与卷积单元1390之间插入延迟(例如,1361),以平衡通过地址生成器1330、DDR控制器1350和DDR 1350的延迟,或者平衡通过地址生成器1330和内部RAM 1380的路径。所述延迟可以使得由位图调度器驱动的卷积能够在时间上与卷积单元1390中的卷积计算的相应权重正确对齐。实际上,从定时的角度来看,比在ReLU框1319的输出处更早生成ReLU位图可以允许得到附加的时间,所述附加时间可以用于在由地址生成器1330生成对存储器的读取之前拦截所述读取(例如,RAM1380或DDR 1370),使得可以放弃一些读取(例如,对应于零)。除其他示例优点之外,由于存储器读取可能比片上逻辑操作高得多,因此排除这种存储器取出可以导致非常显著的节能。
在一些实施方式中,如果在时钟周期方面仍然没有足够的节省来覆盖DRAM访问时间,则可以使用面向块的技术来提前从DDR中读取符号位(例如,1301)组。这些符号位组可以与来自输入图像或中间卷积层1302的符号块一起使用,以便使用一组(多个)异或门1300来生成PreReLU位图块(例如,以计算2D或3D阵列/矩阵之间的2D或3D卷积中的符号位之间的差异,以及其他示例)。在这种实施方式中,可以提供DDR或片上RAM中的附加1位存储来存储每个权重的符号,但是这可以允许以使得永远避免从DDR或RAM中读取将从ReLU级乘以零的权重的方式来覆盖许多等待时间周期。在一些实施方式中,除其他示例考虑和实施方式之外,可以避免DDR或片上RAM中的每权重的附加1位存储,因为符号以这样的方式被存储:它们可从指数和尾数中独立地寻址。
在一个示例中,可以进一步增强系统以利用DDR访问,所述访问可以进行自然脉冲串访问以实现最大数据传送速率。通过跳过各个DDR权重访问来节省能量在此内容中可能是不可行的,因为所述权重访问可能比脉冲串短。因此,在一些实例中,在与特定脉冲串事务相对应的所有位图位为零的情况下,可以跳过脉冲串。然而,这可能不频繁地发生,并且因此所得的功率节省和带宽节省可能是有限的。在仍其他实施方式中,可以针对脉冲串中的位图位的数量来设置寄存器可编程阈值,使得如果位图脉冲串中多于N个位为零,则将完全跳过脉冲串。这可能具有略微降低整体CNN分类准确度的效果,但是为了节省能量可以是可接受的。
图14展示了根据一些实施例的可以如何使用体积数据(例如,根据如上所述的格式)来合成音频流。一些增强现实(AR)和混合现实(MR)系统中存在的挑战是解决AR/MR呈现中的不一致性,以使得体验更加真实且更具沉浸感。这可以包括组合图像(例如,虚拟与虚拟、虚拟与真实等),如上所述。体积数据还可以用于增强AR和MR应用中的音频呈现。例如,图14所示的简图展示了(例如,如上所讨论的经格式化的)体积数据的示例使用,其用于通过以下方式来合成用于扩音器1460、头戴式耳机1470或其他扬声器的音频流:使用音频光线投射器1450根据体积模型创建混响模型,并且通过音频光线投射器生成的模型传递实时或预先录制的音频1440以生成与体积模型相对应的输出波形。在图14的特定示例中,可以提供连接到(诸如先前描述的)ISP流水线1420的多个图像传感器1410,所述流水线的输出被馈送到SLAM流水线1430(诸如先前描述的)。图像传感器1410可以包括无源立体对、结构光或飞行时间有源IR相机、以及其他示例。
可以根据基于八叉树的体积模型1431以如以上升的细节层次和位的1441、1442、1443和1444所示的不同的细节层次(针对渲染速度)生成多个音频模型。实际上,可以使用相同的体积模型来生成用于不同扩音器位置的模型,以便可以支持包括立体声和环绕声在内的多个扩音器(包括立体对和头戴式耳机)。这些模型可以作为完整的模型实时生成或者实际上可以使用可重复使用的几何结构幻灯片来构建,所述幻灯片可以使用最终求和级来适当地且动态地组合,所述最终求和级考虑了可以基于收听者在由体积模型建模的场景中的当前位置而对声场作出贡献的光线。
图15示出了根据一些实施例的基于几何结构的这种可重复使用的混响滤波器元件的示例。在图15的特定示例中,考虑了图14的示例金字塔结构1400的截面视图。所述金字塔可以通过基于八叉树的体积模型来建模,并且所述体积模型可以用于生成与金字塔结构1400的尺寸和特性一致的音频混响模型。在本示例中,音频混响模型的生成可以主要基于阶梯1504的高度1503和深度、以及观察者相对于金字塔的第一阶梯1502的距离和取向。可以为此第一阶梯以及金字塔中的所有其他阶梯对混响进行建模。可以回到收听者的耳朵处(例如,经由连接到混响建模电路系统或其他逻辑的扬声器1505)对这些建模的混响进行求和。混响模型的输入可以是特定噪声(例如,拍手、语音或其他音频),包括来自现场环境的经由麦克风捕获的音频流、预先录制的音频流或其他声音1500。
图16展示了根据一些实施例的基于4×4体积立方体1600以及所确定的观察者位置1601由示例体积模型对有限脉冲响应(FIR)混响滤波器的示例生成。从其中一条光线的角度来看,声波的传播可以通过考虑其传播通过每个体素体积1619至1612来建模,其中,系统通过与声音穿过空气相对应的传播系数来对声波的衰减进行建模。继续本示例,可以将建模的声音建模为从体积模型的第一部分1610(例如,图14至图15的示例中的金字塔模型的第一阶梯1611)反射,其中,反射系数与由体素1610建模的对象的材料相对应。例如,在前一示例中,体素1610可以表示石灰石金字塔的表面,其中,体积模型或相关联数据指定用于确定声音将如何从金字塔反射的石灰石(例如,金字塔表面的材料)反射系数。继续本示例,可以进一步对建模的(且现在衰减)衰减的反射波的传播进行建模以将体素(例如,1612至1618)重新遍历回观察者位置1619,其中,可以基于由体素(例如,1612至1618)建模的介质(例如,空气、墙壁、水、玻璃等)的反射和衰减来进一步对信号进行建模,以及其他示例。
在一个实施例中,图16所展示的结构可以直接转录为FIR滤波器,其中,输入音频样本进入1620,乘以通过第一体素c1(1620)的传播,并且穿过延迟级(1体素)1621,然后由一个体素1622的传播系数衰减,依此类推,直到在1630处最终输出样本退出FIR滤波器。所有体素系数相等允许构建FIR滤波器的集总版本,其中,使用一半数量的延迟和乘法器,其中,除了来自石头金字塔的反射系数1642保持不变之外,每个延迟元件1641为两倍长并且每个乘法器系数1640两倍大。换言之,在这种实例中,可以对N个反射系数进行求和,并且执行集总乘法而不是单独执行每个乘法。可以针对每次反射(例如,通过对由体积数据结构建模的几何结构的光线投射来确定)静态地进行这种求和。例如,所有延迟1661和所有传播系数1660可以集总到具有14D延迟元件和14×C1传播系数的完全优化的FIR滤波器中,然而,这种方法可能是不可向量化的,这可能在向量处理器或向量化硬件上呈现低效率。对于FIR混响滤波器的向量化实施方式,可以在四个向量运算1700至1703中的每个四元素宽的水平条带中对同一个4×4体积进行光线跟踪,然后在1704中对这四个向量化输出求和并将输出样本输出到扩音器或头戴式耳机1705,诸如图17的示例简图所示。因此,图17示出了根据一些实施例的FIR混响滤波器的向量化实施方式。
转到图18,示出了简图,其展示了根据一些实施例的通过断言执行使用向量化处理进行的光线投射,其中,处理器具有至少四个功能单元;断言执行(PEU)1805,其可以对三种可能的运算精度(fp32、fp16或uint8)之一的向量运算单元(VAU)1807、以及标量运算单元(SAU)1808执行每通道断言操作,所有这些运算单元都在分支重复单元(BRU)的控制下,所述分支重复单元一次一个向量地逐步通过体积中的多个体素(深度)。在一些实施方式中,就向量运算而言,16位浮点操作数对于MP3音频可以是足够的(其中32位浮点(fp32)是可选的),从而允许通过VAU 1807将吞吐量加倍。事实上,原则上,除其他可能的示例实施方式之外,在许多情况下还可以利用具有无符号整数(例如,u8)乘以被除数的倒数的分数表示,从而允许VAU吞吐量相对于fp32模式为几乎四倍。
可以通过从存储器读取的体积数据结构中选择位向量来构造断言单元1803的输入,如前所述,所述位向量可以由4^3个体素子体积构成,每个体素子体积由64位整数表示。在fp32运算的情况下,可以从1800中的4^3体积信息中逐行选择4位宽的向量。在16位运算的情况下,可以由级联单元18031级联来自1801的两个子体积(即18011和18012)的两个4位向量,以形成8位断言向量1803。最后,在8位运算的情况下,可以由级联单元18031通过级联来自1802的子体积的四个4位向量(即18021、18022、18023和18024)来构造16位断言向量1802,以此类推。不管运算表示如何,每通道断言都允许跨具有要跨单个循环中的向量并行地评估的4、8或16个体素的体素几何结构使用向量化。
在一种示例实施方式中,PEU 1805对VAU 1807的断言对1803上的4、8或16个体素宽的块中的体积数据进行如下操作:
·位图0-沿着用于音频信号通过空气传播的光线而求和的FIR混响;
·位图1-停止准则和反射系数乘法;
·退出-当跨通过对每个位图1位与寄存器的先前内容进行或运算来维持的向量遇到所有一时循环并停止传播,并且当寄存器包含所有一时停止循环。
光线投射过程中的进一步优化可以通过分解以从原点跨体素的角度进行光线跟踪所需的2D插值来实施。跨体素体积在X和Y维度上的2D插值可以被分解为跨向量共同的单独的共同y分量以及取决于距体素中心的距离的第二x分量。
诸如本文所讨论的体素表示可以用于增强不仅用于音频而且还用于其他应用的光线投射操作。在一些实例中,物理或光传播中使用的光线投射可能与针对音频的光线投射不同,其中,通过空气介质可能没有信号衰减,但对于流体而言,与先前针对空气概述的相同的光线投射机制可以用于物理或光传播。因此,用于利用空气作为介质的光/物理光线投射的断言机制可以例如如下实施:
·位图0-什么都不做,因为通过介质的衰减可忽略(在音频情况下,FIR输出被更新);
·位图1-乘以光反射率(对象刚性)系数并将颜色(力)复制到输出缓冲器;
·退出-当跨通过对每个位图1位与寄存器的先前内容进行或运算来维持的向量遇到所有一时循环并停止传播,并且当寄存器包含所有一时停止循环。
图19是简化框图,表示根据一些实施例的示例多时隙向量处理器(例如,超长指令字(VLIW)向量处理器)。在本示例中,向量处理器可以包括多个(例如,9个)功能单元(例如,1903至1911),所述多个功能单元可以由多端口存储器系统1900馈送、由向量寄存器堆(VRF)1901和通用寄存器堆(GRF)1902支持。所述处理器包含指令解码器(IDEC)1912,所述解码器对指令进行解码并生成控制功能单元1903至1911的控制信号。功能单元1903至1911是断言执行单元(PEU)1903、分支重复单元(BRU)1904、加载存储端口单元(例如,LSU0 1905和LSU1 1906)、向量运算单元(VAU)1907、标量运算单元(SAU)1910、比较移动单元(CMU)1908、整数运算单元(IAU)1911以及体积加速单元(VXU)1909。在此特定实施方式中,VXU1909可以加速对体积数据的操作,包括存储/检索操作、逻辑操作和运算操作。虽然在图19的示例中将VXU电路系统1909示出为单一组件,但是应当理解,VXU(以及任何其他功能单元1903至1911)的功能可以分布在多个电路系统中。进一步地,在一些实施方式中,除其他示例实施方式之外,VXU 1909的功能在某些实施方式中可以分布在处理器的其他功能单元(例如,1903至1908、1910、1911)中的一个或多个功能单元内。
图20是简化框图,展示了根据一些实施例的VXU 2000的示例实施方式。例如,VXU2000可以提供至少一个64位输入端口2001以接受来自向量寄存器堆1901或通用寄存器堆1902的输入。此输入可以连接到多个功能单元,所述多个功能单元包括:寄存器堆2003、地址生成器2004、点寻址逻辑2005、点插入逻辑2006、点删除逻辑2007、X维度中的3D到2D投影逻辑2008、Y维度中的3D到2D投影逻辑2009、X维度中的3D到2D投影逻辑2010、2D直方图金字塔发生器2011、3D直方图金字塔发生器2012、群体计数器2013、2D路径查找逻辑2014、3D路径查找逻辑2015以及用于对64位无符号整数体积位图进行操作可能的附加功能单元。来自框2002的输出可以被写回向量寄存器堆VRF 1901或通用寄存器堆GRF 1902寄存器堆。
转到图21的示例,表示了4^3体素立方体2100的组织表示。还表示了第二体素立方体2101。在本示例中,体素立方体可以在数据中被定义为64位整数2102,其中,立方体内的每个单个体素由64位整数中的单个相应位表示。例如,地址{x,y,z}={3,0,3}处的体素2012可以被设置为“1”以指示在由体素立方体2101表示的体积空间内的这个坐标处存在几何结构。进一步地,在本示例中,除其他示例之外,(体素2102旁边的)所有其他体素可以与“空白”空间相对应,并且可以被设置为“0”以指示在那些坐标处不存在物理几何结构。转到图22,展示了根据一些实施例的示例两级稀疏体素树2200。在本示例中,体积内(例如,在位置{15,0,15}中)仅包括单个“被占据”体素。在这种情况下,树的上级0 2201包含单个体素条目{3,0,3}。这个体素进而指向树的下一级2202,所述下一级包含元素{3,0,3}中的单个体素。数据结构中与稀疏体素树的级别0相对应的条目是其中一个体素被设置为被占据的64位整数2203。所设置体素意味着然后在与2203中设置的体素体积相对应的树级别1中分配64位整数的阵列。在级别1子阵列2204中,仅将这些体素之一设置为被占据,而所有其他体素设置为未被占据。在本示例中,由于树是两级树,因此级别1表示树的底部,使得层级结构在此处终止。
图23展示了根据一些实施例的两级稀疏体素树2300,其包含特定体积的位置{15,0,3}和{15,0,15}中的被占据体素。在这种情况下(其将特定体积细分为64个上级0体素),树的上级0 2301包含两个体素条目{3,0,0}和{3,0,3},其中,相应的数据2304示出两个体素被设置(或占据)。稀疏体素树(SVT)的下一级作为64位整数的阵列被提供,所述阵列包含两个子立方体2302和2303,在级别0中设置的每个体素对应一个。在级别1子阵列2305中,两个体素被设置为被占据(v15和v63),并且所有其他体素被设置为未被占据和树。这种格式是灵活的,因为树的下一级中的64个条目总是与树的上层中的每个所设置体素相对应地分配。这种灵活性可以允许以灵活的方式(即,不是以固定的顺序,诸如随机地)将动态变化的场景几何结构插入到现有的体积数据结构中,只要已经设置了上层中的相应体素即可。如果不是,则将维护指针表,导致更高的存储器要求,否则将需要至少部分地重建树以便插入无法预料的几何结构。
图24展示了根据一些实施例的用于存储来自图23的体素的替代技术。在本示例中,总体积2400包含存储在如图23中的全局坐标{15,0,3}和{15,0,15}处的两个体素。在这种方法中,并非分配64条目的阵列来表示在级别0下面的级别1中的所有子立方体,而是仅分配级别1中实际包含几何结构(例如,如由相应的级别0体素是否为占据者所指示的)的那些元素作为相应的64位级别1记录,使得在本示例中,级别1仅具有两个64位条目而不是六十四个条目(即,对应这64个级别1体素中的每一个,无论是被占据还是空白)。因此,在本示例中,第一级0 2404等效于图23中的2304,而下一级2405在存储器要求方面比图23中的相应2305小62倍。在一些实施方式中,如果要将新几何结构插入级别0中,而级别1中尚未分配空间,则必须复制并重新排列树。
在图24的示例中,可以通过对在当前层上方的层中的被占据体素进行计数来导出子体积。以这种方式,系统可以确定在体素数据中一个较高层结束并且下一个较低层开始的位置。例如,如果三个层0体素被占据,则系统可以预期在体素数据中三个相应的层1条目将跟随,并且(在这三个之后的)下一条目与层2中的第一条目相对应,以此类推。在场景的某些部分不随时间变化或者在应用中需要比如从扫描冥王星表面的空间探测器远程传输体积数据(其中每个位的传输都昂贵且耗时)的情况下,这种最佳紧缩可以非常有用。
图25展示了根据一些实施例的可以将体素插入到表示为64位整数体积数据结构条目的4^3立方体中以反映相应体积内的几何结构的变化的方式。在一个示例中,每个体素立方体可以被组织为如2500中所示的64位整数内的四个逻辑16位平面。除其他示例组织之外,每个平面对应于Z值0到3,并且在每个平面内,每个y值代码4个逻辑4位位移0到3,并且最后在每个4位y平面内,每个位代码4个可能的x值0到3。因此,在本示例中,为了将体素插入到4^3体积中,首先可以将1位的x值移位0到3,然后可以将这个值移位0/4/8/12位以对y值进行编码,并且最后可以通过移位0/16/32/48位来表示z值,如2501中的C代码表达式所示。最后,由于每个64位整数可以是多达64个体素的组合,其中每个体素是单独写入的,因此新位图必须通过对旧位图值与新位图值进行或运算而在逻辑上与从稀疏体素树读取的旧64位值组合,如2502中所示。
图26展示了根据一些实施例的用于将体素插入到由64位整数表示的4^3立方体中的逻辑。所述逻辑由3层多路复用器组成。第一多路复用器2603可以根据2位x输入2600来对x中的体素的位置进行编码,从而产生到第一多路复用器2604的4位输出上的在x上0、1、2或3位的有效移位。第二多路复用器2605根据y输入2601来将第一多路复用器2604的4位输出根据y输入移位0、4、8、或12位,从而产生16位多路复用器输出值2606。最后一个多路复用器2607根据z输入2602来将第二多路复用器2606的输出移位0、16、32或48位,从而在第三多路复用器2608的64位输出上对x、y和z上的体素的位置进行编码。除其他示例实施方式之外,第三多路复用器2608的输出可以通过2610与由64位整数2609表示的4^3体积的位图的先前值进行逻辑或运算,并且因此对体素位图2608的1位更新将出现在更新的64位位图中的正确位置,以便准备好将体积2611写回寄存器堆。
图27展示了根据一些实施例的用于生成6位地址三元组以控制多路复用器的逻辑,所述多路复用器执行体素插入、删除和检索(关于存在的检测)。在本示例中,要在稀疏体素树中插入、检索、测试等的体素的16位x、y和z地址被呈现给地址格式化逻辑2705作为紧缩的64位输入值2700,所述输入值由对应x、y和z中的每一个的三个16位地址后跟用于填充到64位的16个零的未使用字段组成。地址格式化逻辑1605由3个完全相同的选择框2706、2707和2708组成,所述选择框根据移位输入2704来从16位X、Y和Z地址中选择2位。然后将这三个两位地址xm(2712)、ym(2713)和zm(2714)地址应用于如图27和前一段落中的附随描述中所述的x、y和z多路复用器级别2715、2717和2719。
图28展示了根据一些实施例的地址选择逻辑,其用于从16位输入地址2802针对sel[3:0]输入2801指定的SVT级别来生成2位地址输出地址2824。可以根据真值表2825在二进制独热解码器2803中执行对4位sel[3:0]输入2801的解码。在独热解码器中,仅输出线l0至l6(2804至2810)之一可以在任何时间都为高而所有其他输出都为零。如果来自独热解码器2803的电平为高,则选择到当前多路复用器级别的输入地址对,否则选择来自前一多路复用器级别的输出。在多路复用器树中,第一级由解码器输出l6 2806控制,所述解码器输出如果为高,则控制多路复用器对2811以选择地址位对a1:a0如果为高,并且如果为低则选择a3:a2,其中,所选择的多路复用器输入对出现在输出对2812上,所述输出对进而连接到l5多路复用器对2813。多路复用器2813的第二级由选择线l5(2805)控制,所述选择线如果为高,则选择前一多路复用器对2812的输出,否则如果2805为低,则选择a5:a4地址对。解码以类似的方式继续,直到产生2位输出地址对[1:0]2824的最终多路复用器级2823。
转到图29,示出了表示,用于展示根据一些实施例的可以如何通过逻辑或运算来在X方向上对存储在64位整数2900中的3D体积对象进行投影以产生2D图案2901、在Y方向上进行投影以产生2D输出2902、并且最终在Z方向上进行投影以产生2903中所示的图案。图30展示了根据一些实施例的如何对来自输入64位整数的位进行逻辑或运算以在X、Y和Z上产生输出投影。在本示例中,表格3001逐列示出了来自输入向量3000的哪些元素索引被进行或运算以产生x投影输出向量3002。表格3003逐列示出了来自输入向量3000的哪些元素索引被进行或运算以产生y投影输出向量3004。最后,3005逐列示出了来自输入向量3000的哪些元素索引被进行或运算以产生z投影输出向量3006。
X投影对来自输入数据3000的位0、1、2、3进行逻辑或运算以产生X投影3001的位0。例如,3001中的位1可以通过对来自3000的位4、5、6和7进行或运算来产生,以此类推。类似地,Y投影3004中的位0可以通过对3000的位0、4、8和12一起进行或运算来产生。并且通过对3000的位1、5、9和13等一起进行或运算来产生3004的位1。最后,通过对3000的位0、16、32和48一起进行或运算来产生Z投影3006中的位0。并且可以通过对3000的位1、17、33和49一起进行或运算来产生3006的位1,以此类推。
图31示出了根据一些实施例的Z方向上的3D到2D投影的硬件组织。在这个特定示例中,所述硬件可以包括输入64位寄存器3100,其输出连接到十六个4输入或门3101、3102等的阵列,其中3101的输出连接到输出Z投影3104中的位0,3102的输出连接到3104中的位1,以此类推。通过使用投影硬件来组合跨X、Y或Z上的多个体素立方体的投影,可以针对完整的体积生成在X、Y或Z上的投影。另外,除其他示例之外,如果需要,则添加掩码逻辑以允许从逻辑或中屏蔽掉来自4^3立方体的1至4个级别将是简单的,因此在X/Y/Z投影中存在单个体素粒度。
图32示出了根据一些实施例的可以如何使用投影来生成简化地图的示例。在这种场景下,目标可以是从体素体积3202产生高度h 3201且宽度w 3201的运载工具3200沿着向下的路径的紧凑2D地图。这里,Y投影逻辑可以用于从体素体积3202生成初始粗略2D地图3203。在一些实施方式中,可以对地图进行处理以检查特定尺寸的特定运载工具(例如,汽车(或自主汽车)、无人机等)是否可以通过路径的宽度3201和高度约束3201。为了确保路径是可通过的,这可以通过以下方式来执行:通过在Z上执行投影以检查宽度约束3201,并且可以屏蔽Y上的投影以将计算限制到运载工具的高度3201。通过附加的后处理(例如,在软件中),可以看出,对于可通过并且满足宽度和高度约束的路径,仅沿着路径的点A 3204、B3205、C 3206、D 3207、E 3208和F 3209的X和Z坐标可以被存储或通过网络进行传输,以便完全重建运载工具可以沿着行驶的合法路径。假设路径可以被解析为这样的逐段分段,则可以以路径的每分段线性部分仅一个字节或两个字节来完全描述所述路径。除其他示例之外,这可以有助于这种路径数据的快速传输和处理(例如,通过自主车辆)。
作为使用LIDAR或其他昂贵手段进行精确测量的替代方案,图33展示了根据一些实施例的可以如何通过数学手段来聚合来自嵌入式设备的体积3D测量结果或简单2D测量结果以便生成高质量的众包地图。在所提出的系统中,多个嵌入式设备3300、3301等可以配备有能够进行测量的各种传感器,这些测量可以被传输到中央服务器3310。在服务器上运行的软件对所有测量结果3302执行聚合,并通过非线性求解器3303对所得矩阵执行数值求解,以产生高度准确的地图,所述地图然后可以被重新分配回嵌入式设备。实际上,数据聚合还可以包括来自卫星3320、空中LIDAR调查3321和陆地LIDAR测量3322的高准确度调查数据,以在这些高保真度数据集可用的情况下提高所得地图的准确度。在一些实施方式中,除其他示例实施方式之外,可以使用具有诸如本文所描述的格式的稀疏体素数据结构来生成、转换为或以其他方式表达所述地图和/或所记录的测量结果。
可以复制图31中的投影逻辑以产生X、Y和Z上的同步投影,或者可替代地当不需要同步投影时,图34中的简图示出了:在一些实施例中,可以如何在输入多路复用器级的控制下扩展图31中的逻辑以产生X、Y或Z上的投影,以便选择4个输入位的适当四边形以路由到图31中的这16个或门中的每一个。另外,在应用需要X、Y和Z投影的体素级准确度的情况下,可以使用一组64个与门来屏蔽掉位平面。出于相同保真度的原因,可以在图31的逻辑中复制这个掩码逻辑。3401是诸如掩码0、1、2或3等掩码,并且3400是与门。
图35是简图,示出了根据一些实施例的可以如何加速由2D位图生成直方图金字塔。可以通过对表示为示例体积数据结构的64位整数3500条目的2D二进制阵列的输入8×8位表示中的一的数量进行连续求和来计算直方图金字塔。直方图金字塔的第一级是通过对3500中的每个2×2位分组中的一的数量进行求和以产生3501中所示的十六个3位数字{0,1,2,3,4}来导出的。例如,64位值3504的位0、1、2和3(对应于350)可以由4×3位加法器3505来求和,以在I0_x寄存器3506中产生部分和。下一个4×3位加法器计算位4、5、6和7等的总和。十六个4×3位加法器的第一层的输出被紧缩到48位寄存器I0_x(也表示为3507)中。通过以下方式来计算直方图金字塔的下一级:使用8位加法器将寄存器I0_x(3505)中的部分乘积求和至3508,以对这四个3位部分和I0_0、I0_1、I0_2和I0_3进行求和,从而计算级别1的值I1_x(例如,3509),I1_x的元素被级联到也对应于3507的3517x中。最后级经由4×5位加法器树3510来将I1_x元素(例如,3509)求和到7位结果中。然后将3510的输出存储在与3503和3507相对应的寄存器3512中作为I2_0。除其他示例特征和实施方式之外,从易于使用的角度来看,从存储器映射的角度而言,这三个元素3514、3516和3507可以被紧缩成3518中所示的128位格式。
图36示出了根据一些实施例的可以如何加速由3D位图生成直方图金字塔。类似于图35的示例,示例体积数据结构(例如,3600、3601、3602、3603)的64位整数条目此次针对4^3 3D体积而不是8×8 2D体积进行编码。可以将3D体积缩小为由2个级别3604和3605、然后是3606组成的直方图金字塔。在图36的情况下,体积在3个维度上缩小2倍,而不是如图35的情况那样仅在2个维度上缩小。64位整数条目中的位可以如3610中所示地布置,并且由一行16个四位加法器3650至3655进行求和。第一个4位加法器3650对位0、1、4和5进行求和一直到第十六个加法器3655,所述第十六个加法器对3610的位58、59、62和63进行求和。然后,第二行的八个2×3位加法器3660至3665对4位加法器3650至3655的输出进行求和。例如,加法器3660对3650和3652的输出进行求和,并将结果存储在I1_0(3670)等中。最后,8×4位加法器树3614对I1_x元素3670至3675进行求和,并将结果存储在I2_0(3615)中。
图37是简图,示出了根据一些实施例的可以如何加速在2D 2×2位地图上的2D路径查找。操作原理是:对于完全相同的网格单元格的地图上的点之间存在的连接性,x或y或者x和y上的连续运行的单元格的值必须全部设置为一。因此,可以对从这些单元格中绘制的位的逻辑与进行实例化以测试网格中的位图是否存在有效路径,并且可以针对通过N×N网格的每个有效路径对不同的与门进行实例化。在一些实例中,这种方法可能引入组合复杂性,因为即使8×8 2D网格也可能包含264-1个有效路径。因此,在一些改进的实施方式中,可以将网格减少到可以被分层测试连接性的2×2或4×4个图块。2×2位图3700包含标记为b0、b1、b2和b3的4个位。这4个位可以采用具有相应的标记3701至3717的值0000至1111。这些位图案中的每一个表示标记为3721至3730的2×2网格的面之间的不同级别的连接性。例如,当2×2网格3700包含位图1010(3712)、1011(3713)、1110(3716)或1111(3717)时,存在表示3700中的x0与y0之间的竖直连接性的3721或v0。如表格3718的行1所示,3700中的2输入逻辑与或者b0和b3在连接性图中生成v0,所述v0可以在更高级别的硬件或软件中用于通过已经被细分为2×2子网格的全局网格来决定全局连接性。如果全局图在x轴或y轴上包含奇数个网格点,则顶级网格将需要填充到下一最高偶数个网格点(例如,使得将需要1个额外的零行添加到全局网格上的x轴和/或y轴)。图37进一步示出了示例性7×7网格3750,其示出了如何通过添加用零填充的附加行3732和列3734来将所述网格填充到8×8。为了与其他技术(例如,深度优先搜索、广度优先搜索或迪杰斯特拉算法或其他基于图形的方法)相比加速路径查找,本示例可以将N×N地图3750逐步二次下采样为2×2地图。例如,在本示例中,通过对3750中的单元格A、B、C和D的内容进行或运算来填充3740中的单元格W,以此类推。进而,对3740中的2×2单元格中的位进行或运算以填充3742中的单元格。在路径查找方面,算法从网格3742的最小2×2表示开始并对每个位进行测试。仅需要测试3740的4×4网格(由四个2×2网格组成)中的与2×2网格3742中的一位相对应的部分的连接性,因为我们知道零位意味着在3740中不存在相应的2×2网格单元格。这种方法还可以用于搜索3720中的8×8网格,例如,如果3740中的单元格W包含零,那么我们就知道在3720中的ABCD中不存在路径等。这种方法从所使用的图形搜索算法中修剪分支,所述图形搜索算法无论是A*、迪杰斯特拉、DFS、BFS还是其变体。除此之外,可以使用具有2×2组织3718的硬件基本路径查找器来进一步限制相关联的计算。实际上,可以使用具有与3740和3742相同的安排的五个2×2硬件块来组成4×4基本硬件元件,以进一步约束需要执行的图形搜索量。此外,针对潜在的任何N×N拓扑,可以利用具有与3742、3740、3700等相同的安排的二十一个2×2HW块(3718)来构造8×8基于硬件的搜索引擎。
图38示出了根据一些实施例的可以如何加速在3D 2×2×2位图上的3D路径查找。类似于图37的示例,N×N×N网格可以被填充为2的倍数(N必须为偶数),如3800中所示。可以将这个网格逐步二次采样为如3801中所示的4×4×4网格,并且最后成为3802中的2×2×2网格。与图37类似,每个2×2×2网格单元格(3802)中的单元格中存在或不存在一可以用于判定是否应该搜索4×4×4网格的任何区域,4×4×4网格中的单元格可以用于修剪8×8网格中的计算,以此类推,直到得到独立于用于搜索整个N×N×N网格的图形算法的完整N×N网格。在2×2×2网格级别处,2×2×2位图中的8个位被标记为v0至v7,如3803中所示。在3804中使用相同的颜色编码示出了与立方体的面的连接性。如通过3805中所示的2×2×2体积的路径查找器的连接性矩阵所示,连接性是对称的,因此只需要表示下三角形,因为从A到B的连接性与从B到A的连接性相同。此外,不必考虑沿对角线的元素,因为它们是隐含的。3806至3813中示出了3维中的连接性的等式,其中,各个部分示出了为了在2×2×2体积3803中的体素之间存在连接性而需要全部为一的位的等式。例如,为了存在v0与v1之间存在的连接性,位v0与v1必须都为“1”,为了存在v0与v2之间存在的连接性,v0与v2两者必须都为“1”,并且为了v0与v3之间存在的连接性,则v0、v1或v2、与v3必须都为“1”,以此类推,如真值表的部分3086中所示。根据这个组织,所示的等式可以在与-或逻辑电路系统中实施,以在8位位图3803上实施2×2×2路径查找,并在单个并行步骤中输出体素v0至v7之间的路径。进一步地,以类似于图37所示的方式,可以按照以3802与3801之间示出的方式互连的3805使用五个2×2×2HW路径查找器来构造4×4×4原始HW路径查找器。实际上,可以按照3802、3801和3800的连接性来实施连接一百三十七个2×2×2HW路径查找器的8×8×8HW路径查找器,以及其他示例。
图39是简化框图,示出了根据一些实施例的可以如何使用所提出的体积数据结构来加速碰撞检测。可以将几何结构的3D N×N×N图二次采样成如先前图38所示的由最低细节层次(LoD)2×2×2体积3802(3902)、下一个最高4×4×4体积3801(3901)、8×8×8体积3800(3900)、以此类推一直到N×N×N组成的金字塔。如果无人机、运载工具或机器人的位置3905在3D空间中经由诸如GPS等定位装置或经由根据3D地图的重新定位而已知,则其可以快速地用于通过适当地缩放(将它们除以2的相关倍数)无人机/机器人的x、y和z位置并且查询3902是否存在几何结构(例如,检查相应的位图位是否为指示可能的碰撞的一)来测试相关的2×2×2子体积的象限中的几何结构的存在或不存在。如果存在可能的碰撞(例如,得到“1”),则可以在体积3901、3900等中执行进一步检查以确立无人机/机器人是否可以移动。然而,如果3902中的体素是自由的(例如,“0”),则机器人/无人机可以将其解释为自由空间并且操纵方向控制以在地图的大部分中自由移动。
虽然本文所描述和展示的一些系统和解决方案已经被描述为包含多个元件或与多个元件相关联,但是并非所有明确展示或描述的元件都可以用于本公开的每个替代实施方式中。另外,本文所描述的一个或多个元件可以位于系统外部,而在其他实例中,某些元件可以包括在其他描述的元件以及未在所展示实施方式中描述的其他元件的一个或多个内或作为其一部分。进一步地,某些元件可以与其他组件组合以及用于除本文所描述的那些目的之外的替代或附加目的。
进一步地,应当理解,以上呈现的示例是仅出于说明某些原理和特征的目的而提供的非限制性示例,并且不一定限制或约束本文所描述的概念的潜在实施例。例如,可以利用本文所描述的特征和组件的各种组合、包括通过本文所描述的组件的各种实施方式实现的组合来实现各种不同的实施例。根据本说明书的内容应该理解其他实施方式、特征和细节。
图40至图45是根据本文公开的实施例可以使用的示例性计算机架构的框图。实际上,本文所描述的系统的计算设备、处理器、以及其他逻辑和电路系统可以并入功能以及用于实施这种功能的支持软件和/或硬件电路系统的全部或一部分。进一步地,除了这里示出的示例之外,还可以使用本领域中已知的用于处理器和计算系统的其他计算机架构设计。通常,用于本文公开的实施例的合适的计算机架构可以包括但不限于图40至图45中展示的配置。
图40展示了通过到对应网关的链路耦合的对应物联网(IoT)网络的示例域拓扑。物联网(IoT)是一种概念,在物联网中,大量的计算设备彼此互连并且互连至互联网以便在非常低的水平下提供功能和数据获取。因此,如本文所使用的,IoT设备可以包括半自主设备,其执行诸如感测或控制等功能,与其他IoT设备和更宽的网络(诸如互联网)通信。
通常,IoT设备在内存、大小或功能方面受到限制,从而允许针对与较少数量的较大型设备类似的成本来部署更大的数量。然而,IoT设备可以是智能电话、膝上型计算机、平板计算机、PC、或其他更大型设备。进一步地,IoT设备可以是虚拟设备,诸如智能电话或其他计算设备上的应用。IoT设备可以包括IoT网关,所述网关用于将IoT设备耦合至其他IoT设备和云应用,以用于数据存储、过程控制等。
IoT设备的网络可以包括商业和家庭自动化设备,诸如配水系统、配电系统、流水线控制系统、工厂控制系统、灯开关、恒温器、锁、相机、警报器、运动传感器等。可以通过远程计算机、服务器和其他系统来访问IoT设备,例如,以控制系统或访问数据。
互联网和类似网络的未来发展可能涉及到非常大量的IoT设备。因此,在本文所讨论的技术的上下文中,针对此类未来组网的大量创新将解决对以下方面的需要:所有这些层不受阻碍地增长;发现并制造可访问连接资源;以及支持隐藏和划分连接资源的能力。可以使用任何数量的网络协议和通信标准,其中,每个协议和标准被设计用于解决特定目标。进一步地,协议是支持人类可访问服务的结构的一部分,所述服务无论位置、时间或空间如何都运行。所述创新包括服务交付和相关联的基础设施,诸如如硬件和软件;安全增强;以及基于在服务级别和服务交付协议中规定的服务质量(QoS)条款提供服务。如将理解的,对IoT设备和网络(诸如在图40和图41中介绍的那些)的使用在包括有线技术和无线技术的组合的异构连接网络中提出了大量的新挑战。
图40具体提供了域拓扑的简化附图,所述域拓扑可以用于包括IoT设备4004的多个物联网(IoT)网络,其中,IoT网络4056、4058、4060、4062通过骨干链路4002耦合至对应的网关4054。例如,多个IoT设备4004可以与网关4054进行通信,并且可以通过网关4054彼此通信。为了简化附图,并非每个IoT设备4004或通信链路(例如,链路4016、4022、4028或4032)都被标记。骨干链路4002可以包括任何数量的有线或无线技术(包括光网络),并且可以是局域网(LAN)、广域网(WAN)或互联网的一部分。另外,这种通信链路促进IoT设备4004和网关4054两者之间的光学信号路径,包括使用促进各设备互连的复用/解复用组件。
网络拓扑可以包括任何数量类型的IoT网络,诸如使用蓝牙低功耗(BLE)链路4022与网络4056一起提供的网状网络。可能存在的其他类型的IoT网络包括:用于通过IEEE802.11链路4028与IoT设备4004进行通信的无线局域网(WLAN)网络4058、用于通过LTE/LTE-A(4G)或5G蜂窝网络与IoT设备4004进行通信的蜂窝网络4060、以及低功耗广域(LPWA)网络4062(例如,与由LoRa联盟颁布的LoRaWan规范兼容的LPWA网络、或与由互联网工程任务组(IETF)颁布的规范兼容的基于IPv6的低功耗广域网络(LPWAN)网络)。进一步地,对应的IoT网络可以使用任何数量的通信链路与外部网络提供商(例如,第2级或第3级提供商)进行通信,所述通信链路诸如LTE蜂窝链路、LPWA链路、或基于IEEE 802.15.4标准(比如)的链路。对应的IoT网络还可以使用各种网络和互联网应用协议来操作,诸如受限应用协议(CoAP)。对应的IoT网络还可以与协调器设备集成,所述协调器设备提供形成链接设备和网络的簇树的链路链。
这些IoT网络中的每一种都可以为新技术特征提供机会,诸如本文中所描述的那些。经改进的技术和网络可以实现设备和网络的指数增长,包括将IoT网络用作雾设备或系统。随着这种经改进技术的使用的增长,可以开发IoT网络以用于自我管理、功能演进和协作,而无需直接的人为干预。经改进的技术甚至可以使IoT网络能够在没有集中控制系统的情况下运行。因此,本文中所描述的改进技术可以用于自动化和增强远远超出当前实施方式的网络管理和操作功能。
在示例中,诸如通过骨干链路4002在IoT设备4004之间的通信可以由用于认证、授权和计费(AAA)的分散式系统保护。在分散式AAA系统中,可以跨互连的异构网络基础设施来实施分布式支付、信贷、审计、授权和认证系统。这允许系统和网络走向自主操作。在这些类型的自主操作中,机器甚至可以签订人力资源合同并与其他机器网络协商合作伙伴关系。这可以允许实现共同目标以及与概述的计划服务级别协议平衡的服务交付,并且实现提供计量、测量、可追溯性和可跟踪性的解决方案。创建新的供应链结构和方法可以实现创建大量服务、挖掘其价值并在没有任何人为参与的情况下瓦解。
通过将诸如声、光、电子交通、面部和模式识别、气味、振动等传感技术集成到IoT设备中的自主组织中,可以进一步增强这种IoT网络。感知系统的集成可以允许服务交付的系统性且自主的通信和协调,而不是基于合约性服务目标、编制和服务质量(QoS)的资源的云集和融合。基于网络的资源处理的单独示例中的一些包括以下内容。
例如,网状网络4056可以由执行内联数据到信息变换的系统来增强。例如,包括多链路网络的处理资源的自形成链可以以高效的方式分配原始数据到信息的变换、以及区分资产和资源以及每个的相关联管理的能力。此外,可以插入基础设施和基于资源的信任和服务索引的适当组件,以改善数据完整性、质量、保障并递送数据置信度度量。
例如,WLAN网络4058可以使用执行标准转换的系统来提供多标准连接,从而使得IoT设备4004能够使用不同协议进行通信。进一步的系统可以在包括可见互联网资源和隐藏互联网资源的多标准基础设施之间提供无缝互连。
例如,蜂窝网络4060中的通信可以通过卸载数据、将通信扩展到更远程的设备、或这两者的系统来增强。LPWA网络4062可以包括执行到IP的互连非互联网协议(IP)、寻址和路由的系统。进一步地,IoT设备4004中的每一个都可以包括用于与所述设备进行广域通信的适当收发机。进一步地,每个IoT设备4004可以包括用于使用附加协议和频率进行通信的其他收发机。关于图43和图43中描绘的IoT处理设备的通信环境和硬件来进一步讨论这一点。
最后,可以配备IoT设备集群以与其他IoT设备以及云网络进行通信。这可以允许IoT设备在设备之间形成自组织(ad-hoc)网络,从而允许它们用作单个设备,所述单个设备可被称为雾设备。以下关于图41来进一步讨论这种配置。
图41展示了与作为云计算网络边缘处的雾设备操作的网状网络的IoT设备(设备4102)进行通信的云计算网络。网状网络的IoT设备可以被称为雾4120,其在云4100的边缘处操作。为了简化附图,并非每个IoT设备4102都被标记。
雾4120可以被认为是大规模互连网络,在所述网络中,多个IoT设备4102例如通过无线电链路4122彼此通信。作为示例,可以使用由开放互联基金会TM(OCF)发布的互连规范来促进这种互连网络。这个标准允许设备发现彼此并建立互连通信。还可以使用其他互连协议,包括例如优化链路状态路由(OLSR)协议、移动自组织组网最佳方法(B.A.T.M.A.N.)路由协议、或OMA轻量级M2M(LWM2M)协议等。
在此示例中示出了三种类型的IoT设备4102,即网关4104、数据聚合器4126和传感器4128,但是可以使用IoT设备4102和功能的任何组合。网关4104可以是提供云4100与雾4120之间的通信的边缘设备,并且还可以为从传感器4128获得的数据(诸如运动数据、流数据、温度数据等)提供后端处理功能。数据聚合器4126可以从任何数量的传感器4128收集数据,并且执行后端处理功能以进行分析。可以通过网关4104沿着云4100传递结果、原始数据或两者。传感器4128可以是例如既能收集数据又能处理数据的全IoT设备4102。在一些情况下,传感器4128可能在例如收集数据并允许数据聚合器4126或网关4104处理所述数据的功能上更受限制。
来自任何IoT设备4102的通信可以沿着任何IoT设备4102之间的方便路径(例如,最方便的路径)被传递以到达网关4104。在这些网络中,许多互连提供了大量冗余,即使丢失了许多IoT设备4102,也允许维持通信。进一步地,网状网络的使用可以允许使用功率非常低或者位于距基础设施一定距离处的IoT设备4102,因为连接至另一IoT设备4102的范围可能远小于连接至网关4104的范围。
从这些IoT设备4102提供的雾4120可以被呈现给云4100中的设备,诸如服务器4106,作为位于云4100的边缘处的单个设备(例如雾设备)。在此示例中,来自雾设备的警报可以被发送而不会被识别为是来自雾4120内的特定IoT设备4102。以这种方式,雾4120可以被认为是分布式平台,所述分布式平台提供计算和存储资源以执行处理或数据密集型任务,诸如数据分析、数据聚合和机器学习等。
在一些示例中,可以使用命令式编程风格来配置IoT设备4102,例如,其中每个IoT设备4102具有特定功能和通信伙伴。然而,形成雾设备的IoT设备4102可以以声明性编程风格来配置,从而允许IoT设备4102重新配置其操作和通信,诸如响应于条件、查询和设备故障来确定所需的资源。作为示例,来自位于服务器4106处的用户关于由IoT设备4102监测的设备子集的操作的查询可以使得雾4120设备选择用于回答查询所需的IoT设备4102,诸如特定传感器4128。然后,在由雾4120设备将来自这些传感器4128的数据发送至服务器4106以回答查询之前,可以通过传感器4128、数据聚合器4126或网关4104的任何组合对所述数据进行聚合和分析。在此示例中,雾4120中的IoT设备4102可以基于查询来选择所使用的传感器4128,诸如添加来自流量传感器或温度传感器的数据。进一步地,如果IoT设备4102中的一些不可操作,则雾4120设备中的其他IoT设备4102可以提供类似数据(如果可用的话)。
在其他示例中,根据示例实施例,上述操作和功能可以由采用电子处理系统的示例形式的IoT设备机器来实施,在所述电子处理系统可以执行一组或一系列指令以使所述电子处理系统执行本文所讨论的方法论中的任一种方法。所述机器可以是IoT设备或IoT网关,包括由个人计算机(PC)、平板PC、个人数字助理(PDA)、移动电话或智能电话的各方面实施的机器、或者能够执行指定所述机器采取动作的指令(顺序的或以其他方式)的任何机器。进一步地,虽然在以上示例中可能仅描绘和参考了单个机器,但是这样的机器还应当被视为包括机器的任何集合,所述机器独立地或联合地执行一组(或多组)指令以便执行本文所讨论的方法中的任何一种或多种方法。进一步地,这些以及与基于处理器的系统相似的示例应当被视为包括一个或多个机器的任何集合,所述一个或多个机器被处理器(例如,计算机)控制或操作以独立地或联合地执行指令从而执行本文所讨论的方法论中的任何一种或多种方法。在一些实施方式中,一个或多个多重设备可以协同操作以实施功能并执行本文所描述的任务。在一些情况下,一个或多个主机设备可以供应数据、提供指令、聚合结果、或以其他方式促进由多重设备提供的联合操作和功能。虽然当由单个设备实施时,功能可以被认为是设备本地的功能,但是在多重设备作为单个机器进行操作的实施方式中,功能可以统一被认为是设备本地的,并且这个设备集合可以提供或消耗由其他远程机器(实施为单个设备或设备集合)提供的结果,以及其他示例实施方式。
例如,图42展示了与多个物联网(IoT)设备进行通信的云计算网络或云4200的图。云4200可以表示互联网,或者可以是局域网(LAN)、或广域网(WAN),诸如公司的专有网络。IoT设备可以包括以各种组合分组的任何数量的不同类型的设备。例如,交通控制组4206可以包括沿着城市街道的IoT设备。这些IoT设备可以包括交通信号灯、交通流量监测器、相机、天气传感器等。交通控制组4206或其他子组可以通过有线或无线链路4208(诸如LPWA链路、光学链路等)与云4200通信。进一步地,有线或无线子网络4212可以允许IoT设备彼此通信,诸如通过局域网、无线局域网等。IoT设备可以使用诸如网关4210或4228等另一设备来与诸如云4200等远程位置进行通信;IoT设备还可以使用一个或多个服务器4230来促进与云4200或网关4210的通信。例如,所述一个或多个服务器4230可以作为中间网络节点进行操作,以支持局域网当中的本地边缘云或雾实施。进一步地,所描绘的网关4228可以在云到网关到多边缘设备配置中进行操作,诸如各种IoT设备4214、4220、4224被约束或动态地分配和使用云4200中的资源。
IoT设备的其他示例分组可以包括远程气象站4214、本地信息终端4216、警报系统4218、自动柜员机4220、警报面板4222、或移动车辆,诸如应急车辆4224或其他车辆4226等。这些IoT设备中的每一个都可以与其他IoT设备、与服务器4204、与另一个IoT雾设备或系统(未示出,但在图41中进行描绘)、或其中的组合进行通信。IoT设备组可以部署在各种住宅、商业和工业背景中(包括私人环境或公共环境两者中)。
如从图42中可以看出,大量IoT设备可以通过云4200进行通信。这可以允许不同的IoT设备自主地向其他设备请求或提供信息。例如,IoT设备组(例如,交通控制组4206)可以从远程气象站组4214请求当前天气预报,所述远程气象站组可以在没有人为干预的情况下提供预测。进一步地,可以由自动柜员机4220向应急车辆4224警告正在发生盗窃。当应急车辆4224朝向自动柜员机4220前进时,其可以访问交通控制组4206以请求准许到达所述位置,例如,通过使灯变为红色以在交叉路口阻止交叉车流足够的时间从而使应急车辆4224无阻碍地进入交叉路口。
诸如远程气象站4214或交通控制组4206等IoT设备集群可以被配备成与其他IoT设备以及与云4200进行通信。这可以允许IoT设备在设备之间形成自组织网络,从而允许它们用作单个设备,所述单个设备可被称为雾设备或系统(例如,如上文关于图41所描述的)。
图43是可以存在于IoT设备4350中以用于实施本文描述的技术的组件的示例的框图。IoT设备4350可以包括示例中示出的或在以上公开中引用的组件的任何组合。这些组件可以被实施为IC、其多个部分、分立电子设备、或在IoT设备4350中适配的其他模块、逻辑、硬件、软件、固件、或其组合,或者作为以其他方式并入较大系统的机箱内的组件。另外,图43的框图旨在描绘IoT设备4350的组件的高级视图。然而,可以省略所示组件中的一些组件、可以存在附加的组件、并且在其他实施方式中可以出现所示组件的不同安排。
IoT设备4350可以包括处理器4352,所述处理器可以是微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或其他已知的处理元件。处理器4352可以是芯片上系统(SoC)的一部分,其中处理器4352和其他组件形成为单个集成电路或单个封装体,诸如来自Intel的EdisonTM或GalileoTMSoC板。作为示例,处理器4352可以包括基于架构核心TM的处理器,诸如QuarkTM、AtomTM、i3、、i5、i7或MCU级处理器,或者可从加利福尼亚州圣克拉拉市的公司获得的另一此类处理器。然而,可以使用任何数量的其他处理器,诸如可从加利福尼亚州森尼维耳市的超威半导体公司(Advanced MicroDevices,Inc.,AMD)获得的、来自加利福尼亚州森尼维耳市的MIPS科技公司的基于MIPS的设计、由ARM控股有限公司或其客户或其许可证持有人或采用者许可的基于ARM的设计。处理器可以包括诸如来自公司的A5-A10处理器,来自科技公司的SnapdragonTM处理器、或来自德州仪器公司的OMAPTM处理器之类的单元。
处理器4352可以通过互连4356(例如,总线)与系统存储器4354通信。可以使用任何数量的存储器设备来提供给定量的系统内存。作为示例,存储器可以是符合电子器件工程联合委员会(JEDEC)设计(诸如DDR或移动DDR标准(例如,LPDDR、LPDDR2、LPDDR3或LPDDR4))的随机存取存储器(RAM)。在各实施方式中,各个存储器设备可以是任何数量的不同封装体类型,诸如单管芯封装体(SDP)、双管芯封装体(DDP)或四管芯封装体(Q17P)。在一些示例中,这些设备可以直接焊接到母板上以提供较低轮廓的解决方案,而在其他示例中,这些设备被配置为一个或多个存储器模块,这些存储器模块进而通过给定的连接器耦合到母板。可以使用任何数量的其他存储器实施方式,诸如其他类型的存储器模块,例如,不同种类的双列直插式存储器模块(DIMM),包括但不限于microDIMM或MiniDIMM。
为了提供对诸如数据、应用、操作系统等信息的持久存储,存储装置4358也可以经由互连4356耦合至处理器4352。在示例中,存储装置4358可以经由固态盘驱动器(SSDD)来实施。可用于存储装置4358的其他设备包括闪存卡(诸如SD卡、微型SD卡、xD图片卡等)、以及USB闪存驱动器。在低功率实施方式中,存储装置4358可以是管芯上存储器或与处理器4352相关联的寄存器。然而,在一些示例中,存储装置4358可以使用微型硬盘驱动器(HDD)来实施。进一步地,除了所描述的技术之外或者代替所述技术,任何数量的新技术可以用于存储装置4358,诸如阻变存储器、相变存储器、全息存储器或化学存储器等。
这些组件可以通过互连4356进行通信。互连4356可以包括任何数量的技术,包括工业标准架构(ISA)、扩展ISA(EISA)、外围组件互连(PCI)、外围组件互连扩展(PCIx)、PCIExpress(PCIe)、或任何数量的其他技术。互连4356可以是例如在基于SoC的系统中使用的专有总线。可以包括其他总线系统,诸如I2C接口、SPI接口、点对点型接口、以及电源总线等。
互连4356可以将处理器4352耦合至网状收发机4362以用于与其他网状设备4364通信。网状收发机4362可以使用任何数量的频率和协议,诸如符合IEEE 802.15.4标准的2.4千兆赫(GHz)传输,使用如由特别兴趣小组定义的低功耗(BLE)标准或标准等。为特定无线通信协议配置的任何数量的无线电可以用于与网状设备4364的连接。例如,WLAN单元可以用于根据电气和电子工程师协会(IEEE)802.11标准来实施Wi-FiTM通信。此外,经由WWAN单元可以发生(例如,根据蜂窝或其他无线广域协议的)无线广域通信。
网状收发机4362可以使用多个标准或无线电进行通信以用于不同范围的通信。例如,IoT设备4350可以使用基于BLE的本地收发机或另一低功率无线电与接近设备(例如,在大约10米内)进行通信以节省功率。可以通过ZigBee或其他中间功率无线电到达更远的网状设备4364,例如,在大约50米内。这两种通信技术可以以不同的功率水平在单个无线电上发生,或者可以在单独的收发机(例如,使用BLE的本地收发机和使用ZigBee的单独网状收发机)上发生。
可以包括无线网络收发机4366以便经由局域网协议或广域网协议与云4300中的设备或服务进行通信。无线网络收发机4366可以是遵循IEEE 802.15.4或IEEE 802.15.4g标准等的LPWA收发机。IoT设备4350可以使用由Semtech和LoRa联盟开发的LoRaWANTM(长距离广域网)在广泛区域上进行通信。本文中所描述的技术不限于这些技术,而是可以与实施长距离低带宽通信的任何数量的其他云收发机一起使用,诸如Sigfox及其他技术。进一步地,可以使用IEEE 802.15.4e规范中描述的其他通信技术,诸如时隙信道跳变。
除了针对网状收发机4362和无线网络收发机4366所提到的系统之外,还可以使用任何数量的其他无线电通信和协议,如本文所述。例如,无线电收发机4362和4366可以包括使用扩频(SPA/SAS)通信以实施高速通信的LTE或其他蜂窝收发机。进一步地,可以使用任何数量的其他协议,诸如用于中速通信和提供网络通信的网络。
无线电收发机4362和4366可以包括与任何数量的3GPP(第三代合作伙伴计划)规范兼容的无线电,特别是长期演进(LTE)、长期演进-高级(LTE-A)和长期演进-高级专业版(LTE-A Pro)。可以注意到,可以选择与任何数量的其他固定、移动或卫星通信技术和标准兼容的无线电。这些可以包括例如任何蜂窝广域无线电通信技术,其可以包括例如第5代(5G)通信系统、全球移动通信系统(GSM)无线电通信技术、通用分组无线电服务(GPRS)无线电通信技术、或GSM演进增强数据速率(EDGE)无线电通信技术、UMTS(通用移动电信系统)通信技术,除了上面列出的标准之外,无线网络收发器4366可以使用任何数量的卫星上行链路技术,包括例如符合由ITU(国际电信联盟)或ETSI(欧洲电信标准协会)发布的标准的无线电等。因此,本文提供的示例被理解为适用于现有的和尚未发布的各种其他通信技术。
可以包括网络接口控制器(NIC)4368以向云4300或其他设备(诸如网状设备4364)提供有线通信。有线通信可以提供以太网连接,或者可以基于其他类型的网络,诸如控制器区域网络(CAN)、本地互连网络(LIN)、设备网(DeviceNet)、控制网(ControlNet)、数据高速通道+、过程现场总线(PROFIBUS)或过程现场网(PROFINET)等。可以包括附加NIC 4368以允许连接至第二网络,例如,通过以太网提供到云的通信的NIC 4368、以及通过另一种类型的网络提供到其他设备的通信的第二NIC 4368。
互连4356可以将处理器4352耦合至外部接口4370,所述外部接口用于连接外部设备或子系统。外部设备可以包括传感器4372,诸如加速度计、水平传感器、流量传感器、光学光传感器、相机传感器、温度传感器、全球定位系统(GPS)传感器、压力传感器、气压传感器等。外部接口4370可以进一步用于将IoT设备4350连接至致动器4374,诸如电源开关、阀致动器、可听声音发生器、可视化警告设备等。
在一些可选示例中,各种输入/输出(I/O)设备可以存在于IoT设备4350内或连接至所述IoT设备。例如,可以包括显示器或其他输出设备4384以显示诸如传感器读数或致动器位置等信息。可以包括诸如触摸屏或小键盘等输入设备4386以接受输入。输出设备4384可以包括任何数量形式的音频或可视化显示器,包括简单的可视化输出(诸如二进制状态指示器(例如,LED)和多字符可视化输出)、或者更复杂的输出(诸如显示屏(例如,LCD屏幕)),其中,字符、图形、多媒体对象等的输出是根据IoT设备4350的操作生成或产生的。
电池4376可以为IoT设备4350供电,但是在IoT设备4350安装在固定位置的示例中,所述电池可具有耦合至电网的电源。电池4376可以是锂离子电池或金属-空气电池,诸如锌-空气电池、铝-空气电池、锂-空气电池等。
电池监测器/充电器4378可以包括在IoT设备4350中以跟踪电池4376的充电状态(SoCh)。电池监测器/充电器4378可以用于监测电池4376的其他参数,以提供故障预测,诸如电池4376的健康状态(SoH)和功能状态(SoF)。电池监测器/充电器4378可以包括电池监测集成电路,诸如来自凌力尔特公司(Linear Technologies)的LTC4020或LTC2990、来自美国亚利桑那州凤凰城的安森美半导体公司(ON Semiconductor)的ADT7488A、或来自德克萨斯州达拉斯的德州仪器的UCD90xxx系列的IC。电池监测器/充电器4378可以通过互连4356将关于电池4376的信息传送至处理器4352。电池监测器/充电器4378还可以包括模数(ADC)转换器,所述模数转换器允许处理器4352直接监测电池4376的电压或来自电池4376的电流。电池参数可以用于确定IoT设备4350可执行的动作,诸如传输频率、网状网络操作、感测频率等。
电源块4380或耦合至电网的其他电源可以与电池监测器/充电器4378耦合以对电池4376进行充电。在一些示例中,电源块4380可以用无线功率接收器来代替,以例如通过IoT设备4350中的环形天线无线地获得功率。无线电池充电电路(诸如来自加利福尼亚州米尔皮塔斯的凌力尔特公司的LTC4020芯片等)可以包括在电池监测器/充电器4378中。所选择的特定充电电路取决于电池4376的尺寸,并且因此取决于所需的电流。可以使用由Airfuel联盟颁布的Airfuel标准、由无线电力联盟(Wireless Power Consortium)颁布的Qi无线充电标准、或由无线电力联盟颁布的Rezence充电标准来执行充电。
存储装置4358可以包括采用软件、固件或硬件命令形式以实施本文所述的技术的指令4382。虽然这种指令4382被示出为存储器4354和存储装置4358中所包括的代码块,但是可以理解的是,所述代码块中的任一个都可以利用例如内置在专用集成电路(ASIC)中的硬连线电路来代替。
在示例中,经由存储器4354、存储装置4358或处理器4352提供的指令4382可以被实施为非暂态机器可读介质4360,包括用于引导处理器4352在IoT设备4350中执行电子操作的代码。处理器4352可以通过互连4356访问非暂态机器可读介质4360。例如,非暂态机器可读介质4360可以由针对图43的存装置4358描述的设备来体现,或者可以包括特定的存储单元,诸如光盘、闪存驱动器或任何数量的其他硬件设备。非暂态机器可读介质4360可以包括用于引导处理器4352执行特定动作序列或动作流的指令,例如,如关于上述操作和功能的(多个)流程图和(多个)框图所描述的。
图44是根据实施例的处理器的示例图示。处理器4400是可以结合上述实施方式使用的一类硬件设备的示例。处理器4400可以是任何类型的处理器,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、多核处理器、单核处理器、或执行代码的其他设备。尽管在图44中仅展示了一个处理器4400,但是处理元件可以可替代地包括图44中展示的多于一个处理器4400。处理器4400可以是单线程核,或者针对至少一个实施例,处理器4400可以是多线程的,因为其可以包括每核多于一个硬件线程上下文(或者“逻辑处理器”)。
图44还展示了根据实施例的耦合至处理器4400的存储器4402。存储器4402可以是本领域技术人员已知或另外可用的广泛存储器(包括存储器层次结构中的各个层)中的任何一种。这种存储器元件可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA)的逻辑块、可擦除可编程只读存储器(EPROM)和电可擦除可编程ROM(EEPROM)。
处理器4400可以执行与本文详细描述的算法、过程或操作相关联的任何类型的指令。通常,处理器4400可以将元件或物件(例如,数据)从一个状态或事物变换为另一种状态或事物。
代码4404(其可以是待由处理器4400执行的一条或多条指令)可以存储在存储器4402中,或者可以存储在软件、硬件、固件、或其任何合适的组合中,或者(在合适的情况下并基于具体需要)存储在任何其他内部或外部组件、设备、元件或对象中。在一个示例中,处理器4400可以遵循代码4404所指示的程序指令序列。每条指令进入前端逻辑4406并由一个或多个解码器4408处理。所述解码器可以生成微操作作为其输出,如预定格式的固定宽度微输出,或者可以生成其他指令、微指令、或反映原始代码指令的控制信号。前端逻辑4406还包括寄存器重命名逻辑4410和调度逻辑4412,后者一般给资源和队列分配对应于用于执行的指令的操作。
处理器4400还可以包括具有一组执行单元4416a、4416b、4416n等的执行逻辑4414。一些实施例可以包括专用于特定功能或功能集合的大量执行单元。其他实施例可以包括仅一个执行单元、或可以执行特定功能的一个执行单元。执行逻辑4414执行由代码指令所指定的操作。
在完成执行由代码指令指定的操作后,后端逻辑4418可以引退代码4404的指令。在一个实施例中,处理器4400允许乱序执行但要求指令的按顺序引退。引退逻辑4420可以采取各种已知形式(例如,重排序缓存器等)。以这种方式,在代码4404执行的过程中处理器4400被变换,至少依据解码器所生成的输出、寄存器重命名逻辑4410所利用的硬件寄存器和表格、以及经执行逻辑4414修改的任何寄存器(未示出)。
尽管未在图44中示出,但是处理元件可以包括具有处理器4400的其他片上元件。例如,处理元件可以包括存储器控制逻辑以及处理器4400。处理元件可以包括I/O控制逻辑和/或可以包括与存储器控制逻辑集成的I/O控制逻辑。处理元件还可以包括一个或多个高速缓存。在一些实施例中,非易失性存储器(诸如,闪存或熔丝)也可以与处理器4400一起被包括在芯片上。
图45展示了根据实施例的被安排为点对点(PtP)配置的计算系统4500。具体地,图45示出了一种系统,在所述系统中,处理器、存储器以及输入/输出设备通过许多点对点接口互连。通常,可以采用与计算系统4500相同或类似的方式来配置本文所描述的计算系统中的一个或多个。
处理器4570和4580可以各自包括用于与存储器元件4532和4534进行通信的集成存储器控制器逻辑(MC)4572和4582。在替代实施例中,存储器控制器逻辑4572和4582可以是与处理器4570和4580分开的分立逻辑。存储器元件4532和/或4534可以存储要由处理器4570和4580用于实现本文所概述的操作和功能的各种数据。
处理器4570和4580可以是任何类型的处理器,诸如结合其他附图所讨论的那些处理器。处理器4570和4580可以分别使用点对点(PtP)接口电路4578和4588经由点对点接口4550来交换数据。处理器4570和4580中的每一个处理器可以使用点对点接口电路4576、4586、4594和4598经由单独的点对点接口4552和4554来与芯片组450交换数据。芯片组4590还可以使用接口电路4592(这可以是PtP接口电路)经由高性能图形接口4539与高性能图形电路4538交换数据。在替代实施例中,图45所展示的任何或所有PtP链路可以被实施为多点分支总线而非有PtP链路。
芯片组4590可以经由接口电路4596与总线4520通信。总线4520可以具有一个或多个通过所述总线进行通信的设备,如总线桥接器4518和I/O设备4516。经由总线4510,总线桥接器4518可以与其他设备通信,诸如用户接口4512(诸如键盘、鼠标、触摸屏、或其他输入设备)、通信设备4526(诸如调制解调器、网络接口设备、或其他类型的可以通过计算机网络4560通信的通信设备)、音频I/O设备4514、和/或数据存储设备4528。数据存储设备4528可以存储代码4530,所述代码可以由处理器4570和/或4580执行。在替代实施例中,总线架构的任何部分用一个或多个PtP链路实施。
图45中描绘的计算机系统是可以用于实施在此讨论的各个实施例的计算系统的实施例的示意图。将理解的是,图45中所描绘的系统的各个部件可以结合在片上系统(SoC)架构中或者在能够实现本文所提供的示例和实施方式的功能和特征的任何其他合适的配置中。
在进一步的示例中,机器可读介质还包括任何有形介质,所述有形介质能够存储、编码或携带用于由机器执行并使所述机器执行本公开的方法中的任何一个或多个的指令,或者所述有形介质能够存储、编码或携带由这样的指令利用或与这样的指令相关联的数据结构。“机器可读介质”因此可以包括但不限于固态存储器、以及光学介质和磁性介质。机器可读介质的特定示例包括非易失性存储器,所述非易失性存储器通过示例的方式包括但不限于半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存装置;磁盘,如内置硬盘和可移除磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。可以利用多个传输协议(例如,HTTP)中的任一种协议、经由网络接口设备、使用传输介质、通过通信网络来进一步发射或接收由机器可读介质体现的指令。
应当理解,本说明书中所描述的功能单元或能力可以被称为或标记为部件或模块,以更加特别地强调其实施独立性。这些部件可以由任何数量的软件或硬件的形式实施。例如,部件或模块可以被实施为硬件电路,所述硬件电路包括定制超大规模集成(VLSI)电路或门阵列、现货供应的半导体,如逻辑芯片、晶体管、或其他分立部件。部件或模块还可以在如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等可编程硬件装置中实施。部件或模块还可以在由各种类型的处理器执行的软件中实施。可执行代码的所标识部件或模块可以包括例如计算机指令的一个或多个物理块或逻辑块,所述物理块或逻辑块可以被组织为例如对象、程序或函数。然而,所标识部件或模块的可执行部分不需要物理上定位在一起,而是可以包括存储在不同位置的不同指令,这些指令当被逻辑地连接在一起时包括所述部件或模块并且实现所述部件或模块的所阐述的目的。
实际上,可执行代码的部件或模块可以是单个指令,或许多指令,并且甚至可分布在若干不同代码段中、在不同程序之间、并且跨越若干存储器装置或处理系统。具体地,所描述的过程的一些方面(如代码重写和代码分析)可以在不同的处理系统上(例如,在数据中心中的计算机中)发生,而不是在其中部署代码的处理系统上(例如,在嵌入传感器或机器人中的计算机中)。类似地,本文中操作数据可以在部件或模块内被标识和展示,并且可以以任何合适的形式体现并且组织在任何合适类型的数据结构中。操作数据可以被收集为单个数据集,或者可以分布在不同位置上,包括分布在不同的存储设备上,并且可以至少部分地仅作为电子信号存在于系统或网络上。所述部件或模块可以是被动或主动的,包括可操作以执行期望功能的代理。
目前所描述的方法、系统和设备实施例的附加示例包括以下非限制性配置。以下非限制性示例中的每个示例可以独立存在,或者可以任何枚举或组合与在下文或在整个本公开中提供的其他示例中的任何一个或多个示例进行组合。
尽管已经根据某些实施方式和总体上相关联的方法描述了本公开,但是这些实施方式和方法的替代方案和置换对于本领域技术人员而言将是显而易见的。例如,本文所描述的动作可以以与所描述的不同顺序来执行,并且仍然实现期望的结果。作为一个示例,在附图中描绘的过程不一定需要所示出的特定顺序或相继顺序来实现期望结果。在某些实施方式中,多重任务处理和并行处理可能是有利的。另外,可以支持其他用户接口布局和功能。其他变体处于以下权利要求的范围内。
尽管本说明书包含许多特定实施方式细节,但是这些细节不应被解读为是对任何发明或者可能要求保护的内容的范围的限制,而应被解读为是对具体发明的具体实施例特有的特征的描述。在单一实施例的背景下在本说明书中所描述的某些特征还可以组合地实施在单个实施例中。相反,在单一实施例的上下文中描述的各个特征也可以被单独地或以任何适合的子组合的方式实施在多个实施例中。而且,虽然特征在上文可以被描述为以某些组合起作用并且甚至如此最初被要求,但来自所要求保护的组合的一个或多个特征在某些情况下可以与组合离体,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然附图中以具体顺序描绘了操作,但这不应被理解成要求这种操作以所示出的具体顺序或以有序顺序执行,或者所有展示的操作可以被执行,以实现令人希望的结果。在某些情况下,多重任务处理和并行处理可能是有利的。而且,上述实施例中的不同系统部件的分离不应被理解成在所有实施例中都要求这种分离,并且应理解的是,所描述的程序部件和系统通常可以一起整合在单个软件产品中或封装进多个软件产品中。
以下示例涉及根据本说明书的实施例。示例1是一种机器可访问存储介质,具有存储于其上的指令,当在机器上执行这些指令时,这些指令使机器用于:从存储器获取体积数据结构,其中,体积数据结构用于对特定体积建模,体积数据结构以多个细节层次表示特定体积,体积数据结构中的第一条目包括以第一细节层次表示体素的第一组位,第一细节层次包括体积数据结构中的最低细节层次,第一组位的值指示体素中的相应的一个体素是否至少部分地由对应的几何结构占据,其中,体积数据结构进一步包括以高于第一细节层次的第二细节层次表示体素的多个第二条目,处于第二细节层次的体素表示由处于第一细节层次的体素表示的体积的子体积,并且第二条目的数量与第一组位中具有指示相应的体素体积被占据的值的位的数量相对应;以及处理体积数据结构来执行一个或多个操作,其中,操作与在特定体积内对几何结构的识别相对应。
示例2可包括示例1的主题的至少一部分,其中,第一条目以及一个或多个第二条目包括体积数据结构内的连续条目。
示例3可包括示例2的主题的至少一部分,其中,子体积包括第一子体积,第二条目包括用于指示处于第二细节层次的相应体素是否由几何结构占据的值,该体积数据结构进一步包括一个或多个第三条目,该一个或多个第三条目以高于第二细节层次的第三细节层次表示体素,处于第三细节层次的体素表示由处于第二细节层次的体素表示的第一子体积的子体积,并且第三条目的数量与第二组位中具有指示相应的体素体积被占据的值的位的数量相对应,其中,第三条目与体积数据结构中的第二条目中的最后一个第二条目是连续的。
示例4可包括示例3的主题的至少一部分,其中,指令当被执行时进一步使机器:基于第一组位中具有指示处于第一细节层次的相应体素体积被占据的值的位的数量来确定第三层次的开始。
示例5可包括示例1-4中的任一示例的主题的至少一部分,其中,处于第一细节层次的每个体素由第一条目中的两个或更多个对应的位来表示。
示例6可包括示例1-5中的任一示例的主题的至少一部分,其中,指令当被执行时进一步使机器:确定与特定体积相交的光线;确定处于第一细节层次的体素的、光线穿过其的子集;以及基于第一条目中指示特定体素由几何结构占据的相应位的值来确定光线与表示被占据的空间的体素的子集中的特定体素相遇。
示例7可包括示例6的主题的至少一部分,其中,指令当被执行时进一步使机器:基于确定了光线与特定体素相遇而标识第二条目中与特定体素相对应的特定的一个第二条目;确定光线穿过处于第二细节层次的体素的子集;以及从特定的第二条目中的位的值来判定光线是否与处于第二细节层次的由几何结构占据的体素相遇。
示例8可包括示例6的主题的至少一部分,其中,操作包括:至少部分地基于判定了光线与特定体素相遇而检测移动设备的潜在碰撞。
示例9可包括示例6的主题的至少一部分,其中,操作包括:确定与光线同所述特定体素相遇相对应的音频反射。
示例10可包括示例9的主题的至少一部分,其中,体积数据结构进一步包括指示占据特定体素的几何结构的反射系数的数据,并且音频反射至少部分地基于反射系数。
示例11可包括示例9-10中的任一示例的主题的至少一部分,其中,指令当被执行时进一步使机器:至少部分地基于确定了音频反射来生成有限脉冲响应(FIR)滤波器。
示例12可包括示例1-11中的任一示例的主题的至少一部分,其中,操作包括识别特定体积中的空体素的集合,并且指令当被执行时进一步使机器:确定穿过与空体素的集合相对应的特定体积的自由路径。
示例13可包括示例12的主题的至少一部分,其中,自由路径包括三维(3D)自由路径,并且指令当被执行时进一步使机器:将3D自由路径转换为二维(2D)自由路径表示;以及生成描述2D自由路径表示的2D路径地图数据。
示例14可包括示例1-13中的任一示例的主题的至少一部分,其中,操作包括卷积神经网络(CNN)中定义的操作,并且指令当被执行时进一步使机器:提供体积数据结构作为对CNN的特定层的输入,其中,操作包括与特定层相关联的一个或多个算术操作。
示例15可包括示例14的主题的至少一部分,其中,二进制“0”值用于指示体积数据结构的条目中的空体素,并且指令当被执行时进一步使机器:确定具有被表示为体积数据结构中的空白空间的、特定体积中的空白空间的体素的子集;以及省略与表示体积数据结构中的体素的子集的位相对应的算术操作。
示例16可包括示例15的主题的至少一部分,其中,指令当被执行时进一步使机器:省略用于与表示体素的子集的位相乘的权重值的取出。
示例17可包括示例15-16中的任一示例的主题的至少一部分,其中,指令当被执行时进一步使机器:基于体积数据结构中的二进制“0”值生成位图,并且算术操作基于该位图而被省略。
示例18可包括示例1-17中的任一示例的主题的至少一部分,其中,指令当被执行时进一步使机器:识别特定体积内的几何结构的改变;以及修改条目的相应位以反映几何结构的改变。
示例19可包括示例1-18中的任一示例的主题的至少一部分,其中,体积数据结构中的每个条目包括长度为64位的条目。
示例20可包括示例19的主题的至少一部分,其中,处于第一细节层次的体素包括64个体素,并且对于第一细节层次中的每个体素,处于第二细节层次的体素包括64个体素。
示例21可包括示例1-20中的任一示例的主题的至少一部分,其中,操作包括:以二维图形呈现渲染具有特定体积的几何结构用于在显示设备上显示。
示例22是一种机器可访问存储介质,具有存储于其上的指令,当在机器上执行这些指令时,这些指令使机器用于:获取数据,该数据描述存在于特定体积内的三维几何结构的至少一部分;以及将数据转换为体积数据结构,其中,体积数据结构用于对特定体积建模,体积数据结构以多个细节层次表示特定体积,体积数据结构中的第一条目包括在特定体积内以第一细节层次表示所有体素的第一组位,第一细节层次包括多个细节层次中的最低层次,第一组位中的每个位的值指示处于第一细节层次的体素中的相应的一个体素是否至少部分地由几何结构的至少一部分占据,其中,体积数据结构进一步包括以高于第一细节层次的第二细节层次表示体素的多个第二条目,处于第二细节层次的体素表示处于第一细节层次的体素的子体积,并且第二条目的数量与第一组位中具有指示相应体素被占据的值的位的数量相对应。
示例23可包括示例22的主题的至少一部分,其中,数据是使用一个或多个图像传感器而生成的。
示例24可包括示例22-23中的任一示例的主题的至少一部分,其中,数据包括深度图像。
示例25可包括示例22-24中的任一示例的主题的至少一部分,其中,将数据转换为体积数据结构包括:使用同步定位和建图(SLAM)算法来处理数据。
示例26可包括示例22-25中的任一示例的主题的至少一部分,其中,体积数据结构进一步包括用于标识几何结构的物理特性的信息。
示例27是一种系统,该系统包括一个或多个数据处理装置、存储器和体积处理逻辑。存储器用于存储体积数据结构,其中,体积数据结构用于对特定体积建模,体积数据结构以多个细节层次表示特定体积,体积数据结构中的第一条目包括以第一细节层次表示体素的第一组位,第一细节层次包括体积数据结构中的最低细节层次,第一组位的值指示体素中的相应的一个体素是否至少部分地由对应的几何结构占据,其中,体积数据结构进一步包括以高于第一细节层次的第二细节层次表示体素的多个第二条目,处于第二细节层次的体素表示由处于第一细节层次的体素表示的体积的子体积,并且第二条目的数量与第一组位中具有指示相应的体素体积被占据的值的位的数量相对应。体积处理逻辑能够由数据处理装置执行以:获取体积数据结构;以及使用体积数据结构来确定处于多个细节层次中的任一细节层次的具有特定体积的几何结构。
示例28可包括示例27的主题的至少一部分,进一步包括:显示设备;以及显示逻辑,该显示逻辑能够由数据处理装置执行以渲染几何结构以用于在显示设备上呈现。
示例29可包括示例28的主题的至少一部分,其中,显示设备包括具有以下一项的显示设备:虚拟现实(VR)、增强现实(AR)、以及混合现实(MR)系统。
示例30可包括示例27-29中的任一示例的主题的至少一部分,进一步包括:扬声器;以及音频处理逻辑,该音频处理逻辑能够由数据处理装置执行以:基于体积数据结构来生成有限脉冲响应(FIR)滤波器;以及将FIR滤波器应用于音频呈现以在扬声器上输出。
示例31是一种机器可访问存储介质,具有存储于其上的指令,当在机器上执行这些指令时,这些指令使机器用于:识别对卷积神经网络(CNN)内的多个层中的特定的一个层的输入,其中,多个层包括修正线性单元(ReLU)层;从输入确定ReLU层的输出向量将包括多个0;基于多个0生成位图;使用位图确定CNN中的与输入相对应的要消除的操作的子集。
示例32可包括示例31的主题的至少一部分,其中,确定ReLU层的输出向量将包括多个0包括:对输入执行ReLU层以导出输出向量。
示例33可包括示例31的主题的至少一部分,其中,确定ReLU层的输出向量将包括多个0包括:基于CNN的在前的层中的操作数的符号来预测输出向量。
示例34可包括示例33的主题的至少一部分,其中,在前的层包括卷积层或最大池化层中的一个。
示例35可包括示例31-34中的任一示例的主题的至少一部分,其中,操作的子集包括多个层中的ReLU层之后的层的算术操作。
示例36可包括示例31-35中的任一示例的主题的至少一部分,其中,操作的子集包括与多个层中的ReLU层之后的层相对应的取出操作,并且取出操作用于从存储器取出操作数供在ReLU层之后的层的操作中使用。
示例37是一种系统,该系统包括一个或多个数据处理装置、存储器、位图生成器和调度器。位图生成器能够由数据处理装置执行以:识别对卷积神经网络(CNN)内的多个层中的特定的一个层的输入,其中,多个层包括修正线性单元(ReLU)层;从输入确定ReLU层的输出向量将包括多个0;以及基于多个0生成位图。调度器用于:从存储器获取位图;以及调度CNN中操作的执行,其中,调度器用于使得操作的子集基于位图而被跳过。示例38可包括示例37的主题的至少一部分,其中,确定ReLU层的输出向量将包括多个0包括:对输入执行ReLU层以导出输出向量。
示例39可包括示例37的主题的至少一部分,其中,确定ReLU层的输出向量将包括多个0包括:基于CNN的在前的层中的操作数的符号来预测输出向量。
例40可包括示例39的主题的至少一部分,其中,在前的层包括卷积层或最大池化层中的一个。
示例41可包括示例37-40中的任一示例的主题的至少一部分,其中,操作的子集包括多个层中的ReLU层之后的层的算术操作。
示例42可包括示例37-41中的任一示例的主题的至少一部分,其中,操作的子集包括与多个层中的ReLU层之后的层相对应的取出操作,并且取出操作用于从存储器取出操作数供在ReLU层之后的层的操作中使用。
示例43是一种方法,该方法包括:从存储器获取体积数据结构,其中,体积数据结构用于对特定体积建模,体积数据结构以多个细节层次表示特定体积,体积数据结构中的第一条目包括以第一细节层次表示体素的第一组位,第一细节层次包括体积数据结构中的最低细节层次,第一组位的值指示体素中的相应的一个体素是否至少部分地由对应的几何结构占据,其中,体积数据结构进一步包括以高于第一细节层次的第二细节层次表示体素的多个第二条目,处于第二细节层次的体素表示由处于第一细节层次的体素表示的体积的子体积,并且第二条目的数量与第一组位中具有指示相应的体素体积被占据的值的位的数量相对应;以及处理体积数据结构来执行一个或多个操作,其中,该操作与在特定体积内对几何结构的识别相对应。
示例44可包括示例43的主题的至少一部分,其中,第一条目以及一个或多个第二条目包括体积数据结构内的连续条目。
示例45可包括示例44的主题的至少一部分,其中,子体积包括第一子体积,第二条目包括用于指示处于第二细节层次的相应体素是否由几何结构占据的值,该体积数据结构进一步包括一个或多个第三条目,该一个或多个第三条目以高于第二细节层次的第三细节层次表示体素,处于第三细节层次的体素表示由处于第二细节层次的体素表示的第一子体积的子体积,并且第三条目的数量与第二组位中具有指示相应的体素体积被占据的值的位的数量相对应,其中,第三条目与体积数据结构中的第二条目中的最后一个第二条目是连续的。
示例46可包括示例45的主题的至少一部分,进一步包括:基于第一组位中具有指示处于第一细节层次的相应体素体积被占据的值的位的数量来确定第三层次的开始。
示例47可包括示例43-46中的任一示例的主题的至少一部分,其中,处于第一细节层次的每个体素由第一条目中的两个或更多个对应的位来表示。
示例48可包括示例43-47中的任一示例的主题的至少一部分,进一步包括:确定与特定体积相交的光线;确定处于第一细节层次的体素的、光线穿过其的子集;以及基于第一条目中指示特定体素由几何结构占据的相应位的值来确定光线与表示被占据的空间的体素的子集中的特定体素相遇。
示例49可包括示例48的主题的至少一部分,进一步包括:基于确定了光线与特定体素相遇而标识第二条目中与特定体素相对应的特定的一个第二条目;确定光线穿过处于第二细节层次的体素的子集;以及从特定的第二条目中的位的值来判定光线是否与处于第二细节层次的由几何结构占据的体素相遇。
示例50可包括示例48的主题的至少一部分,其中,操作包括:至少部分地基于判定了光线与特定体素相遇而检测移动设备的潜在碰撞。
示例51可包括示例48的主题的至少一部分,其中,操作包括:确定与光线同所述特定体素相遇相对应的音频反射。
示例52可包括示例51的主题的至少一部分,其中,体积数据结构进一步包括指示占据特定体素的几何结构的反射系数的数据,并且音频反射至少部分地基于反射系数。
示例53可包括示例51的主题的至少一部分,进一步包括:至少部分地基于确定了音频反射来生成有限脉冲响应(FIR)滤波器。
示例54可包括示例43-53中的任一示例的主题的至少一部分,其中,操作包括识别特定体积中的空体素的集合,并且该方法进一步包括:确定穿过与空体素的集合相对应的特定体积的自由路径。
示例55可包括示例54的主题的至少一部分,其中,自由路径包括三维(3D)自由路径,并且该方法进一步包括:将3D自由路径转换为二维(2D)自由路径表示;以及生成描述2D自由路径表示的2D路径地图数据。
示例56可包括示例43-55中的任一示例的主题的至少一部分,其中,操作包括卷积神经网络(CNN)中定义的操作,并且该方法进一步包括:提供体积数据结构作为对CNN的特定层的输入,其中,操作包括与特定层相关联的一个或多个算术操作。
示例57可包括示例56的主题的至少一部分,其中,二进制“0”值用于指示体积数据结构的条目中的空体素,并且该方法进一步包括:确定具有被表示为体积数据结构中的空白空间的、特定体积中的空白空间的体素的子集;以及省略与表示体积数据结构中的体素的子集的位相对应的算术操作。
示例58可包括示例57的主题的至少一部分,进一步包括:省略用于与表示体素的子集的位相乘的权重值的取出。
示例59可包括示例57的主题的至少一部分,进一步包括:基于体积数据结构中的二进制“0”值生成位图,并且算术操作基于位图而被省略。
示例60可包括示例43-59中的任一示例的主题的至少一部分,进一步包括:识别特定体积内的几何结构的改变;以及修改条目的相应位以反映几何结构的改变。
示例61可包括示例43-60中的任一示例的主题的至少一部分,其中,体积数据结构中的每个条目包括长度为64位的条目。
示例62可包括示例61的主题的至少一部分,其中,处于第一细节层次的体素包括64个体素,并且对于第一细节层次中的每个体素,处于第二细节层次的体素包括64个体素。
示例63可包括示例43-62中的任一示例的主题的至少一部分,其中,操作包括:以二维图形呈现渲染具有特定体积的几何结构用于在显示设备上显示。
示例64是一种系统,该系统包括用于执行如示例43-63中的任一示例的方法的装置。
示例65是一种方法,该方法包括:获取数据,该数据描述存在于特定体积内的三维几何结构的至少一部分;以及将数据转换为体积数据结构,其中,体积数据结构用于对特定体积建模,体积数据结构以多个细节层次表示特定体积,体积数据结构中的第一条目包括在特定体积内以第一细节层次表示所有体素的第一组位,第一细节层次包括多个细节层次中的最低层次,第一组位中的每个位的值指示处于第一细节层次的体素中的相应的一个体素是否至少部分地由几何结构的至少一部分占据,其中,体积数据结构进一步包括以高于第一细节层次的第二细节层次表示体素的多个第二条目,处于第二细节层次的体素表示处于第一细节层次的体素的子体积,并且第二条目的数量与第一组位中具有指示相应体素被占据的值的位的数量相对应。
示例66可包括示例65的主题的至少一部分,其中,数据是使用一个或多个图像传感器而生成的。
示例67可包括示例65-66中的任一示例的主题的至少一部分,其中,数据包括深度图像。
示例68可包括示例65-67中的任一示例的主题的至少一部分,其中,将数据转换为体积数据结构包括:使用同步定位和建图(SLAM)算法来处理数据。
示例69可包括示例65-68中的任一示例的主题的至少一部分,其中,体积数据结构进一步包括用于标识几何结构的物理特性的信息。
示例70是一种系统,该系统包括用于执行如示例65-69中的任一示例的方法的装置。
示例71是一种方法,该方法包括:识别对卷积神经网络(CNN)内的多个层中的特定的一个层的输入,其中,多个层包括修正线性单元(ReLU)层;从输入确定ReLU层的输出向量将包括多个0;基于多个0生成位图;使用位图确定CNN中的与输入相对应的要消除的操作的子集。
示例72可包括示例71的主题的至少一部分,其中,确定ReLU层的输出向量将包括多个0包括:对输入执行ReLU层以导出输出向量。
示例73可包括示例71的主题的至少一部分,其中,确定ReLU层的输出向量将包括多个0包括:基于CNN的在前的层中的操作数的符号来预测输出向量。
例74可包括示例73的主题的至少一部分,其中,在前的层包括卷积层或最大池化层中的一个。
示例75可包括示例71-74中的任一示例的主题的至少一部分,其中,操作的子集包括多个层中的ReLU层之后的层的算术操作。
示例76可包括示例71-75中的任一示例的主题的至少一部分,其中,操作的子集包括与多个层中的ReLU层之后的层相对应的取出操作,并且取出操作用于从存储器取出操作数供在ReLU层之后的层的操作中使用。
示例77是一种系统,该系统包括用于执行如示例71-76中的任一示例的方法的装置。
示例78可包括示例1的主题的至少一部分,其中,操作包括:将体积数据结构用作对卷积神经网络的输入来执行3D推断以识别几何结构内的物体。
示例79可包括示例43的主题的至少一部分,其中,操作包括:将体积数据结构用作对卷积神经网络的输入来执行3D推断以识别几何结构内的物体。
示例80是一种装置,该装置包括:数据处理装置、存储器和电路。存储器用于存储来自存储器的体积数据结构,其中,体积数据结构用于对特定体积建模,体积数据结构以多个细节层次表示特定体积,体积数据结构中的第一条目包括以第一细节层次表示体素的第一组位,第一细节层次包括体积数据结构中的最低细节层次,第一组位的值指示体素中的相应的一个体素是否至少部分地由对应的几何结构占据,其中,体积数据结构进一步包括以高于第一细节层次的第二细节层次表示体素的多个第二条目,处于第二细节层次的体素表示由处于第一细节层次的体素表示的体积的子体积,并且第二条目的数量与第一组位中具有指示相应的体素体积被占据的值的位的数量相对应。电路用于使用所述体积数据结构来执行一个或多个操作,其中,操作与在特定体积内对所述几何结构的识别相对应。
示例81可包括示例80的主题的至少一部分,其中,第一条目以及一个或多个第二条目包括体积数据结构内的连续条目。
示例82可包括示例81的主题的至少一部分,其中,子体积包括第一子体积,第二条目包括用于指示处于第二细节层次的相应体素是否由几何结构占据的值,该体积数据结构进一步包括一个或多个第三条目,该一个或多个第三条目以高于第二细节层次的第三细节层次表示体素,处于第三细节层次的体素表示由处于第二细节层次的体素表示的第一子体积的子体积,并且第三条目的数量与第二组位中具有指示相应的体素体积被占据的值的位的数量相对应,其中,第三条目与体积数据结构中的第二条目中的最后一个第二条目是连续的。
示例83可包括示例82的主题的至少一部分,进一步包括用于以下操作的逻辑:基于第一组位中具有指示处于第一细节层次的相应体素体积被占据的值的位的数量来确定第三层次的开始。
示例84可包括示例80-83中的任一示例的主题的至少一部分,其中,处于第一细节层次的每个体素由第一条目中的两个或更多个对应的位来表示。
示例85可包括示例80-84中的任一示例的主题的至少一部分,进一步包括用于以下操作的逻辑:确定与特定体积相交的光线;确定处于第一细节层次的体素的、光线穿过其的子集;以及基于第一条目中指示特定体素由几何结构占据的相应位的值来确定光线与表示被占据的空间的体素的子集中的特定体素相遇。
示例86可包括示例85的主题的至少一部分,该逻辑进一步用于:基于确定了光线与特定体素相遇而标识第二条目中与特定体素相对应的特定的一个第二条目;确定光线穿过处于第二细节层次的体素的子集;以及从特定的第二条目中的位的值来判定光线是否与处于第二细节层次的由几何结构占据的体素相遇。
示例87可包括示例85的主题的至少一部分,其中,操作包括:至少部分地基于判定了光线与特定体素相遇而检测移动设备的潜在碰撞。
示例88可包括示例85的主题的至少一部分,其中,操作包括:确定与光线同所述特定体素相遇相对应的音频反射。
示例89可包括示例88的主题的至少一部分,其中,体积数据结构进一步包括指示占据特定体素的几何结构的反射系数的数据,并且音频反射至少部分地基于反射系数。
示例90可包括示例88-89中的任一示例的主题的至少一部分,进一步包括滤波器生成逻辑,该滤波器生成逻辑用于至少部分地基于确定了音频反射来生成有限脉冲响应(FIR)滤波器。
示例91可包括示例80-90中的任一示例的主题的至少一部分,其中,操作包括识别特定体积中的空体素的集合,并且该装置进一步包括路径查找逻辑,该路径查找逻辑用于:确定穿过与空体素的集合相对应的特定体积的自由路径。
示例92可包括示例91的主题的至少一部分,其中,自由路径包括三维(3D)自由路径,并且路径查找逻辑进一步用于:将3D自由路径转换为二维(2D)自由路径表示;以及生成描述2D自由路径表示的2D路径地图数据。
示例93可包括示例80-92中的任一示例的主题的至少一部分,其中,操作包括卷积神经网络(CNN)中定义的操作,并且装置进一步包括用于以下操作的机器学习逻辑:提供体积数据结构作为对CNN的特定层的输入,其中,操作包括与特定层相关联的一个或多个算术操作。
示例94可包括示例93的主题的至少一部分,其中,二进制“0”值用于指示体积数据结构的条目中的空体素,并且装置进一步包括用于以下操作的控制器:确定具有被表示为体积数据结构中的空白空间的、特定体积中的空白空间的体素的子集;以及省略与表示体积数据结构中的体素的子集的位相对应的算术操作。
示例95可包括示例94的主题的至少一部分,其中,该控制器进一步用于:省略用于与表示体素的子集的位相乘的权重值的取出。
示例96可包括示例94-95中的任一示例的主题的至少一部分,进一步包括位图生成器,该位图生成器用于基于体积数据结构中的二进制“0”值生成位图,并且算术操作基于位图而被省略。
示例97可包括示例80-96中的任一示例的主题的至少一部分,进一步包括用于以下操作的逻辑:识别特定体积内的几何结构的改变;以及修改条目的相应位以反映几何结构的改变。
示例98可包括示例80-97中的任一示例的主题的至少一部分,其中,体积数据结构中的每个条目包括长度为64位的条目。
示例99可包括示例98的主题的至少一部分,其中,处于第一细节层次的体素包括64个体素,并且对于第一细节层次中的每个体素,处于第二细节层次的体素包括64个体素。
示例100可包括示例80-99中的任一示例的主题的至少一部分,其中,操作包括:以二维图形呈现渲染具有特定体积的几何结构用于在显示设备上显示。
示例101可包括示例80-100中的任一示例的主题的至少一部分,其中,操作包括:将体积数据结构用作对卷积神经网络的输入来执行3D推断以识别几何结构内的物体。
因此,己经描述了本主题的特定实施例。其他实施例俱在以下权利要求的范围内。在一些情况下,权利要求书中所列举的动作可以用不同顺序来执行,并且仍然获得期望结果。此外,在附图中描绘的过程不一定需要所示出的特定顺序或相继顺序来实现所希望的结果。

Claims (39)

1.一种装置,包括:
数据处理装置;
存储器,用于存储来自存储器的体积数据结构,其中,所述体积数据结构用于对特定体积建模,所述体积数据结构以多个细节层次表示所述特定体积,所述体积数据结构中的第一条目包括以第一细节层次表示体素的第一组位,所述第一细节层次包括所述体积数据结构中的最低细节层次,所述第一组位的值指示所述体素中的相应的一个体素是否至少部分地由对应的几何结构占据,其中,所述体积数据结构进一步包括以高于所述第一细节层次的第二细节层次表示体素的多个第二条目,处于所述第二细节层次的体素表示由处于所述第一细节层次的体素表示的体积的子体积,并且所述第二条目的数量与所述第一组位中具有指示相应的体素体积被占据的值的位的数量相对应;以及
电路,用于使用所述体积数据结构来执行一个或多个操作,其中,所述操作与在所述特定体积内对所述几何结构的识别相对应。
2.如权利要求1所述的装置,其中,所述第一条目以及一个或多个第二条目包括所述体积数据结构内的连续条目。
3.如权利要求2所述的装置,其中,子体积包括第一子体积,所述第二条目包括用于指示处于所述第二细节层次的相应体素是否由几何结构占据的值,所述体积数据结构进一步包括一个或多个第三条目,所述一个或多个第三条目以高于所述第二细节层次的第三细节层次表示体素,处于所述第三细节层次的体素表示由处于所述第二细节层次的体素表示的所述第一子体积的子体积,并且第三条目的数量与所述第二组位中具有指示相应的体素体积被占据的值的位的数量相对应,其中,所述第三条目与所述体积数据结构中的所述第二条目中的最后一个第二条目是连续的。
4.如权利要求3所述的装置,进一步包括用于以下操作的逻辑:基于所述第一组位中具有指示处于所述第一细节层次的相应体素体积被占据的值的位的数量来确定所述第三层次的开始。
5.如权利要求1-4中的任一项所述的装置,其中,处于所述第一细节层次的每个体素由所述第一条目中的两个或更多个对应的位表示。
6.如权利要求1-5中任一项所述的装置,进一步包括用于以下操作的逻辑:
确定与所述特定体积相交的光线;
确定处于所述第一细节层次的体素的、所述光线穿过其的子集;
基于所述第一条目中指示特定体素由几何结构占据的相应位的值来确定所述光线与表示被占据的空间的体素的子集中的所述特定体素相遇。
7.如权利要求6所述的装置,其中,所述逻辑进一步用于:
基于确定了所述光线与所述特定体素相遇而标识所述第二条目中与所述特定体素相对应的特定的一个第二条目;
确定所述光线穿过处于所述第二细节层次的体素的子集;以及
从所述特定的第二条目中的位的值来判定所述光线是否与处于所述第二细节层次的由几何结构占据的体素相遇。
8.如权利要求6所述的装置,其中,所述操作包括:至少部分地基于判定了所述光线与所述特定体素相遇而检测移动设备的潜在碰撞。
9.如权利要求6所述的装置,其中,所述操作包括:确定与所述光线同所述特定体素相遇相对应的音频反射。
10.如权利要求9所述的装置,其中,所述体积数据结构进一步包括指示占据所述特定体素的所述几何结构的反射系数的数据,并且所述音频反射至少部分地基于所述反射系数。
11.如权利要求9-10中任一项所述的装置,进一步包括滤波器生成逻辑,所述滤波器生成逻辑用于至少部分地基于确定了所述音频反射来生成有限脉冲响应(FIR)滤波器。
12.如权利要求1-11中的任一项所述的装置,其中,所述操作包括识别所述特定体积中的空体素的集合,并且所述装置进一步包括路径查找逻辑,所述路径查找逻辑用于确定穿过与所述空体素的集合相对应的特定体积的自由路径。
13.如权利要求12所述的装置,其中,所述自由路径包括三维(3D)自由路径,并且所述路径查找逻辑进一步用于:
将所述3D自由路径转换为二维(2D)自由路径表示;以及
生成描述所述2D自由路径表示的2D路径地图数据。
14.如权利要求1-13中任一项所述的装置,其中,所述操作包括卷积神经网络(CNN)中定义的操作,并且所述装置进一步包括用于以下操作的机器学习逻辑:
提供所述体积数据结构作为对所述CNN的特定层的输入,其中,所述操作包括与所述特定层相关联的一个或多个算术操作。
15.如权利要求14所述的装置,其中,二进制“0”值用于指示所述体积数据结构的条目中的空体素,并且所述装置进一步包括用于以下操作的控制器:
确定具有被表示为所述体积数据结构中的空白空间的、所述特定体积中的空白空间的体素的子集;以及
省略与表示所述体积数据结构中的所述体素的子集的位相对应的算术操作。
16.如权利要求15所述的装置,其中,所述控制器进一步用于:省略用于与表示所述体素的子集的位相乘的权重值的取出。
17.如权利要求15-16中的任一项所述的装置,进一步包括位图生成器,所述位图生成器用于基于所述体积数据结构中的二进制“0”值生成位图,并且所述算术操作基于所述位图而被省略。
18.如权利要求1-17中的任一项所述的装置,进一步包括用于以下操作的逻辑:
识别所述特定体积内的几何结构的改变;以及
修改条目的相应位以反映所述几何结构的改变。
19.如权利要求1-18中的任一项所述的装置,其中,所述体积数据结构中的每个条目包括长度为64位的条目。
20.如权利要求19所述的装置,其中,处于所述第一细节层次的体素包括64个体素,并且对于所述第一细节层次中的每个体素,处于第二细节层次的体素包括64个体素。
21.如权利要求1-20中的任一项所述的装置,其中,所述操作包括:以二维图形呈现渲染具有所述特定体积的所述几何结构用于在显示设备上显示。
22.如权利要求1-21中的任一项所述的装置,其中,所述操作包括:将所述体积数据结构用作对卷积神经网络的输入来执行3D推断以识别所述几何结构内的物体。
23.至少一种机器可访问存储介质,所述机器可访问存储介质上存储有指令,所述指令当在机器上被执行时使所述机器:
获取数据,所述数据描述存在于特定体积内的三维几何结构的至少一部分;以及
将所述数据转换为体积数据结构,其中,所述体积数据结构用于对所述特定体积建模,所述体积数据结构以多个细节层次表示所述特定体积,所述体积数据结构中的第一条目包括在所述特定体积内以第一细节层次表示所有体素的第一组位,所述第一细节层次包括所述多个细节层次中的最低层次,所述第一组位中的每个位的值指示处于所述第一细节层次的体素中的相应的一个体素是否至少部分地由所述几何结构的至少一部分占据,
其中,所述体积数据结构进一步包括以高于所述第一细节层次的第二细节层次表示体素的多个第二条目,处于所述第二细节层次的体素表示处于所述第一细节层次的体素的子体积,并且所述第二条目的数量与所述第一组位中具有指示相应体素被占据的值的位的数量相对应。
24.如权利要求23所述的存储介质,其中,所述数据是使用一个或多个图像传感器而生成的。
25.如权利要求23-24中的任一项所述的存储介质,其中,所述数据包括深度图像。
26.如权利要求23-25中的任一项所述的存储介质,其中,将所述数据转换为体积数据结构包括:使用同步定位和建图(SLAM)算法来处理所述数据。
27.如权利要求23-26中的任一项所述的存储介质,其中,所述体积数据结构进一步包括用于标识所述几何结构的物理特性的信息。
28.一种系统,包括:
一个或多个数据处理装置;
存储器,用于存储体积数据结构,其中,所述体积数据结构用于对特定体积建模,所述体积数据结构以多个细节层次表示所述特定体积,所述体积数据结构中的第一条目包括以第一细节层次表示体素的第一组位,所述第一细节层次包括所述体积数据结构中的最低细节层次,所述第一组位的值指示所述体素中的相应的一个体素是否至少部分地由对应的几何结构占据,其中,所述体积数据结构进一步包括以高于所述第一细节层次的第二细节层次表示体素的多个第二条目,处于所述第二细节层次的体素表示由处于所述第一细节层次的体素表示的体积的子体积,并且第二条目的数量与所述第一组位中具有指示相应的体素体积被占据的值的位的数量相对应;以及
体积处理逻辑,能够由所述数据处理装置执行以:
获取所述体积数据结构;以及
使用所述体积数据结构来确定处于所述多个细节层次中的任一细节层次的具有所述特定体积的所述几何结构。
29.如权利要求28所述的系统,进一步包括:显示设备;以及显示逻辑,所述显示逻辑能够由所述数据处理装置执行以渲染所述几何结构以用于在所述显示设备上呈现。
30.如权利要求29所述的系统,其中,所述显示设备包括具有以下一项的显示设备:虚拟现实(VR)、增强现实(AR)、以及混合现实(MR)系统。
31.如权利要求28-30中的任一项所述的系统,进一步包括:扬声器;以及音频处理逻辑,所述音频处理逻辑能够由所述数据处理装置执行以:基于所述体积数据结构来生成有限脉冲响应(FIR)滤波器;以及将所述FIR滤波器应用于音频呈现以在所述扬声器上输出。
32.至少一种机器可访问存储介质,所述机器可访问存储介质上存储有指令,所述指令当在机器上被执行时使所述机器:
识别对卷积神经网络(CNN)内的多个层中的特定的一个层的输入,其中,所述多个层包括修正线性单元(ReLU)层;
从所述输入确定所述ReLU层的输出向量将包括多个0;
基于所述多个0生成位图;
使用所述位图确定所述CNN中的与所述输入相对应的要消除的操作的子集。
33.如权利要求32所述的存储介质,其中,确定所述ReLU层的输出向量将包括多个0包括:对所述输入执行所述ReLU层以导出所述输出向量。
34.如权利要求32所述的存储介质,其中,确定所述ReLU层的所述输出向量将包括多个0包括:基于所述CNN的在前的层中的操作数的符号来预测所述输出向量。
35.如权利要求34所述的存储介质,其中,所述在前的层包括卷积层或最大池化层中的一个。
36.如权利要求32-35中的任一项所述的存储介质,其中,所述操作的子集包括所述多个层中的所述ReLU层之后的层的算术操作。
37.如权利要求32-36中的任一项所述的存储介质,其中,所述操作的子集包括与所述多个层中的所述ReLU层之后的层相对应的取出操作,并且所述取出操作用于从存储器取出操作数供在所述ReLU层之后的层的操作中使用。
38.一种系统,包括:
一个或多个数据处理装置;
存储器;
位图生成器,能够由所述数据处理装置执行以:
识别对卷积神经网络(CNN)内的多个层中的特定的一个层的输入,其中,所述多个层包括修正线性单元(ReLU)层;
从所述输入确定所述ReLU层的输出向量将包括多个0;以及
基于所述多个0生成位图;以及
调度器,所述调度器用于:
从存储器获取所述位图;
调度所述CNN中操作的执行,其中,所述调度器用于使得所述操作的子集基于所述位图而被跳过。
39.至少一种机器可访问存储介质,所述机器可访问存储介质上存储有指令,所述指令当在机器上被执行时使所述机器:
从存储器获取体积数据结构,其中,所述体积数据结构用于对特定体积建模,所述体积数据结构以多个细节层次表示所述特定体积,所述体积数据结构中的第一条目包括以第一细节层次表示体素的第一组位,所述第一细节层次包括所述体积数据结构中的最低细节层次,所述第一组位的值指示所述体素中的相应的一个体素是否至少部分地由对应的几何结构占据,其中,所述体积数据结构进一步包括以高于所述第一细节层次的第二细节层次表示体素的多个第二条目,处于所述第二细节层次的体素表示由处于所述第一细节层次的体素表示的体积的子体积,并且所述第二条目的数量与所述第一组位中具有指示相应的体素体积被占据的值的位的数量相对应;以及
处理所述体积数据结构来执行一个或多个操作,其中,所述操作与在所述特定体积内对所述几何结构的识别相对应。
CN201780063371.6A 2016-08-19 2017-08-19 使用稀疏体积数据的操作 Active CN110392902B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410028163.4A CN117764811A (zh) 2016-08-19 2017-08-19 使用稀疏体积数据的操作

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662377471P 2016-08-19 2016-08-19
US62/377,471 2016-08-19
PCT/US2017/047694 WO2018035505A1 (en) 2016-08-19 2017-08-19 Operations using sparse volumetric data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410028163.4A Division CN117764811A (zh) 2016-08-19 2017-08-19 使用稀疏体积数据的操作

Publications (2)

Publication Number Publication Date
CN110392902A true CN110392902A (zh) 2019-10-29
CN110392902B CN110392902B (zh) 2024-01-12

Family

ID=61197094

Family Applications (6)

Application Number Title Priority Date Filing Date
CN201780063371.6A Active CN110392902B (zh) 2016-08-19 2017-08-19 使用稀疏体积数据的操作
CN202311170467.6A Pending CN117197314A (zh) 2016-08-19 2017-08-19 使用稀疏体积数据的渲染操作
CN202410028163.4A Pending CN117764811A (zh) 2016-08-19 2017-08-19 使用稀疏体积数据的操作
CN201780064277.2A Pending CN110392903A (zh) 2016-08-19 2017-08-19 矩阵操作的动态剔除
CN201780064229.3A Active CN110494895B (zh) 2016-08-19 2017-08-19 使用稀疏体积数据的渲染操作
CN201780063370.1A Active CN110383340B (zh) 2016-08-19 2017-08-19 使用稀疏体积数据进行路径规划

Family Applications After (5)

Application Number Title Priority Date Filing Date
CN202311170467.6A Pending CN117197314A (zh) 2016-08-19 2017-08-19 使用稀疏体积数据的渲染操作
CN202410028163.4A Pending CN117764811A (zh) 2016-08-19 2017-08-19 使用稀疏体积数据的操作
CN201780064277.2A Pending CN110392903A (zh) 2016-08-19 2017-08-19 矩阵操作的动态剔除
CN201780064229.3A Active CN110494895B (zh) 2016-08-19 2017-08-19 使用稀疏体积数据的渲染操作
CN201780063370.1A Active CN110383340B (zh) 2016-08-19 2017-08-19 使用稀疏体积数据进行路径规划

Country Status (5)

Country Link
US (12) US11367246B2 (zh)
EP (4) EP3501008A4 (zh)
KR (1) KR102546996B1 (zh)
CN (6) CN110392902B (zh)
WO (4) WO2018035507A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111353992A (zh) * 2020-03-10 2020-06-30 塔里木大学 一种基于纹理特征的农产品缺陷检测方法及系统

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11043042B2 (en) * 2016-05-16 2021-06-22 Hewlett-Packard Development Company, L.P. Generating a shape profile for a 3D object
WO2017217191A1 (ja) * 2016-06-14 2017-12-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置及び三次元データ復号装置
US10839598B2 (en) * 2016-07-26 2020-11-17 Hewlett-Packard Development Company, L.P. Indexing voxels for 3D printing
US11367246B2 (en) * 2016-08-19 2022-06-21 Movidius Ltd. Operations using sparse volumetric data
KR20180034853A (ko) * 2016-09-28 2018-04-05 에스케이하이닉스 주식회사 합성곱 신경망의 연산 장치 및 방법
CA3043352A1 (en) * 2016-11-15 2018-05-24 Magic Leap, Inc. Deep learning system for cuboid detection
US10878310B2 (en) * 2016-11-29 2020-12-29 Mellanox Technologies, Ltd. Accelerated convolution in convolutional neural networks
US10579121B2 (en) * 2017-04-01 2020-03-03 Intel Corporation Processor power management
EP3618006B1 (en) * 2017-05-19 2022-05-04 Huawei Technologies Co., Ltd. Image processing method and apparatus
US11388360B2 (en) * 2017-06-14 2022-07-12 Semiconductor Energy Laboratory Co., Ltd. Imaging device and electronic device
CN111052134B (zh) * 2017-08-31 2024-04-26 快图有限公司 外围处理设备
US11472907B2 (en) 2017-09-04 2022-10-18 Bridgestone Corporation Polymerization catalyst composition, polymer manufacturing method, polymer, rubber composition, and tire
US10265138B2 (en) * 2017-09-18 2019-04-23 MediVis, Inc. Methods and systems for generating and using 3D images in surgical settings
GB2567244A (en) * 2017-10-09 2019-04-10 Nokia Technologies Oy Spatial audio signal processing
US10762620B2 (en) * 2017-11-27 2020-09-01 Nvidia Corporation Deep-learning method for separating reflection and transmission images visible at a semi-reflective surface in a computer image of a real-world scene
US11270161B2 (en) * 2017-11-27 2022-03-08 Nvidia Corporation Deep-learning method for separating reflection and transmission images visible at a semi-reflective surface in a computer image of a real-world scene
US11403816B2 (en) * 2017-11-30 2022-08-02 Mitsubishi Electric Corporation Three-dimensional map generation system, three-dimensional map generation method, and computer readable medium
FR3078601B1 (fr) * 2018-03-05 2020-10-30 Ioterop Dispositif, systeme et procede de reamenagement d'un objet connecte existant
WO2019173528A1 (en) * 2018-03-06 2019-09-12 Kevin Sahr Systems and methods for location representation using a discrete global grid system
US11734477B2 (en) * 2018-03-08 2023-08-22 Concurrent Technologies Corporation Location-based VR topological extrusion apparatus
US11062469B2 (en) * 2018-03-09 2021-07-13 Microsoft Technology Licensing, Llc 4D tracking utilizing depth data from multiple 3D cameras
US10748306B2 (en) * 2018-03-19 2020-08-18 Fuji Xerox Co., Ltd. Encoding device, decoding device, and non-transitory computer readable medium
JP7121523B2 (ja) * 2018-04-10 2022-08-18 キヤノン株式会社 画像表示装置、画像表示方法
US10558430B2 (en) * 2018-04-17 2020-02-11 Fotonation Limited Neural network engine
US10950031B2 (en) 2018-05-14 2021-03-16 Apple Inc. Techniques for locating virtual objects relative to real physical objects
CN110832275B (zh) 2018-06-14 2021-05-18 北京嘀嘀无限科技发展有限公司 基于双目图像更新高分辨率地图的系统和方法
US10521964B1 (en) * 2018-06-14 2019-12-31 Dell Products, L.P. Switching among disparate simultaneous localization and mapping (SLAM) methods in virtual, augmented, and mixed reality (xR) applications
GB2570743B (en) * 2018-06-29 2021-06-23 Imagination Tech Ltd Tile assignment to processing cores within a graphics processing unit
CN112437930A (zh) * 2018-07-12 2021-03-02 华为技术有限公司 以熟练的推理速度和功耗,生成神经网络的压缩表示
GB2575891A (en) * 2018-07-18 2020-01-29 Peerless Ltd Accelerator subsystem with GPU, transportation route price system, cache and method of acceleration of a permutation analysis therefor
KR101953516B1 (ko) * 2018-08-06 2019-02-28 부산대학교 산학협력단 적응적인 데이터율 조절 방법 및 적응적인 데이터율 조절 시스템
US10672178B2 (en) * 2018-08-08 2020-06-02 Alvin D. Zimmerman Ray traversal with virtual grids
EP3844722A4 (en) * 2018-08-29 2022-06-01 Movidius Ltd. COMPUTER VISION SYSTEM
US11467973B1 (en) * 2018-09-28 2022-10-11 Amazon Technologies, Inc. Fine-grained access memory controller
EP3864644A1 (en) 2018-10-08 2021-08-18 Telefonaktiebolaget Lm Ericsson (Publ) Improved viewing device and method for providing virtual content overlapping visual objects
US10834543B2 (en) * 2018-11-26 2020-11-10 International Business Machines Corporation Creating a social group with mobile phone vibration
US11995854B2 (en) * 2018-12-19 2024-05-28 Nvidia Corporation Mesh reconstruction using data-driven priors
EP3671660A1 (en) * 2018-12-20 2020-06-24 Dassault Systèmes Designing a 3d modeled object via user-interaction
WO2020154973A1 (en) * 2019-01-30 2020-08-06 Baidu.Com Times Technology (Beijing) Co., Ltd. Lidar localization using rnn and lstm for temporal smoothness in autonomous driving vehicles
US12014505B2 (en) * 2019-01-31 2024-06-18 Samsung Electronics Co., Ltd. Method and apparatus with convolution neural network processing using shared operand
US11866167B2 (en) * 2019-04-10 2024-01-09 Rhoman Aerospace Corporation Method and algorithm for flight, movement, autonomy, in GPS, communication, degraded, denied, obstructed non optimal environment
US11188671B2 (en) 2019-04-11 2021-11-30 Bank Of America Corporation Distributed data chamber system
US10698562B1 (en) * 2019-04-30 2020-06-30 Daqri, Llc Systems and methods for providing a user interface for an environment that includes virtual objects
KR20200133863A (ko) * 2019-05-20 2020-12-01 삼성전자주식회사 첨단 운전자 지원 장치, 이의 캘리브레이션 방법 및 이의 객체를 검출하는 방법
JP7268481B2 (ja) * 2019-05-22 2023-05-08 トヨタ自動車株式会社 情報処理装置、自律走行車両、情報処理方法及びプログラム
US11277277B2 (en) * 2019-06-03 2022-03-15 International Business Machines Corporation Indoor environment personalization preferences
US10964043B2 (en) * 2019-06-05 2021-03-30 Icatch Technology, Inc. Method and measurement system for measuring dimension and/or volume of an object by eliminating redundant voxels
CN110210456A (zh) * 2019-06-19 2019-09-06 贵州理工学院 一种基于3d卷积神经网络的头部姿态估计方法
DE102019116715A1 (de) * 2019-06-20 2020-12-24 Gritworld GmbH Computerimplementiertes Verfahren und programmierbares System zum Rendern eines 2D/3D-Modells
US20220327742A1 (en) * 2019-06-26 2022-10-13 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method
KR102292195B1 (ko) 2019-07-04 2021-08-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN112215880B (zh) * 2019-07-10 2022-05-06 浙江商汤科技开发有限公司 一种图像深度估计方法及装置、电子设备、存储介质
US11754715B2 (en) * 2019-07-11 2023-09-12 Baidu Usa Llc Point cloud format optimized for LiDAR data storage based on device property
CN110347163B (zh) * 2019-08-07 2022-11-18 京东方科技集团股份有限公司 一种无人驾驶设备的控制方法、设备及无人驾驶控制系统
US11120611B2 (en) * 2019-08-22 2021-09-14 Microsoft Technology Licensing, Llc Using bounding volume representations for raytracing dynamic units within a virtual space
US11958183B2 (en) 2019-09-19 2024-04-16 The Research Foundation For The State University Of New York Negotiation-based human-robot collaboration via augmented reality
US11120101B2 (en) * 2019-09-27 2021-09-14 Arm Limited Matrix multiplication system and method
GB2588229A (en) * 2019-10-18 2021-04-21 Sony Interactive Entertainment Inc Navigation system and method
CN110807287B (zh) * 2019-11-05 2020-12-29 广东电网有限责任公司 基于有限元网格在应急抢修布点场景中划分业务网格构建方法
US11145117B2 (en) * 2019-12-02 2021-10-12 At&T Intellectual Property I, L.P. System and method for preserving a configurable augmented reality experience
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
WO2021141208A1 (ko) * 2020-01-09 2021-07-15 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021155308A1 (en) 2020-01-29 2021-08-05 Boston Polarimetrics, Inc. Systems and methods for pose detection and measurement
US11910183B2 (en) 2020-02-14 2024-02-20 Magic Leap, Inc. Multi-application audio rendering
US11568021B2 (en) 2020-02-21 2023-01-31 Alibaba Group Holding Limited Vector-vector multiplication techniques for processing systems
WO2021210763A1 (ko) * 2020-04-14 2021-10-21 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN111680626A (zh) * 2020-06-09 2020-09-18 重庆大学 一种基于多层卷积神经网络的水环境遥感数据建模方法
US11709225B2 (en) * 2020-06-19 2023-07-25 Nxp B.V. Compression of data employing variable mantissa size
US20210407039A1 (en) * 2020-06-30 2021-12-30 Intel Corporation Apparatus and method for approximate trilinear interpolation for scene reconstruction
US20210407168A1 (en) * 2020-06-30 2021-12-30 Intel Corporation Apparatus and method for approximate trilinear interpolation for scene reconstruction
US11257281B2 (en) * 2020-07-10 2022-02-22 Cesium GS, Inc. Systems and methods for adaptive visual and temporal quality of time-dynamic (4D) volume rendering
JP7341387B2 (ja) * 2020-07-30 2023-09-11 オムロン株式会社 モデル生成方法、探索プログラム及びモデル生成装置
CN112090078B (zh) * 2020-08-13 2021-10-15 深圳中清龙图网络技术有限公司 游戏角色移动控制方法、装置、设备和介质
CN112068791B (zh) * 2020-09-04 2024-01-23 京东方科技集团股份有限公司 旋转显示设备的显示数据的存储方法、寻址方法及设备
CN112364693B (zh) * 2020-10-12 2024-04-16 星火科技技术(深圳)有限责任公司 基于双目视觉的障碍识别方法、装置、设备及存储介质
CN112002021B (zh) * 2020-10-30 2021-01-22 成都四方伟业软件股份有限公司 一种基于unity3d的聚合打点可视化方法及装置
CN112295225B (zh) * 2020-11-02 2021-08-10 不鸣科技(杭州)有限公司 一种寻路网格的多线程更新方法
US11861327B2 (en) 2020-11-11 2024-01-02 Samsung Electronics Co., Ltd. Processor for fine-grain sparse integer and floating-point operations
US11861328B2 (en) 2020-11-11 2024-01-02 Samsung Electronics Co., Ltd. Processor for fine-grain sparse integer and floating-point operations
US11657522B2 (en) * 2020-11-11 2023-05-23 Toyota Research Institute, Inc. Sparse auxiliary network for depth completion
US12003806B2 (en) * 2021-03-11 2024-06-04 Quintar, Inc. Augmented reality system for viewing an event with multiple coordinate systems and automatically generated model
US11645819B2 (en) 2021-03-11 2023-05-09 Quintar, Inc. Augmented reality system for viewing an event with mode based on crowd sourced images
US11527047B2 (en) 2021-03-11 2022-12-13 Quintar, Inc. Augmented reality system for viewing an event with distributed computing
US11657578B2 (en) 2021-03-11 2023-05-23 Quintar, Inc. Registration for augmented reality system for viewing an event
CN113365370B (zh) * 2021-05-24 2022-09-02 内蒙古工业大学 一种基于LoRa技术的智能移动系统
CN113419539B (zh) * 2021-07-14 2022-07-01 燕山大学 具有复杂地形可通过性判断的移动机器人路径规划方法
DE102021208822A1 (de) * 2021-08-12 2023-02-16 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zur Verlustreduzierung bei einer Kommunikationsschnittstelle
CN113506339A (zh) * 2021-09-10 2021-10-15 北京科技大学 设备的工作功率的控制方法、装置及存储介质
US11417069B1 (en) * 2021-10-05 2022-08-16 Awe Company Limited Object and camera localization system and localization method for mapping of the real world
CN114371998B (zh) * 2021-12-31 2024-06-11 华南理工大学 一种基于考虑约束的并行广度优先搜索的架构测试方法
US20230215108A1 (en) * 2021-12-31 2023-07-06 Samsung Electronics Co., Ltd. System and method for adaptive volume-based scene reconstruction for xr platform applications
US20230394762A1 (en) * 2022-06-01 2023-12-07 Rovi Guides, Inc. Systems and methods for neural-network based video encoding
US20230401789A1 (en) * 2022-06-13 2023-12-14 Verizon Patent And Licensing Inc. Methods and systems for unified rendering of light and sound content for a simulated 3d environment
US11776206B1 (en) 2022-12-23 2023-10-03 Awe Company Limited Extended reality system and extended reality method with two-way digital interactive digital twins
CN117312608B (zh) * 2023-08-14 2024-06-04 河海大学 一种基于深度优先搜索的河网节点简并方法
CN116805347B (zh) * 2023-08-22 2023-11-10 中国电子科技集团公司第十五研究所 基于体数据六边界面几何构型的体纹理镀膜插值方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110228055A1 (en) * 2010-03-22 2011-09-22 Microsoft Corporation Space skipping for multi-dimensional image rendering
US20150294500A1 (en) * 2014-04-11 2015-10-15 Thomas Marshall Tucker Hybrid Dynamic Tree Data Structure and Accessibility Mapping for Computer Numerical Controlled Machining Path Planning
CN105378796A (zh) * 2013-06-12 2016-03-02 微软技术许可有限责任公司 可伸缩体积3d重构

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7301538B2 (en) * 2003-08-18 2007-11-27 Fovia, Inc. Method and system for adaptive direct volume rendering
US7242401B2 (en) * 2004-06-25 2007-07-10 Siemens Medical Solutions Usa, Inc. System and method for fast volume rendering
US7692648B2 (en) 2006-01-18 2010-04-06 Siemens Medical Solutions Usa, Inc. System and method for empty space skipping in sliding texture based volume rendering by trimming slab polygons
US20080024494A1 (en) * 2006-07-25 2008-01-31 Perumal Poopathy Method and system for image based rendering large volumetric datasets
US8049752B2 (en) * 2006-07-25 2011-11-01 Siemens Medical Solutions Usa, Inc. Systems and methods of determining sampling rates for volume rendering
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
US8605947B2 (en) 2008-04-24 2013-12-10 GM Global Technology Operations LLC Method for detecting a clear path of travel for a vehicle enhanced by object detection
US20100010786A1 (en) 2008-07-08 2010-01-14 Cynthia Maxwell Sound synthesis method and software system for shape-changing geometric models
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
AU2011331972B2 (en) * 2010-11-24 2016-07-07 Google Llc Rendering and navigating photographic panoramas with depth information in a geographic information system
US9116011B2 (en) * 2011-10-21 2015-08-25 Here Global B.V. Three dimensional routing
US9488492B2 (en) 2014-03-18 2016-11-08 Sri International Real-time system for multi-modal 3D geospatial mapping, object recognition, scene annotation and analytics
GB2541505B (en) 2013-03-14 2017-08-02 Imagination Tech Ltd Determining closest intersections during ray-tracing
US9984498B2 (en) * 2013-07-17 2018-05-29 Microsoft Technology Licensing, Llc Sparse GPU voxelization for 3D surface reconstruction
US20150092048A1 (en) 2013-09-27 2015-04-02 Qualcomm Incorporated Off-Target Tracking Using Feature Aiding in the Context of Inertial Navigation
US9761037B2 (en) * 2013-10-17 2017-09-12 Nvidia Corporation Graphics processing subsystem and method for updating voxel representation of a scene
EP3125765A4 (en) 2014-03-04 2018-04-18 The Trustees of Columbia University in the City of New York Regularization of images
US9418458B2 (en) * 2015-01-05 2016-08-16 Superfish Ltd. Graph image representation from convolutional neural networks
US11370422B2 (en) * 2015-02-12 2022-06-28 Honda Research Institute Europe Gmbh Method and system in a vehicle for improving prediction results of an advantageous driver assistant system
US20160239706A1 (en) * 2015-02-13 2016-08-18 Qualcomm Incorporated Convolution matrix multiply with callback for deep tiling for deep convolutional neural networks
US9754405B1 (en) 2015-08-10 2017-09-05 Ngrain (Canada) Corporation System, method and computer-readable medium for organizing and rendering 3D voxel models in a tree structure
US10643381B2 (en) * 2016-01-12 2020-05-05 Qualcomm Incorporated Systems and methods for rendering multiple levels of detail
EP3424021A4 (en) 2016-03-01 2020-03-25 Aris MD, Inc. SYSTEMS AND METHODS FOR MAKING ENVIRONMENTS IMMERSIVE
US9760690B1 (en) 2016-03-10 2017-09-12 Siemens Healthcare Gmbh Content-based medical image rendering based on machine learning
US10078333B1 (en) * 2016-04-17 2018-09-18 X Development Llc Efficient mapping of robot environment
US11367246B2 (en) 2016-08-19 2022-06-21 Movidius Ltd. Operations using sparse volumetric data
CN114806540A (zh) 2021-01-20 2022-07-29 三星显示有限公司 量子点及包含量子点的油墨组合物、光学构件和电子器件

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110228055A1 (en) * 2010-03-22 2011-09-22 Microsoft Corporation Space skipping for multi-dimensional image rendering
CN105378796A (zh) * 2013-06-12 2016-03-02 微软技术许可有限责任公司 可伸缩体积3d重构
US20150294500A1 (en) * 2014-04-11 2015-10-15 Thomas Marshall Tucker Hybrid Dynamic Tree Data Structure and Accessibility Mapping for Computer Numerical Controlled Machining Path Planning

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111353992A (zh) * 2020-03-10 2020-06-30 塔里木大学 一种基于纹理特征的农产品缺陷检测方法及系统
CN111353992B (zh) * 2020-03-10 2023-04-07 塔里木大学 一种基于纹理特征的农产品缺陷检测方法及系统

Also Published As

Publication number Publication date
CN110392903A (zh) 2019-10-29
CN117197314A (zh) 2023-12-08
CN110383340A (zh) 2019-10-25
EP3501010A4 (en) 2020-02-19
EP3501009A1 (en) 2019-06-26
US11680803B2 (en) 2023-06-20
US20200158514A1 (en) 2020-05-21
US20190180499A1 (en) 2019-06-13
EP3501011A1 (en) 2019-06-26
US20240094003A1 (en) 2024-03-21
US11367246B2 (en) 2022-06-21
US20190188899A1 (en) 2019-06-20
US20240118086A1 (en) 2024-04-11
WO2018035505A1 (en) 2018-02-22
US20240011777A1 (en) 2024-01-11
US11037361B2 (en) 2021-06-15
US11965743B2 (en) 2024-04-23
EP3501009A4 (en) 2020-02-12
KR102546996B1 (ko) 2023-06-26
KR20190111007A (ko) 2019-10-01
US11920934B2 (en) 2024-03-05
EP3501008A4 (en) 2020-04-22
WO2018035506A1 (en) 2018-02-22
US11222459B2 (en) 2022-01-11
US10748326B2 (en) 2020-08-18
EP3501010B1 (en) 2023-11-01
US20230044729A1 (en) 2023-02-09
EP3501010A1 (en) 2019-06-26
US10861217B2 (en) 2020-12-08
CN110494895A (zh) 2019-11-22
WO2018035508A1 (en) 2018-02-22
CN110494895B (zh) 2023-09-19
EP3501008A1 (en) 2019-06-26
EP3501011A4 (en) 2020-09-09
CN117764811A (zh) 2024-03-26
US11593987B2 (en) 2023-02-28
US20190180409A1 (en) 2019-06-13
US20220237855A1 (en) 2022-07-28
US20220148251A1 (en) 2022-05-12
CN110383340B (zh) 2023-07-04
WO2018035507A1 (en) 2018-02-22
US20210118217A1 (en) 2021-04-22
US20210065429A1 (en) 2021-03-04
CN110392902B (zh) 2024-01-12

Similar Documents

Publication Publication Date Title
CN110392902A (zh) 使用稀疏体积数据的操作
US20240127068A1 (en) Deep learning system
JP7250784B2 (ja) ボリュームデータの密度座標ハッシュ化
EP3844722A1 (en) Computer vision system

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
GR01 Patent grant
GR01 Patent grant