25 December 2017
We wish you a Merry Christmas and a Happy New Year!
There are few different notions in FineReader Engine that represent the recognition confidence of each character:
- ICharacterRecognitionVariant::CharConfidence is a numerical estimate of the probability that the image does in fact represent this character. Every character recognition variant has this property.
- Also you can set the IRecognizerParams::ExactConfidenceCalculation property to TRUE, in order to define the character confidence more accurately, but please note that in this case the recognition speed may get slower.
If we go into the details of implementation, we have several classifiers: a cache, a raster, an omnifont and an outline. When we recognize the character, we do it sequentially with each classifier. If we get a high internal confidence for any classifier, we do not start the other classifiers. Thus, for the character can be obtained weight of the following classifiers (very conditionally): cache, cache + raster, cache + raster + omnifont or cache + raster + omnifont + outline. We do not start the others classifiers inside the recognizer if any classifier has output the high confidence because we have enough information for recognition needs. However, our customers often wish to compare results of recognition. For this purpose we need the external confidence of characters. The external confidence is calculated in the following way (very conditionally): (cache + raster + omnifont + outline)/4. If the weight of any classifier is not present, the external confidence will be counted inaccurately (because instead of absent classifier we will take any average value). The ExactConfidenceCalculation flag forces the program calculate weight of all classifiers for the character before count of the external confidence. It is necessary that the external confidence is identical despite the set of classifiers by which the character has been really recognized inside the recognizer.
- ICharParams::IsSuspicious is a property of 1 character. If the property is set to TRUE, the character was recognized unreliable. Otherwise the property is set to FALSE. However, note that the IsSuspicious flag set to TRUE does not always mean that the character has been recognized incorrectly, it only means that it has been recognized uncertainly.
Please find more information about the difference between the CharConfidence and the IsSuspicious properties at http://knowledgebase.abbyy.com/article/712 or in the Developer’s Help → Frequently Asked Questions → What is the difference between the CharConfidence and the IsSuspicious properties? Once again please pay your attention that the CharConfidence property does not connected directly with the recognition accuracy. The biggest part of the recognition is the usage of the context. So the right symbol recognition variant can have the low confidence, but inspire of it be the right one, in case the wrong variant will have the same confidence level or smaller.