How It Works
Easy Tracker detects bright blobs in the camera image and matches them to a predefined 3D point model. Using OpenCV’s PnP (Perspective-n-Point) solver, it calculates the head’s 6DOF pose. The tracker includes a Kalman filter for smooth, jitter-free output.Easy Tracker offers multiple PnP solver options and supports custom 3, 4, and 5-point models, making it more flexible than the standard PointTracker.
Requirements
Hardware
- Camera: PS3 Eye camera or webcam with IR filter removed
- IR LEDs: 3-5 infrared LEDs (850nm or 940nm)
- Power source: Battery pack for LEDs (3-5V)
- LED mounting: Cap, clip, or headset for LEDs
Software
- OpenCV (included with OpenTrack)
- Camera drivers
Same hardware requirements as PointTracker, but with more flexibility in LED arrangement.
Setup Instructions
Choose Your Model Type
Easy Tracker supports multiple LED configurations:
- 3-point model: Standard triangle (cap or clip style)
- 4-point model: Quad configuration for better stability
- 5-point model: Maximum accuracy and rotation range
- Clip model: Specialized 3-point clip configuration
Build LED Array
Create your LED array according to chosen model:For 3-point model:
- Arrange 3 LEDs in asymmetric triangle
- Measure positions relative to center point
- Record X, Y, Z coordinates in millimeters
- Arrange 4 LEDs with at least one out of plane
- Ensure no 3 points are collinear
- Measure all positions
- Create extended configuration
- Use widely spaced points for best results
- Measure positions carefully
Set Blob Detection Parameters
Adjust blob detection for your LEDs:View the preview to verify only LEDs are detected.
Enter Model Coordinates
Input your measured LED positions:For 3-point custom:For 4-point:Coordinates are in millimeters, origin is at one reference point.
Select PnP Solver
Choose pose estimation algorithm:
- SOLVEPNP_P3P: Fast, requires exactly 3 points
- SOLVEPNP_ITERATIVE: Robust, works with any number of points
- SOLVEPNP_EPNP: Efficient for 4+ points
- SOLVEPNP_IPPE: Good for planar configurations
Configure Deadzone
Set deadzone for steady aiming:Larger values reduce jitter but may feel less responsive.
Configuration Options
Camera Settings
| Option | Default | Description |
|---|---|---|
| Camera Name | - | Select camera device |
| Resolution X | 640 | Width in pixels |
| Resolution Y | 480 | Height in pixels |
| FPS | 30 | Target framerate |
| FOV | 56° | Camera field of view |
Blob Detection
| Option | Default | Description |
|---|---|---|
| Min Blob Size | 4 | Minimum blob diameter in pixels |
| Max Blob Size | 15 | Maximum blob diameter in pixels |
Model Configuration
| Option | Default | Description |
|---|---|---|
| Custom Model Three | true | Enable 3-point custom model |
| Custom Model Four | false | Enable 4-point model |
| Custom Model Five | false | Enable 5-point model |
| Clip Model Three | false | Enable clip-style 3-point model |
Model Vertices (Example for 3-point)
| Vertex | X | Y | Z | Description |
|---|---|---|---|---|
| Top | 0 | 0 | 0 | Top/front LED position |
| Right | 0 | 0 | 0 | Right LED position |
| Left | 0 | 0 | 0 | Left LED position |
Solver Settings
| Option | Default | Description |
|---|---|---|
| PnP Solver | SOLVEPNP_P3P | Pose estimation algorithm |
| Deadzone Half Edge | 1 | Deadzone size in pixels |
| Auto Center | true | Enable automatic centering |
| Auto Center Timeout | 1000ms | Time before auto-center triggers |
| Debug | false | Show debug information |
PnP Solver Comparison
PnP Solver Comparison
| Solver | Points | Speed | Accuracy | Use Case |
|---|---|---|---|---|
| P3P | Exactly 3 | Very Fast | Good | Standard 3-point tracking |
| ITERATIVE | Any | Medium | Good | General purpose |
| EPNP | 4+ | Fast | Very Good | 4 or 5 point models |
| IPPE | 4+ | Fast | Good | Planar arrangements |
| SQPNP | Any | Medium | Very Good | When accuracy critical |
Advanced Features
Kalman Filter
Easy Tracker includes a built-in Kalman filter that:- Smooths position and rotation outputs
- Predicts pose during brief point occlusions
- Reduces jitter from blob detection noise
- Automatically adapts to movement speed
Multiple Point Models
Support for different point counts provides flexibility: 3-point models:- Simplest to build
- Lowest computational cost
- Good for most use cases
- May have pose ambiguity at extreme angles
- Eliminates most pose ambiguity
- More robust tracking
- Better for extreme head rotations
- Slightly more complex to build
- Maximum tracking stability
- Best rotation range
- Most robust to point occlusion
- Requires careful LED placement
Vertex Matching
The tracker uses sophisticated vertex matching to identify which detected blob corresponds to which model point:- Distance-based matching: Compares blob positions to expected positions
- Geometry validation: Ensures detected points form valid configuration
- Temporal consistency: Uses previous frame to resolve ambiguities
- Fallback strategies: Multiple matching algorithms for robustness
Troubleshooting
Wrong points detected
Wrong points detected
- Adjust min/max blob size to filter out false detections
- Check for reflections in camera view
- Increase LED brightness relative to background
- Reduce threshold if LEDs too dim
- Block windows/lights causing reflections
Pose jumps or flips
Pose jumps or flips
- Verify model coordinates are accurate
- Check that model is asymmetric (not symmetric triangle)
- Try different PnP solver (ITERATIVE more robust)
- Increase blob size constraints
- Ensure LEDs are rigidly mounted
Tracking unstable or jittery
Tracking unstable or jittery
- Increase deadzone size
- Verify LEDs are securely mounted
- Check for camera focus issues
- Use higher camera resolution
- Ensure consistent LED brightness
- Check mounting stability
Solver fails / No pose solution
Solver fails / No pose solution
- Verify at least minimum points detected (3 for P3P)
- Check model coordinates are entered correctly
- Try different PnP solver
- Ensure model points aren’t collinear
- Check that model scale is reasonable
Auto-center not working
Auto-center not working
- Verify auto-center is enabled
- Check timeout setting (try increasing)
- Ensure you’re actually stopping movement
- Debug mode shows center status
Performance Tips
Optimize Speed
- Use P3P solver for 3-point models (fastest)
- Lower camera resolution (640x480 sufficient)
- Reduce FPS if CPU limited
- Minimize blob size range
Improve Accuracy
- Use 4 or 5-point model
- Increase camera resolution
- Larger LED spacing in model
- Use EPNP or SQPNP solver
Better Stability
- Increase deadzone size
- Use 4+ point model
- Ensure rigid LED mounting
- Use consistent LED brightness
Wider Range
- Use 5-point model
- Space LEDs widely
- Use ITERATIVE solver
- Increase max blob size
Comparison with PointTracker
| Feature | Easy Tracker | PointTracker |
|---|---|---|
| Point models | 3, 4, or 5 | 3 only |
| PnP solvers | 5+ options | Fixed |
| Kalman filter | Always on | Optional |
| Auto-center | Built-in | No |
| Setup complexity | Slightly easier | Standard |
| Performance | Very similar | Very similar |
| Flexibility | More flexible | More mature |
Tips for Best Results
- Model Design: Use asymmetric arrangements - avoid regular triangles or rectangles
- LED Spacing: Wider spacing = better accuracy, aim for 80-120mm between points
- Solver Selection: Start with P3P, switch to ITERATIVE if you get pose flips
- Calibration: Measure LED positions accurately - 1mm error affects results
- Mounting: Ensure LEDs don’t flex or move relative to each other
- Testing: Use debug mode to verify point detection before finalizing setup
See Also
- PointTracker - Alternative 3-point tracker
- Hardware Guide - Building LED arrays
- Wiimote Tracker - Alternative IR tracking hardware