Skip to main content

Camera Intrinsic Calibration

Project description

camera-intrinsic-calibration

crate PyPI - Version PyPI - Python Version

A pure rust camera intrinsic calibration library.

Installation

# cargo install cli
cargo install camera-intrinsic-calibration
# Or pip install cli
pip 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

# use cargo to install rerun
cargo install rerun-cli --version 0.22.1
# or use pip to install rerun
pip install rerun-sdk==0.22.1
# 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 Distributions

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

camera_intrinsic_calibration-0.7.0-py3-none-win_amd64.whl (4.3 MB view details)

Uploaded Python 3Windows x86-64

camera_intrinsic_calibration-0.7.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

camera_intrinsic_calibration-0.7.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

camera_intrinsic_calibration-0.7.0-py3-none-macosx_11_0_arm64.whl (4.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file camera_intrinsic_calibration-0.7.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.7.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8c80c6db22e5057d11cebf48594cc51ed8e68588b888c36d211e2adbef913138
MD5 89ddd465b3c8f155b611dbbe6a45b32e
BLAKE2b-256 d4d3c20be86910e2ed9aa4ea79a9945f55f3b183af31b60a4fbbb48dcf57ea3d

See more details on using hashes here.

File details

Details for the file camera_intrinsic_calibration-0.7.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.7.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8dfcd7ce5e2d79987c439780cc906480621d18c91593f90a85e23f94de15de08
MD5 e76e176f3a843a5dd8d7508237631ae3
BLAKE2b-256 d5698b213d92a6367b1d8d318ad5e4ec01298eb457d56843be170e35cf91b2d0

See more details on using hashes here.

File details

Details for the file camera_intrinsic_calibration-0.7.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.7.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b5e00e1796b69812d18d0b6a6bf587ce6393669a8de6250377e0d32746f2b70c
MD5 4fcb2dd969bf5202c7be666e5e9fa7b2
BLAKE2b-256 a4215d1b14e4da27230b0fff2d8802b5d0e20a6d27720f95ff8d17930a55e960

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.7.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cae48cb31988b69d22ee21aa5d64c9fe424a6e832c43082ccaca8301cf58bb0b
MD5 1a1fb01d052516c47b5a45569fc594e1
BLAKE2b-256 f69c037dc61030c6c8d6f214c119f403ad8fe22136541f7e6b433ab1d6d72e29

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