The Variable Tuning module provides a way to tune variable values automatically without having to change each
variable independently. The module uses various techniques to change variable values and retest the pipeline
for success or failure due to the value changes.
Its not uncommon to have several variables that need to be tuned to accommodate different environments. Manual tuning
of these variable can be time consuming and require specific knowledge of how the variables affect the final results.
An automated solution can provide quicker and more precise results as long as the variables that need to be changed
are know and what variable indicates a success or failure situation.
Please note that while this module can be used to determine the best values for existing
variables there is NO guarantee that a solution will be found. Typical use of this module
is after at least one manual solution is found and the values need to be adapted for
use on more test cases.
1. Variable To Tune - Specify which variables are used in the pipeline to configure modules. These values will be changed
in order to test different values while recording if the final results are still successful. For example, you could use a
low_size variable in the Blob Size module as a variable to eliminate small blobs. But as you may not be sure how small
is too small, various values for this variable can be tested.
2. Min/Max Possible Values - These specify the range of possible values of the variables that would create reasonable
results. Its important to keep the range as narrow as possible as the more possible values the slower some of the
tuning processes will take. For example, removing small blobs might range from a min of 100 pixels to 5000 pixels.
3. Value Increment - While many values between the minimum and maximum possible values will create a successful solution, not
every value needs to be tested since small value changes will not change the outcome. By specifying a large increment, one
can test values between a wide range without testing each and every incremental change. For example, while we may want
to check 100 to 5000 pixels for blob sizes, we only need to check every 100 pixels so that the sizes 100, 200, 300, etc. will
be checked but not 101, 102, 103, etc.
4. Variable Containing Result - Specify the variable that will contain a value to be tested that will indicate success or
failure of the analysis. In our example above, a Blob_Count variable could be specified as the result of the Blob
5. Comparison Method, Type, Value - These selections are the same as in the If Statement module
in order to create a condition that can be used by the module to determine if the pipeline is successful or not. For example,
we can compare the Blob_Count value to be equal to 4. As long as that condition holds true the pipeline configuration is assumed
to be working.
6. Current Image or Folder - Specify where the images that are to be tested should come from. Current Image will only use
the currently loaded image. Specifying a folder will load the images in that folder for testing.
- Exhaustive - Performs an exhaustive search for correct solutions. All variables will be tested by starting with the
minimum value to the maximum value using the increment to skip values. The method will select the solution with the
most stable results and select the values in the middle of that solution. This should provide values that are most likely
to generate the correct solution with the widest amount of image variance.
- Exhaustive First - Performs an exhaustive search but terminates when the first successful solution is found ... if one
- Random - Will randomly assign values to the variables until a solution is found or the maximum number of possible
solutions are tested (to avoid running forever if a solution is not found).
- Expand Current - Assumes that a current solution exists (i.e. the variables have been manually configured or
have used one of the other methods to create one) and will search all current values to determine the low and high
range and set the middle of such a range. This allows a current solution to be better explored to determine values
that would provide the widest amount of image variance (as in exhaustive search).
The following example helps to illustrate the potential of this module. The task is to isolate the color cones
in the image. We have 4 variables that are used in the RGB_Filter
and Blob_Size modules. Using these 4 variables and the blob_count
result we wish to find the 6 cones. The result of blob_count should therefore be 6.
Download and run the example. If you un-press the Run button you will see the
full RGB image with the 6 cones. Press RUN and then double click on the Variable Tuning module. Click on Tune (bottom
left) and you will quickly see the image flicker and end up with the 6 Cones. The pipeline is set to use the Random
technique which will not provide the optimum settings but will quickly converge onto a solution. Keep clicking on the
Tune button to see other settings and potentially wrong ones.
|Variable_Tuning Related Forum Posts||Last post||Posts||Views|