Folder layouts: {root}/{view}.mp4 (flat) or
{root}/{view}/calibration_images/*.mp4 (anipose-style, also calibration/).
A board.toml next to the videos fills in the board form.
No videos loaded.
2
Detect ChArUco corners
Waiting for videos▼
Board
Batch detection
–
–
–
0%
Detections
Strip: one column per sampled frame, colored by the number of corners common to all views. Click to seek.
3
Intrinsics
Waiting for detections▼
0%
Camera
fx
fy
cx
cy
k1
k2
p1
p2
k3
frames
coverage
RMS (px)
median (px)
Per-frame reprojection RMS after solvePnP with the calibrated intrinsics. Strip: max over cameras. Filled dots were used in calibrateCamera; hollow were evaluated only. Click a dot or column to seek; press X to exclude the current frame, then recompute.
Frames by intrinsic reprojection error (max over cameras · click to seek, ✕ to exclude)
4
Extrinsics & bundle adjustment
Waiting for intrinsics▼
0%
Covisibility (frames per camera pair · outlined cells = pose-chain edges)
Camera poses (world = reference camera)
Camera
rx
ry
rz
tx
ty
tz
via
pair σt
Cross-view reprojection
Corners seen by ≥2 cameras are triangulated and reprojected. One dot per frame per camera (mean over that frame's corners). Strip: mean over cameras.
Error histogram: share of observations per error bin (linear axis; the last bin collects everything beyond it), one curve per camera, dashed = median.
Frames by cross-view error (click to seek, ✕ to exclude from extrinsics / SBA)
Bundle adjustment (sparse Levenberg–Marquardt with board-rigidity term)
iterations
cost
param
grad
0%
Refined cross-view reprojection
Same detections, re-triangulated with the bundle-adjusted cameras. The initial plots above are kept for comparison; overlays, export and the worst-frames list below use the refined calibration.
Histogram: all observations, initial (grey) vs refined (blue); dashed = medians; red = final outlier threshold used for the fit.
Camera
obs
initial extrinsics (px)
after bundle adjustment (px)
mean
median
p95
mean
median
p95
Frames by refined cross-view error (click to seek, ✕ to exclude)
5
Export
Waiting for calibration▼
calibration.toml (sleap-anipose format)
# Complete intrinsics and extrinsics to generate the TOML