camera-intrinsic-model
A pure rust camera intrinsic model library. Including
- project / unproject points
- undistort and remap image
Supported camera models are
- Extended Unified (EUCM)
- Extended Unified with Tangential (EUCMT)
- Unified Camera Model (UCM)
- Kannala Brandt (KB4) aka OpenCV Fisheye
- OpenCV (OPENCV5) aka
plumb_bobin ROS - F-theta (FTHETA) by NVidia
- Fov Camera (FOV_CAMERA)
For calibration to get the precise parameters. Please use camera-intrinsic-calibration
Examples
# undistort and remap
# undistort and rectify
Benchmark
Remapping to 1024x1024 on m4 mac mini (26.1).
╭───────────────────────────────────────────────────────────────────────╮
│ remap │
├────────────────┬──────┬───────────┬───────────┬───────────┬───────────┤
│ benchmark │ args │ fastest │ median │ mean │ stddev │
├────────────────┼──────┼───────────┼───────────┼───────────┼───────────┤
│ mono8 normal │ None │ 883.92 µs │ 918.38 µs │ 945.79 µs │ 66.20 µs │
│ mono8 fast │ None │ 329.83 µs │ 352.50 µs │ 359.58 µs │ 22.43 µs │
│ rgb8 normal │ None │ 1.64 ms │ 1.70 ms │ 1.71 ms │ 84.11 µs │
│ rgb8 fast │ None │ 481.75 µs │ 508.62 µs │ 520.94 µs │ 39.45 µs │
╰────────────────┴──────┴───────────┴───────────┴───────────┴───────────╯
Acknowledgements
Links:
- https://cvg.cit.tum.de/data/datasets/visual-inertial-dataset
- https://gitlab.com/VladyslavUsenko/basalt-headers
Papers:
- Usenko, Vladyslav, Nikolaus Demmel, and Daniel Cremers. "The double sphere camera model." 2018 International Conference on 3D Vision (3DV). IEEE, 2018.
- Frédréric, Devernay, and Faugeras Olivier. "Straight lines have to be straight: Automatic calibration and removal of distortion from scenes of structured enviroments." Mach. Vision Appl 13.1 (2001): 14-24.
TODO
- Stereo Rectify
- FTheta Model
- Python bindings