3d对象跟踪的制作方法_2

文档序号:9756981阅读:来源:国知局
表示包括凸网格、 囊(capsule)或表示3D模型的其他方式的不同的3D模型的各种方式。在3D模型215中,人手 的模型可以包括17段(即,骨头)。例如,模型可以包括每个手指的三个骨头、表示手掌的单 个骨头以及手腕的单个骨头。骨头可以在关节处被连接并且在它们的角运动中被约束到物 理上可能的配置,如下文描述的那样。在3D模型215中,手的模型可能具有大约20厘米的大 小,虽然在其他实施例中3D模型215可以是可缩放的以适合任何手大小。附加地,手可以是 可修改的以与具有例如错失的手指或双重关节灵活性的用户相符。在某些实施例中,手指 的骨头可以大约是囊状的,并且包括可以占用与邻近的手指骨头相同的空间的圆帽 (rounded cap)。附加地,可以禁用在3D模型215中的某些邻近形状之间的碰撞检测。这可以 允许手指的骨头一般维持彼此附接。
[0026]可以基于刚性体物理学的方法随时间跟踪3D对象200的运动。特别地,跟踪问题可 以被形成为线性方程的约束集合,并且使用诸如投影Gauss-Seidel迭代方法的方法由诸如 求解器模块140之类的求解器模块来求解。线性方程的集合可以包括可以从真实的有关节 的手的物理模型获得的一个或多个约束,并且包括一个或多个角约束、一个或多个碰撞约 束以及一个或多个表面约束,如下文更详细描述的那样。具体地,(一个或多个)表面约束可 以以类似磁体的方式表现,其可以是冲击封顶的(impulse capped)使得映射恰足以在快速 的运动期间移动完整的手但没有那么多不自然的模拟可能产生(例如,关节的分离或非物 理关节角度)。跟踪模型可以假设对用户的手的正确的初始的符合,并且可以在随后的帧上 依赖于在前模拟的手状态(即,时间相干性)以辅助跟踪准确性。由于测量误差、照相机遮挡 (occlusion)和姿态模糊中的一个或多个的存在,时间相干性可能是必要的。
[0027]图3描绘了对象的3D模型的姿态的多个约束。具体地,约束当被表示为线性方程时 可以提供针对可以匹配由3D照相机捕获的3D对象的3D模型的姿态的解。第一约束可以是一 个或多个碰撞/接触约束300,其可以与上文描述的(一个或多个)碰撞/接触约束115类似。 (一个或多个)碰撞/接触约束300可以指3D模型215应该如何处理不同的体之间的碰撞。例 如,在大部分对象(例如,手指到手指、手指到比如墙的固体结构等)中,在接触点处的互相 贯穿可能不发生。如在图3中示出的那样,通过确保相对于对象B上的相应点b的沿着对象A 上的点a的冲击的法线的正的(即,分离的)速率可以避免该互相贯穿。因此,(一个或多个) 碰撞/接触约束300可以被用来约束表示3D模型215的姿态的解,使得在3D模型215的给定姿 态中诸如第一手指的3D模型215的一个或多个"固体"元素不互相贯穿或穿过诸如第二手指 的3D模型215的一个或多个其他"固体"元素。
[0028] 另一约束可以是一个或多个角约束305。(一个或多个)角约束305可以与3D对象 200的不同的关节的限制相关。具体地,(一个或多个)角约束305可以约束表示3D模型215的 姿态的解,使得不以将对于在给定姿态中的3D对象200而言不太可能或不可能的方式定位 3D模型215的该一个或多个元素。例如,手中的关节可以仅具有某范围的移动,并且对于关 节而言运动超出运动的该范围可能不是物理上可能的。因此,(一个或多个)角约束305可以 防止关节在3D模型215中以不自然的方式移动。角约束305可以进一步用于锚定在不同的邻 近骨头之间的连接点。
[0029] 第三约束可以是如在310处和315处示出的一个或多个表面约束。(一个或多个)表 面约束可以被用来约束表示3D模型215的姿态的解。在实施例中,(一个或多个)表面约束可 以是基于将经测量的深度数据映射到3D模型215上的表面点的一个或多个约束。具体地,3D 图像205或一个或多个点云映射210可以提供从3D照相机的视角来看的指示3D对象200的几 何图形的经测量的点314的集合。这些经测量的点314中的每个可以被用作类似磁体的约束 以将3D模型215的姿态移位以更准确地对应于3D对象200的姿态。特别地,3D模型215的面向 照相机的表面可以被约束到这些经测量的点314。
[0030] 在实施例中,可以至少部分地基于3D图像205或点云映射210知道3D对象200的姿 态。然而,可能不知道在3D模型215上的经测量的点314中的每个的位置或甚至经测量的点 314对应的诸如手指、手掌等的3D模型215的哪段。因此,继而可以包括一个或多个模型点 312的诸如3D模型215的段的面的最接近的特征可以被用于附接。如上文记载的那样,表面 约束可以以类似磁体的方式表现以移动3D模型215的一个或多个段或面或者3D模型215的 一个或多个模型点312以符合经测量的点314。附接约束可以是一维的,如下文描述的那样。 [0031 ]作为示例并且如在310中示出的那样,3D模型215可能初始不符合3D图像205或点 云映射210。例如,3D模型215可以在第一位置处具有一个或多个模型点312,而3D图像205 和/或点云映射210可以指示在第二位置处的一个或多个经测量的点314。一个或多个经测 量的点314可以充当对一个或多个模型点312的"磁体"。该磁效应可以导致3D模型215的一 个或多个段或面的旋转,使得一个或多个表面点312更接近地符合一个或多个经测量的点 314,如在315处示出的那样。因此,可以改变3D模型315的姿态使得3D模型315更接近地类似 3D对象200。
[0032]在某些情况下,确保经测量的点314中的全部被映射到3D模型215上的正确的点 (spot)可能不是可能的。因此,冲击(例如施加到3D模型215的力或扭矩)的量可以被封顶或 限制。具体地,被施加以旋转、平移或否则移动3D模型215以符合3D图像205或点云映射210 的冲击的量可能限于具有恰强到足以在3D对象200从事于诸如快速挥手或手指移动之类的 非常快速的运动时拉3D模型215的最大值。相对低,碰撞/接触约束和/或角约束可能不是冲 击封顶的,因为在正常的使用下可以假设3D对象200以及因此3D模型215将维持完整。
[0033]图4描绘了影响手的3D模型的姿态的表面约束的示例。可以对应于3D图像110或 200的手的3D图像400被描绘具有在某个位置中的手指。可以对应于3D模型215的3D模型405 意图表示被示出具有在某个不同的位置中的手指的3D图像400。例如,在3D图像400中,用户 的拇指410被示出相对接近用户的食指。相对地,3D模型405的拇指415被示出相对进一步远 离食指。表示表面约束的多个一维矢量417被示出,其可以动作以调整3D模型405中的拇指 415以更接近地反映3D图像400中的拇指410。
[0034]类似地,在3D模型405中的用户的食指和中指425的位置在与3D图像400中的用户 的食指和中指420的位置不同的位置处。表示表面约束的多个一维矢量被示出,其可以动作 以调整3D模型405中的食指和中指425以更接近地反映3D图像400中的食指和中指420。可以 看到类似的矢量来调整用户的手腕430和用户的小指435的位置。
[0035]图5描绘了根据实施例的过程501的示例,其可以由诸如系统100的系统或更具体 地由3D模型逻辑136执行以确定诸如3D对象110或200之类的3D对象的姿态。
[0036]在实施例中,可以分别在500、505和510处标识一个或多个角约束、碰撞/接触约束 以及表面约束。在500处标识的(一个或多个)角约束可以对应于上文关于例如(一个或多 个)角约束125讨论的(一个或多个)角约束。在505处标识的(一个或多个)碰撞/接触约束可 以对应于上文关于例如(一个或多个)碰撞/接触约束120讨论的(一个或多个)碰撞/接触约 束。在510处标识的(一个或多个)表面约束可以对应于上文关于例如(一个或多个)表面约 束115讨论的(一个或多个)表面约束。
[0037] 在500、505和510处的(一个或多个)角约束、(一个或多个)碰撞/接触约束和(一个 或多个)表面约束的标识中的一个或多个可以彼此并行或彼此顺序地发生。在实施例中,在 500、505和510处的(一个或多个)角约束、(一个或多个)碰撞/接触约束和(一个或多个)表 面约束的标识可以由诸如3D模型逻辑136的求解器模块140之类的求解器模块执行。
[0038]在515处,诸如求解器模块140的求解器模块然后可以针对诸如3D对象110或200之 类的3D对象的诸如3D模型215的3D模型的姿态求解。如上文记载的那样,求解器模块可以是 Gauss-Seidel迭代求解器,其被配置成确定一个或多个线性方程的约束集合的解。如上文 描述的那样,(一个或多个)角约束、(一个或多个)碰撞/接触约束和(一个或多个)表面约束 中的一个或多个可以被用来约
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1