使用文本类型自动检测
自动检测会检测所识别的文本段类型。如果 RecognizerParams 对象的 TextTypes 属性被设为多个常数,自动检测则会启动。该模式主要用来识别表单。对于普通 OCR,我们建议仅在绝对必要的情况下才使用它。
自动检测开启时,ABBYY FineReader Engine 将会首先检测指定的块或块组中的文本类型(对于这些块,RecognizerParams 对象的 TextTypes 属性被设为多个常数)。ABBYY FineReader Engine 将从 TextTypes 属性中指定的常数中进行选择。该属性包含一个 TextTypeEnum 枚举常数的 OR 叠加,表示可能用于识别的文本类型。例如,如果它被设为 TT_Normal | TT_Index, ABBYY FineReader Engine 将假设文本仅包含用 ZIP 代码格式写的排字文本和数字,忽略所有其它变数。自动检测期间,ABBYY FineReader Engine 会为 TextTypes 属性中指定的所有文本类型运行识别。然后进行 OCR 结果对比,ABBYY FineReader Engine 将选择最佳结果作为最终结果。
如何使用自动检测
自动检测应该用于全部包含同一种类型文本的块集。如果必须为每个块选择单独的文本类型,您必须为每个块调用 RecognizeBlocks 方法,RecognizerParams 对象必须列出可能的文本类型。
注: 如果一个单一块包含不同类型的文本,程序将为所有文本类型运行识别,但是只会选择一种结果。因此,块内的整个文本将被识别为如同是同一类型。这就是为什么包含多种类型文本的块的识别结果可能与只包含一种类型文本的块的结果不同。为了获得更好的 OCR 结果,请为每种类型的文本单独画框。
选择文本类型集
自动检测的速度和准确度取决于 TextTypes 属性中指定的文本类型集。自动检测对于 TT_Normal、TT_Matrix、TT_Typewriter、TT_OCR_A 和 TT_OCR_B 类型的组合(可以称为“快速自动检测集”)速度最快。在此情况下,识别程序只会启动一次,OCR 期间会执行自动检测,单个词汇而不是块会被用来检查文本类型。如果只指定了一种文本类型,将不启动自动检测,Engine 将启动与指定文本类型对应的识别程序。
注: 如果 TextTypes 属性等于 TT_Matrix、TT_Typewriter、TT_OCR_A 和 TT_OCR_B 的任何组合,则不会识别斜体字和上下角标,和 RecognizerParams对象的 ProhibitItalic,ProhibitSubscript 和 ProhibitSuperscript 属性值无关。
对于“快速自动检测集”没有覆盖的文本,文本类型会按块而不是单个词汇进行检测。这意味着如果可能的文本类型集包括 TT_Normal、TT_Matrix、TT_Typewriter、TT_OCR_A 和 TT_OCR_B 之外的文本类型,则自动检测速度会减慢。在此情况下,Engine 需要执行多次初步 OCR:一次针对“快速自动检测集”中的类型,一次为针对每个额外文本类型的初步识别会话。接下来将对比结果,然后选择最佳文本类型。
重要事项! 确保将 TextTypes 属性中的文本类型数量保持在最少。
注: 如果 TextTypes 属性等于 TT_Handprinted 和 TT_Index 的任何组合,则 RecognizerParams 对象的 TrainUserPatterns 属性不可被设为 TRUE。
另请参阅
17.09.2024 15:14:41