Venus cloud tracking -- August 31, 2006


<- Previous page

5. Recovering flows with FITSFlow

Each of the 8 flows shown previously was used to distort test images #6 and #7, and these 16 results were input to FITSFlow in an attempt to recover the individual flows. In each case, a domain size of 25 and a range size of 75 was used, as the expected flow was less than 25 pixels in magnitude. The domain size was chosen arbitrarily, based on visual observation of the features in the test images. See the discussion below for more information about domain size selection.

1. Translation

Both test images produced the desired result. The actual flow values are dx = 10, dy = -10. Note that the recovery fails at the lower and right edges. These results are from just the initial correlation surface local maxima. No additional iterations or post-processing was performed.

2. Rotation

At left is the intial correlation result for test image 6, while the middle and right are after 25 iterations and post-processing to 2.0 standard deviations. The actual maximum magnitude of the flow was 36.20 at the corners. It is interesting to note that this maximum is just outside that which can be detected by the diagonal of the range of each flow element, which is ~35.

3. Zoom

All further flows were recovered from 25 iterations and a std-dev of 2.0. Again, the actual maximum magnitude was 36.20 at the corners, which is slightly larger than the range diagonal. These two flows should be a reminder that you must make certain that the range is large enough to find a match for the domain.

4. Dipole

The spurious vectors at left are probably due to the fact that the distorted images were zero at the 'positive' charge, as all pixels were projected out of that region rather than diminished and duplicated.

5. Skew

This pair of distorted images performed the worst, which is interesting given the simple nature of the flow. Perhaps this has something to do with shear? Also note that the small magnitude vectors in the center band appear to have greater errors than do the longer vectors at top and bottom. See below for a discussion of this effect.

6. Vortices

Equally as surprising is how well the vortical flow was recovered, although there does appear to be more magnitude error in the image with variable size features. In particular note the lack of artifacts at the saddle points. It is interesting that the recovery seems to work well with 'tidal' distortion, but not with prismatic distortion.

7. Expand & contract

Similar to the vortical flow above, there are more magnitude errors in the variable size image, while saddle points, sources, and sinks appear to do well.

8. Waves

Again it is surprising that this distortion did so poorly, given how laminar the flow is. Some kind of quantitative sensitivity analysis of this flow, and of the shear flow above, is necessary to determine the source of these errors, as we would expect both of these flow types to be common components of actual cloud images.

9. Discussion

  1. Although this analysis was primarily visual and subjective, it appears that FITSFlow does work. There are a few anomalies that need to be investigated in more detail, and a quantitative measure of how accurately the flow is recovered is also required. However, a simple sum-of-squares global error is probably not the best way to proceed. Instead, a local measure that concentrates on where and under what circumstances individual vectors are failing to work might be best. For example, this error may depend on signal strength or signal variation within a specific domain and range. Also, a robustness test based on adding Poisson or other spatially correlated noise to the input would be important to see how well the technique works on actual images.

  2. At present there is no objective way to choose a domain size, other than visually estimating the fit between domain size and average feature size. In principle, any size from the entire image (which would match nothing) down to a single pixel (which would match everything) could be tried. Ideally, the domain size should be small enough to preserve locality while containing enough image information to correctly specify the flow. FITSFlow can be adapted to use variable-size domains, if some criteria for selecting the size with respect to location can be defined. One possibility might be to perform the recovery for several grids of different sizes, and then select a vector at each point from this set of multi-scale candidates in a manner similar to that currently used to iteratively select candidates from the spatial set. Once again, it should be stressed that the range size must be chosen large enough to find a match for the domain within the magnitude of the flow.

  3. It is clear that while the recovery works well for vectors of moderate magnitude (~10-25 pixels), it does more poorly at smaller magnitudes, especially for those vectors close to a single pixel. The current correlation surface matching is performed only at integer shifts, so that all candidate vectors have integer x and y components. For small magnitude flows this is clearly inadequate. A simple solution to obtain more resolution is to enlarge the image and interpolate the added pixels. However, this has the adverse effect of slowing down the recovery at an order which is probably n^3 or more. Performing fractional shifts of the domain to generate a correlation surface might also work, but would probably be as slow. What is needed is some computationally efficient way to produce vectors with any number of significant digits, such as an iterative binary approach where a match to the nearest pixel is performed, and then a match to the nearest 1/2 pixel, the nearest 1/4 pixel, and so on as desired.


İSky Coyote 2006