other:amass:documentation:system_calibration
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
other:amass:documentation:system_calibration [2024/06/17 18:12] – created sgranger | other:amass:documentation:system_calibration [2024/07/17 15:44] (current) – created sgranger | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== System calibration ====== | ||
The calibration process involves collecting camera data of the moving wand, ensuring that the Calibrate parameters have desired values, and running the Calibrate program from the Function group in the AMASS shell. The calibration does not require any parameters of a technical nature, and the ones required are mostly self explanatory. | The calibration process involves collecting camera data of the moving wand, ensuring that the Calibrate parameters have desired values, and running the Calibrate program from the Function group in the AMASS shell. The calibration does not require any parameters of a technical nature, and the ones required are mostly self explanatory. | ||
Line 8: | Line 8: | ||
**Note. If you have trouble with the calibration process failing, please contact support@c-motion.com and send the .cen files that you collected for the calibration. Without these cen files it is very difficult to determine the cause of the calibration failure.** | **Note. If you have trouble with the calibration process failing, please contact support@c-motion.com and send the .cen files that you collected for the calibration. Without these cen files it is very difficult to determine the cause of the calibration failure.** | ||
- | ===== Parameters | + | ==== Parameters ==== |
The // | The // | ||
- | [[parameters_track.jpg]] | + | {{:parameters_track.jpg}} |
- | ==== mm /unit ==== | + | === mm /unit === |
In AMASS all distance measures are expressed in terms of a single unit of length whose size is specified through this parameter. The user should enter their size of the desired length units in millimeters. For example, if it is desired to have all output in centimeters then the required value is 10.0. The default unit length is millimeters, | In AMASS all distance measures are expressed in terms of a single unit of length whose size is specified through this parameter. The user should enter their size of the desired length units in millimeters. For example, if it is desired to have all output in centimeters then the required value is 10.0. The default unit length is millimeters, | ||
- | ==== Units name ==== | + | === Units name === |
This entry allows the user to enter the name of the length units being used. It accepts a name length of up to 20 characters, and the default name is millimeters (mm). | This entry allows the user to enter the name of the length units being used. It accepts a name length of up to 20 characters, and the default name is millimeters (mm). | ||
- | ==== Frame Increment | + | === Frame Increment === |
In situations where a large number of frames are collected for a calibration, | In situations where a large number of frames are collected for a calibration, | ||
- | ==== Maximum frames | + | === Maximum frames === |
This entry specifies the maximum frame number to be used for the calibration. An entry of zero implies all frames recorded in the //.cen// file. Note that the number of frames actually used will be influenced by the //Frame Increment// entry. | This entry specifies the maximum frame number to be used for the calibration. An entry of zero implies all frames recorded in the //.cen// file. Note that the number of frames actually used will be influenced by the //Frame Increment// entry. | ||
- | ==== Cameras to use ==== | + | === Cameras to use === |
Occasionally it may be useful to exclude one or more cameras from the calibration because a camera is malfunctioning, | Occasionally it may be useful to exclude one or more cameras from the calibration because a camera is malfunctioning, | ||
- | ==== ViewLin | + | === ViewLin === |
Check this box if you want ViewLin to run automatically after every calibration. | Check this box if you want ViewLin to run automatically after every calibration. | ||
- | ==== Reference marker file ==== | + | === Reference marker file === |
This entry holds the full name of the file that contains the x, y, and z coordinates of the static Reference markers that will be used to translate the calibration data to the desired Global Coordinate System. You may browse for an existing //.ref// file or create a new one. | This entry holds the full name of the file that contains the x, y, and z coordinates of the static Reference markers that will be used to translate the calibration data to the desired Global Coordinate System. You may browse for an existing //.ref// file or create a new one. | ||
Line 52: | Line 52: | ||
If, for example, the centroids of all markers are at a height of 20 mm, the z-component of each row should have the value 20. | If, for example, the centroids of all markers are at a height of 20 mm, the z-component of each row should have the value 20. | ||
- | === No Reference Marker File === | + | == No Reference Marker File == |
The system will calibrate without any reference marker file, i.e. .ref file and provide a default global system defined by the first three camera locations. Any time there is a ref file with recognized maker distribution, | The system will calibrate without any reference marker file, i.e. .ref file and provide a default global system defined by the first three camera locations. Any time there is a ref file with recognized maker distribution, | ||
Line 61: | Line 61: | ||
- | === Example .ref file === | + | == Example .ref file == |
An example reference file for an L-Frame that has four markers. | An example reference file for an L-Frame that has four markers. | ||
Line 67: | Line 67: | ||
Comment line 30.0 20.0 49.5 130.0 20.0 49.5 260.0 20.0 49.5 20.0 260.0 49.5 | Comment line 30.0 20.0 49.5 130.0 20.0 49.5 260.0 20.0 49.5 20.0 260.0 49.5 | ||
- | ===== The wand ===== | + | ==== The wand ==== |
An AMASS calibration wand must be used to perform the calibration. It consists of a tensioned cable on which is mounted six markers spaced more or less evenly. A seventh marker is attached to the frame tensioning the cable. The function of extra marker is to better define the orientation of the wand about the axis of the cable, but it is not used in the final calibration computation and has no effect on the final system accuracy. The tensioned cable scheme generally provides the maximum unobstructed views of the markers, and the tension in the cable is sufficient to make it behave as a rigid body. The resulting calibration can thus be made free of wand distortion and reduced marker obscuring artifacts, providing the highest degree of confidence in the resulting camera calibration parameters. | An AMASS calibration wand must be used to perform the calibration. It consists of a tensioned cable on which is mounted six markers spaced more or less evenly. A seventh marker is attached to the frame tensioning the cable. The function of extra marker is to better define the orientation of the wand about the axis of the cable, but it is not used in the final calibration computation and has no effect on the final system accuracy. The tensioned cable scheme generally provides the maximum unobstructed views of the markers, and the tension in the cable is sufficient to make it behave as a rigid body. The resulting calibration can thus be made free of wand distortion and reduced marker obscuring artifacts, providing the highest degree of confidence in the resulting camera calibration parameters. | ||
- | [[Wand_3_small.JPG]] | + | [[File:Wand_3_small.JPG|{{/ |
Even though the cable markers are quite evenly spaced, there are subtle differences in their locations in relation to each other. After an initial crude calibration the relative marker position measurements are refined sufficiently to enable the subtle differences to be measured, and the program attempts to identify the marker distribution as belonging to one of the wands distributed by ADTech. If the wand cannot be identified then it is assumed that there were some deficiencies in the wand motions, camera setup, or data capture, and the calibration is aborted. This technique ensures that a successful calibration guarantees high accuracy. | Even though the cable markers are quite evenly spaced, there are subtle differences in their locations in relation to each other. After an initial crude calibration the relative marker position measurements are refined sufficiently to enable the subtle differences to be measured, and the program attempts to identify the marker distribution as belonging to one of the wands distributed by ADTech. If the wand cannot be identified then it is assumed that there were some deficiencies in the wand motions, camera setup, or data capture, and the calibration is aborted. This technique ensures that a successful calibration guarantees high accuracy. | ||
- | ==== Marker Alignment | + | === Marker Alignment === |
- | [[BlackDot.jpg]] | + | {{:BlackDot.jpg}} |
The black dot on each marker must point towards the wand structure. | The black dot on each marker must point towards the wand structure. | ||
Line 87: | Line 87: | ||
To properly align the dots, the wand must be twisted in the correct direction. While facing the expanded wand, with the fixed arm to the left and the rotating free arm to the right, note the direction the dots are twisting. If the dots are rotating away (to the front up back down) rotate the free end towards you. If the dots are twisting away (to the back up front down), rotate the free end away from you. Depending on how twisted the wand has become, it may be necessary to rotate the wand multiple times until all dots are facing the wand structure. | To properly align the dots, the wand must be twisted in the correct direction. While facing the expanded wand, with the fixed arm to the left and the rotating free arm to the right, note the direction the dots are twisting. If the dots are rotating away (to the front up back down) rotate the free end towards you. If the dots are twisting away (to the back up front down), rotate the free end away from you. Depending on how twisted the wand has become, it may be necessary to rotate the wand multiple times until all dots are facing the wand structure. | ||
- | ==== Wand size ==== | + | === Wand size === |
The size of the volume that you wish to calibrate will determine the wand size that is needed. The largest wand currently available is 1000mm between outside markers, and it typically uses 25.4mm markers. Wands scaled to ½, ¼, and 1/8th sizes are also available, as are custom sized wands by special order. | The size of the volume that you wish to calibrate will determine the wand size that is needed. The largest wand currently available is 1000mm between outside markers, and it typically uses 25.4mm markers. Wands scaled to ½, ¼, and 1/8th sizes are also available, as are custom sized wands by special order. | ||
Line 95: | Line 95: | ||
It should be noted that the calibration does not assume any specific lens model for optical distortions and is capable of computing accurate parameters even for lenses that show extreme distortions (of at least up to 10%). | It should be noted that the calibration does not assume any specific lens model for optical distortions and is capable of computing accurate parameters even for lenses that show extreme distortions (of at least up to 10%). | ||
- | ===== Data capture | + | ==== Data capture ==== |
- | ==== Preparation | + | === Preparation === |
- | ==== Wand motions | + | === Wand motions === |
The motions of the wand are critical in providing a successful (and good) calibration because the wand image data constitute the only input to the calibration. The motions should be smooth and continuous, and at a comfortable speed. It is also important to rotate the wand about the handle as it is moved, but not continuously in one direction. Movement speed will be somewhat dependent on the frame rate of the camera system. For systems with frame rates 100 fps or above, the wand can be moved fairly quickly, but for 30 fps or less the motions should be slower. | The motions of the wand are critical in providing a successful (and good) calibration because the wand image data constitute the only input to the calibration. The motions should be smooth and continuous, and at a comfortable speed. It is also important to rotate the wand about the handle as it is moved, but not continuously in one direction. Movement speed will be somewhat dependent on the frame rate of the camera system. For systems with frame rates 100 fps or above, the wand can be moved fairly quickly, but for 30 fps or less the motions should be slower. | ||
Line 107: | Line 107: | ||
The goal of the movement is to have the wand in all orientations at every location in the 3D volume. This is obviously not possible, but the user should endeavor to rotate the wand in all 3D orientations throughout the motion capture volume. | The goal of the movement is to have the wand in all orientations at every location in the 3D volume. This is obviously not possible, but the user should endeavor to rotate the wand in all 3D orientations throughout the motion capture volume. | ||
- | ==== Number of frames | + | === Number of frames === |
The number of frames required for a good calibration will depend on a several factors including the camera system’s frame rate and the size of the volume being calibrated. For standard video systems collecting data at rates of 50 – 100 fps, between 1000 and 2000 frames are recommended. This number may need to be increased if the cameras observe many “junk” markers, there are many marker merges in the camera images, or more time is required to move the wand through all parts of the measurement volume. For very high frame rates you may wish to specify the use of every other, or every third frame for the calibration computation. Do not use a calibration performed at one frame rate for tracking data collected at a different frame rate because quite often camera characteristics depend upon the frame rate settings. | The number of frames required for a good calibration will depend on a several factors including the camera system’s frame rate and the size of the volume being calibrated. For standard video systems collecting data at rates of 50 – 100 fps, between 1000 and 2000 frames are recommended. This number may need to be increased if the cameras observe many “junk” markers, there are many marker merges in the camera images, or more time is required to move the wand through all parts of the measurement volume. For very high frame rates you may wish to specify the use of every other, or every third frame for the calibration computation. Do not use a calibration performed at one frame rate for tracking data collected at a different frame rate because quite often camera characteristics depend upon the frame rate settings. | ||
- | ==== Reference markers | + | === Reference markers === |
From the above discussion it should be obvious that complete coverage of the measurement volume with the wand is essential for reliable measurements. Of special concern should be static reference markers locations, because if they do not fall inside of the calibration volume they will not be reconstructed and cannot be used to define the Global Coordinate System. If they are at floor level, care should be taken to ensure that the wand is moved close to the floor and in the vicinity of every static marker. | From the above discussion it should be obvious that complete coverage of the measurement volume with the wand is essential for reliable measurements. Of special concern should be static reference markers locations, because if they do not fall inside of the calibration volume they will not be reconstructed and cannot be used to define the Global Coordinate System. If they are at floor level, care should be taken to ensure that the wand is moved close to the floor and in the vicinity of every static marker. | ||
Line 117: | Line 117: | ||
See [[# | See [[# | ||
- | ===== Camera interdependence | + | ==== Camera interdependence ==== |
This section points out an important aspect of the calibration process. The only input to the calibration is the image marker locations digitized from all cameras. Initially the system has no knowledge of camera locations or wand locations. Each camera’s location can be estimated from the image coordinates of the markers it sees and the assumed location of those markers in the 3D space. However, we need to use all of the other cameras to compute the markers’ locations in 3D space, meaning that errors in another camera can affect the calibration of our camera. Through an iterative process and use of data from many frames the computation deletes outliers and converges on a set of calibration parameters (camera positions and orientations, | This section points out an important aspect of the calibration process. The only input to the calibration is the image marker locations digitized from all cameras. Initially the system has no knowledge of camera locations or wand locations. Each camera’s location can be estimated from the image coordinates of the markers it sees and the assumed location of those markers in the 3D space. However, we need to use all of the other cameras to compute the markers’ locations in 3D space, meaning that errors in another camera can affect the calibration of our camera. Through an iterative process and use of data from many frames the computation deletes outliers and converges on a set of calibration parameters (camera positions and orientations, | ||
Line 123: | Line 123: | ||
The recommendation is that problems with individual cameras that demonstrate large residuals, or low ray or frame counts, should be rectified, and the data capture for the calibration should be repeated. Alternately, | The recommendation is that problems with individual cameras that demonstrate large residuals, or low ray or frame counts, should be rectified, and the data capture for the calibration should be repeated. Alternately, | ||
- | ==== Cameras seeing other cameras | + | === Cameras seeing other cameras === |
AMASS allows cameras to see other cameras without masking the 2D imagae. | AMASS allows cameras to see other cameras without masking the 2D imagae. | ||
Line 135: | Line 135: | ||
If you track with a minimum of 3 cameras, all of the short stuff goes away, and we recommend using that when necessary. | If you track with a minimum of 3 cameras, all of the short stuff goes away, and we recommend using that when necessary. | ||
- | ===== ViewLin | + | ==== ViewLin ==== |
A successful calibration’s results may be viewed by the ViewLin program. The user is presented with the screen shown below. The main graphics view shows the area of a camera’s image that was calibrated, with the grid indicating the lens distortions present for the particular camera. | A successful calibration’s results may be viewed by the ViewLin program. The user is presented with the screen shown below. The main graphics view shows the area of a camera’s image that was calibrated, with the grid indicating the lens distortions present for the particular camera. | ||
- | [[a10.png]] | + | {{:a10.png}} |
- | ==== Items in group box ==== | + | === Items in group box === |
The first line indicates the name of the file the calibration created. The first item in the second line displays the time of capture of the .cen file used for the calibration, | The first line indicates the name of the file the calibration created. The first item in the second line displays the time of capture of the .cen file used for the calibration, | ||
Line 159: | Line 159: | ||
Here it should also be pointed out that a calibration with a smaller number of frames may have smaller residual values than one with a large number of frames, yet the calibration will usually be less accurate. The reason is that it is easier to fit the many camera system parameters to a smaller number of input data point because the calibration is minimizing the overall residuals of all rays. It biases the resulting calibration to produce very low residuals at the participating points, at the expense of locations that are elsewhere in the volume where the residuals may be quite high. | Here it should also be pointed out that a calibration with a smaller number of frames may have smaller residual values than one with a large number of frames, yet the calibration will usually be less accurate. The reason is that it is easier to fit the many camera system parameters to a smaller number of input data point because the calibration is minimizing the overall residuals of all rays. It biases the resulting calibration to produce very low residuals at the participating points, at the expense of locations that are elsewhere in the volume where the residuals may be quite high. | ||
- | ==== Camera list box ==== | + | === Camera list box === |
This area provides some results for individual cameras, as well as letting the user select the camera whose linearity grid is to be displayed in the main graphics area. | This area provides some results for individual cameras, as well as letting the user select the camera whose linearity grid is to be displayed in the main graphics area. | ||
Line 169: | Line 169: | ||
**% Image:** The percentage of the camera’s image area that was successfully calibrated. Any marker image falling outside the shown grid area will be ignored during tracking when this calibration is used. | **% Image:** The percentage of the camera’s image area that was successfully calibrated. Any marker image falling outside the shown grid area will be ignored during tracking when this calibration is used. | ||
- | ==== Reference points | + | === Reference points === |
This list box provides a report on the reference markers that were used to define the Global Coordinate System in which all marker trajectories will be expressed. | This list box provides a report on the reference markers that were used to define the Global Coordinate System in which all marker trajectories will be expressed. | ||
Line 181: | Line 181: | ||
If reference marker coordinates are provided but less than three reference points are be found, the calibration program provides the option of saving the calibration. In that case the resulting GCS is defined as follows; camera 1 is at the origin, the line from camera 1 to camera 2 is the x-axis, and camera 3 lies in the positive y of the x-y plane. If there are only two cameras then orientation of the x-y plane is arbitrary. | If reference marker coordinates are provided but less than three reference points are be found, the calibration program provides the option of saving the calibration. In that case the resulting GCS is defined as follows; camera 1 is at the origin, the line from camera 1 to camera 2 is the x-axis, and camera 3 lies in the positive y of the x-y plane. If there are only two cameras then orientation of the x-y plane is arbitrary. | ||
- | ==== Button Controls | + | === Button Controls === |
**Close:** Closes the ViewLin program. | **Close:** Closes the ViewLin program. | ||
Line 192: | Line 192: | ||
**Delete:** Deletes the currently displayed calibration file. | **Delete:** Deletes the currently displayed calibration file. | ||
- | |||
- | |||
other/amass/documentation/system_calibration.1718647968.txt.gz · Last modified: 2024/06/17 18:12 by sgranger