
# DexterCap：低成本且自动化的复杂手-物体交互捕捉系统

梁宇彤 $^{\dagger 1}$、徐诗怡 $^{\dagger 1}$、张玉龙 $^{\dagger 2}$、詹博文 $^{1}$、张赫 $^{3}$、刘立斌 $^{\ddagger 1}$

 $^{1}$北京大学，中国北京

 $^{2}$北京大学计算机学院，中国北京

 $^{3}$腾讯机器人X实验室，中国深圳

![Image](images/48bc2f11ab4d303876f6a5af2266b31c61624ef0b65fd86d9ce95c247d685fa6.jpg)

<div style="text-align: center;">Figure 1: DexterCap captures dexterous manipulation of a Rubik's Cube. Top: raw multi-camera footage showing character-coded marker patches. Bottom: reconstructed 3D hand and object motion. Dense marker coverage enables accurate reconstruction of subtle, natural in-hand manipulation motions.</div>

## 摘要

由于手指间距较近导致的严重自遮挡现象，以及手部操控动作的细微性，捕捉精细的手-物体交互行为极具挑战性。现有的光学动作捕捉系统依赖昂贵的摄像设备，且需要大量人工后期处理；而低成本的基于视觉的方法在出现遮挡时往往精度和可靠性都会下降。为应对这些挑战，我们推出了DexterCap——一款用于灵巧手部操控的低成本光学捕捉系统。DexterCap采用密集的字符编码标记贴片，即便在严重自遮挡的情况下也能实现稳健的追踪，同时配备自动化重建流程，仅需极少的人工干预。借助DexterCap，我们推出了DexterHand数据集，该数据集涵盖了从简单几何体到魔方等复杂可动物体的多种操控行为和物体，记录了精细的手-物体交互数据。我们公开该数据集和代码，以支持未来关于灵巧手-物体交互的研究。项目网站：<https://pku-mocca.github.io/Dextercap-Page/>

CCS概念

• 计算方法 → 动作捕捉：

### 1. 引言

人类的手部结构灵活且自由度极高，在与物理世界的交互中发挥着核心作用。它们能完成各种各样的灵巧动作，支撑着从日常琐事到复杂的专业活动等各类任务，相关技能涵盖简单的抓握和移动物体，到书写、组装零部件或精密制造中的工具操作等手部操控动作。

---

从日常琐事到复杂的专业活动，人们需要运用各种技能，这些技能涵盖了从简单的抓握和移动物体，到书写、组装零件或在精密制造中操作工具等精细的手部动作。

尽管手部技能至关重要，但对其精细化动作的精确捕捉和逼真建模仍是一项重大挑战。虽然涉及人与物体交互（HOI）的数据集和模型日益增多，但现有研究大多集中于抓取和移动等基本动作，或是与简单铰接物体的交互[TGBT20, FTT $^{*}$23, KKNJ25]。在理解和合成各类手部技能所需的精细灵巧性方面，相关资源仍存在巨大缺口。

当前的动作捕捉技术，无论是基于标记的光学系统、数据手套，还是无标记的视觉方法，都存在一定的局限性。基于标记的光学系统虽然精度较高，但通常依赖昂贵的摄像设备与物理标记。常见的设置会使用均匀分布的标记，但这可能导致标记偏移和误标等问题。这些问题往往需要在后期处理中进行大量的人工识别与清理。当捕捉手部操作动作时，这些挑战尤为突出，因为标记之间距离很近且遮挡现象频繁发生。数据手套通常依靠惯性传感器，容易受固有误差累积的影响，主要由陀螺仪漂移和加速度计偏差引起，从而导致手指和手部姿态估计随时间逐渐偏离真实值。无标记的视觉方法则具有更高的灵活性、经济性和可扩展性。然而，在缺乏明确视觉标记的情况下，它们往往难以达到捕捉物体操作时细微手指动作所需的精度和鲁棒性。

为解决这些难题，本文提出了DexterCap，这是一个用于捕捉、求解并重建灵巧手-物交互过程中手部与物体动作的综合性框架。我们的目标是构建一套成本低廉的系统，能够快速获取大规模且多样化的HOI技能数据集，同时确保对细微手指动作的精确还原。该系统的低成本特性体现在两个方面：首先，它采用廉价硬件搭建，使得整套设备在经济上易于承受；其次，只需一次性完成摄像机校准和MANO模型形状估计后，整个流程便能基本自动运行。尽管如第5.1节所述，最初需要标注少量帧来训练图像处理模型，但这些模型能很好地泛化到新会话中，利用以往采集的数据即可实现后续完全自动化的求解过程，从而大幅减少人工干预，实现可扩展的数据收集。

我们的系统借鉴了[CPMK21]提出的基于视觉的方法，该方法用于捕捉全身运动中的人体形变。他们证明，基于深度学习的计算机视觉技术结合专门设计的视觉图案，能够实现密集标记的自动识别与定位。受此启发，针对灵巧的手-物操控场景，我们提出了一种实用且低成本的方法：它使用价格低廉的硬件，仅需极少标注工作，适用于任意刚性物体，并且很容易扩展到关节类物体。通过利用大量带有标签的标记，系统可以增强对遮挡情况的鲁棒性，同时显著减少繁琐的人工清理工作。

不过，要设计这样一套手部动作捕捉系统，我们需要解决两个挑战：（1）由于分辨率有限，必须将摄像机靠近手部，这会导致景深受限，且手部在图像中的尺寸会随位置变化而改变，从而使得跨不同尺度进行稳健的标记检测变得困难；（2）由于遮挡和噪声的影响，标记可能以各种模式缺失，这给恢复手部、手指及物体的完整姿态带来了困难，同时也对校准工作提出了更高要求。

针对第一个挑战，我们引入了三阶段的标记检测与识别模型，依次完成标记、边缘及标签的检测，从而实现稳健且高效的标记识别。为解决第二个挑战，我们采用了可变形手部模型MANO [RTB17]，并开发了稳健的校准与求解流程，以确保手部与物体姿态的精确重建。

为了展示DexterCap的性能，我们推出了DexterHand——一个专为捕捉复杂的手部物体操控而设计的开源HOI数据集。该数据集涵盖了在基础形状和多关节物体（如魔方）上进行的多种操控技能，其动作捕捉具有高精度、强可控性且持续时间长等特点，大多数序列时长超过10分钟。我们利用一系列定量指标和基准测试对DexterCap和DexterHand进行评估。所有工具、模型和数据，包括完整的数据集及我们的处理代码库，都将被公开发布以支持未来的研究。

### 2. 相关工作

#### 2.1. 人机交互中的动作捕捉

精准捕捉人体动作，尤其是手部动作，对于理解和生成灵巧的操控行为以及逼真的动画而言至关重要。随着技术的发展，出现了多种动作捕捉技术，其中光学系统、惯性系统以及无标记视觉系统最为突出。

基于标记的光学动作捕捉通常被视为高精度的“黄金标准”，Qualisys和Vicon等系统被广泛采用。这些系统利用多台摄像机追踪标记点，从而能够从高帧率的位置数据中重建出亚毫米级的精确3D模型[LHB $^{*}$25, KKNJ25, HLW $^{*}$18]。尽管精度很高，但这些系统成本高昂且容易出现遮挡问题（例如标记点互换），因此往往需要大量人工后期处理才能保证捕捉到的动作数据的质量。一些新方案包括T型姿势初始化[MKMB14]，以及基于学习的对应方法——利用合成数据和神经网络来提高标记点求解的鲁棒性[Hol18, HLW $^{*}$18, CWZ $^{*}$21, GB21, PZJ $^{*}$23]。其他方法则利用单目视频线索[MKK24]或采用特殊标记[CPMK21]。不过，当将这些系统应用到更多交互场景，尤其是涉及魔方等多关节物体的情况时，仍需要繁琐的人工操作。

基于传感器的方法使用惯性测量单元

---

（IMU）或关节力接触传感器，这类方法不易受视觉遮挡影响且成本更低。为了进一步提升实用性，近期的研究尝试在TransPose[YZX21]和PIP[YZH $^{*}$22]中减少IMU的数量，并通过缓解局部惯性力等问题来提高精度[YZX24]。然而，利用IMU手套捕捉精细的手部动作在手指精度方面仍面临挑战。此外，在交互复杂的场景中，引入物体通常还需要额外的标记点和对齐操作[KKNJ25]。

基于视觉的无标记方法可以直接从图像或视频中估算身体或手部的姿态，无需使用标记点或专用服装，因此更加便捷且成本低廉[EMMBA $^{*22}$]。这些方法利用了多种成像方式，包括单/多台RGB摄像机[PSR $^{*24}$, PZDZ25]、深度摄像机[HYZ $^{*22}$]、红外摄像机[BSA $^{*25}$]，其中多视角系统能够减轻遮挡现象并提高3D精度。尽管有这些进步，基于视觉的无标记方法仍面临诸多挑战，如严重遮挡、光照变化、运动模糊以及时间一致性保持问题[EMMBA $^{*22}$]。此外，虽然最近有一些研究通过强化学习来强制实现逼真的手物交互[HYC $^{*24}$]，但确保估算出的姿态符合物理规律仍然十分困难。

#### 2.2. 手与物体交互数据集

现有的人体-物体交互数据集主要侧重于捕捉人与物体的全身协同交互，但往往缺乏关于手与物体接触的精确细节[KBM*20, BXP*22, LWL23, YNJ*24, ZLY*23, ALV*23]。光学动作捕捉系统的引入使得更精细的抓取动作能够被采集[TGBT20, TSV23, FZJ*25]。近期的研究进一步扩展了这些数据集，纳入了更多种类的双手功能性操作[LXY*24]，以及与可动物体的交互[FTT*23, ZYZ*24, LZY*25]。与侧重包含宽泛手部动作的全身交互不同，我们的数据集专门聚焦于细粒度的手持操作。

为了捕捉手与物体的交互，许多数据集依赖RGB-D重建技术；该技术虽然具备通用性，但在记录精细的手部运动方面往往存在不足[HVT $^{*}$19, HROL20, CYX $^{*}$21, KTS $^{*}$21, LLJ $^{*}$22, YLZ $^{*}$22]。像ContactPose[BTT $^{*}$20]这样的数据集着重采集可供性[CPA $^{*}$20]和接触信息，这些信息能够提升抓取精度，但仍缺乏动态手部运动的细节。虽然ManipNet[ZYSK21]包含了精确的手持操作数据，比如扭转和旋转动作[MYW $^{*}$20]，但其覆盖的物体仍局限于刚性物品。得益于我们的系统设计和专门的标记贴片，我们的数据集能够捕捉到精准的手持接触情况和细微的手部运动。此外，我们的数据集还纳入了复杂的物体交互场景，比如魔方相关的交互。

### 3. 灵巧手动作捕捉系统

我们的DexterCap系统是一个基于多摄像头的视觉动作捕捉与重建框架，旨在实现对灵巧手持操作中的手与物体运动的高精度追踪。

![Image](images/314a948c46a4435dbb57f339a54a577a07c5513235a47186b570ba8c0b0ede37.jpg)

<div style="text-align: center;">(a) Markers affixed to the left hand.</div>

<div style="text-align: center;">Figure 2: Our marker system: (a) Markers are attached to rigid hand regions (phalanges, dorsum) for accurate tracking. (b) Top: Rigid object (green cube) with visual marker patches. Bottom left: A visual marker patch printed on a transfer sticker. Bottom right: Visual markers transferred onto a medical tape for secure attachment.</div>

该系统提供了一种成本相对较低、易于部署且自动化的软硬件解决方案。系统由一组同步的工业相机组成，它们从多个方向环绕捕捉空间布置。我们会在受试者手部和物体上粘贴一组专门设计的视觉标记。所有相机同时捕捉手部运动，借助基于学习的标记检测模型，只需极少的人工标注即可在录制的视频中识别出这些视觉标记。最终，利用可变形手部模型MANO[RTB17]来估算手部和手指的运动，而物体姿态则通过针对特定物体的求解器来还原。在本节中，我们将详细介绍系统设计和相关算法。

#### 3.1. 硬件设置与标记设计

##### 3.1.1. 摄像头

我们当前的DexterCap系统采用一组同步的工业相机，以$2048 \times 2448$的分辨率和20 FPS的帧率录制灰度视频。这些相机被安装在$2 \times 1 \times 2$米的笼子上，其排列方式旨在尽量减少遮挡现象，确保稳定的3D手部追踪。所有相机均按照标准流程使用OpenCV库[Bra00]进行校准。为防止运动模糊，我们采用了1毫秒的短曝光时间，并尽可能缩小光圈以增加景深。该系统安装在光线充足的房间内，自然光充足，必要时还会辅以少量LED灯提供额外照明。

##### 3.1.2. 标记

受[CPMK21]启发，我们采用了一种定制化的标记系统，该系统采用高对比度的棋盘格图案，以实现可靠的跟踪与识别。如图2所示，每个白色方块内都包含一个黑色的双字符ID，这些ID从26个大写字母和10个数字中选取，且排除了视觉上易混淆的字符，从而可生成324个独特的标签。我们在左侧字符下方标注下划线，以帮助确定方向。

---

![Image](images/13a3a5b871b1256de4da1d945ea3961e2e8f86a46f9f120a5629ac0e9df71c2b.jpg)

<div style="text-align: center;">Figure 3: Image processing pipeline for marker detection. (a) Raw input image with character-coded checkerboard markers. (b) CornerNet detection results. (c) EdgeNet edge classification results. (d) BlockNet block recognition with character identifiers.</div>

[CPMK21]设计了一种带有直接印在织物上的视觉图案的特殊服装。然而我们发现，将类似思路应用于手套时，对手部动作捕捉的效果并不理想。由于不同手部姿势下手套会拉伸、起皱，还可能在皮肤上滑动，这会导致姿态估计出现误差。因此，我们将标记贴片直接贴在手部相对固定的区域，包括指关节、手背和手掌，每只手共19个贴片。这些贴片通过转印工艺制作在医用胶带上，以确保粘贴牢固且舒适。这种密集的标记布局能提供超过500个可检测的角点，即便在严重遮挡的情况下也能保证精确的动作重建。我们还会在物体表面放置标记，以支持对魔方等刚性和铰接物体的可靠姿态估计。

#### 3.2. 图像处理与标记提取

获取原始视频数据后，每一帧都会经过我们的图像处理流程，以检测和识别视觉标记。如图3所示，该流程首先检测候选角点，接着识别它们之间的边缘以拼成块，最后识别出每个块的标签，这些标签编码了角点ID。常用的标记系统，如OpenCV中的ArUco [GJMSMCMJ14]，在这种场景下往往表现不佳，因为标记会发生严重变形。为解决这一问题，我们训练了专门用于标记检测的模型。

棋盘格样式标记图案中角点的精确定位对我们的系统至关重要。为此，我们采用了基于U-Net [RFB15]架构的深度学习方法，在本研究中将其称为CornerNet。CornerNet以$64 \times 64$灰度图像为输入，输出分辨率相同的热图，其中每个角点由高斯峰值表示。为提高处理效率，原始输入图像会被分割成大小为$64 \times 64$像素的重叠区块。关于CornerNet的详情，请参阅附录C。为应对尺度变化问题，我们还将图像尺寸减半并以相同方式处理，这样既能扩大视野范围，又能增强对透视变化的鲁棒性。与直接坐标回归方法[CPMK21]相比，这种基于热图的方案在区块和图像层面都更为可靠（详见第5.2节）。它还能允许单个区块包含多个角点，避免合并重叠预测时出现歧义。

我们通过最小化预测热图与真实值之间的均方误差来训练CornerNet。推理阶段，整幅图像被分割成若干区块并批量处理。处理后的热图区块会被拼接起来，重叠区域则采用最大值策略进行合并。归一化之后，我们设定0.6这一较低的置信度阈值来对热图进行二值化处理，这样做是为了优先保证高召回率，避免在此阶段遗漏真实的角点。后续的边缘检测阶段会剔除潜在的误检结果。最终，角点被确定为二值图中连通分量的中心。

##### 3.2.2. 边缘与区块检测

在检测到候选角点之后，下一步就是确定它们如何组合成棋盘格块。[CPMK21]提出基于几何准则来验证所有生成的候选四边形。然而，我们发现这些准则难以配置，而且它们往往会生成大量候选四边形，导致在块验证阶段的计算成本很高。为了解决这个问题，我们采用了两阶段的块检测策略：首先，检查每对候选角点是否在模板模式中直接相连，然后基于这些连接来组装块。

具体来说，我们使用基于ResNet [HZRS16]的神经网络EdgeNet，它配备了一个全连接分类头，用作二元分类器，用于判断一对候选角点之间是否存在有效的边缘。对于在预定义的欧几里得距离阈值内的每对候选角点，我们会提取以连接这两个角点的线段为中心、且与该线段方向对齐的矩形图像块。该距离阈值是根据人工标注的训练集中边缘长度的统计数据确定的，其设定目的是实现95%的召回率。这种选择在排除明显过长的连接的同时保留了大部分有效边缘，从而在准确性和计算效率之间取得了平衡。提取的图像块会被缩放为$64 \times 64$，并作为EdgeNet的输入。一旦所有连接都得到验证，我们就通过图搜索来识别那些能形成长宽比合适的凸四边形块的角点和边缘，同时避免那些过于细长或扭曲的形状。

EdgeNet的训练采用二元交叉熵（BCE）损失函数。为了构建训练集，我们采用了一种平衡采样策略，其中包括正确边缘（40%）、块对角线（15%）、随机角点之间的连线（30%）以及随机点对（15%）。在推理阶段，我们采用了0.75这一较为保守的置信度阈值。

---

这样做是为了优先考虑精确度，从而防止错误的块组装，同时保留足够的连通性。不属于任何已检测到的块的候选角点会被丢弃。在此阶段，我们并不要求检测到的块完全有效，因为它们会在后续阶段接受进一步验证。

这种以边缘优先的组装方式能够及早剔除明显无效的候选者，并避免对共享边缘进行冗余计算，从而使候选数量减少一个数量级，其精确度和召回率也优于[CPMK21]的方法（详见第5.2节）。

##### 3.2.3. 块识别

图像处理流程的最后阶段是对前几步中检测到的块进行验证和识别。参照[CPMK21]的做法，我们为此任务采用了名为BlockNet的神经网络。我们的BlockNet是基于ResNet的架构，有三个输出头，每个输出头分别负责预测标签的一个字符以及块的方向。我们对标签字母和方向均采用独热编码，这使得BlockNet可以利用标准的交叉熵损失函数进行有效训练。在推理时，被判定为无效的块及其对应的角点会被丢弃。

##### 3.2.4. 后处理

为了提升系统的鲁棒性，我们采用了一种基于投票机制的后处理流程，该机制利用模板中定义的标记模式来纠正可能的错误标注。每个候选块会对同一标记补丁内的其他所有块的标签进行投票；对于每个块而言，得票最多的标签即被选中作为它的最终预测结果。一旦确定了各块的标签，就可以为检测到的每个角点分配一个唯一ID，进而用于在不同图像间匹配对应的角点。

#### 3.3. 三维标记重建

从多个视角提取二维标记坐标和ID后，我们采用三角测量法来重建它们的三维位置。只有至少被三台摄像机观测到的标记才会被纳入考虑范围。在三角测量过程中还会应用RANSAC算法来剔除异常观测值。

由于标记识别错误，初始的三维点中可能包含异常值。我们使用两种启发式方法检测并移除这些异常值：首先，对于模板标记模式中的每个补丁（如图2所示），我们根据三维距离对补丁内的点进行聚类，保留点数最多的那个簇，其余点则被视为异常值并予以丢弃；其次，我们计算滑动窗口内各点坐标的z分数，将分数超过预设阈值的点予以移除。

移除异常值之后，我们采用一种简单策略来填补缺失的标记：当某个标记在之前两帧（$i-1$或$i-2$）和之后两帧（$i+1$或$i+2$）中均被观测到时，就通过线性插值来估算该标记在第i帧的位置。

#### 3.4. 手部运动重建

利用上一步重建的三维标记，我们接下来求解手部和物体的运动。我们以参数化的MANO模型[RTB17]作为手部模板，本节将介绍我们对模型的适配方式、校准过程以及手部运动的求解方法。

##### 3.4.1. 手部模型参数化

MANO模型使用两组参数$(\beta, \theta)$：$\beta \in \mathbb{R}^{10}$用于控制手部的形状，$\theta \in \mathbb{R}^{45}$则通过关节旋转来定义手部的姿态。

为确保符合生物力学原理，我们参照$[\mathrm{SIM}^{20}]$的定义为MANO模型的关节设定局部坐标系，如图4所示。我们使用符合解剖学规律的自由度（DoF）来参数化手部姿态：拇指的掌指（MCP）关节和近节指骨（PIP）关节各被分配3个自由度，其远节指骨（DIP）关节则被建模为1个自由度；对于其他手指，每个MCP关节同样被分配3个自由度，而PIP和DIP关节各被分配1个自由度。这种参数化方式生成了一个简化的姿态向量$\boldsymbol{\phi} \in \mathbb{R}^{27}$，它能以可微的方式映射到完整的MANO姿态空间$\boldsymbol{\theta} \in \mathbb{R}^{45}$。手部的全局平移量表示为$t \in \mathbb{R}^{3}$，全局朝向$\boldsymbol{o}$则采用6D旋转表示法$[\mathrm{ZBL}^{*}19]$来描述。

在为新受试者采集数据之前，我们首先通过将 MANO 模型拟合到受试者手部的 3D 扫描来估计手部形状参数 $\beta \in \mathbb{R}^{10}$。该扫描无需高精度，可以使用经济实惠的 3d 扫描仪获取。在我们的实验中，我们使用了一台低成本的 Structure Sensor l 深度相机，该相机安装在 iPhone 上，并在默认设置下使用其官方扫描应用程序进行操作，从而生成粗网格（约 6k 个顶点），无需任何额外的后处理。拟合通过最小化模型与扫描之间的 Chamfer Distance 来完成，并可选择使用直接手指长度测量进行监督。我们使用梯度下降优化 $\beta$。一旦估计完成，$\beta$ 将针对该受试者固定，并用于所有后续的动作捕捉会话。

有了3D标记数据和固定的形状参数$\beta$之后，我们便可以优化MANO模型的全局平移量t、全局朝向o以及姿态参数$\phi$，从而使模型能够匹配观测到的标记点。

##### 3.4.2. 校准

手部运动求解始于校准过程，其目的是将预定义的标记点与MANO模型关联起来，这与以往的非刚性配准研究[WCF07, HSX $^{*}$22]类似。从形式上来讲，这种关联关系可以表述为：

 $$ \hat{\mathbf{x}}_{i}=M_{i}(\mathbf{t},\mathbf{o},\boldsymbol{\Phi},b)=b_{i}^{1}v_{i}^{1}+b_{i}^{2}v_{i}^{2}+b_{i}^{3}v_{i}^{3} $$

其中$\hat{x}_i$表示标记点i的位置，上方的尖号表示该位置是根据MANO模型计算得出的，而非从视频中直接测量得到的。我们假设$\hat{x}_i$位于由三个网格顶点$v_i^1, v_i^2$和$v_i^3$构成的三角形内，其位置用对应于每个顶点的重心坐标$b_{i\ {1,2,3}}^{1}$来表示。b则代表所有此类关联关系及其对应的重心参数。

---

![Image](images/29c9c65b4789ee99a37ab07c7d2dc3b9f2c8b97e3bf4c5d1f31ff02fed5fa51d.jpg)

<div style="text-align: center;">Figure 4: Local joint coordinate systems defined for the MANO model.</div>

![Image](images/b9b3737a088a7cd69b9f583bb75f25ce3b60785a1935cc283cbd3dc4494fdac7.jpg)

<div style="text-align: center;">Figure 5: Manually defined submeshes of the MANO hand, with each color corresponding to a specific finger segment.</div>

进行校准时，我们要求受试者摆出类似于图4所示的自然张开手的姿势，并缓慢旋转手部数次，以确保所有附着的标记点都能被摄像头捕捉到。由此产生的校准序列可用于逐帧求解方程(1)和方程(2)中所描述的关联关系问题。

在此过程中，我们通过最小化预测标记点位置$\boldsymbol{o}$与实际捕获的3D标记点位置$\boldsymbol{\Phi}$之间的误差，来联合优化全局平移量t、全局朝向$M_{i}(\boldsymbol{t},\boldsymbol{o},\boldsymbol{\Phi},b)$、手部姿态$\boldsymbol{x}_{i}$以及标记点关联参数b：

 $$ E_{\mathrm{p o i n t}}=\sum_{i}||M_{i}(\boldsymbol{t},\boldsymbol{o},\boldsymbol{\Phi},b)-\boldsymbol{x}_{i}||_{2}^{2} $$

对于第一帧，我们将参数初始化为零，并使用梯度下降法对方程(2)进行1000次迭代优化。对于后续的每一帧，我们都以上一帧的结果作为初始值。在优化过程中，我们会利用允许的子网格内最近的网格三角形来重新计算重心坐标$b_i$及其对应的三角形索引。这种“热启动”方式能够加快收敛速度，并得出时间上一致的标记点-表面对应关系。

由于我们知道每个物理标记所附着的身体部位，因此我们将标记i对应的顶点$v_i^2, v_i^3$限制在MANO模型中与该手指段相对应的预定义子网格$S_j$内（见图5）。这些子网格是预先定义好的，在优化过程中充当解剖学先验。给定一个三维标记点后，我们仅在$S_j$范围内进行搜索，通过找到三角形索引及其重心坐标$b_i$来计算其在对应子网格上的最近点。这一过程可以被理解为一种分段式的非刚性ICP步骤，实现了标记云与关节式MANO表面之间的部件级对应关系。一旦校准收敛，重心坐标b及其三角形索引就会被固定下来，并用于运动重建。随后我们仅需优化MANO姿态参数$\Phi$以及全局刚体运动$(t, \mathbf{o})$。

##### 3.4.3. 运动求解

校准完成后，针对新运动的手部参数$(t,o,\phi)$会逐帧进行优化，每一帧的初始化都基于前一帧的解。此时方程（2）中的目标函数会在b固定的情况下进行评估。

此外，我们还采用了正则化项$E_{reg}$来惩罚偏离自然姿态极限的情况：

 $$ E_{\mathrm{r e g}}=\sum_{k\in N_{\mathrm{D o F}}}\|\mathrm{c l i p}(\boldsymbol{\Phi}_{k},\boldsymbol{\Phi}_{k,\mathrm{l o w}},\boldsymbol{\Phi}_{k,\mathrm{h i g h}})-\boldsymbol{\Phi}_{k}\|_{2}^{2} $$

其中，先验极限$\Phi_{low}$和$\Phi_{high}$是人为设定的，用以覆盖关节角的自然范围。此时的总目标函数为

 $$ E=E_{\mathrm{p o i n t}}+\lambda_{\mathrm{r e g}}E_{\mathrm{r e g}} $$

我们使用Adam [KB14]优化器来优化这个目标函数，学习率设为0.002，共训练400个周期。

如果某个标记以及同一运动链上后续的所有标记都被遮挡，我们会将对应的关节自由度保持为前一帧的值。这样既能提升时间稳定性，又能减少抖动现象。在我们的实验设置中，操作过程中的遮挡通常很短暂，而且密集的标记布局能确保整个序列中始终有足够多的标记可见。这使得逐帧优化十分可靠，无需复杂的长期遮挡处理机制。

#### 3.5. 物体姿态估计

对于涉及物体交互的序列，我们利用已知的刚性三维网格模型来估计物体的6自由度姿态（位置和方向）。我们对所有帧均采用Kabsch算法[Kab76]，将观测到的物体标记$X_{obs}$与标准标记位置$X_{canonical}$对齐。该算法通过最小化下述目标函数来确定最优旋转$R_{obj}$和平移$t_{obj}$：

 $$ L_{\mathrm{o b j}}=||\mathbf{X}_{\mathrm{o b s}}-(\mathbf{R}_{\mathrm{o b j}}\mathbf{X}_{\mathrm{c a n o n i c a l}}+\mathbf{t}_{\mathrm{o b j}})||_{2}^{2} $$

其中$R_{obj}$为旋转矩阵，$t_{obj}$为平移向量，它们会针对每一帧直接计算，以实现精确对齐。

如图7所示，魔方的重建过程相对复杂。详细的实现步骤详见附录B。

### 4. DexterHand数据集

为了展示DexterCap系统的性能，我们推出了DexterHand这一开源数据集，其中收录了大量灵巧的手部与物体交互数据，尤其侧重于手持操作场景。

---

![Image](images/64b3e744a6f829e7f94b002daa0ee69492254a1c968e058327a48b3b0865d478.jpg)

<div style="text-align: center;">Figure 6: Hand-object interaction in the DexterHand dataset.</div>

<div style="text-align: center;">Table 1: Overview of selected motion capture sequences in the DexterHand dataset. Shape dimensions and penetrations are in centimeters. Notations: x, y, z: length, width, and height of cuboid; h: height; d: diameter; D: outer diameter (ring); b: side length of a triangular prism.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Object Name</td><td style='text-align: center; word-wrap: break-word;'>Object Shape (cm)</td><td style='text-align: center; word-wrap: break-word;'>Total Time (s)</td><td style='text-align: center; word-wrap: break-word;'>Penetration (cm)</td><td style='text-align: center; word-wrap: break-word;'>MSNR $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>Jerk( $m/s^{{3}}$) $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Cuboid</td><td style='text-align: center; word-wrap: break-word;'>$x = 15.0, y = 4.0, z = 4.0$</td><td style='text-align: center; word-wrap: break-word;'>473.65</td><td style='text-align: center; word-wrap: break-word;'>$0.46 \pm 0.33$</td><td style='text-align: center; word-wrap: break-word;'>9.17</td><td style='text-align: center; word-wrap: break-word;'>0.99</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Cuboid</td><td style='text-align: center; word-wrap: break-word;'>$x = 16.0, y = 0.8, z = 7.5$</td><td style='text-align: center; word-wrap: break-word;'>659.35</td><td style='text-align: center; word-wrap: break-word;'>$0.31 \pm 0.10$</td><td style='text-align: center; word-wrap: break-word;'>9.29</td><td style='text-align: center; word-wrap: break-word;'>0.67</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Cuboid</td><td style='text-align: center; word-wrap: break-word;'>$x = 6.0, y = 6.0, z = 6.0$</td><td style='text-align: center; word-wrap: break-word;'>447.75</td><td style='text-align: center; word-wrap: break-word;'>$0.36 \pm 0.42$</td><td style='text-align: center; word-wrap: break-word;'>9.31</td><td style='text-align: center; word-wrap: break-word;'>0.71</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Cylinder</td><td style='text-align: center; word-wrap: break-word;'>$d = 5.5, h = 16.0$</td><td style='text-align: center; word-wrap: break-word;'>665.75</td><td style='text-align: center; word-wrap: break-word;'>$0.57 \pm 0.47$</td><td style='text-align: center; word-wrap: break-word;'>9.13</td><td style='text-align: center; word-wrap: break-word;'>0.85</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Disk</td><td style='text-align: center; word-wrap: break-word;'>$d = 10.0, h = 1.0$</td><td style='text-align: center; word-wrap: break-word;'>655.95</td><td style='text-align: center; word-wrap: break-word;'>$0.26 \pm 0.16$</td><td style='text-align: center; word-wrap: break-word;'>9.78</td><td style='text-align: center; word-wrap: break-word;'>0.55</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ring</td><td style='text-align: center; word-wrap: break-word;'>$D = 10.0, d = 8.0, h = 4.0$</td><td style='text-align: center; word-wrap: break-word;'>700.70</td><td style='text-align: center; word-wrap: break-word;'>$0.31 \pm 0.17$</td><td style='text-align: center; word-wrap: break-word;'>9.06</td><td style='text-align: center; word-wrap: break-word;'>0.93</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Triangular Prism</td><td style='text-align: center; word-wrap: break-word;'>$b = 5.0, h = 16.0$</td><td style='text-align: center; word-wrap: break-word;'>585.70</td><td style='text-align: center; word-wrap: break-word;'>$0.40 \pm 0.36$</td><td style='text-align: center; word-wrap: break-word;'>9.24</td><td style='text-align: center; word-wrap: break-word;'>0.88</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Rubik&#x27;s Cube</td><td style='text-align: center; word-wrap: break-word;'>$d = 5.1$</td><td style='text-align: center; word-wrap: break-word;'>747.75</td><td style='text-align: center; word-wrap: break-word;'>$0.36 \pm 0.22$</td><td style='text-align: center; word-wrap: break-word;'>9.50</td><td style='text-align: center; word-wrap: break-word;'>0.46</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Total</td><td style='text-align: center; word-wrap: break-word;'>$\varnothing$</td><td style='text-align: center; word-wrap: break-word;'>4936.65</td><td style='text-align: center; word-wrap: break-word;'>$0.38 \pm 0.31$</td><td style='text-align: center; word-wrap: break-word;'>9.31</td><td style='text-align: center; word-wrap: break-word;'>0.76</td></tr></table>

![Image](images/e7c8f8647078ee723031e06d3875fb0332490479274137ddb92fcfd753a8d68e.jpg)

![Image](images/f556dcc36f84855c051241dff51877b19e2ed525e8432be55b2587415a740c88.jpg)

<div style="text-align: center;">(a) Marker points on a Rubik's cube. (b) Rubik's cube pose estimation.</div>

<div style="text-align: center;">Figure 7: Object pose estimation.</div>

表1概述了当前的DexterCap数据集。

我们记录了七种基本物体形状的手持操作，以及具有复合铰接结构的魔方。如第3.4.2节所述，每次采集会话均以校准流程开始，旨在建立可靠的标记对应关系并确保模型初始化的精确性。随后，参与者会执行一组预定义的操作，包括基本的徒手动作（如屈曲、伸展、外展和旋转）以及各类手持操作技能。

该部分总结了物体类型、几何属性和序列时长的多样性。数据采集前，受试者已签署知情同意书，允许采集数据并予以公开。所有公开发布的数据均经过严格匿名化处理，不包含任何个人身份信息。

### 5. 评估

#### 5.1. 系统设置

我们的原型系统由13台海康威视MV-CS050-10GM工业级GigE PoE摄像头组成，每台摄像头均能以$2048 \times 2448$像素的分辨率每秒捕获20帧灰度视频。硬件总成本低于6,000美元。虽然使用更多或更高端的摄像头能显著提升性能，但也会相应增加总体成本。

为了训练用于图像处理和标记提取的模型，我们针对每台摄像头在每次采集会话中拍摄的视频手动标注2到3帧。标注时重点选取包含大量可见角点和区块的帧，最终平均每帧包含241个角点和132个区块。我们为该系统开发的基于GUI的定制工具有效支持了标注流程。这些模型便是基于

---

这一小型数据集，并结合随机色彩偏移、缩放和形变等标准图像增强技术进行训练。所有模型均采用AdamW优化器进行优化，典型学习率为0.001。我们发现，在用来自多次采集会话的约180帧手动标注数据训练后，模型具备良好的泛化能力，无需针对同一环境下录制的新会话重新训练。

运行时，采集流水线以20 FPS的速度运行；而我们未经优化的离线处理流程中，每帧标记识别大约需要5秒，手部与物体重建则需5-12秒。需要注意的是，借助上述预训练模型，离线处理流程呈级联式、全自动运行，可批量执行而无需额外人工干预。

#### 5.2. 图像处理与标记识别

为了评估我们的标记检测与识别流程的性能，我们采用了手动标注的数据集，并报告了若干关键指标。

角点检测：我们的CornerNet（基于热图的方法）在图像层面的精确度达到94.7%，召回率为81.6%，F1分数则为87.7%；只要角点位置与真实值相差在5像素以内，即视为正确检测。相比之下，我们对[CPMK21]中坐标回归模型的实现虽能达到98.3%的准确率，但精确度仅为46.3%，在没有标记的区域会产生大量误检。

边缘识别：我们的EdgeNet在测试集上的准确率高达99.02%，精确度达98.9%，召回率为99.1%，F1分数则为99.0%，显示出极强的边缘分类鲁棒性。

区块识别与ID识别。我们的BlockNet在测试集上的方向识别准确率达到98.39%，左侧字符识别准确率为97.95%，右侧字符识别准确率为97.36%。在图像层面，我们的区块识别精确度为94.5%，召回率为41.3%。较低的召回率主要归因于角点检测和边缘检测中采用的保守策略。虽然这可能导致部分正样本未被检测到，但能有效减少假阳性并提升系统的鲁棒性。

值得注意的是，我们的边缘检测模型使得基于边缘优先的组装策略能够生成用于区块识别的候选四边形。与[CPMK21]采用的穷举式四边形验证策略相比，边缘优先组装策略将每帧的候选数量从5550个四边形大幅减少至83个区块（通过707条边缘实现），从而显著提升了处理效率与整体质量。

为验证这一点，我们复现了[CPMK21]中的方法。尽管该模型在区块级识别准确率上超过99%，但由于四边形候选数量极其庞大且其中大多数为负样本，导致其性能大幅下降，最终精确度和召回率分别仅为55.0%和23.6%。

投票机制。基于区块间邻接关系的投票机制进一步提升了识别准确率。平均而言，有1.825%的标签通过投票机制得到修正。

#### 5.3. 手-物体重建

为评估重建后的标记点位置精度，我们计算了重投影误差，并将其与相机标定过程中得到的重投影误差进行比较。定量结果显示，通过三角测量法得到的检测标记点重投影误差为1.42像素，而相机标定时仅为0.4像素。尽管我们的重投影误差略高于标定结果，但考虑到标定是在理想条件下使用完全刚性的棋盘格完成的，而我们使用的标记点则附着在易变形的手指部位，这一结果已经相当令人满意。

为重建MANO参数，我们提出了标记点重建误差（MRE）指标，其定义为MANO模型表面上预测的标记点位置与观测到的3D标记点位置之间的平均欧几里得距离。在标记点可见性较高的标定阶段，所得MRE为$0.77 \pm 0.28$毫米（平均值±$\pm$标准差）；而在运动更复杂且存在遮挡的动态操作阶段，MRE则为$2.06 \pm 1.09$毫米。

我们通过最小化观测到的标记点与目标位置之间的偏差来估算物体的6自由度姿态。每个重建的物体标记点与其在优化后的刚性物体模型上的对应目标位置之间的距离为1.512毫米。

#### 5.4. 运动质量与合理性

我们采用以下指标来评估数据集的运动质量与合理性。在后期处理中，我们采用5 Hz的巴特沃斯低通滤波器，具体细节见附录D。定量结果如下。

物理合理性。我们通过测量重建的手部模型与物体网格之间的穿透程度来评估所捕获运动轨迹的物理合理性。平均穿透量为$3.8\mathrm{mm} \pm 3.1\mathrm{mm}$，这一数值与人类在真实抓取力作用下的手部变形情况相符，表明我们的捕获系统具有较高精度。

与其他动作捕捉方法进行对比。我们将自己的数据集和处理流程与几个公开数据集进行对比：GRAB [TGBT20]、ARCTIC [FTT*23] 和 HUMOTO [LHB*25]，这些数据集均使用商用基于标记的系统或数据手套采集而成。对于这些数据集，我们采用与处理自身数据相同的实现方式，从已发布的轨迹中计算所有指标。我们还将仅依赖视觉的方法 HaMeR [PSR*24] 作为额外的基准。具体而言，HaMeR是一种单视图、基于视觉的方法。我们将其应用于自身的采集数据，即在其一个相机视角上独立运行该方法。由于该方法在灰度视频上的性能可能会下降，且手指上附着的标记可能会改变手部外观，使其偏离训练分布，因此我们又纳入 GigaHands [FZJ*25] 数据集作为额外基准。GigaHands是HaMeR的多视图扩展版本，我们对其已发布的轨迹计算相同的指标。

如表2所示，与商用系统相比，我们的方法在动作平滑度（低抖动）和重建质量（高MSNR）方面表现具有竞争力，且显著优于仅依赖视觉的方法。重要的是，在这些方法中，我们的系统是唯一能够捕捉灵巧的手持操作动作的系统。质量指标的定义详见附录E。

---

<div style="text-align: center;">Table 2: Benchmark comparison with vision-only and commercial systems. Bold values indicate best performance in each metric.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Dataset</td><td style='text-align: center; word-wrap: break-word;'>MSNR $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>Jerk (m/s $^{3}$) $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>Diversity $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>Coherence $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>$9.31 \pm 0.22$</td><td style='text-align: center; word-wrap: break-word;'>$0.76 \pm 0.18$</td><td style='text-align: center; word-wrap: break-word;'>0.97</td><td style='text-align: center; word-wrap: break-word;'>0.68</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>GRAB (Vicon)</td><td style='text-align: center; word-wrap: break-word;'>$7.29 \pm 1.51$</td><td style='text-align: center; word-wrap: break-word;'>$3.68 \pm 1.74$</td><td style='text-align: center; word-wrap: break-word;'>0.91</td><td style='text-align: center; word-wrap: break-word;'>0.70</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ARCTIC (Vicon)</td><td style='text-align: center; word-wrap: break-word;'>$7.82 \pm 0.40$</td><td style='text-align: center; word-wrap: break-word;'>$0.91 \pm 0.01$</td><td style='text-align: center; word-wrap: break-word;'>0.90</td><td style='text-align: center; word-wrap: break-word;'>0.81</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HUMOTO (Data Glove)</td><td style='text-align: center; word-wrap: break-word;'>$7.51 \pm 3.83$</td><td style='text-align: center; word-wrap: break-word;'>$1.90 \pm 2.09$</td><td style='text-align: center; word-wrap: break-word;'>0.93</td><td style='text-align: center; word-wrap: break-word;'>0.63</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HaMeR (Vision)</td><td style='text-align: center; word-wrap: break-word;'>$-0.05 \pm 0.07$</td><td style='text-align: center; word-wrap: break-word;'>$23.76 \pm 0.78$</td><td style='text-align: center; word-wrap: break-word;'>0.90</td><td style='text-align: center; word-wrap: break-word;'>0.81</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>GigaHands (Vision)</td><td style='text-align: center; word-wrap: break-word;'>$3.50 \pm 1.23$</td><td style='text-align: center; word-wrap: break-word;'>$2.62 \pm 1.42$</td><td style='text-align: center; word-wrap: break-word;'>0.91</td><td style='text-align: center; word-wrap: break-word;'>0.73</td></tr></table>

### 6. 未来工作与结论

在这项工作中，我们提出了DexterCap，这是一个用于捕捉和重建灵巧操作中手-物体运动的流程。我们的主要贡献包括开发出低成本、高精度的手部和物体动作捕捉系统，以及构建专门的手-物体交互数据集。该捕捉系统利用多台相机和鲁棒的基于标记的跟踪技术，结合异常值剔除和数据处理功能，证明了其能够以高保真度重建精细的手部和物体运动学特征。这为我们构建DexterHand数据集奠定了基础，该数据集包含各种交互任务，为学习操作先验提供了宝贵的资源。

当前的数据集虽然很有价值，但仍可在规模和多样性方面进一步拓展。采集更多种类的受试者、物体（包括可变形和铰接式物体）以及复杂的操作任务，如双手交互和工具使用，将极大地丰富该数据集。为数据集添加更细粒度的语义标注，如抓取类型、功能意图、接触区域和作用力，将有助于训练出更具可控性且能感知上下文的生成模型。

作为一种基于视觉的方法，我们的方法仍易受严重遮挡的影响。由于该流程依赖于基于图像的标记检测，当所有视角下大量标记同时不可见时，重建质量便会下降。例如，在极端情况下，所有手指都插入图6所示的环形物体中时，手部会完全被遮挡，从而导致手指穿透物体等伪影现象。要解决这一局限，可能需要采用考虑遮挡情况的估计方法、基于学习的姿态先验，或引入IMU等额外的传感模式。

最后，将我们的数据采集与生成流程与物理仿真环境相结合，为验证动作合理性以及训练机器人智能体提供了令人期待的可能性。探索从仿真到现实的迁移技术，以便将策略部署到真实的机器人手上以完成复杂的操作任务，仍是一项充满挑战但极具价值的目标。在这些方向上的持续研究有望深化我们对灵巧操作的理解，并在机器人技术和人-物交互领域催生新的应用。

## 附录 A：魔方动作记录表

该动作记录表是一种结构化协议，旨在确保数据采集过程中能够覆盖所有动作模式。这份面向操作者的指南能够系统性地引导出多样化的操作模式，同时保证不同录制环节之间的一致性。需要注意的是，动作记录表仅作为数据采集工具使用，并不属于我们的优化流程的一部分。

<div style="text-align: center;">Table 3: Dance Card for  $2 \times 2 \times 2$ Rubik's Cube Manipulation</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Step</td><td style='text-align: center; word-wrap: break-word;'>Descriptions</td><td style='text-align: center; word-wrap: break-word;'>Notation</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>Start in T-pose, hands relaxed, cube on table</td><td style='text-align: center; word-wrap: break-word;'>∅</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>Reach out and grasp the $2 \times 2 \times 2$ cube from left side with the left hand</td><td style='text-align: center; word-wrap: break-word;'>∅</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Lift the cube, no rotation</td><td style='text-align: center; word-wrap: break-word;'>∅</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>Rotate the entire cube with wrist along the left-right (X) axis and rotate back 5 times</td><td style='text-align: center; word-wrap: break-word;'>$(xx')5$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>Rotate the entire cube with wrist along the down-up (Y) axis and rotate back 5 times</td><td style='text-align: center; word-wrap: break-word;'>$(yy')5$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>Rotate the entire cube with wrist along the back-front (Z) axis and rotate back 5 times</td><td style='text-align: center; word-wrap: break-word;'>$(zz')5$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>7</td><td style='text-align: center; word-wrap: break-word;'>Rotate the entire cube with manipulation along the left-right (X) axis clockwise and counter-clockwise 2 loops (8 times)</td><td style='text-align: center; word-wrap: break-word;'>$(x4)2(x'4)2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>Rotate the entire cube with manipulation along the down-up (Y) axis clockwise and counter-clockwise 2 loops (8 times)</td><td style='text-align: center; word-wrap: break-word;'>$(y4)2(y'4)2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>9</td><td style='text-align: center; word-wrap: break-word;'>Rotate the entire cube with manipulation along the back-front (Z) axis clockwise and counter-clockwise 2 loops (8 times)</td><td style='text-align: center; word-wrap: break-word;'>$(z4)2(z'4)2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>Rotate the right face clockwise and counter-clockwise by 2 loops (8 times)</td><td style='text-align: center; word-wrap: break-word;'>$(R4)2(R'4)2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>11</td><td style='text-align: center; word-wrap: break-word;'>Rotate the up face clockwise and counter-clockwise by 2 loops (8 times)</td><td style='text-align: center; word-wrap: break-word;'>$(U4)2(U'4)2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>12</td><td style='text-align: center; word-wrap: break-word;'>Rotate the front face clockwise and counter-clockwise by 2 loops (8 times)</td><td style='text-align: center; word-wrap: break-word;'>$(F4)2(F'4)2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>13</td><td style='text-align: center; word-wrap: break-word;'>Rotate the left face clockwise and counter-clockwise by 2 loops (8 times)</td><td style='text-align: center; word-wrap: break-word;'>$(L4)2(L'4)2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'>Rotate the back face clockwise and counter-clockwise by 2 loops (8 times)</td><td style='text-align: center; word-wrap: break-word;'>$(B4)2(B'4)2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>15</td><td style='text-align: center; word-wrap: break-word;'>Rotate the down face clockwise and counter-clockwise by 2 loops (8 times)</td><td style='text-align: center; word-wrap: break-word;'>$(D4)2(D'4)2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>16</td><td style='text-align: center; word-wrap: break-word;'>Do an algorithm $^{\dagger 4}$ times</td><td style='text-align: center; word-wrap: break-word;'>$(RUR'U'')6$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>17</td><td style='text-align: center; word-wrap: break-word;'>Do random turns of the cube</td><td style='text-align: center; word-wrap: break-word;'>∅</td></tr></table>

## 附录 B：魔方重构

我们的魔方重构系统采用基于标记点的动作捕捉技术，用于追踪并还原操作过程中$2 \times 2 \times 2$魔方的状态。本节将详细介绍相关的算法框架与关键技术组件。

## 系统概述

重构流程会处理包含384个标记点3D坐标的动作捕捉数据（每个小面有16个标记点，$\times$共24个外部小面），以此估算魔方的全局姿态与内部旋转情况。

---

该算法的工作原理是：通过分析标记点簇的共面性来识别面的旋转，从而将复杂的6自由度物体运动拆解为易于处理的组成部分。

## 标记点配置与参考模型

24个外部小面中的每个都包含一个间距为5毫米的$4 \times 4$反光标记点网格。参考魔方模型定义了还原状态下各标记点的标准位置，每个标记点对应24个标准小面索引之一。每个小面内的标记点位置通过以下公式生成：

 $$ \boldsymbol{m}_{i,j}=[(i-1.5)s,(j-1.5)s,0] $$

其中$s = 5\mathrm{mm}$为标记点间距，$i, j \in \{0,1,2,3\}$表示小面内的网格坐标。

## 基于共面性的旋转检测

我们的方法的核心思路是：在面旋转过程中，特定的标记点簇会呈现出特征性的共面模式。我们将一组3D点$\mathcal{P}$的共面性得分定义为主成分分析中得到的最小奇异值：

 $$ Score(\mathcal{P})=\sigma_{min}(\boldsymbol{P}-\bar{\boldsymbol{p}}) $$

其中$\boldsymbol{P}$是由中心点坐标构成的$3 \times N$矩阵，$\sigma_{\min}$表示最小奇异值。

对于六个主要面（U、D、L、R、F、B），我们同时监测完整的4个小面簇以及相邻的小面对。当两组相对的面簇保持共面（得分<0.008），而四个正交的面簇变得不共面（得分>0.009）时，即可判定发生了旋转。这种特征性模式的出现是因为旋转面及其对面会保持平面结构，而垂直面则会因组成小面分别属于魔方的移动部分和静止部分而产生几何形变。

## 122块分解与配准

一旦检测到旋转，我们会根据旋转轴将魔方分解为两个$1 \times 2 \times 2$块。例如，在U面旋转时，下方块包含底面以及侧面下半部分（D、$L_{[2,3]}$、$F_{[2,3]}$、$R_{[2,3]}$、$B_{[2,3]}$），上方块则包含顶面以及侧面上半部分（U、$L_{[0,1]}$、$F_{[0,1]}$、$R_{[0,1]}$、$B_{[0,1]}$）。这种分解方式能够将移动部分与静止部分分离，从而对各组成部分进行独立的姿态估算。

每个数据块都通过Kabsch算法独立注册到其参考配置中。对于对应的可见标记集$\{p_i\}$和$\{q_i\}$，最优旋转$\pmb{R}$和平移t满足以下条件：

 $$ \min_{R,t}\sum_{i}\|p_{i}-(R q_{i}+t)\|^{2} $$

该解决方案涉及对交叉协方差矩阵$\pmb{H} = \sum_{i}(\pmb{q}_{i} - \bar{\pmb{q}})(\pmb{p}_{i} - \bar{\pmb{p}})^{T}$进行奇异值分解（SVD）。

<div style="text-align: center;">Table 4: Architecture of CornerNet.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Stage</td><td style='text-align: center; word-wrap: break-word;'>Operation</td><td style='text-align: center; word-wrap: break-word;'>Kernel</td><td style='text-align: center; word-wrap: break-word;'>Stride</td><td style='text-align: center; word-wrap: break-word;'>Channels</td><td style='text-align: center; word-wrap: break-word;'>Notes</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Enc-1</td><td style='text-align: center; word-wrap: break-word;'>$(Conv+ReLU) \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>$1 \rightarrow 64$</td><td style='text-align: center; word-wrap: break-word;'>padding=1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pool-1</td><td style='text-align: center; word-wrap: break-word;'>MaxPool</td><td style='text-align: center; word-wrap: break-word;'>$2 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>$64 \rightarrow 64$</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Enc-2</td><td style='text-align: center; word-wrap: break-word;'>$(Conv+ReLU) \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>$64 \rightarrow 128$</td><td style='text-align: center; word-wrap: break-word;'>padding=1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pool-2</td><td style='text-align: center; word-wrap: break-word;'>MaxPool</td><td style='text-align: center; word-wrap: break-word;'>$2 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>$128 \rightarrow 128$</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Enc-3</td><td style='text-align: center; word-wrap: break-word;'>$(Conv+ReLU) \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>$128 \rightarrow 256$</td><td style='text-align: center; word-wrap: break-word;'>padding=1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pool-3</td><td style='text-align: center; word-wrap: break-word;'>MaxPool</td><td style='text-align: center; word-wrap: break-word;'>$2 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>$256 \rightarrow 256$</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Enc-4</td><td style='text-align: center; word-wrap: break-word;'>$(Conv+ReLU) \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>$256 \rightarrow 512$</td><td style='text-align: center; word-wrap: break-word;'>padding=1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pool-4</td><td style='text-align: center; word-wrap: break-word;'>MaxPool</td><td style='text-align: center; word-wrap: break-word;'>$2 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>$512 \rightarrow 512$</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Bottleneck</td><td style='text-align: center; word-wrap: break-word;'>$(Conv+ReLU) \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>$512 \rightarrow 1024$</td><td style='text-align: center; word-wrap: break-word;'>padding=1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dec-4</td><td style='text-align: center; word-wrap: break-word;'>Transposed Conv</td><td style='text-align: center; word-wrap: break-word;'>$2 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>$1024 \rightarrow 512$</td><td style='text-align: center; word-wrap: break-word;'>upsampling</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dec-4</td><td style='text-align: center; word-wrap: break-word;'>$(Conv+ReLU) \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>$1024 \rightarrow 512$</td><td style='text-align: center; word-wrap: break-word;'>skip from Enc-4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dec-3</td><td style='text-align: center; word-wrap: break-word;'>Transposed Conv</td><td style='text-align: center; word-wrap: break-word;'>$2 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>$512 \rightarrow 256$</td><td style='text-align: center; word-wrap: break-word;'>upsampling</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dec-3</td><td style='text-align: center; word-wrap: break-word;'>$(Conv+ReLU) \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>$512 \rightarrow 256$</td><td style='text-align: center; word-wrap: break-word;'>skip from Enc-3</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dec-2</td><td style='text-align: center; word-wrap: break-word;'>Transposed Conv</td><td style='text-align: center; word-wrap: break-word;'>$2 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>$256 \rightarrow 128$</td><td style='text-align: center; word-wrap: break-word;'>upsampling</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dec-2</td><td style='text-align: center; word-wrap: break-word;'>$(Conv+ReLU) \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>$256 \rightarrow 128$</td><td style='text-align: center; word-wrap: break-word;'>skip from Enc-2</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dec-1</td><td style='text-align: center; word-wrap: break-word;'>Transposed Conv</td><td style='text-align: center; word-wrap: break-word;'>$2 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>$128 \rightarrow 64$</td><td style='text-align: center; word-wrap: break-word;'>upsampling</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dec-1</td><td style='text-align: center; word-wrap: break-word;'>$(Conv+ReLU) \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>$128 \rightarrow 64$</td><td style='text-align: center; word-wrap: break-word;'>skip from Enc-1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Output</td><td style='text-align: center; word-wrap: break-word;'>Conv</td><td style='text-align: center; word-wrap: break-word;'>$1 \times 1$</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>$64 \rightarrow 1$</td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

## 相对旋转估计

两个122-块之间的内部旋转角是根据它们的相对方位计算得出的：

 $$ \Theta=\operatorname{s i g n}(\pmb{n}^{T}\cdot\omega)\|\omega\| $$

其中$\omega$是从$\pmb{R}_{\mathrm{rel}} = \pmb{R}_{2}\pmb{R}_{1}^{-1}$得到的旋转向量，n是通过$\pmb{R}_{1}$变换后的旋转轴向量。

## 实现细节

重建算法按顺序处理帧，用于旋转检测的预读窗口大小为100帧。系统采用$\tau_{coplanar} = 0.008$和$\tau_{non-coplanar} = 0.009$的共面性阈值来区分静止状态和旋转状态。为了确保离散的四分之一转重建，我们应用$3^{\circ}$的角度捕捉阈值，将连续旋转映射到离散的$90^{\circ}$增量。Kabsch配准要求每个块至少有3个可见标记才能稳定估计姿态，而标记遮挡问题则通过占位符坐标$[-1000, -1000, -1000]$来处理，这些坐标不会参与几何计算。

该算法会累积增量旋转，直到达到$\pm90^{\circ}$，然后将其捕捉到最近的四分之一转位置，并相应地更新内部的面片索引映射。即便在真实动作捕捉场景中常见的噪声和标记遮挡情况下，这种方法也能确保可靠的重建效果。

完整的重建结果会逐帧输出立方体的姿态（平移、方向）和面的旋转参数，从而能够准确重现操作序列，并进一步分析操作质量指标。

## 附录C：模型架构

如表4所示，CornerNet采用了基于U-Net [RFB15]的编码器-解码器架构，具有四个分辨率层级和对称的跳跃连接。

EdgeNet基于ResNet-34 [HZRS16]骨干网络构建，经过适配

---

以适配单通道输入，随后接入轻量级的全连接预测头。

BlockNet基于ResNet-34骨干网络构建，经过适配以适配单通道输入，并配备三个并行输出头，用于预测两个字符的标签以及块的方位。

## 附录D：后处理

原始的优化运动参数需要经过后处理以确保时间上的平滑性。针对全局平移t（每个维度）和关节角度的时间序列，会应用巴特沃斯低通滤波器。对于以20 Hz频率采集的数据，截止频率通常设为5 Hz。

我们基于经验验证选择了5 Hz的截止频率。大多数自主的精细手部动作频率都低于5 Hz，在我们的实验中，这一截止频率既能保留操作细节，又能抑制高频噪声。因此，对于我们捕捉的手部-物体交互而言，5 Hz是在降噪与运动保真度之间的实用折衷方案。

## 附录E：运动质量指标

MSNR。运动信噪比（MSNR）越高，表示运动越平滑。参照HUMOTO [LHB $^{*}$25]的方法，我们计算

 $$ \mathrm{M S N R}=10\log_{10}\left(\frac{\mathbb{E}[\hat{\nu}^{2}]}{\mathbb{E}[|\nu-\hat{\nu}|^{2}]}\right). $$

其中，v表示局部关节速度，而$\hat{v}$是通过核大小为3的卷积操作得到的平滑速度。

加加速度。我们通过加加速度来评估运动的平滑度，它被定义为关节加速度的时间导数；数值越低，表明运动学特性越平滑。

多样性与一致性。为了描述结构上的变异性，我们将每条轨迹中的手-物体姿态聚类为五个簇（k=5），并计算平均多样性与一致性。多样性反映了运动模式的广度，而一致性则用于衡量同一簇内的紧凑程度。

## 参考文献

[ALV $^{*}$23] ARAÚJO J. P., LI J., VETRIVEL K., AGARWAL R., WU J., GOPINATH D., CLEGG A. W., LIU K.: Circle：在丰富的上下文环境中进行捕捉。载于IEEE/CVF计算机视觉与模式识别会议论文集（2023年），第21211–21221页。3

[Bra00] BRADSKI G.: OpenCV库。Dr. Dobb's软件工具杂志（2000年）。3

[BSA $^{*}$25] BAKER M. R., SCOTT V. K., ANDERSEN M. S., KRISTIANSEN M., EZATI M., DEWHURST S.: 动态上肢功能运动的无标记与基于标记的跟踪方法的优化与比较。Sensors 25卷第4期（2025年），1079页。3

[BTT $^{*}$20] BRAHMBHATT S., TANG C., TWIGG C. D., KEMP C. C., HAYS J.: Contactpose：包含物体接触与手部姿态的抓取数据集。载于2020年欧洲计算机视觉会议论文集第16卷（2020年8月23–28日，英国格拉斯哥），第361–378页。3

[BXP $^{*}$22] BHATNAGAR B. L., XIE X., PETROV I. A., SMINCHISESCU C., THEOBALT C., PONS-MOLL G.: Behave：用于追踪人与物体交互的数据集与方法。载于IEEE/CVF计算机视觉与模式识别会议论文集（2022年），第15935–15946页。3

[CPA $^{*}$20] CORONA E., PUMAROLA A., ALENYA G., MORENO-NOGUER F., ROGEZ G.: Ganhand：预测多物体场景中的人类抓取可能性。载于IEEE/CVF计算机视觉与模式识别会议论文集（2020年），第5031–5041页。3

[CPMK21] CHEN H., PARK H., MACIT K., KAVAN L.: 捕捉移动人体的精细形变。ACM图形学交易第40卷第4期（2021年7月）。2, 3, 4, 5, 8

[CWZ*21] CHEN K., WANG Y., ZHANG S.-H., XU S.-Z., ZHANG W., HU S.-M.: Mocap-solver：一种用于光学动作捕捉数据的神经求解器。ACM图形学交易第40卷第4期（2021年7月）。2

[CYX*21] CHAO Y.-W., YANG W., XIANG Y., MOLCHANOV P., HANDA A., TREMBLAY J., NARANG Y. S., VAN WYK K., IQBAL U., BIRCHFIELD S., KAUTZ J., FOX D.: DexYCB：用于捕捉物体抓取动作的基准测试集。载于IEEE/CVF计算机视觉与模式识别会议（CVPR）（2021年）。3

[EMMBA*22] EL MOUBTAHIJ O., MAZER S., BEN-ALLA M., EL HAMMOUMI M., ZRIOULI M., BEDRAOUI L., MOTAHHIR S.: 基于视觉的手势识别系统的结构化与方法论综述。Sensors 22卷第12期（2022年），4625页。3

[FTT $^{*}$23] FAN Z., TAHERI O., TZIONAS D., KOCABAS M., KAUFMANN M., BLACK M. J., HILLIGES O.: ARCTIC：用于灵巧的双手物体操控的数据集。载于IEEE计算机视觉与模式识别会议论文集（CVPR）（2023年）。2, 3, 8

[FZJ $^{*}$25] 付R.、张D.、江A.、付W.、Funk A.、Ritchie D.、Sridhar S.：Gigahands：一个大规模标注的双手活动数据集。载于计算机视觉与模式识别会议论文集（2025年），第17461–17474页。3, 8

[GB21] Ghorbani N.、Black M. J.：SOMA：自动解决基于光学标记的动作捕捉问题。载于国际计算机视觉会议论文集（ICCV）（2021年10月），第11117–11126页。2

[GJMSMCMJ14] Garrido-Jurado S.、Muñoz-Salinas R.、Madrid-Cuevas F. J.、Marín-Jiménez M. J.：遮挡条件下高可靠性基准标记的自动生成与检测。《模式识别》第47卷第6期（2014年6月），第2280–2292页。4

[HLW $^{*}$18] 韩S.、刘B.、王R.、叶Y.、Twigg C. D.、Kin K.：基于深度标签的在线光学标记手部追踪。《ACM图形学汇刊》第37卷第4期（2018年7月）。2

[Hol18] Holden D.：通过去噪技术稳健地求解光学动作捕捉数据。《ACM图形学汇刊》第37卷第4期（2018年7月）。2

[HROL20] Hampali S.、Rad M.、Oberweger M.、Lepetit V.：Hon-notate：一种用于手部与物体姿态的3D标注方法。载于IEEE/CVF计算机视觉与模式识别会议论文集（2020年），第3196–3206页。3

[HSX $^{*}$22] Halimi O.、Stuyck T.、Xiang D.、Bagaudinov T.、Wen H.、Kimmel R.、Shiratori T.、Wu C.、Sheikh Y.、Prada F.：基于图案的布料配准与稀疏视图动画。《ACM图形学汇刊》第41卷第6期（2022年11月）。5

[HVT $^{*}$19] Hasson Y.、Varol G.、Tzionas D.、Kalevatykh I.、Black M. J.、Laptev I.、Schmid C.：学习手部与被操纵物体的联合重建。载于CVPR（2019年）。3

[HYC*24] 胡H.、易X.、曹Z.、雍J.-H.、徐F.：手部-物体交互控制器（HOIC）：用于基于物理原理重建交互的深度强化学习。载于ACM SIGGRAPH 2024会议论文集（美国纽约，2024年），SIGGRAPH '24，计算机协会出版。3

[HYZ $^{*}$22] 胡H.、易X.、张H.、雍J.-H.、徐F.：物理交互：基于物理原理重建手部-物体交互。载于SIGGRAPH Asia 2022会议论文集（2022年），第1–9页。3

---

[HZRS16] 何K.、张X.、任S.、孙J.：用于图像识别的深度残差学习。载于2016年IEEE计算机视觉与模式识别会议（CVPR）（2016年），第770–778页。4, 10

[Kab76] Kabsch W.：关联两组向量的最佳旋转解法。《晶体学报A辑》第32卷第5期（1976年9月），第922–923页。6

[KB14] Kingma D. P.、Ba J.：Adam：一种随机优化方法。CoRR abs/1412.6980（2014年）。6

[KBM*20] Kratzer P.、Bihlmaier S.、Midlagajni N. B.、Prakash R.、Toussaint M.、Mainprice J.：Mogaze：一个包含工作空间几何与视线数据的全身动作数据集。《IEEE机器人与自动化快报》第6卷第2期（2020年），第367–373页。3

[KKNJ25] Kim J.、Kim J.、Na J.、Joo H.：ParaHome：面向日常家居活动的参数化建模，以实现人机交互的3D生成建模。载于2025年IEEE/CVF计算机视觉与模式识别会议（CVPR）（2025年），IEEE计算机协会出版，第1816–1828页。2, 3

[KTS*21] Kwon T.、Tekin B.、Stühmer J.、Bogo F.、Pollefeys M.：H2o：用于第一人称交互识别的双手操纵物体场景。载于IEEE/CVF国际计算机视觉会议论文集（2021年），第10138–10148页。3

[LHB $^{*}$25] 陆杰、黄春华、巴塔查里亚·乌代、黄强、周洋：Humoto：一个关于动作捕捉的人体物体交互的4D数据集。载于IEEE/CVF国际计算机视觉会议（ICCV）论文集（2025年10月），第10886–10897页。2, 8, 11

[LLJ*22] 刘洋、刘洋、蒋超、吕凯、万伟、沈浩、梁斌、付志、王浩、易磊：Hoi4d：一个用于类别级人机交互的4D第一人称视角数据集。载于IEEE/CVF计算机视觉与模式识别会议论文集（2022年），第21013–21022页。3

[LWL23] 李杰、吴杰、刘成凯：基于物体运动引导的人体运动合成。ACM图形学交易（TOG）第42卷第6期（2023年），第1–11页。3

[LXY*24] 吕翔、徐亮、闫勇、金鑫、徐超、吴松、刘洋、李磊、毕明、曾伟等：Himo：一个针对全身人体与多个物体交互的新基准测试。载于欧洲计算机视觉会议论文集（2024年），施普林格出版社，第300–318页。3

[LZY $^{*}$25] 陆杰、张浩、叶阳、白鸟拓也、斯塔尔克·塞巴斯蒂安、小村哲：Choice：在杂乱环境中协调人机交互以实现抓取与放置动作。ACM图形学交易第45卷第2期（2025年12月）。3

[MKK24] 米莱夫·N.、凯泽尔·J.、孔斯·S.：迈向无结构、无标签的光学MCAP：视频能帮上忙！载于ACM SIGGRAPH 2024会议论文集（美国纽约州，2024年），SIGGRAPH '24，计算机协会出版。2

[MKMB14] 迈耶·J.、库德勒·M.、穆勒·J.、布尔加德·W.：光学动作捕捉中用于全自动骨骼追踪的在线标记标注。载于2014年IEEE机器人技术与自动化国际会议（ICRA）论文集（2014年），第5652–5657页。2

[MYW*20] 文刚、俞世一、温浩、白鸟拓也、李康民：Interhand2.6m：一个基于单张RGB图像的三维交互手部姿态估计数据集及基准测试。载于2020年欧洲计算机视觉会议论文集（英国格拉斯哥，2020年8月23–28日），第16部分（2020年），施普林格出版社，第548–564页。3

[PSR $^{*}$24] 帕夫拉科斯·G.、单丹、拉多萨沃维奇·I.、金泽亚、福黑·D.、马利克·J.：利用Transformer重建三维手部模型。载于CVPR（2024年）。3, 8

[PZDZ25] 波塔米亚斯·R.、张杰、邓杰、扎费里欧·S.：Wilor：野外环境下的端到端三维手部定位与重建。第12242–12254页。3

[PZJ $^{*}$23] 潘晓、郑波、蒋欣、徐刚、顾晓、李杰、寇强、王浩、邵涛、周凯、金鑫：一种基于局部性的光学动作捕捉神经求解器。载于SIGGRAPH Asia 2023会议论文集（美国纽约州，2023年），SA '23，计算机协会出版。2

[RFB15] 罗内贝格尔·O.、菲舍尔·P.、布罗克斯·T.：U-Net：用于生物医学图像分割的卷积网络。载于医学图像计算与计算机辅助干预——MICCAI 2015论文集（瑞士 Cham，2015年），纳瓦布·N.、霍内格·J.、威尔斯·W. M.、弗兰吉·A. F.（编），施普林格国际出版社，第234–241页。4, 10

[RTB17] 罗梅罗·J.、齐奥纳斯·D.、布莱克·M. J.：具身化手部模型：对人体与手部的联合建模与捕捉。ACM图形学交易（SIGGRAPH Asia会议论文集）第36卷第6期（2017年11月）。2, 3, 5

[SIM*20] 斯普尔·A.、伊克巴尔·U.、莫尔恰诺夫·P.、希利格斯·O.、考茨·J.：基于生物力学约束的弱监督三维手部姿态估计。载于2020年欧洲计算机视觉会议论文集（瑞士 Cham，2020年），韦达尔迪·A.、比肖夫·H.、布罗克斯·T.、弗拉姆·J.-M.（编），施普林格国际出版社，第211–228页。5

[TGBT20] TAHERI O.、GHORBANI N.、BLACK M. J.、TZIONAS D.：GRAB：一个关于人体抓取物体的全身数据集。载于欧洲计算机视觉会议（ECCV）（2020年）。2, 3, 8

[TSV23] TENDULKAR P.、SURÍS D.、VONDRICK C.：Flex：无需全身抓取动作的全身物体抓取方法。载于IEEE/CVF计算机视觉与模式识别会议论文集（2023年），第21179–21189页。3

[WCF07] WHITE R.、CRANE K.、FORSYTH D.：遮挡布料捕捉与动画制作。ACM图形学交易刊，第26卷（2007年7月），第34页。5

[YLZ*22] YANG L.、LI K.、ZHAN X.、WU F.、XU A.、LIU L.、LU C.：Oakink：用于理解手物交互的大规模知识库。载于IEEE/CVF计算机视觉与模式识别会议论文集（2022年），第20953–20962页。3

[YNJ $^{*}$24] YANG J.、NIU X.、JIANG N.、ZHANG R.、HUANG S.：F-hoi：面向细粒度语义对齐的3D人机交互研究。载于欧洲计算机视觉会议（2024年），第91–110页。3

[YZH $^{*}$22] YI X.、ZHOU Y.、HABERMANN M.、SHIMADA S.、GOLYANIK V.、THEOBALT C.、XU F.：物理惯性姿态器（PIP）：基于稀疏惯性传感器的物理感知实时人体运动追踪技术。载于IEEE/CVF计算机视觉与模式识别会议（CVPR）（2022年6月）。3

[YZX21] Yi X.、Zhou Y.、Xu F.：Transpose：利用六个惯性传感器实现的实时3D人体平移与姿态估计技术。ACM图形学交易刊，第40卷第4期（2021年7月）。3

[YZX24] Y1 X.、ZHOU Y.、XU F.：物理非惯性姿态器（PNP）：稀疏惯性人体运动捕捉中的非惯性效应建模方法。载于ACM SIGGRAPH 2024会议论文集（美国纽约，2024年），SIGGRAPH '24，计算机协会出版。3

[ZBL $^{*}$19] ZHOU Y.、BARNES C.、LU J.、YANG J.、LI H.：神经网络中旋转表示的连续性研究。载于IEEE/CVF计算机视觉与模式识别会议（CVPR）（2019年6月）。5

[ZLY*23] ZHANG J.、LUO H.、YANG H.、XU X.、WU Q.、SHI Y.、YU J.、XU L.、WANG J.：Neuraldome：一种针对多视角手物交互的神经建模流程。载于IEEE/CVF计算机视觉与模式识别会议论文集（2023年），第8834–8845页。3

[ZYSK21] ZHANG H.、YE Y.、SHIRATORI T.、KOMURA T.：Manipnet：基于手物空间表征的神经操控合成技术。ACM图形学交易刊（ToG），第40卷第4期（2021年），第1–14页。3

[ZYZ $^{*}$24] ZHAN X.、YANG L.、ZHAO Y.、MAO K.、XU H.、LIN Z.、LI K.、LU C.：Oakink2：一个关于复杂任务完成过程中双手与物体交互的数据集。载于IEEE/CVF计算机视觉与模式识别会议论文集（2024年），第445–456页。3
