CN114830194A - 图像跟踪期间的动作检测 - Google Patents

图像跟踪期间的动作检测 Download PDF

Info

Publication number
CN114830194A
CN114830194A CN202080088563.4A CN202080088563A CN114830194A CN 114830194 A CN114830194 A CN 114830194A CN 202080088563 A CN202080088563 A CN 202080088563A CN 114830194 A CN114830194 A CN 114830194A
Authority
CN
China
Prior art keywords
person
tracking system
sensor
action
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080088563.4A
Other languages
English (en)
Inventor
S·B·克里施纳莫西
S·A·米尔扎
S·瓦卡查拉
T·N·恩古延
C·毛格
D·保罗
M·M·切纳姆
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.)
7 11 LLC
Original Assignee
7 11 LLC
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
Priority claimed from US16/664,426 external-priority patent/US11308630B2/en
Priority claimed from US16/663,451 external-priority patent/US10943287B1/en
Priority claimed from US16/663,533 external-priority patent/US10789720B1/en
Priority claimed from US16/664,391 external-priority patent/US11062147B2/en
Priority claimed from US16/663,794 external-priority patent/US11367124B2/en
Priority claimed from US16/663,822 external-priority patent/US11113837B2/en
Priority claimed from US16/663,948 external-priority patent/US11257225B2/en
Priority claimed from US16/664,269 external-priority patent/US11004219B1/en
Priority claimed from US16/663,901 external-priority patent/US11430046B2/en
Priority claimed from US16/663,766 external-priority patent/US11132550B2/en
Priority claimed from US16/663,856 external-priority patent/US10956777B1/en
Priority claimed from US16/663,500 external-priority patent/US10621444B1/en
Priority claimed from US16/664,332 external-priority patent/US11176686B2/en
Priority claimed from US16/664,219 external-priority patent/US11107226B2/en
Priority claimed from US16/664,160 external-priority patent/US11568554B2/en
Priority claimed from US16/663,710 external-priority patent/US11188763B2/en
Priority claimed from US16/664,363 external-priority patent/US11080529B2/en
Priority claimed from US16/663,472 external-priority patent/US10614318B1/en
Application filed by 7 11 LLC filed Critical 7 11 LLC
Publication of CN114830194A publication Critical patent/CN114830194A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01GWEIGHING
    • G01G3/00Weighing apparatus characterised by the use of elastically-deformable members, e.g. spring balances
    • G01G3/12Weighing apparatus characterised by the use of elastically-deformable members, e.g. spring balances wherein the weighing element is in the form of a solid body stressed by pressure or tension during weighing
    • G01G3/14Weighing apparatus characterised by the use of elastically-deformable members, e.g. spring balances wherein the weighing element is in the form of a solid body stressed by pressure or tension during weighing measuring variations of electrical resistance
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/292Multi-camera tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects
    • 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/10016Video; Image sequence
    • 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/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • 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/30232Surveillance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Evolutionary Computation (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Social Psychology (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Psychiatry (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Motorcycle And Bicycle Frame (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
  • Cash Registers Or Receiving Machines (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种系统包括传感器、重量传感器和跟踪子系统。跟踪子系统接收由传感器生成的顶视图像的图像馈送和来自重量传感器的重量测量。跟踪子系统检测与物品从安装了重量传感器的支架移走相关联的事件。跟踪子系统确定第一人和第二人可能与事件相关联。然后,跟踪子系统使用第一种方法确定与事件相关联的动作是由第一人还是第二人执行的。如果第一种方法的结果不满足标准,那么使用第二种方法将动作分配给第一人或第二人。

Description

图像跟踪期间的动作检测
技术领域
本公开一般而言涉及对象检测和跟踪,并且更具体地涉及图像跟踪期间的动作检测。
背景技术
识别和跟踪空间内的对象带来一些技术挑战。现有系统使用各种图像处理技术来识别对象(例如,人)。例如,这些系统可以识别人的不同特征,这些特征可以以后用于在图像中识别该人。当图像包括几个人时,这种处理是计算密集的。例如,在繁忙环境(诸如,商店)的图像中识别人将涉及识别图像中的每个人,然后将一个人的特征与图像中的每个人进行比较。除了计算密集之外,该处理还需要大量时间,这意味着该处理与诸如视频流之类的实时应用不兼容。当试图同时识别和跟踪多个对象时,这个问题变得很棘手。此外,现有系统缺乏确定位于图像内的对象的物理地点的能力。
发明内容
位置跟踪系统用于跟踪物理空间(例如,商店)中人和/或对象的物理位置。这些系统通常使用传感器(例如,相机)来检测人和/或对象的存在,并使用计算机基于来自传感器的信号来确定人和/或对象的物理位置。在商店环境中,可以安装其它类型的传感器来跟踪商店内库存的移动。例如,重量传感器可以安装在支架和搁板上,以确定物品何时从这些支架和搁板上移走。通过跟踪商店中人的位置以及物品何时从搁板上移走,计算机可以确定商店中的哪个人移走了物品并为该物品向该人收费,而无需在收银(register)处记入(ring up)该物品。换句话说,该人可以走进商店、拿取物品并离开商店,而无需停下来进行常规的结账处理。
对于较大的物理空间(例如,便利店和杂货店),可以在整个空间中安装附加的传感器,以跟踪人和/或对象在空间四处移动时的位置。例如,可以添加附加的相机来跟踪更大空间中的位置,并且可以添加附加的重量传感器来跟踪附加的物品和搁板。增加相机的数量带来了技术挑战,因为每个相机只为物理空间的一部分提供视场。这意味着需要独立处理来自每个相机的信息,以识别和跟踪特定相机视场内的人和对象。然后,需要将来自每个相机的信息作为集合进行组合和处理,以便跟踪物理空间内的人和对象。
本申请中公开的系统通过生成相机的像素与空间内的物理地点之间的关系,为上述技术问题提供了技术解决方案。所公开的系统提供了几个实际应用和技术优势,包括1)用于生成将传感器(例如,相机)的像素映射到空间(例如,房间)的全局平面中的物理地点的单应性(homography)的处理;2)用于使用传感器和与传感器相关联的单应性来确定空间内对象的物理地点的处理;3)用于当对象从一个传感器的视场移动到另一个传感器的视场时,移交对象的跟踪信息的处理;4)用于使用标记检测传感器或支架何时在空间内移动的处理;5)用于使用虚拟幕布(virtual curtain)检测人正在哪里与支架交互的处理;6)用于使用与搁板相关联的预定义区将物品与人相关联的处理;7)用于识别具有不均匀重量的物品并将其与人相关联的处理;以及8)用于基于其重量识别错放在支架上的物品的处理。
在一个实施例中,跟踪系统可以被配置为生成传感器的单应性。单应性被配置为在来自传感器(例如,相机)的图像中的像素地点和物理空间中的物理地点之间转换。在这种配置中,跟踪系统基于标记在空间的全局平面中的物理地点和标记在来自传感器的图像中的像素地点来确定单应性的系数。将使用图2-7更详细地描述这种配置。
在一个实施例中,跟踪系统被配置为使用传感器校准全局平面内的搁板位置。在这种配置中,跟踪系统使用传感器周期性地将支架的当前搁板地点与支架的预期搁板地点进行比较。在当前搁板地点与预期搁板地点不匹配的情况下,跟踪系统使用一个或多个其它传感器来确定支架是否已移动或第一传感器是否已移动。将使用图8和图9更详细地描述这种配置。
在一个实施例中,跟踪系统被配置为在对象(例如,人)在相邻传感器的视场之间移动时移交该对象(例如,人)的跟踪信息。在这种配置中,跟踪系统跟踪对象在第一传感器的视场内的移动,然后在对象进入第二相邻传感器的视场时移交对象的跟踪信息(例如,对象标识符)。将使用图10和11更详细地描述这种配置。
在一个实施例中,跟踪系统被配置为使用虚拟幕布检测搁板交互。在这种配置中,跟踪系统被配置为处理由传感器捕获的图像以确定人正在哪里与支架的搁板交互。跟踪系统使用图像内的预定义区作为虚拟幕布,虚拟幕布用于确定人正在与支架的哪个区间和哪个搁板交互。将使用图12-14更详细地描述这种配置。
在一个实施例中,跟踪系统被配置为检测何时已经从支架拾取物品并且使用与支架相关联的预定义区来确定把该物品分配给哪个人。在这种配置中,跟踪系统使用重量传感器检测物品已经被拾取。然后,跟踪系统使用传感器来识别与支架相关联的预定义区内的人。一旦物品和人被识别,跟踪系统就将把物品添加到与识别出的人相关联的数字购物车。将使用图15和18更详细地描述这种配置。
在一个实施例中,跟踪系统被配置为识别具有不均匀重量的对象并将物品分配给人的数字购物车。在这种配置中,跟踪系统使用传感器来识别已经被拾取的物品上的标记(例如,文本或符号)。然后,跟踪系统使用识别出的标记来识别拾取了哪个物品。然后,跟踪系统使用传感器来识别与支架相关联的预定义区内的人。一旦物品和人被识别,跟踪系统就将把该物品添加到与识别出的人相关联的数字购物车中。将使用图16和18更详细地描述这种配置。
在一个实施例中,跟踪系统被配置为检测和识别已经被错放在支架上的物品。例如,人可能将物品放回支架上的错误地点。在这种配置中,跟踪系统使用重量传感器检测物品已经被放回支架,并基于物品的重量确定物品不在正确地点。然后,跟踪系统使用传感器识别将物品放在支架上的人,并分析他们的数字购物车,以基于他们的数字购物车中物品的重量确定他们放回哪个物品。将使用图17和18更详细地描述这种配置。
在一个实施例中,跟踪系统被配置为从由每个传感器生成的图像确定在对象跟踪期间应该被排除的像素区间。这些像素区间或“自动排除区”可以被定期(例如,在没有人穿过空间的时间)更新。自动排除区可以用于生成在跟踪期间被排除的空间的物理部分的地图。使用图19至21更详细地描述这种配置。
在一个实施例中,跟踪系统被配置为区分空间中间隔近的人们。例如,当两个人站立或以其它方式位于彼此附近时,先前的系统可能难以或不可能区分这些人,特别是基于顶视图图像。在这个实施例中,系统识别顶视图深度图像中的多个深度处的轮廓,以便单独检测间隔近的对象。使用图22和23更详细地描述这种配置。
在一个实施例中,跟踪系统被配置为在局部(例如,通过跟踪从每个传感器接收到的图像中的像素位置)和全局(例如,通过跟踪全局平面上与空间中的物理坐标对应的物理位置)两者来跟踪人。人跟踪在局部和全局两者执行时可能更可靠。例如,如果人在局部“丢失”(例如,如果传感器未能捕获帧并且传感器未检测到人),那么该人仍可能基于来自附近传感器的图像、使用局部跟踪算法确定的人的估计局部位置,和/或使用全局跟踪算法确定的估计全局位置被全局跟踪。使用图24A-C至26更详细地描述这种配置。
在一个实施例中,跟踪系统被配置为在跟踪期间维护可能的人身份或标识符(即,被跟踪的人的用户名、账号等)的记录,该记录在本公开中被称为“候选者者列表”。在跟踪期间生成并更新候选者者列表,以建立每个被跟踪人的可能身份。一般而言,对于被跟踪人的每个可能的身份或标识符,候选者者列表还包括该身份或标识符被认为是正确的概率。候选者者列表在人之间的交互(例如,冲突)之后以及响应于其它不确定事件(例如,传感器数据丢失、成像错误、故意欺骗等)被更新。使用图27和28更详细地描述这种配置。
在一个实施例中,跟踪系统被配置为在被跟踪人的身份变得不确定或未知时(例如,基于上述候选者者列表)采用专门结构化的方法进行对象重新识别。例如,不是严重依赖于资源昂贵的基于机器学习的方法来重新识别人,而是首先使用与人的可观察特性(例如,高度、颜色、宽度、体积等)相关的“较低成本”描述符来进行人的重新识别。当较低成本描述符无法提供可靠结果时,使用“较高成本”描述符(例如,使用人工神经网络模型确定的)。例如,在一些情况下,可以首先基于人的高度、头发颜色和/或鞋子颜色来重新识别他/她。但是,如果这些描述符不足以可靠地重新识别人(例如,因为被跟踪的其它人具有相似的特性),那么可以使用逐步更高级别的方法(例如,涉及被训练以辨识人的人工神经网络),其在人识别方面可能更有效,但通常涉及使用更多的处理资源。使用图29至32更详细地描述这些配置。
在一个实施例中,跟踪系统被配置为采用级联算法(例如,从基于相对直接确定的图像特征的更简单的方法到涉及人工神经网络的更复杂的策略)将从支架上拾取的物品分配给正确的人。级联可以例如通过以下各项被触发:(i)两个或更多个人靠近支架,(ii)手跨界进入到与支架相邻的区(或“虚拟幕布”)中,和/或(iii)重量信号指示物品已从支架移走。在又一个实施例中,跟踪系统被配置为采用独特的基于轮廓的方法来将物品分配给正确的人。例如,如果两个人可能正伸入到支架中拾取物品,那么可以将轮廓从头部高度“扩大”到较低的高度,以便确定哪个人的手臂伸入到支架中拾取物品。如果这种计算效率高的基于轮廓的方法的结果不满足某些置信标准,那么可以使用涉及姿态估计的更计算昂贵的方法。使用图33A-C至35更详细地描述这些配置。
在一个实施例中,跟踪系统被配置为在物品离开支架后对其进行跟踪、识别物品停止移动的位置,并确定哪个人离停止的物品最近。最近的人通常被分配该物品。例如,当即使使用人工神经网络进行姿态估计也无法将物品分配给正确的人时,可以使用这种配置。使用图36A、B和37更详细地描述这种配置。
本公开的某些实施例可以包括这些优点中的一些、全部或不包括这些优点。从以下结合附图和权利要求的详细描述中将更清楚地理解这些优点和其它特征。
附图说明
为了更完整地理解本公开,现在结合附图和详细描述参考以下简要描述,附图中相同的附图标记表示相同的部分。
图1是被配置为跟踪空间内的对象的跟踪系统的实施例的示意图;
图2是用于跟踪系统的传感器映射方法的实施例的流程图;
图3是跟踪系统的传感器映射处理的示例;
图4是来自跟踪系统中传感器的帧的示例;
图5A是跟踪系统中传感器的传感器映射的示例;
图5B是跟踪系统中传感器的传感器映射的另一个示例;
图6是用于使用标记网格的跟踪系统的传感器映射方法的实施例的流程图;
图7是使用标记网格的跟踪系统的传感器映射处理的示例;
图8是跟踪系统的搁板位置校准方法的实施例的流程图;
图9是用于跟踪系统的搁板位置校准处理的示例;
图10是用于跟踪系统的跟踪移交方法的实施例的流程图;
图11是用于跟踪系统的跟踪移交处理的示例;
图12是用于跟踪系统的搁板交互检测方法的实施例的流程图;
图13是用于跟踪系统的搁板交互检测处理的示例的前视图;
图14是用于跟踪系统的搁板交互检测处理的示例的俯视图;
图15是用于跟踪系统的物品分配方法的实施例的流程图;
图16是用于跟踪系统的物品识别方法的实施例的流程图;
图17是用于跟踪系统的错放物品识别方法的实施例的流程图;
图18是用于跟踪系统的物品识别处理的示例;
图19是图示由跟踪系统确定和使用自动排除区的图;
图20是由跟踪系统生成的示例自动排除区地图;
图21是图示使用跟踪系统生成和使用用于对象跟踪的自动排除区的示例方法的流程图;
图22是图示使用跟踪系统检测间隔近的对象的图;
图23是图示使用跟踪系统检测间隔近的对象的示例方法的流程图;
图24A-C是图示使用跟踪系统在局部图像帧和空间102的全局平面中跟踪人的图;
图25A-B图示了由跟踪系统实现粒子过滤器跟踪器;
图26是图示使用跟踪系统进行局部和全局对象跟踪的示例方法的流程图;
图27是图示在跟踪系统的对象跟踪期间使用候选者列表进行对象识别的图;
图28是图示在跟踪系统的对象跟踪期间维护候选者列表的示例方法的流程图;
图29是图示用于在跟踪系统中使用的示例跟踪子系统的图;
图30是图示使用跟踪系统基于对象特征确定描述符的图;
图31A-C是图示在跟踪系统的对象跟踪期间使用描述符进行重新识别的图;
图32是图示在使用跟踪系统进行对象跟踪期间对象重新识别的示例方法的流程图;
图33A-C是图示使用跟踪系统将物品分配给人的图;
图34是使用跟踪系统将物品分配给人的示例方法的流程图;
图35是使用跟踪系统的基于轮廓扩大的物品分配的示例方法的流程图;
图36A-B是图示使用跟踪系统的基于物品跟踪的物品分配的图;
图37是使用跟踪系统的基于物品跟踪的物品分配的示例方法的流程图;以及
图38是被配置为跟踪空间内的对象的设备的实施例。
具体实施方式
位置跟踪系统用于跟踪物理空间(例如,商店)中人和/或对象的物理位置。这些系统通常使用传感器(例如,相机)来检测人和/或对象的存在,并使用计算机基于来自传感器的信号来确定人和/或对象的物理位置。在商店环境中,可以安装其它类型的传感器来跟踪商店内库存的移动。例如,重量传感器可以安装在支架和搁板上,以确定物品何时从这些支架和搁板上移走。通过跟踪商店中人的位置以及物品何时从搁板上移走,计算机可以确定商店中的哪个人移走了物品并为该物品向该人收费,而无需在收银处记入该物品。换句话说,该人可以走进商店、拿取物品并离开商店,而无需停下来进行常规的结账处理。
对于较大的物理空间(例如,便利店和杂货店),可以在整个空间中安装附加的传感器,以跟踪人和/或对象在空间内四处移动时的位置。例如,可以添加附加的相机来跟踪更大空间中的位置,并且可以添加附加的重量传感器来跟踪附加的物品和搁板。增加相机的数量带来了技术挑战,因为每个相机只为物理空间的一部分提供视场。这意味着需要独立处理来自每个相机的信息,以识别和跟踪特定相机视场内的人和对象。然后,需要将来自每个相机的信息作为集合进行组合和处理,以便跟踪物理空间内的人和对象。
在标题为“Scalable Position Tracking System For Tracking Position InLarge Spaces”的美国专利申请No.___(代理人案卷号090278.0176)和标题为“Customer-Based Video Feed”的美国专利申请No.____(代理人案卷号090278.0187)中公开了附加信息,两者均通过引用并入本文,就好像其全部内容被复制一样。
跟踪系统概述
图1是被配置为跟踪空间102内的对象的跟踪系统100的实施例的示意图。如上所述,跟踪系统100可以安装在空间102(例如,商店)中,使得购物者不需要参与常规的结账处理。虽然在本公开中使用了商店的示例,但本公开设想跟踪系统100可以安装和使用在任何类型的物理空间中(例如,房间、办公室、户外摊位、商场、超市、便利店、快闪店、仓库、仓储中心、游乐园、机场、办公楼等)。一般而言,跟踪系统100(或其组件)用于跟踪这些空间102内的人和/或对象的位置用于任何合适的目的。例如,在机场,出于安全目的,跟踪系统100可以跟踪旅行者和员工的位置。作为另一个示例,在游乐园,跟踪系统100可以跟踪公园游客的位置以衡量景点的受欢迎程度。作为又一个示例,在办公楼,跟踪系统100可以跟踪员工和职员的位置以监视他们的生产力水平。
在图1中,空间102是包括多个可供购买的物品的商店。跟踪系统100可以安装在商店中,使得购物者不需要参与常规的结账处理来从商店购买物品。在这个示例中,商店可以是便利店或杂货店。在其它示例中,商店可以不是物理建筑物,而是购物者可以购物的物理空间或环境。例如,商店可以是机场处的外卖食品室、办公楼中的售货亭、公园处的户外市场等。
在图1中,空间102包括一个或多个支架112。每个支架112包括一个或多个搁板,这些搁板被配置为保持和展示物品。在一些实施例中,空间102可以包括冰箱、冷却器、冷冻柜或任何其它合适类型的用于保持或展示用于购买的物品的家具。空间102可以如所示配置或以任何其它合适的配置进行配置。
在这个示例中,空间102是包括入口通道的物理结构,购物者可以通过该入口通道进入和离开空间102。空间102包括入口区域114和出口区域116。在一些实施例中,入口区域114和出口区域116可以重叠或者是空间102内的相同区域。入口区域114与人进入空间102的空间102的入口(例如,门)相邻。在一些实施例中,入口区域114可以包括控制进入到空间102中的交通流的旋转门或闸门。例如,入口区域114可以包括一次只允许一个人进入空间102的旋转门。入口区域114可以与在人进入空间102时对其进行识别的一个或多个设备(例如,传感器108或扫描仪115)相邻。作为示例,传感器108可以在人进入空间102时捕获他们的一个或多个图像。作为另一个示例,人可以使用扫描仪115识别自己。扫描仪115的示例包括但不限于QR码扫描仪、条形码扫描仪、近场通信(NFC)扫描仪或可以接收嵌入有唯一识别人的信息的电子码的任何其它合适类型的扫描仪。例如,购物者可以在扫描仪115上扫描个人设备(例如,智能电话)以进入商店。当购物者在扫描仪115上扫描他们的个人设备时,个人设备可以向扫描仪115提供唯一识别购物者的电子代码。在购物者被识别和/或认证之后,购物者被允许进入商店。在一个实施例中,每个购物者可以具有向商店注册的账户以接收个人设备的识别码。
在进入空间102之后,购物者可以在商店内部四处移动。当购物者在空间102中到处移动时,购物者可能通过从支架112移走物品来购买物品。购物者可以从商店中的支架112中移走多个物品来购买这些物品。当购物者完成购物时,购物者可以经由出口区域116离开商店。出口区域116与人离开空间102的空间102的出口(例如,门)相邻。在一些实施例中,出口区域116可以包括控制离开空间102的交通流的旋转门或闸门。例如,出口区域116可以包括一次只允许一个人离开空间102的旋转门。在一些实施例中,出口区域116可以与在人离开空间102时识别人的一个或多个设备(例如,传感器108或扫描仪115)相邻。例如,购物者可以在旋转门或闸门将打开以允许购物者离开商店之前在扫描仪115上扫描他们的个人设备。当购物者在扫描仪115上扫描他们的个人设备时,个人设备可以提供唯一标识购物者的电子代码以指示该购物者正在离开商店。当购物者离开商店时,购物者的账户会对购物者从商店中移走的物品进行收费。通过这个处理,跟踪系统100允许购物者带着他们的物品离开商店,而无需参与常规的结账处理。
全局平面概述
为了描述空间102内的人和对象的物理地点,为空间102定义了全局平面104。全局平面104是用户定义的由跟踪系统100使用以识别物理域(即空间102)内对象的地点的坐标系。参考图1作为示例,全局平面104被定义为使得x轴和y轴与空间102的地板平行。在这个示例中,全局平面104的z轴垂直于空间102的地板。空间102中的地点被定义为全局平面104的参考地点101或原点。在图1中,全局平面104被定义为使得参考地点101与商店的角落对应。在其它示例中,参考地点101可以位于空间102内任何其它合适的地点。
在这种配置中,空间102内的物理地点可以使用全局平面104中的(x,y)坐标来描述。作为示例,全局平面104可以被定义为使得全局平面104中的一个单位对应于空间102中的一米。换句话说,全局平面104中一的x值对应于在空间102中距参考地点101一米的偏移。在这个示例中,站在参考地点101处空间102的角落中的人将在全局平面104中具有值为(0,0)的(x,y)坐标。如果人在x轴正方向移动两米,并且在y轴正方向移动两米,那么他们的新(x,y)坐标将具有值(2,2)。在其它示例中,全局平面104可以使用英寸、英尺或任何其它合适的测量单位来表达。
一旦为空间102定义了全局平面104,跟踪系统100就使用全局平面104的(x,y)坐标来跟踪空间102内人和对象的地点。例如,当购物者在商店内部移动时,跟踪系统100可以使用全局平面104的(x,y)坐标来跟踪他们在商店内的当前物理地点。
跟踪系统硬件
在一个实施例中,跟踪系统100包括一个或多个客户端105、一个或多个服务器106、一个或多个扫描仪115、一个或多个传感器108和一个或多个重量传感器110。一个或多个客户端105、一个或多个服务器106、一个或多个扫描仪115、一个或多个传感器108和一个或多个重量传感器110可以通过网络107彼此进行信号通信。网络107可以是任何合适类型的无线和/或有线网络,包括但不限于互联网、内联网、蓝牙网络、WIFI网络、Zigbee网络、Z-wave网络、私有网络、公共网络、对等网络、公共交换电话网络、蜂窝网络、局域网(LAN)、城域网(MAN)、广域网(WAN)和卫星网络的全部或一部分。网络107可以被配置为支持本领域普通技术人员将认识到的任何合适类型的通信协议。跟踪系统100可以如所示配置或以任何其它合适的配置进行配置。
传感器
跟踪系统100被配置为使用传感器108来识别和跟踪空间102内人和对象的地点。例如,跟踪系统100使用传感器108来捕获购物者在商店内移动时他们的图像或视频。跟踪系统100可以处理由传感器108提供的图像或视频以识别购物者、购物者的地点和/或购物者拾取的任何物品。
传感器108的示例包括但不限于相机、视频相机、web相机、印刷电路板(PCB)相机、深度感测相机、飞行时间相机、LiDAR、结构化光相机,或任何其它合适类型的成像设备。
每个传感器108被定位在空间102的至少一部分上方并且被配置为捕获空间102的至少一部分的俯视图像或视频。在一个实施例中,传感器108通常被配置为产生空间102的内部部分的视频。这些视频可以包括空间102内的购物者的帧或图像302。每个帧302是特定传感器108的视场内的人和/或对象在特定时刻的快照。帧302可以是二维(2D)图像或三维(3D)图像(例如,点云或深度地图)。在这种配置中,每个帧302是空间102的全局平面104的一部分。参考图4作为示例,帧302包括多个像素,这些像素中的每个像素与帧302内的像素地点402相关联。跟踪系统100使用像素地点402来描述对象相对于来自传感器108的帧302中的像素的地点。在图4中所示的示例中,跟踪系统100可以使用它们相应的像素地点402来识别帧302内的不同标记304的地点。像素地点402对应于像素位于帧302内的像素行和像素列。在一个实施例中,每个像素还与指示全局平面104中的深度或距离测量的像素值404相关联。例如,像素值404可以对应于传感器108和空间102中的表面之间的距离。
每个传感器108在空间102内具有有限的视场。这意味着每个传感器108可能仅能够捕获它们视场内的空间102的一部分。为了提供空间102的完全覆盖,跟踪系统100可以使用被配置为传感器阵列的多个传感器108。在图1中,传感器108被配置为三乘四传感器阵列。在其它示例中,传感器阵列可以包括任何其它合适数量和/或配置的传感器108。在一个实施例中,传感器阵列被定位成与空间102的地板平行。在一些实施例中,传感器阵列被配置为使得相邻传感器108具有至少部分重叠的视场。在这种配置中,每个传感器108捕获空间102的不同部分的图像或帧302,这允许跟踪系统100通过组合来自多个传感器108的帧302的信息来监视整个空间102。跟踪系统100被配置为使用单应性118将每个传感器108内的像素地点402映射到空间102中的物理地点。单应性118被配置为在由传感器108捕获的帧302中的像素地点402和全局平面104中的(x,y)坐标(即空间102中的物理地点)之间转换。跟踪系统100使用单应性118在特定传感器108中的像素地点402与空间102中的物理地点之间进行关联。换句话说,跟踪系统100使用单应性118来基于人在来自传感器108的帧302内的像素地点402来确定人在空间102中物理上位于哪里。由于跟踪系统100使用多个传感器108来监视整个空间102,因此每个传感器108基于传感器108在空间102内的物理地点与不同的单应性118唯一地相关联。这种配置允许跟踪系统100基于人出现在哪个传感器108中以及他们在由该传感器108捕获的帧302内的地点来确定该人在整个空间102内物理上位于哪里。图2-7中描述了关于单应性118的附加信息。
重量传感器
跟踪系统100被配置为使用重量传感器110来检测和识别人在空间102内拾取的物品。例如,跟踪系统100使用位于支架112的搁板上的重量传感器110来检测购物者何时从支架112中移走物品。每个重量传感器110可以与特定物品相关联,这允许跟踪系统100识别购物者拾取了哪个物品。
重量传感器110通常被配置为测量放置在重量传感器110上或附近的对象(例如,产品)的重量。例如,重量传感器110可以包括将输入机械力(例如,重量、张力、压缩、压力或扭矩)转换成输出电信号(例如,电流或电压)的换能器。随着输入力的增加,输出电信号可能会成比例地增加。跟踪系统100被配置为分析输出电信号以确定重量传感器110上物品的总重量。
重量传感器110的示例包括但不限于压电式负载传感器(load cell)或压力传感器。例如,重量传感器110可以包括一个或多个负载传感器,该负载传感器被配置为传送指示由负载传感器经受的重量的电信号。例如,负载传感器可以产生取决于由负载传感器经历的重量或力而变化的电流。负载传感器被配置为将产生的电信号传送到服务器105和/或客户端106进行处理。
重量传感器110可以被定位到空间102内的家具(例如,支架112)上以保持一个或多个物品。例如,一个或多个重量传感器110可以被定位在支架112的搁板上。作为另一个示例,一个或多个重量传感器110可以被定位在冰箱或冷却器的搁板上。作为另一个示例,一个或多个重量传感器110可以与支架112的搁板集成。在其它示例中,重量传感器110可以被定位在空间102内的任何其它合适的地点。
在一个实施例中,重量传感器110可以与特定物品相关联。例如,重量传感器110可以被配置为保持一个或多个特定物品并测量重量传感器110上的物品的组合重量。当从重量传感器110拾取物品时,重量传感器110被配置为检测重量减少。在这个示例中,重量传感器110被配置为使用存储的关于物品重量的信息来确定从重量传感器110移走的多个物品。例如,重量传感器110可以与个体重量为八盎司的物品相关联。当重量传感器110检测到二十四盎司的重量减少时,重量传感器110可以确定三个物品已从重量传感器110上移走。重量传感器110还被配置为在将物品添加到重量传感器110时检测重量增加。例如,如果物品被返回到重量传感器110,那么重量传感器110将确定与与重量传感器110相关联的物品的个体重量对应的重量增加。
服务器
服务器106可以由一个或多个物理设备形成,该物理设备被配置为向跟踪系统100提供服务和资源(例如,数据和/或硬件资源)。关于服务器106的硬件配置的附加信息在图38中描述。在一个实施例中,服务器106可以可操作地耦合到一个或多个传感器108和/或重量传感器110。跟踪系统100可以包括任何合适数量的服务器106。例如,跟踪系统100可以包括与传感器阵列中的第一多个传感器108进行信号通信的第一服务器106和与传感器阵列中的第二多个传感器108进行信号通信的第二服务器106。作为另一个示例,跟踪系统100可以包括与多个传感器108进行信号通信的第一服务器106和与多个重量传感器110进行信号通信的第二服务器106。在其它示例中,跟踪系统100可以包括任何其它合适数量的服务器106,这些服务器中的每个服务器106与一个或多个传感器108和/或重量传感器110进行信号通信。
服务器106可以被配置为处理一个或多个传感器108和/或重量传感器110的数据(例如,帧302和/或视频)。在一个实施例中,服务器106可以被配置为生成传感器108的单应性118。如上所述,所生成的单应性118允许跟踪系统100基于人出现在哪个传感器108中以及他们在由该传感器108捕获的帧302内的地点来确定人在整个空间102内物理上位于哪里。在这种配置中,服务器106基于全局平面104中标记的物理地点和来自传感器108的图像中标记的像素地点来确定单应性118的系数。执行这个处理的服务器106的示例在图2-7中进行描述。
在一个实施例中,服务器106被配置为使用传感器108校准全局平面104内的搁板位置。该处理允许跟踪系统100检测支架112或传感器108何时已从其在空间102内的原始地点移走。在这种配置中,服务器106使用传感器108周期性地将支架112的当前搁板地点与支架112的预期搁板地点进行比较。在当前搁板地点与预期搁板地点不匹配的情况下,服务器106则将使用一个或多个其它传感器108来确定支架112是否已移动或第一传感器108是否已移动。图8和9中描述了执行这个处理的服务器106的示例。
在一个实施例中,服务器106被配置为在对象(例如,人)在相邻传感器108的视场之间移动时移交对象(例如,人)的跟踪信息。该处理允许跟踪系统100在人们在空间102的内部移动时跟踪他们。在这种配置中,服务器106跟踪对象在第一传感器108的视场内的移动,然后在对象进入第二相邻传感器108的视场时移交对象的跟踪信息(例如,对象标识符)。图10和11中描述了执行这个处理的服务器106的示例。
在一个实施例中,服务器106被配置为使用虚拟幕布检测搁板交互。该处理允许跟踪系统100识别人从支架112拾取的物品。在这种配置中,服务器106被配置为处理由传感器108捕获的图像以确定人正在哪里与支架112的搁板交互。服务器106使用图像内的预定义区作为虚拟幕布,虚拟幕布用于确定人正在与之交互的支架112的区间和搁板。图12-14中描述了执行这个处理的服务器106的示例。
在一个实施例中,服务器106被配置为检测何时已经从支架112拾取物品并且使用与支架112相关联的预定义区来确定把该物品分配给哪个人。该处理允许跟踪系统100将支架112上的物品与拾取该物品的人相关联。在这种配置中,服务器106使用重量传感器110检测物品已经被拾取。服务器106然后使用传感器108来识别与支架112相关联的预定义区内的人。一旦物品和人被识别,服务器106就将把该物品添加到与识别出的人相关联的数字购物车。在图15和18中描述了执行这个处理的服务器106的示例。
在一个实施例中,服务器106被配置为识别具有不均匀重量的对象并将物品分配给人的数字购物车。该处理允许跟踪系统100识别人们拾取的、不能仅基于其重量识别的物品。例如,新鲜食物的重量不是恒定的,并且会因物品而异。在这种配置中,服务器106使用传感器108来识别已被拾取的物品上的标记(例如,文本或符号)。服务器106使用识别出的标记然后识别哪个物品被拾取。服务器106然后使用传感器108来识别与支架112相关联的预定义区内的人。一旦物品和人已被识别,服务器106就将把该物品添加到与识别出的人相关联的数字购物车。在图16和18中描述了执行这个处理的服务器106的示例。
在一个实施例中,服务器106被配置为识别已经被错放在支架112上的物品。该处理允许跟踪系统100在购物者放下物品时从购物者的数字购物车中移走物品,而不管他们是否将物品放回其正确地点。例如,人可能将物品放回支架112上的错误地点或错误的支架112上。在这种配置中,服务器106使用重量传感器110来检测物品已被放回支架112上并基于其重量确定该物品不在正确的地点。服务器106然后使用传感器108来识别将物品放在支架112上的人并且分析他们的数字购物车以基于他们的数字购物车中物品的重量确定他们放回了哪个物品。在图17和18中描述了执行这个处理的服务器106的示例。
客户端
在一些实施例中,一个或多个传感器108和/或重量传感器110经由客户端105可操作地耦合到服务器106。在一个实施例中,跟踪系统100包括多个客户端105,这些客户端中的每个客户端可操作地耦合到一个或多个传感器108和/或重量传感器110。例如,第一客户端105可以可操作地耦合到一个或多个传感器108和/或重量传感器110,并且第二客户端105可以可操作地耦合到一个或多个其它传感器108和/或重量传感器110。客户端105可以由一个或多个物理设备形成,该物理设备被配置为处理一个或多个传感器108和/或重量传感器110的数据(例如,帧302和/或视频)。客户端105可以充当用于在服务器106和一个或多个传感器108和/或重量传感器110之间交换数据的中介。一个或多个客户端105和服务器106的组合也可以被称为跟踪子系统。在这种配置中,客户端105可以被配置为为传感器108捕获的图像或帧302提供图像处理能力。客户端105还被配置为将图像、处理后的图像或任何其它合适类型的数据发送到服务器106以供进一步处理和分析。在一些实施例中,客户端105可以被配置为执行以上针对服务器106描述的处理中的一个或多个处理。
传感器映射处理
图2是用于跟踪系统100的传感器映射方法200的实施例的流程图。跟踪系统100可以采用方法200来为传感器108生成单应性118。如上所述,单应性118允许跟踪系统100基于人出现在哪个传感器108中以及他们在由该传感器108捕获的帧302内的地点来确定人在整个空间102内物理上位于哪里。一旦生成,单应性118就可以用于在由传感器108捕获的图像(例如,帧302)中的像素地点402和全局平面104中的(x,y)坐标306(即空间102中的物理地点)之间转换。以下是为单个传感器108生成单应性118的处理的非限制性示例。可以重复该相同处理以生成其它传感器108的单应性118。
在步骤202处,跟踪系统100接收空间102中的标记304的(x,y)坐标306。参考图3作为示例,每个标记304是识别空间102内的已知物理地点的对象。标记304用于划分物理域(即全局平面104)中的地点,这些地点可以被映射到来自传感器108的帧302中的像素地点402。在这个示例中,标记304被表示为空间102的地板上的五角星。标记304可以由传感器108可以观察到的任何合适的对象形成。例如,标记304可以是放置在空间102的地板上的胶带或贴纸。作为另一个示例,标记304可以是空间102的地板上的设计或标记。在其它示例中,标记304可以被定位在空间102内可由传感器108观察到的任何其它合适的地点。例如,一个或多个标记304可以被定位在支架112的顶部。
在一个实施例中,标记304的(x,y)坐标306由操作员提供。例如,操作员可以手动将标记304放置在空间102的地板上。操作员可以通过测量标记304与全局平面104的参考地点101之间的距离来确定标记304的(x,y)地点306。操作员然后可以将确定的(x,y)地点306提供给跟踪系统100的服务器106或客户端105作为输入。
参考图3中的示例,跟踪系统100可以接收空间102中的第一标记304A的第一(x,y)坐标306A和空间102中的第二标记304B的第二(x,y)坐标306B。第一(x,y)坐标306A描述了第一标记304A相对于空间102的全局平面104的物理地点。第二(x,y)坐标306B描述了第二标记304B相对于空间102的全局平面104的物理地点。跟踪系统100可以重复获得空间102内任何合适数量的附加标记304的(x,y)坐标306的处理。
一旦跟踪系统100知道标记304在空间102内的物理地点,跟踪系统100然后就确定标记304相对于传感器108的帧302中的像素位于哪里。返回到图2的步骤204,跟踪系统100从传感器108接收帧302。参考图4作为示例,传感器108针对空间102的至少一部分捕获全局平面104的图像或帧302。在这个示例中,帧302包括多个标记304。
返回到图2的步骤206,跟踪系统100识别传感器108的帧302内的标记304。在一个实施例中,跟踪系统100使用对象检测来识别帧302内的标记304。例如,标记304可以具有跟踪系统100可以在帧302内搜索以识别标记304的已知特征(例如,形状、图案、颜色、文本等)。参考图3中的示例,每个标记304具有五角星形状。在这个示例中,跟踪系统100可以在帧302中搜索五角星形状的对象以识别帧302内的标记304。跟踪系统100可以识别帧302内的第一标记304A、第二标记304B和任何其它标记304。在其它示例中,跟踪系统100可以使用任何其它合适的特征来识别帧302内的标记304。在其它实施例中,跟踪系统100可以采用任何其它合适的图像处理技术来识别帧302内的标记302。例如,标记304可以具有已知的颜色或像素值。在这个示例中,跟踪系统100可以使用阈值来识别帧302内与标记304的颜色或像素值对应的标记304。
返回到图2的步骤208,跟踪系统100确定帧302内的识别出的标记304的数量。这里,跟踪系统100对在帧302内检测到的标记304的数量进行计数。参考图3中的示例,跟踪系统100检测到帧302内的八个标记304。
返回到图2步骤210,跟踪系统100确定识别出的标记304的数量是否大于或等于预定阈值。在一些实施例中,预定阈值与用于为传感器108生成单应性118的准确度水平成比例。增加预定阈值可以提高生成单应性118时的准确度,而降低预定阈值可以降低生成单应性118时的准确度。作为示例,预定阈值可以被设置为值六。在图3中所示的示例中,跟踪系统100识别出大于预定阈值的八个标记304。在其它示例中,可以将预定阈值设置为任何其它合适的值。跟踪系统100响应于确定识别出的标记304的数量小于预定阈值而返回到步骤204。在这种情况下,跟踪系统100返回到步骤204以使用相同的传感器108来捕获空间102的另一个帧302来尝试检测更多的标记304。这里,跟踪系统100尝试获得包括大于或等于预定阈值的多个标记304的新的帧302。例如,在操作员将一个或多个附加标记304添加到空间102之后,跟踪系统100可以接收空间102的新的帧302。作为另一个示例,跟踪系统100可以在照明条件已被改变之后接收新的帧302以提高帧302内的标记304的可检测性。在其它示例中,跟踪系统100可以在改进帧302内的标记304的可检测性的任何种类的改变之后接收新的帧302。
跟踪系统100响应于确定识别出的标记304的数量大于或等于预定阈值而进行到步骤212。在步骤212处,跟踪系统100为识别出的标记304确定帧302中的像素地点402。例如,跟踪系统100确定帧302内与第一标记304A对应的第一像素地点402A和帧302内与第二标记304B对应的第二像素地点402B。第一像素地点402A包括指示第一标记304A位于帧302中哪里的第一像素行和第一像素列。第二像素地点402B包括指示第二标记304B位于帧302中哪里的第二像素行和第二像素列。
在步骤214处,跟踪系统100基于识别出的标记304在传感器108的帧302内的像素地点402和识别出的标记304在全局平面104中的(x,y)坐标306来生成传感器108的单应性118。在一个实施例中,跟踪系统100使每个识别出的标记304的像素地点402与其对应的(x,y)坐标306相关。继续图3中的示例,跟踪系统100将第一标记304A的第一像素地点402A与第一标记304A的第一(x,y)坐标306A相关联。跟踪系统100还将第二标记304B的第二像素地点402B与第二标记304B的第二(x,y)坐标306B相关联。跟踪系统100可以为所有识别出的标记304重复关联像素地点402和(x,y)坐标306的处理。
跟踪系统100然后确定识别出的标记304在传感器108的帧302内的像素地点402和识别出的标记304在全局平面104中的(x,y)坐标306之间的关系,以生成传感器108的单应性118。生成的单应性118允许跟踪系统100将来自传感器108的帧302中的像素地点402映射到全局平面104中的(x,y)坐标306。图5A和5B中描述了关于单应性118的附加信息。一旦跟踪系统100为传感器108生成单应性118,跟踪系统100就将传感器108和生成的单应性118之间的关联存储在存储器(例如,存储器3804)中。
跟踪系统100可以重复上述处理以生成单应性118并将其与其它传感器108相关联。继续图3中的示例,跟踪系统100可以从第二传感器108接收第二帧302。在这个示例中,第二帧302包括第一标记304A和第二标记304B。跟踪系统100可以确定第一标记304A在第二帧302中的第三像素地点402、第二标记304B在第二帧302中的第四像素地点402以及任何其它标记304的像素地点402。然后,跟踪系统100可以基于第一标记304A在第二帧302中的第三像素地点402、第二标记304B在第二帧302中的第四像素地点402、第一标记304A在全局平面104中的第一(x,y)坐标306A、第二标记304B在全局平面104中的第二(x,y)坐标306B,以及其它标记304的像素地点402和(x,y)坐标306生成第二单应性118。第二单应性118包括在第二帧302中的像素地点402和全局平面104中的物理地点(例如,(x,y)坐标306)之间转换的系数。第二单应性118的系数不同于与第一传感器108相关联的单应性118的系数。该处理唯一地将每个传感器108与对应的单应性118相关联,该单应性118将来自传感器108的像素地点402映射到全局平面104中的(x,y)坐标306。
单应性
图5A和5B中描述了传感器108的单应性118的示例。参考图5A,单应性118包括被配置为在帧302中的像素地点402和全局平面104中的物理地点(例如,(x,y)坐标306)之间转换的多个系数。在这个示例中,单应性118被配置为矩阵并且单应性118的系数被表示为H11、H12、H13、H14、H21、H22、H23、H24、H31、H32、H33、H34、H41、H42、H43和H44。跟踪系统100可以通过使用系数定义帧302中的像素地点402和全局平面104中的物理地点(例如,(x,y)坐标306)之间的关系或函数来生成单应性118。例如,跟踪系统100可以使用系数定义一个或多个函数,并且可以执行回归(例如,最小二乘回归)以求解将传感器的帧302的像素地点402投影到全局平面104中的(x,y)坐标306的系数的值。参考图3中的示例,传感器108的单应性118被配置为将第一标记304A在帧302中的第一像素地点402A投影到第一标记304A在全局平面104中的第一(x,y)坐标306A并且将第二标记304B在帧302中的第二像素地点402B投影到第二标记304B在全局平面104中的第二(x,y)坐标306B。在其它示例中,跟踪系统100可以使用任何其它合适的技术来求解单应性118的系数。在图5A中所示的示例中,像素地点402处的z值可以对应于像素值404。在这种情况下,单应性118还被配置为在帧302中的像素值404和全局平面104中的z坐标(例如,高度或标高(elevation))之间转换。
使用单应性
一旦跟踪系统100生成单应性118,跟踪系统100就可以使用单应性118来基于传感器108的帧302中对象的像素地点402来确定对象(例如,人)在空间102内的地点。例如,跟踪系统100可以在第一帧302中的像素地点402和单应性118之间执行矩阵乘法以确定全局平面104中的对应(x,y)坐标306。例如,跟踪系统100从传感器108接收第一帧302并且确定空间102中的对象在帧302中的第一像素地点。跟踪系统100然后可以将与传感器108相关联的单应性118应用到对象的第一像素地点402以确定识别对象所位于的全局平面104中的第一x值和第一y值的第一(x,y)坐标306。
在一些情况下,跟踪系统100可以使用多个传感器108来确定对象的地点。当确定对象在空间102内位于何处时,使用多个传感器108可以提供更高的准确度。在这种情况下,跟踪系统100使用与不同传感器108相关联的单应性118来确定对象在全局平面104内的地点。继续前面的示例,跟踪系统100可以从第二传感器108接收第二帧302。跟踪系统100可以确定空间102中的对象在第二帧302中的第二像素地点402。跟踪系统100然后可以将与第二传感器108相关联的第二单应性118应用到对象的第二像素地点402以确定识别对象所位于的全局平面104中的第二x值和第二y值的第二(x,y)坐标306。
当第一(x,y)坐标306和第二(x,y)坐标306相同时,跟踪系统100可以使用第一(x,y)坐标306或第二(x,y)坐标306作为对象在空间102内的物理地点。当第一(x,y)坐标306和第二(x,y)坐标306不同时,跟踪系统100可以在第一(x,y)坐标306和第二(x,y)坐标306之间采用任何合适的聚类技术。在这种情况下,第一(x,y)坐标306和第二(x,y)坐标306是不同的,因此跟踪系统100将需要根据第一(x,y)地点306和第二(x,y)地点306确定对象在空间102内的物理地点。例如,跟踪系统100可以通过计算第一(x,y)坐标306和第二(x,y)坐标306之间的平均值来生成对象的平均(x,y)坐标。作为另一个示例,跟踪系统100可以通过计算第一(x,y)坐标306和第二(x,y)坐标306之间的中值来生成对象的中值(x,y)坐标。在其它示例中,跟踪系统100可以采用任何其它合适的技术来解析第一(x,y)坐标306和第二(x,y)坐标306之间的差异。
跟踪系统100可以使用单应性118的逆以从全局平面104中的(x,y)坐标306投影到传感器108的帧302中的像素地点402。例如,跟踪系统100接收对象在全局平面104中的(x,y)坐标306。跟踪系统100识别与看到对象的传感器108相关联的单应性118。跟踪系统100然后可以将逆单应性118应用到(x,y)坐标306来确定对象在传感器108的帧302中所位于的像素地点402。当单应性118被表示为矩阵时,跟踪系统100可以计算单应性500的矩阵逆。参考图5B作为示例,跟踪系统100可以在全局平面104中的(x,y)坐标306和逆单应性118之间执行矩阵乘法来确定传感器108的帧302中的对应像素地点402。
使用标记网格的传感器映射
图6是用于使用标记网格702的跟踪系统100的传感器映射方法600的实施例的流程图。跟踪系统100可以采用方法600来减少为传感器108生成单应性118所花费的时间量。例如,使用标记网格702减少了为传感器108生成单应性118所需的设置时间量。通常,每个标记304被放置在空间102内并且每个标记304的物理地点是独立确定的。对传感器阵列中的每个传感器108重复该处理。作为对照,标记网格702是包括多个标记304的便携式表面。标记网格702可以使用地毯、织物、海报板、泡沫板、乙烯基、纸、木材或任何其它合适类型的材料形成。每个标记304是识别标记网格702上的特定地点的对象。标记304的示例包括但不限于形状、符号和文本。标记网格702上的每个标记304的物理地点是已知的并且存储在存储器中(例如,标记网格信息716)。使用标记网格702简化并加速了放置和确定标记304的地点的处理,因为标记网格702及其标记304可以在空间102内的任何地方快速重新定位,而不必单独移动标记304或向空间102添加新的标记304。一旦生成,单应性118就可以用于在由传感器108捕获的帧302中的像素地点402和全局平面104中的(x,y)坐标306(即空间102中的物理地点)之间转换。
在步骤602处,跟踪系统100接收空间102中标记网格702的第一角704的第一(x,y)坐标306A。参考图7作为示例,标记网格702被配置为定位在空间102内的可由一个或多个传感器108观察到的表面(例如,地板)上。在这个示例中,跟踪系统100接收标记网格702的第一角704在全局平面104中的第一(x,y)坐标306A。第一(x,y)坐标306A描述了第一角704相对于全局平面104的物理地点。在一个实施例中,第一(x,y)坐标306A基于空间102中的参考地点101与第一角704之间的距离的物理测量。例如,标记网格702的第一角704的第一(x,y)坐标306A可以由操作员提供。在这个示例中,操作员可以手动将标记网格702放置在空间102的地板上。操作员可以通过测量标记网格702的第一角704与全局平面104的参考地点101之间的距离来确定标记网格702的第一角704的(x,y)地点306。操作员然后可以将确定的(x,y)地点306提供给跟踪系统100的服务器106或客户端105作为输入。
在另一个实施例中,跟踪系统100可以从位于标记网格702的第一角704的信标接收信号,该信号识别第一(x,y)坐标306A。信标的示例包括但不限于蓝牙信标。例如,跟踪系统100可以与信标通信并且基于在跟踪系统100和信标之间传送的信号的飞行时间来确定第一(x,y)坐标306A。在其它实施例中,跟踪系统100可以使用任何其它合适的技术来获得第一角704的第一(x,y)坐标306A。
返回到图6步骤604,跟踪系统100确定标记网格702上的标记304的(x,y)坐标306。返回到图7中的示例,跟踪系统100确定标记网格702上的第一标记304A的第二(x,y)坐标306B。跟踪系统100包括识别标记网格702上的标记304和标记网格702的第一角704之间的偏移的标记网格信息716。在这个示例中,偏移包括标记网格702的第一角704和第一标记304A之间相对于全局平面104的x轴和y轴的距离。使用标记网格信息1912,跟踪系统100能够通过将与第一标记304A相关联的偏移添加到标记网格702的第一角704的第一(x,y)坐标306A来确定第一标记304A的第二(x,y)坐标306B。
在一个实施例中,跟踪系统100至少部分地基于标记网格702的旋转来确定第二(x,y)坐标306B。例如,跟踪系统100可以接收第四(x,y)坐标306D,其识别标记网格702的第二角706在全局平面104中的x值和y值。跟踪系统100可以使用与步骤602中描述的处理类似的处理来获得标记网格702的第二角706的第四(x,y)坐标306D。跟踪系统100确定标记网格702的第一角704的第一(x,y)坐标306A与标记网格702的第二角706的第四(x,y)坐标306D之间的旋转角712。在这个示例中,旋转角712围绕全局平面104内的标记网格702的第一角704。跟踪系统100然后通过将与第一标记304A相关联的偏移添加到标记网格702的第一角704的第一(x,y)坐标306A来应用平移并使用围绕标记网格702的第一角704的第一(x,y)坐标306A的旋转角712来应用旋转,从而确定第一标记304A的第二(x,y)坐标306B。在其它示例中,跟踪系统100可以使用任何其它合适的技术来确定第一标记304A的第二(x,y)坐标306B。
跟踪系统100可以对标记网格702上的一个或多个附加标记304重复该处理。例如,跟踪系统100为标记网格702上的第二标记304B确定第三(x,y)坐标306C。这里,跟踪系统100使用标记网格信息716来识别与第二标记304A相关联的偏移。跟踪系统100能够通过将与第二标记304B相关联的偏移添加到标记网格702的第一角704的第一(x,y)坐标306A来确定第二标记304B的第三(x,y)坐标306C。在另一个实施例中,跟踪系统100至少部分地基于标记网格702的旋转,使用与上文针对第一标记304A描述的处理类似的处理来确定第二标记304B的第三(x,y)坐标306C。
一旦跟踪系统100知道标记304在空间102内的物理地点,跟踪系统100就确定标记304相对于传感器108的帧302中的像素位于何处。在步骤606处,跟踪系统100从传感器108接收帧302。帧302属于全局平面104,其包括空间102中的标记网格702的至少一部分。帧302包括标记网格702的一个或多个标记304。帧302的配置类似于图2-4中描述的帧302。例如,帧302包括多个像素,该多个像素中的每个像素与帧302内的像素地点402相关联。像素地点402识别像素所位于的像素行和像素列。在一个实施例中,每个像素与指示深度或距离测量的像素值404相关联。例如,像素值404可以对应于传感器108和空间102内的表面之间的距离。
在步骤610处,跟踪系统100识别传感器108的帧302内的标记304。跟踪系统100可以使用与图2的步骤206中描述的处理类似的处理来识别帧302内的标记304。例如,跟踪系统100可以使用对象检测来识别帧302内的标记304。参考图7中的示例,每个标记304是唯一的形状或符号。在其它示例中,每个标记304可以具有任何其它唯一的特征(例如,形状、图案、颜色、文本等)。在这个示例中,跟踪系统100可以在帧302内搜索与标记304的已知特征对应的对象。跟踪系统100可以识别第一标记304A、第二标记304B和标记网格702上的任何其它标记304。
在一个实施例中,跟踪系统100使用标记字典718将识别出的标记304的特征与标记网格702上的已知标记304的特征进行比较。标记字典718识别与标记网格702相关联的多个标记304。在这个示例中,跟踪系统100可以通过识别标记网格702上的五角星、将该五角星与标记字典718中的符号进行比较以及确定该五角星匹配标记字典718中的符号中与第一标记304A对应的一个符号来识别第一标记304A。类似地,跟踪系统100可以通过识别标记网格702上的三角形、将该三角形与标记字典718中的符号进行比较以及确定该三角形匹配标记字典718中的符号中与第二标记304B对应的一个符号来识别第二标记304B。跟踪系统100可以对帧302中的任何其它识别出的标记304重复这个处理。
在另一个实施例中,标记网格702可以包括包含文本的标记304。在这个示例中,每个标记304可以基于其文本被唯一地识别。这种配置允许跟踪系统100通过在帧302上使用文本辨识或光学字符辨识技术来识别帧302中的标记304。在这种情况下,跟踪系统100可以使用标记字典718,其包括多个预定义的单词,每个预定义单词与标记网格702上的标记304相关联。例如,跟踪系统100可以执行文本辨识以识别帧302内的文本。跟踪系统100然后可以将识别出的文本与标记字典718中的单词进行比较。这里,跟踪系统100检查识别出的文本是否匹配与标记网格702上的标记304对应的任何已知文本。跟踪系统100可以丢弃不与标记字典718中的任何单词匹配的任何文本。当跟踪系统100识别与标记词典718中的单词匹配的文本时,跟踪系统100可以识别与识别出的文本对应的标记304。例如,跟踪系统100可以确定识别出的文本和与第一标记304A相关联的文本匹配。跟踪系统100可以使用类似的处理来识别第二标记304B和标记网格702上的任何其它标记304。
返回到图6步骤610,跟踪系统100确定帧302内识别出的标记304的数量。这里,跟踪系统100对在帧302内检测到的标记304的数量进行计数。参考图7中的示例,跟踪系统100检测到帧302内的五个标记304。
返回到图6步骤614,跟踪系统100确定识别出的标记304的数量是否大于或等于预定阈值。跟踪系统100可以使用与图2的步骤210中描述的处理类似的处理将识别出的标记304的数量与预定阈值进行比较。跟踪系统100响应于确定识别出的标记304的数量小于预定阈值而返回到步骤606。在这种情况下,跟踪系统100返回到步骤606以使用相同的传感器108捕获空间102的另一个帧302以尝试检测更多的标记304。这里,跟踪系统100尝试获得包括大于或等于预定阈值的多个标记304的新的帧302。例如,在操作员在空间102内重新定位标记网格702之后,跟踪系统100可以接收空间102的新的帧302。作为另一个示例,跟踪系统100可以在照明条件已被改变之后接收新的帧302以提高帧302内的标记304的可检测性。在其它示例中,跟踪系统100可以在改进帧302内的标记304的可检测性的任何种类的改变之后接收新的帧302。
跟踪系统100响应于确定识别出的标记304的数量大于或等于预定阈值而进行到步骤614。一旦跟踪系统100在标记网格702上识别出合适数量的标记304,跟踪系统100然后就确定每个识别出的标记304的像素地点402。每个标记304可以占据帧302中的多个像素。这意味着对于每个标记304,跟踪系统100确定帧302中的哪个像素地点402与其在全局平面104中的(x,y)坐标306对应。在一个实施例中,当尝试为标记304识别像素地点402时,跟踪系统100使用边界框708来缩小或限制搜索空间。边界框708是帧302内包含标记304的定义区域或区间。例如,边界框708可以被定义为帧302的包括标记304的像素集合或像素范围。
在步骤614处,跟踪系统100识别帧302内的标记304的边界框708。在一个实施例中,跟踪系统100识别帧302中与标记304对应的多个像素,然后定义包围与标记304对应的像素的边界框708。跟踪系统100可以为每个标记304重复这个处理。返回到图7中的示例,跟踪系统100可以识别第一标记304A的第一边界框708A、第二标记304B的第二边界框708B以及帧302内的任何其它识别出的标记304的边界框708。
在另一个实施例中,当第一标记304A包括文本时,跟踪系统可以采用文本或字符辨识来识别第一标记304A。例如,跟踪系统100可以使用文本辨识来识别帧302内的包括与标记304对应的单词的像素。跟踪系统100然后可以定义包围与识别出的单词对应的像素的边界框708。在其它实施例中,跟踪系统100可以采用任何其它合适的图像处理技术来识别识别出的标记304的边界框708。
返回到图6,在步骤616处,跟踪系统100识别每个边界框708内与标记304在帧302中的像素地点402对应的像素710。如上所述,每个标记304可以占据帧302中的多个像素,并且跟踪系统100确定帧302中的哪个像素710与全局平面104中的(x,y)坐标306的像素地点402对应。在一个实施例中,每个标记304包括光源。光源的示例包括但不限于发光二极管(LED)、红外(IR)LED、白炽灯或任何其它合适类型的光源。在这种配置中,像素710对应于标记304的光源。在另一个实施例中,每个标记304可以包括对每个标记物304唯一的可检测特征。例如,每个标记304可以包括与标记304相关联的唯一颜色。作为另一个示例,每个标记304可以包括与标记304相关联的唯一符号或图案。在这种配置中,像素710对应于标记304的可检测特征。继续前面的示例,跟踪系统100识别第一标记304的第一像素710A、第二标记304的第二像素710B和任何其它识别出的标记304的像素710。
在步骤618处,跟踪系统100确定每个识别出的像素710在帧302内的像素地点402。例如,跟踪系统100可以识别与第一像素710A对应的帧302的第一像素行和第一像素列。类似地,跟踪系统100可以识别每个识别出的像素710在帧302中的像素行和像素列。
在跟踪系统100确定每个识别出的标记304在全局平面104中的(x,y)坐标306和在帧302中的像素地点402之后,跟踪系统100为传感器108生成单应性118。在步骤620处,跟踪系统100基于传感器108的帧302中的识别出的标记304的像素地点402和识别出的标记304在全局平面104中的(x,y)坐标306生成传感器108的单应性118。在一个实施例中,跟踪系统100使每个识别出的标记304的像素地点402与其对应的(x,y)坐标306相关。继续图7中的示例,跟踪系统100将第一标记304A的第一像素地点402与第一标记304A的第二(x,y)坐标306B相关联。跟踪系统100还将第二标记304B的第二像素地点402与第二标记304B的第三(x,y)地点306C相关联。跟踪系统100可以对所有识别出的标记304重复这个处理。
跟踪系统100然后确定识别出的标记304在传感器108的帧302内的像素地点402和识别出的标记304在全局平面104中的(x,y)坐标306之间的关系,以生成传感器108的单应性118。生成的单应性118允许跟踪系统100将来自传感器108的帧302中的像素地点402映射到全局平面104中的(x,y)坐标306。生成的单应性118类似于图5A和5B中描述的单应性。一旦跟踪系统100为传感器108生成单应性118,跟踪系统100就将传感器108和生成的单应性118之间的关联存储在存储器(例如,存储器3804)中。
跟踪系统100可以重复上述处理以生成单应性118并将其与其它传感器108相关联。标记网格702可以在空间108内移动或重新定位以生成另一个传感器108的单应性118。例如,操作员可以重新定位标记网格702以允许另一个传感器108查看标记网格702上的标记304。作为示例,跟踪系统100可以从第二传感器108接收第二帧302。在这个示例中,第二帧302包括第一标记304A和第二标记304B。跟踪系统100可以确定第一标记304A在第二帧302中的第三像素地点402和第二标记304B在第二帧302中的第四像素地点402。跟踪系统100然后可以基于第一标记304A在第二帧302中的第三像素地点402、第二标记304B在第二帧302中的第四像素地点402、第一标记304A在全局平面104中的(x,y)坐标306B、第二标记304B在全局平面104中的(x,y)坐标306C,以及其它标记304的像素地点402和(x,y)坐标306生成第二单应性118。第二单应性118包括在第二帧302中的像素地点402和全局平面104中的物理地点(例如,(x,y)坐标306)之间转换的系数。第二单应性118的系数不同于与第一传感器108相关联的单应性118的系数。换句话说,每个传感器108唯一地与将来自传感器108的像素地点402映射到全局平面104中的物理地点的单应性118相关联。该处理基于传感器108在全局平面104中的物理地点(例如,(x,y)坐标306)将单应性118唯一地关联到传感器108。
搁板位置校准
图8是跟踪系统100的搁板位置校准方法800的实施例的流程图。跟踪系统100可以采用方法800来周期性地检查支架112或传感器108是否已经在空间102内移动。例如,支架112可能被人意外碰撞或移动,导致支架112的位置相对于全局平面104移动。作为另一个示例,传感器108可能从其安装结构上松脱,这导致传感器108下垂或从其原始地点移动。在跟踪系统100已经被校准之后支架112和/或传感器108的位置的任何变化将降低跟踪系统100在跟踪空间102内的对象时的准确度和性能。跟踪系统100采用方法800来检测支架112或传感器108何时移动,然后基于支架112或传感器108的新位置重新校准自身。
传感器108可以被定位在空间102内,使得由传感器108捕获的帧302将包括位于支架112上的一个或多个搁板标记906。搁板标记906是定位在支架112上的对象,其可以用于确定支架112的地点(例如,(x,y)坐标306和像素地点402)。跟踪系统100被配置为存储与来自传感器108的帧302相关联的搁板标记906的像素地点402和(x,y)坐标306。在一个实施例中,搁板标记906的像素地点402和(x,y)坐标306可以使用与图2中描述的处理类似的处理来确定。在另一个实施例中,搁板标记906的像素地点402和(x,y)坐标306可以由操作员提供作为跟踪系统100的输入。
搁板标记906可以是类似于图2-7中描述的标记304的对象。在一些实施例中,支架112上的每个搁板标记906相对于支架112上的其它搁板标记906是唯一的。这种特征允许跟踪系统100确定支架112的朝向。参考图9中的示例,每个搁板标记906是识别支架112的特定部分的唯一形状。在这个示例中,跟踪系统100可以将第一搁板标记906A和第二搁板标记906B与支架112的前面相关联。类似地,跟踪系统100还可以将第三搁板标记906C和第四搁板标记906D与支架112的背面相关联。在其它示例中,每个搁板标记906可以具有可以用于识别搁板标记906的任何其它唯一可识别特征(例如,颜色或图案)。
返回到图8步骤802,跟踪系统100从第一传感器108接收第一帧302A。参考图9作为示例,第一传感器108捕获第一帧302A,第一帧302A包括空间102的全局平面104内的支架112的至少一部分。
返回到图8步骤804,跟踪系统100识别第一帧302A内的一个或多个搁板标记906。再次回到图9中的示例,支架112包括四个搁板标记906。在一个实施例中,跟踪系统100可以使用对象检测来识别第一帧302A内的搁板标记906。例如,跟踪系统100可以在第一帧302A中搜索与搁板标记906对应的已知特征(例如,形状、图案、颜色、文本等)。在这个示例中,跟踪系统100可以识别第一帧302A中与第一搁板标记906A对应的形状(例如,五角星)。在其它实施例中,跟踪系统100可以使用任何其它合适的技术来识别第一帧302A内的搁板标记906。跟踪系统100可以识别存在于第一帧302A中的任意数量的搁板标记906。
一旦跟踪系统100识别存在于第一传感器108的第一帧302A中的一个或多个搁板标记906,跟踪系统100然后就确定它们在第一帧302A中的像素地点402,从而可以将它们与搁板标记906的预期像素地点402进行比较。返回到图8步骤806,跟踪系统100确定第一帧302A中识别出的搁板标记906的当前像素地点402。返回到图9中的示例,跟踪系统100确定第一帧302A内搁板标记906的第一当前像素地点402A。第一当前像素地点402A包括搁板标记906位于第一帧302A内的第一像素行和第一像素列。
返回到图8步骤808,跟踪系统100确定搁板标记906的当前像素地点402是否与第一帧302A中搁板标记906的预期像素地点402匹配。返回到图9中的示例,跟踪系统100确定第一当前像素地点402A是否与搁板标记906的第一预期像素地点402匹配。如上所述,当跟踪系统100最初被校准时,跟踪系统100存储像素地点信息908,其包括支架112的搁板标记906在第一传感器108的第一帧302A内的预期像素地点402。跟踪系统100使用预期像素地点402作为参考点来确定支架112是否已经移动。通过将搁板标记906的预期像素地点402与其当前像素地点402进行比较,跟踪系统100可以确定是否存在任何指示支架112已经移动的差异。
跟踪系统100可以响应于确定第一帧302A中搁板标记906的当前像素地点402与搁板标记906的预期像素地点402匹配而终止方法800。在这种情况下,跟踪系统100确定支架112和第一传感器108都没有移动,因为当前像素地点402与搁板标记906的预期像素地点402匹配。
跟踪系统100响应于在步骤808处确定搁板标记906的一个或多个当前像素地点402与搁板标记906的预期像素地点402不匹配而进行到步骤810。例如,跟踪系统100可以确定第一当前像素地点402A与搁板标记906的第一预期像素地点402不匹配。在这种情况下,跟踪系统100确定支架112和/或第一传感器108已经移动,因为第一当前像素地点402A与搁板标记906的第一预期像素地点402不匹配。这里,跟踪系统100进行到步骤810以识别支架112是否已经移动或者第一传感器108是否已经移动。
在步骤810处,跟踪系统100从第二传感器108接收第二帧302B。第二传感器108与第一传感器108相邻并且具有与第一传感器108至少部分重叠的视场。第一传感器108和第二传感器108被定位成使得一个或多个搁板标记906可由第一传感器108和第二传感器108两者观察到。在这种配置中,跟踪系统100可以使用来自第一传感器108和第二传感器108的信息的组合来确定支架112是否已经移动或者第一传感器108是否已经移动。返回到图9中的示例,第二帧304B包括支架112的第一搁板标记906A、第二搁板标记906B、第三搁板标记906C和第四搁板标记906D。
返回到图8步骤812,跟踪系统100识别存在于来自第二传感器108的第二帧302B内的搁板标记906。跟踪系统100可以使用与步骤804中描述的处理类似的处理来识别搁板标记906。再次返回图9中的示例,跟踪系统100可以在第二帧302B中搜索与搁板标记906对应的已知特征(例如,形状、图案、颜色、文本等)。例如,跟踪系统100可以识别第二帧302B中与第一搁板标记906A对应的形状(例如,五角星)。
一旦跟踪系统100识别存在于第二传感器108的第二帧302B中的一个或多个搁板标记906,跟踪系统100然后就确定它们在第二帧302B中的像素地点402,从而可以将它们与搁板标记906的预期像素地点402进行比较。返回到图8步骤814,跟踪系统100确定第二帧302B中识别出的搁板标记906的当前像素地点402。返回到图9中的示例,跟踪系统100确定第二帧302B内搁板标记906的第二当前像素地点402B。第二当前像素地点402B包括搁板标记906在来自第二传感器108的第二帧302B内所位于的第二像素行和第二像素列。
返回到图8步骤816,跟踪系统100确定搁板标记906的当前像素地点402是否与第二帧302B中搁板标记906的预期像素地点402匹配。返回到图9中的示例,跟踪系统100确定第二当前像素地点402B是否与搁板标记906的第二预期像素地点402匹配。与上面在步骤808中讨论的类似,当跟踪系统100最初被校准时,跟踪系统100存储像素地点信息908,其包括支架112的搁板标记906在第二传感器108的第二帧302B内的预期像素地点402。通过将搁板标记906的第二预期像素地点402与其第二当前像素地点402B进行比较,跟踪系统100可以确定支架112是否已经移动或者第一传感器108是否已经移动。
当一个或多个搁板标记906的当前像素地点402和预期像素地点402对于多个传感器108不匹配时,跟踪系统100确定支架112已经移动。当支架112在全局平面104内移动时,搁板标记906的物理地点移动,这导致搁板标记906的像素地点402也相对于查看搁板标记906的任何传感器108移动。这意味着当多个传感器108观察到一个或多个搁板标记906的当前像素地点402与预期像素地点402之间的不匹配时,跟踪系统100可以得出结论支架112已经移动。
当一个或多个搁板标记906的当前像素地点402和预期像素地点402仅对于第一传感器108不匹配时,跟踪系统100确定第一传感器108已经移动。在这种情况下,第一传感器108已经相对于支架112及其搁板标记906移动,这导致搁板标记906的像素地点402相对于第一传感器108移动。搁板标记906的当前像素地点402仍将匹配其它传感器108的搁板标记906的预期像素地点402,因为这些传感器108和支架112的位置没有改变。
跟踪系统响应于确定当前像素地点402与搁板标记906在第二传感器108的第二帧302B中的第二预期像素地点402匹配而进行到步骤818。在这种情况下,跟踪系统100确定第一传感器108已经移动。在步骤818处,跟踪系统100重新校准第一传感器108。在一个实施例中,跟踪系统100通过为第一传感器108生成新的单应性118来重新校准第一传感器108。跟踪系统100可以使用搁板标记906和/或其它标记304为第一传感器108生成新的单应性118。跟踪系统100可以使用与图2和/或6中描述的处理类似的处理为第一传感器108生成新的单应性118。
作为示例,跟踪系统100可以使用当前与第一传感器108相关联的现有单应性118来确定搁板标记906的物理地点(例如,(x,y)坐标306)。跟踪系统110然后可以使用搁板标记906的当前像素地点402及其确定的(x,y)坐标306来为第一传感器108生成新的单应性118。例如,跟踪系统100可以使用与第一传感器108相关联的现有单应性118来确定全局平面104中第一搁板标记906所位于的第一(x,y)坐标306、全局平面104中第二搁板标记906所位于的第二(x,y)坐标306,以及任何其它搁板标记906的(x,y)坐标306。跟踪系统100可以使用与图5A中描述的处理类似的处理将第一传感器108的现有单应性118应用到第一帧302A中第一搁板标记906的当前像素地点402,以确定第一标记906的第一(x,y)坐标306。跟踪系统100可以重复该处理以确定任何其它识别出的搁板标记906的(x,y)坐标306。一旦跟踪系统100确定搁板标记906的(x,y)坐标306和搁板标记906在第一帧302A中的当前像素地点402,跟踪系统100然后就可以使用该信息为第一传感器108生成新的单应性118。例如,跟踪系统100可以基于第一标记906A的当前像素地点402、第二标记906B的当前像素地点402、第一标记906A的第一(x,y)坐标306、第二标记906B的第二(x,y)坐标306,以及第一帧302A中任何其它识别出的搁板标记906的(x,y)坐标306和像素地点402来生成新的单应性118。跟踪系统100将第一传感器108与新的单应性118相关联。该处理基于第一传感器108的当前地点更新与第一传感器108相关联的单应性118。
在另一个实施例中,跟踪系统100可以通过更新存储的第一传感器108的搁板标记906的预期像素地点来重新校准第一传感器108。例如,跟踪系统100可以用其当前像素地点402代替搁板标记906的先前预期像素地点402。更新搁板标记906相对于第一传感器108的预期像素地点402允许跟踪系统100使用第一传感器108继续监视支架112的地点。在这种情况下,跟踪系统100可以继续将第一传感器108的第一帧302A中搁板标记906的当前像素地点402与第一帧302A中的新预期像素地点402进行比较。
在步骤820处,跟踪系统100发送指示第一传感器108已经移动的通知。通知的示例包括但不限于文本消息、短消息服务(SMS)消息、多媒体消息传送服务(MMS)消息、推送通知、应用弹出通知、电子邮件或任何其它合适类型的通知。例如,跟踪系统100可以向与空间102相关联的人发送指示第一传感器108已经移动的通知。响应于接收到通知,该人可以检查第一传感器108和/或将第一传感器108移回其原始位置。
返回到步骤816,跟踪系统100响应于确定当前像素地点402与第二帧302B中的搁板标记906的预期像素地点402不匹配而进行到步骤822。在这种情况下,跟踪系统100确定支架112已经移动。在步骤822处,跟踪系统100更新第一传感器108和第二传感器108的预期像素地点信息402。例如,跟踪系统100可以将搁板标记906的先前预期像素地点402替换为其第一传感器108和第二传感器108两者的当前像素地点402。更新搁板标记906相对于第一传感器108和第二传感器108的预期像素地点402允许跟踪系统100使用第一传感器108和第二传感器108继续监视支架112的地点。在这种情况下,跟踪系统100可以继续将第一传感器108和第二传感器108的搁板标记906的当前像素地点402与新的预期像素地点402进行比较。
在步骤824处,跟踪系统100发送指示支架112已经移动的通知。例如,跟踪系统100可以向与空间102相关联的人发送指示支架112已经移动的通知。响应于接收到通知,该人可以检查和/或将支架112移回其原始位置。一旦支架112移回其原始位置,跟踪系统100就可以再次更新搁板标记906的预期像素地点402。
对象跟踪移交
图10是跟踪系统100的跟踪移交方法1000的实施例的流程图。跟踪系统100可以采用方法1000在对象(例如,人)在相邻传感器108的视场之间移动时移交对象(例如,人)的跟踪信息。例如,跟踪系统100可以跟踪人(例如,购物者)在空间102内部四处移动时的位置。每个传感器108具有有限的视场,这意味着每个传感器108只能跟踪人在空间102的一部分内的位置。跟踪系统100采用多个传感器108来跟踪人在整个空间102内的移动。每个传感器108彼此独立操作,这意味着跟踪系统100在人从一个传感器108的视场移动到相邻传感器108的视场中时跟踪人。
跟踪系统100被配置为使得当每个人进入空间102时,将对象标识符1118(例如,客户标识符)分配给每个人。对象标识符1118可以用于识别人和与该人相关联的其它信息。对象标识符1118的示例包括但不限于姓名、客户标识符、字母数字代码、电话号码、电子邮件地址,或人或对象的任何其它合适类型的标识符。在这种配置中,跟踪系统100跟踪人在第一传感器108的视场内的移动,然后在人进入第二相邻传感器108的视场时移交该人的跟踪信息(例如,对象标识符1118)。
在一个实施例中,跟踪系统100包括用于每个传感器108的识别相邻传感器108的相邻列表1114和传感器108的帧302内与相邻传感器108重叠的像素。参考图11中的示例,第一传感器108和第二传感器108具有部分重叠的视场。这意味着来自第一传感器108的第一帧302A与来自第二传感器108的第二帧302B部分重叠。在第一帧302A和第二帧302B之间重叠的像素被称为重叠区间1110。在这个示例中,跟踪系统100包括第一相邻列表1114A,其识别第一帧302A中与第一传感器108和第二传感器108之间的重叠区间1110对应的像素。例如,第一相邻列表1114A可以识别第一帧302A中与重叠区间1110对应的像素范围。第一相邻列表114A还可以包括关于第一传感器108和其它相邻传感器108之间的其它重叠区间的信息。例如,第三传感器108可以被配置为捕获与第一帧302A部分重叠的第三帧302。在这种情况下,第一相邻列表1114A将还包括识别第一帧302A中与第一传感器108和第三传感器108之间的重叠区间对应的像素的信息。类似地,跟踪系统100还可以包括与第二传感器108相关联的第二相邻列表1114B。第二相邻列表1114B识别第二帧302B中与第一传感器108和第二传感器108之间的重叠区间1110对应的像素。第二相邻列表1114B还可以包括关于第二传感器108和其它相邻传感器108之间的其它重叠区间的信息。在图11中,第二跟踪列表1112B被示为与第一跟踪列表1112A分离的数据结构,但是,跟踪系统100可以使用单个数据结构来存储与多个传感器108相关联的跟踪列表信息。
一旦第一人1106进入空间102,跟踪系统100就将跟踪与第一人1106相关联的对象标识符1118以及传感器108中第一人1106出现在跟踪列表1112中的像素地点402。例如,跟踪系统100可以使用第一跟踪列表1112A跟踪第一传感器108的视场内的人、使用第二跟踪列表1112B跟踪第二传感器108的视场内的人,等等。在这个示例中,第一跟踪列表1112A包括用于使用第一传感器108跟踪的人的对象标识符1118。第一跟踪列表1112A还包括像素地点信息,其指示人在第一传感器108的第一帧302A内的地点。在一些实施例中,第一跟踪列表1112A还可以包括与第一传感器108跟踪的人相关联的任何其它合适的信息。例如,第一跟踪列表1112A可以识别人在全局平面104中的(x,y)坐标306、人在第一帧302A内的先前像素地点402、和/或人的行进方向1116。例如,跟踪系统100可以基于第一人1106在第一帧302A内的先前像素地点402确定第一人1106的行进方向1116,并且可以将确定的行进方向1116存储在第一跟踪列表1112A中。在一个实施例中,行进方向1116可以被表示为相对于全局平面104的向量。在其它实施例中,行进方向1116可以使用任何其它合适的格式来表示。
返回到图10步骤1002,跟踪系统100从第一传感器108接收第一帧302A。参考图11作为示例,第一传感器108为空间102的至少一部分捕获全局平面104的图像或帧302A。在这个示例中,第一帧1102包括第一对象(例如,第一人1106)和第二对象(例如,第二人1108)。在这个示例中,第一帧302A在第一人1106和第二人1108在空间102内移动时捕获他们。
返回到图10步骤1004,跟踪系统100确定第一人1106在第一帧302A中的第一像素地点402A。这里,跟踪系统100确定第一人1106在来自第一传感器108的第一帧302A内的当前地点。继续图11中的示例,跟踪系统100识别第一帧302A中的第一人1106并确定与第一人1106对应的第一像素地点402A。在给定帧302中,第一人1106由帧302内的像素的集合表示。参考图11中的示例,第一人1106由显示第一人1106的俯视图的像素的集合表示。跟踪系统100将像素地点402与表示第一人1106的像素的集合相关联,以识别第一人1106在帧302内的当前地点。在一个实施例中,第一人1106的像素地点402可以对应于第一人1106的头部。在这个示例中,第一人1106的像素地点402可以位于表示第一人1106的像素的集合的大约中心处。作为另一个示例,跟踪系统100可以确定包围第一帧302A中表示第一人1106的像素的集合的边界框708。在这个示例中,第一人1106的像素地点402可以位于边界框708的大约中心处。
作为另一个示例,跟踪系统100可以使用对象检测或轮廓检测来识别第一帧302A内的第一人1106。在这个示例中,当第一人1106进入空间102时,跟踪系统100可以识别他们的一个或多个特征。跟踪系统100稍后可以将第一帧302A中的人的特征与和第一人1106相关联的特征进行比较以确定该人是否是第一人1106。在其它示例中,跟踪系统100可以使用任何其它合适的技术来识别第一帧302A内的第一人1106。第一像素地点402A包括与第一人1106在第一帧302A内的当前地点对应的第一像素行和第一像素列。
返回到图10步骤1006,跟踪系统100确定对象在第一传感器108和第二传感器108之间的重叠区间1110内。返回到图11中的示例,跟踪系统100可以将第一人1106的第一像素地点402A与在第一相邻列表1114A中识别出的与重叠区间1110对应的像素进行比较以确定第一人1106是否在重叠区间1110内。当第一对象1106的第一像素地点402A匹配或在第一相邻列表1114A中识别出的与重叠区间1110对应的像素范围内时,跟踪系统100可以确定第一对象1106在重叠区间1110内。例如,跟踪系统100可以将像素地点402A的像素列与和重叠区间1110相关联的像素列范围进行比较,并且将像素地点402A的像素行与和重叠区间1110相关联的像素行范围进行比较以确定像素地点402A是否在重叠区间1110内。在这个示例中,第一人1106的像素地点402A在重叠区间1110内。
在步骤1008处,跟踪系统100将第一单应性118应用于第一像素地点402A以确定第一人1106在全局平面104中的第一(x,y)坐标306。第一单应性118被配置为在第一帧302A中的像素地点402和全局平面104中的(x,y)坐标306之间转换。第一单应性118被配置为类似于图2-5B中描述的单应性118。作为示例,跟踪系统100可以识别与第一传感器108相关联的第一单应性118,并且可以使用第一单应性118和第一像素地点402A之间的矩阵乘法来确定全局平面104中的第一(x,y)坐标306。
在步骤1010处,跟踪系统100从与第一传感器108相关联的第一跟踪列表1112A识别第一人1106的对象标识符1118。例如,跟踪系统100可以识别与第一人1106相关联的对象标识符1118。在步骤1012处,跟踪系统100将第一人1106的对象标识符1118存储在与第二传感器108相关联的第二跟踪列表1112B中。继续前面的示例,跟踪系统100可以将第一人1106的对象标识符1118存储在第二跟踪列表1112B中。将第一人1106的对象标识符1118添加到第二跟踪列表1112B指示第一人1106在第二传感器108的视场内并且允许跟踪系统100使用第二传感器108开始跟踪第一人1106。
一旦跟踪系统100确定第一人1106已经进入第二传感器108的视场,跟踪系统100然后就使用与第二传感器108相关联的单应性118确定第一人1106位于第二传感器108的第二帧302B中哪里。该处理识别第一人1106相对于第二传感器108的地点,使得他们可以使用第二传感器108来跟踪。在步骤1014处,跟踪系统100将与第二传感器108相关联的单应性118应用于第一(x,y)坐标306以确定第一人1106在第二帧302B中的第二像素地点402B。单应性118被配置为在第二帧302B中的像素地点402和全局平面104中的(x,y)坐标306之间转换。单应性118的配置类似于图2-5B中描述的单应性118。作为示例,跟踪系统100可以识别与第二传感器108相关联的单应性118并且可以使用单应性118的逆和第一(x,y)坐标306之间的矩阵乘法来确定第二帧302B中的第二像素地点402B。
在步骤1016处,跟踪系统100将具有第一人1106的对象标识符1118的第二像素地点402B存储在第二跟踪列表1112B中。在一些实施例中,跟踪系统100可以将与第一人1106相关联的附加信息存储在第二跟踪列表1112B中。例如,跟踪系统100可以被配置为将行进方向1116或与第一人1106相关联的任何其它合适类型的信息存储在第二跟踪列表1112B中。在将第二像素地点402B存储在第二跟踪列表1112B中之后,跟踪系统100可以开始跟踪人在第二传感器108的视场内的移动。
跟踪系统100将继续跟踪第一人1106的移动以确定他们何时完全离开第一传感器108的视场。在步骤1018处,跟踪系统100从第一传感器108接收新帧302。例如,跟踪系统100可以周期性地从第一传感器108接收附加帧302。例如,跟踪系统100可以每毫秒、每秒、每五秒或以任何其它合适的时间间隔从第一传感器108接收新帧302。
在步骤1020处,跟踪系统100确定第一人1106是否存在于新帧302中。如果第一人1106存在于新帧302中,那么这意味着第一人1106仍在第一传感器108的视场内,并且跟踪系统100应继续使用第一传感器108跟踪第一人1106的移动。如果第一人1106不存在于新帧302中,那么这意味着第一人1106已经离开第一传感器108的视场并且跟踪系统100不再需要使用第一传感器108跟踪第一人1106的移动。跟踪系统100可以使用与步骤1004中描述的处理类似的处理来确定第一人1106是否存在于新帧302中。响应于确定第一人1106存在于来自第一传感器108的新帧1102中,跟踪系统100返回到步骤1018以从第一传感器108接收附加帧302。
跟踪系统100响应于确定第一人1106不存在于新帧302中而进行到步骤1022。在这种情况下,第一人1106已经离开第一传感器108的视场并且不再需要使用第一传感器108进行跟踪。在步骤1022处,跟踪系统100从第一跟踪列表1112A丢弃与第一人1106相关联的信息。一旦跟踪系统100确定第一人已经离开第一传感器108的视场,那么跟踪系统100可以停止使用第一传感器108跟踪第一人1106并且可以释放被分配用于跟踪第一人1106的资源(例如,存储器资源)。跟踪系统100将使用第二传感器108继续跟踪第一人1106的移动,直到第一人1106离开第二传感器108的视场。例如,第一人1106可以离开空间102或者可以过渡到另一个传感器108的视场。
搁板交互检测
图12是跟踪系统100的搁板交互检测方法1200的实施例的流程图。跟踪系统100可以采用方法1200来确定人正在哪里与支架112的搁板交互。除了跟踪人位于空间102内哪里之外,跟踪系统100还跟踪人从支架112拾取了哪些物品1306。当购物者从支架112拾取物品1306时,跟踪系统100识别并跟踪购物者已经拾取了哪些物品1306,使得可以将它们自动添加到与购物者相关联的数字购物车1410。该处理允许将物品1306添加到人的数字购物车1410,而无需购物者扫描或以其它方式识别他们拾取的物品1306。数字购物车1410包括关于购物者已经拾取用于购买的物品1306的信息。在一个实施例中,数字购物车1410包括与数字购物车1410中的每个物品相关联的物品标识符和数量。例如,当购物者拾取罐装饮料时,该饮料的物品标识符被添加到他们的数字购物车1410。数字购物车1410还将指示购物者已拾取的饮料的数量。一旦购物者离开空间102,购物者将被自动为其数字购物车1410中的物品1306收费。
在图13中,从站在支架112前面的人的角度示出了支架112的侧视图。在这个示例中,支架112可以包括多个搁板1302,用于保持和展示物品1306。每个搁板1302可以被分区成一个或多个区1304,用于保持不同的物品1306。在图13中,支架112包括处于第一高度的第一搁板1302A和处于第二高度的第二搁板1302B。每个搁板1302被分区成第一区1304A和第二区1304B。支架112可以被配置为在每个搁板1302上的每个区1304内承载不同的物品1306(即,物品1306A、1306B、1306C和1036D)。在这个示例中,支架112可以被配置为承载多达四种不同类型的物品1306。在其它示例中,支架112可以包括用于保持物品1306的任何其它合适数量的搁板1302和/或区1304。跟踪系统100可以采用方法1200来基于人正在哪里与支架112交互来识别人从支架112拾取哪个物品1306。
返回到图12步骤1202,跟踪系统100从传感器108接收帧302。参考图14作为示例,传感器108在空间102的全局平面104内捕获支架112的至少一部分的帧302。在图14中,从传感器108的角度示出了支架112和站在支架112前面的两个人的俯视图。帧302包括多个像素,这些像素中的每个像素与传感器108的像素地点402相关联。每个像素地点402包括像素行、像素列和像素值。像素行和像素列指示像素在传感器108的帧302内的地点。像素值对应于全局平面104中的z坐标(例如,高度)。z坐标对应于传感器108与全局平面104中的表面之间的距离。
帧302还包括与支架112的区1304相关联的一个或多个区1404。帧302中的每个区1404对应于全局平面104中的支架112的一部分。参考图14中的示例,帧302包括与支架112相关联的第一区1404A和第二区1404B。在这个示例中,第一区1404A和第二区1404B分别对应于支架112的第一区1304A和第二区1304B。
帧302还包括预定义区1406,其用作虚拟幕布来检测人1408正在哪里与支架112交互。预定义区1406是由跟踪系统100定义的不可见屏障,人1408伸手穿过该屏障从支架112拾取物品1306。预定义区1406位于支架112的一个或多个区1304附近。例如,预定义区1406可以位于靠近支架112的一个或多个区1304的前面,在那里人1408将伸手去抓支架112上的物品1306。在一些实施例中,预定义区1406可以至少部分地与第一区1404A和第二区1404B重叠。
返回到图12步骤1204,跟踪系统100识别帧1402的预定义区1406内的对象。例如,跟踪系统100可以检测到人1408的手进入预定义区1406。在一个实施例中,跟踪系统100可以将帧1402与传感器108捕获的前一帧进行比较,以检测人1408的手已经进入预定义区1406。在这个示例中,跟踪系统100可以使用帧302之间的差异来检测人1408的手进入预定义区1406。在其它实施例中,跟踪系统100可以采用任何其它合适的技术来检测人1408的手何时进入预定义区1406。
在一个实施例中,跟踪系统100识别靠近人1408的支架112。返回到图14中的示例,跟踪系统100可以确定人1408在帧302中的像素地点402A。跟踪系统100可以使用与图10的步骤1004中描述的处理类似的处理来确定人1408的像素地点402A。跟踪系统100可以使用与传感器108相关联的单应性118来确定人1408在全局平面104中的(x,y)坐标306。单应性118被配置为在帧302中的像素地点402和全局平面104中的(x,y)坐标306之间转换。单应性118的配置类似于图2-5B中描述的单应性118。作为示例,跟踪系统100可以识别与传感器108相关联的单应性118,并且可以使用单应性118和人1408的像素地点402A之间的矩阵乘法来确定全局平面104中的(x,y)坐标306。跟踪系统100然后可以基于人1408在全局平面104中的(x,y)坐标306来识别哪个支架112最接近人1408。
跟踪系统100可以识别与离人1408最近的支架112对应的物品映射1308。在一个实施例中,跟踪系统100包括将物品1306与支架112上的特定地点相关联的物品映射1308。例如,物品映射1308可以包括支架标识符和多个物品标识符。每个物品标识符都映射到支架112上的特定地点。返回到图13中的示例,第一物品1306A被映射到识别支架112的第一区1304A和第一搁板1302A的第一地点,第二物品1306B被映射到识别支架112的第二区1304B和第一搁板1302A的第二地点,第三物品1306C被映射到识别支架112的第一区1304A和第二搁板1302B的第三地点,并且第四物品1306D被映射到识别支架112的第二区1304B和第二搁板1302B的第四地点。
返回到图12步骤1206,跟踪系统100确定进入预定义区1406的对象在帧302中的像素地点402B。继续前面的示例,像素地点402B包括人1408的手的第一像素行、第一像素列和第一像素值。在这个示例中,人1408的手由预定义区1406中的像素的集合表示。在一个实施例中,人1408的手的像素地点402可以位于表示人1408的手的像素的集合的大约中心处。在其它示例中,跟踪系统100可以使用任何其它合适的技术来识别帧302内的人1408的手。
一旦跟踪系统100确定人1408的手的像素地点402B,跟踪系统100然后就确定人1408正在伸手接近支架112的哪个搁板1302和区1304。在步骤1208处,跟踪系统100确定对象(即,人1408的手)的像素地点402B是否对应于支架112的第一区1304A。跟踪系统100使用人1408的手的像素地点402B来确定人1408正伸手进入到支架112的哪一侧中。这里,跟踪系统100检查人是否正在伸手去拿支架112左侧的物品。
支架112的每个区1304与帧302中的多个像素相关联,这些像素可以用于基于人1408的手的像素地点402B来确定人1408正在向哪里伸手拿。继续图14中的示例,支架112的第一区1304A对应于与帧302中的第一像素范围1412相关联的第一区1404A。类似地,支架112的第二区1304B对应于与帧302中的第二像素范围1414相关联的第二区1404B。跟踪系统100可以将人1408的手的像素地点402B与第一像素范围1412进行比较以确定像素地点402B是否对应于支架112的第一区1304A。在这个示例中,第一像素范围1412对应于帧302中的像素列范围。在其它示例中,第一像素范围1412可以对应于帧302中的像素行范围或像素行和列的组合。
在这个示例中,跟踪系统100将像素地点402B的第一像素列与第一像素范围1412进行比较以确定像素地点1410是否对应于支架112的第一区1304A。换句话说,跟踪系统100将像素地点402B的第一像素列与第一像素范围1412进行比较以确定人1408是否正在伸手去拿支架112左侧的物品1306。在图14中,人1408的手的像素地点402B不对应于支架112的第一区1304A。跟踪系统100响应于确定对象的像素地点402B对应于支架112的第一区1304A而进行到步骤1210。在步骤1210处,跟踪系统100基于进入预定义区1406的对象的像素地点402B识别支架112的第一区1304A。在这种情况下,跟踪系统100确定人1408正在伸手去拿支架112左侧的物品。
返回到步骤1208,跟踪系统100响应于确定进入预定义区1406的对象的像素地点402B不对应于支架112的第一区1304B而进行到步骤1212。在步骤1212处,跟踪系统100基于进入预定义区1406的对象的像素地点402B识别支架112的第二区1304B。在这种情况下,跟踪系统100确定人1408正在伸手去拿支架112右侧的物品。
在其它实施例中,跟踪系统100可以将像素地点402B与和支架112的其它区1304相关联的其它像素范围进行比较。例如,跟踪系统100可以将像素地点402B的第一像素列与第二像素范围1414进行比较以确定像素地点402B是否对应于支架112的第二区1304B。换句话说,跟踪系统100将像素地点402B的第一像素列与第二像素范围1414进行比较以确定人1408是否正在伸手去拿支架112右侧的物品1306。
一旦跟踪系统100确定人1408正在伸手进入到支架112的哪个区1304中,跟踪系统100然后就确定人1408正在伸手进入支架112的哪个搁板1302中。在步骤1214处,跟踪系统100识别进入预定义区1406的对象在像素地点402B处的像素值。像素值是与全局平面104中的z坐标或高度对应的数值,其可以用于识别人1408正在与哪个搁板1302交互。像素值可以用于确定人1408的手在进入预定义区1406时所处的高度,其可以用于确定人1408伸手进入哪个搁板1302。
在步骤1216处,跟踪系统100确定像素值是否对应于支架112的第一搁板1302A。返回到图13中的示例,支架112的第一搁板1302A对应于z值或高度的第一范围1310A,并且第二搁板1302B对应于z值或高度的第二范围1310B。跟踪系统100可以将像素值与z值的第一范围1310A进行比较以确定像素值是否与支架112的第一搁板1302A对应。作为示例,z值的第一范围1310A可以是相对于全局平面104中的z轴在2米和1米之间的范围。z值的第二范围1310B可以是相对于全局平面104中的z轴在0.9米和0米之间的范围。像素值可以具有对应于相对于全局平面104中的z轴的1.5米的值。在这个示例中,像素值在z值的第一范围1310A内,这指示像素值对应于支架112的第一搁板1302A。换句话说,人1408的手在指示人1408伸手到支架112的第一搁板1302A的高度处被检测到。跟踪系统100响应于确定像素值对应于支架112的第一搁板而进行到步骤1218。在步骤1218处,跟踪系统100基于像素值识别支架112的第一搁板1302A。
返回到步骤1216,跟踪系统100响应于确定像素值不与支架112的第一搁板1302A对应而进行到步骤1220。在步骤1220处,跟踪系统100基于像素值识别支架112的第二搁板1302B。在其它实施例中,跟踪系统100可以将像素值与和支架112的其它搁板1302相关联的其它z值范围进行比较。例如,跟踪系统100可以将像素值与z值的第二范围1310B进行比较以确定像素值是否对应于支架112的第二搁板1302B。
一旦跟踪系统100确定人1408正在伸手进入支架112的哪一侧和支架112的哪个搁板1302,跟踪系统100就可以识别与支架112上的识别出的地点对应的物品1306。在步骤1222处,跟踪系统100基于支架112的识别出的区1304和识别出的搁板1302识别物品1306。跟踪系统100使用识别出的区1304和识别出的搁板1302来识别物品映射1308中的对应物品1306。返回到图14中的示例,跟踪系统100可以确定人1408正在伸手进入支架112的右侧(即,区1404B)和支架112的第一搁板1302A。在这个示例中,跟踪系统100确定人1408正在伸手并从支架112拾取物品1306B。
在一些情况下,多个人可能在支架112附近,并且跟踪系统100可能需要确定哪个人正在与支架112交互,使得它可以将拾取的物品1306添加到适当的人的数字购物车1410。返回到图14中的示例,当第一人1408正在从支架112拾取物品1306时,第二人1420也在支架112附近。在这种情况下,跟踪系统100应该将任何拾取的物品分配给第一人1408而不是第二人1420。
在一个实施例中,跟踪系统100基于他们与拾取的物品1306的接近度来确定哪个人拾取了物品1306。例如,跟踪系统100可以确定第一人1408在帧302中的像素地点402A。跟踪系统100还可以识别第二人1420在帧302中的第二像素地点402C。跟踪系统100然后可以确定第一人1408的像素地点402A和支架112上物品1306被拾取的地点之间的第一距离1416。跟踪系统100还确定第二人1420的像素地点402C和支架112上物品1306被拾取的地点之间的第二距离1418。然后,当第一距离1416小于第二距离1418时,跟踪系统100可以确定第一人1408比第二人1420更靠近物品1306。在这个示例中,跟踪系统100基于他们与支架112上拾取物品1306的地点的接近度将第一人1408识别为最有可能拾取物品1306的人。该处理允许跟踪系统100在将物品1306添加到他们的数字购物车1410之前识别从支架112拾取物品1306的正确的人。
返回到图12步骤1224,跟踪系统100将识别出的物品1306添加到与人1408相关联的数字购物车1410。在一个实施例中,跟踪系统100使用重量传感器110来确定从支架112中移走的物品1306的数量。例如,跟踪系统100可以在人1408从重量传感器110上移走一个或多个物品1306之后确定重量传感器110上的重量减少量。跟踪系统100然后可以基于重量减少量来确定物品数量。例如,跟踪系统100可以确定与重量传感器110相关联的物品1306的个体物品重量。例如,重量传感器110可以与具有十六盎司的个体重量的物品1306相关联。当重量传感器110检测到重量减少了六十四盎司时,重量传感器110可以确定物品1306中的四个被从重量传感器110上移走。在其它实施例中,数字购物车1410还可以包括与人1408和/或他们已经拾取的物品1306相关联的任何其它合适类型的信息。
使用局部区的物品分配
图15是跟踪系统100的物品分配方法1500的实施例的流程图。跟踪系统100可以使用方法1500来检测物品1306何时已从支架112被拾取并且使用与支架112相关联的预定义区1808来确定将物品分配给哪个人。在诸如商店之类的繁忙环境中,当物品从支架112移走时,可能有多个人站在支架112附近。识别拾取物品1306的正确的人可能具有挑战性。在这种情况下,跟踪系统100使用预定义区1808,当识别从支架112拾取物品1306的人时,该预定义区1808可以用于减少搜索空间。预定义区1808与支架112相关联并且用于识别人可以从支架112拾取物品1306的区域。预定义区1808允许跟踪系统100快速忽略不在人可以从支架112拾取物品1306的区域内(例如在支架112后面)的人。一旦物品1306和人已被识别,跟踪系统100就将把物品添加到与识别出的人相关联的数字购物车1410。
在步骤1502处,跟踪系统100检测重量传感器110上的重量减少。参考图18作为示例,重量传感器110部署在支架112上并且被配置为测量放置在重量传感器110上的物品1306的重量。在这个示例中,重量传感器110与特定物品1306相关联。当人1802从重量传感器110移走一个或多个物品1306时,跟踪系统100检测到重量传感器110上的重量减少。
返回到图15的步骤1504,跟踪系统100识别与重量传感器110相关联的物品1306。在一个实施例中,跟踪系统100包括将物品1306与特定地点(例如,区1304和/或搁板1302)和支架112上的重量传感器110相关联的物品映射1308A。例如,物品映射1308A可以包括搁板标识符、重量传感器标识符和多个物品标识符。每个物品标识符映射到支架112上的特定重量传感器110(即,重量传感器标识符)。跟踪系统100确定哪个重量传感器110检测到重量减少,然后使用物品映射1308A识别与重量传感器110对应的物品1306或物品标识符。
在步骤1506处,跟踪系统100从传感器108接收支架112的帧302。传感器108捕获支架112的至少一部分在空间102的全局平面104内的帧302。帧302包括多个像素,该多个像素中的每个像素与像素地点402相关联。每个像素地点402包括像素行和像素列。像素行和像素列指示像素在帧302内的地点。
帧302包括与支架112相关联的预定义区1808。预定义区1808用于识别靠近支架112前面并且处于从支架112取出物品1306的合适位置的人。例如,支架112包括前部1810、第一侧部1812、第二侧部1814和后部1814。在这个示例中,当物品1306在支架112的前面或侧面时,人可以能够从支架112取出物品1306。当物品1306在支架112后面时,人不能从支架112取出物品1306。在这种情况下,预定义区1808可以与帧1806中的支架112的前部1810、第一侧部1812和第二侧部1814的至少一部分重叠。这种配置防止在支架112后面的人被认为是从支架112拾取物品1306的人。在图18中,预定义区1808是矩形的。在其它示例中,预定义区1808可以是半圆形或任何其它合适的形状。
在跟踪系统100确定物品1306已经从支架112拾取之后,跟踪系统100然后开始识别帧302内可能已经从支架112拾取物品1306的人。在步骤1508处,跟踪系统100识别帧302内的人1802。跟踪系统100可以使用与10的步骤1004中描述的处理类似的处理来识别帧302内的人1802。在其它示例中,跟踪系统100可以采用任何其它合适的技术来识别帧302内的人1802。
在步骤1510处,跟踪系统100确定识别出的人1802在帧302中的像素地点402A。跟踪系统100可以使用与图10的步骤1004中描述的处理类似的处理来确定识别出的人1802的像素地点402A。像素地点402A包括在传感器108的帧302中识别人1802的地点的像素行和像素列。
在步骤1511处,跟踪系统100将单应性118应用到识别出的人1802的像素地点402A以确定识别出的人1802在全局平面104中的(x,y)坐标306。单应性118被配置为在帧302中的像素地点402和全局平面104中的(x,y)坐标306之间转换。单应性118的配置类似于图2-5B中描述的单应性118。作为示例,跟踪系统100可以识别与传感器108相关联的单应性118,并且可以使用单应性118和识别出的人1802的像素地点402A之间的矩阵乘法来确定全局平面104中的(x,y)坐标306。
在步骤1512处,跟踪系统100确定识别出的人1802是否在与帧302中的支架112相关联的预定义区1808内。继续图18中的示例,预定义区1808与全局平面104中的(x,y)坐标306的范围相关联。跟踪系统100可以将识别出的人1802的(x,y)坐标306与和预定义区1808相关联的(x,y)坐标306的范围进行比较以确定识别出的人1802的(x,y)坐标306是否在预定义区1808内。换句话说,跟踪系统100使用识别出的人1802的(x,y)坐标306来确定识别出的人1802是否在适合从支架112拾取物品1306的区域内。在这个示例中,人1802的(x,y)坐标306对应于支架112前面的地点并且在预定义区1808内,这意味着识别出的人1802处于适合从支架112取出物品1306的区域中。
在另一个实施例中,预定义区1808与帧302中的多个像素(例如,像素行和像素列的范围)相关联。跟踪系统100可以将像素地点402A与和预定义区1808相关联的像素进行比较以确定像素地点402A是否在预定义区1808内。换句话说,跟踪系统100使用识别出的人1802的像素地点402A来确定识别出的人1802是否在适合从支架112拾取物品1306的区域内。在这个示例中,跟踪系统100可以将像素地点402A的像素列与和预定义区1808相关联的像素列范围进行比较,并且将像素地点402A的像素行与和预定义区1808相关联的像素行范围进行比较,以确定识别出的人1802是否在预定义区1808内。在这个示例中,人1802的像素地点402A站在支架112的前面并且在预定义区1808内,这意味着识别出的人1802处于适合从支架112取出物品1306的区域中。
跟踪系统100响应于确定识别出的人1802在预定义区1808内而进行到步骤1514。否则,跟踪系统100返回到步骤1508以识别帧302内的另一个人。在这种情况下,跟踪系统100确定识别出的人1802不在适合从支架112取出物品1306的区域,例如识别出的人1802站在支架112的后面。
在一些情况下,多个人可能在支架112附近,并且跟踪系统100可能需要确定哪个人正在与支架112交互,以便它可以将拾取的物品1306添加到适当的人的数字购物车1410。返回到图18中的示例,当第一人1802从支架112拾取物品1306时,第二人1826在帧302中正站在支架112的侧面旁边。在这个示例中,第二人1826比第一人1802更靠近支架112,但是,跟踪系统100可以忽略第二人1826,因为第二人1826的像素地点402B在与支架112相关联的预定义区1808之外。例如,跟踪系统100可以识别第二人1826在全局平面104中的(x,y)坐标306,并基于他们的(x,y)坐标306确定第二人1826在预定义区1808之外。作为另一个示例,跟踪系统100可以识别第二人1826在帧302内的像素地点402B并且基于他们的像素地点402B确定第二人1826在预定义区1808之外。
作为另一个示例,帧302还包括站在支架112附近的第三人1832。在这种情况下,跟踪系统100基于他们与拾取的物品1306的接近度来确定哪个人拾取了物品1306。例如,跟踪系统100可以确定第三人1832在全局平面104中的(x,y)坐标306。跟踪系统100然后可以确定第一人1802的(x,y)坐标306与物品1306被拾取的支架112上的地点之间的第一距离1828。跟踪系统100还确定第三人1832的(x,y)坐标306与物品1306被拾取的支架112上的地点之间的第二距离1830。然后,当第一距离1828小于第二距离1830时,跟踪系统100可以确定第一人1802比第三人1832更靠近物品1306。在这个示例中,跟踪系统100基于他们与支架112上拾取物品1306的地点的接近度将第一人1802识别为最有可能拾取物品1306的人。该处理允许跟踪系统100在将物品1306添加到他们的数字购物车1410之前识别从支架112拾取物品1306的正确的人。
作为另一个示例,跟踪系统100可以确定第三人1832在帧302中的像素地点402C。跟踪系统100然后可以确定第一人1802的像素地点402A与物品1306被拾取的支架112上的地点之间的第一距离1828。跟踪系统100还确定第三人1832的像素地点402C与物品1306被拾取的支架112上的地点之间的第二距离1830。
返回到图15的步骤1514,跟踪系统100将物品1306添加到与识别出的人1802相关联的数字购物车1410。跟踪系统100可以使用与图12的步骤1224中描述的处理类似的处理将物品1306添加到数字购物车1410。
物品识别
图16是跟踪系统100的物品识别方法1600的实施例的流程图。跟踪系统100可以使用方法1600来识别具有不均匀重量的物品1306并将物品1306分配给人的数字购物车1410。对于具有均匀重量的物品1306,跟踪系统100能够基于重量传感器110上的重量差来确定从重量传感器110移走的物品1306的数量。但是,诸如新鲜食品之类的物品1306不具有均匀的重量,这意味着跟踪系统100不能基于重量测量来确定从搁板1302移走了多少物品1306。在这种配置中,跟踪系统100使用传感器108来识别已被拾取的物品1306上的标记1820(例如,文本或符号)并识别物品1306被拾取的支架112附近的人。例如,标记1820可以位于物品1806的包装上或用于携带物品1806的带子上。一旦物品1306和人已被识别,跟踪系统100就可以将物品1306添加到与识别出的人相关联的数字购物车1410。
在步骤1602处,跟踪系统100检测重量传感器110上的重量减少。返回到图18中的示例,重量传感器110部署在支架112上并且被配置为测量放置在重量传感器110上的物品1306的重量。在这个示例中,重量传感器110与特定物品1306相关联。当人1802从重量传感器110上移走一个或多个物品1306时,跟踪系统100检测到重量传感器110上的重量减少。
在跟踪系统100检测到物品1306从支架112上移走之后,跟踪系统100将使用传感器108来识别移走的物品1306和拾取物品1306的人。返回到图16的步骤1604,跟踪系统100从传感器108接收帧302。传感器108捕获支架112的至少一部分在空间102的全局平面104内的帧302。在图18中所示的示例中,传感器108被配置为使得来自传感器108的帧302捕获支架112的俯视图。帧302包括多个像素,这些像素中的每个像素与像素地点402相关联。每个像素地点402包括像素行和像素列。像素行和像素列指示像素在帧302内的地点。
帧302包括预定义区1808,其被配置为类似于图15的步骤1504中描述的预定义区1808。在一个实施例中,帧1806还可以包括第二预定义区,其被配置为类似于图12-14中描述的预定义区1406的虚拟幕布。例如,跟踪系统100可以在检测到重量传感器110上的重量减少之前使用第二预定义区来检测人1802的手伸向物品1306。在这个示例中,第二预定义区用于向跟踪系统100提醒即将从支架112拾取物品1306,这可以用于触发传感器108捕获包括正在从支架112移走的物品1306的帧302。
在步骤1606处,跟踪系统100在帧302中的预定义区1808内识别物品1306上的标记1820。标记1820是具有可以由传感器108检测到的唯一特征的对象。例如,标记1820可以包括唯一可识别的形状、颜色、符号、图案、文本、条形码、QR码或任何其它合适类型的特征。跟踪系统100可以在帧302中搜索与标记1820对应的已知特征。参考图18中的示例,跟踪系统100可以识别帧302中的物品1806的包装上与标记1820对应的形状(例如,五角星)。作为另一个示例,当标记1820包括文本时,跟踪系统100可以使用字符或文本辨识来识别与标记1820对应的字母数字文本。在其它示例中,跟踪系统100可以使用任何其它合适的技术来识别帧302内的标记1820。
返回到图16的步骤1608,跟踪系统100识别与标记1820相关联的物品1306。在一个实施例中,跟踪系统100包括将物品1306与特定标记1820相关联的物品映射1308B。例如,物品映射1308B可以包括多个物品标识符,每个物品标识符都映射到特定标记1820(即,标记标识符)。跟踪系统100使用物品映射1308B识别与标记1820对应的物品1306或物品标识符。
在一些实施例中,跟踪系统100还可以使用来自重量传感器110的信息来识别物品1306。例如,跟踪系统100可以包括将物品1306与特定地点(例如,区1304和/或搁板1302)和支架112上的重量传感器110相关联的物品映射1308A。例如,物品映射1308A可以包括搁板标识符、重量传感器标识符和多个物品标识符。每个物品标识符映射到支架112上的特定重量传感器110(即,重量传感器标识符)。跟踪系统100确定哪个重量传感器110检测到重量减少,然后使用物品映射1308A识别与重量传感器110对应的物品1306或物品标识符。
在跟踪系统100识别从支架112拾取的物品1306之后,跟踪系统100然后确定哪个人从支架112拾取了物品1306。在步骤1610处,跟踪系统100识别帧302内的人1802。跟踪系统100可以使用与图10的步骤1004中描述的处理类似的处理来识别帧302内的人1802。在其它示例中,跟踪系统100可以采用任何其它合适的技术来识别帧302内的人1802。
在步骤1612处,跟踪系统100确定识别出的人1802的像素地点402A。跟踪系统100可以使用与图10的步骤1004中描述的处理类似的处理来确定识别出的人1802的像素地点402A。像素地点402A包括识别人1802在传感器108的帧302中的地点的像素行和像素列。
在步骤1613处,跟踪系统100将单应性118应用到识别出的人1802的像素地点402A以确定识别出的人1802在全局平面104中的(x,y)坐标306。跟踪系统100可以使用与图15的步骤1511中描述的处理类似的处理来确定识别出的人1802在全局平面104中的(x,y)坐标306。
在步骤1614处,跟踪系统100确定识别出的人1802是否在预定义区1808内。这里,跟踪系统100确定识别出的人1802是否处于适合从支架112取出物品1306的区域。跟踪系统100可以使用与图15的步骤1512中描述的处理类似的处理来确定识别出的人1802是否在预定义区1808内。跟踪系统100响应于确定识别出的人1802在预定义区1808内而进行到步骤1616。在这种情况下,跟踪系统100确定识别出的人1802处于适合从支架112取出物品1306的区域,例如识别出的人1802正站在支架112的前面。否则,跟踪系统100返回到步骤1610以识别帧302内的另一个人。在这种情况下,跟踪系统100确定识别出的人1802不在适合从支架112取出物品1306的区域,例如识别出的人1802正站在支架112的后面。
在一些情况下,多个人可能在支架112附近,并且跟踪系统100可能需要确定哪个人正在与支架112交互,以便它可以将拾取的物品1306添加到适当的人的数字购物车1410。跟踪系统100可以使用与图15的步骤1512中描述的处理类似的处理来识别哪个人从支架112拾取物品1306。
在步骤1614处,跟踪系统100将物品1306添加到与人1802相关联的数字购物车1410。跟踪系统100可以使用与图12的步骤1224中描述的处理类似的处理将物品1306添加到数字购物车1410。
错放物品识别
图17是跟踪系统100的错放物品识别方法1700的实施例的流程图。跟踪系统100可以采用方法1700来识别已经错放在支架112上的物品1306。当人正在购物时,购物者可能决定放下他们之前拾取的一个或多个物品1306。在这种情况下,跟踪系统100应该识别哪些物品1306被放回支架112上以及哪个购物者将物品1306放回,以便跟踪系统100可以从他们的数字购物车1410中移走物品1306。识别放回支架112上的物品1306具有挑战性,因为购物者可能不将物品1306放回其正确地点。例如,购物者可能将物品1306放回支架112上的错误地点或错误的支架112上。在这些情况中的任一种情况下,跟踪系统100必须正确地识别人和物品1306,使得当购物者离开空间102时,不会对物品1306收费。在这种配置中,跟踪系统100使用重量传感器110首先确定物品1306没有放回其正确地点。跟踪系统100然后使用传感器108来识别将物品1306放在支架112上的人并分析他们的数字推车1410以基于他们的数字推车1410中物品1306的重量确定他们最有可能放回哪个物品1306。
在步骤1702处,跟踪系统100检测重量传感器110上的重量增加。返回到图18中的示例,第一人1802将一个或多个物品1306放回到支架112上的重量传感器110上。重量传感器110被配置为测量放置在重量传感器110上的物品1306的重量。当人1802将一个或多个物品1306添加到重量传感器110时,跟踪系统100检测到重量传感器110上的重量增加。
在步骤1704处,跟踪系统100响应于检测到重量传感器110上的重量增加而确定重量传感器110上的重量增加量。重量增加量对应于由重量传感器110检测到的重量变化的量值。这里,跟踪系统100确定在一个或多个物品1306被放置在重量传感器110上之后重量传感器110经历了多少重量增加。
在一个实施例中,跟踪系统100基于重量增加量确定放置在重量传感器110上的物品1306是错放的物品1306。例如,重量传感器110可以与具有已知个体物品重量的物品1306相关联。这意味着重量传感器110仅预计会经历已知物品重量的倍数的重量变化。在这种配置中,当重量增加量与和重量传感器110相关联的物品1306的个体物品重量或个体物品重量的倍数不匹配时,跟踪系统100可以确定返回的物品1306是错放的物品1306。作为示例,重量传感器110可以与具有十盎司的个体重量的物品1306相关联。如果重量传感器110检测到二十五盎司的重量增加,那么跟踪系统100可以确定放置重量传感器114的物品1306不是与重量传感器110相关联的物品1306,因为重量增加量不匹配与重量传感器110相关联的物品1306的个体物品重量或个体物品重量的倍数。
在跟踪系统100检测到物品1306已经被放回支架112上之后,跟踪系统100将使用传感器108来识别将物品1306放回支架112上的人。在步骤1706处,跟踪系统100从传感器108接收帧302。传感器108捕获支架112的至少一部分在空间102的全局平面104内的帧302。在图18中所示的示例中,传感器108被配置为使得来自传感器108的帧302捕获支架112的俯视图。帧302包括多个像素,该多个像素中的每个像素与像素地点402相关联。每个像素地点402包括像素行和像素列。像素行和像素列指示像素在帧302内的地点。在一些实施例中,帧302还包括预定义区1808,其被配置为类似于图15的步骤1504中描述的预定义区1808。
在步骤1708处,跟踪系统100识别帧302内的人1802。跟踪系统100可以使用与图10的步骤1004中描述的处理类似的处理来识别帧302内的人1802。在其它示例中,跟踪系统100可以采用任何其它合适的技术来识别帧302内的人1802。
在步骤1710处,跟踪系统100确定识别出的人1802在帧302中的像素地点402A。跟踪系统100可以使用与图10的步骤1004中描述的处理类似的处理来确定识别出的人1802的像素地点402A。像素地点402A包括识别人1802在传感器108的帧302中的地点的像素行和像素列。
在步骤1712处,跟踪系统100确定识别出的人1802是否在帧302的预定义区1808内。这里,跟踪系统100确定识别出的人1802是否处于适合将物品1306放回支架112上的区域。跟踪系统100可以使用与图15的步骤1512中描述的处理类似的处理来确定识别出的人1802是否在预定义区1808内。跟踪系统100响应于确定识别出的人1802在预定义区1808内而进行到步骤1714。在这种情况下,跟踪系统100确定识别出的人1802处于适合将物品1306放回支架112上的区域,例如识别出的人1802正站在支架112的前面。否则,跟踪系统100返回到步骤1708以识别帧302内的另一个人。在这种情况下,跟踪系统100确定识别出的人不在适合从支架112取出物品1306的区域中,例如该人正站在支架112的后面。
在一些情况下,多个人可能在支架112附近,并且跟踪系统100可能需要确定哪个人正在与支架112交互,以便它可以从适当的人的数字购物车1410中移走返回的物品1306。跟踪系统100可以使用与图15的步骤1512中描述的处理类似的处理来确定哪个人将物品1306放回支架112上。
在跟踪系统100识别出哪个人将物品1306放回支架112上之后,跟踪系统100然后确定识别出的人的数字购物车1410中的哪个物品1306的重量与放回支架112上的物品1306最匹配。在步骤1714处,跟踪系统100识别数字购物车1410中与人1802相关联的多个物品1306。这里,跟踪系统100识别与识别出的人1802相关联的数字购物车1410。例如,数字购物车1410可以与识别出的人1802的对象标识符1118链接。在一个实施例中,数字购物车1410包括物品标识符,每个物品标识符都与个体物品重量相关联。在步骤1716处,跟踪系统100识别数字购物车1410中的每个物品1306的物品重量。在一个实施例中,跟踪系统100可以包括存储在存储器中的一组物品重量,并且可以使用与数字购物车1410中的物品1306相关联的物品标识符来查找每个物品1306的物品重量。
在步骤1718处,跟踪系统100从数字购物车1410中识别具有与重量增加量最匹配的物品重量的物品1306。例如,跟踪系统100可以将由重量传感器110测量的重量增加量与和数字购物车1410中的每个物品1306相关联的物品重量进行比较。跟踪系统100然后可以识别哪个物品1306对应于与重量增加量最匹配的物品重量。
在一些情况下,跟踪系统100不能识别识别出的人的数字购物车1410中的重量与重量传感器110上测量的重量增加量匹配的物品1306。在这种情况下,跟踪系统100可以为数字购物车1410中的每个物品1306确定物品1306被放下的概率。该概率可以基于个体物品重量和重量增加量。例如,与具有更远离重量增加量的个体重量的物品1306相比,具有更接近于重量增加量的个体重量的物品1306将与更高的概率相关联。
在一些情况下,概率是人与支架112之间的距离的函数。在这种情况下,与人的数字购物车1410中的物品1306相关联的概率取决于该人与物品1306被放回的支架112的接近程度。例如,与数字购物车1410中的物品1306相关联的概率可以与人与支架112之间的距离成反比。换句话说,与人的数字购物车1410中的物品相关联的概率随着人远离支架112移动而衰减。跟踪系统100可以识别具有最高概率是被放下的物品1306的物品1306。
在一些情况下,当与支架112相关联的预定义区1808中有多个人时,跟踪系统100可以考虑多个人的数字购物车1410中的物品1306。例如,跟踪系统100可以确定第二人在与支架112相关联的预定义区1808内。在这个示例中,跟踪系统100从每个人的数字购物车1410中识别可能与放回支架112上的物品1306对应的物品1306,并选择物品重量与放回到支架112上的物品1306最匹配的物品1306。例如,跟踪系统100识别与第二人相关联的第二数字购物车1410中的物品1306的物品重量。跟踪系统100识别第二数字购物车1410中具有最匹配重量增加量的物品重量的物品1306。跟踪系统100确定第一人1802的数字购物车1410中的第一识别出的物品1306与重量增加量之间的第一重量差以及第二人的第二数字购物车1410中的第二识别出的物品1306之间的第二重量差。在这个示例中,跟踪系统100可以确定第一重量差小于第二重量差,这指示在第一人的数字购物车1410中识别出的物品1306最接近地匹配重量增加量,然后从其数字购物车1410移走第一识别出的物品1306。
在跟踪系统100识别最有可能放回支架112上的物品1306和放回物品1306的人之后,跟踪系统100从他们的数字购物车1410中移走物品1306。在步骤1720处,跟踪系统100从识别出的人的数字购物车1410中移走识别出的物品1306。这里,跟踪系统100从数字购物车1410中丢弃与识别出的物品1306相关联的信息。该处理确保购物者不会为他们放回支架112上的物品1306付费,无论他们是否将物品1306放回其正确位置。
自动排除区
为了跟踪空间102中人的移动,跟踪系统100通常应该能够区分人(即,目标对象)和其它对象(即,非目标对象),诸如支架112、显示器和空间102中的任何其它非人类对象。否则,跟踪系统100可能会浪费存储器和处理资源来检测和试图跟踪这些非目标对象。如本公开中其它处所述(例如,在图24-26和下面的对应描述中),在一些情况下,人可以被跟踪,这可以通过检测一组图像帧(例如,视频)中的一个或多个轮廓并监视帧之间轮廓的移动来执行。轮廓通常是与图像中人的表示的边缘相关联的曲线。虽然跟踪系统100可以检测轮廓以便跟踪人,但在一些情况下,可能难以区分与人(例如,或其它目标对象)对应的轮廓和与非目标对象(诸如支架112、标牌、产品展示等)相关联的轮廓。
即使传感器108在安装时被校准以考虑非目标对象的存在,但在许多情况下,可靠和高效地重新校准传感器108来考虑不应在空间102中被跟踪的非目标对象的位置变化可能具有挑战性。例如,如果空间102中的支架112、标牌、产品展示或其它家具或对象被添加、移走或移动(例如,所有可能频繁发生并且可能在没有警告和/或无意的情况下发生的活动),那么传感器108中的一个或多个可能需要重新校准或调整。没有这种重新校准或调整,就难以或不可能可靠地跟踪空间102中的人。在本公开之前,缺乏用于以提供可靠跟踪的方式高效地重新校准和/或调整诸如传感器108之类的传感器的工具。
本公开不仅包括辨识上述先前未辨识出的问题(例如,关于跟踪空间102中的可能随时间而变动的人),而且还为这些问题提供独特的解决方案。如本公开中所述,在跟踪人之前的初始时间段期间,来自每个传感器108的像素区间可以被确定应该在后续跟踪期间被排除。例如,在初始时间段期间,空间102可能不包括任何人,使得由每个传感器108检测到的轮廓仅对应于空间中不期望跟踪的非目标对象。因此,像素区间或“自动排除区”对应于由传感器108生成的每个图像的不用于对象检测和跟踪的部分(例如,不应被跟踪的轮廓的像素坐标)。例如,自动排除区可以对应于在与非目标对象相关联的图像中检测到的轮廓、在传感器视场边缘处虚假(spuriously)检测到的轮廓等)。可以在任何期望或适当的时间间隔自动确定自动排除区,以提高跟踪系统100的可用性和性能。
在确定自动排除区之后,跟踪系统100可以继续跟踪空间102中的人。自动排除区用于限制由每个传感器108用于跟踪人的像素区间。例如,跟踪系统100在跟踪期间可以忽略与自动排除区对应的像素。在一些情况下,检测到的人(例如,或其它目标对象)可能与一个或多个自动排除区接近或部分重叠。在这些情况下,跟踪系统100可以基于潜在目标对象的位置与自动排除区重叠的程度来确定是否将跟踪目标对象。这可以减少或消除在空间102中的人跟踪期间对非目标对象的假阳性检测,同时还通过减少浪费的处理资源来提高跟踪系统100的效率,否则这些资源将被消耗在尝试跟踪非目标对象上。在一些实施例中,可以生成空间102的地图,其呈现在跟踪期间被排除的物理区间(即,呈现自动排除区在空间的物理坐标中的表示的地图)。这样的地图,例如,可以通过允许管理员在视觉上确认可以在空间102的适当部分中跟踪人来促进跟踪系统的故障排除。
图19图示了自动排除区1910、1914的确定以及这些自动排除区1910、1914的后续使用以改进对空间102中的人(例如,或其它目标对象)的跟踪。一般而言,在初始时间段(t<t0)期间,顶视图像帧由(一个或多个)客户端105和/或服务器106从传感器108接收并用于确定自动排除区1910、1914。例如,t<t0的初始时间段可以对应于空间102中没有人的时间。例如,如果空间102在一天的一部分时间期间对公众开放,那么初始时间段可以在空间102对公众开放之前。在一些实施例中,服务器106和/或客户端105可以提供例如警报或传输指示空间102的人(例如,或要被跟踪的其它目标对象)应该被清空的信号以便识别自动排除区1910、1914。在一些实施例中,用户可以输入命令(例如,经由耦合到服务器106和/或(一个或多个)客户端105的任何适当接口)以立即或在未来的一个或多个期望时间(例如,基于时间表)发起自动排除区1910、1914的确定。
图19中示出了用于确定自动排除区1910、1914的示例顶视图像帧1902。图像帧1902包括第一对象1904(例如,支架112)的表示和第二对象1906的表示。例如,第一对象1904可以是支架112,并且第二对象1906可以是产品展示或空间102中的任何其它非目标对象。在一些实施例中,第二对象1906可能不对应于空间中的实际对象,而是可能由于空间102中的照明和/或传感器错误而被异常地检测到。每个传感器108通常在初始时间段期间生成至少一个帧1902,并且这些帧1902用于确定传感器108的对应自动排除区1910、1914。例如,传感器客户端105可以接收顶视图像1902,并且检测与视图1908中所示的自动排除区1910、1914对应的轮廓(即,区1910、1914周围的虚线)。自动排除区1910、1914的轮廓通常对应于沿着图像1902中的对象1904、1906的边界(例如,边缘)延伸的曲线。视图1908通常对应于图像1902的呈现,其中呈现与自动排除区1910、1914对应的检测到的轮廓,但未分别示出对应的对象1904、1906。对于包括颜色和深度数据的图像帧1902,可以基于图像1902中的颜色数据在给定深度(例如,远离传感器108的距离)处确定自动排除区1910、1914的轮廓。例如,颜色值的陡峭梯度可以对应于对象的边缘并且用于确定或检测轮廓。例如,自动排除区1910、1914的轮廓可以使用任何合适的轮廓或边缘检测方法来确定,诸如Canny边缘检测、基于阈值的检测等。
客户端105确定分别与自动排除区1910和1914的地点对应的像素坐标1912和1916。像素坐标1912、1916通常与图像帧1902中应该在跟踪期间被排除的地点(例如,行号和列号)对应。一般而言,与像素坐标1912、1916相关联的对象不被跟踪系统100跟踪。此外,在某些条件下可能不跟踪在自动排除区1910、1914之外检测到的某些对象。例如,如果对象的位置(例如,与区间1920相关联的位置,在下面关于视图1914讨论)与自动排除区1910、1914至少重叠阈值量,那么可以不跟踪对象。这防止跟踪系统100(即,或与传感器108或传感器108的子集相关联的局部客户端105)尝试不必要地跟踪非目标对象。在一些情况下,自动排除区1910、1914与传感器108的视场中的非目标(例如,无生命)对象(例如,与轮廓1910相关联的支架112)对应。但是,自动排除区1910、1914也可以或替代地对应于由传感器108检测到的其它异常特征或轮廓(例如,由传感器错误、不一致的照明等引起)。
在确定要在跟踪期间排除的像素坐标1912、1916之后,可以在对应于t>t0的后续时间段期间跟踪对象。图19中示出了在跟踪期间生成的示例图像帧1918。在帧1918中,区间1920被检测为可能对应于可能是或可能不是目标对象的对象。例如,区间1920可以对应于基于在帧1902中检测到的轮廓生成的像素掩码或边界框。例如,可以生成像素掩码来填充轮廓内的区域,或者可以生成边界框来包围轮廓。例如,像素掩码可以包括对应轮廓内的像素坐标。例如,自动排除区1910的像素坐标1912可以有效地对应于覆盖或“填充”自动排除区1910的掩码。在检测到区间1920之后,客户端105确定区间1920是否对应于应该被跟踪的目标对象或者是否与自动排除区1914充分重叠以将区间1920视为与非目标对象相关联。例如,客户端105可以确定像素坐标1916的至少阈值百分比是否与区间1920的像素坐标重叠(例如,相同)。这些像素坐标的重叠区间1922在帧1918中示出。例如,阈值百分比可以是大约50%或更多。在一些实施例中,阈值百分比可以小至大约10%。响应于确定至少阈值百分比的像素坐标重叠,客户端105通常不确定用于跟踪与区间1920相关联的对象的像素位置。但是,如果重叠1922对应于小于阈值百分比,那么跟踪与区间1920相关联的对象,如下面(例如,关于图24-26)进一步描述的。
如上所述,传感器108可以被布置为使得相邻传感器108具有重叠的视场。例如,相邻传感器108的视场可以重叠大约10%到30%之间。由此,相同的对象可以被两个不同的传感器108检测到,并且基于为每个传感器108确定的独特自动排除区在从每个传感器108接收到的图像帧中或者被包括进行跟踪或者被排除跟踪。即使在一个传感器108可能具有大的自动排除区(即,传感器108生成的图像帧中的大比例像素坐标被排除跟踪)时,这也可以促进比先前可能的跟踪更可靠的跟踪。因此,如果一个传感器108发生故障,那么相邻的传感器108仍可以在空间102中提供足够的跟踪。
如果区间1920对应于目标对象(即,要在空间102中跟踪的人),那么跟踪系统100继续跟踪区间1920。下面关于图24-26更详细地描述示例跟踪方法。在一些实施例中,服务器106使用像素坐标1912、1916来确定对应的物理坐标(例如,图20中所示的坐标2012、2016,如下所述)。例如,客户端105可以确定与传感器108的局部自动排除区1910、1914对应的像素坐标1912、1916并且将这些坐标1912、1916传输到服务器106。如图20中所示,服务器106可以使用从传感器108接收到的像素坐标1912、1916来确定对应的物理坐标2010、2016。例如,为每个传感器108生成的将由给定传感器108生成的图像中的像素坐标(例如,坐标1912、1916)与空间102中的对应物理坐标(例如,坐标2012、2016)相关联的单应性(参见图2-7和上面的对应描述)可以用于将(图19的)排除的像素坐标1912、1916转换成空间102中的排除的物理坐标2012、2016。这些排除的坐标2010、2016可以与来自其它传感器108的其它坐标一起使用,以生成图20中所示的空间102的全局自动排除区地图2000。例如,该地图2000可以通过促进空间102的可以(和不可以)跟踪对象的物理区间2002的量化、识别和/或验证来促进跟踪系统100的故障排除。这可以允许管理员或其它个人在视觉上确认可以在空间102的适当部分中跟踪对象。如果区域2002对应于空间102的已知高交通区,那么系统维护可能是适当的(例如,这可能涉及更换、调整和/或添加附加的传感器108)。
图21是图示用于生成和使用自动排除区(例如,图19的区1910、1914)的示例方法2100的流程图。方法2100可以开始于步骤2102,其中在初始时间段期间接收一个或多个图像帧1902。如上所述,初始时间段可以对应于当没有人在整个空间102中移动时,或者当没有人在从其接收到(一个或多个)图像帧1902的一个或多个传感器108的视场内时的时间间隔。在典型实施例中,通常从跟踪系统100的每个传感器108接收一个或多个图像帧1902,使得可以确定对于每个传感器108要排除的局部区间(例如,自动排除区1910、1914)。在一些实施例中,从每个传感器108接收单个图像帧1902以检测自动排除区1910、1914。但是,在其它实施例中,从每个传感器108接收多个图像帧1902。使用多个图像帧1902来识别每个传感器108的自动排除区1910、1914可以改善与在跟踪期间应该被忽略或排除的像素坐标(例如,图19的坐标1912、1916)对应的任何虚假轮廓或其它像差的检测。
在步骤2104处,在步骤2102处接收到的一个或多个图像帧1902中检测轮廓(例如,与图19的自动排除区1910、1914对应的虚线轮廓线)。可以使用任何适当的轮廓检测算法,包括但不限于基于Canny边缘检测、基于阈值的检测等的算法。在一些实施例中,可以使用本公开中描述的独特轮廓检测方法(例如,以区分视场中间隔近的轮廓,如下例如关于图22和23所述)。在步骤2106处,为(从步骤2104)检测到的轮廓确定像素坐标(例如,图19的坐标1912、1916)。例如,可以基于覆盖检测到的轮廓的像素掩码来确定坐标。例如,像素掩码可以对应于轮廓内的像素。在一些实施例中,像素坐标对应于为轮廓确定的边界框内的像素坐标(例如,如图22中所示,如下所述)。例如,边界框可以是具有包围检测到的轮廓的区域的矩形框。在步骤2108处,存储像素坐标。例如,客户端105可以将与自动排除区1910、1914对应的像素坐标存储在存储器(例如,图38的存储器3804,如下所述)中。如上所述,像素坐标还可以或替代地被传输到服务器106(例如,以生成空间的地图2000,如图20的示例中所示)。
在步骤2110处,客户端105在执行跟踪的后续时间期间(即,在步骤2108处存储与自动排除区对应的像素坐标之后)接收图像帧1918。该帧从传感器108接收并且包括空间102中的对象的表示。在步骤2112处,在步骤2110处接收到的帧中检测轮廓。例如,轮廓可以对应于沿着在帧1902中表示的对象的边缘的曲线。在轮廓检测期间可以排除(或不使用)在步骤2106处确定的像素坐标。例如,可以忽略和/或移除在步骤2106处确定的像素坐标处的图像数据(例如,给定零值或颜色等同物),使得不会在这些坐标处检测到轮廓。在一些情况下,可能在这些坐标之外检测到轮廓。在一些情况下,可以检测到部分位于这些坐标之外但部分与坐标重叠的轮廓(例如,如图19的图像1918中所示)。
在步骤2114处,客户端105通常确定检测到的轮廓是否具有与在步骤2106处确定的自动排除区1910、1914的像素坐标充分重叠的像素位置。如果坐标充分重叠,那么不在帧中跟踪轮廓或区间1920(即,和相关联的对象)。例如,如上所述,客户端105可以确定检测到的轮廓或区间1920是否与和像素坐标相关联的区间重叠至少阈值百分比(例如,50%)(例如,参见图19的重叠区域1922)。如果满足步骤2114的标准,那么客户端105通常在步骤2116处不确定在步骤2112处检测到的轮廓的像素位置。由此,没有像素位置被报告给服务器106,从而减少或消除了与当对象不是期望跟踪的目标对象时尝试跟踪该对象相关联的处理资源的浪费。
否则,如果满足步骤2114的标准,那么客户端105在步骤2118处确定轮廓或区间1920的像素位置。从轮廓确定像素位置可以涉及例如(i)确定与轮廓相关联的区间1920(例如,像素掩码或边界框)和(ii)将该区间的质心或其它特性位置确定为像素位置。在步骤2120处,所确定的像素位置被传输到服务器106以促进例如使用预定的单应性进行全局跟踪,如本公开其它处所述(例如,关于图24-26)。例如,服务器106可以接收确定的像素位置、访问将由在步骤2110处从其接收到帧的传感器108生成的图像中的像素坐标与空间102中的物理坐标相关联的单应性,并且将单应性应用于像素坐标以为与在步骤2112处检测到的轮廓相关联的被跟踪对象生成对应的物理坐标。
可以对图21中描绘的方法2100进行修改、添加或省略。方法2100可以包括更多、更少或其它步骤。例如,可以并行或以任何合适的顺序执行步骤。虽然有时讨论为跟踪系统100、(一个或多个)客户端105、服务器106或其执行步骤的任何组件,但是任何合适的系统或系统的组件都可以执行该方法的一个或多个步骤。
间隔近的人的基于轮廓的检测
在一些情况下,两个人彼此靠近,使得使用常规工具难以或不可能可靠地检测和/或跟踪每个人(例如,或其它目标对象)。在一些情况下,可能最初使用大致腰部深度(即,与被跟踪的普通人的腰部高度对应的深度)的深度图像来检测和跟踪人。在大致腰部深度进行跟踪可能在捕获所有人而不管他们的高度或移动方式的情况下更有效。例如,通过在大致腰部深度检测和跟踪人,跟踪系统100很可能检测到高和矮的个人以及可能正在使用替代移动方法(例如,轮椅等)的个人。但是,如果两个高度相近的人正彼此靠近站在一起,那么可能难以在大致腰部深度的顶视图像中区分这两个人。跟踪系统100可以最初将人检测为单个较大对象,而不是检测到两个单独的人。
本公开包括以下认识:在减小的深度(即,更接近人的头部的深度),人可能更容易被区分。这是因为人的头部更有可能在减少的深度处被成像,并且他们的头部更小并且不太可能被检测为单个合并区间(或轮廓,如下面更详细描述的)。作为另一个示例,如果两个人彼此靠近(例如,手牵手)地站立着进入空间102,那么他们可能看起来是单个更大的对象。由于跟踪系统100可能最初将两个人检测为一个人,因此如果这些人在空间102中分开,那么可能难以正确识别这些人。作为又一个示例,如果短暂地彼此站在一起的两个人暂时“丢失”或仅被检测为单个较大的对象,那么在他们彼此分开之后可能难以正确地识别这些人。
如本公开中其它处所述(例如,关于图19-21和24-26),可以通过检测由传感器108生成的顶视图像帧中的轮廓并跟踪这些轮廓的位置来跟踪人(例如,上述示例场景中的人)。但是,当两个人间隔近时,可以在人的顶视图像中检测到单个合并轮廓(参见下文描述的图22的合并轮廓2220)。这个单个轮廓通常不能用于单独跟踪每个人,导致跟踪期间相当大的下游错误。例如,即使两个人在间隔近之后分开,也可能难以或不可能使用先前的工具来确定哪个人是哪个人,并且在两个人分开之后每个人的身份可能是未知的。在本公开之前,缺乏用于在上述示例场景和其它类似情况下检测人(例如,以及其它目标对象)的可靠工具。
本公开中描述的系统和方法通过促进对间隔近的人的改进检测来提供对先前技术的改进。例如,本公开中描述的系统和方法可以在与个体人相关联的轮廓否则将被合并时促进对这些人的检测,从而使得使用常规检测策略检测单个人。在一些实施例中,改进的轮廓检测是通过检测不同深度(例如,至少两个深度)的轮廓以识别在用于跟踪的第一深度处检测到的较大合并轮廓内的第二深度处的单独轮廓来实现的。例如,如果两个人正在彼此靠近站立,使得轮廓被合并形成单个轮廓,那么与两个间隔近的人的头部相关联的单独轮廓可以在与人的头部相关联的深度处被检测到。在一些实施例中,可以使用独特的统计方法通过为检测到的具有低相似性值的轮廓选择边界区间来区分两个人。在一些实施例中,满足某些标准以确保检测到的轮廓对应于单独的人,从而提供比以前可能的更可靠的人(例如,或其它目标对象)检测。例如,在大致头部深度处检测到的两个轮廓可能需要在阈值大小范围内,以便将轮廓用于后续跟踪。在一些实施例中,可以使用人工神经网络来通过分析不同深度处的顶视图像来检测间隔近的单独的人。
图22是图示使用跟踪系统100基于从传感器108a、b接收到的顶视图深度图像2212和角度视图图像2214检测两个间隔近的人2202、2204的图。在一个实施例中,传感器108a、b各自可以是以上关于图1描述的跟踪系统100的传感器108之一。在另一个实施例中,传感器108a、b各自可以是如标题为“Customer-Based Video Feed”的美国专利申请号____(代理人案卷号090278.0187)中所描述的单独的虚拟商店系统(例如,布局相机和/或支架相机)的传感器108中的一个,该申请通过引用并入本文。在这个实施例中,跟踪系统100的传感器108可以使用单应性映射到虚拟商店系统的传感器108。此外,该实施例可以使用跟踪系统100和虚拟商店系统之间的单应性从虚拟商店系统的传感器108检索每个人的标识符和相对位置。一般而言,传感器108a是被配置为生成空间102的至少一部分的顶视图深度图像2212(例如,颜色和/或深度图像)的顶置传感器。例如,传感器108a可以安装在空间102的天花板中。传感器108a可以生成对应于多个深度的图像数据,这些深度包括但不一定限于图22中所示的深度2210a-c。深度2210a-c通常是从传感器108a测量的距离。每个深度2210a-c可以与(例如,从检测和/或跟踪人2202、2204的空间102的地板开始的)对应高度相关联。传感器108a观察视场2208a。由传感器108a生成的顶视图像2212可以被传输到传感器客户端105a。传感器客户端105a与传感器108a和服务器106通信地耦合(例如,经由有线连接或无线连接)。上面关于图1描述了服务器106。
在这个示例中,传感器108b是角度视图传感器,其被配置为生成空间102的至少一部分的角度视图图像2214(例如,颜色和/或深度图像)。传感器108b具有视场2208b,其与传感器108a的视场2208a的至少一部分重叠。由角度视图传感器108b生成的角度视图图像2214被传输到传感器客户端105b。传感器客户端105b可以是上面关于图1描述的客户端105。在图22的示例中,传感器108a、b耦合到不同的传感器客户端105a、b。但是,应该理解的是,相同的传感器客户端105可以用于两个传感器108a、b(例如,使得客户端105a、b是相同的客户端105)。在一些情况下,对传感器108a、b使用不同的传感器客户端105a、b可以提供改进的性能,因为即使客户端105a、b中的一个失败,仍然可以针对视场2208a、b共享的区域获得图像数据。
在图22中所示的示例场景中,人2202、2204位于足够靠近,使得常规的对象检测工具无法检测到单独的人2202、2204(例如,使得人2202、2204不会被检测为单独的对象)。例如,这种情况可以对应于人2202、2204之间的距离2206a小于(例如,大约6英寸的)阈值距离2206b。阈值距离2206b通常可以是为系统100确定的任何适当距离。例如,阈值距离2206b可以基于系统2200和被检测的人2202、2204的几个特性来确定。例如,阈值距离2206b可以基于传感器108a与人2202、2204的距离、人2202、2204的大小、视场2208a的大小、传感器108a的灵敏度等中的一个或多个。因此,阈值距离2206b的范围可以从刚好超过零英寸到超过六英寸,具体取决于跟踪系统100的这些和其它特性。人2202、2204可以是个人可能期望基于来自传感器108a、b的数据(即,顶视图像2212和/或角度视图图像2214)进行检测和/或跟踪的任何目标对象。
传感器客户端105a检测从传感器108a接收到的顶视图像2212中的轮廓。通常,传感器客户端105a在初始深度2210a处检测轮廓。初始深度2210a可以与例如已经被建立以检测和/或跟踪通过空间102的人2202、2204的(例如,距地面的)预定高度相关联。例如,为了跟踪人,初始深度2210a可以与预计在空间102中移动的人的平均肩高或腰高(例如,可能捕获穿过空间102的高个子人和矮个子人两者的表示的深度)相关联。传感器客户端105a可以使用由传感器108a生成的顶视图像2212来识别对应于与第一人2202相关联的第一轮廓2202a与和第二人2204相关联的第二轮廓2204a合并时的顶视图像2212。视图2216图示了在这些轮廓2202a、2204a合并之前(即,在第一人和第二人2202、2204在彼此的阈值距离2206b内时的时间(tclose)之前)的时间的轮廓2202a、2204a。视图2216对应于在从传感器108a接收到的顶视图像2212中检测到的轮廓的视图(例如,图像中的其它对象未示出)。
随后的视图2218对应于在人2202、2204间隔近并且第一和第二轮廓2202a、2204a合并以形成合并轮廓2220时在或接近tclose的图像2212。传感器客户端105a可以确定与合并轮廓2220在图像坐标中的“大小”(例如,与轮廓2220相关联的像素的数量)对应的区间2222。例如,区间2222可以对应于为轮廓2220确定的像素掩码或边界框。上面关于图21的步骤2104描述了确定像素掩码和边界框的示例方法。例如,区间2222可以是使用非最大抑制对象检测算法为轮廓2220确定的边界框。例如,传感器客户端105a可以确定与轮廓2220相关联的多个边界框。对于每个边界框,客户端105a可以计算分数。例如,分数可以表示该边界框与其它边界框相似的程度。传感器客户端105a可以识别具有大于阈值(例如,80%或更多)的分数的边界框的子集,并且基于该识别出的子集确定区间2222。例如,区间2222可以是具有最高分数的边界框或者包括由分数高于阈值的边界框共享的区间的边界。
为了检测个体人2202和2204,传感器客户端105a可以在减小的深度(即,在深度2212b和2212c之一或两者)访问图像2212并且使用该数据来检测单独的轮廓2202b、2204b,如视图2224中所示。换句话说,传感器客户端105a可以在图像2212中更靠近人2202、2204的头部的深度分析图像2212,以便检测单独的人2202、2204。在一些实施例中,减小的深度可以对应于空间102中预计被跟踪系统100检测到的人的平均或预定头部高度。在一些情况下,轮廓2202b、2204b可以对于两个人2202、2204在减小的深度处被检测到。
但是,在其它情况下,传感器客户端105a可能不会在减小的深度处检测到两个头部。例如,如果儿童和成人间隔近,那么在减小的深度(例如,在深度2210b)处可能仅检测到成人的头部。在这种情况下,传感器客户端105a可以进行到稍微增加的深度(例如,到深度2210c)以检测儿童的头部。例如,在这样的场景中,传感器客户端105a从减小的深度向初始深度2210a迭代地增加深度,以便检测两个不同的轮廓2202b、2204b(例如,对于上述示例中的成人和儿童两者)。例如,如果在深度2210b处没有检测到轮廓2202b和2204b两者,那么深度可以首先减小到深度2210b,然后增加到深度2210c。这个迭代处理在下面关于图23的方法2300更详细地描述。
如本公开中其它处所述,在一些情况下,跟踪系统100可以维护与每个被跟踪的人相关联的特征或描述符的记录(例如,参见下面描述的图30)。由此,传感器客户端105a可以访问该记录以确定与人2202、2204相关联的独特深度,这些人可能与合并轮廓2220相关联。例如,深度2210b可以与人2202的已知头部高度相关联,并且深度2212c可以与人2204的已知头部高度相关联。
一旦检测到轮廓2202b和2204b,传感器客户端就确定与轮廓2202b的像素坐标2202d相关联的区间2202c和与轮廓2204b的像素坐标2204d相关联的区间2204c。例如,如上面关于区间2222所描述的,区间2202c和2204c可以分别对应于基于对应轮廓2202b、2204b生成的像素掩码或边界框。例如,可以生成像素掩码以“填充”轮廓2202b、2204b内的区域,或者可以生成包围轮廓2202b、2204b的边界框。像素坐标2202d、2204d通常对应于区间2202c、2204c内的像素的位置集合(例如,行和列)。
在一些实施例中,采用独特的方法来更可靠地区分间距近的人2202和2204并确定相关联的区间2202c和2204c。在这些实施例中,区间2202c和2204c使用在本公开中称为“非最小抑制”的独特方法来确定。非最小抑制可以涉及例如确定与轮廓2202b、2204b相关联的边界框(例如,使用相关领域的技术人员理解的任何适当的对象检测算法)。对于每个边界框,可以计算分数。如上面关于非最大抑制所描述的,分数可以表示边界框与其它边界框相似的程度。但是,不是识别具有高分数的边界框(例如,与非最大抑制一样),而是识别具有小于阈值的分数的边界框的子集(例如,大约20%)。该子集可以用于确定区间2202c、2204c。例如,区间2202c、2204c可以包括被识别出的子集的每个边界框共享的区间。换句话说,不低于最低分数的边界框被“抑制”并且不用于识别区间2202b、2204b。
在将位置或身份分配给轮廓2202b、2204b和/或相关联的区间2202c、2204c之前,传感器客户端105a可以首先检查是否满足用于区分区间2202c与区间2204c的标准。标准通常被设计为确保轮廓2202b、2204b(和/或相关联的区间2202c、2204c)的大小、形状和位置被适当调整,以与对应的人2202、2204的头部相关联。这些标准可以包括一个或多个要求。例如,一个要求可以是区间2202c、2204c重叠小于或等于阈值量(例如,大约50%,例如,大约10%)。一般而言,不同人2202、2204的单独头部不应在顶视图像2212中重叠。另一个要求可以是区间2202c、2204c在合并轮廓区间2222内(例如,由合并轮廓区间2222界定,例如,由合并轮廓区间2222包围)。例如,该要求确保头部轮廓2202b、2204b适当地定位在合并轮廓2220上方以对应于人2202、2204的头部。如果在减小的深度处检测到的轮廓2202b、2204b不在合并轮廓2220内,那么这些轮廓2202b、2204b可能不与和合并轮廓2220相关联的人2202、2204的头部相关联。
一般而言,如果满足标准,那么传感器客户端105a将区间2202c与人2202的第一像素位置2202e相关联并且将区间2204c与人2204的第二像素位置2204e相关联。第一和第二像素位置2202e、2204e中的每一个通常对应于与图像2212中的对应轮廓2202b、2204b的地点相关联的单个像素位置(例如,行和列)。第一和第二像素位置2202e、2204e被包括在像素位置2226中,像素位置2226可以被传输到服务器106以例如基于单应性2230(例如,使用先前为传感器108a确定的将传感器108a生成的图像2212中的像素坐标与空间102中的物理坐标相关联的单应性)确定对应的物理(例如,全局)位置2228。
如上所述,传感器108b被定位和配置为生成传感器108a的视场2208a的至少一部分的角度视图图像2214。传感器客户端105b从第二传感器108b接收角度视图图像2214。由于空间102中的人2202、2204的不同(例如,角度)视图,在tclose获得的角度视图图像2214可能足以区分人2202、2204。图22中示出了在tclose处检测到的轮廓2202d、2204d的视图2232。传感器客户端105b检测与第一人2202对应的轮廓2202f并确定与轮廓2202f的像素坐标2202h相关联的对应区间2202g。传感器客户端105b检测与第二人2204对应的轮廓2204f并确定与轮廓2204f的像素坐标2204h相关联的对应区间2204g。由于轮廓2202f、2204f不合并并且区间2202g、2204g被充分分开(例如,它们不重叠和/或相隔至少最小像素距离),因此传感器客户端105b可以将区间2202g与第一人2202的第一像素位置2202i相关联并且将区间2204g与第二人2204的第二像素位置2204i相关联。第一和第二像素位置2202i、2204i中的每一个通常对应于与图像2214中对应轮廓2202f、2204f的地点相关联的单个像素位置(例如,行和列)。像素位置2202i、2204i可以被包括在像素位置2234中,该像素位置2234可以被传输到服务器106以(例如,使用为传感器108b先前确定的将传感器108b生成的图像2214的像素坐标与空间102中的物理坐标相关联的单应性)确定人2202、2204的物理位置2228。
在跟踪系统100的示例操作中,传感器108a被配置为生成空间102的至少一部分的顶视图颜色深度图像。当人2202和2204在彼此的阈值距离内时,传感器客户端105a识别与时间戳(例如,tclose)对应的图像帧(例如,与视图2218相关联),其中与第一人和第二人2202、2204相关联的轮廓2202a、2204a分别被合并并形成轮廓2220。为了检测(例如,与视图2218相关联的)识别出的图像帧中的每个人2202和2204,客户端105a可以首先尝试在第一减小的深度2210b处检测每个人2202、2204的单独轮廓。如上所述,深度2210b可以是与移动通过空间102的人的预计头部高度相关联的预定高度。在一些实施例中,深度2210b可以是先前基于人2202的测量高度和/或人2204的测量高度确定的深度。例如,深度2210b可以基于两个人2202、2204的平均高度。作为另一个示例,深度2210b可以是与人2202的预定头部高度对应的深度(如图22的示例中所示)。如果在深度2210b处检测到两个轮廓2202b、2204b,那么这些轮廓可以用于确定人2202和2204的像素位置2202e、2204e,如上所述。
如果在深度2210b处仅检测到一个轮廓2202b(例如,如果只有一个人2202、2204高到足以在深度2210b处被检测到),那么与该轮廓2202b相关联的区间可以用于确定对应人的像素位置2202e,并且可以在增加的深度2210c处检测到下一个人。深度2210c通常大于2210b但小于深度2210a。在图22的说明性示例中,深度2210c对应于人2204的预定头部高度。如果在深度2210c处检测到人2204的轮廓2204b,那么基于与轮廓2204b相关联的像素坐标2204d确定像素位置2204e(例如,在确定满足上述标准之后)。如果在深度2210c处未检测到轮廓2204b,那么客户端105a可以尝试在逐渐增加的深度处检测轮廓,直到检测到轮廓或达到最大深度(例如,初始深度2210a)。例如,传感器客户端105a可以继续在增加的深度(即,深度2210c和初始深度2210a之间的深度)搜索轮廓2204b。如果在没有检测到轮廓2204b的情况下达到最大深度(例如,深度2210a),那么客户端105a通常确定不能检测到单独的人2202、2204。
图23是图示操作跟踪系统100以检测间隔近的人2202、2204的方法2300的流程图。方法2300可以开始于步骤2302,其中传感器客户端105a接收由传感器108a生成的顶视图深度图像2212的一帧或多帧。在步骤2304处,传感器客户端105a识别其中与第一人2202相关联的第一轮廓2202a与和第二人2204相关联的第二轮廓2204a合并的帧。一般而言,合并的第一和第二轮廓(即,合并的轮廓2220)在步骤2302接收到的深度图像2212中在第一深度2212a处确定。第一深度2212a可以对应于预计在空间102中被跟踪的人的腰部或腰部深度。如上所述,合并轮廓2220的检测对应于第一人2202位于距第二人2204阈值距离2206b内的空间中。
在步骤2306处,传感器客户端105a确定合并轮廓区间2222。区间2222与合并轮廓2220的像素坐标相关联。例如,区间2222可以对应于覆盖检测到的轮廓的像素掩码的坐标。作为另一个示例,区间2222可以对应于为轮廓确定的边界框的像素坐标(例如,使用任何适当的对象检测算法)。在一些实施例中,使用涉及非最大抑制的方法来检测区间2222。在一些实施例中,区间2222是使用人工神经网络确定的。例如,可以训练人工神经网络以检测由传感器108a生成的顶视图像中不同深度处的轮廓。
在步骤2308处,在从步骤2304识别出的图像帧中检测到轮廓的深度被减小(例如,到图22中所示的深度2210b)。在步骤2310a,传感器客户端105a确定是否在当前深度检测到第一轮廓(例如,轮廓2202b)。如果未检测到轮廓2202b,那么传感器客户端105a在步骤2312a处进行到增加的深度(例如,到深度2210c)。如果增加的深度对应于已经达到最大深度(例如,达到初始深度2210a),那么该处理结束,因为没有检测到第一轮廓2202b。如果尚未达到最大深度,那么传感器客户端105a返回到步骤2310a并确定是否在新增加的当前深度处检测到第一轮廓2202b。如果在步骤2310a处检测到第一轮廓2202b,那么传感器客户端105a在步骤2316a处确定与检测到的轮廓2202b的像素坐标2202d相关联的第一区间2202c。在一些实施例中,可以使用如上所述的非最小抑制方法来确定区间2202c。在一些实施例中,可以使用人工神经网络来确定区间2202c。
在步骤2210b、2212b、2214b和2216b中图示的相同或类似方法可以用于确定与轮廓2204b的像素坐标2204d相关联的第二区间2204c。例如,在步骤2310b处,传感器客户端105a确定是否在当前深度检测到第二轮廓2204b。如果未检测到轮廓2204b,那么传感器客户端105a在步骤2312b处进行到增加的深度(例如,到深度2210c)。如果增加的深度对应于已经达到最大深度(例如,达到初始深度2210a),那么该处理结束,因为没有检测到第二轮廓2204b。如果尚未达到最大深度,那么传感器客户端105a返回到步骤2310b并确定是否在新增加的当前深度处检测到第二轮廓2204b。如果在步骤2210a处检测到第二轮廓2204b,那么传感器客户端105a在步骤2316a处确定与检测到的轮廓2204b的像素坐标2204d相关联的第二区间2204c。在一些实施例中,区间2204c可以使用非最小抑制方法或人工神经网络来确定,如上所述。
在步骤2318处,传感器客户端105a确定是否满足用于区分分别在步骤2316a和2316b中确定的第一和第二区间的标准。例如,标准可以包括一个或多个要求。例如,一个要求可以是区间2202c、2204c重叠小于或等于阈值量(例如,大约10%)。另一个要求可以是区间2202c、2204c在合并轮廓区间2222(在步骤2306确定)内(例如,由合并轮廓区间2222界定,例如,由合并轮廓区间2222包围)。如果不满足标准,那么方法2300通常结束。
否则,如果在步骤2318处满足标准,那么方法2300进行到步骤2320和2322,其中传感器客户端105a将第一区间2202b与第一人2202的第一像素位置2202e相关联(步骤2320)并且将第二区间2204b与第一人2204的第一像素位置2202e相关联(步骤2322)。将区间2202c、2204c与像素位置2202e、2204e相关联可以对应于在存储器中存储区间2202c、2204c的像素坐标2202d、2204d和/或对应于每个区间2202c、2204c的平均像素位置以及人2202、2204的对象标识符。
在步骤2324处,传感器客户端105a可以将第一和第二像素位置(例如,作为像素位置2226)传输到服务器106。在步骤2326处,服务器106可以将传感器2202的单应性(例如,单应性2230)应用到像素位置以确定第一人和第二人2202、2204的对应物理(例如,全局)位置2228。以上关于图2-7更详细地描述了生成和使用单应性2230的示例。
可以对图23中描绘的方法2300进行修改、添加或省略。方法2300可以包括更多、更少或其它步骤。例如,可以并行或以任何合适的顺序执行步骤。虽然有时讨论为系统2200、传感器客户端22105a、主服务器2208或其执行步骤的任何组件,但是任何合适的系统或系统组件都可以执行该方法的一个或多个步骤。
局部和全局平面上的多传感器图像跟踪
如本公开中其它处所述(例如,关于以上图19-23),使用多个传感器108跟踪空间102中的人(例如,或其它目标对象)带来了几个先前未辨识的挑战。本公开不仅包括对这些挑战的认识,而且包括对这些挑战的独特解决方案。例如,在本公开中描述了在局部(例如,通过跟踪从每个传感器108接收到的图像中的像素地点)和全局(例如,通过跟踪在与空间102中的物理坐标对应的全局平面上的物理位置)两者跟踪人的系统和方法。人跟踪在局部和全局两者都执行时可能更可靠。例如,如果人在局部“丢失”(例如,如果传感器108未能捕获帧并且传感器108未检测到人),那么仍然可以基于来自附近传感器108(例如,上面关于图22描述的角度视图传感器108b)的图像、使用局部跟踪算法确定的人的估计局部位置和/或使用全局跟踪算法确定的估计全局位置来全局跟踪人。
作为另一个示例,如果人似乎在一个传感器108处合并(例如,如果检测到的轮廓合并为单个合并轮廓,如上面图22的视图2216中所示),那么相邻传感器108仍可以提供其中人是单独实体的视图(例如,如上面图22的视图2232中所示)。因此,来自相邻传感器108的信息可以被给予用于人跟踪的优先级。在一些实施例中,如果经由传感器108跟踪的人在局部视图中丢失,那么估计的像素位置可以使用跟踪算法来确定并且报告给服务器106用于全局跟踪,至少直到跟踪算法确定估计的位置低于阈值置信水平。
图24A-C图示了使用跟踪子系统2400来跟踪通过空间102的人2402。图24A图示了当用于基于传感器108a-c生成的图像数据来跟踪人2402的位置时图1的跟踪系统100的一部分。人2402的位置在三个不同的时间点(t1、t2和t3)被示出。传感器108a-c中的每一个是图1的传感器108,如上所述。每个传感器108a-c具有对应的视场2404a-c,其对应于由传感器108a-c观察的空间102的部分。如图24A中所示,每个视场2404a-c与(一个或多个)相邻传感器108a-c的视场重叠。例如,相邻的视场2404a-c可以重叠大约10%和30%之间。传感器108a-c通常生成顶视图像并将对应的顶视图像馈送2406a-c传输到跟踪子系统2400。
跟踪子系统2400包括图1的(一个或多个)客户端105和服务器106。跟踪系统2400通常接收分别由传感器108a-c生成的顶视图像馈送2406a-c,并且使用接收到的图像(参见图24B)来跟踪人2402在空间102中的物理(例如,全局)位置(参见图24C)。每个传感器108a-c可以耦合到跟踪子系统2400的对应传感器客户端105。由此,跟踪子系统2400可以包括用于跟踪由传感器108a-b生成的图像中的人2402的像素地点的局部粒子过滤器跟踪器2444、用于跟踪空间102中的人2402的物理位置的全局粒子过滤器跟踪器2446。
图24B示出了由每个传感器108a-c在时间t1、t2和t3生成的示例顶视图像2408a-c、2418a-c和2426a-c。某些顶视图像包括人2402的表示(即,如果在获得图像2408a-c、2418a-c和2426a-c的时间人2402在传感器108a-c的视场2404a-c中)。例如,在时间t1,图像2408a-c分别由传感器108a-c生成,并提供给跟踪子系统2400。跟踪子系统2400检测与图像2408a中的人2402相关联的轮廓2410。例如,轮廓2410可以对应于勾勒出图像2408a中的人2402的表示的边界的曲线(例如,基于图像2408a中的预定义深度处的颜色(例如,RGB)图像数据检测到,如以上关于图19所描述的)。跟踪子系统2400确定像素坐标2412a,在该示例中由图像2408a中的边界框2412b示出。基于坐标2412a确定像素位置2412c。像素位置2412c通常是指图像2408a中人2402的地点(即,行和列)。由于对象2402在t1时也在第二传感器108b的视场2404b内(参见图24A),因此跟踪系统还检测图像2408b中的轮廓2414并确定对象2402的对应像素坐标2416a(即,与边界框2416b相关联)。基于坐标2416a确定像素位置2416c。像素位置2416c通常是指人2402在图像2408b中的像素地点(即,行和列)。在时间t1,对象2402不在第三传感器108c的视场2404c中(参见图24A)。因此,跟踪子系统2400不基于从第三传感器108c接收到的图像2408c确定对象2402的像素坐标。
现在转向图24C,跟踪子系统2400(例如,跟踪子系统2400的服务器106)可以基于所确定的像素位置2412c和2416c(例如,对应于像素坐标2412a、2416a和边界框2412b、2416b,如上所述)来确定第一全局位置2438。第一全局位置2438对应于如由跟踪子系统2400所确定的人2402在空间102中的位置。换句话说,跟踪子系统2400使用经由两个传感器108a、b确定的像素位置2412c、2416c来确定人2402在空间102中的单个物理位置2438。例如,可以使用将由第一传感器108a生成的顶视图像中的像素坐标与空间102中的物理坐标相关联的第一单应性,从与边界框2412b相关联的像素位置2412c确定第一物理位置2412d。第二物理位置2416d可以类似地使用将由第二传感器108b生成的顶视图像中的像素坐标与空间102中的物理坐标相关联的第二单应性使用与边界框2416b相关联的像素位置2416c来确定。在一些情况下,跟踪子系统2400可以将第一和第二物理位置2412d和2416d之间的距离与阈值距离2448进行比较以确定位置2412d、2416d是对应于同一个人还是不同的人(参见例如下面描述的图26的步骤2620)。第一全局位置2438可以被确定为第一和第二物理位置2410d、2414d的平均值。在一些实施例中,通过对第一和第二物理位置2410d、2414d进行聚类(例如,使用任何适当的聚类算法)来确定全局位置。第一全局位置2438可以对应于人2402在空间102中的位置的(x,y)坐标。
返回图24A,在时间t2,对象2402在对应于传感器108a、b的视场2404a和2404b内。如图24B中所示,在图像2418b中检测到轮廓2422并且确定由边界框2424b示出的对应像素坐标2424a。基于坐标2424a确定像素位置2424c。像素位置2424c通常是指人2402在图像2418b中的地点(即,行和列)。但是,在这个示例中,跟踪子系统2400未能在来自传感器108a的图像2418a中检测到与对象2402相关联的轮廓。这可能是因为对象2402位于视场2404a的边缘、因为来自馈送2406a的图像帧丢失、因为人2402在视场2404a中的位置对应于传感器108a的自动排除区(参见图19-21和上面的对应描述)或因为传感器108a和/或跟踪子系统2400的任何其它故障。在这种情况下,跟踪子系统2400可以在局部(例如,在耦合到传感器108a的特定客户端105处)估计对象2402的像素坐标2420a和/或对应的像素位置2420b。例如,由传感器108a生成的图像中的对象2402的局部粒子过滤器跟踪器2444可以用于确定估计的像素位置2420b。
图25A、B图示了示例粒子过滤器跟踪器2444、2446的操作(例如,用于确定估计的像素位置2420a)。图25A图示了空间102的像素坐标或物理坐标中的区间2500。例如,区间2500可以对应于图像中的像素区间或物理空间中的区间。在第一区2502中,在位置2504处检测到对象(例如,人2402)。粒子过滤器确定对象的几个估计后续位置2506。估计的后续位置2506在图25A中被示为点或“粒子”并且通常基于对象的先前位置的历史来确定。类似地,另一个区2508示出了另一个对象(或不同时间的相同对象)的位置2510以及该对象的“粒子”的估计后续位置2512。
对于位置2504处的对象,估计的后续位置2506主要聚集在位置2504上方和右侧的类似区域中,指示粒子过滤器跟踪器2444、2446可以提供对后续位置的相对良好的估计。同时,估计的后续位置2512相对随机地分布在对象的位置2510周围,指示粒子过滤器跟踪器2444、2446可以提供对后续位置的相对差的估计。图25B示出了图25A中所示的粒子的分布图2550,其可以用于基于标准偏差值(σ)量化估计位置的质量。
在图25B中,曲线2552对应于预期位置2506的位置分布,并且曲线2554对应于预期位置2512的位置分布。曲线2554必须具有相对窄的分布,使得预期位置2506主要靠近平均位置(μ)。例如,窄分布对应于主要具有相似位置的粒子,在这种情况下,其在位置2504的上方和右侧。作为对照,曲线2554具有更广泛的分布,其中粒子更随机地分布在平均位置(μ)周围。因此,曲线2552的标准偏差(σ1)小于标准偏差曲线2554(σ2)。一般而言,标准偏差(例如,σ1或σ2)可以用作粒子过滤器跟踪器2444、2446生成的估计像素地点可能正确的程度的量度。如果标准偏差小于阈值标准偏差(σthreshold),如曲线2552和σ1的情况,那么由粒子过滤器跟踪器2444、2446生成的估计位置可以用于对象跟踪。否则,估计的位置通常不用于对象跟踪。
再次参考图24C,跟踪子系统2400(例如,跟踪子系统2400的服务器106)可以基于与帧2418a中的估计边界框2420a相关联的估计像素位置2420b和与来自帧2418b的边界框2424b相关联的像素位置2424c来确定对象2402在空间102中的第二全局位置2440。例如,可以使用将由第一传感器108a生成的顶视图像中的像素坐标与空间102中的物理坐标相关联的第一单应性来确定第一物理位置2420c。可以使用将由第二传感器108b生成的顶视图像中的像素坐标与空间102中的物理坐标相关联的第二单应性来确定第二物理位置2424d。跟踪子系统2400(即,跟踪子系统2400的服务器106)可以基于第一和第二物理位置2420c、2424d确定第二全局位置2440,如上面关于时间t1所描述的。第二全局位置2440可以对应于人2402在空间102中的(x,y)坐标。
返回图24A,在时间t3,对象2402在传感器108b的视场2404b和传感器108c的视场2404c内。因此,这些图像2426b、c可以用于跟踪人2402。图24B示出了轮廓2428和对应的像素坐标2430a、像素区间2430b和像素位置2430c在来自传感器108b的帧2426b中被确定,而轮廓2432和对应的像素坐标2434a、像素区间2434b和像素位置2434c在来自传感器108c的帧2426c中被检测到。如图24C中所示并且如上面针对时间t1和t2更详细描述的,跟踪子系统2400可以基于与帧2426b中的边界框2430b相关联的像素位置2430c和与来自帧2426c的边界框2434b相关联的像素位置2434c确定对象2402在空间中的第三全局位置2442。例如,可以使用将由第二传感器108b生成的顶视图像中的像素坐标与空间102中的物理坐标相关联的第二单应性来确定第一物理位置2430d。可以使用将由第三传感器108c生成的顶视图像中的像素坐标与空间102中的物理坐标相关联的第三单应性来确定第二物理位置2434d。跟踪子系统2400可以基于第一和第二物理位置2430d、2434d来确定全局位置2442,如上面关于时间t1和t2所描述的。
图26是图示基于顶视图像(例如,来自馈送2406a、b的由传感器108a、b生成的图像2408a-c、2418a0c、2426a-c,如上所述)在空间102中跟踪人2402的流程图。传感器108a的视场2404a和传感器108b的视场2404b通常重叠距离2602。在一个实施例中,距离2602可以是视场2404a、b的大约10%到30%。在这个示例中,跟踪子系统2400包括第一传感器客户端105a、第二传感器客户端105b和服务器106。第一和第二传感器客户端105a、b中的每一个都可以是上面关于图1描述的客户端105。第一传感器客户端105a耦合到第一传感器108a并且被配置为基于第一馈送2406a跟踪人2402的第一像素位置2112c。第二传感器客户端105b耦合到第二传感器108b并且被配置为基于第二馈送2406b跟踪同一个人2402的第二像素位置2416c。
服务器106通常从客户端105a、b接收像素位置并且跟踪人2402在空间102中的全局位置。在一些实施例中,服务器106采用全局粒子过滤器跟踪器2446来跟踪空间102中的人2402和一个或多个其它人2604的全局物理位置。在局部(即,使用客户端105a、b在“像素级”)和全局(即,基于空间102中的物理位置)两者跟踪人通过减少和/或消除噪声和/或可能由于依赖于客户端105a、b的局部跟踪或服务器106单独的全局跟踪而导致的其它跟踪错误来改进跟踪。
图26图示了由传感器客户端105a、b和服务器106实现的方法2600。在步骤2606a处,传感器客户端105a从传感器108a接收第一数据馈送2406a。馈送可以包括顶视图像(例如,图24的图像2408a-c、2418a-c、2426a-c)。图像可以是彩色图像、深度图像或颜色深度图像。在来自馈送2406a的图像(例如,对应于某个时间戳)中,传感器客户端105a确定在步骤2608a处是否检测到轮廓。如果在时间戳处检测到轮廓,那么传感器客户端105a在步骤2610a处确定轮廓的第一像素位置2412c。例如,第一像素位置2412c可以对应于与为轮廓确定的边界框2412b相关联的像素坐标(例如,使用任何适当的对象检测算法)。作为另一个示例,传感器客户端105a可以生成覆盖检测到的轮廓的像素掩码并确定像素掩码的像素坐标,如上面关于图21的步骤2104所描述的。
如果在步骤2608a处未检测到轮廓,那么在步骤2612a处,第一粒子过滤器跟踪器2444可以用于基于轮廓2410的先前位置的历史来估计像素位置(例如,估计位置2420b)。例如,第一粒子过滤器跟踪器2444可以生成与时间戳对应的后续第一像素位置的概率加权估计(例如,如上面关于图25A、B所描述的)。一般而言,如果估计的像素位置2420b的置信水平(例如,基于标准偏差)低于阈值(例如,参见图25B和上面的相关描述),那么传感器客户端105a不针对该时间戳确定像素位置,并且对于该时间戳没有像素位置被报告给服务器106。这防止了处理资源的浪费,否则这些处理资源将被服务器106用于处理不可靠的像素位置数据。如下所述,服务器106通常仍然可以使用全局粒子过滤器跟踪器2446(参见下面的步骤2626、2632和2636)来跟踪人2402,即使当对于给定的时间戳没有提供像素地点时。
在步骤2606b处,第二传感器客户端105b从传感器108b接收第二数据馈送2406b。与以上针对传感器客户端105a描述的步骤相同或相似的步骤用于确定检测到的轮廓2414的第二像素位置2416c或基于第二粒子过滤器跟踪器2444估计像素位置。在步骤2608b处,传感器客户端105b确定是否在给定时间戳的来自馈送2406b的图像中检测到轮廓2414。如果在时间戳处检测到轮廓2414,那么传感器客户端105b在步骤2610b处确定轮廓2414的第一像素位置2416c(例如,使用上面关于步骤2610a描述的任何方法)。如果未检测到轮廓2414,那么第二粒子过滤器跟踪器2444可以用于在步骤2612b处估计像素位置(例如,如上面关于步骤2612a所描述的)。如果估计的像素位置的置信水平低于阈值(例如,基于跟踪器2444的标准偏差值),那么传感器客户端105b没有针对该时间戳确定像素位置,并且对于该时间戳没有像素位置被报告给服务器106。
虽然步骤2606a、b-2612a、b被描述为由传感器客户端105a和105b执行,但应该理解的是,在一些实施例中,单个传感器客户端105可以从传感器108a、b接收第一和第二图像馈送2406a、b并执行上述步骤。为单独的传感器108a、b或传感器108的集合使用单独的传感器客户端105a、b可以在客户端105发生故障的情况下提供冗余(例如,使得即使一个传感器客户端105失败,来自其它传感器的馈送也可以由其它仍在工作的客户端105处理)。
在步骤2614处,服务器106接收由传感器客户端105a、b确定的像素位置2412c、2416c。在步骤2616处,服务器106可以基于在步骤2610a处确定的或由第一传感器客户端105a在步骤2612a处估计的第一像素位置2412c来确定第一物理位置2412d。例如,可以使用将由第一传感器108a生成的顶视图像中的像素坐标与空间102中的物理坐标相关联的第一单应性来确定第一物理位置2412d。在步骤2618处,服务器106可以基于在步骤2610b处确定的或由第一传感器客户端105b在步骤2612b处估计的第二像素位置2416c来确定第二物理位置2416d。例如,可以使用将由第二传感器108b生成的顶视图像中的像素坐标与空间102中的物理坐标相关联的第二单应性来确定第二物理位置2416d。
在步骤2620处,服务器106确定第一和第二位置2412d、2416d(来自步骤2616和2618)是否在彼此的阈值距离2448内(例如,大约六英寸)。一般而言,阈值距离2448可以基于系统跟踪系统100和/或人2402或被跟踪的另一个目标对象的一个或多个特性来确定。例如,阈值距离2448可以基于传感器108a-b距对象的距离、对象的大小、视场2404a-b、传感器108a-b的灵敏度等中的一个或多个。因此,取决于跟踪系统100的这些和其它特性,阈值距离2448的范围可以从刚好超过零英寸到大于六英寸。
如果在步骤2620处位置2412d、2416d在彼此的阈值距离2448内,那么服务器106在步骤2622处确定位置2412d、2416d对应于同一个人2402。换句话说,服务器106确定第一传感器108a检测到的人与第二传感器108b检测到的人是同一个人。这可能由于传感器108a和108b的视场2404a和视场2404b之间的重叠2604而在给定的时间戳发生,如图26中所示。
在步骤2624处,服务器106基于来自步骤2616和2618的第一和第二物理位置确定对象的全局位置2438(即,空间102中的物理位置)。例如,服务器106可以计算第一和第二物理位置2412d、2416d的平均值。在一些实施例中,通过对第一和第二物理位置2412d、2416d进行聚类(例如,使用任何适当的聚类算法)来确定全局位置2438。在步骤2626处,使用全局粒子过滤器跟踪器2446来跟踪人2402的全局(例如,物理)位置2438。上面关于图25A、B描述了粒子过滤器跟踪器的示例。例如,全局粒子过滤器跟踪器2446可以在后续时间生成后续全局位置的概率加权估计。如果无法在后续时间戳确定全局位置2438(例如,因为像素位置不能从传感器客户端105a、b获得),那么粒子过滤器跟踪器2446可以用于估计位置。
如果在步骤2620处,第一和第二物理位置2412d、2416d彼此不在阈值距离2448内,那么服务器106通常在步骤2628处确定位置对应于不同的对象2402、2604。换句话说,服务器106可以确定在步骤2616和2618处确定的物理位置足够不同或相距很远,以使它们对应于空间102中的第一人2402和不同的第二人2604。
在步骤2630处,服务器106基于来自步骤2616的第一物理位置2412c确定第一对象2402的全局位置。一般而言,在只有一个物理位置2412c作为全局位置基础的情况下,全局位置是第一物理位置2412c。如果其它物理位置与第一对象相关联(例如,基于来自其它传感器108的数据,为清楚起见未在图26中示出),那么第一人2402的全局位置可以是这些位置的平均值或如上所述使用任何适当的聚类算法基于这些位置来确定。在步骤2632处,全局粒子过滤器跟踪器2446可以用于跟踪第一人2402的第一全局位置,也如上所述。
在步骤2634处,服务器106基于来自步骤2618的第二物理位置2416c确定第二人2404的全局位置。一般而言,在只有一个物理位置2416c作为全局位置基础的情况下,全局位置是第二物理位置2416c。如果其它物理位置与第二对象相关联(例如,基于来自其它传感器108的数据,为清楚起见未在图26中示出),那么第二人2604的全局位置可以是这些位置的平均值或使用任何适当的聚类算法基于这些位置来确定。在步骤2636处,全局粒子过滤器跟踪器2446用于跟踪第二对象的第二全局位置,如上所述。
可以对以上关于图26描述的方法2600进行修改、添加或省略。该方法可以包括更多、更少或其它步骤。例如,可以并行或以任何合适的顺序执行步骤。虽然有时讨论为跟踪子系统2400、传感器客户端105a、b、服务器106或其执行步骤的任何一个的组件,但是任何合适的系统或系统的组件都可以执行方法2600的一个或多个步骤。
候选者列表
当跟踪系统100正在跟踪空间102中的人时,在某些情况下可靠地识别人可能是具有挑战性的,诸如当他们进入或靠近自动排除区时(参见图19-21和上面的对应描述)、当他们站在另一个人附近时(参见图22-23和上面的对应描述),和/或当传感器108、(一个或多个)客户端105和/或服务器106中的一个或多个发生故障时。例如,在第一人变得与第二人接近或甚至接触(例如,“冲突”)之后,可能难以确定哪个人是哪个人(例如,如上面关于图22所述)。常规的跟踪系统可以使用基于物理的跟踪算法来尝试基于人的估计轨迹(例如,就像人是弹珠冲突和根据动量守恒改变轨迹等进行估计)来确定哪个人是哪个人。但是,人的身份可能更难以可靠地跟踪,因为移动可能是随机的。如上所述,跟踪系统100可以采用粒子过滤器跟踪来改进对空间102中的人的跟踪(参见例如图24-26和上面的对应描述)。但是,即使有这些进步,在某些时候可能仍难以确定被跟踪人的身份。本公开特别包括认识到在商店购物(即,在空间内四处移动、选择物品和拾取物品)的人的位置难以或不可能使用先前可用的技术来跟踪,因为这些人的移动是随机的并且不遵循易于定义的模式或模型(例如,诸如先前方法的基于物理的模型)。因此,缺乏用于可靠和高效地跟踪人(例如,或其它目标对象)的工具。
本公开通过在跟踪期间维护在本公开中被称为“候选者列表”的可能的人身份或标识符(即,被跟踪人的用户名、账户号码等)的记录来提供对包括上述问题在内的先前技术问题的解决方案。在跟踪期间生成并更新候选者列表,以建立每个被跟踪人的可能身份。一般而言,对于被跟踪人的每个可能的身份或标识符,候选者列表还包括该身份或标识符被认为是正确的概率。候选者列表在人之间的交互(例如,冲突)之后以及响应于其它不确定事件(例如,传感器数据丢失、成像错误、故意欺骗等)被更新。
在一些情况下,候选者列表可以用于确定何时应该重新识别人(例如,使用下面关于图29-32更详细描述的方法)。一般而言,当被跟踪人的候选者列表指示该人的身份不足以很好地知道时(例如,基于候选者列表中存储的概率小于阈值),重新识别是合适的。在一些实施例中,候选者列表用于确定人何时可能已经离开空间102(即,具有至少阈值置信水平),并且仅在存在高置信水平该人已经离开之后才向该人发送离开通知(例如,参见下面描述的图27的视图2730)。一般而言,当候选者列表指示根据预先建立的标准不再知道人的身份时,可以通过仅执行潜在复杂的人重新识别任务来节省处理资源。
图27是图示与被跟踪人(例如,或任何其它目标对象)相关联的标识符2701a-c如何在跟踪期间通过跟踪系统100在从初始时间t0到最终时间t5的时间段内被更新的流程图。如上所述,可以基于来自传感器108的数据使用跟踪系统100来跟踪人。图27描绘了跟踪期间在不同时间点的多个视图2702、2716、2720、2724、2728、2730。在一些实施例中,视图2702、2716、2720、2724、2728、2730对应于来自传感器108的局部帧视图(例如,如上面关于图22所述),其中坐标以像素为单位(例如,或传感器108生成的数据类型的任何其它适当的单位)。在其它实施例中,视图2702、2716、2720、2724、2728、2730对应于基于来自多个传感器108的数据确定的空间102的全局视图,其中坐标对应于空间中的物理位置(例如,如使用上面关于图2-7更详细描述的单应性确定的)。为了清楚和简明,图27的示例在下面根据空间102的全局视图(即,对应于空间102的物理坐标的视图)来描述。
被跟踪对象区间2704、2708、2712对应于空间102的与移动通过空间102的对应人(例如,或任何其它目标对象)的位置相关联的区间。例如,每个被跟踪对象区间2704、2708、2712可以对应于在空间102中四处移动的不同人。上面例如关于图21、22和24描述了确定区间2704、2708、2712的示例。作为一个示例,被跟踪对象区间2704、2708、2712可以是为空间102中的对应对象识别出的边界框。作为另一个示例,被跟踪对象区间2704、2708、2712可以对应于为与空间102中的对应对象相关联的轮廓确定的像素掩码(对于确定像素掩码的更详细描述,参见例如图21的步骤2104)。一般而言,可以在空间102中跟踪人并且可以使用任何适当的跟踪和识别方法来确定区间2704、2708、2712。
在初始时间t0的视图2702包括第一被跟踪对象区间2704、第二被跟踪对象区间2708和第三被跟踪对象区间2712。视图2702可以对应于从顶视图看的空间102的表示,其中仅示出了被跟踪对象区间2704、2708、2712(即,空间102中的其它对象被省略)。在时间t0,所有人的身份通常是已知的(例如,因为人们最近已进入空间102和/或因为人们还没有彼此靠近)。第一被跟踪对象区间2704与第一候选者列表2706相关联,第一候选者列表2706包括区间2704(或被跟踪的对应人)与第一标识符2701a相关联的概率(PA=100%)。第二被跟踪对象区间2708与第二候选者列表2710相关联,第二候选者列表2710包括区间2708(或被跟踪的对应人)与第二标识符2701b相关联的概率(PB=100%)。第三被跟踪对象区间2712与第三候选者列表2714相关联,第三候选者列表2714包括区间2712(或被跟踪的对应人)与第三标识符2701c相关联的概率(PC=100%)。因此,在时间t1,候选者列表2706、2710、2714指示每个被跟踪对象区间2704、2708、2712的身份是已知的,其中所有概率具有100%的值。
视图2716示出了被跟踪对象2704、2708、2712在第一时间t1的位置,该第一时间t1在初始时间t0之后。在时间t1,跟踪系统检测到可能导致被跟踪对象区间2704、2708的身份不太确定的事件。在这个示例中,跟踪系统100检测到第一对象区间274和第二对象区间2708之间的距离2718a小于或等于阈值距离2718b。因为被跟踪对象区间彼此靠近(即,在阈值距离2718b内),因此在随后的时间期间,这些区间可能被错误识别的概率非零。阈值距离2718b可以是任何适当的距离,如上面关于图22所描述的。例如,跟踪系统100可以通过确定第一对象区间2704的第一坐标、确定第二对象区间2708的第二坐标、计算距离2718a,并将距离2718a与阈值距离2718b进行比较来确定第一对象区间2704在第二对象区间2708的阈值距离2718b内。在一些实施例中,第一和第二坐标对应于捕获第一和第二人的图像中的像素坐标,并且距离2718a对应于这些像素坐标之间的像素数量。例如,如图27的视图2716中所示,距离2718a可以对应于被跟踪对象区间2704、2708的质心之间的像素距离。在其它实施例中,第一和第二坐标对应于空间102中的物理或全局坐标,并且距离2718a对应于物理距离(例如,以长度为单位,诸如英寸)。例如,可以使用上面关于图2-7更详细描述的单应性来确定物理坐标。
在检测到区间2704、2708的身份不太确定(即,第一对象区间2704在第二对象区间2708的阈值距离2718b内)之后,跟踪系统100确定第一被跟踪对象区间2704与第二被跟踪对象区间2708交换了标识符2701a-c的概率2717。例如,当图像中的两个轮廓变得接近时,存在在后续跟踪期间轮廓的身份可能不正确的可能性(例如,因为跟踪系统100可能将错误的标识符2701a-c分配给帧之间的轮廓)。标识符2701a-c交换的概率2717可以例如通过访问预定义的概率值(例如,50%)来确定。在其它情况下,概率2717可以基于对象区间2704、2708之间的距离2718a。例如,随着距离2718减小,标识符2701a-c交换的概率2717可能增加。在图27的示例中,确定的概率2717是20%,因为对象区间2704、2708相距相对远,但在区间2704、2708之间存在一些重叠。
在一些实施例中,跟踪系统100可以确定第一对象区间2704和第二对象区间2708之间的相对朝向,并且对象区间2704、2708交换标识符2701a-c的概率2717可以基于该相对朝向。相对朝向可以对应于与第一区间2704相关联的人正面对的方向与和第二区间2708相关联的人正面对的方向之间的角度。例如,如果与第一和第二区间2704、2708相关联的人所面对的方向之间的角度接近180°(即,使得人们面对相反的方向),那么标识符2701a-c交换的概率2717可以减少,因为这种情况可能对应于一个人不小心倒退到另一个人身上。
基于所确定的被跟踪对象区间2704、2708交换标识符2701a-c的概率2717(例如,在该示例中为20%),跟踪系统100更新第一对象区间2704的第一候选者列表2706。更新后的第一候选者列表2706包括第一区间2704与第一标识符2701a相关联的概率(PA=80%)和第一区间2704与第二标识符2701b相关联的概率(PB=20%)。第二对象区间2708的第二候选者列表2710基于第一对象区间2704与第二对象区间2708交换标识符2701a-c的概率2717类似地被更新。更新后的第二候选者列表2710包括第二区域2708与第一标识符2701a相关联的概率(PA=20%)和第二区域2708与第二标识符2701b相关联的概率(PB=80%)。
视图2720示出了在时间t1之后的第二时间点t2的对象区间2704、2708、2712。在时间t2,与第一被跟踪区间2704对应的第一人靠近与第三被跟踪区间2712对应的第三人站立。在该示例情况下,跟踪系统100检测到第一对象区间2704和第三对象区间2712之间的距离2722小于或等于阈值距离2718b(即,与上面关于视图2716描述的相同的阈值距离2718b)。在检测到第一对象区间2704在第三对象区间2712的阈值距离2718b内之后,跟踪系统100确定第一被跟踪对象区间2704与第三被跟踪对象区间2712交换标识符2701a-c的概率2721。如上所述,标识符2701a-c交换的概率2721可以例如通过访问预定义的概率值(例如,50%)来确定。在一些情况下,概率2721可以基于对象区间2704、2712之间的距离2722。例如,由于距离2722大于距离2718a(从上面描述的视图2716),标识符2701a-c交换的概率2721在时间t1可能大于在时间t2。在图27的视图2720的示例中,确定的概率2721是10%(其小于在时间t1确定的20%的交换概率2717)。
基于确定的被跟踪对象区间2704、2712交换标识符2701a-c的概率2721(例如,在该示例中为10%),跟踪系统100更新第一对象区间2704的第一候选者列表2706。更新后的第一候选者列表2706包括第一对象区间2704与第一标识符2701a相关联的概率(PA=73%)、第一对象区间2704与第二标识符2701b相关联的概率(PB=17%),以及第一对象区间2704与第三标识符2701c相关联的概率(PC=10%)。第三对象区间2712的第三候选者列表2714基于第一对象区间2704与第三对象区间2712交换标识符2701a-c的概率2721类似地被更新。更新后的第三候选者列表2714包括第三对象区间2712与第一标识符2701a相关联的概率(PA=7%)、第三对象区间2712与第二标识符2701b相关联的概率(PB=3%),以及第三对象区间2712与第三标识符2701c相关联的概率(PC=90%)。因此,即使第三对象区间2712从未与第二对象区间2708交互(例如,在其阈值距离2718b内),第三对象区间2712仍然存在非零概率(PB=3%)与最初(在时间t0)分配给第二对象区间2708的第二标识符2701b相关联。换句话说,在时间t1检测到的对象身份的不确定性经由在时间t2与区间2704的交互传播到第三对象区间2712。这种独特的“传播效应”促进了改进的对象识别,并且可以用于当需要对象重新识别时缩小搜索空间(例如,可能与被跟踪对象区间2704、2708、2712相关联的可能标识符2701a-c的数量)(如下面和关于图29-32更详细描述的)。
视图2724示出了在时间t2之后的第三时间点t3的第三对象区间2712和未识别的对象区间2726。在时间t3,与区间2704、2708相关联的第一人和第二人开始接触(例如,或“冲突”)或以其它方式彼此如此接近以至于跟踪系统100无法区分这些人。例如,为确定第一对象区间2704和第二对象区间2708而检测到的轮廓可能已经合并,从而导致单个未识别的对象区间2726。因此,对象区间2726的位置可以对应于对象区间2704和2708之一或两者的位置。在时间t3,跟踪系统100可以确定不再检测到第一和第二对象区间2704、2708,因为与第一对象区间2704相关联的第一轮廓与和第二对象区间2708相关联的第二轮廓合并。
跟踪系统100可以等待直到后续时间t4(在视图2728中示出),即,当在更新候选者列表2706、2710之前再次检测到第一和第二对象区间2704、2708时。时间t4通常对应于与区间2704、2708相关联的第一人和第二人已经彼此分离使得可以在空间102中跟踪每个人的时间。在诸如视图2724中所示的合并事件之后,区间2704和2708已经交换标识符2701a-c的概率2725可以是50%。在时间t4,更新后的候选者列表2706包括第一对象区间2704与第一标识符2701a相关联的更新概率(PA=60%),第一对象区间2704与第二标识符2701b相关联的更新概率(PB=35%),以及第一对象区间2704与第三标识符2701c相关联的更新概率(PC=5%)。更新后的候选者列表2710包括第二对象区间2708与第一标识符2701a相关联的更新概率(PA=33%)、第二对象区间2708与第二标识符2701b相关联的更新概率(PB=62%),以及第二对象区间2708与第三标识符2701c相关联的更新概率(PC=5%)。候选者列表2714未更改。
仍然参考视图2728,跟踪系统100可以确定候选者列表的最高值概率小于阈值(例如,P阈值=70%)。响应于确定第一候选者列表2706的最高概率小于阈值,可以重新识别对应的对象区间2704(例如,使用本公开中例如关于图29-32描述的任何重新识别方法)。例如,可以重新识别第一对象区间2704,因为最高概率(PA=60%)小于阈值概率(P阈值=70%)。跟踪系统100可以提取与和第一对象区间2704相关联的第一人(或对应轮廓)的可观察特性相关联的特征或描述符。可观察特性可以是对象的高度(例如,根据从传感器接收到的深度数据确定)、与轮廓内部的区域相关联的颜色(例如,基于来自传感器108的彩色图像数据)、对象的宽度、对象的纵横比(例如,宽度/长度)、对象的体积(例如,基于来自传感器108的深度数据)等。其它描述符的示例在下面关于图30更详细地描述。如下面更详细描述的,可以为人计算纹理特征(例如,使用局部二进制模式直方图(LBPH)算法确定)。替代地或附加地,人工神经网络可以用于将人与正确的标识符2701a-c相关联(例如,如下面关于图29-32更详细描述的)。
使用候选者列表2706、2710、2714可以促进比先前可能的更高效的重新识别,因为对于具有不确定身份的区间2704、2708、2712不是检查所有可能的标识符2701a-c(例如,空间102中未在图27中示出的其它人的标识符),而是跟踪系统100可以识别最可能与未知区间2704、2708、2712相关联的所有其它标识符2701a-c的子集,并且仅将未知区间2704、2708、2712的描述符与和标识符2701a-c的子集相关联的描述符进行比较。换句话说,如果被跟踪人的身份不确定,那么跟踪系统100可以仅检查该人是否是该人的候选者列表中指示的少数人之一,而不是将未知人与空间102中的所有人进行比较。例如,仅与候选者列表2706中的非零概率或大于阈值的概率相关联的标识符2701a-c可能与第一区间2704的正确标识符2701a-c相关联。在一些实施例中,子集可以包括来自第一候选者列表2706的概率大于阈值概率值(例如,10%)的标识符2701a-c。因此,跟踪系统100可以将与区间2704相关联的人的描述符与和子集相关联的预定描述符进行比较。如下面关于图29-32更详细描述的,预定特征(或描述符)可以在人进入空间102时被确定并且与进入时间段期间(即,在任何事件可能导致人的身份不确定之前)人的已知标识符2701a-c相关联。在图27的示例中,对象区间2708也可以在时间t4或之后被重新识别,因为最高概率PB=62%小于70%的示例阈值概率。
视图2730对应于仅与对象区间2712相关联的人留在空间102内的时间t5。视图2730图示了候选者列表2706、2710、2714如何可以用于确保人们仅在系统100确定人已离开空间102时才接收离开通知2734。在这些实施例中,跟踪系统100可以被配置为当人已经离开空间102的概率大于离开阈值(例如,P离开=95%或更大)时向与这些人相关联的设备传输离开通知2734。
离开通知2734通常被发送到人的设备并且包括跟踪系统100已经确定人已经离开空间102的确认。例如,如果空间102是商店,那么离开通知2734向人提供跟踪系统100知道该人已经离开商店并且因此不再购物的确认。这可以向该人提供跟踪系统100正常操作并且不再向该人分配物品或不正确地向该人收取他/她不打算购买的物品的保证。
当人离开空间102时,跟踪系统100可以维持离开概率的记录2732以确定何时应该发送离开通知2734。在图27的示例中,在时间t5(在视图2730中示出),记录2732包括与第一对象区间2704相关联的第一人已经离开空间102的离开概率(PA,离开=93%)。由于PA,离开小于95%的示例阈值离开概率,因此离开通知2734将不会被发送到第一人(例如,发送到他/她的设备)。因此,即使在空间102中不再检测到第一对象区间2704,也不会发送离开通知2734,因为仍有可能第一人仍在空间102中(即,由于经由候选者列表2706、2710、2714捕获和记录的身份不确定性)。这防止了人在他/她离开空间102之前接收到离开通知2734。记录2732包括与第二对象区间2708相关联的第二人已经离开空间102的离开概率(PB,离开=97%)。由于PB离开大于95%的阈值离开概率,因此将离开通知2734发送到第二人(例如,发送到他/她的设备)。记录2732还包括与第三对象区间2712相关联的第三人已经离开空间102的离开概率(PC,离开=10%)。由于PC,离开小于95%的阈值离开概率,因此不向第三人(例如,他/她的设备)发送离开通知2734。
图28是用于通过跟踪系统100创建和/或维护候选者列表2706、2710、2714的方法2800的流程图。方法2800通常通过维护候选者列表2706、2710、2714来促进对被跟踪人(例如,或其它目标对象)的改进识别,候选者列表2706、2710、2714对于给定的被跟踪人或对应的被跟踪对象区间(例如,区间2704、2708、2712),包括对象的可能标识符2701a-c和每个标识符2701a-c对于人是正确的对应概率。通过为被跟踪人维护候选者列表2706、2710、2714,可以在跟踪期间更有效和高效地识别人。例如,仅当候选者列表指示人的身份足够不确定时,才可能使用高成本的人重新识别(例如,在系统资源消耗方面)。
方法2800可以开始于步骤2802,其中从一个或多个传感器108接收图像帧。在步骤2804处,跟踪系统100使用接收到的帧来跟踪空间102中的对象。在一些实施例中,使用本公开中(例如,关于图24-26)描述的独特工具中的一种或多种来执行跟踪。但是,一般而言,可以采用任何适当的基于传感器的对象跟踪方法。
在步骤2806处,跟踪系统100确定第一人是否在第二人的阈值距离2718b内。这种情况可以对应于上述图27的视图2716中所示的状况,其中第一对象区间2704与第二对象区间2708相距距离2718a。如上所述,距离2718a可以对应于在帧中测量的像素距离或空间102中的物理距离(例如,使用将像素坐标与空间102中的物理坐标相关联的单应性确定的)。如果第一人和第二人不在彼此的阈值距离2718b内,那么系统100继续跟踪空间102中的对象(即,通过返回到步骤2804)。
但是,如果第一人和第二人在彼此的阈值距离2718b内,那么方法2800进行到步骤2808,其中确定第一人和第二人交换标识符2701a-c的概率2717。如上所述,标识符2701a-c交换的概率2717可以例如通过访问预定义的概率值(例如,50%)来确定。在一些实施例中,概率2717基于人(或对应的对象区间2704、2708)之间的距离2718a,如上所述。在一些实施例中,如上所述,跟踪系统100确定第一人和第二人之间的相对朝向,以及至少部分地基于这种相对朝向确定人(或对应的对象区间2704、2708)交换标识符2701a-c的概率2717。
在步骤2810处,基于在步骤2808处确定的概率2717更新第一人和第二人(或对应的对象区间2704、2708)的候选者列表2706、2710。例如,如上所述,更新后的第一候选者列表2706可以包括第一对象与第一标识符2701a相关联的概率和第一对象与第二标识符2701b相关联的概率。第二人的第二候选者列表2710基于第一对象与第二对象交换标识符2701a-c的概率2717(在步骤2808处确定)被类似地更新。更新后的第二候选者列表2710可以包括第二人与第一标识符2701a相关联的概率和第二人与第二标识符2701b相关联的概率。
在步骤2812处,跟踪系统100确定第一人(或对应区间2704)是否在第三对象(或对应区间2712)的阈值距离2718b内。例如,这种情况可以对应于上述图27的视图2720中所示的状况,其中第一对象区间2704与第三对象区间2712相距距离2722。如上所述,阈值距离2718b可以对应于在帧中测量的像素距离或空间102中的物理距离(例如,使用将像素坐标与空间102中的物理坐标相关联的适当单应性确定的)。
如果第一人和第三人(或对应区间2704和2712)在彼此的阈值距离2718b内,那么方法2800进行到步骤2814,其中确定第一人和第三人(或对应区间2704和2712)交换标识符2701a-c的概率2721。如上所述,标识符2701a-c交换的概率2721可以例如通过访问预定义的概率值(例如,50%)来确定。概率2721还可以或替代地基于对象2727之间的距离2722和/或第一人和第三人的相对朝向,如上所述。在步骤2816处,基于在步骤2808处确定的概率2721更新第一人和第三人(或对应区间2704、2712)的候选者列表2706、2714。例如,如上所述,更新后的第一候选者列表2706可以包括第一人与第一标识符2701a相关联的概率、第一人与第二标识符2701b相关联的概率,以及第一对象与第三标识符2701c相关联的概率。第三人的第三候选者列表2714基于第一人与第三人交换标识符的概率2721(即,在步骤2814处确定)被类似地更新。更新后的第三候选者列表2714可以包括例如第三对象与第一标识符2701a相关联的概率、第三对象与第二标识符2701b相关联的概率,以及第三对象与第三标识符2701c相关联的概率。因此,如果方法2800的步骤以图28中所示的示例顺序进行,那么第三人的候选者列表2714包括第三对象与第二标识符2701b相关联的非零概率,该第二标识符2701b最初与第二人相关联。
如果在步骤2812处,第一人和第三人(或对应区间2704和2712)不在彼此的阈值距离2718b内,那么系统100通常继续跟踪空间102中的人。例如,系统100可以进行到步骤2818以确定第一人是否在第n人(即,空间102中的某个其它人)的阈值距离内。在步骤2820处,系统100确定第一人和第n人交换标识符2701a-c的概率,如以上例如关于步骤2808和2814所述。在步骤2822处,基于在步骤2820处确定的概率更新第一人和第n人的候选者列表,如以上例如关于步骤2810和2816所述,之后方法2800结束。如果在步骤2818处,第一人不在第n人的阈值距离内,那么方法2800进行到步骤2824。
在步骤2824处,跟踪系统100确定人是否已经离开空间102。例如,如上所述,跟踪系统100可以确定与被跟踪人相关联的轮廓至少在阈值时间段(例如,大约30秒或更长)内不再被检测到。当不再检测到人并且该人的最后确定位置处于或接近出口位置(例如,靠近通向空间102的已知出口的门)时,系统100可以附加地确定该人离开了空间102。如果人尚未离开空间102,那么跟踪系统100继续跟踪人(例如,通过返回到步骤2802)。
如果人已经离开空间102,那么跟踪系统100在步骤2826处计算或更新被跟踪对象已经离开空间102的概率的记录2732。如上所述,记录2732的每个离开概率通常对应于与每个标识符2701a-c相关联的人已经离开空间102的概率。在步骤2828处,跟踪系统100确定记录2732中的组合离开概率是否大于阈值(例如,95%或更大)。如果组合离开概率不大于阈值,那么跟踪系统100继续跟踪对象(例如,通过继续到步骤2818)。
如果来自记录2732的离开概率大于阈值,那么可以在步骤2830处向链接到与该概率相关联的标识符2701a-c的人发送对应离开通知2734,如上面关于图27的视图2730所述。这可以防止或减少当对象仍在空间102中时过早发送离开通知2734的情况。例如,延迟发送离开通知2734直到存在高确定性相关联的人不再在空间102中可能是有益的。在一些情况下,在记录2732中针对给定标识符2701a-c的离开概率足够大以使离开通知2734被发送给该人(例如,发送给与该人相关联的设备)之前,几个被跟踪的人必须都离开空间102。
可以对图28中描绘的方法2800进行修改、添加或省略。方法2800可以包括更多、更少或其它步骤。例如,可以并行或以任何合适的顺序执行步骤。虽然有时讨论为跟踪系统100或其执行步骤的组件,但任何合适的系统或系统的组件都可以执行方法2800的一个或多个步骤。
人重新识别
如上所述,在一些情况下,被跟踪人的身份可能变得未知(例如,当人们变得间距近或“冲突”时,或者当人的候选者列表指示该人的身份未知时,如上面关于图27-28所述),并且可能需要重新识别该人。本公开设想了通过跟踪系统100高效且可靠地重新识别人的独特方法。例如,不是完全依赖资源昂贵的基于机器学习的方法来重新识别人,而是可以使用其中与人的可观察特性相关的“低成本”描述符(例如,高度、颜色、宽度、体积等)首先用于人的重新识别的更高效且专门构造的方法。“高成本”描述符(例如,使用人工神经网络模型确定)仅在低成本方法无法提供可靠结果时才使用。例如,在一些实施例中,可以首先基于人的高度、头发颜色和/或鞋子颜色来重新识别他/她。但是,如果这些描述符不足以可靠地重新识别该人(例如,因为被跟踪的其它人具有相似的特性),那么可以使用在人识别方面可能更有效,但一般而言涉及使用更多处理资源的逐步更高级别的方法(例如,涉及经过训练以识别人的人工神经网络)。
作为示例,每个人的高度最初可以用于重新识别。但是,如果空间102中的另一个人具有相似的高度,那么高度描述符可能不足以重新识别人(例如,因为不可能仅基于高度来区分具有相似高度的人),并且可以使用更高级别的方法(例如,使用纹理算子或人工神经网络来表征人)。在一些实施例中,如果具有相似高度的其它人从未与被重新识别的人进行过交互(例如,如每个人的候选者列表中所记录的——参见上面的图27和对应的描述),那么高度可能仍然是用于重新识别人的合适特征(例如,因为具有相似高度的其它人与被重新识别的人的候选者身份没有关联)。
图29图示了跟踪子系统2900,其被配置为基于从一个或多个传感器108接收到的传感器数据2904跟踪人(例如,和/或其它目标对象)。一般而言,跟踪子系统2900可以包括如上所述的图1的服务器106和(一个或多个)客户端105之一或两者。跟踪子系统2900可以使用下面关于图38描述的设备3800来实现。跟踪子系统2900可以使用由传感器108中的至少一个生成的传感器数据2904(例如,顶视图像)在一段时间内跟踪对象位置2902。对象位置2902可以对应于在单个传感器108处确定的局部像素位置(例如,图22的像素位置2226、2234)和/或与空间102中的物理位置(例如,图22的位置2228)对应的全局位置(例如,使用上面关于图2-7描述的单应性)。在一些情况下,对象位置2902可以对应于在图像中或在空间102中检测到的与对应人的地点相关联的区间(例如,上述图27的区间2704、2708、2712)。可以跟踪人并且可以例如基于在由(一个或多个)传感器108生成的顶视图像中检测到的轮廓的像素坐标来确定对应的位置2902。上面例如关于图24和27描述了基于轮廓的检测和跟踪的示例。但是,一般而言,任何适当的基于传感器的跟踪方法都可以用于确定位置2902。
对于每个对象位置2902,子系统2900维护对应的候选者列表2906(例如,如上面关于图27所描述的)。候选者列表2906通常用于维护被跟踪的每个人的最可能身份(即,与位置2902相关联)的记录。每个候选者列表2906包括与已经进入空间102的人的标识符2908相关联的概率。标识符2908可以是用于识别人(例如,与被跟踪的人相关联的用户名、姓名、账号等)的任何适当的表示(例如,字母数字串等)。在一些实施例中,标识符2908可以是匿名化的(例如,使用散列或任何其它适当的匿名化技术)。
每个标识符2908与一个或多个预定描述符2910相关联。预定描述符2910通常对应于关于被跟踪人的信息,该信息可以用于在必要时(例如,基于候选者列表2906)重新识别人。预定描述符2910可以包括与和标识符2908相关联的人的可观察和/或计算特性相关联的值。例如,描述符2910可以包括高度、头发颜色、衣服颜色等。如下面更详细描述的,预定描述符2910通常在初始时间段期间(例如,当与给定被跟踪位置2902相关联的人进入空间时)由跟踪子系统2900确定并用于在必要时(例如,基于候选者列表2906)重新识别与被跟踪位置2902相关联的人。
当需要(或在跟踪期间周期性地)重新识别位置2902处的给定人时,跟踪子系统2900可以确定与位置2902相关联的人的测量描述符2912。图30图示了基于从传感器108接收到的顶视图深度图像3002来确定描述符2910、2912。在图像3002中可观察到与被跟踪对象位置2902对应的人的表示2904a。跟踪子系统2900可以检测与表示3004a相关联的轮廓3004b。轮廓3004b可以对应于表示3004a的边界(例如,在图像3002中的给定深度处确定)。跟踪子系统2900通常基于表示3004a和/或轮廓3004b确定描述符2910、2912。在一些情况下,表示3004b出现在图像3002的预定义关注区域3006内,以便跟踪子系统2900确定描述符2910、2912。这可以促进更可靠的描述符2910、2912确定,例如,因为当被成像的人位于与该关注区域3006对应的传感器视场的部分中时,描述符2910、2912可能更可再现和/或更可靠。例如,当人在关注区域3006内成像时,描述符2910、2912可能具有更一致的值。
以这种方式确定的描述符2910、2912可以包括例如可观察的描述符3008和计算出的描述符3010。例如,可观察的描述符3008可以对应于可以从图像3002中提取并且与人的可观察特征对应的表示3004a和/或轮廓3004b的特性。可观察描述符3008的示例包括基于表示3004a和/或轮廓3004b的人的高度描述符3012(例如,以像素或长度单位的高度测量)、表示3004a和/或轮廓3004b的形状描述符3014(例如,宽度、长度、纵横比等)、表示3004a和/或轮廓3004b的体积描述符3016、表示3004a的颜色描述符3018(例如,人的头发、衣服、鞋子等的颜色)、与表示3004a和/或轮廓3004b的外观相关联的属性描述符3020(例如,诸如“戴帽子”、“抱着孩子”、“推婴儿车或购物车”之类的属性)等。
与可观察描述符3008相比,计算出的描述符3010通常包括使用表示3004a和/或轮廓3004b计算出的并且不一定对应于人的可观察特性的值(例如,标量或向量值)。例如,计算出的描述符3010可以包括基于图像的描述符3022和基于模型的描述符3024。基于图像的描述符3022可以例如包括从图像3002计算的任何描述符值(即,标量和/或向量值)。例如,诸如局部二进制模式直方图(LBPH)算法之类的纹理算子可以用于计算与表示3004a相关联的向量。该向量可以被存储为预定描述符2910并且在随后的时间被测量为用于重新识别的描述符2912。由于纹理算子(诸如LBPH算法)的输出可能大(即,就存储输出所需的存储器量而言),因此选择对区分人最有用的输出子集可能是有益的。因此,在一些情况下,跟踪子系统2900可以选择初始数据向量的一部分来包括在描述符2910、2912中。例如,主成分分析可以用于选择和保留初始数据向量的对有效人重新识别最有用的部分。
与基于图像的描述符3022相比,基于模型的描述符3024通常使用预定义的模型(诸如人工神经网络)来确定。例如,基于模型的描述符3024可以是由人工神经网络输出的输出(例如,标量值或向量),该人工神经网络被训练以基于人在顶视图像3002中的对应表示3004a和/或轮廓3004b来识别人。例如,可以训练Siamese神经网络以将顶视图像3002中的表示3004a和/或轮廓3004b与对应的标识符2908相关联并且随后用于重新识别2929。
返回到图29,跟踪子系统2900的描述符比较器2914可以用于将测量的描述符2912与对应的预定描述符2910进行比较,以便确定被跟踪的人的正确身份。例如,可以将测量的描述符2912与对应的预定描述符2910进行比较,以便确定位置2902处的人的正确标识符2908。例如,如果测量的描述符2912是高度描述符3012,那么可以将其与标识符2908或使用候选者列表2906确定的标识符2908的子集的预定高度描述符2910进行比较。比较描述符2910、2912可以涉及计算标量描述符值之间的差(例如,高度3012、体积3018等的差)、确定测量的描述符2912的值是否在对应的预定描述符2910的阈值范围内(例如,确定测量的描述符2912的颜色值3018是否在预定描述符2910的颜色值3018的阈值范围内)、确定测量的描述符2912的向量与对应的预定描述符2910的向量之间的余弦相似度值(例如,确定使用纹理算子或神经网络计算出的测量的向量与以相同方式计算出的预定向量之间的余弦相似度值)。在一些实施例中,仅将预定描述符2910的子集与测量的描述符2912进行比较。可以使用候选者列表2906为位置2902处正被重新识别的人选择该子集。例如,人的候选者列表2906可以指示只有大量标识符2908的子集(例如,两个、三个等)可能与需要重新识别的被跟踪对象位置2902相关联。
当描述符比较器2914确定了正确的标识符2908时,比较器2914可以针对在位置2902处被重新识别的人更新候选者列表2906(例如,通过发送更新2916)。在一些情况下,可以针对不需要重新识别的对象(例如,候选者列表2906指示该人对应于单个标识符2908的概率为100%的人)测量描述符2912。在这些情况下,测量的标识符2912可以用于更新和/或维护人的已知标识符2908的预定描述符2910(例如,通过发送更新2918)。例如,如果与位置2902相关联的人在移动通过空间102时外观发生变化(例如,通过添加或脱去一件衣服、通过采取不同的姿态等),那么预定描述符2910可能需要被更新。
图31A图示了在跟踪系统2900的示例操作期间被跟踪人3102、3104、3106在一段时间内的位置。第一人3102具有由图31A中的实线表示的对应轨迹3108。轨迹3108对应于人3102在该时间段期间在空间102中的位置历史。类似地,第二人3104具有由图31A中的点划线表示的对应轨迹3110。轨迹3110对应于人3104在该时间段期间在空间102中的位置历史。第三人3106具有由图31A中的虚线表示的对应轨迹3112。轨迹3112对应于人3112在该时间段期间在空间102中的位置历史。
当人3102、3104、3106中的每个人首次进入空间102时(例如,当他们在区域3114内时),通常为人3102、3104、3106确定预定描述符2910并且将其与人3102、3104、3106的标识符2908相关联。当人3102、3104、3106中的一个或多个的身份不够确定时(例如,基于对应的候选者列表2906和/或响应于“冲突事件”,如下所述),通常访问预定描述符2910,以便重新识别人3102、3104、3106。例如,在人3102、3104、3106中的两个或更多个之间的“冲突事件”之后可能需要重新识别。冲突事件通常对应于图像帧,其中与不同人相关联的轮廓合并以形成单个轮廓(例如,图22中所示的合并轮廓2220的检测可以对应于检测到冲突事件)。在一些实施例中,冲突事件对应于一个人位于另一个人的阈值距离内(例如,参见图27中的距离2718a和2722以及上面的对应描述)。更一般地,冲突事件可以对应于导致人的候选者列表2906指示需要重新识别(例如,基于存储在候选者列表2906中的概率—参见图27-28和上面的对应描述)的任何事件。
在图31A的示例中,当人3102、3104、3106在区间3114内时,跟踪子系统2900可以确定与第一人3102的第一高度相关联的第一高度描述符3012、与第一人3102的形状相关联的第一轮廓描述符3014、与由人工神经网络为第一人3102生成的第一向量对应的第一锚描述符3024,和/或上面关于图30描述的任何其它描述符2910。这些描述符中的每一个被存储以用作用于重新识别第一人3102的预定描述符2910。这些预定描述符2910与第一人3102的第一标识符(即,标识符2908)相关联。当第一人3102的身份确定时(例如,在位置3116处的第一冲突事件之前),可以再次确定上述每个描述符2910以更新预定描述符2910。例如,如果人3102移动到空间102中允许人3102处于期望的关注区域(例如,图30的关注区域3006)内的位置,那么可以确定新的描述符2912。跟踪子系统2900可以使用这些新描述符2912来更新先前确定的描述符2910(例如,参见图29的更新2918)。通过间歇性地更新预定描述符2910,可以考虑被跟踪的人的外观变化(例如,人是否穿上或脱下一件衣服、采取不同的姿态等)。
在与时间t1相关联的第一时间戳,跟踪子系统2900在图31A中所示的位置3116处检测到第一人3102和第三人3106之间的冲突事件。例如,冲突事件可以对应于第一人3102的第一被跟踪位置在第一时间戳处在第三人3106的第二被跟踪位置的阈值距离内。在一些实施例中,冲突事件对应于在第一时间戳处与第一人3102相关联的第一轮廓与和第三人3106相关联的第三轮廓合并。更一般地,冲突事件可以与导致与第一人3102和/或第三人3106相关联的候选者列表的最高值概率下降到阈值以下的任何事件相关联(例如,如上面关于图27的视图2728所描述的)。换句话说,任何导致人3102的身份变得不确定的事件都可以被认为是冲突事件。
在检测到冲突事件之后,跟踪子系统2900从传感器108接收顶视图像(例如,图30的顶视图像3002)。跟踪子系统2900基于顶视图像确定第一人3102的第一描述符。如上所述,第一描述符包括与第一人3104(例如,图30的表示3004a和/或轮廓3004b)的可观察或计算的特性相关联的至少一个值。在一些实施例中,第一描述符可以是需要相对少的处理资源来确定的“较低成本”描述符,如上所述。例如,跟踪子系统2900可以能够比它能够确定更高成本描述符(例如,上面关于图30描述的基于模型的描述符3024)更高效地确定较低成本的描述符。例如,用于确定第一描述符的处理内核的第一数量可以小于用于确定基于模型的描述符3024(例如,使用人工神经网络)的处理内核的第二数量。因此,在可能的情况下,尽可能地使用较低成本描述符重新识别人可能是有益的。
但是,在一些情况下,第一描述符可能不足以重新识别第一人3102。例如,如果第一人3102和第三人3106对应于具有相似高度的人,那么高度描述符3012通常不能用于区分人3102、3106。因此,在使用第一描述符2912重新识别第一人3102之前,跟踪子系统2900可以基于第一描述符2912确定是否满足用于区分第一人3102和第三人3106的某些标准。在一些实施例中,当在与冲突事件相关联的时间间隔期间(例如,在时间t1处或附近的时间)确定的第一人3102的描述符2912和第三人3106的对应描述符2912之间的差小于最小值时,不满足标准。
图31B图示了基于人3102和3106的描述符值随时间的历史对这些标准的评估。图31B中所示的曲线图3150示出了第一人3102随时间的第一描述符值3152和第三人3106随时间的第二描述符值3154。一般而言,描述符值可能由于环境变化、人相对于传感器108的朝向、传感器可变性、外观变化等而随时间波动。描述符值3152、3154可以与形状描述符3014、体积3016、基于轮廓的描述符3022等相关联,如上面关于图30所描述的。在时间t1,描述符值3152、3154具有大于阈值差3160的相对大的差3156,如图31B中所示。因此,在这个示例中,在t1处或附近(例如,在t1之后的几秒或几分钟的短暂时间间隔内),满足标准并且与描述符值3152、3154相关联的描述符2912通常可以用于重新识别第一和第三人3102、3106。
当满足基于第一描述符2912区分第一人3102与第三人3106的标准时(如在t1的情况),描述符比较器2914可以将第一人3102的第一描述符2912与每个对应的预定描述符2910(即,对于所有标识符2908)进行比较。但是,在一些实施例中,比较器2914可以将第一人3102的第一描述符2912与仅标识符2908的选择子集的预定描述符2910进行比较。可以使用正在被重新识别的人的候选者列表2906来选择子集(参见例如下面关于图32描述的方法3200的步骤3208)。例如,人的候选者列表2906可以指示只有大量标识符2908的子集(例如,两个、三个等)可能与需要重新识别的被跟踪对象位置2902相关联。基于该比较,跟踪子系统2900可以识别与第一描述符2912最相似的预定描述符2910。例如,跟踪子系统2900可以通过对于预定描述符2910的集合(或确定的子集)的每个成员计算第一描述符2912的值和预定描述符2910的值的差的绝对值来确定第一标识符2908对应于第一人3102。可以选择第一标识符2908作为与最小绝对值相关联的标识符2908。
再次参考图31A,在时间t2,第二冲突事件在人3102、3106之间在位置3118处发生。回到图31B,描述符值3152、3154在时间t2具有相对小的差3158(例如,与在时间t1的差3156相比),其小于阈值3160。因此,在时间t2,与描述符值3152、3154相关联的描述符2912通常不能用于重新识别第一和第三人3102、3106,并且不满足使用第一描述符2912的标准。替代地,应该使用不同的并且可能“较高成本”的描述符2912(例如,基于模型的描述符3024)重新识别在时间t2的第一和第三人3102、3106。
例如,当不满足基于第一描述符2912区分第一人3102和第三人3106的标准时(如在该示例中在时间t2的情况),跟踪子系统2900确定第一人3102的新描述符2912。新描述符2912通常是由人工神经网络生成的值或向量,该人工神经网络被配置为识别顶视图像中的人(例如,图30的基于模型的描述符3024)。跟踪子系统2900可以基于新描述符2912确定来自预定标识符2908(或如上所述基于候选者列表2906确定的子集)的第一标识符2908对应于第一人3102。例如,跟踪子系统2900可以通过对于预定标识符2908的集合(或子集)的每个成员计算第一标识符2908的值和预定描述符2910的值的差的绝对值来确定第一标识符2908对应于第一人3102。可以选择第一标识符2908作为与最小绝对值相关联的标识符2908。
在第二描述符2912不能用于使用上述方法可靠地重新识别第一人3102的情况下,跟踪子系统2900可以确定第一人3102的所有“候选者标识符”的测量描述符2912。候选者标识符通常是指已知与出现在第一人3102的候选者列表2906中的标识符2908相关联的人(例如,或其它被跟踪对象)的标识符2908(例如,如上面关于图27和28所描述的)。例如,候选者标识符可以是出现在被重新识别的人的候选者列表2906中的被跟踪人(即,在被跟踪对象位置2902处)的标识符2908。图31C图示了如何将第一、第二和第三标识符2908的预定描述符3162、3164、3166与人3102、3104、3106的每个测量的描述符3168、3170、3172进行比较。该比较可以涉及计算与描述符相关联的向量之间的余弦相似度值。基于比较的结果,每个人3102、3104、3106被分配与最佳匹配的预定描述符3162、3164、3166对应的标识符2908。最佳匹配描述符可以与最高余弦相似度值(即,最接近一)对应。
图32图示了用于使用图29中所示和上面描述的跟踪子系统2900重新识别被跟踪人的方法3200。方法3200可以开始于步骤3202,其中跟踪子系统2900从一个或多个传感器108接收顶视图像帧。在步骤3204处,跟踪子系统2900使用由传感器108生成的顶视图像的至少一部分来跟踪空间102中的第一人3102和一个或多个其它人(例如,人3104、3106)。例如,可以如上面关于图24-26所描述的那样执行跟踪,或者使用任何适当的对象跟踪算法来执行跟踪。跟踪子系统2900可以周期性地确定与标识符2908相关联的更新后的预定描述符(例如,如关于图29的更新2918所描述的)。在一些实施例中,跟踪子系统2900响应于确定更新后的描述符,确定更新后的预定描述符中的一个或多个与对应的先前预定的描述符2910相差至少一个阈值量。在这种情况下,跟踪子系统2900可以保存更新后的描述符和对应的先前预定的描述符2910。这可以允许当被跟踪的人的特性可能在跟踪期间间歇性地改变时改进重新识别。
在步骤3206处,跟踪子系统2900确定是否需要重新识别第一被跟踪人3102。这可以基于确定轮廓已在图像帧中合并(例如,如图22的合并轮廓2220所示)或确定第一人3102和第二人3104在彼此的阈值距离(例如,图29的距离2918b)内,如上所述。在一些实施例中,候选者列表2906可以用于确定需要重新识别第一人3102。例如,如果候选者列表2906中与被跟踪人3102相关联的最高概率小于阈值(例如,70%),那么可能需要重新识别(也参见图27-28和上面的对应描述)。如果不需要重新识别,那么跟踪子系统2900通常继续跟踪空间中的人(例如,通过返回到步骤3204)。
如果跟踪子系统2900在步骤3206处确定需要重新识别第一被跟踪人3102,那么跟踪子系统2900可以在步骤3208处确定第一被跟踪人3102的候选者标识符。候选者标识符通常包括与空间102中的被跟踪人相关联的所有标识符2908的子集,并且候选者标识符可以基于第一被跟踪人3102的候选者列表2906来确定。换句话说,候选者标识符是标识符2906的子集,基于第一被跟踪人3102的移动历史和第一被跟踪人3102与空间102中的一个或多个其它被跟踪人3104、3106的交互(例如,基于响应于这些移动和交互而更新的候选者列表2906),其最有可能包括第一被跟踪人3102的正确标识符2908。
在步骤3210处,跟踪子系统2900确定第一被跟踪人3102的第一描述符2912。例如,跟踪子系统2900可以从第一传感器108接收第一人3102的第一顶视图像(例如,诸如图30的图像3002)。例如,如图30的示例中所示,在一些实施例中,用于确定描述符2912的图像3002包括图像3002的全帧内的关注区域3006内的对象的表示3004a。这可以提供更可靠的描述符2912确定。在一些实施例中,图像数据2904包括深度数据(即,不同深度的图像数据)。在这样的实施例中,跟踪子系统2900可以基于深度关注区域来确定描述符2912,其中深度关注区域对应于与人3102的头部相关联的图像中的深度。在这些实施例中,可以确定与人3102的头部的特性或特征相关联的描述符2912。
在步骤3212处,跟踪子系统2900可以通过例如确定是否满足基于第一描述符2912区分第一人3102与候选者的某些标准,确定第一描述符2912是否可以用于区分第一人3102与候选者标识符(例如,人3104、3106中的一个或两者)。在一些实施例中,当在与冲突事件相关联的时间间隔期间确定的第一描述符2912和候选者的对应描述符2910之间的差小于最小值时,不满足标准,如上面关于图31A、B更详细描述的。
如果第一描述符可以用于区分第一人3102与候选者(例如,如图31A、B的示例中的时间t1的情况),那么方法3200进行到步骤3214,此时跟踪子系统2900基于第一描述符2912确定第一人3102的更新后的标识符。例如,跟踪子系统2900可以将第一描述符2912与在步骤3208与为第一人3102确定的候选者对象相关联的预定描述符集合2910进行比较(例如,使用比较器2914)。在一些实施例中,第一描述符2912是与图像中第一人的特性相关联的数据向量(例如,使用诸如LBPH算法的纹理算子确定的向量),并且每个预定描述符2910包括对应的预定数据向量(例如,在进入空间102时为每个被跟踪人3102、3104、3106确定的)。在这样的实施例中,跟踪子系统2900通过计算第一数据向量和每个预定数据向量之间的余弦相似度值来将第一描述符2912和与候选者对象相关联的每个预定描述符2910进行比较。跟踪子系统2900将更新后的标识符确定为具有最接近一的余弦相似度值的候选者对象的标识符2908(即,与第一描述符2912的向量最“相似”的向量)。
在步骤3216处,可以通过更新其它人的候选者列表2906来适当地更新其它被跟踪人3104、3106的标识符2908。例如,如果发现第一被跟踪人3102与先前与第二被跟踪人3104相关联的标识符2908相关联。那么可以为第二人3104重复步骤3208至3214以确定第二人3104的正确标识符2908。在一些实施例中,当第一人3102的标识符2908被更新时,与第一人的候选者列表2906相关联的人(例如,人3104和3106之一或两者)的标识符2908也在步骤3216被更新。作为示例,第一人3102的候选者列表2906可以具有第一人3102与最初链接到第二人3104的第二标识符2908相关联的非零概率和第一人3102与最初链接到第三人3106的第三标识符2908相关联的第三概率。在这种情况下,在第一人3102的标识符2908被更新之后,第二人和第三人3104、3106的标识符2908也可以根据步骤3208-3214被更新。
如果在步骤3212处,第一描述符2912不能用于区分第一人3102和候选者(例如,如图31A、B的示例中的时间t2的情况),那么方法3200进行到步骤3218以确定第一人3102的第二描述符2912。如上所述,第二描述符2912可以是“较高级别”描述符,诸如图30的基于模型的描述符3024)。例如,与第一描述符2912相比,第二描述符2912的确定效率可能较低(例如,在所需的处理资源方面)。但是,在一些情况下,对于区分被跟踪的人,第二描述符2912可能更有效和更可靠。
在步骤3220处,跟踪系统2900使用与上面关于步骤3212描述的方法相同或相似的方法来确定第二描述符2912是否可以用于区分第一人3102和候选者(从步骤3218)。例如,跟踪子系统2900可以确定第二描述符2912和预定描述符2910之间的余弦相似度值是否大于阈值余弦相似度值(例如,0.5)。如果余弦相似度值大于阈值,那么通常可以使用第二描述符2912。
如果第二描述符2912可以用于区分第一人3102和候选者,那么跟踪子系统2900进行到步骤3222,并且跟踪子系统2900基于第二描述符2912确定第一人3102的标识符2908并相应地更新第一人3102的候选者列表2906。第一人3102的标识符2908可以如上面关于步骤3214所述确定(例如,通过计算与第一描述符2912对应的向量和先前确定的与预定描述符2910相关联的向量之间的余弦相似度值)。跟踪子系统2900然后进行到上述步骤3216以适当地更新其它被跟踪人3104、3106的标识符2908(即,经由候选者列表2906)。
否则,如果第二描述符2912不能用于区分第一人3102和候选者,那么跟踪子系统2900进行到步骤3224,并且跟踪子系统2900为所有第一人3102和所有候选者确定描述符2912。换句话说,为与出现在第一人3102的候选者列表2906中的标识符2908相关联的所有人确定测量的描述符2912(例如,如上面关于图31C所描述的)。在步骤3226处,跟踪子系统2900将第二描述符2912和与第一人3102的候选者列表2906相关的所有人相关联的预定描述符2910进行比较。例如,跟踪子系统2900可以确定使用人工神经网络确定的第二数据向量与来自候选者的预定描述符值2910的每个对应向量之间的第二余弦相似度值(例如,如上述图31C中所示)。跟踪子系统2900然后进行到步骤3228以在继续跟踪空间102中的人3102、3104、3106(例如,通过返回到步骤3204)之前基于步骤3226的比较来确定和更新所有候选者的标识符2908。
可以对图32中描绘的方法3200进行修改、添加或省略。方法3200可以包括更多、更少或其它步骤。例如,可以并行或以任何合适的顺序执行步骤。虽然有时讨论为跟踪系统2900(例如,由服务器106和/或(一个或多个)客户端105)或其执行步骤的组件,但是任何合适的系统或系统的组件都可以执行方法3200的一个或多个步骤。
用于将物品分配给正确的人的动作检测
如上面关于图12-15所述,当在支架112处检测到重量事件时,与激活的重量传感器110相关联的物品可以被分配给离支架112最近的人。但是,在一些情况下,两个或更多的人可能在支架112附近并且可能不清楚谁拾取了物品。因此,可能需要进一步的动作来正确地将物品分配给正确的人。
在一些实施例中,可以采用级联算法(例如,从基于相对直接确定的图像特征的更简单的方法到涉及人工神经网络的更复杂的策略)来将物品分配给正确的人。级联可以例如通过以下各项被触发:(i)两个或更多个人靠近支架112,(ii)手进入到与支架相邻的区(或“虚拟幕布”)中(例如,参见图33B的区3324和下面的对应描述),和/或(iii)重量信号指示物品已从支架112移走。当最初不确定谁拾取了物品时,可以使用独特的基于轮廓的方法将物品分配给正确的人。例如,如果两个人可能正伸手到支架112中拾取物品,那么可以将轮廓从头部高度“扩大”到较低的高度,以便确定哪个人的手臂伸入到支架112中拾取物品。但是,如果这种高效的基于轮廓的方法的结果不满足某些置信标准,那么可以使用更计算密集的方法(例如,涉及基于神经网络的姿态估计)。在一些实施例中,跟踪系统100在检测到一个以上的人可能已经拾取物品时,可以存储一组最有可能包含用于将物品有效地分配给正确的人的有用信息的缓冲帧。例如,所存储的缓冲帧可以对应于当人的一部分进入与支架112相邻的区(例如,上述图33B的区3324)和/或当人离开该区时的短暂时间间隔。
但是,在一些情况下,即使使用更高级的基于人工神经网络的姿态估计技术,仍可能难以或不可能将物品分配给人。在这些情况下,跟踪系统100可以存储更多的缓冲帧,以便在物品离开支架112之后在空间102中跟踪物品。当物品到达停止位置时(例如,具有足够低的速度),跟踪系统100确定哪个人更接近停止的物品,并且通常将物品分配给最近的人。可以重复这个处理,直到物品被自信地分配给正确的人。
图33A图示了示例场景,其中第一人3302和第二人3304靠近存储物品3306a-c的支架112。每个物品3306a-c存储在对应的重量传感器110a-c上。通信地耦合到跟踪子系统3300(即,耦合到服务器106和/或(一个或多个)客户端105)的传感器108为包括支架112和人3302、3304的视场3310生成顶视图深度图像3308。顶视图深度图像3308分别包括支架112的表示112a以及第一和第二人3302、3304的表示3302a、3304a。支架112(例如,或其表示112a)可以被划分成三个区3312a-c,它们分别对应于重量传感器110a-c和相关联物品3306a-c的地点。
在该示例场景中,人3302、3304中的一个从重量传感器110c上拾取物品3306c,并且跟踪子系统3300接收指示物品3306c已经从支架112移走的触发信号3314。跟踪子系统3300包括上面关于图1描述的(一个或多个)客户端105和服务器106。触发信号3314可以指示由物品3306c从传感器110c上移走引起的重量变化。在接收到信号3314之后,服务器106访问顶视图像3308,其可以对应于在接收到触发信号3314时、刚好之前和/或刚好之后的时间。在一些实施例中,触发信号3314还可以或替代地与跟踪系统100相关联,该跟踪系统100检测人3302、3304进入与支架相邻的区(例如,如关于上面图12-15的“虚拟幕布”和/或下面更详细描述的区3324所描述的)以确定物品3306c应该分配给哪个人3302、3304。由于表示3302a和3304a指示两个人3302、3304都在支架112附近,因此需要进一步分析以将物品3306c分配给正确的人3302、3304。最初,跟踪系统100可以确定人3302或3304的手臂是否可以伸向到区3312c以拾取物品3306c。但是,如图像3308中的区间3316和3318所示,两个表示3302a、3304a的一部分看起来可能正伸向区3312c中的物品3306c。因此,需要进一步分析来确定是第一人3302还是第二人3304拾取了物品3306c。
在最初无法自信地将物品3306c分配给正确的人3302、3304之后,跟踪系统100可以使用轮廓扩大方法来确定人3302或3304是否拾取了物品3306c。图33B图示了将物品3306c分配给正确的人3302或3304的轮廓扩大方法的实现。一般而言,轮廓扩大涉及与第一人3302相关联的第一轮廓和与第二人3304相关联的第二轮廓从第一较小深度到第二较大深度的迭代扩大。跨界进入与支架112相邻的区3324的扩大轮廓可以首先对应于拾取物品3306c的人3302、3304。扩大的轮廓可能需要满足某些标准来确保应该使用轮廓扩大方法的结果用于物品分配。例如,标准可以包括这样的要求:进入与支架112相邻的区3324的轮廓的一部分在最大迭代扩大数量内与第一人3302或第二人3304相关联,如关于在图33B中所示的轮廓检测视图3320、3326、3328和3332更详细描述的。如果不满足这些标准,那么应该使用另一种方法来确定哪个人3302或3304拾取了物品3306c。
图33B示出了视图3320,其包括在顶视图像3308中的第一深度处检测到的轮廓3302b。如图33B中所示,第一深度可以对应于预计在空间102中被跟踪的典型人3322的近似头部高度。轮廓3302b不进入或接触区3324,该区3324对应于与支架112的前部相邻的空间的地点(例如,如上面关于图12-15的“虚拟帘”所描述的)。因此,跟踪系统100进行到图像3308中的第二深度并检测视图3326中所示的轮廓3302c和3304b。第二深度大于第一景深3320。由于轮廓3302c或3304b都没有进入区3324,因此跟踪系统100进行到图像3308中的第三深度并检测轮廓3302d和3304c,如视图3328中所示。第三深度大于第二深度,如图33B中关于人3322所示。
在视图3328中,轮廓3302d看起来进入或触摸区3324的边缘。因此,跟踪系统100可以确定与轮廓3302d相关联的第一人3302应该被分配物品3306c。在一些实施例中,在最初将物品3306c分配给人3302之后,跟踪系统100可以投影“臂段”3330以确定臂段3330是否进入与物品3306c相关联的适当区3312c。臂段3330通常对应于人的伸展臂在被支架112遮挡而不可见的空间中的预期位置。如果投影臂段3330的地点不对应于物品3306c的预期地点(例如,区3312c内的地点),那么物品不分配给第一人3302(或从第一人解除分配)。
在进一步增加的第四深度处的另一个视图3332示出了轮廓3302e和轮廓3304d。这些轮廓3302e和3304d中的每一个看起来都进入或触摸区3324的边缘。但是,由于与第一人3302相关联的扩大轮廓(反映在轮廓3302b-e中)在比与第二人3304相关联的扩大轮廓(反映在轮廓3304b-d中)更少的迭代内(或在更小的深度)进入或触摸区3324,因此物品3306c通常被分配给第一人3302。一般而言,为了使用轮廓扩大将物品3306c分配给人3302、3304之一,轮廓可能需要在最大扩大数量内(例如,或在达到最大深度之前)进入区3324。例如,如果物品3306c未被第四深度分配,那么跟踪系统100可能已经结束轮廓扩大方法并移动到分配物品3306c的另一种方法,如下所述。
在一些实施例中,图33B中所示的轮廓扩大方法未能正确地将物品3306c分配给正确的人3302、3304。例如,可能不满足上述标准(例如,可能超过最大深度或迭代次数)或者与不同人3302或3304相关联的扩大轮廓可能合并,从而使得轮廓扩大的结果不可用。在这种情况下,跟踪系统100可以采用另一种策略来确定哪个人3302、3304c拾取了物品3306c。例如,跟踪系统100可以使用姿态估计算法来确定每个人3302、3304的姿态。
图33C图示了姿态估计算法的示例输出,其包括第一人3302的第一“骨架”3302f和第二人3304的第二“骨架”3304e。在这个示例中,第一骨架3302f可以被分配“伸出姿态(reaching pose)”,因为骨架的手臂看起来正向外伸出。这种伸出姿态可以指示人3302正在伸手去拾取物品3306c。作为对照,第二骨架3304e没有看起来伸手去拾取物品3306c。由于只有第一骨架3302f看起来正在伸手去拿物品3306c,因此跟踪系统100可以将物品3306c分配给第一人3302。如果姿态估计的结果是不确定(例如,如果骨架3302f、3304e中两者看起来都伸手去拿物品3306c或者都没有伸手去拿物品3306c),那么跟踪系统100可以实现不同的物品分配方法(例如,通过在空间102中跟踪物品3306c,如下面关于图36-37所描述的)。
图34图示了用于使用跟踪系统100将物品3306c分配给人3302或3304的方法3400。方法3400可以开始于步骤3402,其中跟踪系统100接收包括由传感器108生成的顶视图像的帧和来自重量传感器110a-c的重量测量值的图像馈送。
在步骤3404处,跟踪系统100检测与拾取物品33106c相关联的事件。一般而言,事件可以基于人3302、3304的一部分进入与支架112相邻的区(例如,图33B的区3324)和/或与物品33106c从对应的重量传感器110c上被移走相关联的重量变化。
在步骤3406处,响应于在步骤3404处检测到事件,跟踪系统100确定是否不止一个人3302、3304可能与检测到的事件相关联(例如,如在上述图33A中所示的示例场景中)。例如,该确定可以基于人与支架112之间的距离、人之间的人间距离、人与支架112之间的相对朝向(例如,不面对支架112的人3302、3304可能不是拾取物品33106c的候选者)。如果只有一个人3302、3304可以与事件相关联,那么该人3302、3304在步骤3408处与物品3306c相关联。例如,物品3306c可以分配给最近的人3302、3304,如上面关于图12-14所描述的。
在步骤3410处,物品3306c被分配给被确定为与在步骤3404处检测到的事件相关联的人3302、3304。例如,可以将物品3306c添加到与人3302、3304相关联的数字购物车。一般而言,如果动作(即,拾取物品3306c)被确定为已由第一人3302执行,那么动作(和相关联的物品3306c)被分配给第一人3302,并且,如果动作被确定为已由第二人3304执行,那么动作(和相关联的物品3306c)被分配给第二人3304。
否则,如果在步骤3406处,多于一个人3302、3304可能与检测到的事件相关联,那么可以在步骤3412处存储由传感器108生成的顶视图像的一组选定缓冲帧。在一些实施例中,所存储的缓冲帧可以仅包括顶视图像的在触发事件之后的三个或更少帧。触发事件可以与人3302、3304进入与支架112相邻的区(例如,图33B的区3324)、人3302、3304的部分离开与支架112相邻的区(例如,图33B的区3324),和/或由重量传感器110a-c确定的重量变化相关联。在一些实施例中,缓冲帧可以包括从重量传感器110报告重量变化的时间直到人3302、3304离开与支架112相邻的区(例如,图33B的区3324)的图像帧。缓冲器帧通常包括可从传感器108获得的所有可能帧的子集。由此,通过仅存储并随后分析这些存储的缓冲帧(或存储的缓冲帧的一部分),跟踪系统100可以比使用先前的技术更高效地(例如,在存储器和处理资源的使用方面)将动作(例如,以及相关联的物品106a-c)分配给正确的人3302,3304。
在步骤3414处,可以访问图像中的关注区域。例如,在存储缓冲帧之后,跟踪系统100可以确定要保留的顶视图像的关注区域。例如,跟踪系统100可以仅存储每个视图的中心附近的区间(例如,图30中所示和上面描述的区间3006)。
在步骤3416处,跟踪系统100使用在步骤3412处存储的缓冲帧中的至少一个和第一动作检测算法来确定与检测到的事件相关联的动作是由第一人3302还是由第二人3304执行的。第一动作检测算法通常被配置为基于所存储的缓冲帧中的一个或多个轮廓的特性来检测动作。作为示例,第一动作检测算法可以是上面关于图33B描述的轮廓扩大算法。基于轮廓的动作检测方法的示例实现也在下文关于图35中所示的方法3500更详细地描述。在一些实施例中,跟踪系统100可以确定要与第一动作检测算法一起使用的缓冲帧的子集。例如,该子集可以对应于人3302、3304何时进入与支架112相邻的区(例如,图33B中所示的区3324)。
在步骤3418处,跟踪系统100确定第一动作检测算法的结果是否满足指示第一算法适合于确定哪个人3302、3304与事件(即,在本示例中为拾取物品3306c)相关联的标准。例如,对于上面关于图33B和下面关于图35描述的轮廓扩大方法,标准可以是在阈值数量的扩大内(例如,在达到最大深度之前)识别与事件相关联的人3302、3304的要求。在步骤3416处是否满足标准可以至少部分地基于实现第一动作检测算法所需的迭代次数。如果在步骤3418处满足标准,那么跟踪系统100进行到步骤3410并将物品3306c分配给与在步骤3416处确定的事件相关联的人3302、3304。
但是,如果在步骤3418处不满足标准,那么跟踪系统100进行到步骤3420并使用不同的动作检测算法来确定与在步骤3404处检测到的事件相关联的动作是由第一人3302还是由第二人3304执行的。这可以通过将第二动作检测算法应用于在步骤3412处选择的至少一个缓冲帧来执行。第二动作检测算法可以被配置为使用人工神经网络来检测动作。例如,第二算法可以是用于确定第一人3302或第二人3304的姿态是否对应于动作的姿态估计算法(例如,如上面关于图33C所描述的)。在一些实施例中,跟踪系统100可以确定要与第二动作检测算法一起使用的缓冲帧的第二子集。例如,该子集可以对应于重量传感器110报告重量变化的时间。每个人3302、3304在重量变化时的姿态可以提供对哪个人3302、3304拾取物品3306c的良好指示。
在步骤3422处,跟踪系统100可以确定第二算法是否满足指示第二算法适合确定哪个人3302、3304与事件(即,与拾取物品3306c)相关联的标准。例如,如果每个人3302、3304的姿态(例如,从上述图33C的骨架3302f和3304e确定)仍然表明人3302和人3304中的任一个可能已经拾取物品3306c,那么标准不能被满足,并且跟踪系统100进行到步骤3424以使用另一种方法来分配对象(例如,通过跟踪物品3306a-c通过空间102的移动,如下面关于图36和37更详细描述的)。
可以对图34中描绘的方法3400进行修改、添加或省略。方法3400可以包括更多、更少或其它步骤。例如,可以并行或以任何合适的顺序执行步骤。虽然有时讨论为跟踪系统100或其执行步骤的组件,但任何合适的系统或系统的组件都可以执行方法3400的一个或多个步骤。
如上所述,步骤3416的第一动作检测算法可以涉及迭代轮廓扩大以确定哪个人3302、3304正伸手从支架112拾取物品3306a-c。图35图示了基于轮廓扩大的物品分配的示例方法3500。方法3500可以从上述图34的步骤3416开始,并且进行到步骤3502。在步骤3502处,跟踪系统100确定是否在第一深度(例如,上述图33B的第一深度)检测到轮廓。例如,在图33B中所示的示例中,在第一深度检测到轮廓3302b。如果未检测到轮廓,那么跟踪系统100进行到步骤3504以确定是否已经达到最大深度(例如,图33B的第四深度)。如果尚未达到最大深度,那么跟踪系统100在步骤3506迭代(即,移动)到图像中的下一个深度。否则,如果已达到最大深度,那么方法3500结束。
如果在步骤3502处检测到轮廓,那么跟踪系统进行到步骤3508并确定检测到的轮廓的一部分是否重叠、进入或以其它方式接触与支架112相邻的区(例如,图33B中所示的区3324)。在一些实施例中,跟踪系统100确定轮廓的投影臂段(例如,图33B的臂段3330)是否延伸到支架112的适当区3312a-c中。如果轮廓的任何部分都没有延伸到与支架112相邻的区中,那么跟踪系统100在步骤3504处确定是否已经达到最大深度。如果尚未达到最大深度,那么跟踪系统100迭代到下一个更大的深度并返回到步骤3502。
在步骤3510处,跟踪系统100确定在步骤3508处确定轮廓已经进入与支架112相邻的区之前的迭代次数(即,执行步骤3506的次数)。在步骤3512处,将该迭代次数与第二(即,不同)检测到的轮廓的迭代次数进行比较。例如,可以重复步骤3502到35010以确定第二轮廓进入与支架112相邻的区的迭代次数(在步骤3506)。如果迭代次数小于第二轮廓的次数,那么在步骤3514处将该物品分配给第一人3302。否则,可以在步骤3516处将该物品分配给第二人3304。例如,如上面关于图33B所述,第一扩大轮廓3302b-e在比第二扩大轮廓3304b更少的迭代内进入与支架112相邻的区3324。在这个示例中,该物品被分配给与第一轮廓3302b-d相关联的人3302。
在一些实施例中,扩大的轮廓(即,经由两次或更多次通过步骤3506生成的轮廓)必须满足某些标准,以便将其用于分配物品。例如,轮廓可能需要在最大扩大次数内(例如,或在达到最大深度之前)进入与支架相邻的区,如上所述。作为另一个示例,扩大的轮廓可能需要包括少于阈值数量的像素。如果轮廓太大,它可能是与两个间隔近的人相关联的“合并轮廓”(参见图22和上面的对应描述)。
可以对图35中描绘的方法3500进行修改、添加或省略。方法3500可以包括更多、更少或其它步骤。例如,可以并行或以任何合适的顺序执行步骤。虽然有时讨论为跟踪系统100或其执行步骤的组件,但是任何合适的系统或系统的组件都可以执行方法3500的一个或多个步骤。
基于物品跟踪的物品分配
如上所述,在一些情况下,即使使用更高级别的算法,诸如上面关于图33C和34描述的基于人工神经网络的姿态估计,物品3306a-c也不能分配给正确的人。在这些情况下,可以跟踪物品3306c在其离开支架112之后的位置,以便将物品3306c分配给正确的人3302、3304。在一些实施例中,跟踪系统100通过在物品3306c离开支架112之后跟踪物品3306c、识别物品停止移动的位置以及确定哪个人3302、3304最接近停止的物品3306c来做到这一点。物品3306c通常被分配给最近的人3302、3304。
图36A、B图示了这种基于物品跟踪的物品分配方法。图36A示出了由传感器108生成的顶视图像3602。图36B示出了物品的速度3622随时间的曲线图3620。如图36A中所示,图像3602包括保持物品3606的人3604的表示,该物品3606刚刚离开与支架112相邻的区3608。由于第二人3610的表示也可能与拾取物品3606相关联,因此需要基于物品的跟踪以将物品3606正确分配给正确的人3604、3610(例如,如上面关于图33-35的人3302、3304和物品3306c所述)。跟踪系统100可以(i)在物品3606离开支架112之后随时间跟踪物品3606的位置,如跟踪视图3610和3616中所示,以及(ii)确定物品3606的速度,如图36B中曲线图3620的曲线3622所示。图36B中所示的速度3622在对应于第一停止时间(tstopped,1)和第二停止时间(tstopped,2)的拐点处为零。更一般地,物品3606停止时的时间可以对应于速度3622小于阈值速度3624时的时间。
图36A的跟踪视图3612示出了在第一停止时间第一人3604的位置3604a、物品3606的位置3606a和第二人3610的位置3610a。在第一停止时间(tstopped,1),位置3604a、3610a都在物品3606的位置3606a附近。因此,跟踪系统100可能无法自信地将物品3606分配给正确的人3604或3610。因此,跟踪系统100继续跟踪物品3606。跟踪视图3614示出了在第二停止时间(tstopped,2)第一人3604的位置3604a、物品3606的位置3606a和第二人3610的位置3610a。因为只有第一人3604的位置3604a靠近物品3606的位置3606a,因此物品3606被分配给第一人3604。
更具体而言,跟踪系统100可以在每个停止时间确定停止的物品3606与第一人3604之间的第一距离3626以及停止的物品3606与第二人3610之间的第二距离3628。使用这些距离3626、3628,跟踪系统100确定物品3606在第一帧中的停止位置是更接近第一人3604还是更接近第二人3610以及距离3626、3628是否小于阈值距离3630。在视图3612的第一停止时间,距离3626、3628都小于阈值距离3630。因此,跟踪系统100不能可靠地确定应该为哪个人3604、3610分配物品3606。作为对照,在视图3614的第二停止时间,只有第一距离3626小于阈值距离3630。因此,跟踪系统可以在第二停止时间将物品3606分配给第一人3604。
图37图示了基于使用跟踪系统100的物品跟踪将物品3606分配给人3604或3610的示例方法3700。方法3700可以开始于图34中所示和上面描述的方法3400的步骤3424,并进行到步骤3702。在步骤3702处,跟踪系统100可以确定需要物品跟踪(例如,因为上面关于图33-35描述的基于动作检测的方法不成功)。在步骤3504处,跟踪系统100存储和/或访问由传感器108生成的顶视图像的缓冲帧。缓冲帧通常包括来自人3604或3610的一部分离开与支架11236相邻的区3608之后的时间段的帧。
在步骤3706处,跟踪系统100在存储的帧中跟踪物品3606的位置。该位置可以是与传感器108相关联的局部像素位置(例如,由客户端105确定)或空间102中的全局物理位置(例如,由服务器106使用适当的单应性确定)。在一些实施例中,物品3606可以包括视觉上可观察的标签,该标签可以由传感器108观察并且由跟踪系统100使用该标签进行检测和跟踪。在一些实施例中,物品3606可以由跟踪系统100使用机器学习算法来检测。为了促进在广泛的条件下(例如,相对于传感器108的不同朝向、不同的照明条件等)检测许多物品类型,可以使用合成数据(例如,可以用于训练算法的人工图像数据)训练机器学习算法。
在步骤3708处,跟踪系统100确定物品3606的速度3622是否小于阈值速度3624。例如,可以基于物品3606的被跟踪位置来计算速度3622。例如,帧之间移动的距离可以用于计算物品3606的速度3622。粒子过滤器跟踪器(例如,如上面关于图24-26所描述的)可以用于基于物品的估计未来位置来计算物品速度3622。如果物品速度3622低于阈值3624,那么跟踪系统100识别其中物品3606的速度3622小于阈值速度3624的帧并且进行到步骤3710。否则,跟踪系统100在步骤3706处继续跟踪物品3606。
在步骤3710处,跟踪系统100在识别出的帧中确定停止的物品3606与第一人3604之间的第一距离3626以及停止的物品3606与第二人3610之间的第二距离3628。使用这些距离3626、3628,跟踪系统100在步骤3712处确定物品3606在第一帧中的停止位置是更接近第一人3604还是更接近第二人3610,以及距离3626、3628是否小于阈值距离3630。一般而言,为了将物品3606分配给第一人3604,物品3606应该在距第一人3604的阈值距离3630内,指示该人可能持有物品3606,并且与第二人3610相比更靠近第一人3604。例如,在步骤3712处,跟踪系统100可以确定停止位置与第一人3604相距第一距离3626并且与第二人3610相距第二距离3628。跟踪系统100可以确定第一距离3626和第二距离3628之间的差的绝对值,并且可以将该绝对值与阈值距离3630进行比较。如果绝对值小于阈值距离3630,那么跟踪系统返回到步骤3706并继续跟踪物品3606。否则,跟踪系统100大于阈值距离3630并且物品3606足够接近第一人3604,跟踪系统进行到步骤3714并将物品3606分配给第一人3604。
可以对图37中描绘的方法3700进行修改、添加或省略。方法3700可以包括更多、更少或其它步骤。例如,可以并行或以任何合适的顺序执行步骤。虽然有时讨论为跟踪系统100或其执行步骤的组件,但任何合适的系统或系统的组件都可以执行方法3700的一个或多个步骤。
硬件配置
图38是被配置为跟踪空间102内的对象和人的设备3800(例如,服务器106或客户端105)的实施例。设备3800包括处理器3802、存储器3804和网络接口3806。设备3800可以如图所示配置或以任何其它合适的配置进行配置。
处理器3802包括可操作地耦合到存储器3804的一个或多个处理器。处理器3802是任何电子电路系统,包括但不限于状态机、一个或多个中央处理单元(CPU)芯片、逻辑单元、内核(例如,多核处理器)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或数字信号处理器(DSP)。处理器3802可以是可编程逻辑器件、微控制器、微处理器或前述的任何合适的组合。处理器3802通信地耦合到存储器3804并且与存储器3804进行信号通信。一个或多个处理器被配置为处理数据并且可以用硬件或软件实现。例如,处理器3802可以是8位、16位、32位、64位或任何其它合适的体系架构。处理器3802可以包括用于执行算术和逻辑运算的算术逻辑单元(ALU)、向ALU供应操作数并存储ALU操作的结果的处理器寄存器,以及从存储器获取指令并通过引导ALU、寄存器和其它组件的协调操作来执行指令的控制单元。
一个或多个处理器被配置为实现各种指令。例如,一个或多个处理器被配置为执行指令以实现跟踪引擎3808。以这种方式,处理器3802可以是被设计为实现本文公开的功能的专用计算机。在实施例中,跟踪引擎3808使用逻辑单元、FPGA、ASIC、DSP或任何其它合适的硬件来实现。跟踪引擎3808被配置为如图1-18中所描述的那样操作。例如,跟踪引擎3808可以被配置为执行分别如图2、6、8、10、12、15、16和17中描述的方法200、600、800、1000、1200、1500、1600和1700的步骤。
存储器3804包括一个或多个盘、带驱动器或固态驱动器,并且可以用作溢出数据存储设备,以在选择执行程序时存储这些程序,以及存储在程序执行期间读取的指令和数据。存储器3804可以是易失性或非易失性的,并且可以包括只读存储器(ROM)、随机存取存储器(RAM)、三元内容可寻址存储器(TCAM)、动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。
存储器3804可操作以存储跟踪指令3810、单应性118、标记网格信息716、标记字典718、像素地点信息908、相邻列表1114、跟踪列表1112、数字购物车1410、物品地图1308和/或任何其它数据或指令。跟踪指令3810可以包括可操作以执行跟踪引擎3808的任何合适的指令、逻辑、规则或代码集。
单应性118被配置为如图2-5B中所述。标记网格信息716被配置为如图6-7中所述。标记字典718被配置为如图6-7中所述。像素地点信息908被配置为如图8-9中所述。相邻列表1114被配置为如图10-11中所述。跟踪列表1112被配置为如图10-11中所述。数字购物车1410被配置为如图12-18中所述。物品地图1308配置为如图12-18中所述。
网络接口3806被配置为启用有线和/或无线通信。网络接口3806被配置为在设备3800与其它系统或域之间传送数据。例如,网络接口3806可以包括WIFI接口、LAN接口、WAN接口、调制解调器、交换机或路由器。处理器3802被配置为使用网络接口3806发送和接收数据。网络接口3806可以被配置为使用本领域普通技术人员将理解的任何合适类型的通信协议。
虽然在本公开中提供了几个实施例,但应该理解的是,在不脱离本公开的精神或范围的情况下,所公开的系统和方法可以以许多其它特定形式实施。本示例应被认为是说明性的而非限制性的,并且其意图不限于本文给出的细节。例如,可以将各种元件或组件组合或集成在另一个系统中,或者可以省略或不实现某些特征。
此外,在不脱离本公开的范围的情况下,在各种实施例中描述和图示为离散或分离的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。显示或讨论为彼此耦合或直接耦合或通信的其它物品可以通过一些接口、设备或中间组件间接耦合或通信,无论是以电的、机械的还是其它方式。改变、替换和变更的其它示例是本领域技术人员可确定的并且可以在不脱离本文公开的精神和范围的情况下进行。
为了帮助专利局和本申请发布的任何专利的任何读者解释所附权利要求,申请人指出,他们不打算因为其在提交之日存在而对任何所附权利要求援引35U.S.C.§112(f),除非在特定权利要求中明确使用“用于…的部件”或“用于…的步骤”的用语。
条款
1、一种对象跟踪系统,包括:
第一传感器,被配置为捕获空间的至少第一部分的全局平面的第一帧,其中:
全局平面表示空间的至少一部分的(x,y)坐标;
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
第二传感器,被配置为捕获空间的至少第二部分的第二帧,其中空间的所述第二部分与空间的所述第一部分至少部分重叠以限定重叠区间;以及
跟踪系统,可操作地耦合到第一传感器和第二传感器,所述跟踪系统包括:
一个或多个存储器,可操作以存储:
与第一传感器相关联的第一单应性,其中第一单应性被配置为在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换;
与第二传感器相关联的第二单应性,其中第二单应性被配置为在第二帧中的像素地点和全局平面中的(x,y)坐标之间转换;
与第一传感器相关联的第一跟踪列表,其中第一跟踪列表识别:
被第一传感器跟踪的对象的对象标识符;以及
与第一帧中对象的地点对应的像素地点信息;以及
与第二传感器相关联的第二跟踪列表;以及
一个或多个处理器,可操作地耦合到所述一个或多个存储器,所述处理器被配置为:
接收第一帧;
识别第一帧内的对象;
确定对象在第一帧中的第一像素地点,其中第一像素地点包括第一帧的第一像素行和第一像素列;
基于第一像素地点确定对象在与第二传感器的重叠区间内;
将第一单应性应用于第一像素地点以确定识别对象所位于的全局平面中的x值和y值的第一(x,y)坐标;
从第一跟踪列表中识别对象的对象标识符;
将对象的对象标识符存储在第二跟踪列表中;
将第二单应性应用于第一(x,y)坐标以确定对象在第二帧中的第二像素地点,其中第二像素地点包括第二帧的第二像素行和第二像素列;
将第二像素地点与对象的对象标识符一起存储在第二跟踪列表中。
2、如条款1所述的系统,其中:
第一跟踪列表中的像素地点信息识别对象的先前像素地点;以及
所述一个或多个处理器还被配置为:
基于对象的先前像素地点确定对象的行进方向;以及
将对象的行进方向与对象的对象标识符一起存储在第二跟踪列表中。
3、如条款1所述的系统,其中:
第一帧中的每个像素与像素值相关联;以及
第一单应性还被配置为在第一帧中的像素值和z坐标之间转换。
4、如条款1所述的系统,其中:
所述一个或多个存储器还可操作以存储识别第一帧中与第一帧和第二帧之间的重叠区间对应的第一像素范围的相邻列表;以及
确定人在重叠区间内包括确定人的像素地点在第一帧中的第一像素范围内。
5、如条款1所述的系统,还包括第三传感器,被配置为捕获空间的至少第三部分的第三帧,其中空间的第三部分与空间的第一部分至少部分地重叠以限定第二重叠区间;以及
其中所述一个或多个存储器还可操作以存储相邻列表,该相邻列表:
识别第一帧中与第一帧和第二帧之间的重叠区间对应的第一像素范围;以及
识别第一帧中与第一帧和第三帧之间的第二重叠区间对应的第二像素范围。
6、如条款1所述的系统,其中:
第一传感器和第二传感器是被配置为传感器阵列的多个传感器的成员;以及
传感器阵列被定位成与全局平面平行。
7、如条款1所述的系统,其中所述一个或多个处理器还被配置为:
从第一传感器接收第三帧;
确定对象不存在于第三帧中;以及
响应于确定对象不存在于第三帧中,从第一跟踪列表中丢弃与对象相关联的信息。
8、一种对象跟踪方法,包括:
从第一传感器接收空间的至少第一部分的全局平面的第一帧,其中:
全局平面表示空间的所述至少一部分的(x,y)坐标;
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
识别第一帧内的对象;
确定对象在第一帧中的第一像素地点,其中第一像素地点包括第一帧的第一像素行和第一像素列;
基于第一像素地点确定对象在与第二传感器的重叠区间内,其中第二传感器被配置为捕获空间的至少第二部分的第二帧;
将第一单应性应用于第一像素地点以确定识别对象所位于的全局平面中的x值和y值的第一(x,y)坐标,其中第一单应性被配置为在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换;
从第一跟踪列表中识别对象的对象标识符,其中第一跟踪列表识别:
被第一传感器跟踪的对象的对象标识符;以及
与对象在第一帧中的地点对应的像素地点信息;
将对象的对象标识符存储在与第二传感器相关联的第二跟踪列表中;
将第二单应性应用于第一(x,y)坐标以确定对象在第二帧中的第二像素地点,其中:
第二像素地点包括第二帧的第二像素行和第二像素列;以及
第二单应性被配置为在第二帧中的像素地点和全局平面中的(x,y)坐标之间转换;以及
将第二像素地点与对象的对象标识符一起存储在第二跟踪列表中。
9、如条款8所述的方法,还包括:
基于对象的先前像素地点确定对象的行进方向;以及
将对象的行进方向与对象的对象标识符一起存储在第二跟踪列表中。
10、如条款8所述的方法,其中:
第一帧中的每个像素与像素值相关联;以及
第一单应性还被配置为在第一帧中的像素值和z坐标之间转换。
11、如条款8所述的方法,其中确定人在重叠区间内包括确定人的像素地点在第一帧中的与第一帧和第二帧之间的重叠区间对应的第一像素范围内。
12、如条款8所述的方法,还包括:
从第一传感器接收第三帧;
确定对象不存在于第三帧中;以及
响应于确定对象不存在于第三帧中,从第一跟踪列表中丢弃与对象相关联的信息。
13、如条款8所述的方法,其中:
第一传感器和第二传感器是被配置为传感器阵列的多个传感器的成员;以及
传感器阵列被定位成与全局平面平行。
14、一种计算机程序,包括存储在非暂态计算机可读介质中的可执行指令,所述指令在由处理器执行时,使所述处理器:
从第一传感器接收空间的至少第一部分的全局平面的第一帧,其中:
全局平面表示空间的至少一部分的(x,y)坐标;
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
识别第一帧内的对象;
确定对象在第一帧中的第一像素地点,其中第一像素地点包括第一帧的第一像素行和第一像素列;
基于第一像素地点确定对象在与第二传感器的重叠区间内,其中第二传感器被配置为捕获空间的至少第二部分的第二帧;
将第一单应性应用于第一像素地点以确定识别对象所位于的全局平面中的x值和y值的第一(x,y)坐标,其中第一单应性被配置为在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换;
从第一跟踪列表中识别对象的对象标识符,其中第一跟踪列表识别:
被第一传感器跟踪的对象的对象标识符;以及
与对象在第一帧中的地点对应的像素地点信息;以及
将对象的对象标识符存储在与第二传感器相关联的第二跟踪列表中。
15、如条款14所述的计算机程序,还包括指令,所述指令在由所述处理器执行时,使所述处理器:
将第二单应性应用于第一(x,y)坐标以确定对象在第二帧中的第二像素地点,其中:
第二像素地点包括第二帧的第二像素行和第二像素列;以及
第二单应性被配置为在第二帧中的像素地点和全局平面中的(x,y)坐标之间转换;以及
将第二像素地点与对象的对象标识符一起存储在第二跟踪列表中。
16、如条款14所述的计算机程序,还包括指令,所述指令在由所述处理器执行时,使所述处理器:
基于对象的先前像素地点确定对象的行进方向;以及
将对象的行进方向与对象的对象标识符一起存储在第二跟踪列表中。
17、如条款14所述的计算机程序,其中:
第一帧中的每个像素与像素值相关联;以及
第一单应性还被配置为在第一帧中的像素值和z坐标之间转换。
18、如条款14所述的计算机程序,其中确定人在重叠区间内包括确定人的像素地点在第一帧中的与第一帧和第二帧之间的重叠区间对应的第一像素范围内。
19、如条款14所述的计算机程序,还包括指令,所述指令在由所述处理器执行时,使所述处理器:
从第一传感器接收第三帧;
确定对象不存在于第三帧中;以及
响应于确定对象不存在于第三帧中,从第一跟踪列表中丢弃与对象相关联的信息。
20、如条款14所述的计算机程序,其中:
第一传感器和第二传感器是被配置为传感器阵列的多个传感器的成员;以及
传感器阵列被定位成与全局平面平行。
21、一种对象跟踪系统,包括:
传感器,被配置为在空间的全局平面内捕获支架的至少一部分的帧,其中:
全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行、像素列和像素值的像素地点相关联;
像素值与全局平面中的z坐标对应;
所述帧还包括:
与支架在全局平面中的第一部分对应的第一区;
与支架在全局平面中的第二部分对应的第二区;以及
靠近第一区和第二区的第三区;以及
支架包括:
在支架上的第一高度处的第一搁板,其中第一搁板由全局平面中的第一区和全局平面中的第二区分区;以及
在支架上的第二高度处的第二搁板,其中第二搁板由全局平面中的第一区和全局平面中的第二区分区;以及
可操作地耦合到传感器的跟踪系统,包括:
一个或多个存储器,可操作以存储:
与人相关联的数字购物车;以及
物品地图,被配置为关联:
第一物品与支架的第一搁板上的第一区;
第二物品与支架的第一搁板上的第二区;
第三物品与支架的第二搁板上的第一区;以及
第四物品与支架的第二搁板上的第二区;以及
一个或多个处理器,可操作地耦合到所述一个或多个存储器,所述处理器被配置为:
接收帧;
检测帧的第三区内的对象;
确定对象的像素地点,其中像素地点包括第一像素行、第一像素列和第一像素值;
基于对象的像素地点的第一像素行和第一像素列,识别第一区和第二区中的一个;
基于对象的像素地点的第一像素值,识别支架的第一搁板和支架的第二搁板中的一个;
基于识别出的区和识别出的支架的搁板,识别物品地图中的物品;以及
将识别出的物品添加到与该人相关联的数字购物车。
22、如条款21所述的系统,其中:
第一区与帧中的第一像素范围相关联;
第二区与帧中的第二像素范围相关联;以及
识别第一区和第二区中的一个包括:
当对象的像素地点在帧中的第一像素范围内时识别第一区;以及
当对象的像素地点在帧中的第二像素范围内时识别第二区。
23、如条款21所述的系统,其中:
所述帧还包括靠近支架前部的第四区和第三区;以及
所述一个或多个处理器还被配置为:
确定人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;以及
在将识别出的物品添加到与人相关联的数字购物车之前,确定该人在第四区内。
24、如条款21所述的系统,还包括部署在支架的识别出的搁板上的识别出的区中的重量传感器,其中重量传感器被配置为测量重量传感器上的物品的重量;以及
其中所述一个或多个处理器还被配置为:
确定重量传感器上的重量减少量;
基于重量减少量确定物品数量;以及
将识别出的物品数量添加到与该人相关联的数字购物车。
25、如条款21所述的系统,其中所述一个或多个处理器还被配置为:
确定人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定第二人的第三像素地点,其中第三像素地点包括第三像素行和第三像素列;
确定对象的像素地点与人的第二像素地点之间的第一距离;
确定对象的像素地点与第二人的第三像素地点之间的第二距离;以及
在将识别出的物品添加到与人相关联的数字购物车之前确定第一距离小于第二距离。
26、如条款21所述的系统,其中:
传感器是被配置为传感器阵列的多个传感器的成员;以及
传感器阵列被定位成与全局平面平行。
27、如条款21所述的系统,其中:
所述一个或多个存储器还可操作以存储与传感器相关联的单应性;以及
单应性被配置为在帧中的像素地点和全局平面中的(x,y)坐标之间转换。
28、如条款27所述的系统,其中单应性还被配置为在帧中的像素值和全局平面中的z坐标之间转换。
29、如条款27所述的系统,其中所述一个或多个处理器还被配置为:
确定人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;以及
将单应性应用于第二像素地点以确定全局平面中的第一(x,y)坐标。
30、如条款29所述的系统,其中所述一个或多个处理器还被配置为基于第一(x,y)坐标识别支架。
31、一种对象跟踪方法,包括:
从传感器接收支架的至少一部分在空间的全局平面内的帧,其中:
全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行、像素列和像素值的像素地点相关联;
像素值与全局平面中的z坐标对应;
检测帧的第一区内的对象;
确定对象的像素地点,其中像素地点包括第一像素行、第一像素列和第一像素值;
基于对象的像素地点的第一像素行和第一像素列,识别与全局平面中的支架的第一部分对应的第二区和与全局平面中的支架的第二部分对应的第三区中的一个;
基于对象的像素地点的第一像素值识别支架的第一搁板和支架的第二搁板中的一个;
基于支架的识别出的区和识别出的搁板,识别物品;以及
将识别出的物品添加到与该人相关联的数字购物车。
32、如条款31所述的方法,还包括:
确定人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;以及
在将识别出的物品添加到与人相关联的数字购物车之前,确定该人在靠近支架前部的第四区以及第三区内。
33、如条款311所述的方法,还包括:
确定重量传感器上的重量减少量;
基于重量减少量确定物品数量;以及
将识别出的物品数量添加到与该人相关联的数字购物车。
34、如条款31所述的方法,还包括:
确定人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定第二人的第三像素地点,其中第三像素地点包括第三像素行和第三像素列;
确定对象的像素地点与人的第二像素地点之间的第一距离;
确定对象的像素地点与第二人的第三像素地点之间的第二距离;以及
在将识别出的物品添加到与人相关联的数字购物车之前确定第一距离小于第二距离。
35、如条款31所述的方法,还包括:
确定人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;以及
将单应性应用于第二像素地点以确定全局平面中的第一(x,y)坐标,其中单应性被配置为在帧中的像素地点和全局平面中的(x,y)坐标之间转换。
36、一种对象跟踪系统,包括:
传感器,被配置为在空间的全局平面内捕获支架的至少一部分的帧,其中:
全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行、像素列和像素值的像素地点相关联;
像素值与全局平面中的z坐标对应;以及
所述帧还包括靠近支架前部的第一区;以及
跟踪系统,可操作地耦合到传感器,包括:
一个或多个存储器,可操作以存储与人相关联的数字购物车;以及
一个或多个处理器,可操作地耦合到所述一个或多个存储器,所述处理器被配置为:
接收帧;
检测帧的第一区内的对象;
确定对象的像素地点,其中像素地点包括第一像素行、第一像素列和第一像素值;
基于对象的像素地点的第一像素行和第一像素列,识别支架的一部分;
基于对象的像素地点的第一像素值识别支架的搁板;
基于支架的识别出的部分和支架的识别出的搁板,识别物品;以及
将识别出的物品添加到与该人相关联的数字购物车。
37、如条款36所述的系统,其中:
所述帧还包括靠近支架前部的第二区以及第一区;以及
所述一个或多个处理器还被配置为:
确定人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;以及
在将识别出的物品添加到与人相关联的数字购物车之前,确定该人在第二区内。
38、如条款36所述的系统,还包括部署在支架上的重量传感器,以及
其中所述一个或多个处理器还被配置为:
确定重量传感器上的重量减少量;
基于重量减少量确定物品数量;以及
将识别出的物品数量添加到与该人相关联的数字购物车。
39、如条款36所述的系统,其中所述一个或多个处理器还被配置为:
确定人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定第二人的第三像素地点,其中第三像素地点包括第三像素行和第三像素列;
确定对象的像素地点与人的第二像素地点之间的第一距离;
确定对象的像素地点与第二人的第三像素地点之间的第二距离;以及
在将识别出的物品添加到与人相关联的数字购物车之前确定第一距离小于第二距离。
40、如条款36所述的系统,其中:
传感器是被配置为传感器阵列的多个传感器的成员;以及
传感器阵列被定位成与全局平面平行。
41、一种对象跟踪系统,包括:
传感器,被配置为在空间的全局平面内捕获支架的至少一部分的帧,其中:
全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
所述帧包括与支架相关联的预定义区,其中:
所述预定义区靠近支架前部;以及
所述预定义区与空间的全局平面中的(x,y)坐标范围相关联;
多个重量传感器,部署在支架的搁板上,其中:
每个重量传感器与存储在支架的搁板上的重量传感器上的物品的物品类型相关联;以及
每个重量传感器被配置为测量重量传感器上的物品的重量;
以及
跟踪系统,可操作地耦合到传感器和重量传感器,包括:
一个或多个存储器,可操作以存储:
与人相关联的数字购物车;以及
与传感器相关联的单应性,其中单应性包括在来自传感器的帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;以及
一个或多个处理器,可操作地耦合到所述一个或多个存储器,被配置为:
从所述多个重量传感器检测重量传感器上的重量减少;
接收支架的帧;
确定人的像素地点,其中像素地点包括帧的第一像素行和第一像素列;
通过将单应性应用于像素地点来确定人的(x,y)坐标;
将确定的(x,y)坐标与全局平面中与所述预定义区相关联的(x,y)坐标范围进行比较;
基于比较确定人在帧中的与支架相关联的所述预定义区内;
基于重量传感器在支架上的地点识别与重量传感器相关联的物品;以及
将识别出的物品添加到与该人相关联的数字购物车。
42、如权利要求1所述的系统,其中所述一个或多个处理器还被配置为:
识别帧中的第二人;
确定第二人在与支架相关联的所述预定义区之外;以及
响应于确定第二人在所述预定义区之外而忽略第二人。
43、如权利要求1所述的系统,其中所述一个或多个处理器还被配置为:
确定第二人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定支架的第三像素地点,其中第三像素地点包括帧中的第三像素行和第三像素列;
确定人的像素地点与支架的第三像素地点之间的第一距离;
确定第二人的第二像素地点与支架的第三像素地点之间的第二距离;以及
在将识别出的物品添加到与所述人相关联的数字购物车之前确定第一距离小于第二距离。
44、如权利要求1所述的系统,其中所述所述一个或多个处理器还被配置为:
确定重量传感器上的重量减少量;
基于重量减少量确定物品数量;以及
将识别出的物品数量添加到与该人相关联的数字购物车。
45、如权利要求1所述的系统,其中:
支架包括前部、第一侧部、第二侧部和后部;以及
所述预定义区与帧中的支架的前部、第一侧部和第二侧部的至少一部分重叠。
46、如权利要求1所述的系统,其中所述预定义区间是半圆形区间。
47、一种对象跟踪方法,包括:
检测部署在支架上的多个重量传感器当中的重量传感器上的重量减少,其中:
每个重量传感器与存储在支架上的重量传感器上的物品的物品类型相关联;以及
每个重量传感器被配置为测量重量传感器上的物品的重量;
从传感器接收支架的至少一部分在全局平面内的帧,其中:
全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
所述帧包括与支架相关联的预定义区,其中:
所述预定义区靠近支架前部;以及
所述预定义区与空间的全局平面中的(x,y)坐标范围相关联;
确定人的像素地点,其中像素地点包括帧的第一像素行和第一像素列;
通过将单应性应用于像素地点来确定人的(x,y)坐标,其中:
单应性与传感器相关联;以及
单应性包括在来自传感器的帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;
将确定的(x,y)坐标与全局平面中与所述预定义区相关联的(x,y)坐标范围进行比较;
基于比较确定人在与帧中的支架相关联的所述预定义区内;
基于重量传感器在支架上的地点识别与重量传感器相关联的物品;以及
将识别出的物品添加到与该人相关联的数字购物车。
48、如权利要求8所述的方法,还包括:
识别帧中的第二人;
确定第二人在与支架相关联的所述预定义区之外;以及
响应于确定第二人在所述预定义区之外而忽略第二人。
49、如权利要求8所述的方法,还包括:
确定第二人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定支架的第三像素地点,其中第三像素地点包括帧中的第三像素行和第三像素列;
确定人的像素地点与支架的第三像素地点之间的第一距离;
确定第二人的第二像素地点与支架的第三像素地点之间的第二距离;以及
在将识别出的物品添加到与该人相关联的数字购物车之前确定第一距离小于第二距离。
50、如权利要求8所述的方法,还包括:
确定重量传感器上的重量减少量;
基于重量减少量确定物品数量;以及
将识别出的物品数量添加到与该人相关联的数字购物车。
51、如权利要求8所述的方法,其中:
支架包括前部、第一侧部、第二侧部和后部;以及
所述预定义区与帧中的支架的前部、第一侧部和第二侧部的至少一部分重叠。
52、如权利要求8所述的方法,其中所述预定义区间是半圆形区间。
53、一种计算机程序,包括存储在非暂态计算机可读介质中的可执行指令,所述指令在由处理器执行时,使所述处理器:
检测部署在支架上的多个重量传感器中的重量传感器上的重量减少,其中:
每个重量传感器与存储在支架上的重量传感器上的物品的物品类型相关联;以及
每个重量传感器被配置为测量重量传感器上的物品的重量;接收支架的至少一部分在空间的全局平面内的帧,其中:全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
所述帧包括与支架相关联的预定义区,其中:
所述预定义区靠近支架前部;以及
所述预定义区与空间的全局平面中的(x,y)坐标范围相关联;
确定人的像素地点,其中像素地点包括帧的第一像素行和第一像素列;
通过将单应性应用于像素地点来确定人的(x,y)坐标,其中:
单应性与传感器相关联;以及
单应性包括在来自传感器的帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;
将确定的(x,y)坐标与全局中与所述预定义区相关联的(x,y)坐标范围进行比较;
基于比较确定人在与帧中的支架相关联的所述预定义区内;
基于重量传感器在支架上的地点识别与重量传感器相关联的物品;以及
将识别出的物品添加到与该人相关联的数字购物车。
54、如权利要求15所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器:
识别帧中的第二人;
确定第二人在与支架相关联的所述预定义区之外;以及
响应于确定第二人在所述预定义区之外而忽略第二人。
55、如权利要求15所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器:
确定第二人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定支架的第三像素地点,其中第三像素地点包括帧中的第三像素行和第三像素列;
确定人的像素地点与支架的第三像素地点之间的第一距离;
确定第二人的第二像素地点与支架的第三像素地点之间的第二距离;以及
在将识别出的物品添加到与该人相关联的数字购物车之前确定第一距离小于第二距离。
56、如权利要求15所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器:
确定重量传感器上的重量减少量;
基于重量减少量确定物品数量;以及
将识别出的物品数量添加到与该人相关联的数字购物车。
57、如权利要求15所述的计算机程序,其中:
支架包括前部、第一侧部、第二侧部和后部;以及
所述预定义区与帧中的支架的前部、第一侧部和第二侧部的至少一部分重叠。
58、一种对象跟踪系统,包括:
传感器,被配置为在空间的全局平面内捕获支架的至少一部分的帧,其中:
全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
所述帧包括与支架相关联的预定义区,其中所述预定义区靠近支架的前部;
重量传感器,部署在支架的搁板上,其中重量传感器被配置为测量重量传感器上的物品的重量;以及
跟踪系统,可操作地耦合到传感器和重量传感器,所述跟踪系统包括:
一个或多个存储器,可操作以存储:
与第一人相关联的数字购物车,其中数字购物车识别:
多个物品;以及
数字购物车中的所述多个物品中的每个物品的物品重量;以及
一个或多个处理器,可操作地耦合到所述一个或多个存储器,处理器被配置为:
检测重量传感器上的重量增加;
确定重量传感器上的重量增加量;
接收帧;
确定第一人的像素地点,其中像素地点包括帧的第一像素行和第一像素列;
基于人的像素地点确定第一人在帧中与支架相关联的所述预定义区内;
识别数字购物车中与第一人相关联的所述多个物品;
识别与第一人相关联的数字购物车中的所述多个物品中的每个物品的物品重量;
将重量增加量与数字购物车中与每个物品相关联的物品重量进行比较;
从与第一人相关联的所述多个物品中识别具有最接近重量增加量的物品重量的第一物品;以及
从与第一人相关联的数字购物车中移除识别出的第一物品。
59、如条款58所述的系统,其中所述一个或多个处理器还被配置为:
确定第二人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定重量传感器的第三像素地点,其中第三像素地点包括帧中的第三像素行和第三像素列;
确定人的像素地点与重量传感器的第三像素地点之间的第一距离;
确定第二人的第二像素地点与重量传感器的第三像素地点之间的第二距离;以及
在将识别出的第一物品从与第一人相关联的数字购物车移除之前确定第一距离小于第二距离。
60、如条款58所述的系统,其中:
与支架相关联的所述预定义区与帧中的像素列范围和帧中的像素行范围相关联;以及
确定第一人在与支架相关联的所述预定义区内包括确定:
第一人的像素地点的第一像素列在帧中的像素列范围内;以及
第一人的像素地点的第一像素行在帧中的像素行范围内。
61、如条款58所述的系统,其中:
重量传感器与重量传感器上的物品的单个物品重量相关联;以及所述一个或多个处理器还被配置为:
在识别与第一人相关联的数字购物车中的所述多个物品中的每个物品的物品重量之前,确定重量传感器的重量增加量与重量搁板上的物品的单个物品重量不匹配。
62、如条款58所述的系统,其中所述一个或多个处理器还被配置为:
确定识别出的第一物品与重量增加量之间的第一重量差;
确定第二人在与支架相关联的所述预定义区内;
识别与第二人相关联的数字购物车中的第二多个物品;
从与第二人相关联的数字购物车中的第二多个物品中识别具有最接近匹配重量增加量的物品重量的第二物品;
确定识别出的第二物品与重量增加量之间的第二重量差;以及
在从与第一人相关联的数字购物车中移除识别出的第一物品之前确定第一重量差小于第二重量差。
63、如条款58所述的系统,其中所述一个或多个处理器还被配置为:
基于对应的物品重量和重量增加量确定数字购物车中的所述多个物品中的每个物品的概率;以及
在从与第一人相关联的数字购物车中移除识别出的第一物品之前,确定识别出的第一物品与数字购物车中所述多个物品的确定概率中的最高概率相关联。
64、如条款63所述的系统,其中数字购物车中所述多个物品中的每个物品的概率与第一人与所述搁板之间的距离成反比。
65、一种对象跟踪方法,包括:
检测部署在支架的搁板上的重量传感器上的重量增加;
确定重量传感器上的重量增加量;
从传感器接收支架的至少一部分在空间的全局平面内的帧,其中:
全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
所述帧包括与支架相关联的所述预定义区,其中所述预定义区靠近支架前部;
确定第一人的像素地点,其中像素地点包括帧的第一像素行和第一像素列;
基于人的像素地点确定第一人在与帧中的支架相关联的所述预定义区内;
识别与第一人相关联的数字购物车中的多个物品;
识别与第一人相关联的数字购物车中的所述多个物品中的每个物品的物品重量;
将重量增加量与和数字购物车中的每个物品相关联的物品重量进行比较;
从与第一人相关联的所述多个物品中识别具有最接近重量增加量的物品重量的第一物品;以及
从与第一人相关联的数字购物车中移除识别出的第一物品。
66、如条款65所述的方法,还包括:
确定第二人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定重量传感器的第三像素地点,其中第三像素地点包括帧中的第三像素行和第三像素列;
确定人的像素地点与重量传感器的第三像素地点之间的第一距离;
确定第二人的第二像素地点与重量传感器的第三像素地点之间的第二距离;以及
在将识别出的第一物品从与第一人相关联的数字购物车中移除之前确定第一距离小于第二距离。
67、如条款65所述的方法,其中确定第一人在与支架相关联的所述预定义区内包括确定:
第一人的像素地点的第一像素列在帧中的像素列范围内;以及
第一人的像素地点的第一像素行在帧中的像素行范围内。
68、如条款65所述的方法,还包括在识别与第一人相关联的数字购物车中的所述多个物品中的每个物品的物品重量之前,确定重量传感器的重量增加量与重量搁板上的物品的单个物品重量不匹配。
69、如条款65所述的方法,还包括:
确定识别出的第一物品与重量增加量之间的第一重量差;
确定第二人在与支架相关联的所述预定义区内;
识别与第二人相关联的数字购物车中的第二多个物品;
从与第二人相关联的数字购物车中的第二多个物品中识别具有最接近匹配重量增加量的物品重量的第二物品;
确定识别出的第二物品与重量增加量之间的第二重量差;以及
在从与第一人相关联的数字购物车中移除识别出的第一物品之前确定第一重量差小于第二重量差。
70、如条款65所述的方法,还包括:
基于对应的物品重量和重量增加量确定数字购物车中的所述多个物品中的每个物品的概率;以及
在从与第一人相关联的数字购物车中移除识别出的第一物品之前,确定识别出的第一物品与数字购物车中所述多个物品的确定概率中的最高概率相关联。
71、一种计算机程序,包括存储在非暂态计算机可读介质中的可执行指令,所述指令在由处理器执行时,使所述处理器:
检测部署在支架的搁板上的重量传感器上的重量增加;
确定重量传感器上的重量增加量;
从传感器接收支架的至少一部分在空间的全局平面内的帧,其中:
全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
所述帧包括与支架相关联的预定义区,其中所述预定义区靠近支架前部;
确定第一人的像素地点,其中像素地点包括帧的第一像素行和第一像素列;
基于人的像素地点确定第一人在帧中与支架相关联的所述预定义区内;
识别与第一人相关联的数字购物车中的多个物品;
识别与第一人相关联的数字购物车中的所述多个物品中的每个物品的物品重量;
将重量增加量与和数字购物车中的每个物品相关联的物品重量进行比较;
从与第一人相关联的所述多个物品中识别具有最接近重量增加量的物品重量的第一物品;以及
从与第一人相关联的数字购物车中移除识别出的第一物品。
72、如条款71所述的计算机程序,还包括指令,所述指令在由所述处理器执行时,使所述处理器:
确定第二人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定重量传感器的第三像素地点,其中第三像素地点包括帧中的第三像素行和第三像素列;
确定人的像素地点与重量传感器的第三像素地点之间的第一距离;
确定第二人的第二像素地点与重量传感器的第三像素地点之间的第二距离;以及
在将识别出的第一物品从与第一人相关联的数字购物车移除之前确定第一距离小于第二距离。
73、如条款71所述的计算机程序,其中确定第一人在与支架相关联的所述预定义区内包括确定:
第一人的像素地点的第一像素列在帧中的像素列范围内;以及
第一人的像素地点的第一像素行在帧中的像素行范围内。
74、如条款71所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器在识别与第一人相关联的数字购物车中的所述多个物品中的每个物品的物品重量之前,确定重量传感器的重量增加量与重量搁板上的物品的单个物品重量不匹配。
75、如条款71所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器:
确定识别出的第一物品与重量增加量之间的第一重量差;
确定第二人在与支架相关联的所述预定义区内;
识别与第二人相关联的数字购物车中的第二多个物品;
从与第二人相关联的数字购物车中的第二多个物品中识别具有最接近匹配重量增加量的物品重量的第二物品;
确定识别出的第二物品与重量增加量之间的第二重量差;以及
在从与第一人相关联的数字购物车中移除识别出的第一物品之前确定第一重量差小于第二重量差。
76、如条款71所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器:
基于对应的物品重量和重量增加量确定数字购物车中的所述多个物品中的每个物品的概率;以及
在从与第一人相关联的数字购物车中移除识别出的第一物品之前,确定识别出的第一物品与数字购物车中所述多个物品的确定概率中的最高概率相关联。
77、如条款76所述的计算机程序,其中数字购物车中的所述多个物品中的每个物品的概率与第一人与所述搁板之间的距离成反比。
78、一种对象跟踪系统,包括:
第一传感器,被配置为捕获空间的至少一部分的全局平面的第一帧,其中:
全局平面表示空间的所述至少一部分的(x,y)坐标;
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
跟踪系统,可操作地耦合到第一传感器,跟踪系统包括:
一个或多个存储器,可操作以存储与第一传感器相关联的第一单应性,其中:
第一单应性包括在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;以及
一个或多个处理器,可操作地耦合到所述一个或多个存储器,处理器被配置为:
接收识别第一标记位于空间中的全局平面中的第一x值和第一y值的第一(x,y)坐标,其中第一标记是识别空间中的第一地点的第一对象;
接收识别第二标记位于空间中的全局平面中的第二x值和第二y值的第二(x,y)坐标,其中第二标记是识别空间中的第二地点的第二对象;
接收第一帧;
识别第一帧内的第一标记和第二标记;
确定第一标记在第一帧中的第一像素地点,其中第一像素地点包括第一帧的第一像素行和第一像素列;
确定第二标记在第一帧中的第二像素地点,其中第二像素地点包括第一帧的第二像素行和第二像素列;以及
基于第一(x,y)坐标、第二(x,y)坐标、第一像素地点和第二像素地点生成第一单应性。
79、如条款78所述的系统,所述一个或多个处理器还被配置为:确定第一帧内识别出的标记的数量;
确定识别出的标记的数量超过预定阈值;以及
确定第一标记的第一像素地点是响应于确定识别出的标记的数量超过预定阈值作出的。
80、如条款78所述的系统,其中:
第一帧中的每个像素与像素值相关联;以及
第一单应性还被配置为在第一帧中的像素值和全局平面中的z坐标之间转换。
81、如条款78所述的系统,其中所述一个或多个处理器还被配置为存储第一传感器与第一单应性之间的关联。
82、如条款78所述的系统,其中全局平面与空间的地板平行。
83、如条款78所述的系统,还包括可操作地耦合到跟踪系统的第二传感器,被配置为针对空间的至少第二部分捕获全局平面的第二帧;以及
其中所述一个或多个处理器还被配置为:
确定第一标记在第二帧中的第三像素地点;
确定第二标记在第二帧中的第四像素地点;以及
基于第三像素地点、第四像素地点、第一标记的第一(x,y)坐标和第二标记的第二(x,y)坐标生成第二单应性,其中:
第二单应性包括在第二帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;以及
第二单应性的系数与第一单应性的系数不同。
84、如条款78所述的系统,还包括可操作地耦合到跟踪系统的第二传感器,被配置为捕获空间的至少第二部分的第二帧;其中:
第一传感器和第二传感器是被配置为传感器阵列的多个传感器的成员;以及
传感器阵列被定位成与全局平面平行。
85、一种传感器映射方法,包括:
接收识别第一标记位于空间中的全局平面中的第一x值和第一y值的第一(x,y)坐标,其中:
全局平面表示空间的所述至少一部分的(x,y)坐标;以及第一标记是识别空间中的第一地点的第一对象;
接收识别第二标记位于空间中的全局平面中的第二x值和第二y值的第二(x,y)坐标,其中第二标记是识别空间中的第二地点的第二对象;
从第一传感器接收空间的至少一部分的全局平面的第一帧,其中:
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
识别第一帧内的第一标记和第二标记;
确定第一标记在第一帧中的第一像素地点,其中第一像素地点包括第一帧的第一像素行和第一像素列;
确定第二标记在第一帧中的第二像素地点,其中第二像素地点包括第一帧的第二像素行和第二像素列;以及
基于第一(x,y)坐标、第二(x,y)坐标、第一像素地点和第二像素地点生成第一单应性,其中第一单应性包括在第一帧中的像素地点和在全局平面中的(x,y)坐标之间转换的系数。
86、如条款85所述的方法,还包括:
确定第一帧内识别出的标记的数量;
确定识别出的标记的数量超过预定阈值;以及
确定第一标记的第一像素地点是响应于确定识别出的标记的数量超过预定阈值作出的。
87、如条款85所述的方法,其中:
第一帧中的每个像素与像素值相关联;以及
第一单应性还被配置为在第一帧中的像素值和全局平面中的z坐标之间转换。
88、如条款85所述的方法,还包括存储第一传感器和第一单应性之间的关联。
89、如条款85所述的方法,其中全局平面与空间的地板平行。
90、如条款85所述的方法,还包括:
从第二传感器接收空间的至少第二部分的全局平面的第二帧;
确定第一标记在第二帧中的第三像素地点;
确定第二标记在第二帧中的第四像素地点;以及
基于第三像素地点、第四像素地点、第一标记的第一(x,y)坐标和第二标记的第二(x,y)坐标生成第二单应性,其中:
第二单应性包括在第二帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;以及
第二单应性的系数与第一单应性的系数不同。
91、如条款85所述的方法,还包括:
从第二传感器接收空间的至少第二部分的全局平面的第二帧,其中:
第一传感器和第二传感器是被配置为传感器阵列的多个传感器的成员;以及
传感器阵列被定位成与全局平面平行。
92、一种计算机程序,包括存储在非暂态计算机可读介质中的可执行指令,所述指令在由处理器执行时,使所述处理器:
接收识别第一标记位于空间中的全局平面中的第一x值和第一y值的第一(x,y)坐标,其中:
全局平面表示空间的所述至少一部分的(x,y)坐标;以及第一标记是识别空间中的第一地点的第一对象;
接收识别第二标记位于空间中的全局平面中的第二x值和第二y值的第二(x,y)坐标,其中第二标记是识别空间中的第二地点的第二对象;
从第一传感器接收空间的至少一部分的全局平面的第一帧,其中:
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
识别第一帧内的第一标记和第二标记;
确定第一标记在第一帧中的第一像素地点,其中第一像素地点包括第一帧的第一像素行和第一像素列;
确定第二标记在第一帧中的第二像素地点,其中第二像素地点包括第一帧的第二像素行和第二像素列;以及
基于第一(x,y)坐标、第二(x,y)坐标、第一像素地点和第二像素地点生成第一单应性,其中第一单应性包括在第一帧中的像素地点和在全局平面中的(x,y)坐标之间转换的系数。
93、如条款92所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器:
确定第一帧内识别出的标记的数量;
确定识别出的标记的数量超过预定阈值;以及
确定第一标记的第一像素地点是响应于确定识别出的标记的数量超过预定阈值作出的。
94、如条款92所述的计算机程序,其中:
第一帧中的每个像素与像素值相关联;以及
第一单应性还被配置为在第一帧中的像素值和全局平面中的z坐标之间转换。
95、如条款92所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器存储第一传感器和第一单应性之间的关联。
96、如条款92所述的计算机程序,其中全局平面与空间的地板平行。
97、如条款92所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器:
从第二传感器接收空间的至少第二部分的全局平面的第二帧;
确定第一标记在第二帧中的第三像素地点;
确定第二标记在第二帧中的第四像素地点;以及
基于第三像素地点、第四像素地点、第一标记的第一(x,y)坐标和第二标记的第二(x,y)坐标生成第二单应性,其中:
第二单应性包括在第二帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;以及
第二单应性的系数与第一单应性的系数不同。
98、一种对象跟踪系统,包括:
第一传感器,被配置为捕获空间中标记网格的至少一部分的全局平面的第一帧,其中:
全局平面表示空间的所述至少一部分的(x,y)坐标;
标记网格包括第一标记和第二标记;
第一标记是识别标记网格上的第一地点的第一对象;
第二标记是识别标记网格上的第二地点的第二对象;
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
跟踪系统,可操作地耦合到第一传感器,包括:
一个或多个存储器,可操作以存储与第一传感器相关联的第一单应性,其中:
第一单应性包括在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;以及
标记网格信息,识别:
标记网格的第一角与第一标记之间的第一偏移;以及
标记网格的第一角和第二标记之间的第二偏移;以及
一个或多个处理器,可操作地耦合到所述一个或多个存储器,所述处理器被配置为:
接收识别标记网格的第一角位于空间中的全局平面中的第一x值和第一y值的第一(x,y)坐标;
基于标记网格的第一角与第一(x,y)坐标的第一偏移确定识别第一标记所位于的全局平面中的第二x值和第二y值的第二(x,y)坐标;
基于标记网格的第一角与第一(x,y)坐标的第二偏移确定识别第二标记所位于的全局平面中的第三x值和第三y值的第三(x,y)坐标;
接收第一帧;
识别第一帧中的第一标记和第二标记;
识别第一帧内的第一标记的第一边界框,其中第一边界框包括包含第一标记的至少一部分的第一多个像素;
识别第一帧内的第二标记的第二边界框,其中第二边界框包括包含第二标记的至少一部分的第二多个像素;
识别与第一标记对应的第一边界框内的第一像素;
识别与第二标记对应的第二边界框内的第二像素;
确定第一像素的第一像素地点,其中第一像素地点包括第一帧的第一像素行和第一像素列;
确定第二像素的第二像素地点,其中第二像素地点包括第一帧的第二像素行和第二像素列;以及
基于第一标记的第二(x,y)坐标、第二标记的第三(x,y)坐标、第一像素地点和第二像素地点生成第一单应性。
99、如条款98所述的系统,其中所述一个或多个处理器还被配置为:
确定第一帧内识别出的标记的数量;
确定识别出的标记的数量超过预定阈值;以及
识别第一标记的第一边界框是响应于确定识别出的标记的数量超过预定阈值作出的。
100、如条款98所述的系统,其中:
所述一个或多个存储器可操作以存储包括单词的标记字典;
第一标记包括文本;以及
识别第一标记包括:
识别第一帧内的文本;
将识别出的文本与标记字典中的单词进行比较;以及
确定识别出的文本与标记字典中的单词匹配。
101、如条款98所述的系统,其中:
所述一个或多个存储器可操作以存储包括符号的标记字典;
第一标记包括符号;以及
识别第一标记包括:
识别第一帧内的符号;
将识别出的符号与标记字典中的符号进行比较;以及
确定识别出的符号与标记字典中的符号匹配。
102、如条款98所述的系统,其中所述一个或多个处理器还被配置为:
接收识别在标记网格的第二角位于空间中的全局平面中的第四x值和第四y值的第四(x,y)坐标;
基于标记网格的第一角的第一(x,y)坐标和标记网格的第二角的第四(x,y)坐标确定全局平面内的旋转角度;以及
其中确定第一标记的第二(x,y)坐标包括:
使用标记网格的第一角与第一(x,y)坐标的第一偏移应用转换;以及
使用围绕标记网格的第一角的第一(x,y)坐标的旋转角度应用旋转。
103、如条款99所述的系统,还包括可操作地耦合到跟踪系统的第二传感器,被配置为捕获空间中的标记网格的所述至少一部分的第二帧;以及
其中所述一个或多个处理器还被配置为:
确定第一标记在第二帧中的第三像素地点;
确定第二标记在第二帧中的第四像素地点;以及
基于第三像素地点、第四像素地点、第一标记的第二(x,y)坐标和第二标记的第三(x,y)标记生成第二单应性,其中:
第二单应性包括在第二帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;以及
第二单应性的系数与第一单应性的系数不同。
104、如条款99所述的系统,还包括可操作地耦合到跟踪系统的第二传感器,被配置为捕获空间的至少第二部分的第二帧;并且其中:
第一传感器和第二传感器是被配置为传感器阵列的多个传感器的成员;以及
传感器阵列被定位成与全局平面平行。
105、如条款99所述的系统,其中:
第一帧中的每个像素与像素值相关联;以及
第一单应性还被配置为在第一帧中的像素值和全局平面中的z坐标之间转换。
106、如条款99所述的系统,其中:
接收第一(x,y)坐标包括从位于标记网格的第一角处的信标接收识别第一(x,y)坐标的信号。
107、如条款99所述的系统,其中:
识别第一边界框内的第一像素包括识别第一边界框内的第一像素标记;以及
识别第二边界框内的第二像素包括识别第二边界框内的第二像素标记。
108、如条款107所述的系统,其中:
第一像素标记为第一光源;以及
第二像素标记为第二光源。
109、如条款107所述的系统,其中;
第一像素标记是第一标记的第一特征;以及
第二像素标记是第二标记的第二特征。
110、一种传感器映射方法,包括:
接收识别标记网格的第一角位于空间中的全局平面中的第一x值和第一y值的第一(x,y)坐标,其中:
全局平面表示空间的所述至少一部分的(x,y)坐标;
标记网格包括第一标记和第二标记;
第一标记是识别标记网格上的第一地点的第一对象;以及
第二标记是识别标记网格上的第二地点的第二对象;
基于标记网格的第一角与第一(x,y)坐标的第一偏移确定识别第一标记所位于的全局平面中的第二x值和第二y值的第二(x,y)坐标;
基于标记网格的第一角与第一(x,y)坐标的第二偏移确定识别第二标记所位于的全局平面中的第三x值和第三y值的第三(x,y)坐标;
接收空间中的标记网格的至少一部分的全局平面的第一帧,其中:
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
识别第一帧中的第一标记和第二标记;
识别第一帧内的第一标记的第一边界框,其中第一边界框包括包含第一标记的至少一部分的第一多个像素;
识别第一帧内的第二标记的第二边界框,其中第二边界框包括包含第二标记的至少一部分的第二多个像素;
识别与第一标记对应的第一边界框内的第一像素;
识别与第二标记对应的第二边界框内的第二像素;
确定第一像素的第一像素地点,其中第一像素地点包括第一帧的第一像素行和第一像素列;
确定第二像素的第二像素地点,其中第二像素地点包括第一帧的第二像素行和第二像素列;以及
基于第一标记的第二(x,y)坐标、第二标记的第三(x,y)坐标、第一像素地点和第二像素地点生成第一单应性,其中第一单应性包括在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数。
111、如条款110所述的方法,还包括:
确定第一帧内识别出的标记的数量;
确定识别出的标记的数量超过预定阈值;以及
识别第一标记的第一边界框是响应于确定识别出的标记的数量超过预定阈值作出的。
112、如条款110所述的方法,其中识别第一标记包括:
识别第一帧内的文本;
将识别出的文本与标记词典中的单词进行比较;以及
确定识别出的文本与标记字典中的单词匹配。
113、如条款100所述的方法,其中识别第一标记包括:
识别第一帧内的符号;
将识别出的符号与标记字典中的符号进行比较;以及
确定识别出的符号与标记字典中的符号匹配。
114、如条款100所述的方法,还包括:
接收识别在标记网格的第二角位于空间中的全局平面中的第四x值和第四y值的第四(x,y)坐标;
基于标记网格的第一角的第一(x,y)坐标和标记网格的第二角的第四(x,y)坐标确定全局平面内的旋转角度;以及
其中确定第一标记的第二(x,y)坐标包括:
使用标记网格的第一角与第一(x,y)坐标的第一偏移应用转换;以及
使用围绕标记网格的第一角的第一(x,y)坐标的旋转角度应用旋转。
115、如条款100所述的方法,还包括:
从第二传感器接收空间中的标记网格的所述至少一部分的第二帧;
确定第一标记在第二帧中的第三像素地点;
确定第二标记在第二帧中的第四像素地点;以及
基于第三像素地点、第四像素地点、第一标记的第二(x,y)坐标和第二标记的第三(x,y)标记生成第二单应性,其中:
第二单应性包括在第二帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;以及
第二单应性的系数与第一单应性的系数不同。
116、如条款100所述的方法,其中:
第一帧中的每个像素与像素值相关联;以及
第一单应性还被配置为在第一帧中的像素值和全局平面中的z坐标之间转换。
117、一种计算机程序,包括存储在非暂态计算机可读介质中的可执行指令,所述指令在由处理器执行时,使所述处理器:
接收识别标记网格的第一角位于空间中的全局平面中的第一x值和第一y值的第一(x,y)坐标,其中:
全局平面表示空间的至少一部分的(x,y)坐标;
标记网格包括第一标记和第二标记;
第一标记是识别标记网格上的第一地点的第一对象;以及
第二标记是识别标记网格上的第二地点的第二对象;
基于标记网格的第一角与第一(x,y)坐标的第一偏移确定识别第一标记所位于的全局平面中的第二x值和第二y值的第二(x,y)坐标;
基于标记网格的第一角与第一(x,y)坐标的第二偏移确定识别第二标记所位于的全局平面中的第三x值和第三y值的第三(x,y)坐标;
接收空间中的标记网格的至少一部分的全局平面的第一帧,其中:
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
识别第一帧中的第一标记和第二标记;
识别第一帧内的第一标记的第一边界框,其中第一边界框包括包含第一标记的至少一部分的第一多个像素;
识别第一帧内的第二标记的第二边界框,其中第二边界框包括包含第二标记的至少一部分的第二多个像素;
识别与第一标记对应的第一边界框内的第一像素;
识别与第二标记对应的第二边界框内的第二像素;
确定第一像素的第一像素地点,其中第一像素地点包括第一帧的第一像素行和第一像素列;
确定第二像素的第二像素地点,其中第二像素地点包括第一帧的第二像素行和第二像素列;以及
基于第一标记的第二(x,y)坐标、第二标记的第三(x,y)坐标、第一像素地点和第二像素地点生成第一单应性,其中第一单应性包括在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数。
118、一种对象跟踪系统,包括:
第一传感器,被配置为在空间的全局平面内捕获支架的第一帧,其中:
全局平面表示空间的(x,y)坐标;
支架包括搁板标记;
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
第二传感器,被配置为捕获包括搁板标记的支架的第二帧;以及跟踪系统,可操作地耦合到第一传感器和第二传感器,包括:
一个或多个存储器,可操作以存储:
第一帧中与搁板标记对应的第一像素地点,其中第一像素地点信息包括第一帧的第一像素行和第一像素列;以及
第二帧中与搁板标记对应的第二像素地点,其中第二像素地点信息包括第二帧的第二像素行和第二像素列;以及
一个或多个处理器,可操作地耦合到所述一个或多个存储器,处理器被配置为:
接收第一帧;
识别第一帧内的搁板标记;
确定第一帧内搁板标记的第一当前像素地点,其中第一当前像素地点信息包括第一帧的第三像素行和第三像素列;
将搁板标记的第一当前像素地点与搁板标记的第一像素地点进行比较;
确定搁板标记的第一当前像素地点与搁板标记的第一像素地点不匹配;
接收第二帧;
识别第二帧内的搁板标记;
确定第二帧内搁板标记的第二当前像素地点,其中第二当前像素地点信息包括第二帧的第四像素行和第四像素列;
将搁板标记的第二当前像素地点与搁板标记的第二像素地点进行比较;
确定搁板标记的第二当前像素地点是否与搁板标记的第二像素地点匹配;
响应于确定搁板标记的第二当前像素地点与搁板标记的第二像素地点匹配,重新校准第一传感器;以及
响应于确定搁板标记的第二当前像素地点与搁板标记的第二像素地点不匹配,用第一当前像素地点更新第一像素地点并且用第二当前像素地点更新第二像素地点。
119、如条款118所述的系统,其中重新校准第一传感器包括:
确定识别搁板标记所位于的全局平面中的第一x值和第一y值的第一(x,y)坐标;
确定识别第二搁板标记所位于的全局平面中的第二x值和第二y值的第二(x,y)坐标;
确定第一帧内的第二搁板标记的第三当前像素地点;以及
基于第一当前像素地点、第三当前像素地点、第一(x,y)坐标和第二(x,y)坐标生成单应性,其中单应性在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换。
120、如条款118所述的系统,其中所述一个或多个存储器还可操作以存储单应性,所述单应性包括在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数。
121、如条款120所述的系统,其中所述一个或多个处理器还被配置为将单应性应用于第一当前像素地点以确定识别搁板标记在全局平面中的第一x值和第一y值的(x,y)坐标的第一当前像素地点。
122、如条款120所述的系统,其中:
第一帧中的每个像素与像素值相关联;以及
单应性还被配置为在第一帧中的像素值和全局平面中的z坐标之间转换。
123、如权利要求118所述的系统,其中所述一个或多个处理器被配置为响应于确定搁板标记的第二当前像素地点与搁板标记的第二像素地点匹配而发送指示第一传感器已经移动的通知。
124、如条款118所述的系统,其中所述一个或多个处理器被配置为响应于确定搁板标记的第二当前像素地点与搁板标记的第二像素地点不匹配而发送指示支架已经移动的通知。
125、如条款118所述的系统,其中:
第一传感器和第二传感器是被配置为传感器阵列的多个传感器的成员;以及
传感器阵列被定位成与全局平面平行。
126、一种对象跟踪方法,包括:
从第一传感器接收空间的全局平面内的支架的第一帧,其中:
全局平面表示空间的(x,y)坐标;
支架包括搁板标记;
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
识别第一帧内的搁板标记;
确定第一帧内搁板标记的第一当前像素地点,其中第一当前像素地点信息包括第一帧的第一像素行和第一像素列;
将搁板标记的第一当前像素地点与搁板标记的第一预期像素地点进行比较,其中第一预期像素地点信息包括第一帧的第二像素行和第二像素列;
确定搁板标记的第一当前像素地点与搁板标记的第一预期像素地点不匹配;
从第二传感器接收包括搁板标记的支架的第二帧;
识别第二帧内的搁板标记;
确定第二帧内搁板标记的第二当前像素地点,其中第二当前像素地点信息包括第二帧的第三像素行和第三像素列;
将搁板标记的第二当前像素地点与搁板标记的第二预期像素地点进行比较,其中第二预期像素地点信息包括第二帧的第四像素行和第四像素列;
确定搁板标记的第二当前像素地点是否与搁板标记的第二预期像素地点匹配;以及
响应于确定搁板标记的第二当前像素地点与搁板标记的第二预期像素地点匹配,重新校准第一传感器。
127、如条款126所述的方法,还包括响应于确定搁板标记的第二当前像素地点与搁板标记的第二预期像素地点不匹配,用第一当前像素地点更新第一像素地点并且用第二当前像素地点更新第二像素地点。
128、如条款126所述的方法,其中重新校准第一传感器包括:
确定识别搁板标记所位于的全局平面中的第一x值和第一y值的第一(x,y)坐标;
确定识别第二搁板标记所位于的全局平面中的第二x值和第二y值的第二(x,y)坐标;
确定第一帧内的第二搁板标记的第三当前像素地点;以及
基于第一当前像素地点、第三当前像素地点、第一(x,y)坐标和第二(x,y)坐标生成单应性,其中单应性在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换。
129、如条款126所述的方法,还包括存储包括在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数的单应性。
130、如条款129所述的方法,还包括将单应性应用于第一当前像素地点以确定识别搁板标记在全局平面中的第一x值和第一y值的(x,y)坐标。
131、如条款129所述的方法,其中:
第一帧中的每个像素与像素值相关联;以及
单应性还被配置为在第一帧中的像素值和全局平面中的z坐标之间转换。
132、如条款126所述的方法,还包括响应于确定搁板标记的第二当前像素地点与搁板标记的第二像素地点匹配而发送指示第一传感器已经移动的通知。
133、如条款126所述的方法,还包括响应于确定搁板标记的第二当前像素地点与搁板标记的第二像素地点不匹配而发送指示支架已经移动的通知。
134、一种计算机程序,包括存储在非暂态计算机可读介质中的可执行指令,所述指令在由处理器执行时,使所述处理器:
从第一传感器接收空间的全局平面内的支架的第一帧,其中:
全局平面表示空间的(x,y)坐标;
支架包括搁板标记;
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
识别第一帧内的搁板标记;
确定第一帧内搁板标记的第一当前像素地点,其中第一当前像素地点信息包括第一帧的第一像素行和第一像素列;
将搁板标记的第一当前像素地点与搁板标记的第一预期像素地点进行比较,其中第一预期像素地点信息包括第一帧的第二像素行和第二像素列;
确定搁板标记的第一当前像素地点与搁板标记的第一预期像素地点不匹配;
从第二传感器接收包括搁板标记的支架的第二帧;
识别第二帧内的搁板标记;
确定第二帧内搁板标记的第二当前像素地点,其中第二当前像素地点信息包括第二帧的第三像素行和第三像素列;
将搁板标记的第二当前像素地点与搁板标记的第二预期像素地点进行比较,其中第二预期像素地点信息包括第二帧的第四像素行和第四像素列;
确定搁板标记的第二当前像素地点是否与搁板标记的第二预期像素地点匹配;以及
响应于确定搁板标记的第二当前像素地点与搁板标记的第二预期像素地点匹配,重新校准第一传感器。
135、如条款134所述的计算机程序,还包括指令,所述指令在由所述处理器执行时,使所述处理器响应于确定搁板标记的第二当前像素地点与搁板标记的第二预期像素地点不匹配,用第一当前像素地点更新第一像素地点并且用第二当前像素地点更新第二像素地点。
136、如条款134所述的计算机程序,其中重新校准第一传感器包括:
确定识别搁板标记所位于的全局平面中的第一x值和第一y值的第一(x,y)坐标;
确定识别第二搁板标记所位于的全局平面中的第二x值和第二y值的第二(x,y)坐标;
确定第一帧内的第二搁板标记的第三当前像素地点;以及
基于第一当前像素地点、第三当前像素地点、第一(x,y)坐标和第二(x,y)坐标生成单应性,其中单应性在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换,其中单应性包括在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数。
137、如条款136所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器将单应性应用于第一当前像素地点以确定识别搁板标记在全局平面中的第一x值和第一y值的(x,y)坐标。
138、一种系统,包括:
传感器,被配置为生成空间的至少一部分的顶视图深度图像;以及
传感器客户端,通信地耦合到传感器,传感器客户端被配置为:
接收由传感器生成的顶视图深度图像的一组帧;
识别接收到的帧中与第一对象相关联的第一轮廓与和第二对象相关联的第二轮廓合并的帧,其中合并的第一轮廓和第二轮廓:
在接收到的深度图像中与预定第一高度对应的第一深度处确定,并且
对应于位于距第二对象阈值距离内的空间中的第一对象;
在识别出的帧中确定与合并的第一轮廓和第二轮廓的像素坐标相关联的合并轮廓区间;
在合并轮廓区间内检测与预定第二高度相关联的第二深度处的第三轮廓,其中第二深度小于第一深度;
确定与第三轮廓的像素坐标相关联的第一区间;
在合并轮廓区间内检测第二深度处的第四轮廓;
确定与第四轮廓的像素坐标相关联的第二区间;
确定满足区分第一区间和第二区间的标准;以及
响应于确定满足标准:
将第一区间与第一对象的第一像素位置相关联;以及
将第二区间与第二对象的第二像素位置相关联。
139、如条款138所述的系统,还包括:
第二传感器,被配置为生成空间的所述部分的至少一部分的角度视图深度图像;
客户端服务器还被配置为:
从第二传感器接收第一角度视图图像,第一角度视图图像包括第一对象和第二对象的表示;
检测与第一角度视图图像中的第一对象对应的第五轮廓;
确定与第五轮廓的像素坐标相关联的第三区间;
将第三区间与第一对象的第三像素位置相关联;
检测与第一角度视图图像中的第二对象对应的第六轮廓;
确定与第六轮廓的像素坐标相关联的第四区间;以及
将第四区间与第二对象的第四像素位置相关联。
140、如条款138所述的系统,其中第二高度与第一对象的第一先前确定的高度相关联;以及
其中传感器客户端还被配置为在合并轮廓区间内确定第三深度处的第五轮廓,其中第三深度小于第一深度并且与第二对象的第二先前确定的高度相关联。
141、如条款138所述的系统,所述传感器客户端还被配置为:确定不满足区分第一区间和第二区间的标准;
响应于确定不满足标准:
在合并轮廓区间内确定第三深度处的更新后的第三轮廓,其中第三深度小于第一深度并且大于第二深度;
确定与更新后的第三轮廓的像素坐标相关联的更新后的第一区间;
在合并轮廓区间内确定第三深度处的更新后的第四轮廓;
确定与更新后的第四轮廓的像素坐标相关联的更新后的第二区间;
确定满足用于区分更新后的第一区间和更新后的第二区间的标准;以及
响应于确定满足用于区分更新后的第一区间和更新后的第二区间的标准:
将更新后的第一区间与第一对象的第一像素位置相关联;
以及
将更新后的第二区间与第二对象的第二像素位置相关联。
142、如条款138所述的系统,其中传感器客户端被配置为通过确定识别出的帧中的轮廓包括大于阈值数量的像素来识别其中第一轮廓与第二轮廓合并的帧。
143、如条款138所述的系统,其中用于区分第一区间与第二区间的标准包括第一区间与第二区间重叠小于或等于阈值量的第一要求以及第一区间和第二区间在合并轮廓区间内的第二要求。
144、如条款143所述的系统,其中所述阈值量是10%。
145、如条款138所述的系统,其中传感器客户端被配置为通过以下各项确定合并轮廓区间:
确定与第一轮廓相关联的多个边界框;
对于所述多个边界框中的每个边界框,计算指示该边界框与所述多个边界框的相似程度的分数;
识别所述多个边界框中具有大于阈值相似度值的分数的子集;以及
基于识别出的子集确定合并轮廓区间。
146、如条款138所述的系统,其中第一区间通过以下各项确定:确定与第三轮廓相关联的多个边界框;
对于所述多个边界框中的每个边界框,计算指示该边界框与所述多个边界框的相似程度的分数;
识别所述多个边界框中具有小于阈值相似度值的分数的子集;以及
基于识别出的子集确定第一区间。
147、如条款138所述的系统,其中:
第一对象是第一人;
第二对象是第二人;
第二深度与第一人和第二人中的一个或两者的近似头部高度对应。
148、一种方法,包括:
接收由传感器生成的顶视图深度图像的一组帧,传感器被配置为生成空间的至少一部分的顶视图深度图像;
识别接收到的帧中与第一对象相关联的第一轮廓和与第二对象相关联的第二轮廓合并的帧,其中合并的第一轮廓和第二轮廓:
在接收到的深度图像中与预定第一高度对应的第一深度处确定,并且
对应于位于距第二对象阈值距离内的空间中的第一对象;
在识别出的帧中确定与合并的第一轮廓和第二轮廓的像素坐标相关联的合并轮廓区间;
在合并轮廓区间内检测与预定第二高度相关联的第二深度处的第三轮廓,其中第二深度小于第一深度;
确定与第三轮廓的像素坐标相关联的第一区间;
在合并轮廓区间内检测第二深度处的第四轮廓;
确定与第四轮廓的像素坐标相关联的第二区间;
确定满足区分第一区间和第二区间的标准;以及
响应于确定满足标准:
将第一区间与第一对象的第一像素位置相关联;以及
将第二区间与第二对象的第二像素位置相关联。
149、如条款148所述的方法,还包括:
从第二传感器接收第一角度视图图像,第二传感器被配置为生成空间的所述部分的至少一部分的角度视图深度图像,其中第一角度视图图像包括第一对象和第二对象的表示;
检测与第一角度视图图像中的第一对象对应的第五轮廓;
确定与第五轮廓的像素坐标相关联的第三区间;
将第三区间与第一对象的第三像素位置相关联;
检测第一角度视图图像中与第二对象对应的第六轮廓;
确定与第六轮廓的像素坐标相关联的第四区间;以及
将第四区间与第二对象的第四像素位置相关联。
150、如条款148所述的方法,其中第二高度与第一对象的第一先前确定的高度相关联;以及
其中所述方法还包括在合并轮廓区间内确定第三深度处的第五轮廓,其中第三深度小于第一深度并且与第二对象的第二先前确定的高度相关联。
151、如条款148所述的方法,还包括:
确定不满足区分第一区间和第二区间的标准;
响应于确定不满足标准:
在合并轮廓区间内确定第三深度处的更新后的第三轮廓,其中第三深度小于第一深度并且大于第二深度;
确定与更新后的第三轮廓的像素坐标相关联的更新后的第一区间;
在合并轮廓区间内确定第三深度处的更新后的第四轮廓;
确定与更新后的第四轮廓的像素坐标相关联的更新后的第二区间;
确定满足用于区分更新后的第一区间和更新后的第二区间的标准;以及
响应于确定满足用于区分更新后的第一区间和更新后的第二区间的标准:
将更新后的第一区间与第一对象的第一像素位置相关联;
以及
将更新后的第二区间与第二对象的第二像素位置相关联。
152、如条款148所述的方法,还包括通过确定识别出的帧中的轮廓包括大于阈值数量的像素来识别其中第一轮廓与第二轮廓合并的帧。
153、如条款148所述的方法,其中用于区分第一区间与第二区间的标准包括第一区间与第二区间重叠小于或等于阈值量的第一要求以及第一区间和第二区间在合并轮廓区间内的第二要求。
154、如条款148所述的方法,包括通过以下各项确定合并轮廓区间:
确定与第一轮廓相关联的多个边界框;
对于所述多个边界框中的每个边界框,计算指示该边界框与所述多个边界框的相似程度的分数;
识别所述多个边界框中具有大于阈值相似度值的分数的子集;以及
基于识别出的子集确定合并轮廓区间。
155、如条款148所述的方法,包括通过以下各项确定第一区间:
确定与第三轮廓相关联的多个边界框;
对于所述多个边界框中的每个边界框,计算指示该边界框与所述多个边界框的相似程度的分数;
识别所述多个边界框中具有小于阈值相似度值的分数的子集;以及
基于识别出的子集确定第一区间。
156、如条款148所述的方法,其中:
第一对象是第一人;
第二对象是第二人;
第二深度与第一人和第二人中的一个或两者的近似头部高度对应。
157、一种系统,包括:
传感器,被配置为生成空间的至少一部分的顶视图深度图像;以及
传感器客户端,通信地耦合到传感器,传感器客户端被配置为:
接收由传感器生成的顶视图深度图像的一组帧;
在所述一组帧中的第一帧中:
使用轮廓检测算法检测初始轮廓;
基于初始轮廓中的像素的数量,确定初始轮廓应该被分割成多个轮廓;
在与初始轮廓相关联的初始区间内检测第一轮廓和第二轮廓;以及
将与第一轮廓相关联的第一区间与第一对象的第一像素位置相关联;以及
将与第二轮廓相关联的第二区间与第二对象的第二像素位置相关联。
158、一种系统,包括:
多个传感器,每个传感器被配置为生成空间的至少一部分的顶视图像;以及
跟踪子系统,通信地耦合到所述多个传感器,跟踪子系统被配置为:
基于与第一对象相关联的第一轮廓的像素坐标,使用由所述多个传感器中的至少一个传感器生成的顶视图像在一段时间内跟踪第一对象在空间中的第一全局位置;
基于与第二对象相关联的第二轮廓的像素坐标,使用由所述多个传感器中的至少一个传感器生成的顶视图像在所述一段时间内跟踪第二对象在空间中的第二全局位置;
在与所述时间段内的时间对应的第一时间戳,检测到第一对象和第二对象之间的冲突事件,其中冲突事件对应于第一被跟踪位置在第二被跟踪位置的阈值距离内;
在检测到冲突事件之后,从所述多个传感器中的第一传感器接收第一顶视图像,第一顶视图像包括第一对象的顶视图像;
基于第一顶视图像确定第一对象的第一描述符,第一描述符包括与第一轮廓的可观察特性相关联的至少一个值;
基于第一描述符确定不满足用于区分第一对象和第二对象的标准,其中当在与冲突事件相关联的时间间隔期间第一描述符的第一值和与第二对象相关联的第二描述符的第二值之间的差小于最小值时,不满足标准;
响应于确定不满足标准,确定第一轮廓的第三描述符,其中第三描述符包括由人工神经网络生成的值,该人工神经网络被配置为识别顶视图像中的对象;以及
基于第三描述符确定一组预定义标识符中的第一标识符对应于第一对象。
159、如条款158所述的系统,其中跟踪子系统被配置为:
基于第一描述符确定满足用于区分第一对象和第二对象的标准,其中当第一描述符的第一值与第二描述符的第二值之间的差大于或等于最小值时满足标准;
基于第一描述符识别所述一组预定义标识符中的第一标识符;以及
将第一标识符与第一对象相关联。
160、如条款158所述的系统,其中跟踪子系统被配置为通过以下各项确定第一标识符对应于第一对象:
对于所述一组预定义标识符中的每个成员,计算第一标识符的值和所述预定义标识符的值的差的绝对值;以及
将第一标识符确定为与计算出的绝对值相关联的具有最小值的预定义标识符。
161、如条款158所述的系统,其中跟踪子系统还被配置为通过以下各项确定第一描述符:
使用纹理算子计算第一轮廓的初始数据向量;以及
使用主成分分析选择初始数据向量的一部分以包含在第一描述符的第一描述符中。
162、如条款158所述的系统,其中用于确定第一描述符的处理内核的第一数量小于用于使用人工神经网络确定第三描述符的处理内核的第二数量。
163、如条款158所述的系统,其中:
所述一组预定义标识符包括第一对象的第一标识符和第二对象的第二标识符;以及
跟踪子系统还被配置为:
在所述时间段之前的第一初始时间段期间:
确定与第一对象的第一高度相关联的第一高度描述符、与第一轮廓的形状相关联的第一轮廓描述符,以及与由人工神经网络为第一轮廓生成的第一向量对应的第一锚描述符;
以及
将第一高度描述符、第一轮廓描述符和第一锚描述符与第一标识符相关联;
在所述时间段之前的第二初始时间段期间:
确定与第二对象的第二高度相关联的第二高度描述符、与第二轮廓的形状相关联的第二轮廓描述符,以及与由人工神经网络为第二轮廓生成的第二向量对应的第二锚描述符;以及
将第二高度描述符、第二轮廓描述符和第二锚描述符与第一标识符相关联。
164、如条款163所述的系统,其中第一描述符包括第一对象的高度;以及
跟踪子系统还被配置为:
基于第一描述符确定满足用于区分第一对象和第二对象的标准,其中当第一描述符的第一值与第二描述符的第二值之间的差大于或等于最小值时满足标准;
响应于确定高度在第一高度描述符的阈值范围内,确定第一对象与第一描述符相关联;以及
响应于确定第一对象与第一描述符相关联,将第一对象与第一标识符相关联。
165、如条款158所述的系统,其中冲突事件对应于在来自所述多个传感器中的第一传感器的第一顶视图像帧中第一轮廓与第二轮廓合并;以及
跟踪子系统还被配置为:
响应于检测到冲突事件,从所述多个传感器中的第一传感器接收顶视图像帧,至少直到第一轮廓和第二轮廓不再合并为止;
以及
在第一轮廓和第二轮廓不再合并之后,使用第一对象识别算法确定第一对象的第一描述符。
166、一种方法,包括:
基于与第一对象相关联的第一轮廓的像素坐标,使用由多个传感器中的至少一个传感器生成的顶视图像在一段时间内跟踪第一对象在空间中的第一全局位置,其中所述多个传感器中的每个传感器被配置为生成空间的至少一部分的顶视图像;
基于与第二对象相关联的第二轮廓的像素坐标,使用由所述多个传感器中的至少一个传感器生成的顶视图像在所述一段时间内跟踪第二对象在空间中的第二全局位置;
在与所述时间段内的时间对应的第一时间戳,检测到第一对象和第二对象之间的冲突事件,其中冲突事件对应于第一被跟踪位置在第二被跟踪位置的阈值距离内;
在检测到冲突事件之后,从所述多个传感器中的第一传感器接收第一顶视图像,第一顶视图像包括第一对象的顶视图像;
基于第一顶视图像确定第一对象的第一描述符,第一描述符包括与第一轮廓的可观察特性相关联的至少一个值;
基于第一描述符确定不满足用于区分第一对象和第二对象的标准,其中当在与冲突事件相关联的时间间隔期间第一描述符的第一值和与第二对象相关联的第二描述符的第二值之间的差小于最小值时,不满足标准;
响应于确定不满足标准,确定第一轮廓的第三描述符,其中第三描述符包括由人工神经网络生成的值,该人工神经网络被配置为识别顶视图像中的对象;以及
基于第三描述符确定一组预定义标识符中的第一标识符对应于第一对象。
167、如条款166所述的方法,还包括:
基于第一描述符确定满足用于区分第一对象和第二对象的标准,其中当第一描述符的第一值与第二描述符的第二值之间的差大于或等于最小值时满足标准;
基于第一描述符识别所述一组预定义标识符中的第一标识符;以及
将第一标识符与第一对象相关联。
168、如条款166所述的方法,还包括通过以下各项确定第一标识符对应于第一对象:
对于所述一组预定义标识符中的每个成员,计算第一标识符的值和所述预定义标识符的值的差的绝对值;以及
将第一标识符确定为与计算出的绝对值相关联的具有最小值的预定义标识符。
169、如条款158所述的方法,还包括通过以下各项确定第一描述符:
使用纹理算子计算第一轮廓的初始数据向量;以及
使用主成分分析选择初始数据向量的一部分以包含在第一描述符的第一描述符中。
170、如条款166所述的方法,其中:
所述一组预定义标识符包括第一对象的第一标识符和第二对象的第二标识符;以及
所述方法还包括:
在所述时间段之前的第一初始时间段期间:
确定与第一对象的第一高度相关联的第一高度描述符、与第一轮廓的形状相关联的第一轮廓描述符,以及与由人工神经网络为第一轮廓生成的第一向量对应的第一锚描述符;
以及
将第一高度描述符、第一轮廓描述符和第一锚描述符与第一标识符相关联;
在所述时间段之前的第二初始时间段期间:
确定与第二对象的第二高度相关联的第二高度描述符、与第二轮廓的形状相关联的第二轮廓描述符,以及与由人工神经网络为第二轮廓生成的第二向量对应的第二锚描述符;
以及
将第二高度描述符、第二轮廓描述符和第二锚描述符与第一标识符相关联。
171、如条款170所述的方法,其中第一描述符包括第一对象的高度;以及
所述方法还包括:
基于第一描述符确定满足用于区分第一对象和第二对象的标准,其中当第一描述符的第一值与第二描述符的第二值之间的差大于或等于最小值时满足标准;
响应于确定高度在第一高度描述符的阈值范围内,确定第一对象与第一描述符相关联;以及
响应于确定第一对象与第一描述符相关联,将第一对象与第一标识符相关联。
172、如条款166所述的方法,其中冲突事件对应于来自所述多个传感器中的第一传感器的第一顶视图像帧中第一轮廓与第二轮廓合并;以及
所述方法还包括:
响应于检测到冲突事件,从所述多个传感器中的第一传感器接收顶视图像帧,至少直到第一轮廓和第二轮廓不再合并为止;
以及
在第一轮廓和第二轮廓不再合并之后,使用第一对象识别算法确定第一对象的第一描述符。
173、一种跟踪子系统,通信地耦合到多个传感器,所述多个传感器中的每个传感器被配置为生成空间的至少一部分的顶视图像,跟踪子系统被配置为:
基于与第一对象相关联的第一轮廓的像素坐标,使用由所述多个传感器中的至少一个传感器生成的顶视图像在一段时间内跟踪第一对象在空间中的第一全局位置;
基于与第二对象相关联的第二轮廓的像素坐标,使用由所述多个传感器中的至少一个传感器生成的顶视图像在所述一段时间内跟踪第二对象在空间中的第二全局位置;
在与所述时间段内的时间对应的第一时间戳,检测到第一对象和第二对象之间的冲突事件,其中冲突事件对应于第一被跟踪位置在第二被跟踪位置的阈值距离内;
在检测到冲突事件之后,从所述多个传感器中的第一传感器接收第一顶视图像,第一顶视图像包括第一对象的顶视图像;
基于第一顶视图像确定第一对象的第一描述符,第一描述符包括与第一轮廓的可观察特性相关联的至少一个值;
基于第一描述符确定不满足用于区分第一对象和第二对象的标准,其中当在与冲突事件相关联的时间间隔期间第一描述符的第一值和与第二对象相关联的第二描述符的第二值之间的差小于最小值时,不满足标准;
响应于确定不满足标准,确定第一轮廓的第三描述符,其中第三描述符包括由人工神经网络生成的值,该人工神经网络被配置为识别顶视图像中的对象;以及
基于第三描述符确定一组预定义标识符中的第一标识符对应于第一对象。
174、如条款173所述的跟踪子系统,还被配置为:
基于第一描述符确定满足用于区分第一对象和第二对象的标准,其中当第一描述符的第一值与第二描述符的第二值之间的差大于或等于最小值时满足标准;
基于第一描述符识别所述一组预定义标识符中的第一标识符;以及
将第一标识符与第一对象相关联。
175、如条款173所述的跟踪子系统,还被配置为通过以下各项确定第一标识符对应于第一对象:
对于所述一组预定义标识符中的每个成员,计算第一标识符的值和所述预定义标识符的值的差的绝对值;以及
将第一标识符确定为与具有最小值的计算出的绝对值相关联的预定义标识符。
176、如条款173所述的跟踪子系统,还被配置为通过以下各项确定第一描述符:
使用纹理算子计算第一轮廓的初始数据向量;以及
使用主成分分析选择初始数据向量的一部分以包含在第一描述符的第一描述符中。
177、如条款173所述的跟踪子系统,其中:
所述一组预定义标识符包括第一对象的第一标识符和第二对象的第二标识符;以及
跟踪子系统还被配置为:
在所述时间段之前的第一初始时间段期间:
确定与第一对象的第一高度相关联的第一高度描述符、与第一轮廓的形状相关联的第一轮廓描述符,以及与由人工神经网络为第一轮廓生成的第一向量对应的第一锚描述符;
以及
将第一高度描述符、第一轮廓描述符和第一锚描述符与第一标识符相关联;
在所述时间段之前的第二初始时间段期间:
确定与第二对象的第二高度相关联的第二高度描述符、与第二轮廓的形状相关联的第二轮廓描述符,以及与由人工神经网络为第二轮廓生成的第二向量对应的第二锚描述符;
以及
将第二高度描述符、第二轮廓描述符和第二锚描述符与第一标识符相关联。
178、一种系统,包括:
多个传感器,每个传感器被配置为生成空间的至少一部分的顶视图像;以及
跟踪子系统,通信地耦合到所述多个传感器,所述跟踪子系统被配置为:
接收由所述多个传感器生成的顶视图像;
使用由所述多个传感器生成的顶视图像的至少一部分来跟踪空间中的第一对象和一个或多个其它对象;
至少基于被跟踪的第一对象的标识符与第一对象相关联的概率小于阈值概率值,确定需要重新识别被跟踪的第一对象;
响应于确定需要重新识别被跟踪的第一对象,确定被跟踪的第一对象的候选者标识符,其中候选者标识符包括所有被跟踪对象的标识符的子集,所述子集包括基于被跟踪的第一对象的移动历史以及被跟踪的第一对象与空间中的所述一个或多个其它被跟踪对象的交互的被跟踪的第一对象的可能的标识符;
从所述多个传感器中的第一传感器接收第一对象的第一顶视图像;
基于第一顶视图像确定第一对象的第一描述符,第一描述符包括与和第一对象相关联的第一轮廓的特性相关联的至少一个值;
将第一描述符与和为第一对象确定的候选者标识符相关联的一组预定描述符进行比较;
根据比较结果,确定第一对象的更新后的标识,其中更新后的标识符为其值在第一描述符值的阈值范围内的预定描述符;以及
将更新后的标识符分配给第一对象。
179、如条款178所述的系统,其中:
第一描述符包括与帧中的第一对象的特性相关联的第一数据向量;预定描述符中的每个预定描述符包括对应的预定数据向量;以及跟踪子系统还被配置为:
通过计算第一数据向量和预定数据向量中的每个预定数据向量之间的第一余弦相似度值,将第一描述符与和候选者标识符相关联的预定描述符中的每个预定描述符进行比较;以及
将更新后的标识符确定为与最接近一的第一余弦相似度值对应的候选者标识符。
180、如条款179所述的系统,其中跟踪子系统还被配置为响应于确定第一余弦相似度值中的每一个小于阈值相似度值:
为所述一个或多个其它对象中的每个对象确定第二描述符值,其中每个第二描述符值包括第二数据向量;
确定第二数据向量中的每个向量与预定描述符值中的每个预定描述符值之间的第二余弦相似度值;以及
基于第一余弦相似度值和第二余弦相似度值,确定第一对象和每个其它对象的第二更新后的标识符。
181、如条款178所述的系统,其中描述符是基于第一顶视图像的一部分确定的,所述部分对应于包括全视场的由第一传感器寻址的中心子区间的预定义视场。
182、如条款177所述的系统,其中:
第一对象是第一人;
第一顶视图像为深度图像,深度图像包括距第一传感器不同深度的图像数据;以及
跟踪子系统还被配置为基于第一顶视图像内的关注区间确定描述符,其中关注区间包括对应于与第一人的头部相关联的深度的图像数据。
183、如条款177所述的系统,其中跟踪子系统还被配置为在确定需要重新识别被跟踪的第一对象之前,周期性地确定与候选者标识符相关联的更新后的预定描述符。
184、如条款183所述的系统,其中跟踪子系统还被配置为:
响应于确定更新后的预定描述符,确定第一更新后的预定描述符与对应的先前预定的描述符相差至少阈值量;以及
保存更新后的描述符和对应的先前预定的描述符两者。
185、一种方法,包括:
接收由多个传感器生成的顶视图像,所述多个传感器中的每个传感器被配置为生成空间的至少一部分的顶视图像;
使用由所述多个传感器生成的顶视图像的至少一部分来跟踪空间中的第一对象和一个或多个其它对象;
至少基于被跟踪的第一对象的标识符与第一对象相关联的概率小于阈值概率值,确定需要重新识别被跟踪的第一对象;
响应于确定需要重新识别被跟踪的第一对象,确定被跟踪的第一对象的候选者标识符,其中候选者标识符包括所有被跟踪对象的标识符的子集,所述子集包括基于被跟踪的第一对象的移动历史以及被跟踪的第一对象与空间中的所述一个或多个其它被跟踪对象的交互的被跟踪的第一对象的可能的标识符;
从所述多个传感器中的第一传感器接收第一对象的第一顶视图像;
基于第一顶视图像确定第一对象的第一描述符,第一描述符包括与和第一对象相关联的第一轮廓的特性相关联的至少一个值;
将第一描述符与和为第一对象确定的候选者标识符相关联的一组预定描述符进行比较;
根据比较结果,确定第一对象的更新后的标识,其中更新后的标识符为其值在第一描述符值的阈值范围内的预定描述符;以及
将更新后的标识符分配给第一对象。
186、如条款185所述的方法,其中:
第一描述符包括与帧中的第一对象的特性相关联的第一数据向量;预定描述符中的每个预定描述符包括对应的预定数据向量;以及所述方法还包括:
通过计算第一数据向量和预定数据向量中的每个预定数据向量之间的第一余弦相似度值,将第一描述符与和候选者标识符相关联的预定描述符中的每个预定描述符进行比较;以及
将更新后的标识符确定为与最接近一的第一余弦相似度值对应的候选者标识符。
187、如条款186所述的系统,还包括,响应于确定第一余弦相似度值中的每一个小于阈值相似度值:
为所述一个或多个其它对象中的每个对象确定第二描述符值,其中每个第二描述符值包括第二数据向量;
确定第二数据向量中的每个向量与预定描述符值中的每个预定描述符值之间的第二余弦相似度值;以及
基于第一余弦相似度值和第二余弦相似度值,确定第一对象和每个其它对象的第二更新后的标识符。
188、如条款185所述的方法,基于第一顶视图像的一部分来确定描述符,所述部分对应于包括全视场的由第一传感器寻址的中心子区间的预定义视场。
189、如条款185所述的方法,其中:
第一对象是第一人;
第一顶视图像为深度图像,深度图像包括来自第一传感器的在不同深度处的图像数据;以及
所述方法还包括基于第一顶视图像内的关注区间确定描述符,其中关注区间包括对应于与第一人的头部相关联的深度的图像数据。
190、如条款185所述的方法,还包括在确定需要重新识别被跟踪的第一对象之前,周期性地确定与候选者标识符相关联的更新后的预定描述符。
191、如条款190所述的方法,还包括:
响应于确定更新后的预定描述符,确定第一更新后的预定描述符与对应的先前预定的描述符相差至少阈值量;以及
保存更新后的描述符和对应的先前预定的描述符两者。
192、一种跟踪子系统,通信地耦合到多个传感器,所述多个传感器中的每个传感器被配置为生成空间的至少一部分的顶视图像,所述跟踪子系统被配置为:
接收由所述多个传感器生成的顶视图像;
使用由所述多个传感器生成的顶视图像的至少一部分来跟踪空间中的第一对象和一个或多个其它对象;
至少基于被跟踪的第一对象的标识符与第一对象相关联的概率小于阈值概率值,确定需要重新识别被跟踪的第一对象;
响应于确定需要重新识别被跟踪的第一对象,确定被跟踪的第一对象的候选者标识符,其中候选者标识符包括所有被跟踪对象的标识符的子集,所述子集包括基于被跟踪的第一对象的移动历史以及被跟踪的第一对象与空间中的所述一个或多个其它被跟踪对象的交互的被跟踪的第一对象的可能的标识符;
从所述多个传感器中的第一传感器接收第一对象的第一顶视图像;
基于第一顶视图像确定第一对象的第一描述符,第一描述符包括与和第一对象相关联的第一轮廓的特性相关联的至少一个值;
将第一描述符与和为第一对象确定的候选者标识符相关联的一组预定描述符进行比较;
根据比较结果,确定第一对象的更新后的标识符,其中更新后的标识符为其值在第一描述符值的阈值范围内的预定描述符;以及
将更新后的标识符分配给第一对象。
193、如条款192所述的跟踪子系统,其中:
第一描述符包括与帧中的第一对象的特性相关联的第一数据向量;预定描述符中的每个预定描述符包括对应的预定数据向量;以及跟踪子系统还被配置为:
通过计算第一数据向量和预定数据向量中的每个预定数据向量之间的第一余弦相似度值,将第一描述符与和候选者标识符相关联的预定描述符中的每个预定描述符进行比较;以及
将更新后的标识符确定为与最接近一的第一余弦相似度值对应的候选者标识符。
194、如条款193所述的跟踪子系统,还被配置为,响应于确定每个第一余弦相似度值小于阈值相似度值:
为所述一个或多个其它对象中的每个对象确定第二描述符值,其中每个第二描述符值包括第二数据向量;
确定第二数据向量中的每个向量与预定描述符值中的每个预定描述符值之间的第二余弦相似度值;以及
基于第一余弦相似度值和第二余弦相似度值,确定第一对象和每个其它对象的第二更新后的标识符。
195、如条款192所述的跟踪子系统,其中描述符是基于第一顶视图像的一部分确定的,所述部分对应于包括全视场的由第一传感器解决的中心子区间的预定义视场。
196、如条款192所述的跟踪子系统,其中:
第一对象是第一人;
第一顶视图像为深度图像,深度图像包括来自第一传感器的在不同深度处的图像数据;以及
所述跟踪子系统还被配置为基于第一顶视图像内的关注区间确定描述符,其中关注区间包括对应于与第一人的头部相关联的深度的图像数据。
197、如条款192所述的跟踪子系统,还被配置为在确定需要重新识别被跟踪的第一对象之前,周期性地确定与候选者标识符相关联的更新后的预定描述符。
198、一种系统,包括:
传感器,定位在空间中的支架上方,传感器被配置为生成包括支架的空间的至少一部分的顶视深度图像;
多个重量传感器,每个重量传感器与存储在支架的搁板上的对应物品相关联;以及
跟踪子系统,耦合到图像传感器和重量传感器,跟踪子系统被配置为:
接收包括由传感器生成的顶视深度图像的帧的图像馈送;
从重量传感器接收重量测量;
检测到与人的一部分进入与支架相邻的区和与第一物品从与第一重量传感器相关联的第一搁板移走相关联的重量变化中的一个或两者相关联的事件;
响应于检测到事件,基于第一人和支架之间的第一距离、第二人和支架之间的第二距离以及第一人和第二人之间的人间距离中的一个或多个,确定第一人和第二人可能与检测到的事件相关联;
响应于确定第一人和第二人可能与检测到的事件相关联,访问由传感器生成的第一顶视图像帧,第一顶视图像帧对应于人的所述部分进入与支架相邻的区时的时间戳;
在第一顶视图像中,识别与第一人对应的第一初始轮廓;
在从第一深度到第二深度的多个顺序迭代中将第一初始轮廓从第一深度扩大到第二深度,其中第一深度比第二深度更靠近传感器,其中第一初始计数器通过以下方式扩大:
检测第一深度处的第一轮廓;
检测第二深度处的第二轮廓;以及
基于第一轮廓和第二轮廓生成扩大的轮廓;
确定扩大的轮廓进入与支架相邻的区;
在确定第一轮廓进入与支架相邻的区之后,确定直到第一轮廓进入与支架相邻的区为止的第一迭代次数;
在第一顶视图像帧中识别与第二人对应的第二初始轮廓;
在从第一深度到第二深度的多个顺序迭代中将第二初始轮廓从第一深度扩大到第二深度;
确定在扩大之后第二轮廓进入与支架相邻的区;
在确定第二轮廓进入与支架相邻的区之后,确定直到第二轮廓进入与支架相邻的区为止的第二迭代次数;
响应于确定第一数量小于最大扩大次数且小于第二扩大次数,将第一物品分配给第一人。
199、如条款198所述的系统,其中跟踪子系统还被配置为在将第一物品分配给第一人之后:
将第一轮廓的臂段投影到支架中;以及
确定投影的臂段是否指向支架上第一物品的地点。
200、如条款199所述的系统,其中跟踪子系统还被配置为响应于确定投影的臂段没有指向第一物品的地点,使第一物品从第一人解除分配。
201、如条款198所述的系统,其中跟踪子系统还被配置为:
确定扩大的第一轮廓和扩大的第二轮廓合并;
响应于确定第一和第二扩大的轮廓合并,使用基于人工神经网络的姿态估计算法确定第一人的第一姿态和第二人的第二姿态;以及
响应于确定第一姿态对应于与第一物品的交互,将第一物品分配给第一人。
202、如条款198所述的系统,跟踪子系统还被配置为:
确定第一迭代次数超过最大迭代次数,其中最大迭代次数对应于达到与第一人高度的50%对应的深度所需的迭代次数;以及
响应于确定第一迭代次数超过最大迭代次数,使用基于人工神经网络的姿态估计算法确定第一人的第一姿态和第二人的第二姿态;以及
响应于确定第一姿态对应于与第一物品的交互,将第一物品分配给第一人。
203、如条款198所述的系统,其中跟踪子系统还被配置为基于第一人和支架的第一相对朝向以及第二人和支架的第二相对朝向确定第一人和第二人可能与检测到的事件相关联。
204、如条款198所述的系统,其中传感器安装在空间的天花板上。
205、一种方法,包括:
接收包括由传感器生成的顶视图像的帧的图像馈送,该传感器定位在空间中的支架上方并且被配置为生成包括支架的空间的至少一部分的顶视图像;
接收来自重量传感器的重量测量,该重量传感器被配置为在将第一物品从支架的搁板上移走时测量重量变化;
检测与人的一部分进入与支架相邻的区和与第一物品从与第一重量传感器相关联的第一搁板移走相关联的重量变化中的一个或两者相关联的事件;
响应于检测到事件,基于第一人和支架之间的第一距离、第二人和支架之间的第二距离以及第一人和第二人之间的人间距离中的一个或多个来确定第一人和第二人可能与检测到的事件相关联;
响应于确定第一人和第二人可能与检测到的事件相关联,访问由传感器生成的第一顶视图像帧,第一顶视图像帧对应于人的所述部分进入与支架相邻的区时的时间戳;
在第一顶视图中,识别与第一人对应的第一初始轮廓;
在从第一深度到第二深度的多个顺序迭代中将第一初始轮廓从第一深度扩大到第二深度,其中第一深度比第二深度更靠近传感器,其中第一初始计数器通过以下方式扩大:
检测第一深度处的第一轮廓;
检测第二深度处的第二轮廓;以及
基于第一轮廓和第二轮廓生成扩大的轮廓;
确定扩大的轮廓进入与支架相邻的区;
在确定第一轮廓进入与支架相邻的区之后,确定直到第一轮廓进入与支架相邻的区为止的第一迭代次数;
在第一顶视图像帧中识别与第二人对应的第二初始轮廓;
在从第一深度到第二深度的多个顺序迭代中将第二初始轮廓从第一深度扩大到第二深度;
确定在扩大之后第二轮廓进入与支架相邻的区;
在确定第二轮廓进入与支架相邻的区之后,确定直到第二轮廓进入与支架相邻的区为止的第二迭代次数;
响应于确定第一数量小于最大扩大次数且小于第二扩大次数,将第一物品分配给第一人。
206、如条款205所述的方法,还包括,在将第一物品分配给第一人之后:
将第一轮廓的臂段投影到支架中;以及
确定投影的臂段是否指向搁板上第一物品的地点。
207、如条款206所述的方法,还包括,响应于确定投影的臂段不指向第一物品的地点,使第一物品从第一人解除分配。
208、如条款205所述的方法,还包括:
确定扩大的第一轮廓和扩大的第二轮廓合并;
响应于确定第一和第二扩大的轮廓合并,使用基于人工神经网络的姿态估计算法确定第一人的第一姿态和第二人的第二姿态;以及
响应于确定第一姿态对应于与第一物品的交互,将第一物品分配给第一人。
209、如权利要求205所述的方法,还包括:
确定第一迭代次数超过最大迭代次数,其中最大迭代次数对应于达到与第一人高度的50%对应的深度所需的迭代次数;以及
响应于确定第一迭代次数超过最大迭代次数,使用基于人工神经网络的姿态估计算法确定第一人的第一姿态和第二人的第二姿态;以及
响应于确定第一姿态对应于与第一物品的交互,将第一物品分配给第一人。
210、如条款205所述的方法,还包括基于第一人和支架的第一相对朝向以及第二人和支架的第二相对朝向确定第一人和第二人可能与检测到的事件相关联。
211、如条款205所述的方法,其中传感器安装在空间的天花板上。
212、一种耦合到图像传感器和重量传感器的跟踪子系统,其中图像传感器定位在空间中的支架上方并且被配置为生成包括支架的空间的至少一部分的顶视图像,其中重量传感器被配置为在第一物品从支架的搁板上移走时测量重量变化,跟踪子系统被配置为:
接收包括由传感器生成的顶视图像的帧的图像馈送;
从重量传感器接收重量测量;
检测与人的一部分进入与支架相邻的区和与第一物品从与重量传感器相关联的第一搁板移走相关联的重量变化中的一个或两者相关联的事件;
响应于检测到事件,基于第一人和支架之间的第一距离、第二人和支架之间的第二距离以及第一人和第二人之间的人间距离中的一个或多个来确定第一人和第二人可能与检测到的事件相关联;
响应于确定第一人和第二人可能与检测到的事件相关联,访问由传感器生成的第一顶视图像帧,第一顶视图像帧对应于人的所述部分进入与支架相邻的区时的时间戳;
在第一顶视图像中,识别与第一人对应的第一初始轮廓;
在从第一深度到第二深度的多个顺序迭代中将第一初始轮廓从第一深度扩大到第二深度,其中第一深度比第二深度更靠近传感器,其中第一初始计数器通过以下方式扩大:
检测第一深度处的第一轮廓;
检测第二深度处的第二轮廓;以及
基于第一轮廓和第二轮廓生成扩大的轮廓;
确定扩大的轮廓进入与支架相邻的区;
在确定第一轮廓进入与支架相邻的区之后,确定直到第一轮廓进入与支架相邻的区为止的第一迭代次数;
在第一顶视图像帧中识别与第二人对应的第二初始轮廓;
在从第一深度到第二深度的多个顺序迭代中将第二初始轮廓从第一深度扩大到第二深度;
确定在扩大之后第二轮廓进入与支架相邻的区;
在确定第二轮廓进入与支架相邻的区之后,确定直到第二轮廓进入与支架相邻的区为止的第二迭代次数;
响应于确定第一数量小于最大扩大次数且小于第二扩大次数,将第一物品分配给第一人。
213、如条款228所述的跟踪子系统,还被配置为,在将第一物品分配给第一人之后:
将第一轮廓的臂段投影到支架中;以及
确定投影的臂段是否指向支架上第一物品的地点。
214、如条款213所述的跟踪子系统,还被配置为响应于确定投影的臂段没有指向第一物品的地点,使第一物品从第一人解除分配。
215、如条款213所述的跟踪子系统,还被配置为:
确定扩大的第一轮廓和扩大的第二轮廓合并;
响应于确定第一和第二扩大的轮廓合并,使用基于人工神经网络的姿态估计算法确定第一人的第一姿态和第二人的第二姿态;以及
响应于确定第一姿态对应于与第一物品的交互,将第一物品分配给第一人。
216、如权利要求213所述的跟踪子系统,还被配置为:
确定第一迭代次数超过最大迭代次数,其中最大迭代次数对应于达到与第一人高度的50%对应的深度所需的迭代次数;以及
响应于确定第一迭代次数超过最大迭代次数,使用基于人工神经网络的姿态估计算法确定第一人的第一姿态和第二人的第二姿态;以及
响应于确定第一姿态对应于与第一物品的交互,将第一物品分配给第一人。
217、如条款212所述的跟踪子系统,还被配置为基于第一人和支架的第一相对朝向以及第二人和支架的第二相对朝向确定第一人和第二人可能与检测到的事件相关联。
218、一种系统,包括:
多个传感器,至少包括第一传感器和第二传感器,每个传感器被配置为生成空间的至少一部分的顶视图像;以及
跟踪子系统,通信地耦合到多个传感器,跟踪子系统被配置为:
接收由所述多个传感器生成的顶视图像帧;
基于接收到的帧的至少一部分跟踪与第一标识符相关联的第一对象;
基于接收到的帧的至少一部分跟踪与第二标识符相关联的第二对象;
基于接收到的帧的至少一部分跟踪与第三标识符相关联的第三对象;
检测到第一对象在第二对象的阈值距离内;
响应于检测到第一对象在第二对象的阈值距离内:
确定第一对象与第二对象交换标识符的第一概率;
基于第一对象与第二对象交换标识符的第一概率更新第一对象的第一候选者列表,其中更新后的第一候选者列表包括第一对象与第一标识符相关联的第二概率和第一对象与第二标识符相关联的第三概率;
基于第一对象与第二对象交换标识符的第一概率更新第二对象的第二候选者列表,其中更新后的第二候选者列表包括第二对象与第一标识符相关联的第四概率和第二对象与第二标识符相关联的第五概率;
在更新第一和第二候选者列表之后,检测到第一对象在第三对象的阈值距离内;
响应于检测到第一对象在第三对象的阈值距离内:
确定第一对象与第三对象交换标识符的第六概率;
基于第一对象与第三对象交换标识符的第六概率进一步更新第一对象的第一候选者列表,其中进一步更新后的第一候选者列表包括第一对象与第一标识符相关联的更新后的第二概率、第一对象与第二标识符相关联的更新后的第三概率,以及第一对象与第三标识符相关联的第七概率;以及
基于第一对象与第三对象交换标识符的第六概率和在检测到第一对象在第三对象的阈值距离内之前的第一候选者列表,更新第三对象的第三候选者列表,其中更新后的第三候选者列表包括第三对象与第一标识符相关联的第八概率、第三对象与第二标识符相关联的第九概率,以及第三对象与第三标识符相关联的第十概率。
219、如条款218所述的系统,其中跟踪子系统被配置为通过以下各项检测到第一对象在第二对象的阈值距离内:
使用将由第一传感器生成的顶视图像中的像素的地点与空间中的物理坐标相关联的第一单应性以及将由第二传感器生成的顶视图像中的像素的地点与空间中的物理坐标相关联的第二单应性来确定第一对象在空间中的第一物理坐标;
使用第一单应性和第二单应性确定第二对象的第二物理坐标;以及
计算第一物理坐标与第二物理坐标之间的距离。
220、如条款218所述的系统,其中跟踪子系统被配置为通过访问预定义的概率值来确定第一对象与第二对象交换身份的第一概率。
221、如条款218所述的系统,其中跟踪子系统被配置为至少部分地基于第一对象和第二对象之间的距离来确定第一对象交换身份的第一概率。
222、如条款218所述的系统,其中跟踪子系统被配置为:
确定第一对象和第二对象之间的相对朝向;以及
至少部分地基于相对朝向来确定第一对象交换身份的第一概率。
223、如条款218所述的系统,其中跟踪子系统还被配置为:
确定第一候选者列表的最高值概率小于阈值;
响应于确定第一候选者列表的最高概率小于阈值,提取与第一轮廓相关联的特征,该特征包括第一轮廓的可观察特性;
确定可能与第一对象相关联的第一、第二和第三标识符的子集,其中子集包括来自第一候选者列表的具有大于阈值概率值的概率的标识符;
通过将提取出的特征与先前为与子集的每个标识符相关联的对象确定的一组预定义特征进行比较,确定第一对象的更新后的第一标识符;以及
更新第一候选者列表以包括更新后的第一标识符。
224、如条款218所述的系统,其中:
第一对象是第一人;
第二对象是第二人;
第三对象是第三人;以及
跟踪子系统还被配置为:
通过对以下各项求和,确定与第一人已经离开空间的概率相关联的组合离开概率:
如果第一对象离开空间,那么更新后的第二概率;
如果第二对象离开空间;那么第四概率;以及
如果第三对象离开空间,那么第八概率;
响应于确定组合离开概率大于阈值概率,传输可在第一人的设备上查看的离开通知,该离开通知指示确定第一人已离开空间。
225、如条款218所述的系统,其中跟踪系统被配置为:
在第一时间戳,确定不再检测到第一对象和第二对象,其中确定不再检测到第一对象和第二对象包括确定与第一对象相关联的第一轮廓与和第二对象相关联的第二轮廓合并;
在第一时间戳之后的第二时间戳,确定检测到第一对象和第二对象;以及
更新检测到的第一对象和第二对象的第一候选者列表和第二候选者列表。
226、一种方法,包括:
接收由多个传感器生成的顶视图像的帧,所述多个传感器至少包括第一传感器和第二传感器,每个传感器被配置为生成空间的至少一部分的顶视图像;
基于接收到的帧的至少一部分跟踪与第一标识符相关联的第一对象;
基于接收到的帧的至少一部分跟踪与第二标识符相关联的第二对象;
基于接收到的帧的至少一部分跟踪与第三标识符相关联的第三对象;
检测到第一对象在第二对象的阈值距离内;
响应于检测到第一对象在第二对象的阈值距离内:
确定第一对象与第二对象交换标识符的第一概率;
基于第一对象与第二对象交换标识符的第一概率更新第一对象的第一候选者列表,其中更新后的第一候选者列表包括第一对象与第一标识符相关联的第二概率和第一对象与第二标识符相关联的第三概率;
基于第一对象与第二对象交换标识符的第一概率更新第二对象的第二候选者列表,其中更新后的第二候选者列表包括第二对象与第一标识符相关联的第四概率和第二对象与第二标识符相关联的第五概率;
在更新第一和第二候选者列表之后,检测到第一对象在第三对象的阈值距离内;
响应于检测到第一对象在第三对象的阈值距离内:
确定第一对象与第三对象交换标识符的第六概率;
基于第一对象与第三对象交换标识符的第六概率进一步更新第一对象的第一候选者列表,其中进一步更新后的第一候选者列表包括第一对象与第一标识符相关联的更新后的第二概率、第一对象与第二标识符相关联的更新后的第三概率,以及第一对象与第三标识符相关联的第七概率;以及
基于第一对象与第三对象交换标识符的第六概率和在检测到第一对象在第三对象的阈值距离内之前的第一候选者列表,更新第三对象的第三候选者列表,其中更新后的第三候选者列表包括第三对象与第一标识符相关联的第八概率、第三对象与第二标识符相关联的第九概率,以及第三对象与第三标识符相关联的第十概率。
227、如条款226所述的方法,还包括如下检测第一对象在第二对象的阈值距离内:
使用将由第一传感器生成的顶视图像中的像素的地点与空间中的物理坐标相关联的第一单应性以及将由第二传感器生成的顶视图像中的像素的地点与空间中的物理坐标相关联的第二单应性来确定第一对象在空间中的第一物理坐标;
使用第一单应性和第二单应性确定第二对象的第二物理坐标;以及
计算第一物理坐标与第二物理坐标之间的距离。
228、如条款225所述的方法,还包括通过访问预定义的概率值来确定第一对象与第二对象交换身份的第一概率。
229、如条款226所述的方法,还包括至少部分地基于第一对象和第二对象之间的距离来确定第一对象交换身份的第一概率。
230、如条款226所述的方法,还包括:
确定第一对象和第二对象之间的相对朝向;以及
至少部分地基于相对朝向来确定第一对象交换身份的第一概率。
231、如条款226所述的方法,还包括:
确定第一候选者列表的最高值概率小于阈值;
响应于确定第一候选者列表的最高概率小于阈值,提取与第一轮廓相关联的特征,该特征包括第一轮廓的可观察特性;
确定可能与第一对象相关联的第一、第二和第三标识符的子集,其中子集包括来自第一候选者列表的具有大于阈值概率值的概率的标识符;
通过将提取出的特征与先前为与子集的每个标识符相关联的对象确定的一组预定义特征进行比较,确定第一对象的更新后的第一标识符;以及
更新第一候选者列表以包括更新后的第一标识符。
232、如条款226所述的方法,其中:
第一对象是第一人;
第二对象是第二人;
第三对象是第三人;以及
所述方法还包括:
通过对以下各项求和,确定与第一人已经离开空间的概率相关联的组合离开概率:
如果第一对象离开空间,那么更新后的第二概率;
如果第二对象离开空间;那么第四概率;以及
如果第三对象离开空间,那么第八概率;
响应于确定组合离开概率大于阈值概率,传输可在第一人的设备上查看的离开通知,该离开通知指示确定第一人已离开空间。
233、如条款226所述的方法,还包括:
在第一时间戳,确定不再检测到第一对象和第二对象,其中确定不再检测到第一对象和第二对象包括确定与第一对象相关联的第一轮廓与和第二对象相关联的第二轮廓合并;
在第一时间戳之后的第二时间戳,确定检测到第一对象和第二对象;以及
更新检测到的第一对象和第二对象的第一候选者列表和第二候选者列表。
234、一种跟踪子系统,通信地耦合到所述多个传感器,多个传感器至少包括第一传感器和第二传感器,每个传感器被配置为生成空间的至少一部分的顶视图像,其中跟踪子系统被配置为:
接收由所述多个传感器生成的顶视图像帧;
基于接收到的帧的至少一部分跟踪与第一标识符相关联的第一对象;
基于接收到的帧的至少一部分跟踪与第二标识符相关联的第二对象;
基于接收到的帧的至少一部分跟踪与第三标识符相关联的第三对象;
检测到第一对象在第二对象的阈值距离内;
响应于检测到第一对象在第二对象的阈值距离内:
确定第一对象与第二对象交换标识符的第一概率;
基于第一对象与第二对象交换标识符的第一概率更新第一对象的第一候选者列表,其中更新后的第一候选者列表包括第一对象与第一标识符相关联的第二概率和第一对象与第二标识符相关联的第三概率;
基于第一对象与第二对象交换标识符的第一概率更新第二对象的第二候选者列表,其中更新后的第二候选者列表包括第二对象与第一标识符相关联的第四概率和第二对象与第二标识符相关联的第五概率;
在更新第一和第二候选者列表之后,检测到第一对象在第三对象的阈值距离内;
响应于检测到第一对象在第三对象的阈值距离内:
确定第一对象与第三对象交换标识符的第六概率;
基于第一对象与第三对象交换标识符的第六概率进一步更新第一对象的第一候选者列表,其中进一步更新后的第一候选者列表包括第一对象与第一标识符相关联的更新后的第二概率、第一对象与第二标识符相关联的更新后的第三概率,以及第一对象与第三标识符相关联的第七概率;以及
基于第一对象与第三对象交换标识符的第六概率和在检测到第一对象在第三对象的阈值距离内之前的第一候选者列表,更新第三对象的第三候选者列表,其中更新后的第三候选者列表包括第三对象与第一标识符相关联的第八概率、第三对象与第二标识符相关联的第九概率,以及第三对象与第三标识符相关联的第十概率。
235、如条款218所述的跟踪子系统,还被配置为如下检测第一对象在第二对象的阈值距离内:
使用将由第一传感器生成的顶视图像中的像素的地点与空间中的物理坐标相关联的第一单应性以及将由第二传感器生成的顶视图像中的像素的地点与空间中的物理坐标相关联的第二单应性来确定第一对象在空间中的第一物理坐标;
使用第一单应性和第二单应性确定第二对象的第二物理坐标;以及
计算第一物理坐标与第二物理坐标之间的距离。
236、如条款234所述的跟踪子系统,还被配置为:
确定第一对象和第二对象之间的相对朝向;以及
至少部分地基于相对朝向来确定第一对象交换身份的第一概率。
237、如条款234所述的跟踪子系统,其中:
第一对象是第一人;
第二对象是第二人;
第三对象是第三人;以及
跟踪子系统还被配置为:
通过对以下各项求和,确定与第一人已经离开空间的概率相关联的组合离开概率:
如果第一对象离开空间,那么更新后的第二概率;
如果第二对象离开空间;那么第四概率;以及
如果第三对象离开空间,那么第八概率;
响应于确定组合离开概率大于阈值概率,传输可在第一人的设备上查看的离开通知,该离开通知指示确定第一人已离开空间。
238、一种系统,包括:
传感器,定位在空间中的支架上方,传感器被配置为生成包括支架的空间的至少一部分的顶视图像;
多个重量传感器,每个重量传感器与存储在支架的搁板上的对应物品相关联;以及
跟踪子系统,耦合到图像传感器和重量传感器,跟踪子系统被配置为:
接收包括由传感器生成的顶视图像的帧的图像馈送;
从重量传感器接收重量测量;
检测到与人的一部分进入与支架相邻的区和与第一物品从与第一重量传感器相关联的第一搁板移走相关联的重量变化相关联的事件;
响应于检测到事件,基于第一人与支架之间的第一距离、第二人与支架之间的第二距离以及第一人和第二人之间的人间距离中的一个或多个,确定第一人和第二人可能与检测到的事件相关联;
响应于确定第一人和第二人可能与检测到的事件相关联,存储由传感器生成的顶视图像的缓冲帧,该缓冲帧对应于人的所述部分离开与支架相邻的区之后的时间段;
在存储的帧中跟踪第一物品的像素位置;
基于第一物品的被跟踪像素位置,计算第一物品在所述时间段的第一部分期间移动通过空间的速度;
基于计算出的第一物品的速度,识别第一物品的速度小于阈值速度的第一帧,其中第一帧中第一物品的被跟踪像素位置对应于第一物品的第一停止位置;
确定第一帧中的第一物品的第一停止位置比与第二人相关联的第二像素位置更接近与第一人相关联的第一像素位置;以及
响应于确定第一停止位置更接近第一像素位置,将第一物品分配给第一人。
239、如条款238所述的系统,其中跟踪子系统还被配置为使用粒子过滤器跟踪器来跟踪第一物品的像素位置。
240、如条款239所述的系统,其中跟踪子系统还被配置为使用使用粒子过滤器跟踪器确定的第一物品的估计未来位置来确定第一物品的速度。
241、如条款238所述的系统,其中跟踪子系统还被配置为:
确定第一停止位置为距第一像素位置的第一距离和距第二像素位置的第二距离;
确定第一距离与第二距离之差的绝对值小于阈值距离;
响应于确定第一距离与第二距离之差的绝对值小于阈值距离,继续跟踪第一物品并确定物品的第二停止位置;
确定第二停止位置比第二像素位置更靠近第一像素位置;以及
响应于第二停止位置更接近第一像素位置,将第一物品分配给第一人。
242、如条款238所述的系统,其中:
第一物品包括传感器可见的视觉可观察标签;以及
跟踪子系统被配置为至少部分地基于视觉可观察标签来跟踪第一物品。
243、如条款238所述的系统,其中跟踪子系统还被配置为使用机器学习算法来检测第一物品,其中机器学习算法是使用合成数据训练的。
244、如条款238所述的系统,其中传感器安装在房间的天花板上。
245、一种方法,包括:
接收包括由传感器生成的顶视图像帧的图像馈送,传感器定位在空间中的支架上方并且被配置为生成包括支架的空间的至少一部分的顶视图像;
接收来自重量传感器的重量测量,该重量传感器被配置为在将第一物品从支架的搁板上移走时测量重量变化;
检测到与人的一部分进入与支架相邻的区和与第一物品从与第一重量传感器相关联的第一搁板移走相关联的重量变化中的一个或两者相关联的事件;
响应于检测到事件,基于第一人与支架之间的第一距离、第二人与支架之间的第二距离以及第一人和第二人之间的人间距离中的一个或多个,确定第一人和第二人可能与检测到的事件相关联;
响应于确定第一人和第二人可能与检测到的事件相关联,存储由传感器生成的顶视图像的缓冲帧,该缓冲帧对应于人的所述部分离开与支架相邻的区之后的时间段;
在存储的帧中跟踪第一物品的像素位置;
基于第一物品的被跟踪像素位置,计算第一物品在所述时间段的第一部分期间移动通过空间的速度;
基于计算出的第一物品的速度,识别第一物品的速度小于阈值速度的第一帧,其中第一帧中第一物品的被跟踪像素位置对应于第一物品的第一停止位置;
确定第一帧中的第一物品的第一停止位置比与第二人相关联的第二像素位置更接近与第一人相关联的第一像素位置;以及
响应于确定第一停止位置更接近第一像素位置,将第一物品分配给第一人。
246、如条款245所述的方法,还包括使用粒子过滤器跟踪器来跟踪第一物品的像素位置。
247、如条款246所述的方法,还包括使用使用粒子过滤器跟踪器确定的第一物品的估计未来位置来确定第一物品的速度。
248、如条款245所述的方法,还包括:
确定第一停止位置为距第一像素位置的第一距离和距第二像素位置的第二距离;
确定第一距离与第二距离之差的绝对值小于阈值距离;
响应于确定第一距离与第二距离之差的绝对值小于阈值距离,继续跟踪第一物品并确定物品的第二停止位置;
确定第二停止位置比第二像素位置更靠近第一像素位置;以及
响应于第二停止位置更接近第一像素位置,将第一物品分配给第一人。
249、如条款245所述的方法,其中:
第一物品包括传感器可见的视觉可观察标签;以及
所述方法还包括至少部分地基于视觉可观察标签来跟踪第一物品。
250、如条款245所述的方法,还包括使用机器学习算法来检测第一物品,其中机器学习算法是使用合成数据训练的。
251、如条款245所述的方法,其中传感器安装在房间的天花板上。
252、一种耦合到图像传感器和重量传感器的跟踪子系统,其中图像传感器定位在空间中的支架上方并且被配置为生成包括支架的空间的至少一部分的顶视图像,其中重量传感器被配置为在从支架的搁板上移走第一物品时测量重量变化,跟踪子系统被配置为:
接收包括由传感器生成的顶视图像的帧的图像馈送;
从重量传感器接收重量测量;
检测到与人的一部分进入与支架相邻的区和与第一物品从与第一重量传感器相关联的第一搁板移走相关联的重量变化中的一个或两者相关联的事件;
响应于检测到事件,基于第一人与支架之间的第一距离、第二人与支架之间的第二距离以及第一人和第二人之间的人间距离中的一个或多个,确定第一人和第二人可能与检测到的事件相关联;
响应于确定第一人和第二人可能与检测到的事件相关联,存储由传感器生成的顶视图像的缓冲帧,该缓冲帧对应于人的所述部分离开与支架相邻的区之后的时间段;
在存储的帧中跟踪第一物品的像素位置;
基于第一物品的被跟踪像素位置,计算第一物品在所述时间段的第一部分期间移动通过空间的速度;
基于计算出的第一物品的速度,识别第一物品的速度小于阈值速度的第一帧,其中第一帧中第一物品的被跟踪像素位置对应于第一物品的第一停止位置;
确定第一帧中的第一物品的第一停止位置与和第二人相关联的第二像素位置相比更接近与第一人相关联的第一像素位置;以及
响应于确定第一停止位置更接近第一像素位置,将第一物品分配给第一人。
253、如条款252所述的跟踪子系统,还被配置为使用粒子过滤器跟踪器来跟踪第一物品的像素位置。
254、如条款253所述的跟踪子系统,还被配置为使用使用粒子过滤器跟踪器确定的第一物品的估计未来位置来确定第一物品的速度。
255、如条款252所述的跟踪子系统,还被配置为:
确定第一停止位置为距第一像素位置的第一距离和距第二像素位置的第二距离;
确定第一距离与第二距离之差的绝对值小于阈值距离;
响应于确定第一距离与第二距离之差的绝对值小于阈值距离,继续跟踪第一物品并确定物品的第二停止位置;
确定第二停止位置与第二像素位置相比更接近第一像素位置;以及
响应于第二停止位置更接近第一像素位置,将第一物品分配给第一人。
256、如条款252所述的跟踪子系统,其中:
第一物品包括传感器可见的视觉可观察标签;以及
跟踪子系统还被配置为至少部分地基于视觉可观察标签来跟踪第一物品。
257、如条款252所述的跟踪子系统,还被配置为使用机器学习算法来检测第一物品,其中机器学习算法是使用合成数据训练的。
258、一种系统,包括:
第一传感器,被配置为生成空间的至少第一部分的顶视图像;以及
传感器客户端,通信地耦合到第一传感器,传感器客户端被配置为:
在初始时间间隔期间:
接收由第一传感器生成的一个或多个第一顶视图像;
检测到所述一个或多个第一顶视图像中的一个或多个第一轮廓;
确定与检测到的第一轮廓对应的第一像素坐标,其中第一像素坐标与由第一传感器生成的顶视图像中要在对象跟踪期间排除的区间对应;以及
在初始时间间隔之后的后续时间间隔期间:
接收由第一传感器生成的第二顶视图像;
检测到第一顶视图像中的第二轮廓;
确定与检测到的第二轮廓对应的第二像素坐标;
确定是否至少阈值百分比的第二像素坐标与第一像素坐标重叠;
响应于确定至少阈值百分比的第二像素坐标与第一像素坐标重叠,不确定用于跟踪第二轮廓的第一像素位置;以及
响应于确定至少阈值百分比的第二像素坐标不与第一像素坐标重叠,确定用于跟踪第二轮廓的第一像素位置。
259、如条款258所述的系统,还包括:
第二传感器,通信地耦合到传感器客户端并且被配置为生成空间的至少第二部分的顶视图像;
其中传感器客户端还被配置为:
在初始时间间隔期间:
接收由第二传感器生成的一个或多个第三顶视图像;
检测到所述一个或多个第三顶视图像中的一个或多个第三轮廓;
确定与检测到的第三轮廓对应的第三像素坐标,其中第三像素坐标与由第二传感器生成的顶视图像中要在对象跟踪期间排除的区间对应;以及
在初始时间间隔之后的后续时间间隔期间:
接收由第二传感器生成的第四顶视图像;
检测到第四顶视图像中的第四轮廓;
确定与检测到的第四轮廓对应的第四像素坐标;
确定是否至少阈值百分比的第四像素坐标与第三像素坐标重叠;
响应于确定至少阈值百分比的第四像素坐标与第三像素坐标重叠,确定用于跟踪第四轮廓的第二像素位置;以及
响应于确定至少阈值百分比的第二像素坐标不与第一像素坐标重叠,不确定用于跟踪第四轮廓的第二像素位置。
260、如条款259所述的系统,其中第四轮廓和第二轮廓对应于空间中的相同对象。
261、如条款258所述的系统,其中传感器客户端还被配置为通过确定至少阈值百分比的第二像素坐标与第一像素坐标相同来确定至少阈值百分比的第二像素坐标与第一像素坐标重叠。
262、如条款258所述的系统,其中传感器客户端还被配置为如下确定至少阈值百分比的第二像素坐标与第一像素坐标重叠:
确定与第一像素位置相关联的第一连续区域;
确定与第二轮廓相关联的第二连续区域;
计算第二连续区域在第一连续区域内的百分比;以及
确定计算出的百分比大于或等于阈值百分比。
263、如条款258所述的系统,其中阈值百分比是10%。
264、如条款258所述的系统,还包括:
服务器,通信地耦合到传感器客户端;
其中传感器客户端还配置为:
响应于确定阈值百分比的第二像素坐标与第一像素坐标相同,将用于跟踪第二轮廓的第一像素位置传输到服务器;以及
其中服务器被配置为:
从传感器客户端接收第一像素位置;
基于第一像素位置,使用单应性确定空间中的对应物理位置,单应性将由第一传感器生成的顶视图像中的像素坐标与空间中的物理坐标相关联;以及
在随后的时间间隔期间跟踪物理位置。
265、如条款264所述的系统,服务器还被配置为:
从传感器客户端接收第一像素坐标;以及
生成在空间中跟踪期间要排除的一组物理坐标,所述一组物理坐标对应于空间中在对象跟踪期间要排除的一个或多个物理区间。
266、如条款258所述的系统,其中在初始时间间隔期间在空间中没有人。
267、一种方法,包括:
在初始时间间隔期间:
接收由第一传感器生成的一个或多个第一顶视图像,第一传感器被配置为生成空间的至少第一部分的顶视图像;
检测到所述一个或多个第一顶视图像中的一个或多个第一轮廓;
确定与检测到的第一轮廓对应的第一像素坐标,其中第一像素坐标与由第一传感器生成的顶视图像中要在对象跟踪期间排除的区间对应;以及
在初始时间间隔之后的后续时间间隔期间:
接收由第一传感器生成的第二顶视图像;
检测到第一顶视图像中的第二轮廓;
确定与检测到的第二轮廓对应的第二像素坐标;
确定是否至少阈值百分比的第二像素坐标与第一像素坐标重叠;
响应于确定至少阈值百分比的第二像素坐标与第一像素坐标重叠,不确定用于跟踪第二轮廓的第一像素位置;以及
响应于确定至少阈值百分比的第二像素坐标不与第一像素坐标重叠,确定用于跟踪第二轮廓的第一像素位置。
268、如条款267所述的方法,还包括:
在初始时间间隔期间:
接收由第二传感器生成的一个或多个第三顶视图像,第二传感器被配置为生成空间的至少第二部分的顶视图像;
检测到所述一个或多个第三顶视图像中的一个或多个第三轮廓;
确定与检测到的第三轮廓对应的第三像素坐标,其中第三像素坐标与由第二传感器生成的顶视图像中要在对象跟踪期间排除的区间对应;以及
在初始时间间隔之后的后续时间间隔期间:
接收由第二传感器生成的第四顶视图像;
检测第四顶视图像中的第四轮廓;
确定与检测到的第四轮廓对应的第四像素坐标;
确定是否至少阈值百分比的第四像素坐标与第三像素坐标重叠;
响应于确定至少阈值百分比的第四像素坐标与第三像素坐标重叠,确定用于跟踪第四轮廓的第二像素位置;以及
响应于确定至少阈值百分比的第二像素坐标不与第一像素坐标重叠,不确定用于跟踪第四轮廓的第二像素位置。
269、如条款268所述的方法,其中第四轮廓和第二轮廓对应于空间中的相同对象。
270、如条款267所述的方法,还包括通过确定至少阈值百分比的第二像素坐标与第一像素坐标相同来确定至少阈值百分比的第二像素坐标与第一像素坐标重叠。
271、如条款267所述的方法,还包括如下确定至少阈值百分比的第二像素坐标与第一像素坐标重叠:
确定与第一像素位置相关联的第一连续区域;
确定与第二轮廓相关联的第二连续区域;
计算第二连续区域在第一连续区域内的百分比;以及
确定计算出的百分比大于或等于阈值百分比。
272、如条款267所述的方法,其中阈值百分比是10%。
273、如条款267所述的方法,还包括:
基于第一像素位置,使用单应性确定空间中的对应物理位置,单应性将由第一传感器生成的顶视图像中的像素坐标与空间中的物理坐标相关联;以及
在随后的时间间隔期间跟踪物理位置。
274、如条款273所述的方法,还包括确定在空间中跟踪期间要排除的一组物理坐标,所述一组物理坐标对应于空间中在对象跟踪期间要排除的一个或多个物理区间。
275、如条款267所述的方法,其中在初始时间间隔期间在空间中没有人。
276、一种通信地耦合到第一传感器的设备,第一传感器被配置为生成空间的至少第一部分的顶视图像,所述设备被配置为:
在初始时间间隔期间:
接收由第一传感器生成的一个或多个第一顶视图像;
检测到所述一个或多个第一顶视图像中的一个或多个第一轮廓;
确定与检测到的第一轮廓对应的第一像素坐标,其中第一像素坐标与由第一传感器生成的顶视图像中要在对象跟踪期间排除的区间对应;以及
在初始时间间隔之后的后续时间间隔期间:
接收由第一传感器生成的第二顶视图像;
检测到第一顶视图像中的第二轮廓;
确定与检测到的第二轮廓对应的第二像素坐标;
确定是否至少阈值百分比的第二像素坐标与第一像素坐标重叠;
响应于确定至少阈值百分比的第二像素坐标与第一像素坐标重叠,不确定用于跟踪第二轮廓的第一像素位置;以及
响应于确定至少阈值百分比的第二像素坐标不与第一像素坐标重叠,确定用于跟踪第二轮廓的第一像素位置。
277、如条款276所述的设备,所述设备还耦合到第二传感器,第二传感器被配置为生成空间的至少第二部分的顶视图像;
其中所述设备还被配置为:
在初始时间间隔期间:
接收由第二传感器生成的一个或多个第三顶视图像;
检测到所述一个或多个第三顶视图像中的一个或多个第三轮廓;
确定与检测到的第三轮廓对应的第三像素坐标,其中第三像素坐标与由第二传感器生成的顶视图像中要在对象跟踪期间排除的区间对应;以及
在初始时间间隔之后的后续时间间隔期间:
接收由第二传感器生成的第四顶视图像;
检测到第四顶视图像中的第四轮廓,其中第四轮廓和第二轮廓对应于空间中的相同对象;
确定与检测到的第四轮廓对应的第四像素坐标;
确定是否至少阈值百分比的第四像素坐标与第三像素坐标重叠;
响应于确定至少阈值百分比的第四像素坐标与第三像素坐标重叠,确定用于跟踪第四轮廓的第二像素位置;以及
响应于确定至少阈值百分比的第二像素坐标不与第一像素坐标重叠,不确定用于跟踪第四轮廓的第二像素位置。
278、一种系统,包括:
多个传感器,至少包括第一传感器和第二传感器,每个传感器被配置为生成空间的至少一部分的顶视图像;以及
跟踪子系统,通信地耦合到所述多个传感器,跟踪子系统被配置为:
从第一传感器接收第一图像馈送,第一图像馈送包括由第一传感器生成的顶视图像的帧,其中第一传感器在空间内具有第一视场;
从第二传感器接收第二图像馈送,第二图像馈送包括由第二传感器生成的顶视图像的第二帧,其中第二传感器在空间内具有第二视场,第二视场与第一视场部分重叠;
在第一时间戳处:
在来自第一图像馈送的第一帧中检测到与第一对象相关联的第一轮廓;
基于第一轮廓的像素坐标确定第一对象的第一像素位置;
在来自第二图像馈送的第二帧中检测到与第二对象相关联的第二轮廓,其中第二对象可以是或可以不是第一对象;
基于第二轮廓的像素坐标确定第二对象的第二像素位置;
基于第一像素位置,使用将由第一传感器生成的顶视图像中的像素坐标与空间中的物理坐标相关联的第一单应性,从第一轮廓确定第一对象的第一物理位置;
基于第二像素地点,使用将由第二传感器生成的顶视图像中的像素坐标与空间中的物理坐标相关联的第二单应性,确定第二对象的第二物理位置;
确定第一和第二物理位置是否在彼此的阈值距离内;
响应于确定第一和第二物理位置在彼此的阈值距离内:
确定第一对象的第一物理位置和第二对象的第二物理位置对应于同一对象的位置,使得第一对象和第二对象为同一对象;以及
基于第一物理位置和第二物理位置,确定同一对象在空间中的全局位置;以及
响应于确定第一和第二物理位置不在彼此的阈值距离内:
确定第一对象的第一物理位置和第二对象的第二物理位置对应于不同对象的位置,使得第一对象和第二对象为不同对象;
基于第一物理位置确定第一对象在空间中的第一全局位置;以及
基于第二物理位置确定第二对象在空间中的第二全局位置。
279、如条款278所述的系统,跟踪子系统还被配置为:
将同一对象在空间中的全局位置确定为第一物理位置和第二物理位置的平均值。
280、如条款279所述的系统,其中跟踪子系统还被配置为:
基于空间中同一对象的全局位置,确定同一对象在后续时间的后续全局位置的概率加权估计;以及
在随后的时间,确定不能从第一传感器的第一图像馈送和第二传感器的第二图像馈送获得像素位置;以及
响应于确定像素位置在后续时间不可获得,将后续全局位置的概率加权估计分配为同一对象在后续时间的全局位置。
281、如条款279所述的系统,其中跟踪子系统被配置为通过以下各项确定全局位置:
确定第一物理位置和第二物理位置之间的距离;
响应于确定该距离小于阈值距离,确定第一物理位置和第二物理位置对应于同一被跟踪对象;以及
计算第一和第二物理位置的平均值。
282、如条款278所述的系统,跟踪子系统被配置为在第二时间戳处:
在来自第一图像馈送的第三帧中未能检测到与对象相关联的第三轮廓;
响应于未能检测到第三轮廓,使用第一粒子过滤器生成第三轮廓的估计像素位置;
在来自第二图像馈送的第四帧中检测到与对象相关联的第四轮廓;从第四轮廓确定对象的第三像素位置;以及
基于估计的像素位置和第三像素位置,确定对象在空间中的第二全局位置。
283、如条款281所述的系统,跟踪子系统还被配置为,在所述时间段内的第三时间戳处:
确定与由第一粒子跟踪器生成的估计像素位置相关联的标准偏差;以及
响应于确定标准偏差大于阈值,基于第三像素位置确定对象在空间中的第二全局位置。
284、如条款278所述的系统,跟踪子系统包括:
第一传感器客户端,被配置为,在一段时间内:
基于第一馈送,使用第一粒子过滤器跟踪器跟踪对象的第一像素位置,第一粒子过滤器跟踪器被配置为在所述一段时间期间生成后续第一像素位置的概率加权估计;
第二传感器客户端,被配置为,在所述一段时间内:
基于第二馈送,使用第二粒子过滤器跟踪器跟踪对象的第二像素位置,第二粒子过滤器跟踪器被配置为在所述一段时间期间生成后续第二像素位置的概率加权估计;以及
主机,被配置为,在所述一段时间内:
接收被跟踪的第一和第二像素位置;以及
使用全局粒子过滤器跟踪器跟踪全局位置,全局粒子过滤器跟踪器被配置为在所述一段时间期间生成后续全局位置的概率加权估计。
285、如条款278所述的系统,其中第一视场与第二视场重叠10%至30%。
286、一种方法,包括:
从第一传感器接收第一图像馈送,第一传感器被配置为生成空间的至少一部分的顶视图像,其中第一图像馈送包括由第一传感器生成的顶视图像的帧,其中第一传感器在空间内具有第一视场;
从第二传感器接收第二图像馈送,第二传感器被配置为生成空间的至少一部分的顶视图像,其中第二图像馈送包括由第二传感器生成的顶视图像的第二帧,其中第二传感器在空间内具有第二视场,第二视场与第一视场部分重叠;
在第一时间戳处:
在来自第一图像馈送的第一帧中检测到与第一对象相关联的第一轮廓;
基于第一轮廓的像素坐标确定第一对象的第一像素位置;
在来自第二图像馈送的第二帧中检测到与第二对象相关联的第二轮廓,其中第二对象可以是或可以不是第一对象;
基于第二轮廓的像素坐标确定第二对象的第二像素位置;
基于第一像素位置,使用将由第一传感器生成的顶视图像中的像素坐标与空间中的物理坐标相关联的第一单应性,从第一轮廓确定第一对象的第一物理位置;
基于第二像素地点,使用将由第二传感器生成的顶视图像中的像素坐标与空间中的物理坐标相关联的第二单应性,确定第二对象的第二物理位置;
确定第一和第二物理位置是否在彼此的阈值距离内;
响应于确定第一和第二物理位置在彼此的阈值距离内:
确定第一对象的第一物理位置和第二对象的第二物理位置对应于同一对象的位置,使得第一对象和第二对象为同一对象;以及
基于第一物理位置和第二物理位置,确定同一对象在空间中的全局位置;以及
响应于确定第一和第二物理位置不在彼此的阈值距离内:
确定第一对象的第一物理位置和第二对象的第二物理位置对应于不同对象的位置,使得第一对象和第二对象为不同对象;
基于第一物理位置确定第一对象在空间中的第一全局位置;以及
基于第二物理位置确定第二对象在空间中的第二全局位置。
287、如条款286所述的方法,还包括:
将同一对象在空间中的全局位置确定为第一物理位置和第二物理位置的平均值。
288、如条款287所述的方法,还包括:
基于空间中同一对象的全局位置,确定同一对象在后续时间的后续全局位置的概率加权估计;以及
在随后的时间,确定不能从第一传感器的第一图像馈送和第二传感器的第二图像馈送获得像素位置;以及
响应于确定像素位置在后续时间不可获得,将后续全局位置的概率加权估计分配为同一对象在后续时间的全局位置。
289、如条款287所述的方法,还包括如下确定全局位置:
确定第一物理位置和第二物理位置之间的距离;
响应于确定该距离小于阈值距离,确定第一物理位置和第二物理位置对应于同一被跟踪对象;以及
计算第一和第二物理位置的平均值。
290、如条款286所述的方法,还包括,在第二时间戳处:
在来自第一图像馈送的第三帧中未能检测到与对象相关联的第三轮廓;
响应于未能检测到第三轮廓,使用第一粒子过滤器生成第三轮廓的估计像素位置;
在来自第二图像馈送的第四帧中检测到与对象相关联的第四轮廓;从第四轮廓确定对象的第三像素位置;以及
基于估计的像素位置和第三像素位置,确定对象在空间中的第二全局位置。
291、如条款290所述的方法,还包括,在所述时间段内的第三时间戳处:
确定与由第一粒子跟踪器生成的估计像素位置相关联的标准偏差;以及
响应于确定标准偏差大于阈值,基于第三像素位置确定对象在空间中的第二全局位置。
292、如条款286所述的方法,还包括,在一段时间内:
基于第一馈送,使用第一粒子过滤器跟踪器跟踪对象的第一像素位置,第一粒子过滤器跟踪器被配置为在所述一段时间期间生成后续第一像素位置的概率加权估计;
基于第二馈送,使用第二粒子过滤器跟踪器跟踪对象的第二像素位置,第二粒子过滤器跟踪器被配置为在所述一段时间期间生成后续第二像素位置的概率加权估计;以及
使用全局粒子过滤器跟踪器跟踪全局位置,全局粒子过滤器跟踪器被配置为在所述一段时间期间生成后续全局位置的概率加权估计。
293、一种跟踪子系统,通信地耦合到多个传感器,多个传感器至少包括第一传感器和第二传感器,每个传感器被配置为生成空间的至少一部分的顶视图像,跟踪系统被配置为:
从第一传感器接收第一图像馈送,第一图像馈送包括由第一传感器生成的顶视图像的帧,其中第一传感器在空间内具有第一视场;
从第二传感器接收第二图像馈送,第二图像馈送包括由第二传感器生成的顶视图像的第二帧,其中第二传感器在空间内具有第二视场,第二视场与第一视场部分重叠;
在第一时间戳处:
在来自第一图像馈送的第一帧中检测到与第一对象相关联的第一轮廓;
基于第一轮廓的像素坐标确定第一对象的第一像素位置;
在来自第二图像馈送的第二帧中检测到与第二对象相关联的第二轮廓,其中第二对象可以是或可以不是第一对象;
基于第二轮廓的像素坐标确定第二对象的第二像素位置;
基于第一像素位置,使用将由第一传感器生成的顶视图像中的像素坐标与空间中的物理坐标相关联的第一单应性,从第一轮廓确定第一对象的第一物理位置;
基于第二像素位置,使用将由第二传感器生成的顶视图像中的像素坐标与空间中的物理坐标相关联的第二单应性,确定第二对象的第二物理位置;
确定第一和第二物理位置是否在彼此的阈值距离内;
响应于确定第一和第二物理位置在彼此的阈值距离内:
确定第一对象的第一物理位置和第二对象的第二物理位置对应于同一对象的位置,使得第一对象和第二对象为同一对象;以及
基于第一物理位置和第二物理位置,确定同一对象在空间中的全局位置;以及
响应于确定第一和第二物理位置不在彼此的阈值距离内:
确定第一对象的第一物理位置和第二对象的第二物理位置对应于不同对象的位置,使得第一对象和第二对象为不同对象;
基于第一物理位置确定第一对象在空间中的第一全局位置;以及
基于第二物理位置确定第二对象在空间中的第二全局位置。
294、如条款293所述的跟踪子系统,还被配置为:
将同一对象在空间中的全局位置确定为第一物理位置和第二物理位置的平均值。
295、如条款294所述的跟踪子系统,还被配置为:
基于空间中同一对象的全局位置,确定同一对象在后续时间的后续全局位置的概率加权估计;以及
在随后的时间,确定不能从第一传感器的第一图像馈送和第二传感器的第二图像馈送获得像素位置;以及
响应于确定像素位置在后续时间不可获得,将后续全局位置的概率加权估计分配为同一对象在后续时间的全局位置。
296、如条款294的跟踪子系统,还被配置为如下确定全局位置:
确定第一物理位置和第二物理位置之间的距离;
响应于确定该距离小于阈值距离,确定第一物理位置和第二物理位置对应于同一被跟踪对象;以及
计算第一和第二物理位置的平均值。
297、如条款293所述的跟踪子系统,还被配置为在第二时间戳处:
在来自第一图像馈送的第三帧中未能检测到与对象相关联的第三轮廓;
响应于未能检测到第三轮廓,使用第一粒子过滤器生成第三轮廓的估计像素位置;
在来自第二图像馈送的第四帧中检测到与对象相关联的第四轮廓;
从第四轮廓确定对象的第三像素位置;以及
基于估计的像素位置和第三像素位置,确定对象在空间中的第二全局位置。
298、一种对象跟踪系统,包括:
传感器,被配置为在空间的全局平面内捕获支架的至少一部分的帧,其中:
全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
所述帧还包括与支架相关联的第一预定义区,其中第一预定义区靠近支架前部;
重量传感器,部署在支架的搁板上,其中重量传感器被配置为测量重量传感器上的物品的重量;以及
跟踪系统,可操作地耦合到传感器和重量传感器,包括:
一个或多个存储器,可操作以存储:
与人相关联的数字购物车;以及
识别与支架相关联的多个物品的物品地图,其中每个物品包括唯一识别物品的标记;以及
一个或多个处理器,可操作地耦合到所述一个或多个存储器,被配置为:
检测重量传感器上的重量减少;
接收支架的帧;
识别帧中第一预定义区内的物品上的标记;
识别物品地图中与识别出的标记相关联的物品;
确定人的像素地点,其中像素地点包括帧的第一像素行和第一像素列;
基于人的像素地点确定人在与帧中的支架相关联的第一预定义区内;以及
将识别出的物品添加到与该人相关联的数字购物车。
299、如条款298所述的系统,其中标记包括字母数字文本。
300、如条款298所述的系统,其中:
与支架相关联的第一预定义区与帧中的像素列范围和帧中的像素行范围相关联;以及
确定人在与支架相关联的第一预定义区内包括确定:
该人的像素地点的第一像素列在帧中的像素列范围内;以及该人的像素地点的第一像素行在帧中的像素行范围内。
301、如条款298所述的系统,其中:
支架包括前部、第一侧部、第二侧部和后部;以及
第一预定义区与帧中的支架的前部、第一侧部和第二侧部的至少一部分重叠。
302、如条款298所述的系统,其中所述一个或多个处理器还被配置为:
确定第二人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定支架的第三像素地点,其中第三像素地点包括帧中的第三像素行和第三像素列;
确定人的像素地点与支架的第三像素地点之间的第一距离;
确定第二人的第二像素地点与支架的第三像素地点之间的第二距离;以及
在将识别出的物品添加到与人相关联的数字购物车之前确定第一距离小于第二距离。
303、如条款298所述的系统,其中所述一个或多个处理器还被配置为:
识别帧中的第二人;
确定第二人在与支架相关联的第一预定义区之外;以及
响应于确定第二人在第一预定义区之外而忽略第二人。
304、如条款298所述的系统,其中:
重量传感器与识别出的物品相关联;以及
识别物品至少部分地基于检测重量传感器上的重量减少。
305、如条款298所述的系统,其中:
所述帧还包括靠近支架前部并且在第一预定义区内的第二预定义区;以及
所述一个或多个处理器还被配置为在检测到重量传感器上的重量减少之前在第二预定义区内检测到与人相关联的对象。
306、一种对象跟踪方法,包括:
检测到部署在支架的搁板上的重量传感器上的重量减少;
从传感器接收支架的至少一部分在空间的全局平面内的帧,其中:
全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
所述帧还包括与支架相关联的第一预定义区,其中第一预定义区靠近支架前部;
识别帧中第一预定义区内的物品上的标记;
识别与识别出的标记相关联的物品;
确定人的像素地点,其中像素地点包括帧的第一像素行和第一像素列;
基于人的像素地点确定人在与帧中的支架相关联的第一预定义区内;以及
将识别出的物品添加到与该人相关联的数字购物车。
307、如条款306所述的方法,其中标记包括字母数字文本。
308、如条款306所述的方法,其中确定人在与支架相关联的第一预定义区内包括确定:
该人的像素地点的第一像素列在帧中的像素列范围内;以及
该人的像素地点的第一像素行在帧中的像素行范围内。
309、如条款306所述的方法,其中:
支架包括前部、第一侧部、第二侧部和后部;以及
第一预定义区与帧中的支架的前部、第一侧部和第二侧部的至少一部分重叠。
310、如条款306所述的方法,还包括:
确定第二人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定支架的第三像素地点,其中第三像素地点包括帧中的第三像素行和第三像素列;
确定人的像素地点与支架的第三像素地点之间的第一距离;
确定第二人的第二像素地点与支架的第三像素地点之间的第二距离;以及
在将识别出的物品添加到与该人相关联的数字购物车之前,确定第一距离小于第二距离。
311、如条款306所述的方法,还包括:
识别帧中的第二人;
确定第二人在与支架相关联的第一预定义区之外;以及
响应于确定第二人在第一预定义区之外而忽略第二人。
312、如条款306所述的方法,其中识别物品至少部分地基于在重量传感器上检测到重量减少。
313、如条款306所述的方法,还包括在检测到重量传感器上的重量减少之前在帧中的第二预定义区内检测到与人相关联的对象,其中第二预定义区靠近支架前部并且在第一预定义区内。
314、一种计算机程序,包括存储在非暂态计算机可读介质中的可执行指令,所述指令在由处理器执行时,使所述处理器:
检测到部署在支架的搁板上的重量传感器上的重量减少;
从传感器接收支架的至少一部分在空间的全局平面内的帧,其中:
全局平面表示空间的(x,y)坐标;
所述帧包括多个像素;
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
所述帧还包括与支架相关联的第一预定义区,其中第一预定义区靠近支架前部;
识别帧中第一预定义区内的物品上的标记;
识别与识别出的标记相关联的物品;
确定人的像素地点,其中像素地点包括帧的第一像素行和第一像素列;
基于人的像素地点确定人在与帧中的支架相关联的第一预定义区内;以及
将识别出的物品添加到与该人相关联的数字购物车。
315、如条款314所述的计算机程序,其中:
支架包括前部、第一侧部、第二侧部和后部;以及
在帧中,第一预定义区与支架的前部、第一侧部和第二侧部的至少一部分重叠。
316、如条款314所述的计算机程序,还包括指令,所述指令在由所述处理器执行时,使所述处理器:
确定第二人的第二像素地点,其中第二像素地点包括帧中的第二像素行和第二像素列;
确定支架的第三像素地点,其中第三像素地点包括帧中的第三像素行和第三像素列;
确定人的像素地点与支架的第三像素地点之间的第一距离;
确定第二人的第二像素地点与支架的第三像素地点之间的第二距离;以及
在将识别出的物品添加到与该人相关联的数字购物车之前,确定第一距离小于第二距离。
317、如条款314所述的计算机程序,还包括指令,所述指令在由所述处理器执行时,使所述处理器:
识别帧中的第二人;
确定第二人在与支架相关联的第一预定义区之外;以及
响应于确定第二人在第一预定义区之外而忽略第二人。
318、一种对象跟踪系统,包括:
多个传感器,被配置在定位在空间的至少一部分上方的传感器阵列中,其中:
所述多个传感器中的第一传感器被配置为捕获空间的至少一部分的全局平面的第一帧;
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;以及
跟踪系统,可操作地耦合到所述多个传感器,包括:
一个或多个存储器,可操作以存储与第一传感器相关联的第一单应性,其中:
第一单应性被配置为在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换;以及
一个或多个处理器,可操作地耦合到所述一个或多个存储器,被配置为:
接收第一帧;
确定位于空间中的对象在第一帧中的第三像素地点,其中第三像素地点包括第一帧的第一像素行和第一像素列;以及
将第一单应性应用于第三像素地点以确定识别全局平面中的第三x值和第三y值的第三(x,y)坐标。
319、如条款318所述的系统,其中所述多个传感器还包括可操作地耦合到跟踪系统的第二传感器,被配置为捕获空间的至少第二部分的全局平面的第二帧;
其中所述一个或多个存储器还可操作以存储与第二传感器相关联的第二单应性,其中:
第二单应性包括在第二帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;以及
第二单应性的系数与第一单应性的系数不同;以及其中所述一个或多个处理器还被配置为:
确定位于空间中的对象在第二帧中的第四像素地点;
将第二单应性应用于第四像素地点以确定识别全局平面中的第四x值和第四y值的第四(x,y)坐标。
320、如条款319所述的系统,其中所述一个或多个处理器还被配置为:
通过计算对象的第三(x,y)坐标和对象的第四(x,y)坐标的平均值来生成对象的平均(x,y)坐标。
321、如条款319所述的系统,其中所述一个或多个处理器还被配置为:
通过计算对象的第三(x,y)坐标和对象的第四(x,y)坐标的中值来生成对象的中值(x,y)坐标。
322、如条款319所述的系统,其中第三(x,y)坐标与第四(x,y)坐标相同。
323、如条款318所述的系统,其中:
所述一个或多个存储器还可操作以存储与第一传感器相关联的跟踪列表,其中跟踪列表识别:
对象的对象标识符;以及
对象的第三(x,y)坐标;以及
所述一个或多个处理器还被配置为响应于确定第三(x,y)坐标,将第三(x,y)坐标存储在与第一传感器相关联的跟踪列表中。
324、如条款318所述的系统,其中:
第一帧中的每个像素与像素值相关联;以及
第一单应性还被配置为在第一帧中的像素值和全局平面中的z坐标之间转换。
325、如条款318所述的系统,其中传感器阵列被定位成与全局平面平行。
326、一种对象跟踪方法,包括:
从多个传感器中的第一传感器接收第一帧,所述多个传感器被配置为在空间的至少一部分上方的传感器阵列中,其中:
第一帧是空间的所述至少一部分的全局平面;
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
确定位于空间中的对象在第一帧中的第三像素地点,其中第三像素地点包括第一帧的第一像素行和第一像素列;以及
将第一单应性应用于第三像素地点以确定识别全局平面中的第三x值和第三y值的第三(x,y)坐标,其中第一单应性被配置为在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换;
327、如条款326所述的方法,还包括:
从第二传感器接收空间的至少第二部分的全局平面的第二帧;
确定位于空间中的对象在第二帧中的第四像素地点;以及
将第二单应性应用于第四像素地点以确定识别全局平面中的第四x值和第四y值的第四(x,y)坐标,其中:
第二单应性包括在第二帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;以及
第二单应性的系数与第一单应性的系数不同。
328、如条款327所述的方法,还包括:
通过计算对象的第三(x,y)坐标和对象的第四(x,y)坐标的平均值来生成对象的平均(x,y)坐标。
329、如条款327所述的方法,还包括:
通过计算对象的第三(x,y)坐标和对象的第四(x,y)坐标的中值来生成对象的中值(x,y)坐标。
330、如条款326所述的方法,还包括:
响应于确定第三(x,y)坐标,将第三(x,y)坐标存储在与第一传感器相关联的跟踪列表中,其中跟踪列表识别:
对象的对象标识符;以及
对象的第三(x,y)坐标。
331、如条款326所述的方法,其中:
第一帧中的每个像素与像素值相关联;以及
第一单应性还被配置为在第一帧中的像素值和全局平面中的z坐标之间转换。
332、一种计算机程序,包括存储在非暂态计算机可读介质中的可执行指令,所述指令在由处理器执行时,使所述处理器:
从多个传感器中的第一传感器接收第一帧,所述多个传感器被配置为在空间的至少一部分上方的传感器阵列中,其中:
第一帧是空间的所述至少一部分的全局平面的;
第一帧包括多个像素;以及
所述多个像素中的每个像素与包括像素行和像素列的像素地点相关联;
确定位于空间中的对象在第一帧中的第三像素地点,其中第三像素地点包括第一帧的第一像素行和第一像素列;以及
将第一单应性应用于第三像素地点以确定识别全局平面中的第三x值和第三y值的第三(x,y)坐标,其中第一单应性被配置为在第一帧中的像素地点和全局平面中的(x,y)坐标之间转换;
333、如条款332所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器;
从第二传感器接收空间的至少第二部分的全局平面的第二帧;
确定位于空间中的对象在第二帧中的第四像素地点;以及
将第二单应性应用于第四像素地点以确定识别全局平面中的第四x值和第四y值的第四(x,y)坐标,其中:
第二单应性包括在第二帧中的像素地点和全局平面中的(x,y)坐标之间转换的系数;以及
第二单应性的系数与第一单应性的系数不同。
334、如条款333所述的计算机程序,还包括指令,所述指令在由所述处理器执行时使所述处理器:
通过计算对象的第三(x,y)坐标和对象的第四(x,y)坐标的平均值来生成对象的平均(x,y)坐标。
335、如条款333所述的计算机程序,还包括指令,所述指令在由所述处理器执行时,使所述处理器:
通过计算对象的第三(x,y)坐标和对象的第四(x,y)坐标的中值来生成对象的中值(x,y)坐标。
336、如条款332所述的计算机程序,还包括指令,所述指令在由所述处理器执行时,使所述处理器:
响应于确定第三(x,y)坐标,将第三(x,y)坐标存储在与第一传感器相关联的跟踪列表中,其中跟踪列表识别:
对象的对象标识符;以及
对象的第三(x,y)坐标。
337、如条款332所述的计算机程序,其中:
第一帧中的每个像素与像素值相关联;以及
第一单应性还被配置为在第一帧中的像素值和全局平面中的z坐标之间转换。

Claims (20)

1.一种系统,包括:
传感器,定位在空间中的支架上方,传感器被配置为生成包括支架的空间的至少一部分的顶视图像;
多个重量传感器,每个重量传感器与存储在支架的搁板上的对应物品相关联;以及
跟踪子系统,耦合到图像传感器和重量传感器,跟踪子系统被配置为:
接收包括由传感器生成的顶视图像的帧的图像馈送;
从重量传感器接收重量测量;
检测到与人的一部分进入与支架相邻的区和与第一物品从与第一重量传感器相关联的第一搁板移走相关联的重量变化中的一个或两者相关联的事件;
响应于检测到事件,基于第一人和支架之间的第一距离、第二人和支架之间的第二距离以及第一人和第二人之间的人间距离中的一个或多个,确定第一人和第二人可能与检测到的事件相关联;
响应于确定第一人和第二人可能与检测到的事件相关联,存储由传感器生成的顶视图像的在检测到的事件之后的缓冲帧;
使用至少一个存储的缓冲帧和第一动作检测算法,确定与检测到的事件相关联的动作是由第一人还是第二人执行的,其中第一动作检测算法被配置为基于至少一个存储的缓冲帧中的一个或多个轮廓的特性来检测动作;
至少部分地基于实现第一动作检测算法所需的迭代次数来确定第一动作检测算法的结果是否满足标准;
响应于确定第一动作检测算法的结果不满足标准,通过将第二动作检测算法应用于至少一个缓冲帧来确定与检测到的事件相关联的动作是由第一人还是第二人执行的,其中第二动作检测算法被配置为使用人工神经网络来检测动作;
响应于确定动作是由第一人执行的,将动作分配给第一人;以及
响应于确定动作是由第二人执行的,将动作分配给第二人。
2.如权利要求1所述的系统,其中跟踪子系统还被配置为:
在存储缓冲帧之后,确定存储的帧的顶视图像的关注区域;以及
使用至少一个存储的缓冲帧的关注区域和第一动作检测算法来确定与检测到的事件相关联的动作是由第一人还是第二人执行的。
3.如权利要求1所述的系统,其中存储的缓冲帧包括顶视图像的在人的所述部分进入与支架相邻的区和人的所述部分离开与支架相邻的区中的一个或两者之后的三个或更少的帧。
4.如权利要求3所述的系统,其中跟踪子系统还被配置为确定要与第一动作检测算法一起使用的缓冲帧的子集和要与第二动作检测算法一起使用的缓冲帧的第二子集。
5.如权利要求1所述的系统,其中跟踪子系统还被配置为基于第一人与支架之间的第一相对朝向和第二人与支架之间的第二相对朝向来确定第一人和第二人可能与检测到的事件相关联。
6.如权利要求1所述的系统,其中:
检测到的动作与人拾取存储在支架的第一搁板上的第一物品相关联;以及
跟踪子系统还被配置为:
响应于确定动作由第一人执行,将第一物品分配给第一人;以及
响应于确定动作由第二人执行,将第一物品分配给第二人。
7.如权利要求1所述的系统,其中:
第一动作检测算法涉及与第一人相关联的第一轮廓和与第二轮廓相关联的第二轮廓的迭代扩大;以及
标准包括以下要求:在第一轮廓和第二轮廓的最大迭代扩大次数内,人的所述部分进入与支架相邻的区与第一人或第二人相关联。
8.如权利要求7所述的系统,其中跟踪子系统还被配置为:
响应于确定在最大扩大次数内第一人与人的所述部分进入与支架相邻的区相关联,将动作分配给第一人。
9.一种方法,包括:
接收包括由传感器生成的顶视图像的帧的图像馈送,该传感器定位在空间中的支架上方并且被配置为生成包括支架的空间的至少一部分的顶视图像;
从与存储在支架的搁板上的对应物品相关联的重量传感器接收重量测量;
检测到与人的一部分进入与支架相邻的区和与第一物品从与重量传感器相关联的第一搁板移走相关联的重量变化中的一个或两者相关联的事件;
响应于检测到事件,基于第一人和支架之间的第一距离、第二人和支架之间的第二距离以及第一人和第二人之间的人间距离中的一个或多个,确定第一人和第二人可能与检测到的事件相关联;
响应于确定第一人和第二人可能与检测到的事件相关联,存储由传感器生成的顶视图像的在检测到的事件之后的缓冲帧;
使用至少一个存储的缓冲帧和第一动作检测算法,确定与检测到的事件相关联的动作是由第一人还是第二人执行的,其中第一动作检测算法被配置为基于至少一个存储的缓冲帧中的一个或多个轮廓的特性来检测动作;
至少部分地基于实现第一动作检测算法所需的迭代次数来确定第一动作检测算法的结果是否满足标准;
响应于确定第一动作检测算法的结果不满足标准,通过将第二动作检测算法应用于至少一个缓冲帧来确定与检测到的事件相关联的动作是由第一人还是第二人执行的,其中第二动作检测算法被配置为使用人工神经网络来检测动作;
响应于确定动作是由第一人执行的,将动作分配给第一人;以及
响应于确定动作是由第二人执行的,将动作分配给第二人。
10.如权利要求9所述的方法,还包括:
在存储缓冲帧之后,确定所存储的帧的顶视图像的关注区域;以及
使用至少一个存储的缓冲帧的关注区域和第一动作检测算法来确定与检测到的事件相关联的动作是由第一人还是第二人执行的。
11.如权利要求9所述的方法,其中存储的缓冲帧包括顶视图像的在人的所述部分进入与支架相邻的区和人的所述部分离开与支架相邻的区中的一个或两者之后的三个或更少的帧。
12.如权利要求11所述的方法,还包括确定要与第一动作检测算法一起使用的缓冲帧的子集和要与第二动作检测算法一起使用的缓冲帧的第二子集。
13.如权利要求9所述的方法,还包括基于第一人与支架之间的第一相对朝向和第二人与支架之间的第二相对朝向来确定第一人和第二人可能与检测到的事件相关联。
14.如权利要求9所述的方法,其中:
检测到的动作与人拾取存储在支架的第一搁板上的第一物品相关联;以及
所述方法还包括:
响应于确定动作由第一人执行,将第一物品分配给第一人;以及
响应于确定动作由第二人执行,将第一物品分配给第二人。
15.如权利要求9所述的方法,其中:
第一动作检测算法涉及与第一人相关联的第一轮廓和与第二轮廓相关联的第二轮廓的迭代扩大;以及
标准包括以下要求:在第一轮廓和第二轮廓的最大迭代扩大次数内,人的所述部分进入与支架相邻的区与第一人或第二人相关联。
16.如权利要求15所述的方法,还包括:响应于确定在最大扩大次数内第一人与人的所述部分进入与支架相邻的区相关联,将动作分配给第一人。
17.一种耦合到图像传感器和重量传感器的跟踪子系统,其中图像传感器定位在空间中的支架上方并且被配置为生成包括支架的空间的至少一部分的顶视图像,其中重量传感器被配置为在物品从支架的搁板上移走时测量重量的变化,所述跟踪子系统被配置为:
接收包括由传感器生成的顶视图像的帧的图像馈送;
从重量传感器接收重量测量;
检测到与人的一部分进入与支架相邻的区和与第一物品从与重量传感器相关联的第一搁板移走相关联的重量变化中的一个或两者相关联的事件;
响应于检测到事件,基于第一人和支架之间的第一距离、第二人和支架之间的第二距离以及第一人和第二人之间的人间距离中的一个或多个,确定第一人和第二人可能与检测到的事件相关联;
响应于确定第一人和第二人可能与检测到的事件相关联,存储由传感器生成的顶视图像的在检测到的事件之后的缓冲帧;
使用至少一个存储的缓冲帧和第一动作检测算法,确定与检测到的事件相关联的动作是由第一人还是第二人执行的,其中第一动作检测算法被配置为基于至少一个存储的缓冲帧中的一个或多个轮廓的特性来检测动作;
至少部分地基于实现第一动作检测算法所需的迭代次数来确定第一动作检测算法的结果是否满足标准;
响应于确定第一动作检测算法的结果不满足标准,通过将第二动作检测算法应用于至少一个缓冲帧来确定与检测到的事件相关联的动作是由第一人还是第二人执行的,其中第二动作检测算法被配置为使用人工神经网络来检测动作;
响应于确定动作是由第一人执行的,将动作分配给第一人;以及
响应于确定动作是由第二人执行的,将动作分配给第二人。
18.如权利要求17所述的跟踪子系统,还被配置为:
在存储缓冲帧之后,确定存储的帧的顶视图像的关注区域;以及
使用至少一个存储的缓冲帧的关注区域和第一动作检测算法来确定与检测到的事件相关联的动作是由第一人还是第二人执行的。
19.如权利要求17所述的跟踪子系统,其中存储的缓冲帧包括在人的所述部分进入与支架相邻的区和人的所述部分离开与支架相邻的区中的一个或两者之后的顶视图像的三个或更少的帧。
20.如权利要求19所述的跟踪子系统,还被配置为确定要与第一动作检测算法一起使用的缓冲帧的子集和要与第二动作检测算法一起使用的缓冲帧的第二子集。
CN202080088563.4A 2019-10-25 2020-10-23 图像跟踪期间的动作检测 Pending CN114830194A (zh)

Applications Claiming Priority (37)

Application Number Priority Date Filing Date Title
US16/663,451 2019-10-25
US16/663,856 US10956777B1 (en) 2019-10-25 2019-10-25 Shelf position calibration in a global coordinate system using a sensor array
US16/664,332 US11176686B2 (en) 2019-10-25 2019-10-25 Image-based action detection using contour dilation
US16/664,219 2019-10-25
US16/663,794 2019-10-25
US16/664,269 2019-10-25
US16/663,451 US10943287B1 (en) 2019-10-25 2019-10-25 Topview item tracking using a sensor array
US16/663,822 US11113837B2 (en) 2019-10-25 2019-10-25 Sensor mapping to a global coordinate system
US16/663,948 US11257225B2 (en) 2019-10-25 2019-10-25 Sensor mapping to a global coordinate system using homography
US16/664,160 2019-10-25
US16/664,426 2019-10-25
US16/663,948 2019-10-25
US16/663,533 2019-10-25
US16/663,500 2019-10-25
US16/664,269 US11004219B1 (en) 2019-10-25 2019-10-25 Vector-based object re-identification during image tracking
US16/663,901 US11430046B2 (en) 2019-10-25 2019-10-25 Identifying non-uniform weight objects using a sensor array
US16/663,710 2019-10-25
US16/663,766 US11132550B2 (en) 2019-10-25 2019-10-25 Detecting shelf interactions using a sensor array
US16/664,426 US11308630B2 (en) 2019-10-25 2019-10-25 Auto-exclusion zone for contour-based object detection
US16/663,794 US11367124B2 (en) 2019-10-25 2019-10-25 Detecting and identifying misplaced items using a sensor array
US16/663,822 2019-10-25
US16/664,391 US11062147B2 (en) 2019-10-25 2019-10-25 Object assignment during image tracking
US16/664,219 US11107226B2 (en) 2019-10-25 2019-10-25 Object re-identification during image tracking
US16/664,160 US11568554B2 (en) 2019-10-25 2019-10-25 Contour-based detection of closely spaced objects
US16/663,710 US11188763B2 (en) 2019-10-25 2019-10-25 Topview object tracking using a sensor array
US16/664,363 US11080529B2 (en) 2019-10-25 2019-10-25 Determining candidate object identities during image tracking
US16/663,901 2019-10-25
US16/664,332 2019-10-25
US16/664,363 2019-10-25
US16/663,472 2019-10-25
US16/663,472 US10614318B1 (en) 2019-10-25 2019-10-25 Sensor mapping to a global coordinate system using a marker grid
US16/663,500 US10621444B1 (en) 2019-10-25 2019-10-25 Action detection during image tracking
US16/663,533 US10789720B1 (en) 2019-10-25 2019-10-25 Multi-camera image tracking on a global plane
US16/663,856 2019-10-25
US16/663,766 2019-10-25
US16/664,391 2019-10-25
PCT/US2020/057011 WO2021081297A1 (en) 2019-10-25 2020-10-23 Action detection during image tracking

Publications (1)

Publication Number Publication Date
CN114830194A true CN114830194A (zh) 2022-07-29

Family

ID=73476231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080088563.4A Pending CN114830194A (zh) 2019-10-25 2020-10-23 图像跟踪期间的动作检测

Country Status (8)

Country Link
US (2) US11301691B2 (zh)
EP (1) EP4049172A1 (zh)
JP (1) JP7515581B2 (zh)
KR (1) KR20220100887A (zh)
CN (1) CN114830194A (zh)
CA (1) CA3165141A1 (zh)
MX (1) MX2022004898A (zh)
WO (1) WO2021081297A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11893759B2 (en) * 2019-10-24 2024-02-06 7-Eleven, Inc. Homography error correction using a disparity mapping
MX2022004898A (es) * 2019-10-25 2022-05-16 7 Eleven Inc Deteccion de accion durante el seguimiento de imagenes.
US11024053B1 (en) * 2019-12-20 2021-06-01 NEX Team Inc. User analytics using a mobile device camera and associated systems and methods
JP2022012399A (ja) * 2020-07-01 2022-01-17 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、およびプログラム
US20230112584A1 (en) * 2021-10-08 2023-04-13 Target Brands, Inc. Multi-camera person re-identification

Family Cites Families (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01173292A (ja) 1987-12-28 1989-07-07 Ncr Corp キヤツシヤレス・チエツクアウト・システム
EP0348484B1 (en) 1987-12-28 1993-09-29 Ncr International Inc. Checkout system and method
CA2201423C (en) 1997-04-01 2007-06-26 Michael Coveley Cashierless shopping store and components for use therein
US6437819B1 (en) 1999-06-25 2002-08-20 Rohan Christopher Loveland Automated video person tracking system
US7688349B2 (en) * 2001-12-07 2010-03-30 International Business Machines Corporation Method of detecting and tracking groups of people
US7797204B2 (en) * 2001-12-08 2010-09-14 Balent Bruce F Distributed personal automation and shopping method, apparatus, and process
JP4413633B2 (ja) * 2004-01-29 2010-02-10 株式会社ゼータ・ブリッジ 情報検索システム、情報検索方法、情報検索装置、情報検索プログラム、画像認識装置、画像認識方法および画像認識プログラム、ならびに、販売システム
US20160098095A1 (en) 2004-01-30 2016-04-07 Electronic Scripting Products, Inc. Deriving Input from Six Degrees of Freedom Interfaces
US8289390B2 (en) 2004-07-28 2012-10-16 Sri International Method and apparatus for total situational awareness and monitoring
DE602006020422D1 (de) * 2005-03-25 2011-04-14 Sensormatic Electronics Llc Intelligente kameraauswahl und objektverfolgung
US20070011099A1 (en) 2005-07-11 2007-01-11 Conrad Sheehan SECURE ELECTRONIC TRANSACTIONS BETWEEN A MOBILE DEVICE AND OTHER MOBILE, FIXED, or VIRTUAL DEVICES
US7357316B2 (en) 2005-09-29 2008-04-15 International Business Machines Corporation Retail environment
US20070282665A1 (en) 2006-06-02 2007-12-06 Buehler Christopher J Systems and methods for providing video surveillance data
US7844509B2 (en) 2006-08-25 2010-11-30 International Business Machines Corporation Method and apparatus for monitoring depletion of an item
US8861898B2 (en) * 2007-03-16 2014-10-14 Sony Corporation Content image search
US7672876B2 (en) 2007-07-13 2010-03-02 Sunrise R&D Holdings, Llc System for shopping in a store
US8630924B2 (en) * 2007-08-31 2014-01-14 Accenture Global Services Limited Detection of stock out conditions based on image processing
WO2009035698A1 (en) * 2007-09-12 2009-03-19 Airkast, Inc. Wireless device tagging system and method
DE602008004330D1 (de) 2008-07-04 2011-02-17 Sick Ivp Aktiebolag Kalibrierung eines Profilmesssystems
US7848964B2 (en) 2008-07-14 2010-12-07 Sunrise R&D Holdings, Llc Method for shopping in a store
US8396755B2 (en) * 2008-07-14 2013-03-12 Sunrise R&D Holdings, Llc Method of reclaiming products from a retail store
US8520979B2 (en) * 2008-08-19 2013-08-27 Digimarc Corporation Methods and systems for content processing
US20100138281A1 (en) 2008-11-12 2010-06-03 Yinying Zhang System and method for retail store shelf stock monitoring, predicting, and reporting
US8494909B2 (en) 2009-02-09 2013-07-23 Datalogic ADC, Inc. Automatic learning in a merchandise checkout system with visual recognition
US20100318440A1 (en) 2010-03-18 2010-12-16 Coveley Michael Ej Cashierless, Hygienic, Automated, Computerized, Programmed Shopping Store, Storeroom And Supply Pipeline With Administration Cataloguing To Eliminate Retail Fraud; With Innovative Components For Use Therein
US8639440B2 (en) * 2010-03-31 2014-01-28 International Business Machines Corporation Augmented reality shopper routing
US9727838B2 (en) * 2011-03-17 2017-08-08 Triangle Strategy Group, LLC On-shelf tracking system
EP2693951B1 (en) 2011-04-08 2018-10-24 Algotec Systems Ltd. Image analysis for specific objects
US9129277B2 (en) * 2011-08-30 2015-09-08 Digimarc Corporation Methods and arrangements for identifying objects
US20130284806A1 (en) 2011-10-19 2013-10-31 Ran Margalit Automated purchasing system
US9159047B2 (en) 2011-11-11 2015-10-13 James T. Winkel Projected image planogram system
US9262780B2 (en) * 2012-01-09 2016-02-16 Google Inc. Method and apparatus for enabling real-time product and vendor identification
US10049281B2 (en) 2012-11-12 2018-08-14 Shopperception, Inc. Methods and systems for measuring human interaction
US20140152847A1 (en) * 2012-12-03 2014-06-05 Google Inc. Product comparisons from in-store image and video captures
US20140171116A1 (en) * 2012-12-14 2014-06-19 Anthony G. LaMarca Location-aware mobile application management
US9275361B2 (en) * 2013-01-11 2016-03-01 Tagnetics, Inc. Out of stock sensor
US9197998B2 (en) * 2013-05-16 2015-11-24 Marvell World Trade Ltd. Method and system for positioning wireless device
US10176456B2 (en) 2013-06-26 2019-01-08 Amazon Technologies, Inc. Transitioning items from a materials handling facility
US10268983B2 (en) 2013-06-26 2019-04-23 Amazon Technologies, Inc. Detecting item interaction and movement
US10296814B1 (en) 2013-06-27 2019-05-21 Amazon Technologies, Inc. Automated and periodic updating of item images data store
US9473747B2 (en) * 2013-07-25 2016-10-18 Ncr Corporation Whole store scanner
US10353982B1 (en) 2013-08-13 2019-07-16 Amazon Technologies, Inc. Disambiguating between users
US20160205341A1 (en) 2013-08-20 2016-07-14 Smarter Tv Ltd. System and method for real-time processing of ultra-high resolution digital video
US10366306B1 (en) 2013-09-19 2019-07-30 Amazon Technologies, Inc. Item identification among item variations
US10140483B1 (en) 2014-06-17 2018-11-27 Amazon Technologies, Inc. Antenna embedded inventory shelf
US10303133B1 (en) 2014-06-23 2019-05-28 Amazon Technologies, Inc. Presenting predicted items to users
WO2016029939A1 (en) 2014-08-27 2016-03-03 Metaio Gmbh Method and system for determining at least one image feature in at least one image
US10664705B2 (en) 2014-09-26 2020-05-26 Nec Corporation Object tracking apparatus, object tracking system, object tracking method, display control device, object detection device, and computer-readable medium
US9984354B1 (en) 2014-09-30 2018-05-29 Amazon Technologies, Inc. Camera time synchronization system
US10384869B1 (en) 2014-12-15 2019-08-20 Amazon Technologies, Inc. Optical item management system
US10169660B1 (en) 2014-12-19 2019-01-01 Amazon Technologies, Inc. Counting inventory items using image analysis
US9996818B1 (en) 2014-12-19 2018-06-12 Amazon Technologies, Inc. Counting inventory items using image analysis and depth information
US10438277B1 (en) 2014-12-23 2019-10-08 Amazon Technologies, Inc. Determining an item involved in an event
US10134004B1 (en) 2014-12-23 2018-11-20 Amazon Technologies, Inc. Processing image data from a camera cluster
US10291862B1 (en) 2014-12-23 2019-05-14 Amazon Technologies, Inc. Camera hierarchy for monitoring large facilities
US10475185B1 (en) 2014-12-23 2019-11-12 Amazon Technologies, Inc. Associating a user with an event
US10332066B1 (en) 2015-03-30 2019-06-25 Amazon Technologies, Inc. Item management system using weight
US10318917B1 (en) 2015-03-31 2019-06-11 Amazon Technologies, Inc. Multiple sensor data fusion system
US10733661B1 (en) 2015-05-22 2020-08-04 Walgreen Co. Automatic mapping of store layout using soft object recognition
US10064502B1 (en) 2015-06-19 2018-09-04 Amazon Technologies, Inc. Shelf with integrated electronics
US10388019B1 (en) 2015-06-23 2019-08-20 Amazon Technologies, Inc. Associating an agent with an event based on multiple inputs
US10262293B1 (en) 2015-06-23 2019-04-16 Amazon Technologies, Inc Item management system using multiple scales
CN108368165A (zh) 2015-06-24 2018-08-03 德克萨斯大学系统董事会 用于治疗颅内出血相关症状的方法和组合物
US9911290B1 (en) 2015-07-25 2018-03-06 Gary M. Zalewski Wireless coded communication (WCC) devices for tracking retail interactions with goods and association to user accounts
US10157452B1 (en) 2015-09-28 2018-12-18 Amazon Technologies, Inc. Image processing system for image rectification
US10339411B1 (en) 2015-09-28 2019-07-02 Amazon Technologies, Inc. System to represent three-dimensional objects
US20180374239A1 (en) 2015-11-09 2018-12-27 Cognex Corporation System and method for field calibration of a vision system imaging two opposite sides of a calibration object
US10021371B2 (en) 2015-11-24 2018-07-10 Dell Products, Lp Method and apparatus for gross-level user and input detection using similar or dissimilar camera pair
US10244363B1 (en) 2015-12-28 2019-03-26 Amazon Technologies, Inc. Entry portal identification system
US10318919B2 (en) 2016-02-10 2019-06-11 International Business Machines Corporation Smart shelves for retail industry
US10198710B1 (en) 2016-03-28 2019-02-05 Amazon Technologies, Inc. System to determine a change in weight at a load cell
US9886827B2 (en) 2016-04-25 2018-02-06 Bernd Schoner Registry verification for a mechanized store
US10846996B2 (en) 2016-04-25 2020-11-24 Standard Cognition Corp. Registry verification for a mechanized store using radio frequency tags
EP4410155A1 (en) 2016-05-09 2024-08-07 Grabango Co. System and method for computer vision driven applications within an environment
US20180048894A1 (en) 2016-08-11 2018-02-15 Qualcomm Incorporated Methods and systems of performing lighting condition change compensation in video analytics
US10321275B1 (en) 2016-09-22 2019-06-11 Amazon Technologies, Inc. Multi-frequency user tracking system
US10368057B1 (en) 2016-09-28 2019-07-30 Amazon Technologies, Inc. Synchronizing data streams
US10459103B1 (en) 2016-09-29 2019-10-29 Amazon Technologies, Inc. Magnetic entry portal identification system
US10861051B2 (en) * 2016-10-05 2020-12-08 Abl Ip Holding, Llc Assessing and reporting in-store recycling of wireless beacon components used with retail displays
US9972187B1 (en) 2016-11-13 2018-05-15 Agility4Life Biomechanical parameter determination for emergency alerting and health assessment
US10157308B2 (en) 2016-11-30 2018-12-18 Whirlpool Corporation Interaction recognition and analysis system
US10181113B2 (en) 2017-03-09 2019-01-15 SmartMart Inc. Automated retail facility
EP3379459A1 (en) 2017-03-24 2018-09-26 Tata Consultancy Services Limited System and method for telecom inventory management
US10250868B1 (en) 2017-03-29 2019-04-02 Amazon Technologies, Inc. Synchronizing data streams
US10466095B1 (en) 2017-06-27 2019-11-05 Amazon Technologies, Inc. Multi-load cell weighing shelf
US10445694B2 (en) 2017-08-07 2019-10-15 Standard Cognition, Corp. Realtime inventory tracking using deep learning
US10853965B2 (en) 2017-08-07 2020-12-01 Standard Cognition, Corp Directional impression analysis using deep learning
US10133933B1 (en) 2017-08-07 2018-11-20 Standard Cognition, Corp Item put and take detection using image recognition
US10127438B1 (en) 2017-08-07 2018-11-13 Standard Cognition, Corp Predicting inventory events using semantic diffing
US10474988B2 (en) 2017-08-07 2019-11-12 Standard Cognition, Corp. Predicting inventory events using foreground/background processing
US10055853B1 (en) 2017-08-07 2018-08-21 Standard Cognition, Corp Subject identification and tracking using image recognition
US10650545B2 (en) 2017-08-07 2020-05-12 Standard Cognition, Corp. Systems and methods to check-in shoppers in a cashier-less store
US10474991B2 (en) 2017-08-07 2019-11-12 Standard Cognition, Corp. Deep learning-based store realograms
US11023850B2 (en) 2017-08-07 2021-06-01 Standard Cognition, Corp. Realtime inventory location management using deep learning
US11250376B2 (en) 2017-08-07 2022-02-15 Standard Cognition, Corp Product correlation analysis using deep learning
US11232687B2 (en) 2017-08-07 2022-01-25 Standard Cognition, Corp Deep learning-based shopper statuses in a cashier-less store
JP7228569B2 (ja) 2017-08-07 2023-02-24 スタンダード コグニション コーポレーション 画像認識を用いた被写体識別及び追跡
US20200364752A1 (en) 2017-08-25 2020-11-19 Nec Corporation Storefront device, storefront system, storefront management method, and program
EP3738073A4 (en) 2018-01-10 2021-10-06 Trax Technology Solutions Pte Ltd. AUTOMATIC MONITORING OF RETAIL PRODUCTS BASED ON CAPTURED IMAGES
CN111919233B (zh) 2018-03-20 2024-05-17 日本电气株式会社 店铺管理设备和店铺管理方法
US10282852B1 (en) 2018-07-16 2019-05-07 Accel Robotics Corporation Autonomous store tracking system
US10614318B1 (en) 2019-10-25 2020-04-07 7-Eleven, Inc. Sensor mapping to a global coordinate system using a marker grid
US10789720B1 (en) 2019-10-25 2020-09-29 7-Eleven, Inc. Multi-camera image tracking on a global plane
US10621444B1 (en) 2019-10-25 2020-04-14 7-Eleven, Inc. Action detection during image tracking
CN110009836A (zh) 2019-03-29 2019-07-12 江西理工大学 基于高光谱摄像技术的深度学习的系统及方法
MX2022004898A (es) * 2019-10-25 2022-05-16 7 Eleven Inc Deteccion de accion durante el seguimiento de imagenes.

Also Published As

Publication number Publication date
WO2021081297A1 (en) 2021-04-29
CA3165141A1 (en) 2021-04-29
EP4049172A1 (en) 2022-08-31
JP2022553088A (ja) 2022-12-21
JP7515581B2 (ja) 2024-07-12
US11301691B2 (en) 2022-04-12
MX2022004898A (es) 2022-05-16
US20210124953A1 (en) 2021-04-29
US20220165063A1 (en) 2022-05-26
KR20220100887A (ko) 2022-07-18

Similar Documents

Publication Publication Date Title
US10853663B1 (en) Action detection during image tracking
US11430222B2 (en) Sensor mapping to a global coordinate system using a marker grid
US11205277B2 (en) Multi-camera image tracking on a global plane
US11176686B2 (en) Image-based action detection using contour dilation
US11132550B2 (en) Detecting shelf interactions using a sensor array
US11113837B2 (en) Sensor mapping to a global coordinate system
US11107226B2 (en) Object re-identification during image tracking
US11062147B2 (en) Object assignment during image tracking
US10956777B1 (en) Shelf position calibration in a global coordinate system using a sensor array
US11188763B2 (en) Topview object tracking using a sensor array
US11080529B2 (en) Determining candidate object identities during image tracking
US11308630B2 (en) Auto-exclusion zone for contour-based object detection
US10943287B1 (en) Topview item tracking using a sensor array
US11257225B2 (en) Sensor mapping to a global coordinate system using homography
US11403772B2 (en) Vector-based object re-identification during image tracking
US20210125360A1 (en) Contour-based detection of closely spaced objects
US11430046B2 (en) Identifying non-uniform weight objects using a sensor array
US11367124B2 (en) Detecting and identifying misplaced items using a sensor array
CN114830194A (zh) 图像跟踪期间的动作检测

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