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 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.23.2
# or use pip to install rerun
pip install rerun-sdk==0.23.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 Distributions

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

camera_intrinsic_calibration-0.8.0-py3-none-win_amd64.whl (5.9 MB view details)

Uploaded Python 3Windows x86-64

camera_intrinsic_calibration-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

camera_intrinsic_calibration-0.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

camera_intrinsic_calibration-0.8.0-py3-none-macosx_11_0_arm64.whl (5.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.8.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 5ede0de8de0d67f8a97b592e9f40add0d1c78584f5bacae5c7ff59648f1c2729
MD5 9674a75bcd7e191c1cbc8fe84bf57005
BLAKE2b-256 5dcd0fa0ba35b81944b73c958de1ae54211e997c879c751c6efd0fea9ac2d37b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cc48efcaac14d7d966ae862cb5af4b85fc111429e5bd3338c4793473df3b44f7
MD5 5ac9c0850fdf00449fcb98fb15b64f3d
BLAKE2b-256 20e52f1f0575cec0ba276b947f222323efa720ccbc073e212b925076a25bd02e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 770d610a236a8cdc7f8dd7fd18f5713c466f3418654e6ab050b16c76a9bc356f
MD5 48487fd6c95c645761fba2a296eb18b6
BLAKE2b-256 3ce6ba64fa55b5c81724247bf742e4cee8568ba7c0296310a762997d0dcaa6a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.8.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a6a3e85ed14da0ebc96db9e0f7bf764bc0de898900afd5244b90aadffc88f0f
MD5 0186def1c7751e7b2a32a8f4445d7d57
BLAKE2b-256 3af375607746e818c20754511c0e9f056a8f462768b31452ba91ac313befa447

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