/calibration-pattern-detection

Computer vision coursework on calibration pattern detection

Primary LanguagePythonMIT LicenseMIT

Calibration Pattern Detection

Cambridge MLMI12 Computer Vision Coursework

This repository contains code for custom calibration pattern detection algorithms. The 4 relevant Python files are:

  • chessboard_detection.py: Code for detecting chessboard calibration pattern, it contains the function find_chessboard_corners() that emulates cv2.findChessboardCorners().
  • circles_grid_detection.py: Code for detecting symmetric circles grid calibration pattern, it contains the function find_circles_grid() that emulates cv2.findCirclesGrid().
  • common.py: Common code used by both chessboard_detection.py and circles_grid_detection.py.
  • utils.py: Convenient functions that load and visualize images.

The files have the following import structure:

Both chessboard_detection.py and circles_grid_detection.py are runnable which will process the example calibration images:

# pip3 install -r requirements.txt
python3 chessboard_detection.py visualize
python3 circles_grid_detection.py visualize

Users can optionally append a visualize flag, which will visualize the algorithm step-by-step.

Chessboard Detection Steps Visualization

0 - Example Calibration Image

1 - Harris Corner Detection

2 - Multiple Corner Filtering Steps

3 - Approximate Quadrilateral Hull

4 - Corners Ordering

Remarks

More details can be found in report.pdf.

The algorithms implemented are not robust and should only be used for academic purposes.