How to Annotate Egocentric Video for Robot Manipulation
Collecting egocentric video for robot manipulation is now a largely solved problem. Consumer hardware, established capture protocols, and a fast-growing ecosystem of open datasets have made first-person footage the most accessible demonstration data source in robotics. Annotating it correctly is not solved, and that is where most programs lose the advantage they were trying to build.
The reason annotation matters so much is that egocentric footage contains information that standard video annotation pipelines were not designed to extract. Hand-object contact state, gaze direction at the moment of action, precise 3D joint positions, and task phase transitions are all present in the data. They are available only as training signals if the annotation pipeline is configured to capture them. A standard object detection and action labeling pipeline applied to egocentric footage will produce correct labels that miss everything that makes the egocentric perspective valuable.
This blog covers the complete annotation stack for egocentric robot manipulation video: what labels are required at each level, what annotation quality standards apply, and what quality control processes distinguish annotation programs that produce a reliable policy-training signal from those that produce correctly formatted but misleading supervision.
Key Takeaways
- Egocentric video requires annotation at four levels: episode, segment, frame, and sensor stream. Annotation at one level cannot substitute for annotation at another, and missing any level produces a training set with systematic gaps.
- Hand-object contact annotation is the most consequential label in manipulation video and the one most commonly done wrong. Contact onset and offset must be identified at the frame level, not the second level, and contact quality must be assessed, not just contact presence.
- Gaze annotation is only meaningful when it identifies the fixation target, not just the gaze direction. A gaze direction vector that points at a cluttered scene tells the policy very little. A gaze target label that identifies the specific object or region the demonstrator was fixating on is what makes gaze information useful for policy learning.
- Sensor stream synchronization must be verified before annotation begins. A contact label applied to a frame that is 50 milliseconds offset from the corresponding tactile or force reading produces a training signal that is systematically wrong at the most critical moments of a manipulation task.
- Cross-embodiment annotation requires robot-agnostic task descriptions alongside robot-specific action data. EgoDex uses SE(3) annotations (poses in the special Euclidean group, capturing full 3D position and orientation) for 25 joints of both hands per frame as its joint-level ground truth; programs building datasets for cross-embodiment training should understand what their target format requires before annotation begins.
The Four Annotation Levels for Egocentric Manipulation Video
Level 1: Episode-Level Annotation
Episode-level annotation assigns labels to the entire recorded demonstration as a unit. The minimum required fields are task identity, task success or failure, a natural language task description, and collection metadata covering the hardware used, the scene configuration, and the demonstrator identifier. For programs training instruction-conditioned or language-conditioned policies, natural language task descriptions are a first-class annotation modality rather than optional metadata, and their quality, specifically whether they describe what the task accomplishes in the language that users will actually use, determines how well the policy learns language grounding.
Episode-level annotation also supports dataset balancing. Coverage metadata across scene type, object category, and task type is what enables the training pipeline to identify and address coverage gaps systematically rather than training on whatever distribution the collection produced by default.
Level 2: Segment-Level Annotation
Segment-level annotation divides an episode into labeled temporal segments corresponding to meaningful task phases. For manipulation tasks, the standard phase decomposition is approach, pre-grasp, grasp, transport, pre-place, place, and release. Each phase has different action requirements and different error modes, and a training pipeline that applies equal supervision weight to all phases will underweight the contact-rich phases where precision matters most.
Segment boundaries should be defined by the physical state of the task, specifically by changes in the contact state between the hand and the objects in the scene, rather than by visual heuristics such as hand speed or proximity. A segment boundary defined by contact state change is consistent across demonstrators and object types. A boundary defined by visual heuristics is demonstrator-specific and object-specific in ways that produce inconsistent training signal.
Level 3: Frame-Level Annotation
Frame-level annotation assigns labels to individual video frames, typically at the full capture rate or at a defined subsampling rate, depending on the task dynamics. The four label types required for manipulation policy training are: object state, tracking the position and manipulation status of each task-relevant object; end-effector state, recording gripper aperture and spatial relationship to the target; contact state, identifying whether contact is occurring and characterizing its quality; and task phase label at each frame, enabling phase-weighted training loss. EgoDex sets the current precision benchmark for this level of annotation: SE(3) poses for 25 joints of both hands at every frame, captured at 30 Hz via on-device simultaneous localization and mapping (SLAM) using multiple calibrated Apple Vision Pro cameras. Programs that need joint-level annotation at this precision for dexterous manipulation tasks should treat EgoDex’s annotation schema as the reference format.
Level 4: Sensor Stream Annotation
Modern egocentric capture rigs produce data streams beyond video: inertial measurement unit (IMU) data, eye gaze tracking, depth video, and, in precision setups, joint tracking. Sensor stream annotation assigns labels to these streams that synchronize with and extend the video annotation. The critical requirement is that synchronization is verified before annotation begins. A gaze target label applied to a gaze vector offset by 50 milliseconds from the corresponding video frame yields incorrect information about what the demonstrator was attending to at the moment of a critical manipulation event. At 30 Hz, 50 milliseconds is 1.5 frames. At 60 Hz, it is 3 frames.
These offsets are small enough to be invisible in individual annotation reviews and large enough to corrupt the training signal for contact-rich tasks systematically. Synchronization verification therefore belongs at the start of the pipeline as a pre-annotation gate, confirming temporal alignment across all streams before any labeling begins, rather than as a correction applied after errors are discovered.
Hand-Object Contact Annotation: The Most Critical Label
Why Contact State Is Different From Contact Presence
Contact presence is a binary label: the hand is or is not touching an object. Contact state is a richer annotation that includes contact onset and offset at the frame level, the spatial location of contact on the object surface, the character of the contact (fingertip pinch, palmar wrap, or lateral pinch, for instance), and a quality assessment of whether the contact configuration is mechanically stable under the forces the subsequent task phase will apply.
The quality assessment is what most annotation programs skip and what causes the most policy failures. A grasp that passes the contact presence check but is rated as mechanically marginal because the object is held at the fingertip edge rather than centered will produce a training example that teaches the policy a grasp pattern that fails under any perturbation. In our experience running contact quality review at production scale, even a dataset where roughly one in ten grasps is mechanically marginal but labeled successful is enough to teach the policy to accept and reproduce that margin. The proportion is illustrative; the mechanism is not.
Annotation Protocol for Contact Quality
Contact quality assessment requires annotators with physical intuition about manipulation mechanics, not general-purpose video labelers. The annotation guidelines must specify, with examples, what a stable contact looks like for the specific object types in the dataset, what a marginal contact looks like, and what an unstable contact looks like. Calibration on a set of twenty to thirty representative examples before the main annotation pass establishes consistent application of these criteria across the annotation team. Inter-annotator agreement on contact quality for the calibration set, measured before production annotation begins, is the quality gate that determines whether the annotation process is ready to scale.
In our experience, agreement below roughly 80 percent on contact quality labels for the calibration set is a signal that the guidelines need revision, not that the annotators need more practice. This threshold is a working heuristic drawn from production annotation programs rather than a published standard, and teams should calibrate it to the stakes of their specific task.
Gaze Annotation: Making the Target Explicit
Gaze direction data from a head-mounted eye tracker gives the angular direction of the demonstrator’s gaze at each frame. In a cluttered scene with multiple objects, this direction vector intersects with a region of the scene but does not identify which specific element within that region the demonstrator was fixating on. Annotating gaze direction without annotating gaze target produces data that tells the policy the demonstrator was looking somewhere in the vicinity of the action, which is far less informative than knowing they were specifically fixating on the handle of the mug rather than the mug body.
Gaze target annotation identifies the specific object, object part, or scene region that the demonstrator was attending to at each keyframe. This label is what enables gaze-conditioned policy learning, where the policy learns to attend to the same targets the demonstrator attended to at the same task phases. The most efficient annotation approach is to label gaze targets at keyframes corresponding to task phase transitions rather than at every video frame, and to propagate the label forward until the next keyframe where the gaze target changes. Without this target-level grounding, eye tracking data remains decorative sensor output rather than usable supervision.
Cross-Embodiment Annotation Requirements
Programs building egocentric datasets for cross-embodiment training face an additional annotation requirement that single-robot programs do not: the action representation must be robot-agnostic at the task description level while preserving robot-specific data at the control level. This two-level structure is what allows trajectories from human demonstrators wearing Apple Vision Pro to be co-trained with robot teleoperation data without requiring the training pipeline to reconcile incompatible action spaces.
The robot-agnostic layer consists of the natural language task description, the 3D spatial trajectory of the hand or end-effector in a world coordinate frame, and the contact state sequence. These are expressible in a coordinate system that is independent of the specific robot kinematics. The robot-specific layer consists of the joint angles and gripper commands that translate the spatial trajectory into commands for a specific robot embodiment. Annotating only the robot-specific layer locks the dataset to a single embodiment; adding the robot-agnostic layer is what opens it to co-training with egocentric human demonstration data.
How Digital Divide Data Can Help
Digital Divide Data builds egocentric annotation pipelines that extract the full training signal from first-person manipulation footage, not just correctly formatted labels.
Our annotation teams are trained specifically on egocentric manipulation video, with quality control designed to catch the failures that matter: mechanically marginal grasps labeled as successful, and gaze-direction labels that miss the actual fixation target. That covers the frame-level stack in full: contact state, gaze target, object state, and task phase, at production scale.
For multi-modal rigs, we handle synchronization verification and label integration across video, IMU, gaze, and joint-tracking streams, with temporal alignment confirmed as a pre-annotation gate rather than discovered after the dataset is built. And for programs starting from scratch, we work upstream of annotation itself: protocol design, hardware selection, and schema design that keeps collection and annotation aligned before either begins.
If your pipeline produces contact presence but not contact quality, gaze direction but not gaze target, or robot-specific action data without robot-agnostic task descriptions, the footage you have collected is worth more than the signal you are pulling from it. Talk to an expert.
Conclusion
The annotation stack for egocentric robot manipulation video is substantially more demanding than for standard manipulation video, and for good reason: the information that makes egocentric data valuable is precisely the information that standard annotation pipelines were not designed to capture. Contact quality, gaze target, sensor synchronization, and robot-agnostic task description are the labels that determine whether egocentric footage produces a policy that generalizes or one that merely passes the training loss.
Programs that collect egocentric video without building the annotation pipeline to match it are leaving the most important part of the data value on the table. What does your current egocentric annotation pipeline produce at the contact quality, gaze target, and sensor synchronization levels, and is that the complete annotation stack your training pipeline actually needs?
References
Kareer, S., Patel, D., Punamiya, R., Mathur, P., Cheng, S., Wang, C., Hoffman, J., & Xu, D. (2024). EgoMimic: Scaling imitation learning via egocentric video. In Conference on Robot Learning (CoRL). https://arxiv.org/abs/2410.24221
Hoque, R., Huang, P., Yoon, D. J., Sivapurapu, M., & Zhang, J. (2025). EgoDex: Learning dexterous manipulation from large-scale egocentric video. arXiv. https://arxiv.org/abs/2505.11709
Punamiya, R., Kareer, S., Liu, Z., Citron, J., Qiu, R., Cai, X., Gavryushin, A., Chen, J., Liconti, D., Zhu, L. Y., et al. (2026). EgoVerse: An egocentric human dataset for robot learning from around the world. arXiv. https://arxiv.org/abs/2604.07607
Frequently Asked Questions
Q1. Why does gaze annotation matter for robot manipulation policy training?
Gaze annotation tells the policy what the demonstrator was attending to at each moment of the task, which is information that the video frames alone do not reliably convey in cluttered scenes. At task phase transitions, where the demonstrator shifts from fixating on the approach target to fixating on the grasp point to fixating on the placement target, the gaze label captures the intended focus of attention that determines what the next action should be. Policies trained with gaze target labels learn to attend to the same task-relevant features at the same task phases as the demonstrator. Policies trained without gaze information must infer the relevant features from the action sequence alone, which produces weaker generalization to new object arrangements.
Q2. What frame rate should egocentric video be annotated at for manipulation tasks?
The annotation rate depends on the task dynamics. For slow, deliberate manipulation tasks like assembly or placement, annotating every fifth frame at 30 Hz, roughly six frames per second, captures phase transitions and contact events with adequate resolution. For fast, dynamic tasks like catching or rapid sequencing, full frame-rate annotation or at least every other frame is required to capture contact onset and offset accurately. The contact quality assessment should always be performed at the frame where contact is first established and at the frame where it ends, regardless of the general annotation rate, because these are the frames with the highest policy training value and the highest annotation error cost.
Q3. How do you handle occlusion in egocentric manipulation annotation?
Occlusion, where the demonstrator’s own hand or arm blocks the camera’s view of the object being manipulated, is the most frequent annotation challenge in egocentric footage. The standard approaches are: maintaining the last observed object state label until contact state changes, using depth video to infer 3D position when the color camera (RGB) view is occluded, and marking occluded frames with an occlusion flag that allows the training pipeline to apply reduced loss weight to those frames. Frames with complete occlusion of the primary task object during contact should be flagged rather than guessed, because a guessed label during contact is worse than a missing label.
Q4. How do you build an annotation calibration set for contact quality?
Select twenty to thirty episodes representing the full range of contact quality the dataset contains: clear examples of stable grasps across the object types in the collection, clear examples of mechanically marginal grasps at different stages of marginality, and clear examples of unstable contact that would fail under load. Have every annotator on the team label the calibration set independently, then measure inter-annotator agreement on the contact quality dimension specifically. The calibration review session should examine every disagreement on contact quality cases to determine whether the disagreement stems from guideline ambiguity, which requires guideline revision, or from annotator interpretation differences, which requires calibration discussion. The calibration set should be retained as a reference benchmark for ongoing quality monitoring throughout the annotation program.
Q5. What action representation format is required for cross-embodiment training with egocentric human data?
Cross-embodiment training requires a two-layer action representation. The robot-agnostic layer captures the 3D spatial trajectory of the hand or end-effector in a world coordinate frame, the contact state sequence, and the natural language task description. This layer can be aligned across human demonstrations and robot data from different embodiments. The robot-specific layer captures the joint angles and gripper commands that map the spatial trajectory to the specific robot. The Open X-Embodiment dataset established a widely adopted schema for the robot-specific layer. For the hand-level data from egocentric human demonstrations, EgoDex uses SE(3) annotations for 25 joints of both hands as the ground truth format. Programs building datasets intended for cross-embodiment training should decide on both layers before collection and annotation begin, because converting action representations after the fact is significantly more expensive than designing the annotation schema correctly upfront.

Udit Khanna leads the delivery of scalable AI and data solutions at Digital Divide Data, with a deep specialization in Physical AI. With a background in presales, solutioning, and customer success, he brings a mix of technical depth and business fluency, helping global enterprises move their AI projects from prototype to real-world deployment without losing momentum.
How to Annotate Egocentric Video for Robot Manipulation Read Post »

