Changes between Version 16 and Version 17 of Tutorial/CorrelationImageVelocimetryOptimisation


Ignore:
Timestamp:
Jan 28, 2015, 4:53:07 PM (10 years ago)
Author:
vaillant1p
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Tutorial/CorrelationImageVelocimetryOptimisation

    v16 v17  
    22
    33= [wiki:Tutorial] / Correlation Image Velocimetry: optimisation of parameters =
    4 To improve the results from the previous tutorial, open again in the GUI '''series, '''and enter the file ''frame_1.png'' in ''UVMAT_DEMO01_pair/images. S''elect the ACTION 'civ_series' which opens the new GUI '''civ_input'''''''. You may import existing processing  parameters by pushing the button [[wiki:ImportParam !ImportParam]] at the top left of the GUI '''civ_input''': open the parameter file ''images.civ/0_XML/frame_1.xml'' in the browser, or fill the GUI by hand as follows.
     4To improve the results from the previous tutorial, open again in the GUI '''series, '''and enter the file ''frame_1.png'' in ''UVMAT_DEMO01_pair/images. S''elect the ACTION 'civ_series' which opens the new GUI '''civ_input'''''''. You may import existing processing  parameters by pushing the button [!ImportParam] at the top left of the GUI '''civ_input''': open the parameter file ''images.civ/0_XML/frame_1.xml'' in the browser, or fill the GUI by hand as follows.
    55
    66== Time interval ==
     
    88
    99== Civ1 parameters ==
    10 Once the image pair has been chosen, the next parameter is  the size of the correlation box in both directions ('''[num_!CorrBoxSize]_1]''' and '''_2'''),  expressed in pixels. A smaller box of course improves the spatial resolution but it involves less statistics and false vectors may result from holes in the particle seeding. The particles are densely packed in this example, so we can significantly reduce the size from the default value [25,25] to [19,13]  (in image pixels).  The use of a elongated box along ''x'' allows to optimize  the resolution in the direction ''y'', to deal with the transverse shear.
     10Once the image pair has been chosen, the next parameter is  the size of the correlation box in both directions ('''[num_!CorrBoxSize]_1]''' and '''_2'''),  expressed in pixels. A smaller box of course improves the spatial resolution but it involves less statistics and false vectors may result from holes in the particle seeding. The particles are densely packed in this example, so we can significantly reduce the size from the default value [25 25] to [19 13]  (in image pixels).  The use of a elongated box along ''x'' allows to optimize  the resolution in the direction ''y'', to deal with the transverse shear.
    1111
    1212The next parameters are  ('''[num_!SearchBoxSize_1]''' and '''_2''') and '''[num_SearchBoxShift_1]''', and '''_2''', which determine the box in which the sub-image of the first frame is allowed to move to match the second frame. This can be adjusted from a prior estimate of the extrema of each velocity  component (expressed in pixel displacement). Introduce   [min, max] =[ -2; 6] for ’u’ and [-3; 3] for ’v’, and  press the  button '''[Search Range]'''. The optimum search ranges and shifts (for the given correlation box) are  now displayed: [33 25] and [2 0] respectively.
     
    1818To observe the influence of the search box, come back to the GUI civ_input, set '''[!CorrBoxSize]'''=[19 13] and '''[!SearchBoxSize]'''=[27 25] with '''[Shift]'''=0, and visualise the result with '''uvmat'''.  Many black vectors (F=-2) are obtained, showing that the search domain  is too small, so that the correlation maximum is constrained by the  limited search interval. Using  '''[!TestCiv1]''' , it can be seen that the correlation maximum is indeed at the edge of the Search box in the main flow with u$\simeq$4 (while a gap of 2 pixels is required to properly determine the maximum without edge effect).
    1919
    20 The parameter '''[num_!CorrSmooth]''' is used to fit the correlation data with a Gaussian function to obtain the maximum with sub-pixel precision. We generally keep the default value 1, while the value 2 should be more appropriate for larger particles (with wider correlation maximum). The quality of this feature can be tested by taking the image autocorrelation, selecting the option 'displacement' instead of 'PIV' in the menu '''[wiki:ListCompareMode "[!ListCompareMode]"]''' of '''civ_input'''. Then run the civ1 computation with '''series'''. Visualise the velocity field with uvmat: it is very close to 0 as expected but the histogram of the error can be estimated with the Tool/rectangle.  The curve exported from view_field is shown in figure **, comparing '''[wiki:CorrSmooth !CorrSmooth]='''1 and 2'''. '''We see that the histogram is somewhat more narrow for[https://servforge.legi.grenoble-inp.fr/projects/soft-uvmat/search?q=wiki%3ACorrSmooth !CorrSmooth]=1, corresponding to a slightly better result, but the typical error of the order of 0.1 px in both cases. ''''''
     20The parameter '''[num_!CorrSmooth]''' is used to fit the correlation data with a Gaussian function to obtain the maximum with sub-pixel precision. We generally keep the default value 1, while the value 2 should be more appropriate for larger particles (with wider correlation maximum). The quality of this feature can be tested by taking the image autocorrelation, selecting the option 'displacement' instead of 'PIV' in the menu '''[!ListCompareMode]''' of '''civ_input'''. Then run the civ1 computation with '''series'''. Visualise the velocity field with uvmat: it is very close to 0 as expected but the histogram of the error can be estimated with the Tool/rectangle.  The curve exported from view_field is shown in figure **, comparing '''[!CorrSmooth]'''=1 and 2'''. '''We see that the histogram is somewhat more narrow for '''[!CorrSmooth]'''=1, corresponding to a slightly better result, but the typical error of the order of 0.1 px in both cases. ''''''
    2121
    2222The parameters '''[num_Dx]''' and '''[num_Dy] '''define the mesh of the measurement grid, in pixels. Reduce them to get more vectors, but keep in mind that the spatial resolution is anyway limited by the size of the correlation box, so that velocity vectors become redondant when the sub-images highly overlap those of the neighboring vector. Then the choice Dx=Dy=10, about half the correlation box, provides a good optimum.
     
    3030Select the ’'''PATCH1'''’ operation, to interpolate the vectors and calculate spatial derivatives. First choose the default parameters, press OK, run the caluclation and visualise with uvmat. We observe that a few erratic vectors have been flagged as false (painted in magenta).
    3131
    32 Two fields can be visualised, as selected by the menu '''[!!VelType]''' in the upper part of '''uvmat''': the initial field 'civ1' and the smoothed one 'filter1', obtained by the spline interpolation/smoothing of PATCH1. Select the option 'blank' in the menu''' [! TransformName] '''(on the left side of uvmat), to observe fields as displacement in pixel units (not physical coordinates), which is the appropriate option to analyse PIV features.
     32Two fields can be visualised, as selected by the menu '''[!!VelType]''' in the upper part of '''uvmat''': the initial field 'civ1' and the smoothed one 'filter1', obtained by the spline interpolation/smoothing of PATCH1. Select the option 'blank' in the menu''' [!TransformName] '''(on the left side of uvmat), to observe fields as displacement in pixel units (not physical coordinates), which is the appropriate option to analyse PIV features.
    3333
    34 The difference between the two fields can be directly visualized by selecting 'civ1' in the menu  '''[!!VelType]''' and 'filter1' in the menu  '''[! VelType_1] '''just below'''.''' Adjust the scale [num_!!VecScale] (value 10 for instance) to better see the difference.  This is rather small (0.1 px) and erratic, except in the strong shear close to the cylinder, where it reaches a value about 0.3, so the smoothing properly reduces the noise without excessive perturbation of the velocity field itself. You can also use the scalar representation, selecting the field 'U' for both 'civ1' and 'filter1'. Projection on a line (as described in tutorial  2) is also useful to get field values on a plot.''' '''
     34The difference between the two fields can be directly visualized by selecting 'civ1' in the menu  '''[!!VelType]''' and 'filter1' in the menu  '''[!VelType_1] '''just below'''.''' Adjust the scale [num_!!VecScale] (value 10 for instance) to better see the difference.  This is rather small (0.1 px) and erratic, except in the strong shear close to the cylinder, where it reaches a value about 0.3, so the smoothing properly reduces the noise without excessive perturbation of the velocity field itself. You can also use the scalar representation, selecting the field 'U' for both 'civ1' and 'filter1'. Projection on a line (as described in tutorial  2) is also useful to get field values on a plot.''' '''
    3535
    3636Repeat the operations by choosing the value 100 for '''[!FieldSmooth]''' instead of the default value 10. Now the smoothing effect is quite clear, widening the shear region at the edge of the cylinder.
    3737
    38 Now come back to the default value 10, and press the button [wiki:TestPach [!TestPatch]1]. This will perform patch calculations with a range of values for the smoothing parameters, and provide the rms difference between the filtered velocity field and the initial Civ1 field. This ranges from 0.12, [wiki:FieldSmooth !FieldSmooth]=1, to more than 0.2 for [https://servforge.legi.grenoble-inp.fr/projects/soft-uvmat/search?q=wiki%3AFieldSmooth !FieldSmooth]=100. The value 0.15 for [https://servforge.legi.grenoble-inp.fr/projects/soft-uvmat/search?q=wiki%3AFieldSmooth !FieldSmooth]=10 is less that the expected error on the PIV, about 0.2 pixel.
     38Now come back to the default value 10, and press the button '''[!TestPatch1]'''. This will perform patch calculations with a range of values for the smoothing parameters, and provide the rms difference between the filtered velocity field and the initial Civ1 field. This ranges from 0.12, '''[!FieldSmooth]'''=1, to more than 0.2 for '''[!FieldSmooth]'''=100. The value 0.15 for '''[!FieldSmooth]'''=10 is less that the expected error on the PIV, about 0.2 pixel.
    3939
    4040**Figure: GUI civ_input + graphe obtenu par !!TestPatch.
     
    4242This test also provides the proportion of excluded vectors (marqued as false) by the criterion of the excessive difference between the Civ1 value and the filtered one, which is attributed to false vectors. The threshold (expressed in pixels) is given by the box '''[num_!!MaxDiff]'''. The result obtained  with the default value 1.5 is about 2 %, so that most vectors are preserved. Repeating the test  with a higher value, for instance 10, logically reduces the number of rejected vectors, but significantly increases the rms difference: the interpolation is perturbed by a few erratic vectors.
    4343
    44 The last parameter for Patch1 is [num_! SubDomainSize] which corresponds to a partition in subdomains for the spline calculation, in order to avoid computer memory overflow in  the spline calculation. In this case the default choice 100 leads to a single domain.
     44The last parameter for Patch1 is '''[num_!SubDomainSize]''' which corresponds to a partition in subdomains for the spline calculation, in order to avoid computer memory overflow in  the spline calculation. In this case the default choice 100 leads to a single domain.
    4545
    4646== Civ2, Fix2 and Patch2 ==
     
    5151The parameter '''[deformation]''' (check box) improves the prior estimate by deforming the subimage taking into account the velocity gradients, so it can improve the processing in zones of strong shear or strong rotation, like vortex cores. It involves an interpolation of the sub-images to perform the deformation.
    5252
    53 Fix2 and Patch2 act on the Civ2 results like Fix1 and Patch1 on the Civ1 results. Choose a smaller smoothing parameter [wiki:FieldSmooth !FieldSmooth]=2, to limitate systematic smoothing effects in the final result.
     53Fix2 and Patch2 act on the Civ2 results like Fix1 and Patch1 on the Civ1 results. Choose a smaller smoothing parameter '''[!FieldSmooth]'''=2, to limitate systematic smoothing effects in the final result.
    5454
    5555The final vorticity field can be observed in the following figure, in which the  vorticity roll up in the wake of the cylinder is clearly visible. A zoom  near a vortex shows the vorticity superposed with velocity vectors.
    5656
    57 A cut of the velocity along a transverse line x=250, y from 0 to 300 (in pixel coordinates), provides a good representation of the strong velocity shear in the wake of the cylinder. This can be done by displaying the velocity field filter2, open set_object/line, choose ! ProjMode=inter_tps, Mesh=2 to get the profile with spline interpolation from filter2. Then select hold on on the GUI view_field and repeat the same cut with the field 'civ2', '''!!ProjMode'''='projection'. We can then compare the civ2 measurement points to the interpolation, showing some fluctuations are smoothed out but without widening of the strong shear zone. The result has been exported in figure **, using the menu bar tool '''[Export/extract figure] '''in '''view_field'''.  The typical precision can be estimated from the scattering of the points as +-0.1 px, with typically 5-10 pixels in spatial resolution.
     57A cut of the velocity along a transverse line x=250, y from 0 to 300 (in pixel coordinates), provides a good representation of the strong velocity shear in the wake of the cylinder. This can be done by displaying the velocity field filter2, open set_object/line, choose '''[!ProjMode]'''=inter_tps, '''Mesh'''=2 to get the profile with spline interpolation from filter2. Then select hold on on the GUI view_field and repeat the same cut with the field 'civ2', '''!!ProjMode'''='projection'. We can then compare the civ2 measurement points to the interpolation, showing some fluctuations are smoothed out but without widening of the strong shear zone. The result has been exported in figure **, using the menu bar tool '''[Export/extract figure] '''in '''view_field'''.  The typical precision can be estimated from the scattering of the points as +-0.1 px, with typically 5-10 pixels in spatial resolution.
    5858
    5959  [[Image(vort_civ3-2.jpg)]] [[Image(vort_vel_zoom.jpg)]]
     
    6161= Other Example: =
    6262== Further Civ iterations ==
    63   The result can be improved again by performing a third civ iteration, civ3. For that purpose, select only the ’'''civ2'''’, ’'''fix2'''’ and ’'''patch2'''’ operations with the same parameters as previously. The previous result is now considered as ’'''civ1'''’, so set CIV as the subdirectory in the edit window '''[[https://servforge.legi.grenoble-inp.fr/projects/soft-uvmat/search?q=wiki%3ASubDirCiv SubDirCiv]1]'''. Select a new subdirectory name, for instance ’CIV3’ in the edit window '''[[https://servforge.legi.grenoble-inp.fr/projects/soft-uvmat/search?q=wiki%3ASubDirCiv SubDirCiv]2]'''. Further iterations could be similarly performed, but the improvement becomes negligible.
     63  The result can be improved again by performing a third civ iteration, civ3. For that purpose, select only the ’'''civ2'''’, ’'''fix2'''’ and ’'''patch2'''’ operations with the same parameters as previously. The previous result is now considered as ’'''civ1'''’, so set CIV as the subdirectory in the edit window '''[SubDirCiv1]'''. Select a new subdirectory name, for instance ’CIV3’ in the edit window '''[SubDirCiv2]'''. Further iterations could be similarly performed, but the improvement becomes negligible.