Screenshots     Download     Pricing     Docs     Tutorials     Resources     Contact     Forum     Search  

Variable Tuning

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 Label module.

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.

7. Technique

  • 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 exists.

  • 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.

 New Post 
Variable_Tuning Related Forum PostsLast postPostsViews

© 2005 - 2017 RoboRealm. All Rights Reserved. | Contact | Privacy | Disclaimer | Link to Us |