CN116829902A - 基于感测表面和感测表面运动来感知物体 - Google Patents
基于感测表面和感测表面运动来感知物体 Download PDFInfo
- Publication number
- CN116829902A CN116829902A CN202180093575.0A CN202180093575A CN116829902A CN 116829902 A CN116829902 A CN 116829902A CN 202180093575 A CN202180093575 A CN 202180093575A CN 116829902 A CN116829902 A CN 116829902A
- Authority
- CN
- China
- Prior art keywords
- trajectories
- sensing
- sensor
- actions
- instructions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 61
- 230000009471 action Effects 0.000 claims abstract description 57
- 230000008859 change Effects 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract description 14
- 230000002730 additional effect Effects 0.000 claims abstract description 6
- 238000000034 method Methods 0.000 claims description 56
- 230000008569 process Effects 0.000 description 29
- 238000004891 communication Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 16
- 230000000694 effects Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 230000004807 localization Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000001556 precipitation Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010897 surface acoustic wave method Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 235000021028 berry Nutrition 0.000 description 1
- 238000009529 body temperature measurement Methods 0.000 description 1
- 238000001444 catalytic combustion detection Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004141 dimensional analysis Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012567 pattern recognition method Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000010972 statistical evaluation Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/02—Systems using the reflection of electromagnetic waves other than radio waves
- G01S17/50—Systems of measurement based on relative movement of target
- G01S17/58—Velocity or trajectory determination systems; Sense-of-movement determination systems
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/02—Systems using the reflection of electromagnetic waves other than radio waves
- G01S17/06—Systems determining position data of a target
- G01S17/46—Indirect determination of position data
- G01S17/48—Active triangulation systems, i.e. using the transmission and reflection of electromagnetic waves other than radio waves
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Electromagnetism (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- User Interface Of Digital Computer (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Length Measuring Devices With Unspecified Measuring Means (AREA)
Abstract
实施例针对的是感知表面和物体。基于连续的传感器事件流生成轨迹,以使得每个轨迹可以是曲线段的参数化表示。可以采用轨迹来确定表面。可以将轨迹提供给建模引擎以基于轨迹和表面执行一个或多个动作。响应于表面的变化,可以基于连续的传感器事件流来更新轨迹并且可以基于更新后的轨迹和变化后的表面来执行一个或多个额外的动作。表面的变化可包括一个或多个的位置变化、方向变化、运动变化、形变,等等。可以基于表面或轨迹的特性来确定与表面相对应的形状。
Description
相关申请的交叉引用
本申请是基于先前于2020年12月14日提交的美国临时专利申请美国序列号63/205,480的实用新型专利申请,在此根据35 U.S.C.§119(e)要求获得该美国申请的申请日期的权益,并且通过引用将该美国申请的内容进一步全部并入。
技术领域
本发明概括而言涉及机器感测或机器视觉系统,更具体地但不仅限于涉及基于感测表面和感测表面运动来感知物体。
背景技术
机器人视觉方面的技术现状主要是基于相机,其中对感测系统的输入是二维(2D)像素阵列,该阵列对每个像素在曝光时段中接收到的光量进行编码,或者是基于深度捕捉技术(例如,飞行时间(Time-of-Flight,ToF)相机、结构光相机、激光雷达、雷达或者立体相机,仅举几例),它们提供三维(3D)点云,其中点云中的每个点可存储其在空间中相对于视觉系统的位置,并且可存储与生成该点的反射材料的斑块相关联的若干种其他数据中的任何一种(例如,亮度、颜色、相对径向速度、光谱构成,仅举几例)。注意,3D点云可以用“帧”来表示,在精神上类似于来自相机的图像帧,也就是说,它们没有连续演变的时间的基本表示。
为了提供可能被诸如机器人规划和控制系统之类的机器视觉应用所使用的有用的感知输出,这些2D或3D数据需要由软件或硬件实现的机器视觉算法来处理。在一些情况下,一些机器视觉系统可以采用机器学习来确定世界的属性或特征,这些属性或特征可能对特定的机器人任务是显著的,例如,位置、形状方向、材料属性、物体分类、物体运动、机器人系统的相对运动,等等。在许多情况下,传统的机器视觉系统所采用的2D或3D表示法都没有为环境中的物体的连续表面表示提供固有的/原生的支持。同样地,它们经常使用从传感器捕捉的静态数据来表示场景,关于场景的基本数据可能在数据被提供给机器视觉算法进行处理之前被过滤掉。因此,传统的机器视觉系统处于不利地位,因为它们可能依赖于这种不准确或不具代表性的场景数据来执行机器视觉分析。从而,正是考虑到这些及其他考虑事项,做出了本发明。
附图说明
参考以下附图描述了本发明的非限制性和非详尽的实施例。在附图中,除非另有说明,否则相似的标号在各幅图中指代相似的部分。为了更好地理解所描述的创新,将参考以下的“具体实施方式”部分,该部分应与附图一起阅读,附图中:
图1图示了一种系统环境,在该环境中可以实现各种实施例;
图2图示了客户端计算机的示意性实施例;
图3图示了网络计算机的示意性实施例;
图4图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的系统的逻辑体系结构;
图5图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的系统的逻辑示意图;
图6图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的传感器和传感器输出信息的逻辑表示;
图7图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的扫描路径的逻辑表示;
图8图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的扫描系统的逻辑表示;
图9图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的扫描系统的逻辑表示;
图10图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的系统的逻辑示意图;
图11图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的系统的逻辑示意图;
图12图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的过程的概览流程图;
图13图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的过程的流程图;
图14图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的过程的流程图;
图15图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的过程的流程图;
图16图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的过程的流程图;并且
图17图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的非限制性用例。
具体实施方式
下面将参考构成本文一部分的附图更充分地描述各种实施例,附图以图示的方式示出了可用来实现本发明的具体示范性实施例。然而,实施例可以以许多不同形式实现,而不应当被解释为限于本文阐述的实施例;更确切地说,提供这些实施例是为了使本公开将会透彻且完整,并且将会把实施例的范围完整地传达给本领域技术人员。除其他事项外,各种实施例可以是方法、系统、介质或设备。因此,各种实施例可以采取完全硬件的实施例、完全软件的实施例或者结合软件和硬件方面的实施例的形式。因此,接下来的详细描述不应被从限制意义上来理解。
在整个说明书和权利要求书中,除非上下文另有明确规定,否则以下术语具有本文明确关联的含义。本文使用的短语“在一个实施例中”不一定是指同一实施例,尽管它可能是。此外,本文使用的短语“在另一个实施例中”不一定是指不同的实施例,尽管它可能是。从而,如下所述,各种实施例可以很容易地被组合起来,而不偏离本发明的范围或精神。
此外,如本文所使用的,术语“或”是包容性的“或”运算符,并且等同于术语“和/或”,除非上下文明确地另有规定。术语“基于”不是排他性的,而是允许基于未描述的其他因素,除非上下文明确地另有规定。此外,在整个说明书各处,“一”和“该”的含义包括多数指代。“在……中”的含义包括“在……中”和“在……上”。
对于示例实施例,以下术语在本文中也根据相应的含义被使用,除非上下文明确地另有规定。
如本文所使用的,术语“引擎”是指体现在硬件或软件指令中的逻辑,它可以用编程语言来编写,例如C、C++、Objective-C、COBOL、JavaTM、PHP、Perl、JavaScript、Ruby、VBScript、Microsoft.NETTM语言,例如C#,等等。引擎可以被编译成可执行的程序或者用解释的编程语言来编写。软件引擎可以是从其他引擎或从其自身可调用的。本文描述的引擎指的是一个或多个逻辑模块,这些模块可以与其他引擎或应用合并,或者可以被划分为子引擎。引擎可以被存储在非暂态计算机可读介质或计算机存储设备中,并且被存储在一个或多个通用计算机上并且由其执行,从而创建被配置为提供该引擎的专用计算机。
如本文所使用的,术语“扫描信号生成器”是指可产生可被扫描/定向以投射到环境中的光束的系统或设备。例如,扫描信号生成器可以是基于双轴微机电系统(microelectromechanical system,MEMS)的快速激光型扫描设备,该设备被安排为在限定的感兴趣区域中进行激光扫描。扫描信号生成器的特性可取决于应用或服务环境而变化。扫描信号生成器并不严格限于激光器或激光MEMS,取决于情况也可采用其他类型的光束信号生成器。扫描信号生成器特性的关键选择标准可包括光束宽度、光束色散、光束能量、(一个或多个)波长、相位,等等。可以选择扫描信号生成器,以使得其能够实现在感兴趣的扫描环境中从被扫描表面或被扫描物体充分精确地反射能量。扫描信号生成器可以被设计成扫描频率高达数十kHz。可以用一个或多个处理器以闭环方式控制扫描信号生成器,这些处理器可以提供关于环境中的物体的反馈,并且指示扫描信号生成器修改其幅度、频率、相位,等等。
如本文所使用的,术语“传感器”是指可以检测来自扫描信号生成器的反射能量的设备或系统。传感器可被视为包括对从扫描信号生成器反射的能量作出响应的检测器单元的阵列。传感器可提供输出,这些输出表明哪些检测器单元被触发以及它们被触发的时间。传感器可被视为生成传感器输出,该输出报告个体单元的单元位置和检测时间,而不是仅限于报告每个单元的状态或状况。例如,传感器可包括事件传感器相机、SPAD阵列、SiPM阵列,等等。
如本文所使用的,术语“轨迹”、“表面轨迹”是指一个或多个数据结构,它们存储或表示可能与由一个或多个传感器感测到的表面相对应的曲线段的参数化表示。轨迹可包括一个或多个属性/元素,这些属性/元素对应于三维空间中的一维分析曲线段的常数或系数。表面的轨迹可以基于一个或多个传感器事件与已知分析曲线的拟合或关联来确定。与分析曲线不一致的传感器事件可被视为噪声或以其他方式从轨迹中排除。
如本文所使用的,术语“配置信息”是指可包括基于规则的策略、模式匹配、脚本(例如,计算机可读指令)等等的信息,这些信息可从各种来源提供,包括配置文件、数据库、用户输入、内置的默认值、插件、扩展,等等,或者其组合。
下面简要描述了本发明的实施例,以便提供对本发明的一些方面的基本理解。这个简要描述并不打算作为广泛的概述。它无意于识别关键或重要的元素,或者划定或以其他方式缩窄范围。其目的仅在于以简化的形式给出一些概念,作为后面给出的更详细描述的前序。
简而言之,各种实施例都是针对感知表面和物体的。在各种实施例中的一个或多个中,可以基于连续的传感器事件流来生成一个或多个轨迹,以使得每个轨迹可以是三维空间中的一维曲线段的参数化表示。
在各种实施例中的一个或多个中,一个或多个轨迹可被采用来确定一个或多个表面。
在各种实施例中的一个或多个中,一个或多个轨迹可被提供给建模引擎,以基于一个或多个轨迹和一个或多个表面来执行一个或多个动作。
在各种实施例中的一个或多个中,响应于对一个或多个表面的一个或多个改变,可以执行进一步的动作,包括:基于连续的传感器事件流更新一个或多个轨迹;基于一个或多个更新后的轨迹和一个或多个改变后的表面执行一个或多个额外的动作;等等。
在各种实施例中的一个或多个中,对一个或多个表面的一个或多个改变可包括位置改变、方向改变、运动改变、一个或多个表面的形变等等中的一个或多个。
在各种实施例中的一个或多个中,可以基于一个或多个传感器来提供连续的传感器事件流,以使得每个传感器事件包括时间戳、飞行时间或位置值中的一个或多个。
在各种实施例中的一个或多个中,可以基于一个或多个表面和一个或多个轨迹的一个或多个特性来确定与一个或多个表面相对应的一个或多个形状。
在各种实施例中的一个或多个中,每个轨迹还可包括B样条(B-spline)的参数化表示。
在各种实施例中的一个或多个中,一个或多个轨迹可被采用来连续地确定对一个或多个表面的位置、一个或多个表面的方向、一个或多个表面的形变、一个或多个表面的运动等等中的一个或多个的一个或多个改变。
在各种实施例中的一个或多个中,建模引擎可被安排为执行进一步的动作,包括,基于可与一个或多个表面的一部分相关联的一个或多个轨迹的一部分来确定一个或多个物体。
在各种实施例中的一个或多个中,建模引擎可被安排为执行进一步的动作,包括,基于一个或多个轨迹确定一个或多个物体的一个或多个特征,以使得该一个或多个特征包括一个或多个物体的位置、方向、运动或形变中的一个或多个。
图示的操作环境
图1示出了其中可实现本发明的实施例的环境的一个实施例的组件。并非所有的组件都是实现本发明所必需的,而且在不脱离本发明的精神或范围的情况下,可以对组件的安排和类型做出变化。如图所示,图1的系统100包括:局域网(local area network,LAN)/广域网(wide area network,WAN)-(网络)110、无线网络108、客户端计算机102-105、应用服务器计算机116、感测系统118,等等。
下文将结合图2更详细地描述客户端计算机102-105的至少一个实施例。在一个实施例中,客户端计算机102-105中的至少一些可以通过一个或多个有线或无线网络(例如,网络108或110)来操作。一般来说,客户端计算机102-105可包括几乎任何能够通过网络通信以发送和接收信息、执行各种在线活动、离线动作等等的计算机。在一个实施例中,客户端计算机102-105中的一个或多个可被配置为在企业或其他实体内操作,以为企业或其他实体执行各种服务。例如,客户端计算机102-105可被配置为作为web服务器、防火墙、客户端应用、媒体播放器、移动电话、游戏机、桌面计算机等等来操作。然而,客户端计算机102-105并不局限于这些服务,而是可以被采用来例如在其他实施例中用于终端用户计算。应当认识到,更多或更少的客户端计算机(如图1所示)可被包括在例如本文所述的系统内,并且实施例因此不受所采用的客户端计算机的数目或类型的约束。
可作为客户端计算机102操作的计算机可包括通常使用有线或无线通信介质连接的计算机,例如个人计算机、多处理器系统、基于微处理器或可编程的电子设备、网络PC,等等。在一些实施例中,客户端计算机102-105可包括几乎任何能够连接到另一计算机并且接收信息的便携式计算机,例如,膝上型计算机103、移动计算机104、平板计算机105,等等。然而,便携式计算机并不受此限制,也可包括其他便携式计算机,例如蜂窝电话、显示寻呼机、射频(radio frequency,RF)设备、红外(infrared,IR)设备、个人数字助理(PersonalDigital Assistant,PDA)、手持式计算机、可穿戴计算机、组合一个或多个前述计算机的集成设备,等等。因此,客户端计算机102-105通常在能力和特征方面范围很广。此外,客户端计算机102-105可以访问各种计算应用,包括浏览器,或者其他基于web的应用。
启用web的客户端计算机可包括浏览器应用,该应用被配置为通过网络发送请求和接收响应。浏览器应用可被配置为接收和显示图形、文本、多媒体,等等,采用几乎任何基于web的语言。在一个实施例中,浏览器应用能够采用JavaScript、超文本标记语言(HyperText Markup Language,HTML)、可扩展标记语言(eXtensible Markup Language,XML)、JavaScript对象符号(JavaScript Object Notation,JSON)、层叠样式表(CascadingStyle Sheet,CSS),等等,或者其组合,来显示和发送消息。在一个实施例中,客户端计算机的用户可以采用浏览器应用来通过网络(在线)执行各种活动。然而,另一个应用也可以被用来执行各种在线活动。
客户端计算机102-105还可包括至少一个其他客户端应用,该应用被配置为在另一计算机之间接收或发送内容。该客户端应用可包括发送或接收内容的能力,或类似的能力。客户端应用可以进一步提供识别其自身的信息,包括类型、能力、名称,等等。在一个实施例中,客户端计算机102-105可以通过各种机制中的任何一种来唯一地识别其自身,包括互联网协议(Internet Protocol,IP)地址、电话号码、移动识别号(MobileIdentification Number,MIN)、电子序列号(electronic serial number,ESN)、客户端证书、或者其他设备标识符。这种信息可以在在其他客户端计算机、应用服务器计算机116、感测系统118或其他计算机之间发送的一个或多个网络封包等等中提供。
客户端计算机102-105还可被配置为包括客户端应用,该应用使得终端用户能够登录到可由另一计算机(例如应用服务器计算机116、感测系统118等等)管理的终端用户账户中。在一个非限制性的示例中,这样的终端用户账户可被配置为使得终端用户能够管理一个或多个在线活动,在一个非限制性的示例中,这些活动包括项目管理、软件开发、系统管理、配置管理、搜索活动、社交网络活动、浏览各种网站、与其他用户交流,等等。另外,客户端计算机可以被安排成使得用户能够显示报告、交互式用户界面、或者由感测系统118提供的结果。
无线网络108被配置为将客户端计算机103-105及其组件与网络110耦合。无线网络108可包括各种无线子网络中的任何一种,这些无线子网络可以进一步覆盖独立的自组织网络,等等,以为客户端计算机103-105提供面向基础设施的连接。这种子网络可包括网状网络、无线局域网(Wireless LAN,WLAN)网络、蜂窝网络,等等。在一个实施例中,该系统可包括一个以上的无线网络。
无线网络108还可包括由无线无线电链路等等连接的终端、网关、路由器等等的自治系统。这些连接器可被配置为自由和随机地移动,并且任意地组织其自身,从而使得无线网络108的拓扑结构可以快速变化。
无线网络108还可以采用多种接入技术,包括用于蜂窝系统的第2代(2G)、第3代(3G)、第4代(4G)、第5代(5G)无线电接入、WLAN、无线路由器(Wireless Router,WR)网格,等等。接入技术,例如2G、3G、4G、5G和未来的接入网络,可以为移动计算机实现广域覆盖,例如具有各种程度的移动性的客户端计算机103-105。在一个非限制性的示例中,无线网络108可以通过诸如全球移动通信系统(Global System for Mobil communication,GSM)、通用封包无线电服务(General Packet Radio Services,GPRS)、增强型数据GSM环境(EnhancedData GSM Environment,EDGE)、码分多路接入(code division multiple access,CDMA)、时分多路接入(time division multiple access,TDMA)、宽带码分多路接入(WidebandCode Division Multiple Access,WCDMA)、高速下行链路封包接入(High Speed DownlinkPacket Access,HSDPA)、长期演进(Long Term Evolution,LTE)等等之类的无线电网络接入实现无线电连接。实质上,无线网络108可包括几乎任何的无线通信机制,通过这些机制,信息可以在客户端计算机103-105和另一计算机、网络、基于云的网络、云实例等等之间传播。
网络110被配置为通过无线网络108或类似的方式将网络计算机与包括应用服务器计算机116、感测系统118、客户端计算机102和客户端计算机103-105在内的其他计算机耦合起来。网络110能够采用任何形式的计算机可读介质,用于将信息从一个电子设备传达给另一个电子设备。另外,除了局域网(local area network,LAN)、广域网(wide areanetwork,WAN)、直接连接,例如通过通用串行总线(universal serial bus,USB)端口、以太网端口、其他形式的计算机可读介质或者其任何组合以外,网络110还可包括互联网。在一组互连的LAN(包括那些基于不同体系结构和协议的LAN)上,路由器作为LAN之间的链路,使得消息能够被从一个LAN发送到另一个。此外,LAN内的通信链路通常包括双绞线或同轴电缆,而网络之间的通信链路可以利用模拟电话线,包括T1、T2、T3和T4的完全或部分专用数字线路,或者其他运营商机制,包括例如电子运营商、综合服务数字网络(IntegratedServices Digital Networks,ISDN)、数字订户线(Digital Subscriber Line,DSL)、包括卫星链路的无线链路、或者本领域技术人员已知的其他通信链路。此外,通信链路还可采用各种数字信令技术中的任何一种,包括但不限于,例如,DS-0、DS-1、DS-2、DS-3、DS-4、OC-3、OC-12、OC-48,等等。此外,远程计算机和其他相关电子设备可以经由调制解调器和临时电话链路远程连接到LAN或WAN。在一个实施例中,网络110可被配置为传输互联网协议(IP)的信息。
此外,通信介质通常包含计算机可读指令、数据结构、程序模块或其他传输机制,并且包括任何信息非暂态输送介质或暂态输送介质。举例来说,通信介质包括有线介质,例如双绞线、同轴电缆、光纤、波导和其他有线介质,以及无线介质,例如声学、RF、红外和其他无线介质。
另外,将在下文结合图3更详细地描述应用服务器计算机116或感测系统118的一个实施例。尽管图1图示了应用服务器计算机116和感测系统118各自作为单个计算机,但创新或实施例并不限于此。例如,应用服务器计算机116、感测系统118等等的一个或多个功能可以分布在一个或多个不同的网络计算机上。此外,在一个或多个实施例中,可以使用多个网络计算机来实现感测系统118。另外,在各种实施例中的一个或多个中,可以使用一个或多个云网络中的一个或多个云实例来实现应用服务器计算机116、感测系统118,等等。因此,这些创新和实施例不应被解释为局限于单个环境,而是还设想了其他配置和其他体系结构。
说明性客户端计算机
图2示出了客户端计算机200的一个实施例,它可包括比所示更多或更少的组件。客户端计算机200可以代表例如图1所示的移动计算机或客户端计算机的一个或多个实施例。
客户端计算机200可包括经由总线228与存储器204通信的处理器202。客户端计算机200还可包括电源230、网络接口232、音频接口256、显示器250、键区252、照明器254、视频接口242、输入/输出接口238、触觉接口264、全球定位系统(global positioning system,GPS)接收器258、露天手势接口260、温度接口262、(一个或多个)相机240、投影仪246、指向设备接口266、处理器可读固定存储设备234、以及处理器可读可移动存储设备236。客户端计算机200可以可选地与基站(未示出)通信,或者直接与另一计算机通信。而在一个实施例中,虽然没有示出,但在客户端计算机200内可以采用陀螺仪来测量或维持客户端计算机200的方向。
电源230可以向客户端计算机200提供电力。可以使用可充电或不可充电的电池来提供电力。电力也可以由外部电源提供,例如AC适配器或者补充或再充电电池的供电坞接托架。
网络接口232包括用于将客户端计算机200耦合到一个或多个网络的电路,并且被构造为与一个或多个通信协议和技术一起使用,包括但不限于实现移动通信的OSI模型(GSM)的任何部分、CDMA、时分多路接入(TDMA)、UDP、TCP/IP、SMS、MMS、GPRS、WAP、UWB、WiMax、SIP/RTP、GPRS、EDGE、WCDMA、LTE、UMTS、OFDM、CDMA2000、EV-DO、HSDPA或者各种其他无线通信协议中的任何一种的的协议和技术。网络接口232有时被称为收发器、收发设备或网络接口卡(network interface card,NIC)。
音频接口256可被安排为产生和接收音频信号,例如人类语音的声音。例如,音频接口256可以耦合到扬声器和麦克风(未示出),以实现与他人的远程通信或者为一些动作生成音频确认。音频接口256中的麦克风也可用于对客户端计算机200的输入或控制,例如,使用语音识别,基于声音检测触摸,等等。
显示器250可以是液晶显示器(liquid crystal display,LCD)、气体等离子体、电子墨水、发光二极管(light emitting diode,LED)、有机LED(Organic LED,OLED)、或者任何其他类型的可与计算机一起使用的光反射或光透射显示器。显示器250还可包括触摸界面244,该界面被安排为接收来自诸如手写笔之类的物体的输入或者来自人类手部的数字,并且可以使用电阻式、电容式、表面声波(surface acoustic wave,SAW)、红外、雷达或其他技术来感测触摸或手势。
投影仪246可以是远程手持式投影仪或集成投影仪,其能够在远程墙壁或任何其他反射物体(例如远程屏幕)上投影图像。
视频接口242可被安排为捕捉视频图像,例如静止照片、视频片段、红外视频,等等。例如,视频接口242可以耦合到数字视频相机、网络摄像头,等等。视频接口242可包括镜头、图像传感器和其他电子器件。图像传感器可包括互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)集成电路,电荷耦合器件(charge-coupled device,CCD),或者任何其他用于感测光的集成电路。
键区252可包括任何被安排来接收来自用户的输入的输入设备。例如,键区252可包括按钮数字拨盘,或者键盘。键区252也可包括与选择和发送图像相关联的命令按钮。
照明器254可以提供状态指示或提供光。照明器254可以在特定的时间段内或者在响应事件消息时保持活跃。例如,当照明器254活跃时,它可以对键区252上的按钮进行背光照明,并且在客户端计算机被通电的同时保持开启。另外,当执行特定的动作,例如拨号给另一客户端机时,照明器254可以以各种模式对这些按钮进行背光照明。照明器254还可以使得定位在客户端计算机的透明或半透明外壳内的光源响应于动作而发亮。
另外,客户端计算机200还可包括硬件安全性模块(hardware security module,HSM)268,用于提供额外的防篡改保障,来生成、存储或使用安全性/加密信息,例如,密钥、数字证书、密码、口令、双因素认证信息,等等。在一些实施例中,硬件安全性模块可以被采用来支持一个或多个标准的公钥基础设施(public key infrastructures,PKI),并且可被采用来生成、管理或存储密钥对,等等。在一些实施例中,HSM 268可以是独立的计算机,在其他情况下,HSM 268可以被安排为硬件卡,该硬件卡可以被添加到客户端计算机。
客户端计算机200还可包括输入/输出接口238,用于与外部外围设备或其他计算机(例如其他客户端计算机和网络计算机)进行通信。外围设备可包括音频耳机、虚拟现实耳机、显示屏幕眼镜、远程扬声器系统、远程扬声器和麦克风系统,等等。输入/输出接口238可以利用一种或多种技术,例如通用串行总线(USB)、红外、WiFi、WiMax、蓝牙TM,等等。
输入/输出接口238还可包括一个或多个传感器,用于确定地理位置信息(例如,GPS)、监视电力状况(例如,电压传感器、电流传感器、频率传感器,等等)、监视天气(例如,恒温器、气压计、风速计、湿度检测器、降水计,等等),等等。传感器可以是一个或多个硬件传感器,它们收集或测量客户端计算机200外部的数据。
触觉接口264可被安排为向客户端计算机的用户提供触觉反馈。例如,触觉接口264可被采用来在计算机的另一用户呼叫时以特定方式振动客户端计算机200。温度接口262可用于向客户端计算机200的用户提供温度测量输入或温度变化输出。露天手势接口260可以感测客户端计算机200的用户的物理手势,例如,通过使用单个或立体视频相机、雷达、用户持有或佩戴的计算机内部的陀螺仪传感器,等等。相机240可用于跟踪客户端计算机200的用户的物理眼球运动。
GPS收发器258可以确定客户端计算机200在地球表面上的物理坐标,它通常以纬度和经度值的形式输出位置。GPS收发器258还可以采用其他地理定位机制,包括但不限于三角测量、辅助GPS(assisted GPS,AGPS)、增强型观测时间差(Enhanced Observed TimeDifference,E-OTD)、小区标识符(Cell Identifier,CI)、服务区域标识符(Service AreaIdentifier,SAI)、增强型定时提前(Enhanced Timing Advance,ETA)、基站子系统(BaseStation Subsystem,BSS),等等,以进一步确定客户端计算机200在地球表面上的物理位置。可以理解的是,在不同条件下,GPS收发器258可以确定客户端计算机200的物理位置。然而,在一个或多个实施例中,客户端计算机200可以通过其他组件提供可被采用来确定客户端计算机的物理位置的其他信息,包括例如介质接入控制(Media Access Control,MAC)地址、IP地址,等等。
在各种实施例中的至少一个中,应用,例如操作系统206、其他客户端应用224、web浏览器226,等等,可被安排为采用地理位置信息来选择一个或多个本地化特征,例如,时区、语言、货币、日历格式,等等。本地化特征可用于文件系统、用户界面、报告以及内部进程或数据库中。在各种实施例中的至少一个中,用于选择本地化信息的地理位置信息可以由GPS258提供。另外,在一些实施例中,地理位置信息可包括使用一个或多个地理位置协议通过网络提供的信息,例如,无线网络108或网络111。
人机界面组件可以是与客户端计算机200物理分离的外围设备,允许对客户端计算机200进行远程输入或输出。例如,如这里所述的通过人机界面组件(例如显示器250或键盘252)路由的信息可以改为通过网络接口232被路由到位于远程的适当的人机界面组件。可以在远程的人机界面外围组件的示例包括但不限于音频设备、指向设备、键区、显示器、相机、投影仪,等等。这些外围组件可以通过Pico网络,例如蓝牙TM、ZigbeeTM,等等,来进行通信。具有这种外围人机界面组件的客户端计算机的一个非限制性示例是可穿戴计算机,它可能包括远程微型投影仪以及一个或多个相机,这些相机与位置分开的客户端计算机进行远程通信,以感测用户对微型投影仪投射到反射表面(例如,墙壁或用户的手)上的图像部分的手势。
客户端计算机可包括web浏览器应用226,该应用被配置为接收和发送网页、基于web的信息、图形、文本、多媒体,等等。客户端计算机的浏览器应用可以采用几乎任何编程语言,包括无线应用协议消息(wireless application protocol,WAP),等等。在一个或多个实施例中,浏览器应用能够采用手持设备标记语言(Handheld Device MarkupLanguage,HDML)、无线标记语言(Wireless Markup Language,WML)、WMLScript、JavaScript、标准通用标记语言(Standard Generalized Markup Language,SGML)、超文本标记语言(HyperText Markup Language,HTML)、可扩展标记语言(eXtensible MarkupLanguage,XML)、HTML5,等等。
存储器204可包括RAM、ROM或者其他类型的存储器。存储器204图示了计算机可读存储介质(设备)的一个示例,用于存储信息,例如计算机可读指令、数据结构、程序模块或其他数据。存储器204可以存储BIOS208,用于控制客户端计算机200的低级别操作。存储器还可以存储操作系统206,用于控制客户端计算机200的操作。将会明白,这个组件可包括通用的操作系统,例如某个版本的UNIX或或者专门的客户端计算机通信操作系统,例如Windows PhoneTM,或者/>操作系统。该操作系统可包括,或者与Java虚拟机模块相对接,该模块使得能够经由Java应用程序控制硬件组件或操作系统操作。
存储器204还可包括一个或多个数据存储210,它可以被客户端计算机200利用来存储应用220或其他数据,等等。例如,数据存储210也可以被采用来存储描述客户端计算机200的各种能力的信息。然后,该信息可以基于各种方法中的任何一种被提供给另一设备或计算机,包括在通信期间作为头部的一部分发送,根据请求发送,等等。数据存储210也可被采用来存储社交网络信息,包括地址簿、好友列表、别名、用户资料信息,等等。数据存储210还可包括程序代码、数据、算法,等等,用于由处理器(例如处理器202)执行和实现动作。在一个实施例中,数据存储210的至少一部分也可以被存储在客户端计算机200的另一个组件上,包括但不限于非暂态处理器可读可移动存储设备236、处理器可读固定存储设备234,或者甚至是客户端计算机的外部。
应用220可包括计算机可执行指令,这些指令在被客户端计算机200执行时,发送、接收或以其他方式处理指令和数据。应用220可包括例如其他客户端应用224、web浏览器226,等等。客户端计算机可被安排为与应用服务器或网络监视计算机交换通信,例如,查询、搜索、消息、通知消息、事件消息、传感器事件、警报、性能度量、日志数据、API调用,等等,其组合。
应用程序的其他示例包括日历、搜索程序、电子邮件客户端应用、IM应用、SMS应用、互联网协议语音(Voice Over Internet Protocol,VOIP)应用、联系人管理器、任务管理器、转码器、数据库程序、字处理程序、安全性应用、电子表格程序、游戏、搜索程序,等等。
此外,在一个或多个实施例中(图中未示出),客户端计算机200可包括嵌入式逻辑硬件设备,而不是CPU,例如,专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、可编程阵列逻辑(Programmable Array Logic,PAL),等等,或者其组合。嵌入式逻辑硬件设备可以直接执行其嵌入式逻辑来执行动作。另外,在一个或多个实施例中(图中未示出),客户端计算机200可包括一个或多个硬件微控制器而不是CPU。在一个或多个实施例中,一个或多个微控制器可以直接执行其自己的嵌入式逻辑来执行动作,并且访问其自己的内部存储器和其自己的外部输入和输出接口(例如,硬件引脚或无线收发器)来执行动作,例如片上系统(SystemOn a Chip,SOC),等等。
说明性网络计算机
图3示出了可被包括在实现各种实施例中的一个或多个的系统中的网络计算机300的一个实施例。网络计算机300可包括比图3所示更多或更少的组件。然而,所示出的组件足以公开用于实现这些创新的说明性实施例。网络计算机300可以代表例如图1的应用服务器计算机116或者感测系统118中的至少一者的一个实施例。
网络计算机,例如,网络计算机300,可包括处理器302,该处理器可以经由总线328与存储器304进行通信。在一些实施例中,处理器302可以由一个或多个硬件处理器,或者一个或多个处理器核心组成。在一些情况下,一个或多个处理器中的一个或多个可以是专门的处理器,被设计为执行一个或多个专门的动作,例如,本文描述的那些。网络计算机300还包括电源330、网络接口332、音频接口356、显示器350、键盘352、输入/输出接口338、处理器可读的固定存储设备334、以及处理器可读的可移动存储设备336。电源330向网络计算机300提供电力。
网络接口332包括用于将网络计算机300连接到一个或多个网络的电路,并且被构造为与一个或多个通信协议和技术一起使用,包括但不限于实现开放系统互连模型(OSI模型)的任何部分、全球移动通信系统(global system for mobile communication,GSM)、码分多路接入(code division multiple access,CDMA)、时分多路接入(time divisionmultiple access,TDMA)、用户数据报协议(user datagram protocol,UDP)、传输控制协议/互联网协议(transmission control protocol/Internet protocol,TCP/IP)、短消息服务(Short Message Service,SMS)、多媒体消息传递服务(Multimedia MessagingService,MMS)、通用封包无线电服务(general packet radio service,GPRS)、WAP、超宽带(ultra-wide band,UWB)、IEEE 802.16微波接入全球互通(Worldwide Interoperabilityfor Microwave Access,WiMax)、会话发起协议/实时传输协议(Session InitiationProtocol/Real-time Transport Protocol,SIP/RTP)或者各种其他有线和无线通信协议中的任何一种的协议和技术。网络接口332有时被称为收发器、收发设备或网络接口卡(network interface card,NIC)。网络计算机300可以可选地与基站(未示出)通信,或者直接与另一计算机通信。
音频接口356被安排为产生和接收音频信号,例如人类语音的声音。例如,音频接口356可以耦合到扬声器和麦克风(未示出),以实现与他人的远程通信或者为一些动作生成音频确认。音频接口356中的麦克风也可用于对网络计算机300的输入或控制,例如,使用语音识别。
显示器350可以是液晶显示器(liquid crystal display,LCD)、气体等离子体、电子墨水、发光二极管(light emitting diode,LED)、有机LED(Organic LED,OLED)、或者任何其他类型的可与计算机一起使用的光反射或光透射显示器。在一些实施例中,显示器350可以是手持式投影仪或微型投影仪,能够在墙壁或其他物体上投影图像。
网络计算机300还可包括输入/输出接口338,用于与图3中未示出的外部设备或计算机进行通信。输入/输出接口338可以利用一种或多种有线或无线通信技术,例如USBTM、FirewireTM、WiFi、WiMax、ThunderboltTM、红外、蓝牙TM、ZigbeeTM、串行端口、并行端口,等等。
另外,输入/输出接口338还可包括一个或多个传感器,用于确定地理位置信息(例如,GPS)、监视电力状况(例如,电压传感器、电流传感器、频率传感器,等等)、监视天气(例如,恒温器、气压计、风速计、湿度检测器、降水计,等等),等等。传感器可以是一个或多个硬件传感器,它们收集或测量网络计算机300外部的数据。人机界面组件可以与网络计算机300物理分离,允许对网络计算机300进行远程输入或输出。例如,如这里所述的通过人机界面组件(例如显示器350或键盘352)路由的信息可以改为通过网络接口332被路由到位于网络上的其他地方的适当的人机界面组件。人机界面组件包括任何允许计算机从计算机的人类用户那里取得输入或向其发送输出的组件。因此,诸如鼠标、手写笔、轨迹球等等之类的指向设备可以通过指向设备接口358进行通信,以接收用户输入。
GPS收发器340可以确定网络计算机300在地球表面上的物理坐标,它通常以纬度和经度值的形式输出位置。GPS收发器340还可以采用其他地理定位机制,包括但不限于三角测量、辅助GPS(assisted GPS,AGPS)、增强型观测时间差(Enhanced Observed TimeDifference,E-OTD)、小区标识符(Cell Identifier,CI)、服务区域标识符(Service AreaIdentifier,SAI)、增强型定时提前(Enhanced Timing Advance,ETA)、基站子系统(BaseStation Subsystem,BSS),等等,以进一步确定网络计算机300在地球表面上的物理位置。可以理解的是,在不同条件下,GPS收发器340可以确定网络计算机300的物理位置。然而,在一个或多个实施例中,网络计算机300可以通过其他组件提供可被采用来确定客户端计算机的物理位置的其他信息,包括例如介质接入控制(Media Access Control,MAC)地址、IP地址,等等。
在各种实施例中的至少一个中,应用,例如操作系统306、感测引擎322、建模引擎324、web服务329,等等,可被安排为采用地理位置信息来选择一个或多个本地化特征,例如,时区、语言、货币、货币格式、日历格式,等等。本地化特征可用于文件系统、用户界面、报告以及内部进程或数据库中。在各种实施例中的至少一个中,用于选择本地化信息的地理位置信息可以由GPS 340提供。另外,在一些实施例中,地理位置信息可包括使用一个或多个地理位置协议通过网络提供的信息,例如,无线网络108或网络111。
存储器304可包括随机访问存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、或者其他类型的存储器。存储器304图示了计算机可读存储介质(设备)的一个示例,用于存储信息,例如计算机可读指令、数据结构、程序模块或其他数据。存储器304存储基本输入/输出系统(basic input/output system,BIOS)308,用于控制网络计算机300的低级别操作。存储器还存储操作系统306,用于控制网络计算机300的操作。将会明白,这个组件可包括通用的操作系统,例如某个版本的或者/>或者专门的操作系统,例如微软公司的/>操作系统,或者苹果公司的/>操作系统。该操作系统可包括或者与一个或多个虚拟机模块相对接,例如Java虚拟机模块,该模块使得能够经由Java应用程序控制硬件组件或操作系统操作。同样地,也可包括其他运行时环境。
存储器304还可包括一个或多个数据存储310,它可以被网络计算机300利用来存储应用320或其他数据,等等。例如,数据存储310也可以被采用来存储描述网络计算机300的各种能力的信息。然后,该信息可以基于各种方法中的任何一种被提供给另一设备或计算机,包括在通信期间作为头部的一部分发送,根据请求发送,等等。数据存储310也可被采用来存储社交网络信息,包括地址簿、好友列表、别名、用户资料信息,等等。数据存储310还可包括程序代码、数据、算法,等等,用于由处理器(例如处理器302)执行和实现动作,例如下文描述的那些动作。在一个实施例中,数据存储310的至少一部分也可以被存储在网络计算机300的另一个组件上,包括但不限于处理器可读可移动存储设备336、处理器可读固定存储设备334、或者网络计算机300内的任何其他计算机可读存储设备内部的非暂态介质,或者甚至是网络计算机300外部的。数据存储310可包括例如评估模型314,等等。
应用320可包括计算机可执行指令,这些指令在由网络计算机300执行时,发送、接收或以其他方式处理消息(例如,SMS、多媒体消息传递服务(Multimedia MessagingService,MMS)、即时消息(Instant Message,IM)、电子邮件或其他消息)、音频、视频,并且使得能够与另一移动计算机的另一用户进行远程通信。应用程序的其他示例包括日历、搜索程序、电子邮件客户端应用、IM应用、SMS应用、互联网协议语音(Voice Over InternetProtocol,VOIP)应用、联系人管理器、任务管理器、转码器、数据库程序、字处理程序、安全性应用、电子表格程序、游戏、搜索程序,等等。应用320可包括感测引擎322、建模引擎324、web服务329,等等,它们可被安排为执行下文描述的实施例的动作。在各种实施例中的一个或多个中,一个或多个应用可以被实现为另一个应用的模块或组件。另外,在各种实施例中的一个或多个中,应用可以被实现为操作系统扩展、模块、插件,等等。
此外,在各种实施例中的一个或多个中,感测引擎322、建模引擎324、web服务329等等可以在基于云的计算环境中操作。在各种实施例中的一个或多个中,构成管理平台的这些应用和其他应用可以在虚拟机或虚拟服务器内执行,这些虚拟机或虚拟服务器可以在基于云的计算环境中被管理。在各种实施例中的一个或多个中,在这种情境中,应用可以从基于云的环境内的一个物理网络计算机流向另一个,这取决于由云计算环境自动管理的性能和缩放考虑。同样地,在各种实施例中的一个或多个中,专用于感测引擎322、建模引擎324、web服务329等等的虚拟机或虚拟服务器可被自动配设和废止。
另外,在各种实施例中的一个或多个中,感测引擎322、建模引擎324、web服务329等等可以位于在基于云的计算环境中运行的虚拟服务器中,而不是被绑定到一个或多个特定的物理网络计算机。
另外,网络计算机300还可包括硬件安全性模块(hardware security module,HSM)360,用于提供额外的防篡改保障,来生成、存储或使用安全性/加密信息,例如,密钥、数字证书、密码、口令、双因素认证信息,等等。在一些实施例中,硬件安全性模块可以采用来支持一个或多个标准的公钥基础设施(public key infrastructures,PKI),并且可被采用来生成、管理或存储密钥对,等等。在一些实施例中,HSM 360可以是独立的网络计算机,在其他情况下,HSM 360可以被安排为硬件卡,该硬件卡可以被安排在网络计算机中。
此外,在一个或多个实施例中(图中未示出),网络计算机300可包括嵌入式逻辑硬件设备,而不是CPU,例如,专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、可编程阵列逻辑(Programmable Array Logic,PAL),等等,或者其组合。嵌入式逻辑硬件设备可以直接执行其嵌入式逻辑来执行动作。另外,在一个或多个实施例中(图中未示出),网络计算机可包括一个或多个硬件微控制器而不是CPU。在一个或多个实施例中,一个或多个微控制器可以直接执行其自己的嵌入式逻辑来执行动作,并且访问其自己的内部存储器和其自己的外部输入和输出接口(例如,硬件引脚或无线收发器)来执行动作,例如片上系统(System On aChip,SOC),等等。
说明性逻辑系统体系结构
图4图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的系统400的逻辑体系结构。
在这个示例中,对于一些实施例,感测系统,例如系统400,可包括一个或多个服务器,例如感测服务器402。在一些实施例中,感测服务器可被安排为包括:一个或多个感测引擎,例如,感测引擎404;一个或多个建模引擎,例如,建模引擎404;一个或多个感测引擎,例如,感测引擎406。
另外,在一些实施例中,感测系统可包括一个或多个信号生成器,这些信号生成器至少可以基于来自信号生成器的能量从表面反射的位置生成传感器信息。在这个示例中,对于一些实施例,信号生成器408可以被认为是激光扫描系统。另外,在一些实施例中,感测系统可包括一个或多个传感器,这些传感器可以接收反射的信号能量。在这个示例中,对于一些实施例,传感器可以被认为是可被安排为生成与反射的信号能量相对应的传感器信息的传感器。在这个示例中,传感器,例如传感器410、传感器412、传感器414,可以被认为是CCD之类的,其基于检测反射的信号能量的CCD单元提供二维(2D)传感器信息。
因此,在一些实施例中,来自每个传感器的2D传感器信息可以被提供给感测引擎,例如,感测引擎404。在一些实施例中,感测引擎可被安排为基于三角测量或类似的方法将传感器提供的2D点合成为3D点。
另外,在一些实施例中,感测引擎可被安排为采用指导信号生成器(例如,扫描激光器408)基于一个或多个路径函数遵循特定模式。从而,在一些实施例中,信号生成器可以使用已知的精确路径扫描主题区域,该路径可以使用与扫描的曲线/路径相对应的一个或多个函数来定义或描述。
因此,在一些实施例中,感测引擎可被安排为基于传感器提供的3D传感器信息和已知的扫描曲线模式来合成关于信号生成器所扫描的物体或表面的信息。
在一些实施例中,扫描信号生成器408可以使用一个或多个快速激光扫描设备来实现,例如扫描激光束的双轴MEMs镜。在一些实施例中,激光的波长可以在从UV到IR的宽广范围内。在一些实施例中,扫描信号生成器可被设计为扫描频率高达数十kHz。在一些实施例中,可以使用一个或多个处理器以闭环方式控制扫描信号生成器,这些处理器可以提供关于环境中的物体的反馈,并且指示扫描信号生成器调适幅度、频率、相位等等中的一个或多个。在一些情况下,对于一些实施例,扫描信号生成器可被安排为周期性地开启和关闭,例如,在扫描器可能在改变方向或逆转方向之前放缓的点。
在一些实施例中,系统400可包括两个或更多个传感器,例如,传感器410,传感器412,传感器414,等等。在一些实施例中,传感器可包括对反射的信号能量作出响应的像素或单元的阵列。在一些实施例中,传感器可被安排成使得一些或所有的传感器与彼此以及与扫描信号生成器共享其视场的一部分。另外,在一些实施例中,每个传感器的相对位置和姿态可以是已知的。另外,在一些实施例中,每个传感器都采用同步的时钟。例如,在一些实施例中,传感器可以通过使用一个传感器的时钟作为主时钟或者通过使用周期性地向传感器发送同步信号的外部源来实现时间同步。或者,在一些实施例中,传感器可被安排为彼此独立地或异步地向感测引擎提供传感器事件。
因此,当来自扫描信号生成器的光束扫描过场景时,传感器接收反射的信号能量(例如,来自激光器的光子/光),并且基于观察场景中的物理反射在其单元/像素中触发事件。因此,在一些实施例中,传感器中的每个事件(例如,传感器事件)可以基于单元位置和基于在每个传感器中检测到反射能量的地点和时间的时间戳来确定。从而,在一些实施例中,每个传感器在检测到每个传感器事件时独立报告该事件,而不是在提供传感器事件之前从整个传感器阵列收集信息/信号。这种行为可被视为与许多传统的像素阵列或CCD是可区分的,后者在输出信号数据之前可能会对整个单元阵列进行“光栅扫描”。相比之下,传感器,例如传感器410、传感器412、传感器414等等,可以立即并且连续地报告来自个体单元的信号(如果有的话)。因此,个体传感器中的单元不共享集体曝光时间,而是每个单元报告其自己的检测事件。因此,在一些实施例中,传感器,例如传感器410、传感器412、传感器414等等,可以基于事件传感器相机、SPAD、SiPM阵列,等等。
图5图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的系统500的逻辑示意图。在一些实施例中,感测引擎,例如感测引擎502,可被安排为被提供表示传感器信息的传感器输出,例如,位置、定时。如上所述,在一些实施例中,信号生成器,例如,扫描激光器,可以扫描感兴趣的区域,以使得能量的反射可以被传感器收集。因此,在一些实施例中,来自每个传感器的信息可以被提供给感测引擎502。
另外,在一些实施例中,感测引擎502可以被提供扫描路径,该路径对应于扫描信号生成器的扫描路径。因此,在一些实施例中,感测引擎502可以采用扫描路径来确定扫描信号生成器为了扫描感兴趣的区域而穿越的路径。
因此,在一些实施例中,感测引擎502可被安排为基于传感器输出来生成与三维的表面位置相对应的传感器事件。例如,如果可能有三个传感器,则感测引擎可以采用三角测量来计算感兴趣区域中扫描信号能量被反射的位置。本领域的普通技术人员将会明白,如果传感器的位置是已知的,则可以应用三角测量或其他类似的技术来确定扫描的位置。
在一些实施例中,扫描信号生成器(例如,快速扫描激光器)可被配置为执行精确扫描模式。因此,在一些实施例中,感测引擎502可以被提供特定的扫描路径功能。另外,在一些实施例中,感测引擎502可被安排为基于配置信息来确定特定的扫描路径,以考虑到本地要求的本地情况。
在各种实施例中的一个或多个中,感测引擎,例如,感测引擎502,可以生成表面轨迹的序列,该序列可以基于扫描路径和从传感器输出504合成的传感器信息。
图6图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的传感器和传感器输出信息的逻辑表示。
在各种实施例中的一个或多个中,感测引擎可被提供来自各种传感器的传感器输出。在一些实施例中,特定的传感器特性可以取决于基于感测表面和感测表面运动的感知物体可能被指向的特定应用而变化。在这个示例中,对于一些实施例,传感器602A可以被认为代表通用传感器,它可以发出对应于传感器上的精确位置的信号,在该位置可以检测到来自扫描信号生成器的反射能量。例如,传感器602A可以被认为是检测器单元的阵列,该阵列报告检测到从扫描信号生成器反射的能量的单元位置。在这个示例中,水平位置604和垂直位置606可被视为表示与传感器602中检测到反射信号能量的位置相对应的位置。
在各种实施例中的一个或多个中,感测引擎可被安排为从一个或多个传感器接收一个或多个检测事件的传感器信息。因此,在一些实施例中,感测引擎可被安排为基于三角测量或其他方法确定关于反射能量的来源(被扫描表面上的光束位置)的额外信息。在一些实施例中,如果感测引擎采用三角测量或其他方法来定位扫描环境中的信号束的位置,则组合的传感器信息可被视为单个传感器事件,包括水平(x)位置、垂直位置(y)和时间分量(t)。另外,在一些实施例中,传感器事件可包括其他信息,例如,飞行时间信息,这取决于传感器的类型或能力。
另外,如上所述,扫描信号生成器(例如,扫描激光器)可被配置为穿越精确的路径/曲线(例如,扫描路径)。因此,在一些实施例中,检测反射能量的传感器中的单元的模式或序列将遵循与扫描信号生成器的路径/曲线有关的路径/曲线。因此,在一些实施例中,如果信号生成器扫描特定的路径/曲线,则可以检测到传感器中激活的单元的相关路径/曲线。从而,在这个示例中,对于一些实施例,路径608可以表示传感器602B中检测到了来自扫描信号生成器的反射能量的单元的序列。
在各种实施例中的一个或多个中,感测引擎可被安排为将传感器事件拟合到扫描路径曲线。因此,在各种实施例中的一个或多个中,感测引擎可被安排为基于扫描路径曲线来预测传感器事件应当在何处发生,以确定关于被扫描的表面或物体的位置或方向的信息。从而,在一些实施例中,如果感测引擎接收到与已知的扫描路径曲线不相关联的传感器事件,则感测引擎可被安排为执行各种操作,例如,关闭当前轨迹并且开始新的轨迹,将传感器事件作为噪声丢弃,等等。
在各种实施例中的一个或多个中,可以在扫描信号生成器和传感器的限制或约束内预先配置扫描路径曲线。例如,扫描信号生成器可以被配置或指示为使用包括利萨裘斯曲线、2D线之类的各种曲线来对扫描环境进行扫描。在一些情况下,扫描路径曲线可以被认为是分段函数,因为它们在扫描的不同部分改变方向或形状。例如,如果接近了扫描环境(例如,视场)的边缘,则2D线扫描路径可被配置为改变方向。
本领域的普通技术人员将会明白,如果扫描无障碍的表面,则扫描频率、扫描路径和传感器响应频率可以决定传感器检测路径是否看起来是连续的路径。从而,扫描信号生成器、传感器精度、传感器响应频率之类的操作要求可能取决于系统的应用而不同。例如,如果扫描环境可能是相对低特征和静态的,则传感器可具有较低的响应时间,因为扫描的环境没有很快地变化。另外,例如,如果扫描环境是动态的或包括更多感兴趣的特征,则传感器可能需要增大响应速度或精度,以准确地捕捉反射信号能量的路径。另外,在一些实施例中,扫描信号生成器的特性可取决于扫描环境而变化。例如,如果激光器被用于扫描信号生成器,则能量水平、波长、相位、光束宽度等等可以被调整以适应环境。
在各种实施例中的一个或多个中,感测引擎可以被提供作为连续的传感器事件流或传感器信息的传感器输出,该传感器信息识别了传感器单元阵列中的单元位置和与检测事件发生时间相对应的时间戳。
在这个示例中,对于一些实施例,数据结构610可以被认为是用于表示基于提供给感测引擎的传感器输出的传感器事件的数据结构。在这个示例中,列612表示位置在扫描环境中的水平位置,列614表示在扫描环境中的垂直位置,而列616表示事件的时间。因此,在一些实施例中,感测引擎可被安排为确定哪些(如果有的话)传感器事件应当与轨迹相关联。在一些实施例中,感测引擎可被安排为将传感器事件与现有轨迹相关联或创建新轨迹。在一些实施例中,如果传感器事件符合基于扫描路径曲线确定的预期/预测曲线,则感测引擎可被安排为将传感器事件与现有轨迹相关联或创建新轨迹。另外,在一些情况下,对于一些实施例,如果一个或多个传感器事件的位置偏离预测路径超过了定义的阈值,则感测引擎可被安排为将其确定为噪声。
在各种实施例中的一个或多个中,感测引擎可被安排为确定每个个体传感器的传感器事件,而不是被限制为提供基于来自多个传感器的输出计算的传感器事件。例如,在一些实施例中,感测引擎可被安排为提供类似于数据结构610的数据结构以收集个体传感器的传感器事件。
在一些实施例中,感测引擎可被安排为生成与由传感器检测到的反射能量路径相对应的轨迹的序列。在一些实施例中,感测引擎可被安排为采用一个或多个数据结构,例如,数据结构618,来表示基于传感器捕捉的信息而确定的轨迹。在这个示例中,数据结构610可以是包括列的表格状结构,例如,用于存储第一x位置的列620,用于存储第二x位置的列622,用于存储第一y位置的列624,用于存储第二y位置的列626,用于存储轨迹的开始时间的列628,用于存储轨迹的结束时间的列630,等等。
在这个示例中,行632表示第一轨迹的信息,行634表示另一轨迹的信息。如本文所述,感测引擎可被安排为采用一个或多个规则或试探方法来确定一个轨迹是否结束,另一个轨迹是否开始。在一些实施例中,这种试探方法可包括观察在几何上接近或时间上接近的传感器事件的发生。注意,轨迹的特定成分或元素可以取决于分析曲线的参数化表示或与扫描路径相关联的分析曲线的类型以及被扫描表面的形状或方向而变化。因此,本领域的普通技术人员将会明白,不同类型的分析曲线或曲线表示法可能会导致每个轨迹的更多或更少的参数。从而,在一些实施例中,感测引擎可被安排为基于经由配置信息提供的规则、模板、库等等来确定轨迹的特定参数,以考虑到本地情况或本地要求。
在各种实施例中的一个或多个中,可以使用曲线参数而不是个体点或像素的集合来表示轨迹。因此,在一些实施例中,感测引擎可被安排为采用一种或多种数值方法来连续地将传感器事件的序列拟合到扫描路径曲线。
另外,在一些实施例中,感测引擎可被安排为采用一种或多种平滑方法来改善轨迹或轨迹拟合的准确性。例如,在一些实施例中,扫描曲线可以由扫描激光器触发的传感器事件组成,这些事件可能不是一个单元的宽度,因为在一些情况下,反射的能量可能会溅到邻近的单元或落在两个或更多个单元的边界上。因此,在一些实施例中,为了更好地估计反射信号束在穿越传感器平面时的真实位置,感测引擎可被安排为执行在线平滑估计,例如,使用平滑卡尔曼滤波器,来预测扫描光束点应当在检测器单元位置的零头单位和传感器的基本时间戳的零头单位的位置。另外,在一些实施例中,感测引擎可被安排为采用基于批次的优化例程,例如加权最小二乘法,来将平滑曲线拟合到扫描轨迹的连续片段,这可能对应于扫描信号生成器光束在连续表面上扫描时。
另外,在一些实施例中,可以采用扫描路径来确定轨迹是否开始或结束。例如,如果扫描路径到达扫描区域的边缘并且改变方向,则在一些情况下,当前的轨迹可能被终止,而新的轨迹可能被启动,以基于新的扫描方向开始捕捉信息。另外,在一些实施例中,遮挡或阻碍扫描能量或反射的扫描能量的物体或其他特征可能会导致传感器输出的中断,这会引入间隙或其他不连续性,这可能会触发一条轨迹被关闭,而另一条轨迹在中断或间隙之后被打开。另外,在一些实施例中,感测引擎可被配置为具有最大的轨迹长度,这样,如果它已经收集了足够的传感器事件或者从轨迹开始已经过了足够的时间,那么轨迹可以被关闭。
另外,在一些实施例中,感测引擎可被安排为确定个体传感器的轨迹。因此,在一些实施例中,感测引擎可被安排为为每个传感器提供类似于数据结构618的数据结构。
图7图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的扫描路径的逻辑表示。在一些实施例中,感测引擎可被安排为基于反射的扫描信号能量来收集传感器输出。在一些实施例中,感测引擎可被安排为部分地基于扫描信号生成器的扫描路径来解释传感器输出信息。
在各种实施例中的一个或多个中,感测引擎可被安排为指导扫描信号生成器穿越由一个或多个曲线函数定义的特定路径。例如,扫描表面702表示正在使用扫描路径710进行扫描的表面。因此,在一些实施例中,感测引擎可以预期或预测反射能量以坚持扫描路径。在这个示例中,表面702是使用直线线性路径来扫描的,该路径可对应于特定的2D线函数。在这个示例中,只说明了扫描模式的一部分。
同样地,对于一些实施例,表面704说明了快速扫描如何覆盖整个表面。在一些实施例中,扫描的覆盖可取决于扫描路径、扫描频率等等而变化,并且可适应于各种应用或各种环境。例如,一些应用可能需要比其他环境更精细更精确的扫描,这取决于被扫描的表面或物体的各种特性。
在一些实施例中,由传感器收集的观察到的扫描路径可能偏离计划的扫描路径,因为物体或表面特征更改了观察到的或反射的扫描路径。例如,表面706说明了类似于对于表面702所示出的扫描路径,然而,在路径部分712,扫描路径出现形变。在这个示例中,这代表了居间的物体或表面特征可如何更改可能被传感器观察到的反射扫描能量路径。例如,比较表面702的扫描路径和表面706的扫描路径可表明,物体或表面特征可能存在于表面706中,而不存在于表面702中。
另外,在一些实施例中,观察到的扫描路径中的偏转可能对应于被扫描表面相对于扫描信号生成器或传感器的方向。例如,对于一些实施例,表面708可以表示相对于表面702和扫描信号生成器(未示出)旋转的表面。因此,在一些实施例中,感测引擎可被安排为基于比较扫描路径和实际反射的扫描路径来确定表面方向,以确定表面可能相对于信号生成器旋转。从而,在这个示例中,产生轨迹714和轨迹710A/710B的扫描路径可以被认为是相似的。然而,在这个示例中,由于被扫描表面的方向的差异,轨迹本身是不同的。因此,在一些实施例中,建模引擎可被安排为检测或表征扫描路径和传感器检测到的反射路径之间的差异,以确定表面708可以相对于感测系统旋转。
另外,在一些实施例中,如上所述,感测引擎可被安排为收集与传感器检测到的反射扫描能量相对应的轨迹的序列。在这个示例中,对于一些实施例,位置710A可以表示轨迹的开始,并且位置710B可以表示轨迹的终点。注意,轨迹可以表示许多传感器事件,这些事件被联系在一起以确定轨迹。在这个示例中,可以假定扫描信号生成器被配置为如果它到达扫描环境的边缘就改变方向。因此,在这个示例中,扫描信号生成器改变方向的位置可以被视为不连续点,该不连续点结束一个轨迹并且开始另一个轨迹。
在各种实施例中的一个或多个中,感测引擎可被安排为引导扫描路径,以使得路径的曲线可以相互交叉。因此,在一些实施例中,如果扫描路径与自身交叉,则被扫描的表面的法线可通过确定每个轨迹在交叉点处的切线来计算。在一些实施例中,感测引擎可被安排为通过计算切线的交叉乘积来计算被扫描表面的法线,直到一个符号为止。在一些实施例中,感测引擎可被安排为通过选择最接近地指向回到感测系统的方向的法线的方向来确定法线的符号,因为那是感测系统可能看到的表面的唯一物理上可能的方向。此外,在一些实施例中,扫描路径穿过表面或物体的个体轨迹的曲率可用于近似二维表面的曲率。例如,本领域的普通技术人员将会明白,嵌入在3D空间中的交叉1D B样条可用于估计嵌入在3D空间中的2D表面B样条。此外,在一些实施例中,随着更多的1D曲线穿越由2D表面B样条参数化的区域,感测引擎可被安排为进一步细化2D表面B样条,以更好地近似物体表面。
图8图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的扫描系统800的逻辑表示。如上所述,扫描系统,例如,扫描系统800,可包括:一个或多个扫描信号生成器,例如,扫描信号生成器802;多个传感器,例如,传感器804A、传感器804B、传感器804C,等等。注意,可以假设一个或多个感测引擎(未示出)或建模引擎(未示出)可以与扫描信号生成器802和传感器804A、传感器804B、传感器804C等等通信地耦合。或者,在一些实施例中,一个或多个感测引擎或建模引擎可以由可能在提供扫描信号或传感器的相同的计算机、设备或器具来容宿,例如,机器人、自主车辆,等等。
另外,在这个示例中,表面806A表示扫描环境中的表面的自上而下的视图。而且,在这个示例中,物体808A表示介于表面806A和扫描信号生成器802之间的物体的自上而下的视图。如本文所述,扫描信号生成器802可以是扫描激光器,被配置为以定义的扫描速率穿越定义的扫描路径。同样地,如本文所述,传感器804A、传感器804B、传感器804C,等等,可基于从表面806A和物体808A反射的能量来向感测引擎提供传感器输出。因此,在一些实施例中,感测引擎可被安排为生成与感测输出和扫描路径相对应的轨迹。
在这个示例中,对于一些实施例,表面806B表示与从前面看的表面806A相同的表面。同样地,在这个示例中,物体808B表示与从前面看的物体808A相同的物体。另外,在这个示例中,对于一些实施例,各种位置被图示为表示可以从传感器输出确定的轨迹的起始位置或终点。注意,为清晰起见,这里包括了图示物体808B的边界线——它们不应当被混淆为表示轨迹或传感器输出。
在这个示例中,对于一些实施例,感测引擎可被安排为基于传感器输出来确定轨迹。在这个示例中,可以被确定轨迹,例如:由位置810A至位置812A定义的第一轨迹;由位置812A至位置814A定义的第二轨迹;由位置814A至位置816A定义的第三轨迹;等等。注意,如本文所述,轨迹还包括时间分量,为了简洁和清晰起见,这里将其省略。
另外,在这个示例中,位置810B、位置812B、位置814B、位置816B可被认为表示上述相同位置的拉近视图。然而,位置818和位置820可对应于不包括中断/间隙的轨迹。
因此,在一些实施例中,建模引擎可被安排为基于评估可由感测引擎确定的轨迹来确定诸如物体形状、物体特征、物体位置、物体运动、物体旋转、表面特征、表面方向等等之类的信息。例如,这里,感测引擎可以基于位置810B、位置812B、位置814B、位置816B等等来确定轨迹。另外,例如,感测引擎可以基于位置818和位置820确定轨迹。在一些实施例中,感测引擎可被安排为比较/评估轨迹的序列以确定关于被扫描的环境的信息。在这个示例中,感测引擎可被安排为因扫描期间轨迹的变化而识别物体。在这个示例中,产生一条轨迹的扫描线出现在产生多条轨迹的另一条扫描线旁边,可表明表面特征的居间物体的存在。
图9图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的扫描系统900的逻辑表示。如上所述,扫描系统,例如,扫描系统900,可包括:一个或多个扫描信号生成器,例如,扫描信号生成器902;多个传感器,例如,传感器904A、传感器904B、传感器904C,等等。注意,可以假设一个或多个感测引擎或建模引擎可以与扫描信号生成器902和传感器904A、传感器904B、传感器904C等等通信地耦合。或者,在一些实施例中,一个或多个感测引擎或建模引擎可以由可能在提供扫描信号或传感器的相同的计算机或器具来容宿,例如,机器人、自主车辆,等等。
注意,扫描系统900可以被认为类似于上文描述的扫描系统800。因此,为了简洁和清晰,这里可以省略为扫描系统800描述的一个或多个特征或实施例。
在各种实施例中的一个或多个中,扫描系统可被安排为扫描不具有明确定义的背景表面的扫描环境。因此,在一些实施例中,扫描系统可以针对确定或识别可能在空间中发生的物体或物体活动,这样传感器输出可能不提供关于背景表面的信息。然而,在一些实施例中,感测引擎可被安排为在没有与背景表面相关联的信息的情况下评估与一个或多个物体相关联的传感器输出。因此,在这个示例中,物体906A表示可由扫描信号生成器902扫描的物体的自上而下视图。
在各种实施例中的一个或多个中,感测引擎可被安排为为物体生成一个或多个轨迹,类似于可如何生成表面的轨迹。在这个示例中,对于一些实施例,906B表示与物体906A相同的物体——从扫描信号生成器或传感器的视角来看。因此,在这个示例中,对于一些实施例,两个或更多个位置,例如,位置908A和位置910A,以及开始时间和结束时间,可以被采用来确定可能与物体906B相关联的轨迹。另外,在这个示例中,在没有与背景表面相关联的轨迹的情况下,可以基于物体906B来确定轨迹。
另外,在这个示例中,位置908B和位置910B表示位置908A和位置910A的拉近视图。因此,在一些实施例中,建模引擎可被安排为基于对与被扫描物体相关联的轨迹的分析来识别与物体906A/906B相关联的一个或多个特征,例如,物体特征、物体位置、物体运动、物体旋转,等等。
因此,在一些实施例中,感测引擎可被安排为确定扫描环境中的物体的轨迹,即使该扫描环境不包括表面背景。例如,对于一些实施例,用于与可能正在旋转的物体906A/B类似的物体,感测引擎确定轨迹,例如:具有位置912的起点和位置914的终点的第一轨迹;具有位置914的起点和位置916的终点的第二轨迹;等等。因此,在这个示例中,对于一些实施例,建模引擎可被安排为推断出物体906A/B可能是可能正在旋转的立方体。
另外,在一些实施例中,建模引擎可被安排为基于比较轨迹如何随时间变化而推断出与物体相关联的各种特征。如这里所示,在这个示例中,时间段924可以表示与以置908B作为其起点并且以位置910B作为其终点的轨迹相关联的开始时间和结束时间。同样地,在这个示例中,时间段926可以表示与以位置912作为其起点并且以位置914作为其终点的轨迹相关联的开始时间和结束时间;时间段928可以表示与以位置914作为其起点并且以位置916作为其终点的轨迹相关联的开始时间和结束时间;时间段930可以表示与以位置918作为其起点并且以位置920作为其终点的轨迹相关联的开始时间和结束时间;并且时间段932可以表示与以位置920作为其起点并且以位置922作为其终点的轨迹相关联的开始时间和结束时间。
因此,在一些实施例中,建模引擎可被安排为从上述轨迹中推断出物体906A/906B可能是旋转的立方体,其方式是在其随着时间而发生时评估轨迹。
图10图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的系统1000的逻辑示意图。如上所述,在一些实施例中,感测引擎可被安排为根据基于反射的信号能量收集的传感器输出来生成轨迹信息。
因此,在一些实施例中,建模引擎,例如,建模引擎1002,可被安排为接收轨迹信息,例如,轨迹信息1004。在这个示例中,为了简洁和清晰,使用可代表轨迹信息的图纸来图示轨迹信息1004。然而,在一些实施例中,感测引擎可以向建模引擎提供经由一个或多个数据结构提供的参数化轨迹信息,例如,图6中所示的数据结构618。
因此,建模引擎1002可被安排为采用评估模型1006来评估轨迹信息1004。在一些实施例中,评估模型可被配置为包括一个或多个试探方法、规则、条件、机器学习分类器,等等,它们可被采用来基于轨迹信息1004评估扫描的环境。在一些实施例中,评估模型可以按传统方式被训练或调整为识别或感知各种物体、形状、动作、活动、物体之间的关系,等等。然而,在一些实施例中,用于训练或调整评估模型的输入数据可以采取轨迹的数值表示的形式(例如,分析曲线段的更新参数表示流,而不是从点云、视频帧捕捉、基于像素的边缘检测、基于像素的运动检测、基于像素的颜色/亮度梯度等等得出的信息)。
在一些实施例中,如果可以评估轨迹信息1004,则建模引擎可被安排为生成或更新一个或多个场景报告,这些报告提供关于被评估的场景的信息。在一些实施例中,场景报告可包括传统报告、交互式报告、图形仪表板、图表、曲线图,等等。另外,在一些实施例中,场景报告可包括一个或多个数据结构,这些数据结构包括可以表示各种场景特征的信息,这些场景特征可以进一步被提供给一个或多个机器视觉应用,例如,可以自动解释场景报告的机器视觉应用1010。
本领域的普通技术人员将会明白,许多机器视觉或机器感知应用可以采用本文描述的创新。例如,在各种实施例中的一个或多个中,以提供直接深度测量的配置安排的高速表面扫描和低延时、高吞吐量传感器的组合,可以使得感测引擎能够在一毫秒内扫描整个视场,在30米处以人类鼻子尺度的径向精度或者在0.5米处以M3螺钉上的个体螺纹尺度的径向精度测量表面。另外,在一些实施例中,感测引擎可被安排为逐步扫描环境。因此,在一些实施例中,感测引擎可被安排为随着收集更多的观测而提供表面的径向精度渐增的测量。
另外,在一些实施例中,由于用于表面表示的轨迹可以在亚毫秒尺度上逐步建立起来,因此可以使得感测系统能够通过观察最近扫描的区域中表面的表观距离在时间段内如何变化来跟踪运动,这些时间段可能短到足以被视为连续时间更新。因此,在一些实施例中,感测引擎可被安排为提供现实的完整6D表示,这是由方向随着时间推移在3D空间中移动的2D表面构成的。这种原生的6D表示可能是有利的,因为它可以为各种依应用而定的感知算法提供一种更具表现力和准确性的基础来操作。
另外,在一些实施例中,基于机器学习的识别算法可以使用形状和运动基元(例如,轨迹)作为其输入,而不是2D颜色对比度或3D点阵列。使用轨迹来表示扫描环境,可以鲜明而准确地识别存在于被扫描环境中的形状和特征。相比之下,一些传统的机器视觉系统可能依赖于关于以下情况的猜测或统计上的近似:由于新颖的对比度,某地是否可能有物体或幻影,或者空间中的点是否是同一表面的一部分或者表面如何移动。
另外,在一些实施例中,与使用2D像素或3D点云的传统表示法相比,感测引擎可能需要更少的数据值来使用参数化轨迹表示表面或物体特征。另外,在一些实施例中,使用轨迹表示表面/物体可能是有利的,因为它们在许多变换(例如,旋转、平移和照明变化)下可能是天然不变的。
因此,在一些实施例中,为训练深度学习识别算法而收集的数据量可能比诸如2D图像或3D点云之类的表现力较差的表示法少几个数量级。作为一个示例,用于识别行人的2D颜色技术可能需要收集行人相对于系统的所有可能姿态和位置的数据,以及所有可能的照明条件和环境背景纹理。相比之下,在一些实施例中,感测引擎可被安排来识别各种姿态下的行人的表面形状,不仅仅是定位和识别他们,而是还会描述非常重要的属性,例如他们的方向和身体部位的相对运动,所有这些都在第一次看到行人的几毫秒内完成。
另外,在一些实施例中,如本文所述的感测系统可以被应用于自主移动以外的其他应用领域。例如,在一些实施例中,感测引擎和建模引擎可以被在田间采摘水果的机器人所采用,在茂密的树叶中寻找成熟的水果,精细地识别表面特征,同时以亚毫秒的更新计算最优抓取位置,同时机器人的手迅速伸入抓取浆果,远远快于人类采摘者或传统采摘机器。
图11图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的系统1100的逻辑示意图。如上所述,在一些实施例中,扫描信号生成器可以在扫描环境中扫描表面。在一些情况下,扫描环境的条件或者被扫描表面的特性可能导致由一个或多个传感器生成的一个或多个虚假的传感器事件(例如,噪声)。例如,传感器视图1102表示在扫描期间可能生成的传感器事件的一部分。
在传统的机器视觉应用中,一个或多个2D过滤器可被应用到捕捉的视频图像、点簇,等等,以尝试将噪声事件与感兴趣的信号分离。在一些情况下,传统的基于2D图像的过滤器可能是不利的,因为它们可能采用一个或多个过滤器(例如,加权移动平均、高斯过滤器,等等),这些过滤器可能依赖于对像素颜色/权重、像素颜色/权重梯度、像素分布/聚类等等的统计评估。因此,在一些情况下,传统的2D图像过滤可能是固有模糊的,并且高度依赖于应用/环境假设。另外,在一些情况下,传统的噪声检测/降噪方法可能会错误地错过一些噪声事件,同时将一个或多个场景事件错误地分类为噪声。
相比之下,在一些实施例中,感测引擎可被安排为基于精确的试探方法将传感器事件关联到轨迹中,例如,在时间和位置上的接近性,可用于将传感器事件拟合到基于扫描路径可预测的分析曲线。因为扫描路径是预先定义的,因此感测引擎可被安排来预测哪些传感器事件应当被包括在同一轨迹中。
另外,在一些实施例中,如果表面或物体特征在轨迹中产生间隙或中断,则感测引擎可被安排为关闭当前轨迹,并且在可能识别出一个新轨迹时立即开始新轨迹。
另外,在一些实施例中,感测引擎可被安排为直接从具有(x,y,t)形式的传感器事件确定轨迹,而不是采用模糊模式匹配或模式识别方法。从而,在一些实施例中,感测引擎可被安排为准确地计算距离、方向,等等,而不是依靠模糊机器视觉方法来区分噪音与应当处于同一轨迹中的传感器事件。
一般性操作
图12-图17表示根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的一般性操作。在各种实施例中的一个或多个中,结合图12-图17描述的过程1200、1300、1400、1500、1600和1700可以由单个网络计算机(或网络监视计算机)(例如图3的网络计算机300)上的一个或多个处理器实现或执行。在其他实施例中,这些过程或其部分可由多个网络计算机(例如图3的网络计算机300)实现或者在其上执行。在其他实施例中,这些过程或其部分可由一个或多个虚拟化计算机实现或者在其上执行,例如,基于云的环境中的计算机。然而,实施例并没有如此限制,而可以利用网络计算机、客户端计算机等等的各种组合。另外,在各种实施例中的一个或多个中,结合图12-图16描述的过程可以根据各种实施例或体系结构中的至少一个,例如结合图4-图11描述的那些,执行用于基于感测表面和感测表面运动来感知物体的操作。另外,在各种实施例中的一个或多个中,由过程1200、1300、1400、1500、1600和1700执行的一些或所有动作可以部分由在一个或多个网络计算机的一个或多个处理器上运行的感测引擎322或建模引擎324执行。
图12图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的过程1200的概览流程图。在开始流程图块之后,在流程图块1202,在各种实施例中的一个或多个中,一个或多个扫描信号生成器、一个或多个传感器,等等。另外,在一些实施例中,可以提供特定的扫描路径,以引导来自扫描信号生成器的光束或信号在扫描环境中穿越指定的曲线或路径。在块1204,在各种实施例中的一个或多个中,感测引擎可被安排为采用扫描信号生成器来将信号束扫描过感兴趣的环境,以在传感器处收集信号的信号反射。在块1206,在各种实施例中的一个或多个中,感测引擎可被安排为基于传感器输出信息来提供场景轨迹。在块1208,在各种实施例中的一个或多个中,感测引擎可被安排为向建模引擎提供一个或多个场景轨迹。在块1210,在各种实施例中的一个或多个中,建模引擎可被安排为基于轨迹来评估被扫描的环境中的场景。如本文所述,建模引擎可被安排为采用各种评估模型,这些模型可以被调整或训练为基于轨迹来识别一个或多个形状、物体、物体活动,等等。在决策块1212,在各种实施例中的一个或多个中,如果扫描可以完成,则控制可以被返回到调用过程;否则,控制可以循环回到块1204。
图13图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的过程1300的流程图。在开始块1302之后,在各种实施例中的一个或多个中,一个或多个传感器可以捕捉一个或多个传感器中的信号反射。在块1304,在各种实施例中的一个或多个,基于传感器输出的位置和时间信息可以被提供给感测引擎。在块1306,在各种实施例中的一个或多个中,感测引擎可被安排为基于扫描信号源位置和传感器位置来确定一个或多个传感器事件。在块1308,在各种实施例中的一个或多个中,感测引擎可被安排为基于一个或多个传感器事件和信号束的扫描路径来确定一个或多个场景轨迹。接下来,在各种实施例中的一个或多个中,控制可以被返回到调用过程。
图14图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的过程1402的流程图。在开始块1402之后,在各种实施例中的一个或多个中,感测引擎可被安排为使用来自扫描信号生成器的光束来扫描扫描环境。在决策块1404,在各种实施例中的一个或多个中,如果扫描线与另一个先前收集的场景轨迹交叉,则控制可以流向块1406;否则,控制可以被返回到调用过程。在块1406,在各种实施例中的一个或多个中,感测引擎可被安排为基于交叉的扫描线来确定2维被扫描表面的表面法线。在块1408,在各种实施例中的一个或多个中,感测引擎可被安排为基于计算表面法线来确定被扫描表面的方向。接下来,在各种实施例中的一个或多个中,控制可以被返回到调用过程。
图15图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的过程1502的流程图。在开始块1502之后,在各种实施例中的一个或多个中,感测引擎可被安排为基于一个或多个传感器的输出来收集传感器事件。如上所述,可以基于来自一个以上的传感器的多个报告(例如,三角测量,等等)来提供传感器事件。另外,在一些实施例中,可以为每个传感器单独提供传感器事件。在块1504,在各种实施例中的一个或多个中,感测引擎可被安排为评估一个或多个传感器事件以确定轨迹起点。在决策块1506,在各种实施例中的一个或多个中,如果可以确定轨迹起点,则控制可以流向块1508;否则,控制可以循环回到块1504。在块1508,在各种实施例中的一个或多个中,感测引擎可被安排为将传感器事件添加到轨迹。在一些实施例中,随着传感器事件可以被收集,它们可以与开放的轨迹相关联。在一些实施例中,可以采用额外的传感器事件来完善或更新轨迹,并且收集更多的信息。在块1510,在各种实施例中的一个或多个中,感测引擎可被安排为基于扫描路径将一个或多个传感器事件拟合/预测到轨迹。在决策块1512,在各种实施例中的一个或多个中,如果可以确定间隙或不连续,则控制可以流向块1514;否则,控制可以循环回到1508。在块1514,在各种实施例中的一个或多个中,感测引擎可被安排为关闭当前轨迹。在块1516,在各种实施例中的一个或多个中,感测引擎可被安排为向建模引擎提供关闭的轨迹。在决策块1518,在各种实施例中的一个或多个中,如果扫描过程可以完成,则控制可以被返回到调用过程;否则,控制可以循环回到块1504。接下来,在各种实施例中的一个或多个中,控制可以被返回到调用过程。
图16图示了根据各种实施例中的一个或多个,用于基于感测表面和感测表面运动来感知物体的过程1602的流程图。在开始块1602之后,在各种实施例中的一个或多个中,感测引擎可被安排为基于一个或多个传感器的输出来收集传感器事件。在决策块1604,在各种实施例中的一个或多个中,如果传感器事件可被包括在轨迹中,则控制可以流向块1608;否则,控制可以流向块1606。在块1606,在各种实施例中的一个或多个中,感测引擎可被安排为将传感器事件作为噪声排除或丢弃。接下来,在各种实施例中的一个或多个中,控制可以被返回到调用过程。在块1608,在各种实施例中的一个或多个中,感测引擎可被安排为将传感器事件与轨迹相关联。接下来,在各种实施例中的一个或多个中,控制可以被返回到调用过程。
要理解,每个流程图图示中的每个块以及每个流程图图示中的块的组合,都可以由计算机程序指令实现。这些程序指令可被提供给处理器以产生机器,从而使得在处理器上执行的指令创建用于实现每个流程图块中指定的动作的装置。计算机程序指令可由处理器执行,以使得一系列操作步骤由处理器执行,从而产生一种由计算机实现的过程,这样,在处理器上执行的指令提供了用于实现每个流程图块中指定的动作的步骤。计算机程序指令还可以使得每个流程图的块中所示出的操作步骤中的至少一些被并行地执行。此外,一些步骤也可以在一个以上的处理器上执行,例如在多处理器计算机系统中可能出现的情况。此外,每个流程图图示中的一个或多个块或块的组合也可以与其他块或块的组合同时执行,或者甚至以不同于图示的顺序执行,而不偏离本发明的范围或精神。
因此,每个流程图图示中的每个块支持用于执行指定动作的装置的组合、用于执行指定动作的步骤的组合以及用于执行指定动作的程序指令装置。还要理解,每个流程图图示中的每个块以及每个流程图图示中的块的组合,可以由执行指定的动作或步骤的专用的基于硬件的系统来实现,或者可以由专用硬件和计算机指令的组合来实现。前述示例不应被解释为限制性或穷尽性的,而是一个说明性的用例,以示出本发明的各种实施例中的至少一个的实现方式。
另外,在一个或多个实施例中(图中未示出),说明性流程图中的逻辑可以使用嵌入式逻辑硬件设备而不是CPU来执行,例如,专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、可编程阵列逻辑(Programmable Array Logic,PAL),等等,或者其组合。嵌入式逻辑硬件设备可以直接执行其嵌入式逻辑来执行动作。在一个或多个实施例中,微控制器可被安排为直接执行其自己的嵌入式逻辑来执行动作,并且访问其自己的内部存储器和其自己的外部输入和输出接口(例如,硬件引脚或无线收发器)来执行动作,例如片上系统(SystemOn a Chip,SOC),等等。
说明的用例
在各种实施例中的一个或多个中,取决于感测系统的应用,可以采用感测系统来感知任意复杂的环境。为了简洁和清晰,上面的大部分描述采用了简单的表面、物体或场景,来公开使得能够基于感测表面和感测表面运动而感知物体的创新。然而,本领域的普通技术人员将会明白,这些创新中的一些或所有可以被采用来感知复杂的环境,这些环境包括少数或许多复杂的物体或表面,这些物体或表面可能在运动中,经历形变、表面变化或形状变化,这些形变、表面变化或形状变化可能在其发生时被实时感知到。如对图9中所示的示例(旋转的立方体物体)所描述,感测引擎可以基于扫描环境中的物体或表面如何移动或变化,来动态地生成新的轨迹或更新现有的轨迹。如上所述,这些更新的/额外的轨迹可以以数值表示的形式被提供给建模引擎,例如,向量、阵列、矩阵,等等,其中每个元素对应于一个参数值,该参数值是分析曲线的一段的参数化表示的一部分。因此,建模引擎可被安排为采用一个或多个评估模型,来基于提供给评估模型的轨迹,识别与被感测的表面相关联的一个或多个特征。感兴趣的特定特征或者响应于确定特定特征而采取的动作可以取决于应用而变化。
在这个示例中,环境1700表示包括人类手部的场景。在这个示例中,轮廓线可以对应于从场景确定的轨迹。因此,与这个示例一致,在一些实施例中,建模引擎可被安排为采用已被调整或训练的评估模型,来基于轨迹确定复杂物体(例如,人类手部)的各种特征。在这个示例中,这样的特征可包括:形状、大小、手指位置、手的位置、旋转、运动速率、与其他表面或其他物体的距离,等等。
Claims (32)
1.一种用于使用被配置为执行指令的一个或多个处理器来感知表面和物体的方法,其中所述指令执行动作,所述方法包括:
基于连续的传感器事件流生成一个或多个轨迹,其中每个轨迹是三维空间中的一维曲线段的参数化表示;
采用所述一个或多个轨迹来确定一个或多个表面;
将所述一个或多个轨迹提供给建模引擎,其中所述建模引擎执行进一步动作以基于所述一个或多个轨迹和所述一个或多个表面执行一个或多个动作;并且
响应于所述一个或多个表面的一个或多个变化,执行进一步动作,包括:
基于所述连续的传感器事件流更新所述一个或多个轨迹;并且
基于一个或多个更新后的轨迹和一个或多个变化后的表面执行一个或多个额外的动作。
2.如权利要求1所述的方法,其中,所述一个或多个表面的一个或多个变化包括所述一个或多个表面的以下一项或多项:位置变化、方向变化、运动变化、或者形变。
3.如权利要求1所述的方法,还包括:
基于一个或多个传感器提供所述连续的传感器事件流,其中每个传感器事件包括时间戳、飞行时间或者位置值中的一个或多个。
4.如权利要求1所述的方法,还包括:
基于所述一个或多个表面和所述一个或多个轨迹的一个或多个特性来确定与所述一个或多个表面相对应的一个或多个形状。
5.如权利要求1所述的方法,其中,每个轨迹还包括B样条的参数化表示。
6.如权利要求1所述的方法,还包括,采用所述一个或多个轨迹来连续地确定以下一项或多项的一个或多个变化:所述一个或多个表面的位置、所述一个或多个表面的方向、所述一个或多个表面的形变、或者所述一个或多个表面的运动。
7.如权利要求1所述的方法,其中,执行所述进一步动作还包括:
基于与所述一个或多个表面的一部分相关联的所述一个或多个轨迹的一部分来确定一个或多个物体。
8.如权利要求6所述的方法,其中,执行所述进一步动作还包括:
基于所述一个或多个轨迹确定所述一个或多个物体的一个或多个特征,其中所述一个或多个特征包括所述一个或多个物体的以下一项或多项:位置、方向、运动、或形变。
9.一种用于感知表面和物体的系统:
网络计算机,包括:
至少存储指令的存储器;以及
被配置为执行指令的一个或多个处理器,其中所述指令执行动作,所述动作包括:
基于连续的传感器事件流生成一个或多个轨迹,其中每个轨迹是三维空间中的一维曲线段的参数化表示;
采用所述一个或多个轨迹来确定一个或多个表面;
将所述一个或多个轨迹提供给建模引擎,其中所述建模引擎执行进一步动作以基于所述一个或多个轨迹和所述一个或多个表面执行一个或多个动作;并且
响应于所述一个或多个表面的一个或多个变化,执行进一步动作,包括:
基于所述连续的传感器事件流更新所述一个或多个轨迹;并且
基于一个或多个更新后的轨迹和一个或多个变化后的表面执行一个或多个额外的动作;以及
一个或多个客户端计算机,包括:
至少存储指令的存储器;以及
被配置为执行指令的一个或多个处理器,其中所述指令执行动作,所述动作包括:提供所述传感器事件的一个或多个部分。
10.如权利要求9所述的系统,其中,所述一个或多个表面的一个或多个变化包括所述一个或多个表面的以下一项或多项:位置变化、方向变化、运动变化、或者形变。
11.如权利要求9所述的系统,其中,所述网络计算机的一个或多个处理器被配置为执行指令,其中,所述指令执行动作,所述动作还包括:
基于一个或多个传感器提供所述连续的传感器事件流,其中每个传感器事件包括时间戳、飞行时间或者位置值中的一个或多个。
12.如权利要求9所述的系统,其中,所述网络计算机的一个或多个处理器被配置为执行指令,其中,所述指令执行动作,所述动作还包括:基于所述一个或多个表面和所述一个或多个轨迹的一个或多个特性来确定与所述一个或多个表面相对应的一个或多个形状。
13.如权利要求9所述的系统,其中,每个轨迹还包括B样条的参数化表示。
14.如权利要求9所述的系统,其中,所述网络计算机的一个或多个处理器被配置为执行指令,其中,所述指令执行动作,所述动作还包括:采用所述一个或多个轨迹来连续地确定以下一项或多项的一个或多个变化:所述一个或多个表面的位置、所述一个或多个表面的方向、所述一个或多个表面的形变、或者所述一个或多个表面的运动。
15.如权利要求9所述的系统,其中,执行所述进一步动作还包括:
基于与所述一个或多个表面的一部分相关联的所述一个或多个轨迹的一部分来确定一个或多个物体。
16.如权利要求15所述的系统,其中,执行所述进一步动作还包括,
基于所述一个或多个轨迹确定所述一个或多个物体的一个或多个特征,其中所述一个或多个特征包括所述一个或多个物体的以下一项或多项:位置、方向、运动、或形变。
17.一种处理器可读非暂态存储介质,包括用于感知表面和物体的指令,其中一个或多个网络计算机上的一个或多个处理器对所述指令的执行会执行动作,包括:
基于连续的传感器事件流生成一个或多个轨迹,其中每个轨迹是三维空间中的一维曲线段的参数化表示;
采用所述一个或多个轨迹来确定一个或多个表面;
将所述一个或多个轨迹提供给建模引擎,其中所述建模引擎执行进一步动作以基于所述一个或多个轨迹和所述一个或多个表面执行一个或多个动作;并且
响应于所述一个或多个表面的一个或多个变化,执行进一步动作,包括:
基于所述连续的传感器事件流更新所述一个或多个轨迹;并且
基于一个或多个更新后的轨迹和一个或多个变化后的表面执行一个或多个额外的动作。
18.如权利要求17所述的介质,其中,所述一个或多个表面的一个或多个变化包括所述一个或多个表面的以下一项或多项:位置变化、方向变化、运动变化、或者形变。
19.如权利要求17所述的介质,还包括:
基于一个或多个传感器提供所述连续的传感器事件流,其中每个传感器事件包括时间戳、飞行时间或者位置值中的一个或多个。
20.如权利要求17所述的介质,还包括:
基于所述一个或多个表面和所述一个或多个轨迹的一个或多个特性来确定与所述一个或多个表面相对应的一个或多个形状。
21.如权利要求17所述的介质,其中,每个轨迹还包括B样条的参数化表示。
22.如权利要求17所述的介质,还包括,采用所述一个或多个轨迹来连续地确定以下一项或多项的一个或多个变化:所述一个或多个表面的位置、所述一个或多个表面的方向、所述一个或多个表面的形变、或者所述一个或多个表面的运动。
23.如权利要求17所述的介质,其中,执行所述进一步动作还包括:
基于与所述一个或多个表面的一部分相关联的所述一个或多个轨迹的一部分来确定一个或多个物体。
24.如权利要求23所述的介质,其中,执行所述进一步动作还包括,
基于所述一个或多个轨迹确定所述一个或多个物体的一个或多个特征,其中所述一个或多个特征包括所述一个或多个物体的以下一项或多项:位置、方向、运动、或形变。
25.一种用于感知表面和物体的网络计算机,包括:
至少存储指令的存储器;以及
被配置为执行指令的一个或多个处理器,其中所述指令执行动作,所述动作包括:
基于连续的传感器事件流生成一个或多个轨迹,其中每个轨迹是三维空间中的一维曲线段的参数化表示;
采用所述一个或多个轨迹来确定一个或多个表面;
将所述一个或多个轨迹提供给建模引擎,其中所述建模引擎执行进一步动作以基于所述一个或多个轨迹和所述一个或多个表面执行一个或多个动作;并且
响应于所述一个或多个表面的一个或多个变化,执行进一步动作,包括:
基于所述连续的传感器事件流更新所述一个或多个轨迹;并且
基于一个或多个更新后的轨迹和一个或多个变化后的表面执行一个或多个额外的动作。
26.如权利要求25所述的网络计算机,其中,所述一个或多个表面的一个或多个变化包括所述一个或多个表面的以下一项或多项:位置变化、方向变化、运动变化、或者形变。
27.如权利要求25所述的网络计算机,其中,所述一个或多个处理器被配置为执行指令,其中,所述指令执行动作,所述动作还包括:
基于一个或多个传感器提供所述连续的传感器事件流,其中每个传感器事件包括时间戳、飞行时间或者位置值中的一个或多个。
28.如权利要求25所述的网络计算机,其中,所述一个或多个处理器被配置为执行指令,其中,所述指令执行动作,所述动作还包括:
基于所述一个或多个表面和所述一个或多个轨迹的一个或多个特性来确定与所述一个或多个表面相对应的一个或多个形状。
29.如权利要求25所述的网络计算机,其中,每个轨迹还包括B样条的参数化表示。
30.如权利要求25所述的网络计算机,其中,所述一个或多个处理器被配置为执行指令,其中,所述指令执行动作,所述动作还包括:
采用所述一个或多个轨迹来连续地确定以下一项或多项的一个或多个变化:所述一个或多个表面的位置、所述一个或多个表面的方向、所述一个或多个表面的形变、或者所述一个或多个表面的运动。
31.如权利要求25所述的网络计算机,其中,执行所述进一步动作还包括:
基于与所述一个或多个表面的一部分相关联的所述一个或多个轨迹的一部分来确定一个或多个物体。
32.如权利要求31所述的网络计算机,其中,执行所述进一步动作还包括,
基于所述一个或多个轨迹确定所述一个或多个物体的一个或多个特征,其中所述一个或多个特征包括所述一个或多个物体的以下一项或多项:位置、方向、运动、或形变。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063205480P | 2020-12-14 | 2020-12-14 | |
US63/205,480 | 2020-12-14 | ||
PCT/US2021/063399 WO2022132828A1 (en) | 2020-12-14 | 2021-12-14 | Perceiving objects based on sensing surfaces and sensing surface motion |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116829902A true CN116829902A (zh) | 2023-09-29 |
Family
ID=81942364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180093575.0A Pending CN116829902A (zh) | 2020-12-14 | 2021-12-14 | 基于感测表面和感测表面运动来感知物体 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220187461A1 (zh) |
EP (1) | EP4260006A1 (zh) |
JP (1) | JP2024501078A (zh) |
CN (1) | CN116829902A (zh) |
WO (1) | WO2022132828A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11974055B1 (en) | 2022-10-17 | 2024-04-30 | Summer Robotics, Inc. | Perceiving scene features using event sensors and image sensors |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11704835B2 (en) | 2021-07-29 | 2023-07-18 | Summer Robotics, Inc. | Dynamic calibration of 3D acquisition systems |
US11808857B2 (en) | 2021-08-27 | 2023-11-07 | Summer Robotics, Inc. | Multi-sensor superresolution scanning and capture system |
WO2023096873A1 (en) * | 2021-11-28 | 2023-06-01 | Summer Robotics, Inc. | Association of concurrent tracks across multiple views |
WO2023177692A1 (en) | 2022-03-14 | 2023-09-21 | Summer Robotics, Inc. | Stage studio for immersive 3-d video capture |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2512965B2 (es) * | 2013-02-13 | 2015-11-24 | Universitat Politècnica De Catalunya | Sistema y método para escanear una superficie y programa de ordenador que implementa el método |
CN110226184B (zh) * | 2016-12-27 | 2023-07-14 | 杰拉德·迪尔克·施密茨 | 用于机器感知的系统和方法 |
CN109458928B (zh) * | 2018-10-29 | 2020-12-25 | 西安知微传感技术有限公司 | 基于扫描振镜和事件相机激光线扫描3d检测方法及系统 |
-
2021
- 2021-12-14 EP EP21907668.4A patent/EP4260006A1/en active Pending
- 2021-12-14 JP JP2023560251A patent/JP2024501078A/ja active Pending
- 2021-12-14 US US17/551,054 patent/US20220187461A1/en active Pending
- 2021-12-14 WO PCT/US2021/063399 patent/WO2022132828A1/en active Application Filing
- 2021-12-14 CN CN202180093575.0A patent/CN116829902A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11974055B1 (en) | 2022-10-17 | 2024-04-30 | Summer Robotics, Inc. | Perceiving scene features using event sensors and image sensors |
Also Published As
Publication number | Publication date |
---|---|
US20220187461A1 (en) | 2022-06-16 |
WO2022132828A1 (en) | 2022-06-23 |
EP4260006A1 (en) | 2023-10-18 |
JP2024501078A (ja) | 2024-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116829902A (zh) | 基于感测表面和感测表面运动来感知物体 | |
JP7329444B2 (ja) | 機械知覚のためのシステム及び方法 | |
US9275347B1 (en) | Online content classifier which updates a classification score based on a count of labeled data classified by machine deep learning | |
US10043084B2 (en) | Hierarchical context-aware extremity detection | |
CN109840586A (zh) | 自主机器中对有问题的传感器的基于深度学习的实时检测和校正 | |
US20230003549A1 (en) | Calibration of sensor position offsets based on rotation and translation vectors for matched trajectories | |
US11808857B2 (en) | Multi-sensor superresolution scanning and capture system | |
US20230015889A1 (en) | Automatic parameter adjustment for scanning event cameras | |
US20230169683A1 (en) | Association of concurrent tracks across multiple views | |
US20230316657A1 (en) | Auxiliary device for augmented reality | |
JP2023536832A (ja) | ビジュアライゼーションのためのメトリックの提供及び表面化 | |
US11887340B2 (en) | Dynamic calibration of 3D acquisition systems | |
CN110264495A (zh) | 一种目标跟踪方法及装置 | |
US11974055B1 (en) | Perceiving scene features using event sensors and image sensors | |
US20230274523A1 (en) | Association of concurrent tracks using graph crossings | |
CN112595728B (zh) | 一种道路问题确定方法和相关装置 | |
US11785200B1 (en) | Stage studio for immersive 3-D video capture | |
US20240022819A1 (en) | Foveated robotic vision system | |
US20240040274A1 (en) | Folded single sensor 3-d capture system | |
WO2021086996A1 (en) | Providing data visualizations based on personalized recommendations | |
US20240061822A1 (en) | Analytical Platform For Distributed Data | |
US20230143734A1 (en) | Detecting anomalies in visualizations | |
EP4047552A1 (en) | Information processing device, information processing method, and program | |
Kadir et al. | Analysis Of Ground FFB Detection Via Real Sense Camera | |
KR20220127731A (ko) | 프로젝트 분석을 위한 사용자 인터페이스 |
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 |