camera-intrinsic-calibration

Crates.iocamera-intrinsic-calibration
lib.rscamera-intrinsic-calibration
version
sourcesrc
created_at2024-12-02 00:28:55.644819
updated_at2024-12-12 01:16:02.5753
descriptionCamera Intrinsic Calibration
homepagehttps://github.com/powei-lin/camera-intrinsic
repositoryhttps://github.com/powei-lin/camera-intrinsic
max_upload_size
id1467996
Cargo.toml error:TOML parse error at line 26, column 1 | 26 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Powei Lin (powei-lin)

documentation

README

camera-intrinsic-calibration

crate

A pure rust camera intrinsic calibration library.

Installation

# install cli
cargo install camera-intrinsic-calibration

Or download from the latest release.

CLI Usage

# camera-calibration-rs
ccrs -h

# run intrinsic calibration on TUM vi dataset
# Download and untar
wget https://vision.in.tum.de/tumvi/exported/euroc/1024_16/dataset-calib-cam1_1024_16.tar
tar xf dataset-calib-cam1_1024_16.tar

# [Optional] export RUST_LOG=trace
ccrs dataset-calib-cam1_1024_16 --model eucm

Visualize details after calibration

cargo install rerun-cli --version 0.17.0
rerun results/20YYMMDD_HH_MM_SS/logging.rrd
example detection

Supported formats

Dataset format

  • Euroc (default)
    dataset_root
    └── mav0
        ├── cam0
        │   └── data
        │       ├── {time_stamp}.png
        │       ├── {time_stamp}.png
        │       └── {time_stamp}.png
        └── cam1
            └── data
                ├── {time_stamp}.png
                ├── {time_stamp}.png
                └── {time_stamp}.png
    
  • General --dataset-format general
    dataset_root
    ├── cam0
    │   ├── any_file_name.png
    │   ├── any_file_name.png
    │   └── any_file_name.png
    └── cam1
        ├── any_file_name.png
        ├── any_file_name.png
        └── any_file_name.png
    

Camera models

  • Extended Unified (EUCM)
  • Extended Unified with Tangential (EUCMT)
  • Unified Camera Model (UCM)
  • Kannala Brandt (KB4) aka OpenCV Fisheye
  • OpenCV (OPENCV5) aka plumb_bob in ROS
  • F-theta (FTHETA) by NVidia

Examples

cargo run -r --example convert_model

Acknowledgements

Links:

Papers:

  • Kukelova, Zuzana, et al. "Radial distortion homography." Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.

TODO

  • Multi-camera extrinsic
  • More calibration info
Commit count: 85

cargo fmt