Pick a preset and press Start. Each step captures one frame, checks it, refits the camera and plans the next board pose.
Race: true field error vs frames
TRUE field p95 (simulator ground truth) after each accepted frame. Agent vs a random-pose baseline on the same camera and random streams. Dashed lines: τ and 1 px.
Consequence
Appears after 3 accepted views.
Export
Export is offered when the agent stops (and always needs your approval).
Frames are processed in memory and never stored.
Start the camera, show the ChArUco board (9×6 squares, DICT_5X5_100), then start a session. Overlays show the last captured frame's corners and the next target.
Export
Offered when the agent stops; needs your approval. The stop probability is transferred from simulation.
Evidence
Figures from the pre-registered benchmark (E1–E12) and the failure gallery, generated from the results files and baked into this build.
Loading…
Decision support for camera calibration — not certified metrology.
What it does
NextView calibrates a camera by deciding where the calibration board should go next. Each step it looks at the new frame with OpenCV 5 tools, rejects bad frames with a measured reason (blur measured on the board's own edges, glare, a board too small or not found), refits the camera model, maps the per-pixel uncertainty of the calibration over the whole image, and asks for the board pose that is predicted to shrink that uncertainty the most. It stops when the predicted full-image error is below target, and it asks a person before it changes the lens model or exports a calibration.
How a step works
- Perceive: ChArUco detection (
CharucoDetector), slanted-edge blur and glare checks, planar pose with IPPE (solvePnPGeneric). - Decide: a priority-ordered rule table (R0–R13) over the measurements; refit with
calibrateCameraExtended(rational model orcalibrateCameraROExtendedonly after approval); full intrinsic covariance fromprojectPointsJacobians; a stop probability P(true field p95 > τ). - Act: the next target as a ghost outline plus a numeric instruction (or a robot pose), chosen from ranked candidates by predicted reduction of the 95th-percentile uncertainty.
Every rule writes one trace line, so the trace is the audit record of the session.
Privacy and limits
- Webcam frames are decoded in memory for one step and never stored or logged.
- The session lives in a signed token held by your browser; it expires after 6 hours. Approved exports are written to a private bucket; download links expire after an hour and the files are deleted after 30 days.
- Pinhole and rational lens models only (fisheye lenses are detected and declined). Rolling shutter is not modelled. The uncertainty is first order; the stop probability is fitted in simulation and transferred to real cameras.
- The service is rate limited; if it is busy the page retries automatically.
Data and attribution
Real-data results use the METRIC dataset: Davide Allegro, Matteo Terreran, Stefano Ghidoni (2023), METRIC – Multi-Eye To Robot Indoor Calibration Dataset (Version 1.1), Zenodo, doi:10.5281/zenodo.7976757, licensed CC BY 4.0. The images are read unmodified and not redistributed. Benchmark outputs are released under CC BY 4.0; the code is MIT-licensed.
Links
- Source code: github.com/GitHubMoreLikeGitGud/nextview
- Technical report: docs/report.pdf
- Board images: screen, print (A4, 300 dpi)