CN114787865A - 轻追踪:用于在线自顶向下人体姿态追踪的系统和方法 - Google Patents
轻追踪:用于在线自顶向下人体姿态追踪的系统和方法 Download PDFInfo
- Publication number
- CN114787865A CN114787865A CN202080062563.7A CN202080062563A CN114787865A CN 114787865 A CN114787865 A CN 114787865A CN 202080062563 A CN202080062563 A CN 202080062563A CN 114787865 A CN114787865 A CN 114787865A
- Authority
- CN
- China
- Prior art keywords
- keypoints
- detected
- bounding box
- frame
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/757—Matching configurations of points or features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/103—Static body considered as a whole, e.g. static pedestrian or occupant recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/23—Recognition of whole body movements, e.g. for sport training
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30221—Sports video; Sports image
Abstract
一种用于姿态追踪的系统和方法,特别是用于自顶向下的在线多人姿态追踪。系统包括:计算设备,包括处理器和存储有计算机可执行代码的存储设备,其中,计算机可执行代码在处理器处执行时被配置为:提供视频的多个连续帧,多个连续帧包括至少一个关键帧和多个非关键帧;对于多个非关键帧中的每个非关键帧:接收从先前帧推断出的对象的先前推断边界框;在先前推断边界框所定义的区域中,从非关键帧估计关键点,以获得估计的关键点;基于估计的关键点,确定对象状态,其中,对象状态包括“追踪到”状态和“丢失”状态;以及当对象状态为“追踪到”时,基于估计的关键点,推断推断边界框,以处理非关键帧的下一帧。
Description
交叉引用
在本公开的描述中引用和讨论了一些参考文献,其可能包括专利、专利申请和各种出版物。提供此类参考文献的引用和/或讨论仅用于阐明本公开的描述,并不承认任何此类参考文献是本文所述公开的“现有技术”。在本说明书中引用和讨论的所有参考文献通过引用整体并入本文,并且与每篇参考文献通过引用单独并入的程度相同。
技术领域
本公开涉及人体姿态追踪,具体地,涉及用于在线自顶向下人体姿态追踪的通用轻量级框架。
背景技术
在此提供的背景描述是为了概括地呈现本公开的上下文。在本背景部分描述的范围内,发明人的工作,以及在申请时可能不符合现有技术的描述方面,既不明确也不隐含地承认为针对本公开的现有技术。
姿态追踪是一种任务,用于估计视频中的多人人体姿态并为跨帧的每个关键点分配唯一实例ID。人体关键点轨迹的准确估计对于人体动作识别、人的交互理解、动作捕捉和动画等很有用。最近,公开可用的姿态-追踪(Pose-Track)数据集和MPII视频姿态(MPIIVideo Pose)数据集将人体运动分析的研究推向了现实世界的场景,并且已经举行了两次姿态追踪挑战。然而,大多数现有方法都是离线的,因此缺乏实时的潜力。
因此,在本领域中存在解决上述缺陷和不足的需要。
发明内容
在某些方面,本公开涉及一种用于姿态追踪的系统,特别是用于自顶向下的多人在线姿态追踪的系统。所述系统包括计算设备,所述计算设备包括处理器和存储有计算机可执行代码的存储设备。所述计算机可执行代码在所述处理器处执行时被配置为:
提供视频的多个连续帧,所述连续帧包括至少一个关键帧和多个非关键帧;
对于所述多个非关键帧中的每个非关键帧:接收从先前帧推断出的对象的先前推断边界框;在所述先前推断边界框所定义的区域中,从所述非关键帧估计关键点,以获得估计的关键点;基于所述估计的关键点,确定对象状态,其中,所述对象状态包括“追踪到”状态和“丢失”状态;以及当所述对象状态为“追踪到”时,基于所述估计的关键点,推断推断边界框,以处理所述非关键帧的下一帧。
在某些实施例中,所述计算机可执行代码被配置为使用卷积神经网络从所述非关键帧估计关键点。
在某些实施例中,当所述估计的关键点具有大于阈值分数的平均置信度时,所述对象状态为“追踪到”,当所述估计的关键点具有小于或等于所述阈值分数的平均置信度时,所述对象状态为“丢失”。
在某些实施例中,所述计算机可执行代码被配置为通过以下方式推断所述推断边界框:定义包围所述估计的关键点的包围框;以及将所述包围框沿所述包围框的水平方向和垂直方向分别放大20%。
在某些实施例中,所述计算机可执行代码还被配置为,当所述对象状态为“丢失”时:从所述非关键帧中检测对象,其中,每个检测到的对象由检测的边界框定义;从每个检测的边界框估计关键点,以获得检测的关键点;通过将所述检测到的对象的所述检测的关键点与存储的对象的存储的关键点进行比较,来识别每个所述检测到的对象,每个所述存储的对象具有对象标识ID;以及当所述检测的关键点与来自所述存储的对象中对应对象的所述存储的关键点相匹配时,为所述检测到的对象分配所述存储的对象中对应对象的所述对象ID。
在某些实施例中,所述计算机可执行代码被配置为使用卷积神经网络检测对象。在某些实施例中,所述计算机可执行代码被配置为使用卷积神经网络来估计所述关键点。
在某些实施例中,所述将所述检测到的对象的所述检测的关键点与所述存储的关键点进行比较的步骤是使用孪生图卷积网络SGCN执行的,所述SGCN包括具有共享网络权重的两个图卷积网络GCN,每个所述GCN包括:第一图卷积网络GCN层;第一Relu单元,连接到所述第一GCN层;第二GCN层,连接到所述第一Relu单元;第二Relu单元,连接到所述第二GCN层;平均池化层,连接到所述第二GCN层;全连接网络FCN;以及特征向量转换层。所述第一GCN层被配置为接收所述检测到的对象之一的检测的关键点,所述特征向量转换层被配置为产生表示所述检测到的对象之一的姿态的特征向量。
在某些实施例中,所述SGCN被配置为通过以下方式执行所述比较的步骤:通过所述两个GCN中的一个GCN来运行估计的关键点,以获得针对估计的关键点的估计特征向量;通过所述两个GCN中的另一个GCN来运行所述存储的对象之一的存储的关键点,以获得针对所述存储的关键点的特征向量;以及当所述估计特征向量和存储的特征向量之间的距离小于预定阈值时,确定所述估计的关键点与所述存储的关键点相匹配。
在某些实施例中,对于所述非关键帧中的每个非关键帧,所述计算机可执行代码被配置为,当所述对象的所述估计的关键点与任何所述存储的对象的所述关键点都不匹配时:为所述对象分配新的对象ID。
在某些实施例中,对于所述关键帧中的每个关键帧,所述计算机可执行代码被配置为:
检测所述关键帧中的对象,其中,每个检测到的对象由边界框定义;
从与所述检测到的对象对应的所述边界框估计每个检测到的对象的多个检测的关键点;
通过将所述检测到的对象的所述检测的关键点与存储的对象的存储的关键点进行比较,来识别每个所述检测到的对象,每个所述存储的对象具有对象标识ID;以及
当所述检测的关键点与来自所述存储对象中对应对象的所述存储的关键点相匹配时,为所述检测到的对象分配所述存储的对象中对应对象的所述对象ID。
在某些实施例中,对于每个所述关键帧,所述计算机可执行代码被配置为,当所述对象的所述估计的关键点与任何所述存储对象的所述关键点都不匹配时:为所述对象分配新的对象ID。
在某些方面,本公开涉及一种用于姿态追踪的方法,特别是用于自顶向下的多人在线姿态追踪的方法。在某些实施例中,所述方法包括:
提供视频的多个连续帧,所述连续帧包括至少一个关键帧和多个非关键帧;
对于所述多个非关键帧中的每个非关键帧:
接收从先前帧推断出的对象的先前推断边界框;
在所述先前推断边界框所定义的区域中,从所述非关键帧估计关键点,以获得估计的关键点;
基于所述估计的关键点,确定对象状态,其中,所述对象状态包括“追踪到”状态和“丢失”状态;以及
当所述对象状态为“追踪到”时,基于所述估计的关键点,推断推断边界框,以处理所述非关键帧的下一帧。
在某些实施例中,当所述估计的关键点具有大于阈值分数的平均置信度时,所述对象状态为“追踪到”,当所述估计的关键点具有小于或等于阈值分数的置信度时,所述对象状态为“丢失”。
在某些实施例中,所述推断推断边界框的步骤包括:定义包围所述估计的关键点的包围框;以及将所述包围框沿所述包围框的水平方向和垂直方向分别放大20%。
在某些实施例中,所述方法还包括,当所述对象状态为“丢失”时:
从所述非关键帧中检测对象,其中,每个检测到的对象由检测的边界框定义;
从所述检测的边界框中对应的边界框估计每个检测到的对象的关键点,以获得检测的关键点;
通过将所述检测到的对象的所述检测的关键点与每个存储的对象的存储的关键点进行比较,来识别每个所述检测到的对象,每个所述存储的对象具有对象标识ID;以及
当所述检测的关键点与来自所述存储的对象之一的所述存储的关键点相匹配时,为所述检测到的对象分配所述存储的对象之一的所述对象ID。
在某些实施例中,所述检测对象和所述估计关键点的步骤都是使用卷积神经网络CNN执行的。
在某些实施例中,所述将所述检测到的对象的所述检测的关键点与所述存储的关键点进行比较的步骤是使用孪生图卷积网络SGCN执行的,所述SGCN包括具有共享网络权重的两个图卷积网络GCN,每个所述GCN包括:第一图卷积网络GCN层;第一Relu单元,连接到所述第一GCN层;第二GCN层,连接到所述第一Relu单元;第二Relu单元,连接到所述第二GCN层;平均池化层,连接到所述第二GCN层;全连接网络FCN;以及特征向量转换层,其中,所述第一GCN层被配置为接收所述检测到的对象之一的检测的关键点,所述特征向量转换层被配置为产生表示所述检测到的对象之一的姿态的特征向量。
在某些实施例中,所述方法还包括,对于所述关键帧中的每个关键帧:
从所述关键帧中检测对象,其中,每个检测到的对象由检测的边界框定义;
从每个所述检测的边界框估计检测的关键点,以获得检测的关键点;
通过将所述检测到的对象的所述检测的关键点与存储的对象的存储的关键点进行比较,来识别每个所述检测到的对象,每个所述存储的对象各具有对象标识ID;以及
当所述检测的关键点与来自所述存储对象中对应对象的所述存储的关键点相匹配时,为所述检测到的对象分配所述存储的对象中对应对象的所述对象ID。
在某些方面,本公开涉及一种存储有计算机可执行代码的非暂时性计算机可读介质。所述计算机可执行代码,当所述计算机可执行代码在计算设备的处理器处执行时,被配置为执行上述方法。
本公开的这些和其他方面将通过结合以下附图和它们的标题对优选实施例的以下描述而变得显而易见,尽管在不脱离本公开的新颖概念的精神和范围的情况下可以影响其中的变化和修改。
附图说明
附图示出了本公开的一个或多个实施例,并与书面描述一起用于解释本公开的原理。在可能的情况下,在整个附图中使用相同的附图标记来指代实施例的相同或相似的元件。
图1示意性地描绘了根据本公开的某些实施例的用于在线自顶向下的人体姿态追踪的系统。
图2示意性地描绘了根据本公开的某些实施例的姿态追踪模块。
图3示意性地描绘了根据本公开的某些实施例的视频中的相机突然移动和视频中的相机突然放大。
图4示意性地描绘了根据本公开的某些实施例的孪生图卷积网络(SGCN)。
图5示意性地描绘了根据本公开的某些实施例的用于图采样和加权以构造图卷积操作的空间配置策略。
图6示意性地描绘了根据本公开的某些实施例的在线人体姿态追踪的过程。
图7A示意性地描绘了根据本公开的某些实施例的在关键帧或特定非关键帧上的在线人体姿态追踪的过程。
图7B示意性地描绘了根据本公开的某些实施例的在非关键帧上的在线人体姿态追踪的过程。
图8在表1中示出了从PoseTrack′18数据集收集的姿态对。
图9表2示出了根据本公开的某些实施例的表2中的检测器的比较。
图10在表3中示出了根据本公开的某些实施例的PoseTrack′17验证集上使用各种检测器的离线姿态追踪结果的比较。
图11在表4中示出了根据本公开的某些实施例的在PoseTrack′18验证集上具有各种关键帧间隔的离线和在线姿态追踪结果的比较。
图12在表5中示出了根据本公开的某些实施例的在PoseTrack′18验证集上使用轻GCN和SC的追踪的性能比较。
图13在表6中示出了根据本公开的某些实施例的在PoseTrack数据集上的性能比较。
具体实施方式
在以下示例中更具体地描述本公开,这些示例仅旨在作为说明,因为其中的许多修改和变化对于本领域技术人员来说将是显而易见的。现在详细描述本公开的各种实施例。参考附图,贯穿视图,相同的数字指示相同的部件。除非上下文另有明确规定,否则本文的描述中和整个权利要求中使用的“一个”、“一”和“所述”的含义包括复数。此外,如在本公开的描述和权利要求书中所使用的,除非上下文另有明确规定,“在”的含义包括“在……中”和“在……上”。并且,说明书中为了方便读者可以使用标题或副标题,这不影响本公开的范围。此外,本说明书中使用的一些术语在下面有更具体的定义。
本说明书中使用的术语在本领域中、在本公开的上下文中以及在使用每个术语的特定上下文中通常具有它们的普遍含义。用于描述本公开的某些术语在下文或说明书中的其他地方讨论,以向从业者提供关于本公开的描述的额外指导。可以理解,同样的事情可以用不止一种方式表达出来。因此,替代语言和同义词可用于此处讨论的任何一个或多个术语,并且对于此处是否详细阐述或讨论术语没有任何特殊意义。本公开提供了某些术语的同义词。一个或多个同义词的陈述不排除使用其他同义词。本说明书中任何地方的示例的使用,包括本文讨论的任何术语的示例,仅是说明性的,决不限制本公开内容或任何示例性术语的范围和含义。同样,本公开不限于本说明书中给出的各种实施例。
应当理解,当一个元件被称为“在”另一个元件上时,它可以直接在另一个元件上,或者中间元件可以存在于它们之间。相反,当一个元件被称为“直接在”另一个元件上时,不存在中间元件。如本文所述,术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
应当理解,尽管本文中可以使用术语第一、第二、第三等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应该受到这些术语的限制。这些术语仅用于将一个元件、组件、区域、层或部分与另一个元件、组件、区域、层或部分区分开来。因此,以下讨论的第一元件、组件、区域、层或部分可以被称为第二元件、组件、区域、层或部分,而不背离本公开的教导。
此外,诸如“下方”或“底部”和“上方”或“顶部”之类的相对术语可在本文中用于描述一个元件与另一元件的关系,如图所示。应当理解,相对术语旨在涵盖除了图中描绘的方向之外的装置的不同方向。例如,如果其中一个图中的设备被翻转,则被描述为在其他元件“下方”侧的元件将被定向在其他元件的“上方”侧。因此,示例性术语“下方”可以包括“下方”和“上方”的方向,这取决于图的特定方向。类似地,如果其中一个图中的设备被翻转,则被描述为“在”其它元件“之下”或“下面”的元件将取向为“在”其它元件“之上”。因此,示例性术语“之下”或“下面”可以包括上和下的方向。
除非另有定义,本公开使用的所有术语(包括技术术语和科学术语)与本公开所属领域的普通技术人员通常理解的含义相同。还应当理解,除非有明确定义,术语,例如在常用词典中定义的那些,应当被解释为具有与其在相关领域和本公开的上下文中的含义一致的含义,并且不会被理想化地解释或具有过于形式化的意义。
如本文所述,“大致”、“大约”、“基本上”或“近似地”通常表示在给定值或范围的20%以内,优选地,在10%以内,并且更优选地,在5%以内。本文给出的数值是近似值,意味着如果没有明确说明,可以推断出术语“大致”、“大约”、“基本上”或“近似地”。
如本文所述,“多个”是指两个或更多个。
如本文所述,术语“包括”、“包含”、“携带”、“具有”、“含有”、“涉及”等应理解为是开放式的,即意味着包括但不限于。
如本文所述,短语A、B和C中的至少一个应解释为表示逻辑(A或B或C),使用非排他性逻辑或(OR)。应当理解,在不改变本公开的原理的情况下,方法内的一个或多个步骤可以以不同的顺序(或同时)执行。
如本文所述,术语“模块”可指代属于或包括专用集成电路(ASIC);电子线路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器(共享、专用、或组);提供所描述功能的其他合适的硬件组件;或以上部分或全部的组合,例如在片上系统中。术语模块可以包括存储由处理器执行的代码的存储器(共享、专用、或组)。
如本文所述,术语“代码”可以包括软件、固件和/或微代码,并且可以指程序、例程、函数、类和/或对象。上面使用的术语共享意味着可以使用单一(共享)处理器执行来自多个模块的部分或全部代码。此外,来自多个模块的部分或全部代码可以存储在单一(共享)存储器中。上面使用的术语组意味着可以使用一组处理器执行来自单一模块的部分或全部代码。此外,可以使用一组存储器来存储来自单一模块的部分或全部代码。
如本文所述,术语“接口”通常是指在组件之间的交互点处用于执行组件之间的数据通信的通信工具或装置。一般而言,接口可以在硬件和软件层面都适用,可以是单向或双向接口。物理硬件接口的示例可以包括电连接器、总线、端口、电缆、端子和其他I/O设备或组件。与接口通信的组件可以是例如计算机系统的多个组件或外围设备。
本公开涉及计算机系统。如附图所示,计算机组件可以包括物理硬件组件,其显示为实线块,以及虚拟软件组件,其显示为虚线块。本领域普通技术人员将理解,除非另有说明,否则这些计算机组件可以以软件、固件或硬件组件或其组合的形式来实现,但不限于这些形式。
本文描述的装置、系统和方法可以通过由一个或多个处理器执行的一个或多个计算机程序来实现。计算机程序包括存储在非暂时性有形计算机可读介质上的处理器可执行指令。计算机程序还可包括存储的数据。非暂时性有形计算机可读介质的非限制性示例是非易失性存储器、磁存储和光存储。
现在将在下文中参考附图更全面地描述本公开,其中示出了本公开的实施例。然而,本公开可以以许多不同的形式体现并且不应被解释为限于这里阐述的实施例;相反,提供这些实施例是为了使本公开彻底和完整,并将本公开的范围充分传达给本领域技术人员。
图1示意性地描绘了根据本公开的某些实施例的用于在线自顶向下人体姿态追踪的计算系统。这里自顶向下的意思是在检测到候选者之后进行姿态估计,追踪是真正在线的。该系统将单一姿态追踪(Single Pose Tracking,SPT)与多人身份关联相结合,并将关键点追踪与对象追踪联系起来。
视觉对象追踪(Visual Object Tracking,VOT)方法的视觉特征由内核或卷积网络(CNN)特征图隐式表示,与其相比,本公开通过以明确的方式递归更新对象/边界框及其对应的姿态,来追踪每个人体姿态。目标对象的边界框区域是从显式特征(即人体关键点)中推断出来的。人体关键点可以被认为是一系列特殊的视觉特征。使用姿态作为显式特征的优点包括以下几点。(1)显式特征与人体相关且可解释,且与边界框位置有非常强且稳定的关系。人体姿态对边界框区域实施直接约束。(2)姿态估计和追踪的任务首先需要预测人体关键点。利用预测的关键点可以有效地追踪几乎空闲的感兴趣区域(ROI)。这种机制使在线追踪成为可能。(3)自然保留了候选者的身份,大大减轻了系统中数据关联的负担。即使在需要数据关联时,本公开也可以将姿态特征重新用于基于骨架的姿态匹配。因此,SPT和单一VOT被合并到一个统一的功能实体中,可以通过可替换的单人人体姿态估计模块轻松实现。
本公开的贡献尤其包括以下内容。(1)本公开提出了一种通用的在线姿态追踪框架,适用于人体姿态估计的自顶向下方法。人体姿态估计器和Re-ID(行人重识别)模块都是可替换的。与多目标追踪(Multi-Object Tracking,MOT)框架相比,本公开的框架是专门为姿态追踪任务而设计的。据我们所知,这是以自顶向下的方式提出在线人体姿态追踪系统的第一个公开。(2)本公开提供了一种用于人体姿态匹配的孪生图卷积网络(SiameseGraph Convolution Network,SGCN)作为Re-ID模块。与现有的Re-ID模块不同,本公开使用人体关节的图形表示进行匹配。基于骨架的表示有效地捕捉人体姿态相似性且计算成本低。它对造成人体发生漂移的摄相机突然移动具有鲁棒性。(3)对各种设置和消融研究进行了广泛的实验。本公开的在线姿态追踪方法优于现有的在线方法,与离线最先进的技术具有竞争力,但帧率要高得多。
本公开提供了一种新颖的自顶向下的姿态追踪网络。在这个框架中,我们同时考虑准确的人体位置和人体姿态的估计,其中:(1)粗略的人物位置可以通过单人姿态估计器提炼成身体关键点;(2)人体关节的位置可以直接用来指示候选者的粗略位置;以及(3)因此,反复地逐个估计是单人姿态追踪(SPT)的可行策略。
此外,在本公开中,多目标姿态追踪(Multi-target Pose Tracking,MPT)问题不仅仅被认为是针对多个个体的重复SPT问题。原因是需要满足某些约束条件,例如,在某个帧中,两个不同的ID不应该属于同一个人;两个候选者都不应该具有相同的身份。因此,本公开提供了同时追踪多个个体并利用附加的Re-ID模块保存/更新他们的身份的方法。
Re-ID模块是必不可少的,因为通常很难一直保持正确的身份。跨过整个视频的帧来有效地追踪个体姿态是不可能的。例如,在以下情况下,必须更新身份:(1)一些人从相机视野中消失或被遮挡;(2)有新的候选者加入或以前的候选者重新出现;(3)人们相互穿行(两个身份如果不小心处理可能会合二为一);(4)快速移动或变焦导致追踪失败。
本公开首先分别处理每个候选者,使得它们的对应身份跨帧保持。这样,本公开规避了耗时的离线优化程序。如果追踪的候选者由于遮挡或相机移动而丢失,则本公开随后调用检测模块来恢复候选者并通过姿态匹配将它们与先前帧的追踪目标相关联。这样,本公开通过SPT模块和姿态匹配模块完成了多目标姿态追踪。
如图1所示,系统100包括计算设备110。在某些实施例中,图1中所示的计算设备110可以是提供姿态追踪服务的服务器计算机、集群、云计算机、通用计算机、无头计算机或专用计算机。计算设备110可以包括但不限于处理器112、存储器114和存储设备116。在某些实施例中,计算设备110可以包括其他硬件组件和软件组件(未示出)以执行其相应的任务。这些硬件和软件组件的示例可以包括但不限于其他所需的存储器、接口、总线、输入/输出(I/O)模块或设备、网络接口和外围设备。
处理器112可以是中央处理单元(CPU),其被配置为控制计算设备110的操作。处理器112可以执行操作系统(OS)或计算设备110的其他应用程序。在某些实施例中,计算设备110可以具有多于一个的CPU作为处理器,例如两个CPU、四个CPU、八个CPU或任何合适数量的CPU。
存储器114可以是易失性存储器,例如随机存取存储器(RAM),用于在计算设备110的操作期间存储数据和信息。在某些实施例中,存储器114可以是易失性存储器阵列。在某些实施例中,计算设备110可以在一个以上的存储器114上运行。
在某些实施例中,计算设备110还可包括图形卡以辅助处理器112和存储器114进行图像处理和显示。
存储设备116是一种非易失性数据存储介质,用于存储操作系统(未示出)和计算装置110的其他应用程序。存储设备116的示例可以包括非易失性存储器,例如闪存、存储卡、USB驱动器、硬盘驱动器、软盘、光驱或任何其他类型的数据存储设备。在某些实施例中,计算设备110可以具有多个存储设备116,它们可以是相同的存储设备或不同类型的存储设备,并且计算设备110的应用程序可以存储在计算设备110的一个或多个存储设备116中。
在该实施例中,处理器112、存储器114、存储设备116是计算设备110的组件,例如服务器计算设备。在其他实施例中,计算设备110可以是分布式计算设备,并且处理器112、存储器114和存储设备116是来自预定区域中的多台计算机的共享资源。
存储设备116尤其包括姿态追踪应用118。在某些实施例中,姿态追踪应用118是在线姿态追踪应用程序。姿态追踪应用118包括调度器120、对象检测模块140、姿态追踪模块160、重新识别模块180和可选的用户界面190。在某些实施例中,存储设备116可以包括姿态追踪应用118的操作所必需的其他应用或模块。需要说明的是,模块120、140、160、180和190均由计算机可执行代码或指令、或数据表或数据库实现,共同形成一个应用程序。在某些实施例中,每个模块还可以包括子模块。或者,一些模块可以组合为一个堆栈。在其他实施例中,某些模块可以实现为电路而不是可执行代码。
调度器120被配置为接收或检索一系列帧或图像以进行处理。在某些实施例中,系列帧是时间系列帧,例如在线视频或实况视频。视频可以是红绿蓝(RGB)视频、黑白视频或任何其他格式的视频。调度器120被配置为从每N帧中定义关键帧,其中N为正整数。数量N可以基于系列帧的复杂度、计算设备110的计算能力、追踪的速度要求和追踪的精度要求等来预先定义。在某些实施例中,N在5~100的范围内。在某些实施例中,N在5~30的范围内。在某些实施例中,N在10~20的范围内。在一个实施例中,N等于10,即视频的第1、川、21、31、...帧为关键帧。除非另有说明,以下实施例均以N=10进行描述,但本公开不限于此N的定义。在某些实施例中,调度器120包括用于对帧进行计数的计数器,以便知道要处理的当前帧是什么,当前帧的前一帧是什么,以及当前帧之后的即将到来的帧或下一帧是什么。在某些实施例中,调度器120被配置为将视频实时加载到存储器114。在某些实施例中,调度器120可以将预定数量M的视频帧加载到存储器114中,例如以滑动窗口样式,以先进先出的方式(FIFO)从存储器114中移除最旧的帧方法。在某些实施例中,数量M是视频的总长度,只要存储器114足以保存视频,仅当存储器114的使用超过预定百分比,例如30%、50%、70%等,才移除最旧的帧。在某些实施例中,数量M是1~1000的正整数。在某些实施例中,数量M是1~100的正整数。在某些实施例中,数量M是1~10的正整数。在某些实施例中,数量M是正整数10,从一个关键帧到下一关键帧的帧被加载到存储器114中。在某些实施例中,数量M为1,存储器114仅保留当前要处理的帧。调度器120还被配置为将帧处理步骤的某些输入和输出保持在存储器114中。输入和输出信息可以包括对象或目标ID、边界框ID(可选)、每个边界框的关键点、目标在相应边界框中的状态。在某些实施例中,调度器120还可以将那些信息存储在存储设备116中或者在存储设备116中保留信息的副本。调度器120被配置为调用模块140、160和180以在不同时间执行某些功能。
在将视频加载到存储器114之后,调度器120被配置为顺序地处理视频的帧。当要处理视频的第一帧时,调度器120被配置为调用对象检测模块140和姿态追踪模块160进行操作。在被调用之后,对象检测模块140被配置为从第一帧中检测对象(或目标,或候选者)。每个对象都定义有一个边界框,每个对象都标有一个对象ID并与帧相关(或可选地标有帧ID),并包括边界框在第一帧中的坐标。在某些实施例中,每个对象都链接到对应的帧,不需要帧ID对对象的标签。在检测到对象的边界框之后,姿态追踪模块160被配置为并行估计每个对象的姿态(或可选地为顺序估计对象的姿态)。对于对象的每个边界框,姿态追踪模块160被配置为确定边界框中的关键点,例如使用卷积神经网络(CNN)和由CNN生成的热图。每个关键点对应一个基于热图的置信度,表示关键点位于帧中的可能性。关键点定义了对象的姿态。在某些实施例中,每个对象的关键点数量为15个,这15个关键点例如是“右膝”、“左膝”、“右骨盆”、“左骨盆”、“右手腕”、“左手腕”、“右脚踝”、“左脚踝”、“右肩”、“左肩”、“左肘”、“右肘”、“颈部”、“鼻子”、“头部”。在某些实施例中,15个关键点被定义并以特定顺序存储。需要注意,关键点的类别数量不限于此,关键点的类别可以比实施例中描述的更多或更少。关键点定义了对象的姿态,如上所述的关键点的确定也称为姿态估计。在姿态估计之后,第一帧中的每个对象定义为:对象ID和可选的帧ID、边界框的坐标、关键点的坐标以及每个关键点的置信度或所有关键点的平均置信度。在某些实施例中,那些显式且简单的信息被存储在存储器114中。姿态追踪模块160随后被配置为从所确定的关键点推断每个对象的推断边界框。在某些实施例中,推断边界框是通过以下方式推断的:定义具有所有点所在的最小度量的包围框(或即最低限度的边界框或最小边界框),将矩形框在水平方向和垂直方向上放大20%,获得推断边界框。包围框也称为最低限度的边界框或最小边界框。在某些实施例中,通过从15个关键点中选取最顶部的关键点、最低的关键点、最左侧的关键点和最右侧的关键点并绘制一个矩形框来提供包围框。矩形的顶部由最高点的y坐标确定,矩形的底部由最低点的y坐标确定,矩形的左侧由最左侧点的x坐标确定,矩形的右边由最右边点的x坐标确定。
此时,调度器120确定第一帧已经被处理,可选地,将第一帧记录为被计数器处理,并被配置为调用姿态追踪模块160来处理第二帧。在某些实施例中,姿态追踪模块160可以继续处理帧直到满足帧计数,调度器120中断姿态追踪模块160的操作。基于本公开的假设,即对象的位置和姿态在两个连续帧中通常相似,姿态追踪模块160被配置为使用推断边界框和第二帧执行CNN,生成热图,并通过使用热图来确定关键点,其中第二帧中的所有关键点都位于推断边界框所包围的区域中。每个关键点都有一个置信度,姿态追踪模块160还用于基于关键点的平均置信度确定第二帧中的对象状态。如果平均置信度大于阈值,则第二帧中的对象状态为“追踪到”,如果平均置信度等于或低于阈值,则第二帧中的对象状态为“丢失”。当对象状态为“追踪到”时,姿态追踪模块160被配置为使用来自第二帧的四个关键点生成包围框,并从包围框来推断推断边界框。当第二帧中的对象状态被确定为“追踪到”时,来自第一帧的推断边界框被认为是第二帧中对应对象的边界框。此时,对于在第二帧中被确定为“追踪到”的对象,姿态追踪模块160存储帧ID、对象ID、边界框(推断边界框)的坐标、关键点的坐标,以及关键点的置信度。与上述过程类似,姿态追踪模块160使用来自第二帧的推断边界框来估计第三帧中的关键点,确定对象状态,并且当对象状态通过检查后,使用四个关键点生成边界框并推断推断边界框。姿态追踪模块160被配置为继续处理连续帧直到下一关键帧(例如帧11)或特定非关键帧(非关键帧中的对象状态为“丢失”时)。对于下一关键帧的前一帧,例如帧10,姿态追踪模块160确定对象状态,如果对象状态为“追踪到”时,基于关键点生成包围框作为帧10的边界框。然而,不需要推断推断边界框,因为调度器120将为下一关键帧调度新的对象检测。
如上所述,第一帧(或帧1)被定义为第一关键帧,而帧11被定义为第二关键帧。当调度器120计数到帧11要被处理时,调度器120被配置为调用对象检测模块140、姿态追踪模块160和重新识别模块180来处理关键帧11。具体而言,对象检测模块140从关键帧11中检测对象,并为每个对象输出边界框。对于与检测到的对象之一相对应的每个边界框,姿态追踪模块160确定关键点,并估计对象的姿态。重新识别模块180将每个对象的关键点与来自先前帧的存储对象的关键点进行比较,以查看是否存在匹配。如果存在匹配,则为关键帧11中的对象分配与帧10中匹配对象相同的对象ID。如果没有找到该对象的匹配项,则会为该对象分配一个新的对象ID。在本实施例中,对来自当前帧的对象与来自前一帧的那些对象执行匹配。在其他实施例中,还可以在来自当前帧的对象与来自多个先前帧的对象之间执行匹配,例如2、5或10个先前帧。在重新识别之后,姿态追踪模块160继续推断边界框、估计关键点并计算帧12中的对象状态。帧12~19的后续处理与帧2~9的处理基本相同。同样,帧20和帧21的处理与帧10和帧11的处理基本相同。
在某些实施例中,每个对象由姿态追踪模块160独立于其他对象追踪。当一个对象“丢失”时,调度器120被配置为针对所有对象,立即从下一帧指示对象检测、姿态估计和重新识别。在某些实施例中,如果“丢失”对象的数量大于预定阈值或“丢失”对象的百分比大于预定百分比,则调度器120从下一帧开始新对象检测。在某些实施例中,如果多个对象中只有一个或几个对象“丢失”,则调度器120可以放弃对“丢失”对象的追踪,继续对“追踪到”的对象的追踪,直到下一关键帧开始新的对象检测。
当处理特定非关键帧(帧中的对象状态为“丢失”)时,该帧的处理类似于关键帧的处理。换句话说,对象的“丢失”状态会在特定的非关键帧中触发新的对象检测。在某些实施例中,当特定非关键帧的质量较低时,该过程也可以跳过该帧并开始处理下一帧。在重新识别期间,将下一帧的对象(关键点)与先前帧之一(不一定是相邻的前一帧)进行比较。
在被调用之后,对象检测模块140、姿态追踪模块160和重新识别模块180中的每一个都可以在存储器114中保持活动状态,以便根据调度器120的指令处理即将到来的帧。在某些实施例中,姿态追踪应用118可以不包括调度器120,调度器120的功能可以分配给对象检测模块140、姿态追踪模块160和重新识别模块180。
对象检测模块140被配置为从第一帧(关键帧)、后续关键帧以及对象状态为“丢失”的任何特定非关键帧中检测对象。姿态追踪应用118中的对象检测模块140可以是任何对象检测器并且是可替换的。在某些实施例中,对象检测模块140使用卷积神经网络(CNN)来进行对象检测。在某些实施例中,对象检测模块140包括具有ResNet101作为主干的可变形ConvNet、用于特征提取的特征金字塔网络(FRN)以及作为检测头的快速R-CNN方案。在某些实施例中,对象检测模块140可以使用其他类型的检测过程,例如使用R-FCN作为主干,或者使用真实值(Ground Truth,GT)检测。
在某些实施例中,对象检测模块140的输入是RGB帧,对象检测模块140的输出是多个对象,每个对象定义有边界框。在某些实施例中,对象可以仅为人体。如上所述,每个对象可以由帧ID和边界框坐标来表征。在某些实施例中,一个对象的边界框可以由特征向量或简单的文本来表示。在某些实施例中,边界框的特征优选地存储在存储器114中,或者可替换地存储在图形卡或视频存储器、存储设备116或可由计算设备110访问的远程存储设备中的至少一个中。
姿态追踪模块160用于在接收到来自对象检测模块140的第一帧(第一关键帧)的对象后,确定在相应边界框中对象的关键点,并估计当前帧中对象的姿态,为对象分配对象ID,并将具有帧ID、对象ID、边界框的坐标、关键点的坐标和关键点的置信度的对象存储到存储器114。姿态追踪模块160还被配置为基于关键点生成包围边界框,并推断推断边界框以处理第二帧。
姿态追踪模块160被配置为,在接收到关键帧(除了第一帧)的对象或特定非关键帧(具有“丢失”的对象状态)的对象时,确定对应边界框中对象的关键点并估计帧中对象的姿态,通过重新识别模块180重新识别对象,并将具有帧ID、对象ID、边界框的坐标、关键点的坐标和关键点的置信度的对象存储到存储器114中。姿态追踪模块160还被配置为基于关键点生成包围边界框,并推断推断边界框以用于处理下一帧。
姿态追踪模块160被配置为,在接收到非关键帧(当前帧)的推断边界框(基于上一帧中对象的关键点推断,并用对象ID标记)时,确定当前帧中对象的关键点并估计当前帧中对象的姿态,并将具有帧ID、对象ID、边界框坐标、关键点坐标和关键点置信度的对象存储到存储器114。姿态追踪模块160还被配置为确定当前帧中的对象状态,如果对象状态为“追踪到”,则基于关键点生成包围边界框,并推断推断边界框以用于处理下一帧。然后,姿态追踪模块160还用于根据推断边界框通过以下方式对下一帧进行处理:确定推断边界框所包围的下一帧中的关键点,估计对象的姿态,计算关键点的置信度,存储关键点及其边界框。通过重复上述过程,实现了连续帧中对象的边界框和姿态的递归更新。因此,实现了对系列帧中的对象的追踪。因为追踪使用边界框和关键点,而不是内核或特征图,所以追踪速度很快,可以应用于在线追踪。否则,如果当前帧中的对象状态为“丢失”,则调度器120将指示重新开始在当前帧中确定对象。
如图2所示,姿态追踪模块160包括姿态估计模块162、对象状态模块164和边界框推断模块166。姿态估计模块162被配置为在接收到来自对象检测模块140的检测结果时,确定关键点并估计每个对象的姿态。在某些实施例中,姿态估计模块162是单人姿态估计器或单人姿态追踪模块。如果对象关键点与存储的对象关键点不匹配,则带有边界框的对象和相应的关键点将使用新的对象ID存储;如果对象关键点和存储的对象关键点之间存在匹配,则使用旧ID存储对象。
姿态估计模块162被配置为,在从边界框推断模块166接收到推断边界框时(基于先前帧),确定关键点并估计每个对象(在当前帧中)的姿态,得到由对象状态模块164计算的对象状态,并且当对象状态为“追踪到”时,将对象与边界框和关键点信息一起存储。如果对象状态为“丢失”,则调度器120将指示重新开始对当前帧中的对象进行对象检测。
如上所述,姿态估计模块162可以从对象检测模块140接收检测的边界框,或者从边界框推断模块166接收推断边界框,以便反复执行姿态估计和关键点确定。在某些实施例中,推断边界框在被输入到姿态估计模块162之前被调整大小,使得输入的检测的边界框或推断边界框具有固定的大小。在某些实施例中,姿态估计模块162的输出是一系列热图,用于接着预测关键点。连续的关键点中的每个对应于人体的特定部分,并表示人体对象的姿态。姿态估计模块162还用于在得到姿态估计和关键点确定结果后,存储该结果。结果可以包括帧ID、对象ID、边界框的坐标、关键点的坐标以及关键点的置信度(或平均置信度)。姿态估计模块162利用边界框定义的对象的粗略位置帮助确定对象的关键点,对象的关键点指示对象在帧中的粗略位置。通过反复估计对象位置和对象的关键点,姿态估计模块162可以估计对象姿态并准确有效地确定对象关键点。
对象状态模块164被配置为在接收到基于当前帧和(从先前帧推断出的)推断边界框确定的关键点时,确定当前帧中对象的状态。对象的状态为“追踪到”或“丢失”。在某些实施例中,对象状态模块164被配置为使用置信度来确定状态。具体地,利用来自先前帧的推断边界框和来自当前帧的确定的关键点,对象状态模块164确定被确定的关键点位于推断边界框所覆盖的当前帧的区域中的可能性。可能性由置信度s表示,每个估计的关键点都有一个置信度。计算对象的估计的关键点的置信度的平均值,并将其与标准误差τs进行比较。如果平均置信度大于标准误差τs,则表示当前帧中对象的状态为“追踪到”,即认为该对象位于当前帧中的推断边界框中。否则,对象的状态为“丢失”,即认为对象不在推断边界框包围的当前帧中。对象的状态定义为:
在上述实施例中,使用了所有关键点(例如15个关键点)的置信度的平均值在其他实施例中,也可以使用具有最高置信度的几个关键点来计算置信度的平均值例如,平均置信度可以是排名前3、前4或前5个关键点的置信度的平均值。
在某些实施例中,置信度来自通过操作卷积神经网络生成的热图,获得的置信度具有从0到大约1.5的值。在某些实施例中,所获得的置信度是来自CNN的置信度的sigmoid值,其中置信度在0~1的范围内。在某些实施例中,当置信度在0~1的范围内时,标准误差τs或阈值被预定义为0.3~1.0之间的值。在某些实施例中,标准误差τs在0.6~0.9的范围内。在某些实施例中,标准误差τs在0.7~0.8的范围内。在一个实施例中,标准误差τs被设置为0.75。
边界框推断模块166被配置为在接收到当前非关键帧中的对象的关键点时,推断用于处理下一帧的推断边界框。推断边界框被视为下一帧中对象的局部区域。在某些实施例中,通过基于最顶部、最低、最左侧和最右侧关键点确定包围边界框并放大包围边界框来定义推断边界框。在某些实施例中,推断边界框是通过沿x和y方向将包围边界框放大5~50%来获得的。在某些实施例中,约放大10~30%。在某些实施例中,放大20%;例如,如果当前边界框的四个角的坐标分别为(x1,y1),(x2,y1),(x1,y2),(x2,y2),其中x2>x1,y2>y1,则推断边界框的四个角的坐标将是((1.1x1-0.1x2),(1.1y1-0.1y2)),((1.1x2-0.1x1),(1.1y1-0.1y2)),((1.1x1-0.1x2),(1.1y2-0.1y1)),((1.1x2-0.1x1),(1.1y2-0.1y1))。
需要注意,当对象或目标丢失时,本公开提供了两种纠正方式:(1)固定关键帧间隔(Fixed Keyframe Interval,FKI)模式:忽略这个目标,直到预定的下一个关键帧,检测模块重新生成候选者,然后将他们的ID与追踪历史相关联。(2)自适应关键帧间隔(Adaptive Keyframe Interval,AKI)模式:通过候选者检测和身份关联立即恢复丢失的目标。在某些实施例中,FKI模式的优点在于,由于关键帧的间隔固定,姿态追踪的帧率是稳定的。AKI模式的优点是非复杂视频的平均帧率可以更高。在实验部分所示的某些实施例中,本公开通过采用具有固定间隔的关键帧来结合它们,同时一旦目标丢失,还可以在下一个排列的关键帧到达之前调用检测模块。这使得追踪精度更高,因为当目标丢失时,会立即处理。
重新识别模块180用于在对象检测模块140从关键帧(但不是第一帧)或特定非关键帧(在特定非关键帧中对象状态为“丢失”)中检测到对象(边界框),并且姿态追踪模块160确定每个对象的关键点之后,将每个检测到的对象的关键点与每个存储对象的先前存储的关键点进行比较。当检测到的对象之一与先前存储的对象之一匹配时,重新识别模块180为检测到的对象分配与匹配的对象相同的对象ID,并在不匹配时为检测到的对象分配新的对象ID。在某些实施例中,与来自上一帧的对象的边界框/关键点比较,或与来自前几帧的对象的边界框/关键点比较。在某些实施例中,来自多个先前帧的姿态序列与时空SGCN一起使用以提供更稳健的结果。在某些实施例中,当对象检测模块140从第一帧(也是第一关键帧)检测到对象时,重新识别模块180不需要被调用,因为还没有存储对象,每个对象都分配有一个新的对象ID。
在某些实施例中,重新识别模块180考虑两个互补信息:用于重新识别边界框的空间一致性和姿态一致性。在某些实施例中,来自当前帧的边界框与来自一个或多个先前帧的边界框之间的匹配由它们的邻接性确定。两个边界框之间存在交并比(IOU),当两个边界框之间的IOU大于阈值时,认为这两个边界框属于同一个对象(或目标)。在某些实施例中,针对关键帧k,如果被追踪对象tk∈Tk与对应检测dk∈Dk之间的最大IOU重叠率o(tk,Di,k)高于阈值τo,则匹配标志m(tk,dk)设置为1。否则,m(tk,dk)设置为0:
在某些实施例中,上述标准基于来自先前帧的追踪目标(边界框)与当前帧中目标(边界框)的实际位置具有显着重叠的假设。
然而,这样的假设并不总是可靠的,尤其是当相机快速移动时。在某些实施例中,我们需要对被追踪的候选者匹配新的观察。在Re-ID问题中,这通常由视觉特征分类器完成。但是具有不同身份的视觉相似的候选者可能会混淆这些分类器。在在线追踪系统中,提取视觉特征的计算成本也可能很高。因此,为了克服这些缺点,本公开设计了一种图卷积网络(GCN)来利用人体关节或人体关键点的图形表示。本公开观察到,在相邻的两个帧中,人的位置可能会由于相机突然移动而漂移,但人体姿态将保持几乎相同,因为人们的动作通常不会那么快,如图3所示。图3左侧的帧示出了相机突然移动的连续相邻帧,其中从顶部开始的第三帧中的移动很明显,人体目标的追踪不太可能成功。图3右侧的帧示出了突然缩放,其中从顶部开始的第3~5帧突然缩小,在人体目标上使用相同/相似大小的边界框进行追踪不太可能成功。在某些实施例中,本公开使用人体骨骼的图形表示来进行候选匹配,其被命名为姿态匹配,如下所述。
在某些实施例中,重新识别模块180使用孪生图卷积网络(SGCN)进行姿态匹配,即,重新识别模块180使用边界框中对象的姿态来匹配两个对象。图4示意性地示出了根据本公开的某些实施例的SGCN。如图4所示,SGCN包括两个重复的子模型410和430,用于接收来自检测到的对象的输入关键点411和来自对象(边界框)数据集的输入关键点431。子模型410包括第一图卷积层412、第一Relu(修正线性)单元413、第二图卷积层414、第二Relu单元415、第一平均池化层416、第一全连接层417。类似地,子模型430包括第三图卷积层432、第三Relu单元433、第四图卷积层434、第四Relu单元435、第二平均池化层436和第二全连接层437。在某些实施例中,层412至417依次排列,层432至437依次排列,子模型410和430的模型结构和参数相同。
当需要姿态匹配时,重新识别模块180被配置为,将来自目标对象(边界框)的关键点411输入到第一GCN层412,将来自存储的对象(边界框)的关键点431输入到第三GCN层432。在某些实施例中,关键点在检测到的图形(当前帧)中具有二维坐标,关键点411是坐标向量的形式。关键点411是第一GCN层412的输入。在某些实施例中,第一GCN层412以关键点为图节点并以人体结构中的连通性为图边,来构建空间图,并在图节点上输入关键点411。如图4所示,在某些实施例中,第一GCN层412具有双通道输入,并输出64通道的输出。64通道的输出通过第一Relu单元413,并输入到第二GCN层414。第二GCN层414的输入和输出都具有64个通道。第二GCN层414的输出通过第二Relu单元415和平均池化层417,形成128维特征表示向量418作为人体姿态的概念总结。通过同样的过程,将存储的对象(边界框)中的关键点431输入到子模型430,经过子模型430处理后,输出128维的特征表示向量438。然后,重新识别模块180匹配向量空间中的特征表示向量418和438,如果这两个向量在向量空间中足够接近,则确定这两个向量表示相同的姿态。在某些实施例中,预先定义阈值来进行判断,当两个特征向量之间的距离小于阈值时,则认为两个特征向量匹配。需要注意,人体的姿态由GCN生成的潜在特征向量表示,可以对应于站、坐或任何其他可能的人的姿态。
在某些实施例中,SGCN网络用对比损失L进行优化,因为本公开想要该网络来生成特征表示,该特征表示对于正对足够接近,对于负对至少远离最小值。本公开采用边际对比损失(Margin Contrastive Loss):
其中D=||f(pj)-f(pk)||2是两个l2范数归一化潜在表示的欧氏距离,yjk∈{0,1}表示pj和pk是否是相同的姿态,∈是描述不同姿态的对应当满足的最小距离边距。
图卷积层412、414、432、434对骨架即人体关节或关键点执行卷积。在某些实施例中,对于自然图像上的标准2D卷积,输出特征图可以具有与输入特征图相同的大小,具有步长1和适当的填充。在某些实施例中,图卷积操作被类似地设计为输出具有相同数量节点的图。这些节点的属性维度,类似于标准卷积中的特征图通道数,在图卷积操作之后可以发生变化。
在某些实施例中,标准卷积操作定义如下:给定核大小为K×K的卷积算子,通道数为c的输入特征图fin,空间位置x处的单个通道的输出值可以写为:
其中采样函数s:Z2×Z2→Z2列举位置x的邻居。权重函数W:在图的每个节点上都有一个向量。扩展的下一步是重新定义采样函数p和权重函数w。本公开遵循Yan提出的方法(Yan,S等人,用于基于骨架的动作识别的时空图卷积网络(spatial temporalgraph convolutional networks for skeleton-based action recognition),AAAI,2018,通过引用将其整体并入本文)。对于每个节点,仅对其相邻节点进行采样。节点vi的邻居集为:B(vi)={vj d(vj,vi)≤1}。采样函数p:B(vi)→V可写为:p(vi,vj)=vj。这样,相邻节点的数量不固定,权重顺序也不固定。为了获得固定数量的样本和固定的加权顺序,本公开将根节点周围的邻居节点标记为固定数量的分区,然后基于它们的分区类别对这些节点进行加权。图5示意性地示出了用于图采样和加权以构建图卷积操作的空间配置分区策略。如图5所示,对于两个骨架510和530,确定骨架重心512和532。根据节点到骨架重心512/532的距离与根节点514/534到骨架重心512/532的距离的比较来标记节点。与根节点相比,向心节点516/536具有更短的距离,而离心节点518a/518b/538具有更长的距离。
因此,图卷积的等式(4)被重写为:
其中归一化项Zi(vj)=|{vk|li(vk)=li(vj)}|是为了平衡不同子集对输出的贡献。根据上述划分方法,本公开具有:
其中ri是训练集中所有帧从重心到关节或关键点i的平均距离。
在某些实施例中,重新识别模块180将空间一致性和姿态一致性两者用于边界框(或对象)匹配。当确定了空间一致性时,两个边界框之间的匹配就确定了,可以不需要进一步的姿态匹配。当确定空间一致性不匹配时,进一步进行姿态匹配,因为人的姿态不太可能在两个相邻帧中发生变化。在某些实施例中,空间一致性和姿态一致性的其他组合是可能的。例如,具有不匹配姿态的匹配边界框也可以被视为不匹配。在某些实施例中,当重新识别模块180确定检测的边界框与存储的边界框匹配时,重新识别模块180用于为检测的边界框分配与存储的边界框相同的对象ID(或目标ID)。
返回参考图1,姿态追踪应用118还可以包括用户界面190。用户界面190被配置为在计算设备110中提供使用界面或图形用户界面。在某些实施例中,用户能够配置用于训练或使用姿态追踪应用118的参数。
在某些实施例中,姿态追踪应用118还可以包括数据库,该数据库可以被配置为存储姿态追踪应用118的训练数据、在线视频和参数以及来自姿态追踪应用118的输入/输出中的至少一项。然而,姿态追踪应用118优选地将要处理的视频、边界框等加载到存储器114中以进行快速处理。在某些实施例中,姿态追踪应用118的子模块被设计为一个集成网络的不同层,每一层对应于特定功能。
图6是示出执行姿态追踪应用118的过程的流程图。实线表示调度器指示程序601~609的操作,虚线表示由调度器120协调的可能的数据流。调度器120还对要处理的视频的帧进行计数和追踪。
如图6所示,当处理视频时,调度器120将视频加载到存储器114,调出第一帧(也是第一关键帧),并调用对象检测601、姿态估计603和边界框推断609的操作。具体地,调度器120调用对象检测模块140来执行对象检测601。每个对象都标有帧ID(帧1)、对象ID(新分配的ID,例如来自对象1)和坐标(边界框的四个角或边界框的两个对角的二维坐标)。调度器120然后调用姿态追踪模块160的姿态估计模块162来执行姿态估计603,具体地从每个边界框确定关键点。顺序关键点确定对象的姿态。在某些实施例中,关键点的数量是15。可以使用由姿态估计模块162生成的热图来确定关键点,并且每个关键点具有置信度,指示关键点存在于边界框中的可能性。对于第一帧,调度器120可以不指示状态确定605和重新识别607的操作,但指示边界框推断609的操作。边界框推断模块166从每个边界框推断推断边界框,例如,通过使用最顶部、最底部、最左侧和最右侧中的四个关键点确定包围边界框,并放大包围边界框。推断边界框与对应的当前边界框具有相同的对象标签。
此时,调度器120调出第二帧,并对帧数进行计数。本实施例中,帧2为非关键帧,关键帧为每10帧,即第1、11、21、31、...帧。调度器120调用姿态估计603、状态确定605和边界框推断609的操作。具体地,调度器120调用姿态估计模块162以基于推断边界框和第二帧来确定第二帧中的关键点。对象状态模块164然后使用确定的关键点的置信度来确定帧2中的对象状态。当对象状态为“追踪到”时,关键点和边界框(包围边界框)被存储,该过程进入边界框推断609以生成推断边界框。类似地,如上所述,基于第二帧的推断边界框用于第三帧的处理。只要状态确定605的结果是“追踪到”,边界框推断609、姿态估计603、状态确定605的过程就对非关键帧重复,在每次重复中,帧ID、对象ID、边界框坐标、具有置信度的关键点坐标存储在存储器114中。对于关键帧(例如关键帧11)的前一非关键帧(例如非关键帧10),该过程可以仅包括基于第9帧的边界框推断609,以及基于推断边界框和帧10的姿态估计(关键点确定),但不包括状态确定605,因为调度器120无论如何都会指示帧11的新对象检测。
对于第一帧以外的关键帧,例如帧11,调度器120调用对象检测601、姿态估计603、重新识别607和边界框推断609的操作。具体地,当正在处理帧10并且对帧10的姿态估计603已经完成时,调度器调出帧11,调用对象检测模块140重新开始检测边界框,调用姿态估计模块162来确定关键点,并调用重新识别模块180以将检测的边界框/关键点与存储的边界框/关键点进行姿态匹配。在某些实施例中,对帧11和帧10中检测的边界框/关键点进行比较。在某些实施例中,帧11和几个先前帧中的检测的边界框/关键点进行比较,例如帧8~帧10、帧6~帧10、帧2~帧10、从先前关键帧到帧10的帧,或更多之前的帧。当存在匹配时,检测的边界框/关键点被标记上与匹配的边界框/关键点相同的对象ID。当不存在匹配时,与检测的边界框对应的对象被认为是一个新的对象,检测的边界框/关键点被标记为一个新的对象ID。此后,调度器120指示边界框推断模块166执行边界框推断。
在上述实施例中,当一个对象在当前帧中丢失时,执行对象检测601以识别当前帧中的所有对象。在某些实施例中,当一个对象在当前帧中由于其低置信度而被确定为丢失时,这个对象可能对应于不同的对象。因此,在某些实施例中,也可以直接将这个对象的关键点与系统中存储的对象进行比较,以确定这个对象是否实际上是另一个对象。如果这个对象被确定为另一个对象,则为这个对象分配该另一个对象的标签。
进一步地,对于每一帧,每个对象都有对应的边界框,对象的关键点位于边界框内。在某些实施例中,由于对象与其边界框(对象位于其中)之间的一一对应关系,对象和边界框可互换使用。
总之,调度器120协调对象检测模块140、姿态追踪模块160和重新识别模块180的不同功能的执行。对象检测模块140包括CNN或任何其他神经网络,输入是关键帧或特定非关键帧,输出是检测到的带有边界框的对象。姿态追踪模块160具有用于循环追踪对象的CNN。姿态追踪模块160是单人追踪模块,可以分别对不同的对象进行操作。输入是检测的边界框或推断边界框,输出是从热图推导出的边界框的关键点。输入的边界框可以被预处理为具有固定大小。重新识别模块180具有SGCN结构,输入为用于比较的边界框和关键点,输出为两个姿态特征向量或者具体来说是两个姿态特征向量之间的距离,以及确定距离是否足够小到由边界框和关键点定义的两个对象是同一个对象。在操作过程中,将帧中的对象存储在存储器114中,每个存储的条目可以包括:帧ID、对象ID、边界框的坐标、边界框中的关键点的坐标、以及关键点的置信度。
需要注意,上述大部分过程都是关于其中一个对象的。当对每个帧处理多个对象时,每个对象的追踪过程都是相似的。在某些实施例中,独立地执行每个对象的追踪。在其他实施例中,执行了一定的同步。例如,如果所有对象都被追踪到,则对象状态被定义为“追踪到”。也就是说,如果姿态追踪应用118在任何对象上丢失追踪,则执行新的对象检测以重新开始检测多个对象。
图7A和图图7B示意性地描绘了根据本公开的某些实施例的在线自顶向下的人体姿态追踪过程。在某些实施例中,追踪过程由计算设备执行,例如图1中所示的计算设备110,并且具体地由姿态追踪应用118执行。姿态追踪应用118中的网络在执行该过程之前被预训练。在某些实施例中,图7A和图7B所示的过程与图6所示的过程相似或相同。需要特别注意的是,除非本公开另有说明,否则姿态追踪过程或方法的步骤可以按照不同的顺序排列,因此不限于图7A和图7B所示的顺序。
在姿态追踪应用118训练好后,姿态追踪应用118准备好对多个对象进行姿态追踪,尤其是在在线环境下。在下面的过程中,第i帧是非关键帧,第j帧是关键帧或对象状态为“丢失”的特定非关键帧,其中i和j为正整数。图7A示意性地示出了处理第j帧的过程,图7B示意性地示出了用于处理第i帧的过程。
如图7A所示,在步骤702,提供在线视频,在线视频包括按顺序排列的多个连续帧,调度器120将视频加载到存储器114以进行处理。在以下步骤中,调度器120调用其他模块的操作,例如对象检测模块140、姿态追踪模块160或其子模块、重新识别模块180的操作。在某些实施例中,这些操作也可以不被调度器120调用,而是被编码在模块140、160和180中。
在步骤704,对于视频的第j帧,即关键帧或对象状态为“丢失”的特定非关键帧,对象检测模块140从第j帧检测对象,并定义包围每个检测到的对象的边界框。对象具有帧ID(例如j)和相应边界框的坐标(例如两个对角角点的2D坐标)。
在步骤706,姿态估计模块162确定每个边界框的关键点。现在每个对象都有帧ID和它的边界框坐标,关键点有类别ID和它们的坐标。关键点的类别ID对应人体的各个部位,如对应于头、肩、肘、腕、腰、膝、踝等15个关键点。每个关键点都有一个置信度。
在步骤708,重新识别模块180将检测到的对象的姿态(具有边界框/关键点)与存储的对象的姿态(具有边界框/关键点)进行匹配。当存在匹配时,重新识别模块180为检测到的对象分配与匹配对象的对象ID相同的对象ID。如果不存在匹配,则重新识别模块180为检测到的对象分配新的对象ID。检测到的对象现在具有帧ID、对象ID、关键点、边界框/关键点的坐标和关键点置信度的特征,存储在存储器114或其他预定义存储位置中。
在某些实施例中,检测到的对象和存储的对象的姿态是使用孪生图卷积网络来确定的,例如如图4所示。在某些实施例中,当第一帧被处理时,没有存储的对象信息,不需要执行步骤708。相反,由姿态估计模块162细化的对象(具有边界框和关键点)被分配有新的对象ID并且被存储在存储器114中以供以后使用。
在步骤710,边界框推断模块166基于当前帧中的关键点推断推断边界框。在某些实施例中,边界框推断模块166首先使用最顶部、最低、最左侧和最右侧的四个关键点来定义包围边界框,然后将包围边界框在水平和垂直方向上放大20%,从左右两侧均等扩展,从顶部和底部两侧均等扩展。
在步骤712,姿态估计模块162使用推断边界框和第(j+1)帧来估计推断边界框覆盖的区域中的第(j+1)帧中的关键点。姿态估计模块162输出用于估计关键点的热图,每个关键点具有基于热图的置信度。
在步骤714,对象状态模块164基于在第(j+1)帧中估计的关键点的置信度来计算对象状态。当平均置信度很大时,对象状态为“追踪到”。这可以表明推断边界框和估计的关键点适合第(j+1)帧的图像,在第(j+1)帧上执行如下所述的步骤760-754-756-758。当平均置信度较小时,对象状态为“丢失”。这可以表明推断边界框和估计的关键点不适合第(j+1)帧的图像,在第(j+1)帧上重复步骤704~714。
当状态为“追踪到”时,姿态追踪应用118还可以在步骤708之后将检测到的对象(具有边界框和关键点)存储在存储器114中以用于第j帧。
如图7B所示,在与上述步骤702相同的步骤752,提供在线视频。
在步骤754,对于视频的第i帧,姿态估计模块162接收基于第(i-1)帧的推断边界框,第i帧是非关键帧(其中对象状态后续被确定为“追踪到”)。
在步骤756,姿态估计模块162基于推断边界框和第i帧估计关键点,获得具有置信度的估计的关键点。
在步骤758,对象状态模块164使用估计的关键点计算第i帧中的对象状态。当平均置信度很大时,对象状态为“追踪到”。这可以表明推断边界框和估计的关键点适合第i帧的图像,然后对第(i+1)帧执行步骤760-754-756-758。当平均置信度较小时,对象状态为“丢失”。这可以表明推断边界框和估计的关键点不适合第i帧的图像,然后在第i帧上执行步骤704~714。
在步骤760,边界框推断模块166基于估计的关键点推断推断边界框。
当状态为“追踪到”时,姿态追踪应用118针对第i帧还可以在步骤758将推断边界框和关键点存储在存储器114中,或者,针对第i帧,在步骤760,将包围边界框和关键点存储在存储器114中。
通过图7A和图7B中描述的上述操作,姿态追踪应用118能够提供对视频中对象的在线追踪。本公开的优点包括整体模型设计、基于姿态匹配的对象重新识别、基于当前帧和即将到来的帧的对象状态确定、以及基于姿态匹配和对象状态的决策。因为对象检测只在关键帧和特定的非关键帧上执行,所以应用程序的性能更加高效。此外,使用基于放大区域的关键点进行追踪,既快速又准确。此外,本公开采用GCN将人体关节之间的空间关系编码为人体姿态的潜在表示。潜在表示对姿态进行稳健的编码,该姿态不受人的位置或视角的影响,然后测量此类编码的相似性以匹配人的姿态。
在某些方面,本公开涉及一种存储计算机可执行代码的非暂时性计算机可读介质。在某些实施例中,计算机可执行代码可以是如上所述存储在存储设备116中的软件。计算机可执行代码在被执行时可以执行上述方法之一。
在某些实施例中,本公开的应用118提供了一种新颖有效的轻量级框架,也称为轻追踪。
实验:已经使用根据本公开的某些实施例的模型进行了实验。
实验:1、数据集。PoseTrack是用于视频中人体姿态估计和关节追踪的大规模基准。它提供了公开可用的训练和验证集,以及一个评估服务器,用于在保留的测试集上进行基准测试。该基准是ICCV′17和ECCV′18研讨会上挑战赛的基础。该数据集由ICCV′17挑战的68,000多帧组成,并扩展到ECCV′18挑战的帧的数量的两倍。它现在包括593个训练视频、74个验证视频和375个测试视频。对于保留的测试集,对于相同的方法,每个任务最多可以提交四次。验证集的评估没有提交限制。因此,下面描述的消融研究是在验证集上进行的。由于PoseTrack′18测试集尚未开放,我们将我们的结果与PoseTrack′17测试集的实验性能比较部分中的其他方法进行比较。图8在表1中示出了从PoseTrack′18数据集收集的姿态对。
实验:2、评估指标。评估包括姿态估计精度和姿态追踪精度。姿态估计精度是使用标准mAP度量来评估的,而姿态追踪的评估是根据作为多目标追踪评估标准的明确的MOT度量来评估的。
实验:3、实施细节。我们采用了用ImageNet和COCO数据集训练的最先进的关键帧对象检测器。具体地,我们使用来自可变形卷积网络(ConvNets)的预训练模型。我们在验证集上进行实验以选择具有更好召回率的对象检测器。对于目标检测器,我们将RFCN网络和FPN网络的可变形卷积版本与ResNet101骨干网进行比较。FPN特征提取器连接到Fast R-CNN头部进行检测。我们根据PoseTrack′17验证集的精度和召回率将检测结果与真实值(Ground Truth)进行比较。为了消除冗余的候选者,我们丢弃了可能性较低的候选者。如图9(表2)所示,给出了针对各种丢弃阈值的检测器的精度和召回率。由于FPN网络表现更好,我们选择FPN网络作为我们的候选人检测器。在训练期间,我们从带注释的关键点推断候选者的真实边界框,因为在PoseTrack′17数据集中,注释中没有提供边界框位置。具体来说,我们从15个关键点的最小和最大坐标中定位边界框,然后将该框水平和垂直放大20%。
对于单人人体姿态估计器,我们采用稍作修改的CPN101和MSRA152。我们首先使用Pose-Track′17和COCO的融合数据集对网络进行260个epoch的训练。然后我们仅在PoseTrack′17上对网络进行40个epoch的微调,以减轻头部和颈部的不准确回归。对于COCO,没有给出底头和顶头位置。我们通过对带注释的关键点进行插值来推断这些关键点。我们发现,通过对PoseTrack数据集进行微调,头部关键点的预测将得到改进。在微调过程中,我们使用在线困难关键点挖掘技术,仅关注15个关键点中最难的7个关键点的损失。姿态推断是使用单线程在线执行的。
对于姿态匹配模块,我们使用对比损失训练具有2个GCN层和1个卷积层的孪生图卷积网络。我们将归一化的关键点坐标作为输入;输出是一个128维的特征向量。参考Yan的方法(Yan,S等人,用于基于骨架的动作识别的空间时间图卷积网络(Spatial temporalgraph convolutional networks for skeleton-based action recognition),AAAI,2018),我们使用空间配置分区作为图卷积的采样方法,并使用可学习的边缘重要性加权。为了训练孪生网络,我们从姿态-追踪(Pose-Track)数据集生成训练数据。具体来说,我们将相邻帧内具有相同ID的人提取为正对,并将同一帧内和跨帧具有不同ID的人提取为负对。困难负对仅包括空间重叠的姿态。收集的对的数量在图8(表1)中示出。我们使用SGD优化器以32的批处理大小训练模型,总共进行了200个epoch。初始学习率设置为0∶001,并在40、60、80、100的epoch以0∶1衰减。权重衰减为10-4。
实验:4、消融研究。我们进行了一系列消融研究,以分析每个组件对整体性能的贡献。
图9,表2示出了在PoseTrack 2017验证集上检测器的精度-召回的比较。如果边界框的具有GT的IoU高于某个阈值(所有实验都设置为0.4),则边界框是正确的。图10,表3示出了在PoseTrack′17验证集上使用各种检测器的离线姿态追踪结果的比较。图11,表4示出了在PoseTrack′18验证集上具有各种关键帧间隔的离线和在线姿态追踪结果的比较。图12,表5示出了在PoseTrack′18验证集上使用GCN和SC的轻追踪的性能比较。
检测器:我们试验了几个检测器,并决定使用ResNet101作为主干的可变形卷积网络,特征金字塔网络(FPN)进行特征提取,并使用快速R-CNN方案作为检测头。如表2所示,该检测器的性能优于具有相同主干的可变形R-FCN。毫无疑问,更好的检测器会在姿态估计和姿态追踪方面产生更好的性能,如图10,表3所示。
离线与在线:我们研究了在线方法的关键帧间隔的效果,并与离线方法进行了比较。为了公平比较,我们对两种方法都使用相同的候选者检测器和姿态估计器。对于离线方法,我们预先计算候选者检测并估计每个候选者的姿态,然后我们采用基于流的姿态追踪器,其中姿态流是通过关联跨帧指示同一人的姿态来构建的。对于在线方法,我们执行真正的在线姿态追踪。由于候选人检测仅在关键帧处进行,因此在线性能随时间间隔而变化。在表4中,我们说明了离线方法的性能,与给定各种关键帧间隔的在线方法进行了比较。离线方法比在线方法表现更好。但是当关键帧处的检测(DET)更准确时,我们可以看到在线方法的巨大潜力,其上限是通过真实值(GT)检测实现的。正如预期的那样,频繁的关键帧有助于提高性能。需要注意,在线方法仅在关键帧处使用空间一致性进行数据关联。我们在下文中报告了姿态匹配模块的消融实验。GCN与空间一致性(SC):接下来,我们报告在数据关联阶段执行姿态匹配时的结果,与仅使用空间一致性相比较。从表5可以看出,追踪性能随着基于GCN的姿态匹配而提高。然而,在某些情况下,不同的人可能有几乎重复的姿态。为了减轻这种歧义,在姿态相似性之前考虑空间一致性。
GCN与欧氏距离(Euclidean Distance,ED):我们研究了GCN网络是否优于简单的姿态匹配方案。通过对关键点进行相同的归一化,ED作为姿态匹配的相异度量,在从PoseTrack数据集生成的验证对上呈现85%的准确度,而GCN呈现92%的准确度。我们验证正对和困难负对。
实验:5、性能比较。图13,表6示出了在PoseTrack数据集上的性能比较。最后一列示出以每秒帧数为单位的速度(*表示不包括姿态推断时间)。对于我们的在线方法,mAP在关键点丢弃后提供。对于我们的离线方法,mAP在关键点丢弃之前(左)和之后(右)都提供。
由于PoseTrack′18测试集尚未开放,我们在PoseTrack′17测试集上将我们的方法与其他在线和离线方法进行了比较。为了公平比较,我们只使用PoseTrack′17训练集和COCO的训练和验证集来训练姿态估计器。我们不使用辅助数据,而是使用CPN-101作为姿态估计器对验证集进行了消融研究。在测试过程中,除了CPN-101之外,我们还使用MSRA-152进行了实验。
准确性:如表6所示,我们的轻追踪方法优于其他在线方法,同时保持更高的帧率,与离线最先进的方法非常具有竞争力。对于我们的离线方法,我们使用与轻追踪相同的检测器和姿态估计器,只是我们将轻追踪替换为PoseFlow的官方版本以进行性能比较。虽然PoseFlow算法在概念上是在线的,但处理是在多个阶段执行的,并且需要预先计算帧之间的关键点匹配,这在计算上是昂贵的。相比之下,我们的轻追踪是真正在线处理的。
速度:在单个Telsa P40 GPU上进行测试,每对的姿态匹配平均花费2∶9毫秒。由于姿态匹配只发生在关键帧,它的出现频率取决于候选者的数量和关键帧间隔的长度。因此,我们在PoseTrack′18验证集上测试了平均处理时间,该验证集由74个视频组成,总共8,857帧。在线算法CPN101-LightTrack花费了11,638秒处理,其中11,450秒用于姿态估计。整个系统的帧率为0∶76fps。该框架以大约47.11fps的速度运行,不包括姿态推断时间。总计遇到了57,928人。每帧平均追踪6.54人。CPN101处理每个候选人需要140毫秒,包括109毫秒的姿态推断和31毫秒的预处理和后续处理。通过姿态估计器和并行推理优化的其他选择,实际帧率和追踪性能有潜在的改进空间。我们看到MSRA152-LightTrack的性能有所提高,但由于其133毫秒的推断时间导致帧率稍慢。
实验:6、讨论。
准确性:由于我们框架中的组件易于替换和扩展,因此使用该框架的方法可以变得更快、更准确,或者两者兼而有之。需要注意,第3节中提到的姿态估计器可以用更准确或更快的对应物代替。通用对象检测器中提升的性能或专注于检测人的方法(例如,使用辅助数据集)也应该提高姿态追踪性能。第4节中的消融研究表明,无论使用哪种检测器,更好的检测都会提高MOTA分数。
速度:姿态估计网络可以优先考虑速度,同时牺牲一些准确性。例如,我们分别使用YOLOv3和MobileNetv1-deconv(YoloMD)作为检测器和姿态估计器。这在PoseTrack′18验证集上以70.4mAP和MOTA得分55.7%实现平均2FPS。除了网络结构设计之外,更快的网络还可以从先前帧中细化热图。最近,基于细化的网络引起了极大的关注。
灵活性:我们在姿态追踪中自顶向下方法的优势在于我们可以方便地追踪特定目标,而不必追踪所有候选者。这可以简单地通过在第一帧选择目标并在关键帧提供目标位置来实现。作为附带效果,这进一步降低了计算复杂度。如果目标具有特定的视觉外观,则可以方便地扩展框架以确保仅在关键帧处匹配目标并在剩余帧处进行追踪。
总之,本公开提供了一种用于在线人体姿态追踪的有效且通用的轻量级框架。本公开还提供了采用该框架的基线,并提供了用于人体姿态匹配的孪生图卷积网络作为姿态追踪系统中的Re-ID模块。基于骨架的表示有效地捕捉人体姿态相似性并且计算成本低。本公开的方法明显优于其他在线方法,与离线状态的最先进技术相比非常具有竞争力,具有更高的帧率。
本公开的示例性实施例的前述描述仅出于说明和描述的目的而呈现并且不旨在穷举或将本公开限制为所公开的精确形式。根据上述教导,许多修改和变化是可能的。
选择和描述实施例是为了解释本公开的原理及其实际应用,从而使本领域的其他技术人员能够利用本公开和各种实施例以及适合于预期的特定用途的各种修改。在不脱离本公开的精神和范围的情况下,替代实施例对于本公开所属领域的技术人员将变得显而易见。因此,本公开的范围由所附权利要求而不是前述描述和其中描述的示例性实施例限定。
参考文献(通过引用整体并入本文):
1.LAW,H and DENG,J,CornerNet:Detecting objects as paired keypoints,2019,arXiv:1808.01244.
2.XIAO,B;WU,H and WEI,Y,Simple baselines for human pose estimationand tracking,2018,arXiv:1804.06208.
3.YAN,S;XIONG,Y;and LIN D,Spatial temporal graph convolutionalnetworks for skeleton-based action recognition,2018,arXiv:1801.07455.
4.ZHU,J;YANG,H,et al.,Online multi-object tracking with dual matchingattention networks,2019,arXiv:1902.00749.
Claims (20)
1.一种用于姿态追踪的系统,包括:
计算设备,包括处理器和存储有计算机可执行代码的存储设备,其中,所述计算机可执行代码在所述处理器处执行时被配置为:
提供视频的多个连续帧,所述连续帧包括至少一个关键帧和多个非关键帧;
对于所述多个非关键帧中的每个非关键帧:
接收从先前帧推断出的对象的先前推断边界框;
在所述先前推断边界框所定义的区域中,从所述非关键帧估计关键点,以获得估计的关键点;
基于所述估计的关键点,确定对象状态,其中,所述对象状态包括“追踪到”状态和“丢失”状态;以及
当所述对象状态为“追踪到”时,基于所述估计的关键点,推断推断边界框,以处理所述非关键帧的下一帧。
2.根据权利要求1所述的系统,其中,所述计算机可执行代码被配置为使用卷积神经网络从所述非关键帧估计关键点。
3.根据权利要求1或2所述的系统,其中,当所述估计的关键点具有大于阈值分数的平均置信度时,所述对象状态为“追踪到”,当所述估计的关键点具有小于或等于所述阈值分数的平均置信度时,所述对象状态为“丢失”。
4.根据权利要求1至3中任一项所述的系统,其中,所述计算机可执行代码被配置为通过以下方式推断所述推断边界框:
定义包围所述估计的关键点的包围框;以及
将所述包围框沿所述包围框的水平方向和垂直方向分别放大20%。
5.根据权利要求1所述的系统,其中,所述计算机可执行代码还被配置为,当所述对象状态为“丢失”时:
从所述非关键帧中检测对象,其中,每个检测到的对象由检测的边界框定义;
从所述检测的边界框中对应的边界框估计每个检测到的对象的关键点,以获得检测的关键点;
通过将所述检测到的对象的所述检测的关键点与存储的对象的存储的关键点进行比较,来识别每个所述检测到的对象,每个所述存储的对象具有对象标识ID;以及
当所述检测的关键点与来自所述存储的对象中对应对象的所述存储的关键点相匹配时,为所述检测到的对象分配所述存储的对象中对应对象的所述对象ID。
6.根据权利要求5所述的系统,其中,所述计算机可执行代码被配置为使用卷积神经网络检测对象。
7.根据权利要求5所述的系统,其中,所述计算机可执行代码被配置为使用卷积神经网络来估计所述关键点。
8.根据权利要求5所述的系统,其中,所述将所述检测到的对象的所述检测的关键点与所述存储的关键点进行比较的步骤是使用孪生图卷积网络SGCN执行的,所述SGCN包括具有共享网络权重的两个图卷积网络GCN,每个所述GCN包括:
第一图卷积网络GCN层;
第一Relu单元,连接到所述第一GCN层;
第二GCN层,连接到所述第一Relu单元;
第二Relu单元,连接到所述第二GCN层;
平均池化层,连接到所述第二GCN层;
全连接网络FCN;以及
特征向量转换层,
其中,所述第一GCN层被配置为接收所述检测到的对象之一的检测的关键点,所述特征向量转换层被配置为产生表示所述检测到的对象之一的姿态的特征向量。
9.根据权利要求8所述的系统,其中,所述SGCN被配置为通过以下方式执行所述比较的步骤:
通过所述两个GCN中的一个GCN来运行估计的关键点,以获得针对估计的关键点的估计特征向量;
通过所述两个GCN中的另一个GCN来运行所述存储的对象之一的存储的关键点,以获得针对所述存储的关键点的特征向量;以及
当所述估计特征向量和存储的特征向量之间的距离小于预定阈值时,确定所述估计的关键点与所述存储的关键点相匹配。
10.根据权利要求5所述的系统,其中,对于所述非关键帧中的每个非关键帧,所述计算机可执行代码被配置为,当所述对象的所述估计的关键点与任何所述存储的对象的所述关键点都不匹配时:为所述对象分配新的对象ID。
11.根据权利要求1所述的系统,其中,对于所述关键帧中的每个关键帧,所述计算机可执行代码被配置为:
检测所述关键帧中的对象,其中,每个检测到的对象由边界框定义;
从与所述检测到的对象对应的所述边界框估计每个检测到的对象的多个检测的关键点;
通过将所述检测到的对象的所述检测的关键点与存储的对象的存储的关键点进行比较,来识别每个所述检测到的对象,每个所述存储的对象具有对象标识ID;以及
当所述检测的关键点与来自所述存储对象中对应对象的所述存储的关键点相匹配时,为所述检测到的对象分配所述存储的对象中对应对象的所述对象ID。
12.根据权利要求11所述的系统,其中,对于每个所述关键帧,所述计算机可执行代码被配置为,当所述对象的所述估计的关键点与任何所述存储对象的所述关键点都不匹配时:为所述对象分配新的对象ID。
13.一种用于姿态追踪的方法,包括:
提供视频的多个连续帧,所述连续帧包括至少一个关键帧和多个非关键帧;
对于所述多个非关键帧中的每个非关键帧:
接收从先前帧推断出的对象的先前推断边界框;
在所述先前推断边界框所定义的区域中,从所述非关键帧估计关键点,以获得估计的关键点;
基于所述估计的关键点,确定对象状态,其中,所述对象状态包括“追踪到”状态和“丢失”状态;以及
当所述对象状态为“追踪到”时,基于所述估计的关键点,推断推断边界框,以处理所述非关键帧的下一帧。
14.根据权利要求13所述的方法,其中,当所述估计的关键点具有大于阈值分数的平均置信度时,所述对象状态为“追踪到”,当所述估计的关键点具有小于或等于所述阈值分数的置信度时,所述对象状态为“丢失”。
15.根据权利要求13或14所述的方法,其中,所述推断推断边界框的步骤包括:
定义包围所述估计的关键点的包围框;以及
将所述包围框沿所述包围框的水平方向和垂直方向分别放大20%。
16.根据权利要求13所述的方法,还包括,当所述对象状态为“丢失”时:
从所述非关键帧中检测对象,其中,每个检测到的对象由检测的边界框定义;
从所述检测的边界框中对应的边界框估计每个检测到的对象的关键点,以获得检测的关键点;
通过将所述检测到的对象的所述检测的关键点与每个存储的对象的存储的关键点进行比较,来识别每个所述检测到的对象,每个所述存储的对象具有对象标识ID;以及
当所述检测的关键点与来自所述存储的对象之一的所述存储的关键点相匹配时,为所述检测到的对象分配所述存储的对象之一的所述对象ID。
17.根据权利要求16所述的方法,其中,所述检测对象和所述估计关键点的步骤都是使用卷积神经网络CNN执行的。
18.根据权利要求16所述的方法,其中,所述将所述检测到的对象的所述检测的关键点与所述存储的关键点进行比较的步骤是使用孪生图卷积网络SGCN执行的,所述SGCN包括具有共享网络权重的两个图卷积网络GCN,每个所述GCN包括:
第一图卷积网络GCN层;
第一Relu单元,连接到所述第一GCN层;
第二GCN层,连接到所述第一Relu单元;
第二Relu单元,连接到所述第二GCN层;
平均池化层,连接到所述第二GCN层;
全连接网络FCN;以及
特征向量转换层,
其中,所述第一GCN层被配置为接收所述检测到的对象之一的检测的关键点,所述特征向量转换层被配置为产生表示所述检测到的对象之一的姿态的特征向量。
19.根据权利要求13所述的方法,还包括,对于所述关键帧中的每个关键帧:
从所述关键帧中检测对象,其中,每个检测到的对象由检测的边界框定义;
从每个所述检测的边界框估计检测的关键点,以获得检测的关键点;
通过将所述检测到的对象的所述检测的关键点与存储的对象的存储的关键点进行比较,来识别每个所述检测到的对象,每个所述存储的对象各具有对象标识ID;以及
当所述检测的关键点与来自所述存储对象中对应对象的所述存储的关键点相匹配时,为所述检测到的对象分配所述存储的对象中对应对象的所述对象ID。
20.一种存储有计算机可执行代码的非暂时性计算机可读介质,其中,当所述计算机可执行代码在计算设备的处理器处执行时,被配置为实现根据权利要求13至19中任一项所述的用于姿态追踪的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/576,856 US11288835B2 (en) | 2019-09-20 | 2019-09-20 | Lighttrack: system and method for online top-down human pose tracking |
US16/576,856 | 2019-09-20 | ||
PCT/CN2020/116226 WO2021052469A1 (en) | 2019-09-20 | 2020-09-18 | Lighttrack: system and method for online top-down human pose tracking |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114787865A true CN114787865A (zh) | 2022-07-22 |
Family
ID=74881265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080062563.7A Pending CN114787865A (zh) | 2019-09-20 | 2020-09-18 | 轻追踪:用于在线自顶向下人体姿态追踪的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11288835B2 (zh) |
CN (1) | CN114787865A (zh) |
WO (1) | WO2021052469A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11238612B2 (en) * | 2018-08-28 | 2022-02-01 | Beijing Jingdong Shangke Information Technology Co., Ltd. | Device and method of tracking poses of multiple objects based on single-object pose estimator |
JP2021071794A (ja) * | 2019-10-29 | 2021-05-06 | キヤノン株式会社 | 主被写体判定装置、撮像装置、主被写体判定方法、及びプログラム |
US11195039B2 (en) * | 2020-03-10 | 2021-12-07 | International Business Machines Corporation | Non-resource-intensive object detection |
US20210326646A1 (en) * | 2020-04-20 | 2021-10-21 | Chooch Intelligence Technologies Co. | Automated generation of training data for contextually generated perceptions |
US11430221B2 (en) * | 2020-09-11 | 2022-08-30 | Sensormatic Electronics, LLC | Enhancing detection of occluded objects in a multiple object detection system |
CN113111754A (zh) * | 2021-04-02 | 2021-07-13 | 中国科学院深圳先进技术研究院 | 一种目标检测方法、装置、终端设备和存储介质 |
CN113240709B (zh) * | 2021-04-23 | 2022-05-20 | 中国人民解放军32802部队 | 基于对比学习的孪生网络目标跟踪方法 |
KR102628598B1 (ko) * | 2021-04-28 | 2024-01-24 | 계명대학교 산학협력단 | 그래프 합성곱 신경망을 이용한 다중 객체 추적 장치 및 방법 |
CN113297963A (zh) * | 2021-05-24 | 2021-08-24 | 网易(杭州)网络有限公司 | 多人姿态的估计方法、装置、电子设备以及可读存储介质 |
US11600074B2 (en) * | 2021-06-29 | 2023-03-07 | Anno.Ai, Inc. | Object re-identification |
CN114092963B (zh) | 2021-10-14 | 2023-09-22 | 北京百度网讯科技有限公司 | 关键点检测及模型训练方法、装置、设备和存储介质 |
CN114494357B (zh) * | 2022-04-07 | 2022-07-12 | 长沙海信智能系统研究院有限公司 | 目标跟踪方法及其装置、设备、可读存储介质、程序产品 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7536030B2 (en) * | 2005-11-30 | 2009-05-19 | Microsoft Corporation | Real-time Bayesian 3D pose tracking |
EP3008694B1 (en) * | 2013-06-11 | 2021-01-27 | Qualcomm Incorporated | Interactive and automatic 3-d object scanning method for the purpose of database creation |
US9811732B2 (en) * | 2015-03-12 | 2017-11-07 | Qualcomm Incorporated | Systems and methods for object tracking |
US11144761B2 (en) * | 2016-04-04 | 2021-10-12 | Xerox Corporation | Deep data association for online multi-class multi-object tracking |
US10467458B2 (en) * | 2017-07-21 | 2019-11-05 | Altumview Systems Inc. | Joint face-detection and head-pose-angle-estimation using small-scale convolutional neural network (CNN) modules for embedded systems |
US10592786B2 (en) * | 2017-08-14 | 2020-03-17 | Huawei Technologies Co., Ltd. | Generating labeled data for deep object tracking |
US9946960B1 (en) | 2017-10-13 | 2018-04-17 | StradVision, Inc. | Method for acquiring bounding box corresponding to an object in an image by using convolutional neural network including tracking network and computing device using the same |
US10628961B2 (en) * | 2017-10-13 | 2020-04-21 | Qualcomm Incorporated | Object tracking for neural network systems |
US10600157B2 (en) | 2018-01-05 | 2020-03-24 | Qualcomm Incorporated | Motion blur simulation |
US11187536B2 (en) * | 2018-01-12 | 2021-11-30 | The Trustees Of The University Of Pennsylvania | Probabilistic data association for simultaneous localization and mapping |
US11238612B2 (en) * | 2018-08-28 | 2022-02-01 | Beijing Jingdong Shangke Information Technology Co., Ltd. | Device and method of tracking poses of multiple objects based on single-object pose estimator |
JP7147420B2 (ja) * | 2018-09-26 | 2022-10-05 | トヨタ自動車株式会社 | 物体検出装置、物体検出方法及び物体検出用コンピュータプログラム |
MX2021012510A (es) * | 2019-04-12 | 2022-01-06 | Univ Iowa Res Found | Sistema y método para predecir, prevenir y mitigar lesiones en el lugar de trabajo. |
CN110163286B (zh) * | 2019-05-24 | 2021-05-11 | 常熟理工学院 | 一种基于混合池化的领域自适应图像分类方法 |
US11138423B2 (en) * | 2019-07-29 | 2021-10-05 | Intuit Inc. | Region proposal networks for automated bounding box detection and text segmentation |
JP7078021B2 (ja) * | 2019-08-08 | 2022-05-31 | トヨタ自動車株式会社 | 物体検出装置、物体検出方法及び物体検出用コンピュータプログラム |
-
2019
- 2019-09-20 US US16/576,856 patent/US11288835B2/en active Active
-
2020
- 2020-09-18 WO PCT/CN2020/116226 patent/WO2021052469A1/en active Application Filing
- 2020-09-18 CN CN202080062563.7A patent/CN114787865A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210090284A1 (en) | 2021-03-25 |
WO2021052469A1 (en) | 2021-03-25 |
US11288835B2 (en) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114787865A (zh) | 轻追踪:用于在线自顶向下人体姿态追踪的系统和方法 | |
Ning et al. | Lighttrack: A generic framework for online top-down human pose tracking | |
US11238612B2 (en) | Device and method of tracking poses of multiple objects based on single-object pose estimator | |
Ji et al. | Interactive body part contrast mining for human interaction recognition | |
Li et al. | Grayscale-thermal object tracking via multitask laplacian sparse representation | |
Wang et al. | Tracklet association by online target-specific metric learning and coherent dynamics estimation | |
Chu et al. | Multi-task recurrent neural network for immediacy prediction | |
Song et al. | Unsupervised Alignment of Actions in Video with Text Descriptions. | |
WO2023109361A1 (zh) | 用于视频处理的方法、系统、设备、介质和产品 | |
Du et al. | Discriminative hash tracking with group sparsity | |
Lei et al. | Continuous action recognition based on hybrid CNN-LDCRF model | |
Jessika et al. | A study on part affinity fields implementation for human pose estimation with deep neural network | |
Shamsafar et al. | Uniting holistic and part-based attitudes for accurate and robust deep human pose estimation | |
Danisman et al. | In-plane face orientation estimation in still images | |
Ji et al. | A view-invariant action recognition based on multi-view space hidden markov models | |
Malgireddy et al. | A shared parameter model for gesture and sub-gesture analysis | |
WO2022038702A1 (en) | Causal interaction detection apparatus, control method, and computer-readable storage medium | |
Moreira et al. | Fast and accurate gesture recognition based on motion shapes | |
Roubleh et al. | Video based human activities recognition using deep learning | |
Suma et al. | Activity recognition in egocentric videos using bag of key action units | |
Kapoor | Shoulder Keypoint-Detection From Object Detection | |
Dashdamirli | Human pose estimation: existing methods and applications | |
Fang et al. | From clamped local shape models to global shape model | |
Liu et al. | Research on human behaviour recognition method of sports images based on machine learning | |
Xu et al. | Hierarchical online multi-person pose tracking with multiple cues |
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 |