CN114926530A - 用于生成三维姿态估计数据的计算机实现的方法、数据处理装置和计算机程序 - Google Patents

用于生成三维姿态估计数据的计算机实现的方法、数据处理装置和计算机程序 Download PDF

Info

Publication number
CN114926530A
CN114926530A CN202210130521.3A CN202210130521A CN114926530A CN 114926530 A CN114926530 A CN 114926530A CN 202210130521 A CN202210130521 A CN 202210130521A CN 114926530 A CN114926530 A CN 114926530A
Authority
CN
China
Prior art keywords
pose estimation
dimensional
data
estimation data
dimensional pose
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
CN202210130521.3A
Other languages
English (en)
Inventor
不公告发明人
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.)
Grezper Technology Co ltd
Original Assignee
Grezper Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Grezper Technology Co ltd filed Critical Grezper Technology Co ltd
Publication of CN114926530A publication Critical patent/CN114926530A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/292Multi-camera tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • 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
    • G06T7/85Stereo camera calibration
    • 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/20Special algorithmic details
    • G06T2207/20036Morphological image processing
    • G06T2207/20044Skeletonization; Medial axis transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • 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/30241Trajectory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)

Abstract

本公开的示例涉及用于生成三维姿态估计数据的计算机实现的方法、数据处理装置和计算机程序。该方法包括获得多个摄像头的视频数据,该视频数据示出从多个观察角度感知的一个或多个人的运动。该方法包括使用适于基于视频数据执行二维姿态估计的机器学习模型来生成一个或多个人的二维姿态估计数据。该方法包括基于一个或多个人的二维姿态估计数据生成该一个或多个人的三维姿态估计数据。二维和三维姿态估计数据由一个或多个人的身体上的一个或多个点定义。该方法包括通过示出覆盖在视频数据上的一个或多个人的身体上的一个或多个点的运动来提供一个或多个人的运动的动画。该方法包括为用户提供用户界面以调整一个或多个人的身体上的一个或多个点的位置,用户界面基于覆盖在视频数据上的一个或多个点的运动的图示。

Description

用于生成三维姿态估计数据的计算机实现的方法、数据处理 装置和计算机程序
技术领域
本公开的示例涉及基于来自多个摄像头的二维视频数据生成三维姿态估计 数据的计算机实现的方法、数据处理装置和计算机程序。
背景技术
关于视频数据中所示的人的运动和姿态进行的视频数据分析是一个正在发 展的研究领域。存在各种算法以及基于机器学习的方法,用于从二维视频数据 生成三维姿态估计数据。然而,在许多情况下,例如由于二维视频数据在关键 点的位置方面为一定量的模糊性留下了空间,用于生成2D和3D姿态估计数据 的视频数据和算法可能导致不太理想的姿态估计数据。
发明内容
本公开的各种示例基于以下发现:由于通过相应算法估计的点在被遮挡而 看不见的情况下(例如隐藏在衣服下、因特定视角而隐藏等)不能被可靠地估 计,从视频数据提取二维和三维姿态估计数据通常容易出错。相反,在不明确 的情况下,为所述点选择近似位置,这通常导致二维和三维姿态估计数据在连 续的视频帧之间“振动”。本公开的各种示例提供了一种构想,其向用户提供以 交互方式评估和调整姿态估计数据的高效手段,从而以高时间效率生成高质量 的姿态估计数据,该高质量的姿态估计数据例如随后可用于机器学习模型的训 练。
本公开的各种示例涉及一种用于生成三维姿态估计数据的计算机实现的方 法。所述方法包括获得多个摄像头的视频数据。所述视频数据示出了从多个观 察角度感知的一个或多个人的运动。所述方法包括使用适于基于所述视频数据 执行二维姿态估计的机器学习模型来生成所述一个或多个人的二维姿态估计数 据。所述方法包括基于所述一个或多个人的二维姿态估计数据生成所述一个或 多个人的三维姿态估计数据。所述二维和三维姿态估计数据由所述一个或多个 人的身体上的一个或多个点定义。所述方法包括通过示出覆盖在所述视频数据 上的所述一个或多个人的身体上的一个或多个点的运动来提供所述一个或多个 人的运动的动画。所述方法包括为用户提供用户界面,以调整所述一个或多个 人的身体上的一个或多个点的位置。所述用户界面基于覆盖在所述视频数据上 的所述一个或多个点的运动的图示。通过生成所述运动的动画,帧之间的不连 续性或模糊性对于所述用户界面的用户而言可以变得明显。通过将所述点覆盖 在所述视频数据上,可以使得所述用户能够判断所生成的姿态估计数据和下面 的视频数据之间的对应关系。所述用户界面可以向用户提供用于校正上述不连 续性和模糊性的一种方便且高效的方式。
可以在所述过程的各个阶段更新和提供所述动画。例如,可以在生成二维 姿态估计数据之后、在生成三维姿态估计数据之后和/或在自动调整三维姿态估 计数据之后提供和/或更新所述运动的动画和/或所述用户界面。这可以使得在所 述过程的各个阶段对所述姿态估计数据进行迭代改进。
在一些示例中,所述方法包括生成静止图像,该静止图像示出了所述一个 或多个点在随时间的所述运动期间的位置。这种静止图像可以使时间噪声以各 个点在帧之间的不想要的振动的形式可视化。
例如,所述用户界面可以为用户提供用于在二维或三维坐标系内调整各个 点的位置的工具。所述用户可以在检查所述动画时使用该装置来校正(或添加) 各个点。
在姿态估计数据中,通常由骨架表示相应的人,所述骨架包括关节和肢体 (这些专门术语可能不对应于相应术语的解剖意义)。所述二维和三维姿态估计 数据可以由一个或多个骨架的关节在二维或三维坐标系中的位置定义。所述一 个或多个骨架可以代表所述一个或多个人。所述“骨架”提供了相应的人的姿 态的标准化表示。
例如,所述一个或多个骨架的关节通过多个肢体互连。所述用户界面可以 为所述用户提供用于调整所述多个肢体的长度、角度和位置中的至少一个的工 具。例如,所述姿态估计数据中的肢体的属性可以受到这些肢体所表示的人的 相应肢体的物理属性的约束。
在一些示例中,所述方法包括使用一种或多种调整算法自动调整所述三维 姿态估计数据。例如,可以使用各种类型的平滑算法或约束算法来自动调整所 述三维姿态估计数据。在自动调整所述三维姿态估计数据之后生成的所述一个 或多个人的运动的动画可以示出由所述一种或多种调整算法执行的调整的效 果。因此,所述用户可以检查所述动画,以评估对所述姿态估计数据执行的自 动调整的影响。
例如,一种或多种调整算法可以包括平滑算法,例如时间平滑算法。这类 算法可用于减少以所述姿态估计数据在视频帧之间的不想要的振动为形式的时 间噪声。
总体上,所述用户界面可用于使所述平滑算法的使用参数化。例如,时间 平滑算法的一种类型是所谓的卡尔曼滤波。所述用户界面可以为所述用户提供 用于调整平滑算法(例如卡尔曼滤波)的一个或多个参数的工具。
如上所述,所述二维和三维姿态估计数据可以由一个或多个骨架的关节在 二维或三维坐标系中的位置来定义,其中所述一个或多个骨架的关节通过多个 肢体互连。所述一种或多种调整算法可以包括被配置为基于施加在所述多个肢 体上的一个或多个约束来调整所述肢体的关节的位置的至少一种算法。例如, 可以使用某些约束(例如关于所述肢体的长度或关于肢体之间的在物理上可行 的角度)来自动调整所述姿态估计数据。例如,所述一个或多个约束可以包括 关于所述多个肢体的长度的至少一个约束和/或关于肢体之间的角度的至少一个 约束。
因此,所述用户界面可以为所述用户提供用于调整和/或选择被施加在所述 多个肢体上的一个或多个约束的工具。例如,所述用户界面可以提供用于自动 确定的工具、用于输入肢体长度的工具和/或用于选择要施加哪些约束的工具等。
如上所述,所述肢体的长度可以由所提出的***自动确定。例如,所述方 法可以包括基于三维姿态估计数据估计各个肢体的平均长度。在这种情况下, 关于所述多个肢体的长度的所述至少一个约束可以基于各个肢体的估计平均长 度。
为了便于所述用户对所述动画进行评估,关于不同的点/关节,可以在多个 表示之间对所述点/关节进行一致的颜色编码。例如,可以由在所述运动的动画 期间保持不变的不同颜色表示所述一个或多个点中的每个点或所述多个关节中 的每个关节。
总体上,如果所述***已知所述摄像头的位置和相应的观察角度,则可以 从所述二维姿态估计数据自动生成所述三维姿态估计数据。例如,可以通过基 于所述二维姿态估计数据并且基于所述多个摄像头的多个观察角度对所述多个 关节的位置进行三角测量来生成所述三维姿态估计数据。
为了在不同摄像头的视频数据中可见的一个或多个人之间创建对应关系, 所述视频数据可以处于或被带入相互同步。换句话说,可以使所述多个摄像头 的视频数据同步。
总体上,所述三维姿态估计数据可用于各种目的,例如机器学习模型的训 练。为了能够处理所生成的三维姿态估计数据,可以输出相应数据。因此,所 述方法可以包括输出所述三维姿态估计数据。
所生成的数据可用于执行机器学习模型的训练或重新训练。例如,可以使 用所得到的数据来重新训练用于执行所述二维姿态估计的机器学习模型。例如, 所述方法可以包括基于所述一个或多个点的经用户调整的位置来调整适于执行 所述二维姿态估计的机器学习模型的训练。
附加地或替代地,所述数据可用于训练机器学习模型,以从来自单个摄像 头或来自多个摄像头的视频数据(直接)推导出三维姿态估计数据。例如,所 述方法包括基于所述视频数据并且基于所述三维姿态估计数据训练另一机器学 习模型。
本公开的各种示例提供了一种相应的数据处理装置,该数据处理装置包括 被配置为执行上述方法的处理电路。例如,所述数据处理装置被配置为获得多 个摄像头的视频数据。所述视频数据示出了从多个观察角度感知的一个或多个 人的运动。所述数据处理装置被配置为使用适于基于所述视频数据执行二维姿 态估计的机器学习模型来生成所述一个或多个人的二维姿态估计数据。所述数 据处理装置被配置为基于所述一个或多个人的二维姿态估计数据生成所述一个 或多个人的三维姿态估计数据。所述二维和三维姿态估计数据由所述一个或多 个人的身体上的一个或多个点定义。所述数据处理装置被配置为通过示出覆盖 在所述视频数据上的所述一个或多个人的身体上的一个或多个点的运动来提供 所述一个或多个人的运动的动画。所述数据处理装置被配置为向用户提供用户 界面,以调整所述一个或多个人的身体上的一个或多个点的位置。所述用户界 面基于覆盖在所述视频数据上的所述一个或多个点的运动的图示。
本公开的各种示例提供了一种相应的计算机程序,其具有当该计算机程序 在计算机、处理器、处理电路或可编程硬件部件上执行时用于执行上述方法的 程序代码。
附图说明
下面将仅通过示例的方式并参照附图来描述装置和/或方法的一些示例,其 中,
图1a和图1b示出了用于生成三维姿态估计数据的方法的示例的流程图;
图1c(含图1c-1至图1c-3)示出了适于在生成三维姿态估计数据中使用的 用户界面的示意图;
图2示出了用于生成三维姿态估计数据的数据处理装置的框图;
图3a和图3b示出了三维姿态编辑器的用户界面的两个示例;
图4示出了单个摄像头的视频数据的示例;
图5a示出了在视频中的一个人之上的骨架的可视化的示例;
图5b示出了用于输入骨架的尺寸以用于生成二维姿态估计数据的用户界面 的图的示例;
图6a示出了覆盖有二维版本的经三角测量的姿态估计数据的人的视频视 图;
图6b示出了经三角测量的姿态估计数据的三维动画;
图7至图9示出了在调整的各个阶段,姿态估计数据的三维动画以及骨架 的关节的运动路径的可视化;
图10a示出了用于输入骨架的尺寸以用于生成三维姿态估计数据的用户界 面的图的示例;以及
图10b示出了在对骨架的肢体长度施加约束之后,姿态估计数据的三维动 画以及骨架的关节的运动路径的可视化。
具体实施方式
现在参照附图更详细地描述一些示例。然而,其它可能的示例并不限于这 些详细描述的实施例的特征。其它示例可以包括这些特征的修改以及这些特征 的等同和替换特征。此外,本文中用于描述某些示例的术语不应限制其他可能 的示例。
在对附图的整个描述中,相同或相似的附图标记指代相同或相似的元件和/ 或特征,这些元件和/或特征可以相同或以经过修改的形式实施,同时提供相同 或相似的功能。为了清楚起见,图中的线、层和/或区域的厚度也可以进行放大。
除非在个别情况下另有明确定义,当使用“或”来组合两个元件A和B时, 这将被理解为公开了所有可能的组合,即仅A、仅B以及A和B。作为相同组 合的另一种措辞,可以使用“A和B中的至少一个”或“A和/或B”。这同样适 用于两个以上元件的组合。
如果使用单数形式,例如“一个”、“一种”和“该”,并且没有明确或隐含 地将仅使用单个元件定义为强制性的,则另外的示例也可以使用几个元件来实 现相同的功能。如果一个功能在下文被描述为使用多个元件来实现,则另外的 示例可以使用单个元件或单个处理实体来实现相同的功能。还应当理解,术语 “包括”和/或“包含”在使用时描述特定特征、整体、步骤、操作、过程、元 件、部件和/或其组合的存在,但不排除一个或多个其它特征、整体、步骤、操 作、过程、元件、部件和/或其组合的存在或添加。
本公开的各种示例涉及用于无标记三维运动捕捉的交互式的构想、方法、 数据处理装置和计算机程序。总体上,分析二维视频数据以在二维空间中估计 在二维视频数据内可见的人的姿态。然后,该估计的结果用于基于关于从视频 数据所源自的摄像头的定位和取向(即摄像头的姿态)推导出的观察角度的知 识来生成相应的三维姿态估计数据。因此,示例可以涉及从二维视频帧数据生 成三维人体姿态模型。
提供了一种交互式用户界面以辅助该过程,其是通过姿态估计数据在帧之 间的动画来可视化姿态估计的质量,并且通过提供用于自动或手动调整表示所 估计的姿态的点的工具。本公开的示例尤其涉及一种数据编辑器,该数据编辑 器经由用户界面交互式地支持和引导数据(姿态估计数据)的注释。例如,经 注释的数据适于训练估计网络。
图1a和图1b示出了用于生成三维姿态估计数据的方法(计算机实现的方 法)的示例的流程图。该方法包括获得110多个摄像头的视频数据10(例如, 如图1c所示)。视频数据示出了从多个观察角度感知的一个或多个人12(例如, 如图1c所示)的运动。该方法包括使用适于基于视频数据执行二维姿态估计的 机器学习模型来生成120一个或多个人的二维姿态估计数据。该方法包括基于 一个或多个人的二维姿态估计数据生成130一个或多个人的三维姿态估计数据。 二维和三维姿态估计数据由一个或多个人的身体上的一个或多个点14a(例如, 如图1c所示)定义。该方法包括通过示出覆盖在视频数据上的一个或多个人的 身体上的一个或多个点的运动来提供140该一个或多个人的运动的动画16(例 如,如图1c所示)。该方法包括为用户提供150用户界面,以调整一个或多个 人的身体上的一个或多个点的位置。用户界面基于覆盖在视频数据上的一个或 多个点的运动的图示。
如上所述,本公开的各种示例涉及一种编辑器,该编辑器支持从视频数据 生成三维姿态估计数据。编辑器具有相应的用户界面,并由本公开提供的方法、 计算机程序和数据处理装置提供。相应地,本公开的方法、计算机程序和数据 处理装置可以提供用于支持从(二维)视频数据生成三维姿态估计数据的编辑 器。
结合本公开介绍的编辑器允许选择一个人的多个同步2D视角(即,来自源 于多个摄像头并因此源于多个观察角度的视频数据)。因此,该方法包括获得110 多个摄像头的视频数据10。例如,视频数据可以从存储设备或存储介质(例如 结合图2介绍的存储设备26、网络存储器或可移动存储设备)获得。或者,可 以直接从多个摄像头获得(即,接收)视频数据,并且将该视频数据在执行图 1a和/或图1b的方法的计算设备(例如,数据处理装置20)的存储设备上本地 存储。
如上所述,视频数据可以提供一个角色(即,人)的多个同步2D视角。换 句话说,多个摄像头的视频数据可以同步,例如在完全相同的时间拍摄。如果 不是这样,也就是说如果视频没有同步,可以在该过程中进行同步。例如,可 以改变统计数据和/或关键点并使其与其它摄像头的视频同步。在这种情况下, 可能不修改视频本身。例如,该方法可以包括例如基于视频数据中可见的人的 运动、基于与视频数据一起记录的声音或基于与视频数据一起记录的同步信号 来使多个摄像头的视频数据同步。虽然在本公开中关注多个摄像头,但是相同 的原理也可以应用于单个摄像头的视频数据。在这种情况下,三维姿态估计数据的生成可以基于被训练为从二维姿态估计数据获得三维姿态估计数据的机器 学习模型。
视频数据示出了从多个观察角度感知的一个或多个人12的运动。总体上, 本构想可用于为单个人以及为多个不同的人生成三维姿态估计数据。在图3a和 图3b中示出了在视频数据中示出单个人的示例。从不同角度记录一个或多个人。 例如,这可以在封闭空间中进行,例如指定用于记录人的运动的空间,如图3a 和图3b所示。在图3a中,示出了一个人围绕封闭空间运动,其中多个摄像头 布置在该封闭空间周围。例如,多个摄像头可以位于封闭空间的***。或者, 可以以任意设置(例如通过记录重叠空间区域的多个监视摄像头)记录一个或 多个人的运动。总体上,多个摄像头可以从多个观察角度覆盖重叠空间区域(即, 位置)。换句话说,多个观察角度可以示出相同的空间区域(从不同的角度)。 例如,多个观察角度可以示出由放置在空间区域周围的多个摄像头记录的一个 或多个人在该空间区域中的运动。例如,多个摄像头可以定位成使得从多个观 察角度中的至少一个无阻碍地示出一个或多个人中的每一个。总体上,多个观 察角度可以基于被放置在被记录的人周围的摄像头的放置、高度、俯仰角和偏 航角。因此,多个观察角度可以基于用于记录人的摄像头的位置和取向。滚转 角可以是恒定的,使得在图像中重力方向向下。在各种示例中,可以从涉及合 适的校准方法的初始图像驱动校准过程推导出摄像头的位置和取向,并且因此还推导出观察角度,该校准方法例如是在所有摄像头前面同时显示特殊棋盘图 案。这种校准方法可以进行改进,以在校准过程期间向操作者提供交互式视觉 反馈。
作为第一处理步骤,分析视频数据以生成二维姿态估计数据。换句话说, 该方法包括基于视频数据生成120一个或多个人的二维姿态估计数据。将(二 维)视频数据用于生成二维姿态估计数据。例如,可以针对来自每个摄像头的 视频数据单独地生成二维姿态估计数据。换句话说,可以例如在同一文件内或 在不同文件内针对多个观察角度中的每一个单独地定义二维姿态估计数据。
在本公开的背景下,机器学习模型用于执行二维姿态估计。例如,可以训 练机器学习模型以基于(二维)视频数据生成二维姿态估计。例如,视频数据 可以用作机器学习模型的输入,并且可以由机器学习模型输出二维姿态估计数 据。各种公知的机器学习模型可用于该任务,例如用于人类姿态估计的深度姿 态或深度高分辨率表示学习(DeepPose orDeep High-Resolution Representation Learning for Human Pose Estimation,HRNet)。
总体上,对于每个观察角度,视频数据都包括多个视频帧。例如,对于每 个观察角度,视频数据可以包括至少一个视频文件,该视频文件包括例如由一 个摄像头从该观察角度记录的多个帧。例如,可以训练机器学习模型以针对多 个视频帧中的每个帧单独地(即,针对每个观察角度和帧)生成并输出二维姿 态估计数据。或者,可以训练机器学习模型以例如通过跨帧跟踪姿态估计数据 的点/关节跨帧生成的二维姿态估计数据(对于相同的观察角度)。
所提出的方法也适用于处理从一些观察角度被遮挡的肢体。例如,作为三 角测量过程的一部分,可以针对每个摄像头计算并使用每个肢体准确度的估计 值,以“停用”被遮挡的摄像头(例如针对每个人的每个肢体)。
如上所述,在各种示例中,视频数据可以示出多个人。在这种情况下,机 器学习模型可以针对每个人单独地输出二维姿态信息数据。例如,机器学习模 型的输出可以枚举识别出的人并输出每个识别出的人的点的坐标。还可以将用 于生成二维姿态估计数据的机器学习模型训练为执行人的分割,以便对视频数 据中可见的多个人进行分离。例如,可以训练机器学习模型以使用人的位置、 人的视觉外观、人的身体姿态、人的骨骼长度或使用人的重识别来对人进行区 分。视觉人员重识别***的目的是仅从人的外表对人进行区分或重识别。
然而,在一些情况下,可以基于机器学习模型的输出单独地执行分割(例 如通过单独的机器学习模型或通过分割算法)。换句话说,如果视频数据示出多 个人,则该方法可以包括基于机器学习模型的输出来对人进行分割(例如使用 单独的算法或机器学习模型)。例如,可以将单独的算法配置为或者可以将单独 的机器学习算法训练为使用人的位置、人的视觉外观、人的身体姿态、人的骨 骼长度或使用人的重识别来对人进行区分。
可以使用另一种算法(或机器学习模型)来找到不同的观察角度之间的对 应关系。例如,如果视频数据示出多个人,则视频数据中所示的人可以通过算 法或机器学习模型彼此相关联。例如,该方法可以包括在从不同观察角度示出 的人之间建立对应关系(例如,基于人在帧中的位置并且基于观察角度)。
在许多情况下,可以将用于生成二维姿态估计数据的机器学习模型训练为 针对每个人输出多个预定义的点。可以在2D模型中自动生成角色的关键点(即, 人身体上的一个或多个点),例如骨架的关键点。例如,一个或多个点可以对应 于骨架的关节。例如,二维和三维姿态估计数据可以由一个或多个骨架的关节 14a在二维或三维坐标系中的位置来定义,其中一个或多个骨架表示一个或多个 人。例如,关节可以是一个或多个人身体上的点。替代地或附加地,人身体上 的点可以包括以下各项中的一个或多个:对应于人的鼻子的点、对应于人的眼 睛的两个点、对应于人的嘴巴的一个或多个点(例如嘴的两侧可以由两个点表 示)、对应于人的手指的一个或多个点、对应于人的脚趾的一个或多个点,以及表示人的脊柱的一个或多个点。在本公开的背景下,术语“骨架”可能无法按 生物学意义进行理解。相反,骨架可以是姿态估计骨架,其仅按照“生物学上 的”骨架进行建模。骨架可以包括预定义的多个关节,如图5b(针对二维姿态 估计数据)和图10a(针对三维姿态估计数据)所示。例如,相同的多个关节可 用于二维和三维姿态估计数据。一个或多个骨架的关节可以通过多个肢体14b 互连。与上述类似,术语“关节”和“肢体”可以不按其严格的生物学意义进 行使用,而是针对在本公开的背景下所称的姿态估计骨架。例如,如图5b和图 10a所示,骨架的每条腿和臂可以由三个关节14a表示,髋部由三个关节表示, 脊柱由两个关节表示,肩部由三个关节表示,具有鼻子的头部由两个关节表示。 关节可以通过肢体14b互连。例如,臂可以由肢体“上臂”和“下臂”表示, 腿由肢体“大腿”和“小腿”表示,此外,肢体“髋部”、“脊柱”、“肩膀”、“脖 子”和“鼻子”可以是骨架的一部分。所得到的骨架如图5a至图10b所示。
在一些示例中,可以提供附加信息作为机器学习模型的输入。例如,除了 视频数据之外,可以提供关于一个或多个人的姿态估计骨架的肢体长度的信息 作为机器学习模型的输入。例如,如图5b所示,可以经由用户界面提供关于肢 体长度的该信息。为了使不同的关节可视化,多个关节中的每个关节(以及身 体上的每个点)可以由不同的颜色表示。例如,在二维和三维姿态估计数据的 图形动画中颜色可以相同,并且在运动的动画期间颜色可以保持不变。例如, 可以由在运动的动画期间保持不变的不同颜色表示多个关节中的每个关节(以 及身体上的每个点)。
如上所述,二维和三维姿态估计数据由一个或多个人的身体上的一个或多 个点14a定义。例如,二维姿态估计数据可以以机器可读的格式输出,例如作 为JavaScript对象表示(JSON)文件输出。例如,对于已经由机器学习模型识 别出的每个点/关节,二维姿态估计数据可以包括二维空间中的位置(例如,坐 标)以及关于该位置所应用的帧(以及该观察角度的视频数据)的信息。相应 地,对于已经由机器学习模型识别出的每个点/关节,三维姿态估计数据可以包 括三维空间中的位置(例如,坐标)以及关于该位置所应用的帧(以及该观察 角度的视频数据)的信息。
从2D视频帧(例如,在理想情况下,来自8个摄像头(尽管1至1000个 摄像头也是可能的),然而,如果使用单个摄像头,则使用不同的算法),可以 经由三角测量(经由二维姿态估计数据)生成包括姿态信息的3D角色信息。因 此,该方法包括基于一个或多个人的二维姿态估计数据生成130一个或多个人 的三维姿态估计数据。例如,可以通过基于二维姿态估计数据并且基于多个摄 像头的多个观察角度对一个或多个点或多个关节的位置进行三角测量来生成三 维姿态估计数据。例如,基于从其生成相应的二维姿态估计数据的观察角度, 并且基于在相应的视频帧中的点之间的距离,可以通过三角测量推导出相应的 三维姿态估计数据。例如,可以合并表示多个观察角度的二维姿态估计数据, 以获得姿态估计数据的单个三维表示。此外,可以生成3D模型的骨架数据。换 句话说,该方法可以包括从多个关节生成一个或多个骨架。
单个深度感测摄像头(例如飞行时间摄像头或结构光3D扫描仪)可以与所 描述的交互式编辑器一起使用,用于所提出的构想的单摄像头变型。
本构想提供了一种编辑器,其允许手动编辑已经从2D帧生成的3D姿态模 型。例如,手动编辑的目的可以是将3D模型改进为对人眼更可信(即,“自然”、 “生动”)。
所提出的编辑器可以结合上下文概述的功能。特别而言,可以经由用户界 面控制编辑器。该方法包括为用户提供150用户界面。特别而言,该方法可以 包括为用户提供编辑器或至少编辑器的面向用户的元素(包括用户界面)。如上 所述,所提出的编辑器可以执行以下动作的至少一个子集。首先,编辑器可以 加载从多个摄像头获取的视频序列(即,视频数据)。可以处理各个视频以识别 2D中的身体部位和关键点(即,身体上的点)。编辑器可以稳健地对身体部位 的3D位置进行三角测量(例如,以能抵抗噪声和遮挡的方式)。
可以对关键点进行编辑以去除抖动,例如,以生成平滑运动(例如通过卡 尔曼滤波或卡尔曼平滑)。为此,所提出的用户界面可以例如与一个或多个自动 算法结合使用。
用户界面可以包括至少两种类型的元素,即用于显示视频数据、一个或多 个点(例如,骨架)以及运动的动画的视觉元素,以及用于对点进行编辑和改 变参数的编辑工具。图1c示出了适于在生成三维姿态估计数据中使用的用户界 面的示意图。在左侧,用户界面100包括视频数据10的视图,该视图覆盖有一 个或多个人12的运动的动画16。相应地,该方法包括通过示出覆盖在视频数据 10上的一个或多个人12的身体上的一个或多个点的运动来提供140一个或多个 人12的运动的动画16。例如,动画可以示出覆盖在视频数据之上(并与视频数 据同步)的一个或多个点(例如,骨架的关节和肢体)的运动。用户界面可以包括(即示出)覆盖在视频数据上的动画。例如,可以针对用户界面中所示的 多个观察角度中的每一个单独地提供动画16。
在中心的右侧,示出了三维姿态估计数据的三维动画18a以及静止图像18b, 该静止图像18b示出了一个或多个点在随时间的运动期间的位置。相应地,该 方法可以包括生成/提供142三维姿态估计数据的三维动画18a(在三维视图中)。 用户界面可以包括三维姿态估计数据的三维动画18a。该方法还可以包括生成 144静止图像18b,该静止图像18b示出了一个或多个点在随时间的运动期间的 位置。相应地,用户界面可以包括示出了一个或多个点在随时间的运动期间的 位置的静止图像18b。例如,如图1c所示,对于视频的每个帧和每个点/关节, 静止图像可以包括相应点的表示,其中同时示出(所有)帧的点。
在用户界面的右侧,示出了包括在用户界面的示例中的属性编辑器的示例, 该属性编辑器向用户提供用于(在二维和/或三维姿态估计数据中)调整一个或 多个人的身体上的一个或多个点的位置的装置。相应地,该方法包括为用户提 供150用户界面,以调整一个或多个人的身体上的一个或多个点的位置。用户 界面基于覆盖在视频数据上的一个或多个点的运动的图示。例如,一个或多个 动画16、18a用于示出姿态估计数据的当前状态。另外,可以提供能够用于对 点进行调整的用户界面元素。
如所指出的,可以例如手动或使用自动算法来对点/关节进行编辑以去除抖 动,例如,以生成平滑运动(例如通过卡尔曼滤波或卡尔曼平滑)。例如,用户 界面可以为用户提供用于在二维或三维坐标系内调整各个点的位置的工具。附 加地或替代地,该方法可以包括使用一种或多种调整算法自动调整160二维和/ 或三维姿态估计数据。
例如,可以手动修改/调整角色的关键点(即,人身体上的一个或多个点)。 例如,针对视频数据的每个帧,可以使用定点设备(例如鼠标或触控板)或通 过为相应点指定经调整的坐标来手动调整点/关节的位置。例如,可以针对一个 或多个观察角度单独地执行调整(针对二维姿态估计数据),或者直接在三维姿 态估计数据中执行调整。在前一种情况下,经调整的位置可用于直接调整由机 器学习模型生成的二维姿态估计数据,并用于更新所得到的三维姿态估计数据。 在后一种情况下,调整后的位置可用于直接调整三维姿态估计数据,并针对每 个观察角度反向注释所得到的二维姿态估计数据。简言之,该方法可以包括基 于经由用户界面执行的对一个或多个点的手动调整来调整二维和三维姿态估计数据。
调整一个或多个点/关节的另一种方式是使用间接路线。例如,编辑器还可 以引入骨架约束(关于身体部位的尺寸)。也可以在2D模型和/或3D模型中输 入骨架数据,例如骨骼长度。例如,用户界面可以为用户提供用于调整多个肢 体的长度、角度和位置中的至少一个的工具。例如,图5b(针对二维姿态估计 数据)和图10a(针对三维姿态估计数据)示出了这种工具。例如,如图所示, 对于每个肢体,用户界面可以包括其中能够输入长度的文本框。肢体的位置可 以经由关节的位置来改变。另一方面,可以基于肢体的长度自动调整关节的位 置。
例如,一种或多种调整算法可以包括被配置为基于施加在多个肢体上的一 个或多个约束来调整肢体的关节的位置的至少一种算法。例如,由于用户界面 提供用于输入相应肢体的长度、位置和/或角度的工具,该信息可以用作生成二 维和/或三维姿态估计数据的约束。例如,一个或多个约束可以包括关于多个肢 体的长度的至少一个约束和/或关于肢体之间的角度的至少一个约束。例如,在 二维或三维姿态估计数据的生成中,对于肢体的长度或对于两个肢体之间的最 大或最小角度可以假设固定值(例如,以排除生物学上不可能(或非常不可能) 的姿态)。例如,用于生成三维姿态估计数据的算法可以被配置为在考虑至少一 个约束的同时基于二维数据生成三维姿态估计数据,例如,以便生成其中肢体具有静态长度和/或在肢体之间具有最大或最小角度的骨架。用户界面可以为用 户提供用于调整和/或选择被施加在多个肢体上的一个或多个约束的工具,例如 一个或多个文本框。
在一些情况下,例如在对已知的人进行记录以生成三维姿态估计数据的受 控设置中,一个或多个人的肢体的长度可以是已知的。然而,在许多情况下, 肢体的长度在此之前是未知的。在这种情况(以及另一种情况)下,肢体的尺 寸可以从三维姿态估计数据中以编程方式推导出。例如,该方法可以包括基于 三维姿态估计数据估计各个肢体的平均长度。例如,该方法可以包括针对多个 帧计算各个肢体的长度,以及计算每个肢体的长度的平均值。涉及多个肢体的 长度的至少一个约束可以基于各个肢体的估计平均长度。换句话说,被配置为 基于被施加于多个肢体上的一个或多个约束来调整肢体的关节的位置的至少一 种算法可以基于每个肢体的长度的平均值。对于二维姿态估计数据的生成也是 如此,即每个肢体的长度的平均值可以用作机器学习模型的输入(在机器学习 模型的第二次运行中),以生成二维姿态估计数据的改进版本。
如已在上面所指出的,该方法可以包括使用一种或多种调整算法自动调整 160三维姿态估计数据。自动调整算法中的一种与放置在肢体上的约束有关。另 一种类型的自动调整算法与用于对点/关节跨帧的运动进行平滑的算法有关。例 如,一种或多种调整算法可以包括平滑算法,例如时间平滑算法。通常,时间 平滑算法可以是被设计为平滑(即,减少后续帧之间的点/关节的位置的差异) 点在跨帧(并因此跨时间)时的运动的算法。可以使用的一种平滑算法称为卡 尔曼滤波。卡尔曼滤波是一种递归滤波,其获取有噪声的输入(即,姿态估计 数据),并且基于该有噪声的输入并基于线性动态***的先前状态来估计线性动 态***的状态。在这种情况下,线性动态***的部分状态是三维姿态估计数据 的“平滑”版本。例如,图7示出了在应用时间平滑算法之前表示运动的静止 图像的示例,图8示出了在应用卡尔曼滤波之后表示相同运动的静止图像的示 例。
或者,可以使用其它类型的时间平滑滤波,例如基于隐马尔可夫模型的时 间平滑滤波,或者在当前、先前和/或未来的姿态估计数据上使用回归算法的时 间平滑滤波。不管所使用的平滑滤波的类型如何,用户界面可用于控制平滑算 法的应用并控制其参数。例如,用户界面可以为用户提供用于调整平滑算法(例 如卡尔曼滤波)的一个或多个参数的工具。
这种平滑算法可用于减少以运动在跨帧时出现的不想要的振动为形式的时 间噪声。另一方面,不应使运动过于平滑(即可以对点进行手动编辑,以减少 过于平滑的运动),过于平滑的运动对人眼来说似乎不自然。因此,用户界面还 可用于降低从滤波输出的运动的平滑度。
此外,编辑器可以执行中间帧的生成(在因合理印象而需要的情况下)。在 一些情况下,例如,因为可用于点/关节中的至少一个的二维坐标数量不足,对 于帧的子集可能不会生成三维姿态估计数据。在这种情况下,例如,可以在生 成三维姿态估计数据期间省略相应帧,以避免不完整的骨架。可以通过执行相 应帧的插值来恢复这些帧,以恢复两个完整的点/关节集合之间(即,“中间”) 的帧。例如,该方法可以包括通过在至少一个先前帧和至少一个后续帧之间进 行插值来恢复帧的子集的三维姿态估计。
在本公开的背景下,当生成和改进三维姿态估计数据时执行多个动作。在 该过程的任何点,特别是在每个处理动作之后,可以更新运动的动画,该运动 的动画可用于判断姿态估计数据的质量。例如,在生成120二维姿态估计数据 之后、在生成130三维姿态估计数据之后和/或在自动调整160三维姿态估计数 据之后,可以提供140、150(或更新)运动的(二维和三维)动画和/或用户界 面。特别而言,在处理动作之后(例如,在生成或更新二维姿态估计数据之后, 在生成或更新三维姿态估计数据之后,在自动调整三维姿态估计数据之后,或 者在手动调整三维姿态估计数据之后)生成的一个或多个人的运动的动画可以反映相应的处理动作。例如,在生成或更新二维姿态估计数据之后生成的一个 或多个人的运动的动画可以示出二维姿态估计数据的生成或更新的效果。在生 成或更新三维姿态估计数据之后生成的一个或多个人的运动的动画可以示出三 维姿态估计数据的生成或更新的效果。在手动改变姿态估计数据之后生成的一 个或多个人的运动的动画可以示出手动改变姿态估计数据的效果。此外,在自 动调整三维姿态估计数据之后生成的一个或多个人的运动的动画可以示出由一 种或多种调整算法执行的调整的效果。
在各种示例中,编辑器可以使3D动画适合骨架,并重新规范化轨迹以适合 骨架。例如,可以基于由骨架表示的二维和/或三维姿态估计数据来更新动画。 编辑器可以保存所得到的动画并估计身体比例以供进一步外部使用(训练、分 析、模拟或可视化目的)。换句话说,该方法可以包括输出二维和/或三维姿态估 计数据。
通常,所得到的输出可用于各种目的,例如,用于确定视频中所示的一个 或多个人的姿态。在一些示例中,例如,为了动画目的,所得到的骨架甚至可 以被平移到不同的人上。例如,可以使动画适合不同的骨架(即,更改显示的 人)。该不同的人的运动也可能看起来自然,即使该人实际上没有执行任务。
然而,特别而言,所得到的数据可用于机器学习模型的训练。例如,所得 到的三维姿态估计数据可用于更新和/或改进二维姿态估计数据,并重新训练用 于生成二维姿态估计数据的机器学习模型。例如,该方法可以包括基于一个或 多个点的经用户调整的位置(即,基于点/关节的手动调整和/或自动调整的位置) 调整170适于执行二维姿态估计的机器学习模型的训练。
替代地或附加地,可以训练新的机器学习模型以直接从视频数据(例如来 自单个观察角度的视频数据或来自多个观察角度的视频数据)生成三维姿态估 计数据。换句话说,该方法可以包括基于视频数据并且基于三维姿态估计数据 训练180另一机器学习模型。
下面,简要介绍如何执行这种训练。通常,机器学习是指计算机***在不 使用显式指令而是依赖于模型和推断的情况下可以用来执行特定任务的算法和 统计模型。例如,在机器学习中,可以使用从历史数据和/或训练数据的分析推 断的数据变换来代替基于规则的数据变换。例如,可以使用机器学习模型或使 用机器学习算法来分析图像内容。为了让机器学习模型分析图像内容,可以使 用训练图像作为输入以及训练内容信息作为输出来训练机器学习模型。通过用 大量的训练图像和相关联的训练内容信息来训练机器学习模型,机器学习模型 “学习”识别图像内容,因此可以使用机器学习模型来识别没有包含在训练图 像中的图像内容。相同的原理也可用于其他类型的传感器数据:通过使用训练 传感器数据和期望的输出训练机器学习模型,机器学习模型“学习”传感器数 据和输出之间的变换,其可用于基于提供给机器学习模型的非训练传感器数据 提供输出。
在本公开的背景下,训练机器学习模型以基于视频数据输出二维姿态估计 数据。类似地,可以训练另一机器学习模型以基于视频数据输出三维姿态估计 数据。
使用训练输入数据来训练机器学习模型。上面详述的示例使用了一种称为 “监督学习”的训练方法。在监督学习中,使用多个训练样本和多个期望输出 值来训练机器学习模型,其中每个样本可以包括多个输入数据值,即每个训练 样本与期望输出值相关联。通过指定训练样本和期望输出值,机器学习模型基 于与在训练期间提供的样本类似的输入样本来“学习”要提供哪个输出值。除 了监督学习之外,还可以使用半监督学习。在半监督学习中,一些训练样本缺 乏相应的期望输出值。监督学习可以基于监督学习算法,例如,分类算法、回 归算法或相似度学习算法。当输出被限制为有限的一组值时可以使用分类算法, 即输入被分类为有限的一组值中的一个。当输出可以具有任何数值(在一个范 围内)时,可以使用回归算法。相似度学习算法类似于分类算法和回归算法, 但是相似度学习算法基于使用度量两个对象的相似度或相关性的相似度函数从 示例中学习。
除了监督或半监督学习之外,无监督学习也可用于训练机器学习模型。在 无监督学习中,可以(仅)提供输入数据,并且例如通过对输入数据进行分组 或聚类、找到数据中的共性,可以使用无监督学习算法来找到输入数据中的结 构。聚类是将包括多个输入值的输入数据分配到子集(聚类)中,使得同一聚 类内的输入值根据一个或多个(预定义的)相似度标准而相似,而与包括在其 它聚类中的输入值不相似。
强化学习是第三组机器学习算法。换句话说,强化学习可用于训练机器学 习模型。在强化学习中,训练一个或多个软件行为者(称为“软件智能体”)以 在环境中采取行动。根据所采取的行动,计算奖励。强化学习基于训练一个或 多个软件智能体来选择使得累积奖励增加的行动,导致形成能更好执行给定的 任务的软件智能体(如通过增加奖励所证明的)。
对于上述两种机器学习模型,可以选择监督学习方法。例如,对于机器学 习模型和另一机器学习模型的(重新)训练,视频数据可以用作训练样本。对 于机器学习模型的重新训练,可以将(已更新/改进的)二维姿态估计数据用作 期望的输出。因此,学习不必从头开始。相反,可以基于(已更新/改进的)二 维姿态估计数据来更新机器学习模型,例如,可以更新机器学习模型的人工神 经网络的权重。为了训练另一机器学习模型,可以将三维姿态估计数据用作监 督学习的期望输出。
或者,另一类型的机器学习可用于机器学习模型或另一机器学习模型的训 练。例如,可以使用强化学习,其中具有对所生成的姿态估计数据与用于训练 的姿态估计数据的偏差进行建模的奖励函数。
例如,机器学习模型可以是人工神经网络(ANN)。ANN是受例如可以在 大脑中找到的生物神经网络启发的***。ANN包括多个互连的节点以及节点之 间的多个连接(所谓的边)。通常有三种类型的节点,接收输入值的输入节点, (仅)连接到其他节点的隐藏节点,以及提供输出值的输出节点。每个节点可 以代表一个人工神经元。每个边可以将信息从一个节点传输到另一个节点。节 点的输出可被定义为其输入之和的(非线性)函数。节点的输入可基于提供输 入的边或节点的“权重”用于该函数中。可以在学习过程中调整节点和/或边的 权重。换句话说,人工神经网络的训练可以包括调整人工神经网络的节点和/或 边的权重,即针对给定输入实现期望输出。在至少一些实施例中,机器学习模 型可以是深度神经网络,例如包括一个或多个隐藏节点层(即,隐藏层)的神 经网络,优选地是有多个隐藏节点层。
结合所提出的构想或上文或下文描述的一个或多个示例(例如图3a至图 10b)来简述本方法的更多细节和方面。本方法可以包括对应于所提出的构想的 一个或多个方面或上文或下文描述的一个或多个示例的一个或多个附加可选特 征。
图2示出了用于生成三维姿态估计数据的相应数据处理装置20的示例的框 图。数据处理装置包括处理电路24,该处理电路24被配置为执行结合图1a至 图1c介绍的方法。可选地,数据处理装置可以包括一个或多个附加部件,例如 一个或多个接口22和/或一个或多个存储设备26。例如,一个或多个接口22可 用于交换信息、提供用户界面和/或接收用户输入。一个或多个存储设备26可用 于存储数据,例如视频数据和姿态估计数据。
一个或多个接口22可以对应于用于在模块内、模块之间或不同实体的模块 之间接收和/或传输信息的一个或多个输入和/或输出,该信息可以是根据指定代 码的数字(位)值。例如,一个或多个接口22可以包括被配置为接收和/或传输 信息的接口电路。
处理电路24可以使用一个或多个处理单元、一个或多个处理设备、任何用 于处理的装置(例如处理器)、计算机或可与相应适配的软件一起运行的可编程 硬件部件来实施。换句话说,处理电路24的所述功能也可以以软件来实施,然 后在一个或多个可编程硬件部件上执行该软件。这样的硬件部件可以包括例如 中央处理器(CPU)的通用处理器、数字信号处理器(DSP)、微控制器等。在 一些示例中,处理电路可以包括通用图形处理单元(GPGPU)、用于加速机器学 习模型的训练的专用集成电路(ASIC)或用于加速机器学习模型的训练的现场 可编程门阵列(FPGA)中的至少一个。
在各种示例中,一个或多个存储设备26可以包括诸如磁性或光学存储介质 的计算机可读存储介质的组中的至少一个元件,例如硬盘驱动器、闪存、软盘、 随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、 可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM) 或网络存储器。
结合所提出的构想或上文或下文描述的一个或多个示例(例如图1a至图1c, 图4至图10b)来简述数据处理装置的更多细节和方面。数据处理装置可以包括 对应于所提出的构想的一个或多个方面或上文或下文描述的一个或多个示例的 一个或多个附加可选特征。
图3a至图10b示出了3D注释工具/编辑器的示例,该3D注释工具/编辑器 可用于为AI(人工智能)创建训练数据。该3D注释工具/编辑器可用于管理(来 自多个摄像头的视频数据的)导入拍摄配置。该3D注释工具/编辑器可以在多 个(摄像头和三维)视图中提供辅助注释,例如AI姿态估计、三角测量(用于 找到关键点的3D位置)、多个角色的跟踪、骨架约束(例如,以去除异常值) 和时间注释中的一个或多个。
图3a和图3b示出了3D姿态编辑器的用户界面(即,用于调整一个或多个 人的身体上的一个或多个点的位置的用户界面)的视图的两个示例。在图3a中, 视频数据10针对八个摄像头分别显示为301至308,从八个观察角度示出了人 12。在用户界面内可得到来自多视频的所有视图301至308。对于每个视图,可 以通过调用2D姿态推断网络手动或自动进行注释。在图3b中,示出了用于身 体的三维表示的画布。此时,还没有生成三维姿态估计数据,因此画布仅示出 摄像头的位置(例如,参见摄像头310)。
图3a和图3b还提供了摄像头记录人的不同观察角度的图示。在图3b中, 示出了封闭空间周围的摄像头的位置和取向。将摄像头放置在封闭空间周围, 并且朝向封闭空间,以从不同的观察角度记录一个或多个人。图3a示出了从观 察角度得到的视图,其中每个摄像头从不同的观察角度提供对人的视图。
图4示出了单个摄像头(摄像头6)的视频数据的视图的示例,在该视频数 据上覆盖了身体的点的动画16作为骨架。此外,视觉引导410、420覆盖在视 频数据上,在不同视频视图(未示出)之间为用户提供一些取向。在图4中, 在调用2D姿态估计网络之后,现在可以获得骨架的粗略第一近似(在本例中, 由于着色方案,腿最容易看到)。由2D网络生成的粗略姿态通常可能较不精确, 并且可能倾向于随着时间“振动”。在图4、图5a、图6a所示的视频视图中,单 独示出了单个视频视图。然而,在用户界面中,(所有)视频景象可以并行示出, 例如类似于图3a。
图5a和图5b示出了骨架尺寸的可视化和调整的示例。通常,可以使用不 同的颜色来区分不同的身体部位。例如,如图5a所示,在视频视图中覆盖在人 上的骨架可以包括多个关节14a,该多个关节14a通过多个肢体14b互连。每个 肢体(和相邻关节)可以具有独特的颜色,可由用户用于快速识别相应身体部 位。可以估计人的身体部位的尺寸。如果已知,可以提前输入。在图5b中,示 出了用户界面的一部分,其中肢体的尺寸可以由用户调整。肢体的尺寸可以假 设是固定的,并且用于提高动画的合理性。
在各种示例中,下一步是三角测量。在该示例中,结合针对每个关键点(例 如,身体上的点、关节)的八个2D观察,以生成关键点在3D中的位置的估计 值。用户界面可用于设置某些半径阈值和一致关键点的数量的最小限制,以帮 助实施更高的准确度。
图6a示出了覆盖有2D版本的经三角测量的姿态估计数据的人的视频视图。 在三角测量之后,每个2D姿态看起来更精确。图6b示出了在图3b中介绍的画 布上的相应三维动画18a。在某些情况下,得到的动画仍会出现振动。
动画或运动路径的可视化使这一点变得明显。在图7中,除了姿态估计数 据的三维动画18a之外,也将骨架的关节的运动路径18b示为静止图像。
在一些示例中,可以对所生成的轨迹进行平滑。这可以通过时间平滑算法 (例如使用卡尔曼滤波算法的合适变型)来完成。如果所得到的运动过于平滑, 可以再次使用原始观察来恢复缺失的细节。如图8所示,结果是更自然和更“生 动”的动画(减少了运动动路径中不想要的振动)。
在一些示例中,可以省略其中不能从二维姿态估计数据生成三维姿态估计 数据(例如,由于相应的算法或机器学***滑的动画,该平滑的动画可被认为是 可使用的。
作为最后步骤(非必要),可以通过计算每个肢体随时间的平均长度来计算 人的尺寸(即,骨架长度)。然后,可以使动画16、18a适合该骨架。如图10a 所示,新的骨架可以在属性编辑器中可见。如图10b所示,通过使轨迹重新归 一化以适合新的骨架,最终可以产生新的甚至更好的动画。甚至可以使动画适 合完全属于另一个人的完全不同的骨架。
数据现在已经足够平滑和准确,可以用于训练深度网络。该网络随后可用 于人类姿态估计、高级行为分析等。
因此,本公开的各个方面提供了支持2D到3D的姿态生成的编辑器。而且, 编辑器可以支持时间信息的使用并允许参数的手动编辑。可选地,编辑器可以 支持参数的编辑以允许更合理的运动,支持对缺失帧的处理和/或支持对各个摄 像头上的不正确的2D身体部位推断的处理。编辑器可以示出具有经编辑的参数 的动画,和/或示出3D模型的动画。
所提出的编辑器因此可以提供交互性(经由用户界面)和实时可视化。编 辑器可用于执行无标记运动捕捉。可以允许手动编辑数据以产生对人眼来说合 理的运动。可以立即在编辑器中检查编辑的结果和运动的合理性。
得到的数据可适于训练机器学习网络。所生成的数据可用于训练3D关键点 估计网络(例如,用于人类姿态估计、高级行为分析等)。训练数据的质量改进 可以导致网络的结果改进。
在各种示例中,所提出的构想可以扩展到分析物体、动物、植物等的运动。 而且,相同的构想可用于不需要操作者的非交互式执行(即,对人的自动、实 时、无标记的运动捕捉)。
关于前述示例中的一个特定示例所描述的方面和特征也可以与另一示例的 一个或多个方面和特征进行组合,以替换该另一示例的相同或相似的特征,或 者将这些特征附加地引入到该另一示例中。
示例还可以是或涉及包括程序代码的(计算机)程序,以当该程序在计算 机、处理器或其他可编程硬件部件上执行时执行上述方法中的一个或多个。因 此,上述方法中的不同方法的步骤、操作或过程也可以由编程的计算机、处理 器或其它可编程硬件部件执行。示例还可以涵盖程序存储设备(例如数字数据 存储介质),该程序存储设备是机器、处理器或计算机可读的,并且对机器可执 行、处理器可执行或计算机可执行的程序和指令进行编码和/或包含这些程序和 指令。程序存储设备例如可以包括或可以是数字存储设备、例如磁盘和磁带的 磁存储介质、硬盘驱动器或光学可读数字数据存储介质。其他示例还可以包括 被编程为执行上述方法的步骤的的计算机、处理器、控制单元、(现场)可编程 逻辑阵列((F)PLA)、(现场)可编程门阵列((F)PGA)、图形处理器单元(GPU)、 专用集成电路(ASIC)、集成电路(IC)或片上***(SoC)的***。
还应当理解,除非在个别情况下明确说明或出于技术原因所必需,说明书 或权利要求书中公开的几个步骤、过程、操作或功能的公开不应被解释为暗示 这些操作必须依赖于所描述的顺序。因此,前面的描述不将几个步骤或功能的 执行限制为某一顺序。此外,在其他示例中,单个步骤、功能、过程或操作可 以包括和/或可以是分解成几个子步骤、子功能、子过程或子操作。
如果已经关于设备或***描述了一些方面,则这些方面也应当被理解为对 相应方法的描述。例如,设备或***的块、装置或者功能方面可以对应于相应 方法的特征(例如方法步骤)。因此,关于方法描述的方面也应理解为对相应设 备或相应***的相应块、相应元件、属性或功能特征的描述。
在此将下面的权利要求书并入详细描述中,其中每个权利要求可以独立作 为单独的示例。还应当注意,尽管在权利要求书中从属权利要求涉及与一个或 多个其它权利要求的特定组合,但是其它示例也可以包括从属权利要求与任何 其它从属或独立权利要求的主题的组合。在此明确提出这种组合,除非在个别 情况下声明不打算进行特定组合。此外,即使一项权利要求没有被直接定义为 从属于任何其它独立权利要求,对于该其它独立权利要求而言,也应当包括该 权利要求的特征在内。

Claims (15)

1.一种用于生成三维姿态估计数据的计算机实现的方法,所述方法包括:
获得(110)多个摄像头的视频数据(10),所述视频数据示出从多个观察角度感知的一个或多个人(12)的运动;
使用适于基于所述视频数据执行二维姿态估计的机器学习模型来生成(120)所述一个或多个人的二维姿态估计数据;
基于所述一个或多个人的所述二维姿态估计数据生成(130)所述一个或多个人的三维姿态估计数据,
其中,所述二维姿态估计数据和三维姿态估计数据由所述一个或多个人的身体上的一个或多个点(14a)定义;
通过示出覆盖在所述视频数据上的所述一个或多个人的所述身体上的所述一个或多个点的运动来提供(140)所述一个或多个人的所述运动的动画;以及
为用户提供(150)用户界面以调整所述一个或多个人的所述身体上的所述一个或多个点的位置,所述用户界面基于覆盖在所述视频数据上的所述一个或多个点的所述运动的图示。
2.根据权利要求1所述的方法,其中,在生成(120)所述二维姿态估计数据之后、在生成(130)所述三维姿态估计数据之后和/或在自动调整(160)所述三维姿态估计数据之后,提供(140、150)所述运动的所述动画和/或所述用户界面。
3.根据权利要求1或2所述的方法,还包括生成(144)静止图像(18b),该静止图像(18b)示出所述一个或多个点在随时间的所述运动期间的所述位置。
4.根据权利要求1至3中任一项所述的方法,其中,所述用户界面为所述用户提供用于在二维或三维坐标系内调整各个点的位置的装置。
5.根据权利要求1至4中任一项所述的方法,其中,所述二维姿态估计数据和三维姿态估计数据由一个或多个骨架的关节(14a)在所述二维或三维坐标系中的位置定义,所述一个或多个骨架表示所述一个或多个人。
6.根据权利要求5所述的方法,其中,所述一个或多个骨架的所述关节通过多个肢体(14b)互连,其中,所述用户界面为所述用户提供用于调整所述多个肢体的长度、角度和位置中的至少一个的工具。
7.根据权利要求1至6中任一项所述的方法,包括使用一种或多种调整算法自动调整(160)所述三维姿态估计数据,其中,在自动调整所述三维姿态估计数据后生成的所述一个或多个人的所述运动的所述动画示出由所述一种或多种调整算法执行的调整的效果。
8.根据权利要求7所述的方法,其中,所述一种或多种调整算法包括平滑算法,例如时间平滑算法。
9.根据权利要求7或8所述的方法,其中,所述二维姿态估计数据和三维姿态估计数据由一个或多个骨架的关节在二维或三维坐标系中的位置定义,其中,所述一个或多个骨架的所述关节通过多个肢体互连,其中,所述一种或多种调整算法包括被配置为基于施加在所述多个肢体上的一个或多个约束来调整所述肢体的所述关节的所述位置的至少一种算法。
10.根据权利要求9所述的方法,其中,所述用户界面为所述用户提供用于调整和/或选择被施加在所述多个肢体上的所述一个或多个约束的工具。
11.根据权利要求9或10所述的方法,其中,所述一个或多个约束可以包括关于所述多个肢体的长度的至少一个约束和/或关于肢体之间的角度的至少一个约束。
12.根据权利要求11所述的方法,包括基于所述三维姿态估计数据估计各个肢体的平均长度,其中,关于所述多个肢体的所述长度的所述至少一个约束基于所述各个肢体的估计平均长度。
13.根据权利要求1至12中任一项所述的方法,其中,所述方法包括基于所述一个或多个点的经用户调整的位置来调整适于执行二维姿态估计的所述机器学习模型的训练,和/或
其中,所述方法包括基于所述视频数据并且基于所述三维姿态估计数据训练(180)另一机器学习模型。
14.一种数据处理装置(20),包括处理电路(24),该处理电路(24)被配置为执行根据权利要求1至13中任一项所述的方法。
15.一种计算机程序,其具有当该计算机程序在计算机、处理器、处理电路或可编程硬件部件上执行时用于执行根据权利要求1至13中任一项所述的方法的程序代码。
CN202210130521.3A 2021-02-12 2022-02-11 用于生成三维姿态估计数据的计算机实现的方法、数据处理装置和计算机程序 Pending CN114926530A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP21156763.1 2021-02-12
EP21156763.1A EP4044118A1 (en) 2021-02-12 2021-02-12 A computer-implemented method, data processing apparatus and computer program for generating three-dimensional pose-estimation data

Publications (1)

Publication Number Publication Date
CN114926530A true CN114926530A (zh) 2022-08-19

Family

ID=74595106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210130521.3A Pending CN114926530A (zh) 2021-02-12 2022-02-11 用于生成三维姿态估计数据的计算机实现的方法、数据处理装置和计算机程序

Country Status (4)

Country Link
US (1) US20220262036A1 (zh)
EP (1) EP4044118A1 (zh)
JP (1) JP7335370B2 (zh)
CN (1) CN114926530A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7419969B2 (ja) 2020-05-27 2024-01-23 富士通株式会社 生成方法、生成プログラムおよび情報処理装置
CN115410233B (zh) * 2022-11-01 2023-01-24 齐鲁工业大学 一种基于卡尔曼滤波和深度学习的手势姿态估计方法
US11830159B1 (en) * 2022-12-08 2023-11-28 Flawless Holding Limited Generative films
CN116824631B (zh) * 2023-06-14 2024-02-27 西南交通大学 一种姿态估计方法及***

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4077622B2 (ja) 2001-11-15 2008-04-16 独立行政法人科学技術振興機構 3次元人物動画像生成システム
US9747495B2 (en) * 2012-03-06 2017-08-29 Adobe Systems Incorporated Systems and methods for creating and distributing modifiable animated video messages
EP2843621A1 (en) * 2013-08-26 2015-03-04 Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. Human pose calculation from optical flow data
WO2018222756A1 (en) * 2017-05-30 2018-12-06 Ptc Inc. Object initiated communication
US10469768B2 (en) 2017-10-13 2019-11-05 Fyusion, Inc. Skeleton-based effects and background replacement
US11113887B2 (en) * 2018-01-08 2021-09-07 Verizon Patent And Licensing Inc Generating three-dimensional content from two-dimensional images
EP3909504A3 (en) 2018-05-28 2022-03-09 Kaia Health Software GmbH Monitoring the performance of physical exercises
US20200097732A1 (en) * 2018-09-21 2020-03-26 Cubic Corporation Markerless Human Movement Tracking in Virtual Simulation
AU2020270998A1 (en) 2019-04-12 2021-12-02 University Of Iowa Research Foundation System and method to predict, prevent, and mitigate workplace injuries
US11263443B2 (en) * 2019-07-19 2022-03-01 Sri International Centimeter human skeleton pose estimation
US11615592B2 (en) * 2020-10-27 2023-03-28 Snap Inc. Side-by-side character animation from realtime 3D body motion capture

Also Published As

Publication number Publication date
JP2022123843A (ja) 2022-08-24
EP4044118A1 (en) 2022-08-17
US20220262036A1 (en) 2022-08-18
JP7335370B2 (ja) 2023-08-29

Similar Documents

Publication Publication Date Title
CN108369643B (zh) 用于3d手部骨架跟踪的方法和***
JP7335370B2 (ja) 3次元姿勢推定データを生成するためのコンピュータ実装方法、データ処理装置およびコンピュータプログラム
Sharp et al. Accurate, robust, and flexible real-time hand tracking
JP2021503662A (ja) ニューラルネットワークのモデルの訓練
JP2010514064A (ja) ラベル付けを用いた人体姿勢の推定および追跡
CN110561399B (zh) 用于运动障碍病症分析的辅助拍摄设备、控制方法和装置
JP2016099982A (ja) 行動認識装置、行動学習装置、方法、及びプログラム
US11158104B1 (en) Systems and methods for building a pseudo-muscle topology of a live actor in computer animation
CN111222486A (zh) 手部姿态识别模型的训练方法、装置、设备及存储介质
JP2019091436A (ja) 3d配置のタイプに応じた2d画像の分類
EP3711029A1 (en) A method of generating training data
CN110415322B (zh) 虚拟对象模型的动作指令的生成方法和装置
Zhang et al. Anatomy-based face reconstruction for animation using multi-layer deformation
CN112085223A (zh) 一种用于机械维修的诱导***及方法
Hasan et al. Gesture feature extraction for static gesture recognition
CN112199994A (zh) 一种实时检测rgb视频中的3d手与未知物体交互的方法和装置
CN116206024A (zh) 基于视频的虚拟人模型驱动方法、装置、设备及存储介质
Shah et al. Gesture recognition technique: a review
CN107369209A (zh) 一种数据处理方法
Jian et al. Realistic face animation generation from videos
WO2022139784A1 (en) Learning articulated shape reconstruction from imagery
WO2020193972A1 (en) Facial analysis
Abeysundera et al. Nearest neighbor weighted average customization for modeling faces
CN112667088B (zh) 基于vr行走平台的手势应用识别方法及***
WO2022087932A1 (en) Non-rigid 3d object modeling using scene flow estimation

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