Skip to main content

Camera Intrinsic Calibration

Project description

camera-intrinsic-calibration

crate crate downloads

PyPI - Version PyPI - Python Version

A pure rust camera intrinsic calibration tool.

Installation

# cargo install cli
cargo install camera-intrinsic-calibration
# Or pip install cli
pip install camera-intrinsic-calibration
# Or pip install cli with rerun
pip install 'camera-intrinsic-calibration[rerun]'

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

# use cargo to install rerun
cargo install rerun-cli --version 0.27.2
# or use pip to install rerun
pip install rerun-sdk==0.27.2
# visualize result
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
    
    Images can be either .png or .jpg, but .png is preferred if possible. PNG is lossless compression, while JPG is not.

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

Calibrate your own camera

Please follow the tutorial.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

camera_intrinsic_calibration-0.11.2-py3-none-macosx_11_0_arm64.whl (5.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file camera_intrinsic_calibration-0.11.2-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.11.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 162690ac74da3dc6a0ccfbb5b87566cec8962c0b2832d5ff9f0b7ecdf29b9f07
MD5 42a3bdf8d49b5ec60efc5de6fc2bf6aa
BLAKE2b-256 b53ea6b91c960730decd35dbe7a5eee83f785d494eb9ffe5ef7245ec44e4f8ac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page