PageRenderTime 26ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/ale-0.9.0.3/doc/html-original/ALE/download/ale-0.6.0-tech/alignment/index.html

#
HTML | 191 lines | 151 code | 36 blank | 4 comment | 0 complexity | 527982ded0d8f8919f28a4bc1ce0db74 MD5 | raw file
Possible License(s): GPL-3.0
  1. <html>
  2. <title>Alignment</title>
  3. <style type="text/css">
  4. TABLE.ba { max-width: 678; text-align: center; padding-bottom: 15; padding-top: 5}
  5. TABLE.inline { padding-right: 300; clear: left}
  6. TD.text_table {padding-left: 2; padding-right: 2; border-width: 1}
  7. H2 {clear: left}
  8. P {max-width: none; padding-right: 300; clear: left}
  9. BLOCKQUOTE {padding-right: 400 }
  10. LI {max-width: 640; clear: left}
  11. P.footer {max-width: none; width: auto; padding-left: 0}
  12. P.header {max-width: none; width: auto; padding-left: 0}
  13. HR.main {max-width: 640; clear: left; padding-left: 0; margin-left: 0}
  14. HR.footer {clear: both}
  15. </style>
  16. </head><body>
  17. <table align=right valign=top width=160>
  18. <td valign=top height=600 width=160>
  19. <a href="http://auricle.dyndns.org/ALE/">
  20. <big>ALE</big>
  21. <br>
  22. Image Processing Software
  23. <br>
  24. <br>
  25. <small>Deblurring, Anti-aliasing, and Superresolution.</small></a>
  26. <br><br>
  27. <big>
  28. Local Operation
  29. </big>
  30. <hr>
  31. localhost<br>
  32. 5393119533<br>
  33. </table>
  34. <p><b>[ <a href="../">Up</a> | <a href="error/">Error Function</a> ]</b></p>
  35. <h1>Alignment</h1>
  36. ALE aligns each supplemental frame, in sequence, with the merged rendering
  37. representing all previous frames. This page outlines the three supported
  38. transformation classes, the algorithm used for alignment, and the properties of
  39. the alignment algorithm. Following this is a discussion of practical use of
  40. alignment options, including alignment classes and alignment in the case of
  41. extended renderings.
  42. <h2>Transformations</h2>
  43. <p>ALE offers three classes of transformations: </p>
  44. <table border>
  45. <tr><td>Translations</td><td>introduced in version 0.0.0</td>
  46. <tr><td>Euclidean transformations (excluding reflections)</td><td>introduced in version 0.1.0</td>
  47. <tr><td>Projective transformations</td><td>introduced in version 0.2.0</td>
  48. </table>
  49. <!-- <p>ALE uses a forward transformation to map from a supplemental frame to the
  50. accumulated image, and an inverse transformation to map from the accumulated
  51. image to the supplemental frame. Alignment operates on the parameters of the
  52. forward transformation. -->
  53. <h2>Algorithm</h2>
  54. <p>Alignment proceeds by a deterministic search, beginning with an initial
  55. transformation and modifying this transformation through a series of
  56. perturbations.
  57. <p>The initial transformation may be loaded from a file or selected by default.
  58. The default initial transformation is either the identity transformation or
  59. (when the <code>--follow</code> option is specified) the most recently merged
  60. frame's final alignment. (Note that changes in release 0.5.0 are not reflected
  61. here; these changes affect the interaction of the --follow and --trans-load
  62. flags.)
  63. <p>Once the initial transformation is determined, an initial perturbation
  64. amount is selected, and represents the step size by which each of the
  65. transformation parameters are changed. In translational or Euclidean
  66. alignment, the perturbation amount is applied to translation -- in units of
  67. pixels on the two image axes -- and rotation -- in units of degrees about the
  68. image center. (In version 0.4.8 and later, an additional configurable upper
  69. bound constrains rotational perturbation separately, preventing, e.g., a
  70. 360 degree perturbation of rotation.) In the case of projective alignment, the
  71. perturbation amount is applied to the position of the corners of the projected
  72. quadrilateral in units of pixels, where the projection is from the boundary
  73. of the supplemental image into the coordinate system of the accumulated image.
  74. <p>If possible, transformation parameters are changed to decrease the <a
  75. href="error/">error</a> between the two images being
  76. aligned. The perturbation amount is halved whenever it is determined that no
  77. parameter change of this size improves the alignment of the images. A lower
  78. bound on the perturbation amount determines when the alignment is complete.
  79. <p>The order in which parameters are considered for change is specified in the
  80. source code, and has the following property: No modified parameter is
  81. considered for further change until all other parameters have been considered.
  82. A consequence of this property is that parameters are always considered in a
  83. fixed (round robin) order.
  84. <p>When multiple levels of detail are used, the error may be calculated on
  85. images with a reduced level of detail. ALE versions 0.1.1 through 0.4.7 use a
  86. level of detail twice as fine as the perturbation amount for perturbation
  87. amounts larger than two, and full detail otherwise. Later versions default to
  88. this behavior, but can be configured differently. Earlier versions do not use
  89. reduced levels of detail.
  90. <h2>Properties</h2>
  91. <p>Several assumptions were made throughout the design and testing of the
  92. algorithm outlined above. These assumptions are outlined below.
  93. <p>The algorithm is based on a hill-climbing approach, which requires that any
  94. local minimum reachable from the starting point by traveling a path of
  95. decreasing error is also a global minimum (or, in this case, the correct
  96. alignment). While it is possible that the algorithm outlined above succeeds in
  97. some cases for which hill-climbing fails, it is still susceptible to entrapment
  98. in local minima.
  99. <p>As outlined above, depending on program options, transformation parameters
  100. may be changed by perturbations of several units (degrees or pixels) early in
  101. the alignment process. As long as no change of this magnitude moves the
  102. transformation out of the 'bowl' in which the minimum error -- and hence
  103. correct alignment -- lies, this is not a problem. However, it might break in
  104. some cases where a hill-climbing approach would succeed. (Notably, simulated
  105. annealing suffers from a similar problem, and it seems likely that a case could
  106. be constructed in such a way that the algorithm outlined above -- like
  107. simulated annealing -- could, contrarily, succeed where hill-climbing fails.)
  108. <p>Finally, the use of reduced level-of-detail relies on a high signal-to-noise
  109. ratio at low frequencies. Fortunately, this assumption seems to generally
  110. hold, but camera defects or radio interference could violate the assumption,
  111. possibly resulting in misalignment.
  112. <h2>Use of Alignment Classes</h2>
  113. <p>ALE is likely to be most useful when corresponding regions of different
  114. frames can be aligned by one of the available alignment classes.
  115. <p>As described by Steve Mann in his work on <a
  116. href="http://wearcam.org/orbits/">Video Orbits</a>, the projective
  117. transformation offers particular versatility for camera imaging of (ideal
  118. Lambertian) flat scenes. In this case, any change in camera position and
  119. orientation can be corrected as long as points always have a defined projection
  120. onto the rendering plane (for which ALE uses the base of the pyramid
  121. <b>R<sub>1</sub></b>).
  122. <p>In camera imaging of scenes with depth, correction for orientation is almost
  123. the same as for flat scenes, since, if focus and lens distortion is ignored, a
  124. scene with depth is indistinguishable from a flat scene from the perspective of
  125. a camera whose position is fixed.
  126. <p>For sequences of camera images with small changes in position or
  127. orientation, the projective transformations for alignment may closely
  128. approximate Euclidean transformations; in this case, using Euclidean
  129. transformations may achieve similar results and may require less time for
  130. alignment, since there are fewer parameters to tweak (three parameters
  131. instead of eight).
  132. <p>In the case of flatbed scanners that preserve the relative height and width
  133. of scans, any change in the position or orientation of flat objects can be
  134. corrected using the Euclidean alignment class.</p>
  135. <p>If a flatbed scanner does not preserve relative height and width, but does
  136. preserve straight lines, then any change in the position or orientation of flat
  137. objects can be corrected with the projective alignment class.
  138. <p>However, even if a transformation is within the alignment class used, the
  139. alignment algorithm may still be unable to approximate it.
  140. <h2>Alignment in the case of Extended Renderings</h2>
  141. <p>By using the --extend flag, ALE can be used to create image mosaics spanning
  142. a spatial region larger than that represented by any single image in the frame
  143. sequence. In these cases, if adjacent frames in the sequence tend to be more
  144. closely aligned with each other than they are with the original frame, it may
  145. be helpful to also use the --follow flag as a hint to the alignment algorithm.
  146. </p>
  147. <br><br>
  148. <small>
  149. </small>
  150. <hr>
  151. <i>Copyright 2002, 2003 <a href="mailto:dhilvert@auricle.dyndns.org">David Hilvert</a></i>
  152. <p>Verbatim copying and distribution of this entire article is permitted in any
  153. medium, provided this notice is preserved.
  154. </body>
  155. </html>