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.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.2-py3-none-win_amd64.whl (4.3 MB view details)

Uploaded Python 3Windows x86-64

camera_intrinsic_calibration-0.7.2-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.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

camera_intrinsic_calibration-0.7.2-py3-none-macosx_11_0_arm64.whl (3.9 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.7.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0401aab1b37827963e85601334f1bfa496b08dfa287164847741bcc9a30fe67f
MD5 be9e9f3bb10b6448538ceee0da80e777
BLAKE2b-256 85251512769d9bf57886b4fffd158ea271d3774d0ce0eea53b92413d025af16c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.7.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 033c21ebb2ac52ee8cd053f2326e8f8b910b460df0804a89c19c7f102c137672
MD5 4ac77f737ce576c2d48cc5a52477a87c
BLAKE2b-256 8a5b8fd8ac05986ab958751b8d6036947a08fc76c27cfcb52840bfc7e8528249

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.7.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a36a3620a0ef9874af047daa426710f084a6cf0a59e1379b0d1dba64ebead32f
MD5 0762b7bfd8328bc01f538d4724ab9f34
BLAKE2b-256 9f357b641c7cfc242080e3e73892f872ba61d59a928050fbd8d0730dac24a400

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for camera_intrinsic_calibration-0.7.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 99cb662243b6aac99edd61d8be675de9fdf2a6ecbc1bab2bfe11e8360471d322
MD5 e7f77df3e202e4e59a930d95bf6efed7
BLAKE2b-256 a9924510ed7843a7df22595407390a4a2445a9f3d6231d796f1436a96389816b

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