Difference between revisions of "Full Body Pose Estimation for Sports Analysis - Chessboard Camera Calibration"

From RidgeRun Developer Connection
Jump to: navigation, search
m
m
Line 3: Line 3:
 
This wiki summarizes the documentation of the chessboard based camera calibration method. It contains information such as the how the method works, how to set up the environment for use, and how to build a calibration object.
 
This wiki summarizes the documentation of the chessboard based camera calibration method. It contains information such as the how the method works, how to set up the environment for use, and how to build a calibration object.
  
=Introduction=
+
==Introduction==
 
This module provides the user with a calibration method that works with a 2D calibration object. By using a  chessboard like pattern, intrinsic camera calibration become possible since the relation between the known object points and the found image points can be used for said calculation. The module also provides the possibility of computing extrinsic camera parameters for a single camera, and the relation between cameras in a multi-camera system as long as all cameras capture the same calibration object. The following image shows a chessboard like camera calibration object in front of a dual camera system.
 
This module provides the user with a calibration method that works with a 2D calibration object. By using a  chessboard like pattern, intrinsic camera calibration become possible since the relation between the known object points and the found image points can be used for said calculation. The module also provides the possibility of computing extrinsic camera parameters for a single camera, and the relation between cameras in a multi-camera system as long as all cameras capture the same calibration object. The following image shows a chessboard like camera calibration object in front of a dual camera system.
 
+
<br>
 +
<br>
 
[[File:Dualcam chessboard model.png|900px|thumb|center|Model of a dual camera system capturing AprilTag calibration object.]]
 
[[File:Dualcam chessboard model.png|900px|thumb|center|Model of a dual camera system capturing AprilTag calibration object.]]
  
=Description=
+
==Description==
 
This calibrator class uses the [https://opencv.org/ OpenCV] library [https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html calibration functions] to provide the user with the ability of computing a camera's intrinsic and extrinsic calibration parameters. It also provides the possibility of computing the relation between cameras coordinate systems on a multi-camera rig, as long as all cameras capture the calibration object.
 
This calibrator class uses the [https://opencv.org/ OpenCV] library [https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html calibration functions] to provide the user with the ability of computing a camera's intrinsic and extrinsic calibration parameters. It also provides the possibility of computing the relation between cameras coordinate systems on a multi-camera rig, as long as all cameras capture the calibration object.
  
=Getting started=
+
==Getting started==
 
In this section, you will find information on how to set up your environment to use this calibration method. It will also contain details on how to build a chessboard like calibration object.
 
In this section, you will find information on how to set up your environment to use this calibration method. It will also contain details on how to build a chessboard like calibration object.
  
==Setting-up the environment==
+
===Setting-up the environment===
 
To get the environment ready for using this calibration method, you only require to install [https://opencv.org/ OpenCV].
 
To get the environment ready for using this calibration method, you only require to install [https://opencv.org/ OpenCV].
  
==The calibration object==
+
===The calibration object===
 
The calibration chessboard pattern can be selected as you required, however it must be an [https://docs.opencv.org/3.4/pattern.png asymmetrical chessboard pattern]. Otherwise, the calibration parameters are going to be computed wrong. Make sure to take note of your pattern size in terms of how many rows and columns is it composed of, and also the width and height of the actual squares. The pattern information must be provided to the calibrator in order for it to find it.
 
The calibration chessboard pattern can be selected as you required, however it must be an [https://docs.opencv.org/3.4/pattern.png asymmetrical chessboard pattern]. Otherwise, the calibration parameters are going to be computed wrong. Make sure to take note of your pattern size in terms of how many rows and columns is it composed of, and also the width and height of the actual squares. The pattern information must be provided to the calibrator in order for it to find it.
  

Revision as of 13:44, 17 September 2020



Previous: AprilTag Camera Calibration Index Next: 3D Pose Estimation




This wiki summarizes the documentation of the chessboard based camera calibration method. It contains information such as the how the method works, how to set up the environment for use, and how to build a calibration object.

Introduction

This module provides the user with a calibration method that works with a 2D calibration object. By using a chessboard like pattern, intrinsic camera calibration become possible since the relation between the known object points and the found image points can be used for said calculation. The module also provides the possibility of computing extrinsic camera parameters for a single camera, and the relation between cameras in a multi-camera system as long as all cameras capture the same calibration object. The following image shows a chessboard like camera calibration object in front of a dual camera system.

Error creating thumbnail: Unable to save thumbnail to destination
Model of a dual camera system capturing AprilTag calibration object.

Description

This calibrator class uses the OpenCV library calibration functions to provide the user with the ability of computing a camera's intrinsic and extrinsic calibration parameters. It also provides the possibility of computing the relation between cameras coordinate systems on a multi-camera rig, as long as all cameras capture the calibration object.

Getting started

In this section, you will find information on how to set up your environment to use this calibration method. It will also contain details on how to build a chessboard like calibration object.

Setting-up the environment

To get the environment ready for using this calibration method, you only require to install OpenCV.

The calibration object

The calibration chessboard pattern can be selected as you required, however it must be an asymmetrical chessboard pattern. Otherwise, the calibration parameters are going to be computed wrong. Make sure to take note of your pattern size in terms of how many rows and columns is it composed of, and also the width and height of the actual squares. The pattern information must be provided to the calibrator in order for it to find it.

The precision of the calibration parameters calculated is directly related to the quality of your calibration object. The higher the tolerances and the sturdier the material used for the construction of chessboard like object, the better results you will get. However, if the application is not critical, the calibration object could be build out of wood, acrylic or some sort of strong cardboard. For instance, the next image shows a chessboard like calibration object made out of a reused cardboard certificate holder.

Error creating thumbnail: Unable to save thumbnail to destination
Chessboard like calibration object made out of cardboard.

To let the calibrator know the characteristics of the chessboard pattern, you can specify the values of the variables: pattern_rows, pattern_cols, pattern_block_height and pattern_block_width on the configuration object passed to the calibrator when instantiated.



Previous: AprilTag Camera Calibration Index Next: 3D Pose Estimation