# ViDiCheck

The ViDiCheck function allows you to create a deep learning-based verification solution, based around the Blue Locate tool's Layout Model. With this tool, you define the features to be found in your images, and associate them with a region to create a Layout Model.

The Layout Model provides the ability to check for the presence of features, and verification of the correct number of instances of one or more features in a region.

The tool returns a pass or fail status for each region in the Layout Model, along with the names of the features associated with the regions in the model.

To use the ViDiCheck function, perform the following:

1. After adding the function, open the ViDi Editor.
2. Add the images that will comprise your training set.
3. Label the features that you expect to make up your model.
4. Train the tool.
5. Add a Layout Model and configure one or more regions, along with the features expected to be within the region, and the sum of the features within the region.
6. Review your training images and verify that the results are correct.

Note: For more information about configuring the Layout Model, see the Creating a Layout Model topic.

## ViDiCheck Inputs

### General Tab

Parameter | Description
--- | ---
Image | This argument must reference a spreadsheet cell that contains a valid Image data structure; by default, the cell references A0, the cell containing the Image data structure returned by AcquireImage function.
External Fixture | Specifies a reference to a Fixture or Fixtures data structure. This fixture data will be passed into the ViDi tools, and will be used to define the views for each image. When using an external fixture, within the ViDi tool's Region of Interest (ROI), you will need to select External. Then, from the Image Database menu, select Update All Training Fixtures, and then modify the ViDi tool's ROI. You can also update the ViDi tool's reference to the external fixture data by selecting the ViDi data structure, right-click and select Update Training Fixtures.
Region | Also known as the Region of Interest (ROI), specifies the region of the image that undergoes analysis; creates an Interactive Graphics Mode that can be transformed and rotated. With this parameter selected, by pressing the Maximize Region button on the property sheet's Job Edit toolbar, the region will automatically be stretched to cover the entire image.
X | The x-offset of the origin, in fixture coordinates.
Y | The y-offset of the origin, in fixture coordinates.
Width | The dimension along the region's x-axis.
Height | The dimension along the region's y-axis.
Angle | The orientation, in fixture coordinates.
Show | Specifies the display mode for ViDiCheck tool's graphical overlays on top of the image.
0 = hide all (default) | All graphics will be hidden, except when the cell containing the ViDiCheck function is highlighted in the spreadsheet.
1 = result graphics only | The result graphics will be shown at all times.
4 = input graphics only | The input graphics will be shown at all times.
2 = input and result graphics | The input and result graphics will be displayed at all times.

### Runtime Tab

Allows access to ViDi Processing Tool Parameters that can be modified while the job is online. These parameters do not require that the tool be retrained. You can drag and drop these parameter to the spreadsheet, and publish them to the HMI for operator interaction.

## ViDiCheck Outputs

Returns | A ViDiCheck data structure, containing the results of the trained tool. The results are based on the names of the Layout Model regions contained within the tool, along with a pass/fail status for each region, along with the names of the features associated with the region.
Results | After the ViDiCheck tool has been trained, a result table can be generated, based on the ViDi Results Vision Data Access Functions, by right-clicking on the function's data structure and selecting Insert Getters. Note: When the Vision Data Access functions are automatically generated, the default setting will auto-populate the first five features to the table. If there are more than five features, you will need to manually add them to the table. If you wish to display more entries, you can expand the table by copying the last row and pasting additional rows at the end; make sure to increment the index number of any newly-pasted row so that the proper feature is indexed.
| "ViDiCheck Function Name" | View | Index | Match Index | ViDiMatch | Region Index | Check Region | Check Region Name | Expected | Actual | Region Pass | Feature Name N | Feature Name N | Feature Name N | Feature Name N | Feature Name N
❒ViDiCheck | ❒ViDiCheckResult | ❒ViDiCheckView | 0 | 0 | ❒ViDiMatch | 0 | ❒ViDiCheckRegion | Region1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0
|  |  |  |  |  | 1 | ❒ViDiCheckRegion | Region2 | 2 | 1 | 0 | 1 | 0 | 0 | 0 | 0
|  |  |  |  |  | 2 | ❒ViDiCheckRegion | Region3 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0
Function | Description
--- | ---
GetViDiCheckResult(ViDiCheck, ToolName) | Returns a ViDiCheckResult data structure, which contains all of the results from the referenced ViDiCheck function.
GetViDiCheckView(ViDiCheckResult, ViewIndex) | Returns a ViDiCheckView data structure, which extracts the results from the indexed view.
GetViDiMatch(ViDiCheckView, Match_Index) | Returns a ViDiMatch data structure, which extracts the matched model from the referenced view.
GetMatchCount(ViDiCheckView) | Returns the number of matches generated by the referenced ViDiLocateView, ViDiCheckView or ViDiReadView data structure.
GetViDiCheckRegion(ViDiMatch, Region_Index) | Returns a ViDiCheckRegion data structure, which, based on the Region Index, extracts the Layout Model region from the referenced ViDiMatch data structure.
GetString(ViDiCheckRegion) | Returns the name of the Layout Model region from the referenced ViDiCheckRegion data structure.
GetOccurences(ViDiCheckRegion) | Returns the number of features that the Layout Model region expects to encounter.
GetFeatureCount(ViDiCheckRegion) | Returns the number of features that the Layout Model region actually contains.
GetPassed(ViDiCheckRegion) | Returns a pass (1) or fail (0) based on the Expected versus Actual feature counts of the referenced Layout Model region. If the Expected equals the Actual, the function reports a pass, otherwise a fail will be reported.