3D Triangulation¶
LUC3D reconstructs 3D poses from 2D annotations across multiple camera views using two methods: DLT (Direct Linear Transform — fast) and Bundle Adjustment (iterative — most accurate). Set the default in Help ▸ Settings ▸ Default Triangulation; the toolbar dropdowns can also pick a method per action. For the math behind each, see How triangulation works.
Prerequisites¶
Before triangulating, you need:
- Camera calibration loaded (TOML or JSON with intrinsic and extrinsic parameters)
- 2D annotations in at least 2 camera views
- Instance groups linking the same individual across views
Triangulating a Frame¶
Single Frame¶
Press T or go to Edit → Triangulate Current Frame.
LUC3D will:
- For each instance group in the current frame, gather 2D keypoints from all linked camera views
- Compute the 3D position of each keypoint using DLT
- Store the 3D point cloud on the InstanceGroup
- Generate reprojected instances (the 3D points projected back to each camera's 2D view)
Multiple Frames¶
Go to Edit → Triangulate Multiple Frames to batch-triangulate a range of frames. A dialog lets you specify the start and end frames.
Batch Triangulation¶
For full-session processing:
- Edit → Group by Track & Triangulate All — Auto-groups by track assignment, then triangulates every frame
- Edit → Group by Identity & Triangulate All — Auto-groups by identity, then triangulates every frame
Reprojection Error¶
After triangulation, LUC3D computes the reprojection error — the distance (in pixels) between where a keypoint was annotated and where the triangulated 3D point projects back onto that camera view.
Reading the Error¶
In the Instances tab of the info panel:
- Overall RMS error is shown per instance group
- Per-camera errors show which views have the worst fit
- Per-node breakdown highlights which keypoints are problematic
Error Color Coding¶
| Error Range | Color | Meaning |
|---|---|---|
| < 2 px | Green | Excellent — annotation is consistent across views |
| 2–5 px | Yellow | Acceptable — minor inconsistencies |
| > 5 px | Red | Poor — check for annotation errors or calibration issues |
Toggling Error Display¶
- Press E to toggle error visualization on the video views
- Press R to toggle reprojected instance overlays
- Use the Visibility tab for fine-grained control
Robust triangulation¶
An optional reprojection error threshold (set in the Tracking Wizard) automatically drops per-view keypoint observations whose reprojection error exceeds the threshold and re-triangulates from the remaining views. It is off by default. Use it to make triangulation resilient to the occasional badly mislabeled point without hand-nulling each one. See Robust triangulation.
3D Viewport¶
Press \ or go to View → Toggle 3D Viewport to open the 3D visualization.
Import existing 3D points
You can load precomputed 3D points via File ▸ Load 3D Points (H5) and view them without any videos loaded (skeleton + points only). With no video, playback is driven by a frame stepper, and the timeline still works. Cameras that have no linked video are flagged in the 3D viewer.
Viewport Controls¶
- Left-click + drag — Orbit the camera
- Scroll wheel — Zoom in/out
- Right-click + drag — Pan
Viewport Features¶
- Camera frustums — Wireframe pyramids showing each camera's position and viewing direction
- 3D skeleton — Triangulated keypoints connected by skeleton edges
- Color coding — Follows the current track/identity color mode
Viewport Buttons¶
| Button | Action |
|---|---|
| Show Camera View | Snap the 3D camera to match a specific camera's perspective |
| Show Initial View | Reset to the default orbiting viewpoint |
| Set Env | Freeze the current frame's 3D skeleton as a persistent reference overlay |
| Clear Env | Remove the environment reference overlay |
Troubleshooting¶
High reprojection error
If error is consistently high across all keypoints:
- Check that your calibration file matches the video resolution
- Verify that camera names are correctly mapped to videos
- Re-examine the calibration quality (try recalibrating)
Some keypoints have high error
If only specific keypoints show high error:
- Check those keypoints in each camera view — they may be mispositioned
- Mark occluded keypoints as occluded (right-click) rather than guessing their position
- Keypoints visible in only 1 view cannot be triangulated
Note
Triangulation requires a keypoint to be visible in at least 2 camera views. Keypoints marked as occluded or visible in only one view are excluded from 3D reconstruction.