Industrial Applications of Genetic Algorithms:Image-Calibration Transformation Matrix Solution Using a Genetic Algorithm

Previous | Table of Contents | Next

Table 2.2 shows the ranges for the final matrix for all 256 cases. Many interesting observations can be made from this data. The upper-left 2×2 section of the matrix represents the rotation about Z, the axis normal to the image, and also includes the X and Y scaling terms [4, 5]. As expected in this problem, these values are well used. The two values on the bottom to the left are the X and Y translation values, and as expected, these have the largest swing to line-up the images. The two values on the top of the rightmost column are perspective, or shearing terms. These compensate for one image being tilted away in relation to the other image. The italicized rows and columns are essentially the values from the identity matrix, which indicate that X and Z rotations, as well as the Z scaling, are not required. The deltas as seen in Table 2.3 for these locations are essentially zero. The GA can perhaps be simplified by not including these seven data values as part of the GA search space. The bottom right value is used as a weighting factor used in the mapping of the combined affine transformations into homogeneous coordinates. The range of this value is quite small, and perhaps it, too, can be left out of the GA search space, if desired.

Table 2.2 Survey of 256 final transformation matrices.
----------AVERAGES----------
.00460495973 | 0.0062431707 | 0.0000000000 | 0.0000023771
0.0027754894 | 1.0021462372 | 0.0000000000 | 0.0000052709
.00000000000 | 0.0000000000 | 0.9999999997 | 0.0000000000
.41538202893 | 10.227446414 | 0.0000000000 | 1.0029214879
----------MINIMUMS----------
.98017712897 | 0.1251674242 | 0.0000000000 | 0.0000666636
0.1097463339 | 0.9260208138 | 0.0000000000 | 0.0000396919
.0000000000 | 0.0000000000 | 0.9999999971 | 0.0000000000
180.84157368 | 164.12776121 | 0.0000000000 | 0.9864702952
----------MAXIMUMS----------
.03541033425 | 0.1476586930 | 0.0000000000 | 0.0000762130
.10043706060 | 1.0831681440 | 0.0000000000 | 0.0000623998
.0000000000 | 0.0000000000 | 1.0000000000 | 0.0000000000
81.211965406 | 23.139480799 | 0.0000000000 | 1.02629497331

In Table 2.3, the delta ranges from the initial matrix to the final matrix for all 256 cases are shown. Again, notice the seven values which are essentially zero and are ignored by the GA implementation.

Table 2.3 Survey of the deltas from the initial to the final transformation matrices.
----------AVERAGES----------
0.0081321173 | 0.00216509825 | 0.0000000000 | 0.00000237714
0.0013025826 | 0.00567339514 | 0.0000000000 | 0.00000527097
.00000000000 | 0.00000000000 | 0.0000000003 | 0.00000000000
.62671887743 | 1.98083696510 | 0.0000000000 | 0.00292148791
----------MINIMUMS----------
0.0599155533 | 0.01406627527 | 0.0000000000 | 0.00007621304
0.0402972889 | 0.02787662752 | 0.0000000000 | 0.00006239981
.00000000000 | 0.00000000000 | 0.0000000000 | 0.00000000000
0.3963635975 | 0.67255857052 | 0.0000000000 | 0.02629497331
----------MAXIMUMS----------
| 0.00467318981 | 0.0000000000 | 0.00006666364
.03698794842 | 0.00532152847 | 0.0000000000 | 0.00003969191
.00000000000 | 0.00000000000 | 0.0000000002 | 0.00000000000
.45551843191 | 17.02071723668 | 0.0000000000 | 0.01352970472

The delta range covered for each matrix location is shown in Table 2.4.

Table 2.4 Range covered from delta-minimum to delta-maximum.
----------RANGE----------
.08480952415 | 0.01873946509 | 0.0000000000 | 0.00014287669
.07728523735 | 0.03319815599 | 0.0000000000 | 0.00010209172
.00000000000 | 0.00000000000 | 0.0000000029 | 0.00000000000
.85188202946 | 7.69327580720 | 0.0000000000 | 0.03982467803

Table 2.5 Minimum and maximum value ranges as implemented.
-------MINIMUMS-------
0.06 | 0.015 | .0 | 0.000077
0.041 | 0.028 | .0 | 0.000063
.000 | .000 | .0 | .0
0.40 | 0.70 | .0 | 0.03
-------MAXIMUMS-------
.025 | .0047 | .0 | .000067
.037 | .0054 | .0 | .000040
.000 | .0000 | .0 | .0
.5 | .1 | .0 | .014

The actual minimum and maximum delta ranges implemented within the GA are shown in Table 2.5. The range was expanded slightly to ensure all of the desired values fit within the search-space. Additionally, the GA code was implemented with a global matrix scaling factor to further expand this search-space for investigation.

The GA code is used to identify a set of matrix deltas which, when added to the initial matrix, generate the T21 transformation matrix. To represent these delta range values in the GA code, each matrix delta value is represented by an N-bit string. For an N-bit string used at each matrix location, the resulting data coarseness of that value would be:

Previous | Table of Contents | Next

Copyright © CRC Press LLC