Default OMR Processing Mechanism
The default OMR processing mechanism is used when OMRProcessor.RecognitionEngine = Single Threshold.
Threshold
- The Threshold specifies a pixel density percentage that must be exceeded in order for the position to be considered to contain a marked bubble. If the bubble’s pixel density is the same as or below the Threshold, then the position will be considered unmarked.
- If a field comprises a single bubble, the calculation of the bubble’s marked pixel density is best performed by instructing the OMR processor to use the dimensions of the field as provided to it. Do this by setting the SingleBubbleAreaAdjustmentMethod to UseAreaWithoutAdjustment, and set the Threshold to the desired marked pixel density as a percentage of the area computed from the field’s dimensions according to the BubbleShape. If the field contains more than one bubble or segment, then the SingleBubbleAreaAdjustmentMethod does not apply and is ignored.
- In the new API, MarkScheme only changes the reporting of more than one bubble marked from a string formed from the bubbles’ values to the TooManyMarksSegmentResult string. It does not affect how the marks are found or whether they were individually reported as Marked or Unmarked in the OmrBubbleResult.
- OMR confidence is calculated per OMR segment and per OMR field as an appropriately-computed averaged confidence of all positions in the segment or field, respectively. For marked bubbles, the higher the mark density is above the Threshold value, the higher the confidence will be thereby indicating a higher level of certainty that the bubble is marked. For unmarked bubbles, the further the mark density is below the Threshold, the higher the confidence will be thereby indicating a higher level of certainty that the bubble is marked. Therefore, the confidence for unmarked bubbles decreases as the mark density approaches Threshold, and confidence for marked bubbles increases as the mark density exceeds Threshold.
- If there is more than one bubble in the segment, and MarkScheme is set to single-mark but multiple bubbles exceed the Threshold, the value TooManyMarksSegmentResult will be returned. The specific bubbles that were found to be marked can be ascertained by examining the MarkState in the OmrBubbleResult.
- The lower the Threshold value, the better the recognition engine will be able to identify marginally marked bubbles. However, raising this value enhances the recognition engine's ability to correctly identify unmarked positions. If unmarked positions in an OMR field are being incorrectly identified as marked, raise the Threshold value a percent or two at a time until testing reflects accurate results.
Analysis Comparison Method
- If the OMR AnalysisComparisonMethod is set to CompareClipToFormModel or CompareFullImageToFormModel, the OMR analysis is done by considering only the markings added to the filled-in form and excluding what’s on the form itself. This is accomplished by instructing the OMR processor to drop out the pixels within the field that exist in the form model. In this way, only pixels corresponding to marks which were added to the form by the respondent are counted. Pixels that belong to the bubble or any other markings that originated on the template form are excluded. The Threshold value needs to be set appropriately to account for those additional pixels that will be part of the marked pixel counts.
- The deprecated AnalysisComparisonMethod value of CompareFullImageToFormModel works similarly, but its use is discouraged.
- If the OMR AnalysisComparisonMethod is set to None, then the marked pixel counts will include the pixels that belong to the bubbles and the content within or next to the bubbles that originated on the template form. The Threshold value needs to be set appropriately to account for those additional pixels that will be part of the marked pixel counts.