Track Mode and Interpolation
Understanding Tracks
Tracks are temporal annotations that represent the same object across multiple video frames:- Single identity: One track = one object throughout its appearance
- Keyframe-based: You define object position at keyframes
- Automatic interpolation: CVAT calculates positions between keyframes
- Efficient: Annotate once every N frames instead of every frame
Interpolation can reduce annotation time by 5-10x for videos compared to frame-by-frame annotation.
Creating Tracks
- Select any drawing tool (rectangle, polygon, etc.)
- Choose a label
- Click Track (instead of Shape)
- Draw the object on the current frame
- Navigate forward several frames
- Adjust the object position if needed (creates a new keyframe)
- Repeat until the object disappears or leaves the frame
Keyframes
Keyframes are frames where you explicitly set the object’s position and shape:- Manual keyframes: Created when you adjust the object
- Automatic keyframes: First and last frame of track
- Visual indicator: Diamond icon in the objects sidebar
- Toggle keyframe: Select object and press
K
- Object changes direction
- Speed changes significantly
- Shape deforms
- Object enters/exits occlusion
- Camera motion changes
- At least every 30-60 frames
Interpolation Behavior
CVAT interpolates different properties: For all shapes:- Position (x, y coordinates)
- Size (width, height)
- Rotation angle
- Each vertex position independently
- Shape can morph smoothly
- Each keypoint position independently
- Natural pose transitions
- Masks (must set on each frame)
- Attributes marked as “immutable”
- Discrete properties (label, color)
Interpolation Types
CVAT uses linear interpolation by default:- Smooth, constant velocity between keyframes
- Works well for most objects
- Simple and predictable
- Add more keyframes at motion changes
- Consider using auto-tracking tools
Managing Track Visibility
Outside Property (Q):
Mark a track as “outside” when the object leaves the frame:
- Navigate to the frame where object exits
- Select the track
- Press
Qor toggle “Outside” in sidebar - Object disappears from this frame onward
- Toggle off when object re-enters
“Outside” is frame-specific in tracks. An object can be outside on frames 50-100 and visible again on frame 101.
O):
Mark frames where the object is hidden but still in the scene:
- Select the track
- Press
Oon frames where object is occluded - Visual indicator appears
- Useful for datasets that distinguish visibility states
Object Propagation
Propagate copies an object to subsequent frames:When to Use
- Object is stationary or moves slowly
- Faster than creating a track for short durations
- Initial annotation before refinement
Using Propagate
- Select an object (shape or track)
- Press
Ctrl+Bor right-click → “Propagate” - In the dialog:
- Up to frame: End frame number
- Propagate as: Shape or track
- Click OK
- Object is copied to all frames in range
Propagate vs Track
| Feature | Propagate (shapes) | Track |
|---|---|---|
| Independence | Each frame separate | Single object |
| Editing | Edit each copy individually | Edit keyframes, interpolates between |
| Use case | Static objects | Moving objects |
| Efficiency | Good for few frames | Excellent for many frames |
Grouping Objects
Purpose
Group multiple objects that logically belong together:- Parts of a single entity (car + wheels)
- Related objects (person + accessories)
- Maintain relationships across frames
- Export as single composite object
Creating Groups
Method 1: Group Mode- Press
Gto enter group mode - Click objects to add to group (or select first)
- Click “Group” button or press
Gagain - Selected objects are now grouped
- Select first object
Shift+Clickadditional objects- Right-click → “Group”
Group Properties
- Group ID: All grouped objects share a group ID
- Color: Can set uniform color for group
- Selection: Clicking one object highlights the group
- Operations: Some operations affect entire group
Ungrouping
- Select any object in the group
- Press
Shift+Gor right-click → “Ungroup” - Objects become independent
Best Practices
- Group related objects that move together
- Use consistent grouping across all frames (for tracks)
- Document grouping rules in annotation guidelines
- Consider if hierarchical labels might be better than grouping
Merging Objects
Purpose
Combine multiple separate annotations into a single object:- Merge over-segmented regions
- Combine parts annotated separately
- Fix duplicate annotations
- Combine tracks that represent the same object
Using Merge Mode
- Press
Mto activate merge mode - Click objects to merge (minimum 2)
- Selected objects are highlighted
- Click “Merge” or press
Magain to complete - Objects combine into one
Merged objects take the label of the first selected object. Attributes may need manual reconciliation.
Merge Behavior by Type
Rectangles:- Creates bounding box that encompasses all input rectangles
- Combines into a single polygon (may have complex boundary)
- Handles overlapping regions
- Performs pixel-wise union
- Perfect for combining segmentation regions
- Merges track histories
- Useful for fixing tracking errors where same object has multiple IDs
Merge Shortcuts
Limitations
- Cannot merge different shape types (e.g., rectangle + polygon)
- Merging tracks requires temporal overlap consideration
- Attributes from only one object are retained
Splitting Tracks
Purpose
Divide a track into two separate tracks at the current frame:- Fix tracking errors (wrong ID continuation)
- Split tracks when objects separate
- Correct annotation mistakes
Using Split Mode
- Navigate to the frame where you want to split
- Press
Alt+Mto activate split mode - Click the track to split
- Track divides:
- Before current frame: Original track
- Current frame onward: New track with new ID
Common Scenarios
ID Switch:- Two objects cross paths
- Tracker assigns wrong ID
- Split both tracks at crossing, then join correctly
- Single object splits into multiple (e.g., flock disperses)
- Split track, annotate each resulting object separately
Split Shortcuts
Joining Tracks
Purpose
Combine two separate tracks into a single continuous track:- Fix fragmented annotation of same object
- Connect tracks across occlusion
- Correct tracking gaps
Using Join
- Click the Join tool in controls sidebar
- Click the first track (earlier in time)
- Click the second track (later in time)
- Tracks merge into one continuous track
- Object maintains single identity across both track segments
Requirements
- Tracks must be same shape type
- Tracks should be temporally sequential (or overlapping)
- Both tracks must have same label (or you’ll be prompted to choose)
Join vs Merge
| Feature | Join | Merge |
|---|---|---|
| Purpose | Combine sequential track segments | Combine simultaneous objects |
| Input | 2 tracks | 2+ objects |
| Result | Single continuous track | Single object |
| Use case | Fix fragmented tracking | Combine over-segmentation |
Slicing Objects
Purpose
Cut an object into multiple parts using a line:- Divide over-segmented regions
- Split connected components
- Create separate annotations from one
Using Slice Mode
- Click the Slice tool in controls sidebar
- Select the object to slice
- Draw a line across the object:
- Click to place line vertices
- Press
Nor double-click to finish line
- Object splits into multiple objects along the cut line
Slice Behavior
For polygons:- Creates 2+ separate polygons based on where line intersects
- Each new polygon becomes an independent object
- Divides mask into connected components
- Each component becomes a separate mask
Applications
- Separate touching objects annotated as one
- Divide regions after approximate annotation
- Fix over-segmentation from auto-annotation
- Create part-based annotations
Attribute Annotation
Understanding Attributes
Attributes are properties associated with objects:- Defined per label: Each label has its own attributes
- Types: Checkbox, radio, select, number, text
- Mutable vs Immutable:
- Immutable: Same value across all frames in track
- Mutable: Can change per frame
Setting Attributes
- Select an object
- Expand DETAILS section in objects sidebar
- Set attribute values
- For mutable attributes in tracks:
- Navigate to frames where value changes
- Update attribute value
- CVAT tracks changes per frame
Attribute Annotation Workspace
For efficient attribute annotation:- Switch to Attribute Annotation workspace
- Interface shows:
- Large object view
- Attribute controls
- Object and frame navigation
- Keyboard shortcuts for attributes
- Rapid annotation workflow
- Navigate to object (Tab or sidebar)
- Set attributes with keyboard or clicks
- Press
Ctrl+Enterto save and move to next object - Repeat
Best Practices
Immutable Attributes
Use for properties that don’t change (object color, vehicle type, etc.)
Mutable Attributes
Use for time-varying properties (door open/closed, lights on/off)
Consistent Values
Maintain consistency across similar objects
Documentation
Document attribute definitions clearly in project guidelines
Copy, Paste, and Duplicate
Copying Objects
Within same frame:- Select object
Ctrl+Cto copyCtrl+Vto paste- Adjust position of pasted object
- Copy object on one frame
- Navigate to target frame
- Paste with
Ctrl+V - Useful for objects that appear multiple times
Copy Shortcuts
Use Cases
- Repeated objects: Copy-paste-adjust faster than drawing from scratch
- Similar objects: Copy, paste, change label
- Template annotation: Copy object with attributes set, paste to new instances
Object Relationships
Z-Order (Depth Ordering)
Control which objects appear in front when overlapping: Change Z-Order:+or=: Bring selected object forward-: Send selected object backwardCtrl++: Bring to frontCtrl+-: Send to back
- Objects sidebar can display objects grouped by Z-order layer
- Higher Z-order = rendered on top
- Useful for organizing complex scenes
Parent-Child Relationships
Some label configurations support hierarchical relationships:- Skeleton sublabels: Keypoints belong to skeleton
- Part annotations: Wheels belong to vehicle
- Nested structures: Building parts, room elements
Batch Operations
Lock/Unlock All Objects
T+L: Toggle lock for all objects on current frame- Prevents accidental edits
- Unlock to edit again
Hide/Show All Objects
T+H: Toggle hide for all objects on current frame- Clear canvas for easier viewing
- Objects still exist, just hidden
Delete Multiple Objects
- Select multiple objects (
Shift+Click) - Press
DelorBackspace - All selected objects are removed
Advanced Keyboard Shortcuts
Track and Interpolation
Track and Interpolation
Object Operations
Object Operations
Batch Operations
Batch Operations
Navigation During Annotation
Navigation During Annotation
Best Practices for Video Annotation
Efficient Workflow
- First pass: Create tracks for all objects with keyframes every 30-60 frames
- Review pass: Navigate through interpolated frames, add keyframes where needed
- Refinement pass: Adjust boundaries, set attributes
- Quality check: Review entire video for consistency
Keyframe Strategy
Tracking Difficult Objects
Fast motion:- More frequent keyframes
- Consider auto-tracking tools
- Mark “outside” during full occlusion
- Mark “occluded” during partial occlusion
- Keyframe before and after
- Background motion affects interpolation
- More keyframes needed
- Use stabilization if available
- Use polygons or skeletons
- Frequent keyframes
- Each vertex interpolates independently
Troubleshooting
Interpolation looks wrong
Interpolation looks wrong
- Add more keyframes at motion changes
- Check that keyframes are properly set (press K to toggle)
- Ensure “outside” flag is not incorrectly set
- Consider if object motion is too complex for linear interpolation
Can't merge objects
Can't merge objects
- Objects must be same type (all rectangles, all polygons, etc.)
- Both objects must be on the same frame
- Check that merge mode is active (M key)
Track split in wrong place
Track split in wrong place
- Use Undo (Ctrl+Z) immediately
- Navigate to correct frame before splitting
- Consider joining tracks instead
Grouped objects behave unexpectedly
Grouped objects behave unexpectedly
- Ungroup (Shift+G) and regroup
- Check that all intended objects are selected
- Some operations may not support groups
Propagate created too many objects
Propagate created too many objects
- Delete propagated objects and try again with shorter range
- Consider using track mode instead
- Use Ctrl+Z to undo if just completed
Next Steps
Manual Annotation
Basic annotation workflows and techniques
Auto-Annotation
Use AI tracking to automate interpolation
Quality Control
Review and validate annotations
Export Data
Export your completed annotations