Code Monkey home page Code Monkey logo

stereo_calibration's Introduction

πŸ“ Stereo Rectification/Calibration from almost^^ scatch


This repository implements algorithms for stereo rectification/calibration using checkerboard patterns with the following procedures:

  • estimate rectified homographies for left and right images using combination of uncalibrated methods of Hartley and Loop&Zhang's.

  • estimate the remapping tables for undistortion. This requires each of the cameras' intrinsic parameters, which is out of scope of this repository. Therefore, opencv's functions are used for calculating monocular camera intrinsic matrix and distortion coefficients.

  • this repository is for pure interest of better understanding of stereo calibration's mechanism/algorithms, so might not be suitable for production purpose.

Sample Result Images


  • rectification without undistortion

rectified_distorted

  • rectification with undistortion

rectified_undistorted

πŸŽ‰ TODO


  • estimation of fundamental matrix by eight-point algorithm, and refinement by gold-standard algorithm
  • estimation of uncalibrated rectification homographies based on combination of Hartley and Loop&Zhang's methods.
  • test on calibration board dataset

πŸŽ› Dependencies


  • from debian
sudo apt-get install \
    libopencv-dev \
    rapidjson-dev \

πŸ”¨ How to Build


# build the lib
make default

# build examples
make apps

πŸƒ How to Run


  • Download sample calibration data from HERE. This is modified version of The EuRoC MAV Dataset (custom calibration).

  • Uncompress the data

tar -xf ./data/calibration_data.tar.xz -C ./data/
  • Each monocular camera (left/right) has been calibrated separately, and the intrinsic calibration params can be seen in ./data/calibration/left(right)_calib_params.yml. You can also test the simple monocular camera calibration app in examples after build by:
./build/examples/mono_cam_intrinsic_calib ./data/calibration_data/left_param_config.json ./left_calib_params.yml

# or
./build/examples/mono_cam_intrinsic_calib ./data/calibration_data/right_param_config.json ./right_calib_params.yml
  • Run stereo rectification app (that does estimation of fundamental matrix and image rectification)
./build/examples/stereo_rectification_app ./data/stereo_param_config.json ./data/sample_left.png ./data/sample_right.png

πŸ’Ž References


  1. Computing Rectifying Homographies for Stereo Vision, CVPR 1999
  2. Determining the Epipolar Geometry and its Uncertainty: A Review
  3. A β€œLoop and Zhang” Reader for Stereo Rectification
  4. Multiple View Geometry in Computer Vision
  5. Machine Vision Toolbox Matlab
  6. CS231A Course Notes 3: Epipolar Geometry

stereo_calibration's People

Contributors

xmba15 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.