TrueTrace / Quality
How we verify every recording
Each check below runs automatically on the raw recording before any processing, and writes its numbers to qc/metrics.json. The thresholds are our internal acceptance gates; your own acceptance rubric is applied on top. Results quoted here are from our evaluation sample: a 125 s source recording, from which the 75 s evaluation clip was cut.
| Check | Gate | Evaluation sample |
|---|---|---|
| Stereo sync | p99 nearest-frame sensor-timestamp difference ≤ 1 ms | p99 0.014 ms · pass |
| Dropped frames | No interval > 1.5× median, per camera | 0 / 0 · pass |
| IMU continuity | No sample interval > 3× median | 0 gaps · pass |
| Calibration | Median |dy| after rectification ≤ 1 px and disparity sign consistency ≥ 90% | 1.49 px · fail → refined to 0.75 px |
| 3D hands | Per-pair median reprojection error ≤ 8 px, else dropped | 90.8% of frames kept |
| Task legibility | Hands and tool visible, task completed | Human review |
| Integrity | SHA256 for every delivered file | Manifest verified |
1. Stereo synchronization
We read the sensor timestamp of every frame from both cameras in the raw recording. For each cam0 frame we take the nearest cam1 frame in time and record the difference, over the whole span where both cameras are recording. The gate is on the 99th percentile of that difference, not the mean, so a short burst of misaligned frames cannot hide in an average.
Evaluation sample: 3,750 pairs, median 0.008 ms, p99 0.014 ms, max 0.019 ms. The full per-pair series is in metrics.json (sync_series_ms) and plotted in the QC report.
2. Dropped frames
For each camera we compute the interval between consecutive frame timestamps and count intervals longer than 1.5× the median interval. Any count above zero fails the recording. Evaluation sample: 3,750 frames per camera at 30 fps, median interval 33.334 ms, longest 33.384 ms (cam0) and 33.382 ms (cam1).
3. IMU continuity
The same test on IMU samples, with a 3× median threshold. Evaluation sample: 59,539 samples at about 477 Hz, longest interval 2.107 ms, no gaps. The camera–IMU time offset is taken from the device calibration and delivered in calibration.json.
4. Calibration: epipolar check
A stereo calibration can drift after it was measured, for example after the headset is knocked. To catch this we rectify sampled stereo pairs with the delivered intrinsics and extrinsics and match SIFT features between the rectified views. If the calibration is right, matching points lie on the same image row: the vertical offset |dy| is near zero and horizontal disparity has a consistent sign. We gate on median |dy| ≤ 1 px at full resolution and sign consistency ≥ 90%.
Evaluation sample: 15,566 matched points; median |dy| 1.49 px, 21% of points within 1 px, sign consistency 96% — the factory extrinsics failed the gate. The rectified pairs in qc/rect/ show the offset directly.
Extrinsic refinement
When the gate fails we refine the stereo rotation from the scene itself: sampled pairs are undistorted with the fisheye model, SIFT correspondences go into an essential-matrix estimate (RANSAC) and pose recovery, and the translation direction is rescaled to the device's baseline length. Intrinsics and baseline length are held fixed. The refined extrinsics are written out only if they actually reduce the median |dy| on the same check; otherwise the failure is reported as is.
Evaluation sample: 63 pairs, 18,644 matches, 7,448 RANSAC inliers. The rotation changed by 0.21°, and median |dy| on the refinement's check set fell from 1.33 px to 0.75 px (the two "before" figures differ because the check sets sample different frames). Both the factory and the refined extrinsics are delivered; 3D hands and depth use the refined ones.
5. Stereo 3D hand pose
- 21 hand keypoints are detected independently in cam0 and cam1 (MediaPipe palm detection and hand landmark models).
- Keypoints are undistorted with the fisheye intrinsics and triangulated with the refined extrinsics. Left and right detections of the same hand are paired by lowest reprojection error.
- Pairs whose median reprojection error exceeds 8 px are dropped rather than guessed.
- A 21-point hand shape is rigidly registered to the triangulated points, giving consistent proportions. The raw triangulated points are delivered alongside it.
Evaluation clip: 2,042 of 2,250 frames (90.8%) carry at least one 3D hand; median reprojection error 3.16 px, p90 6.0 px; median distance between registered shape and triangulated points 14.2 mm.
6. Stereo depth
Depth is computed from the rectified pair (OpenCV semi-global block matching) and aligned to the left view. The preview in the evaluation package is half resolution with no post-processing — it shows that RGB-D can be produced from the recording, not delivery-grade accuracy. Resolution and post-processing for delivered depth are agreed per project.
7. Human review
Automated gates cannot judge whether a recording is useful. Reviewers check that both hands and the tool stay visible and that the task runs to completion; segments that fail are removed before delivery. Faces are de-identified before delivery.
8. Integrity and provenance
Every delivered file is listed with its SHA256 in MANIFEST.sha256. Each batch also carries a QC report and a capture ledger (session, workstation, pseudonymous operator ID, task label, effective duration). Our first buyer delivery was accepted; 98.0% of the segments the buyer scored were rated valid, and some additional footage was not counted because it exceeded the buyer's platform quotas.
File-level details of everything above: Data format reference →
See the QC report yourself
The evaluation package includes the raw metrics, the interactive QC report and the rectified pairs, under an evaluation-only license.
contact@truetracedata.com