Acciones RecognitionOCRA

La biblioteca de acción OCR_A realiza un reconocimiento de página completa y de nivel de campo de las imágenes.

La biblioteca de acciones OCR/A proporciona acciones que ejecutan un reconocimiento de página completa a nivel de campo, la creación de archivos PDF y otras operaciones utilizando el motor OCR/A.

Se puede realizar el reconocimiento a nivel de página y campo y, a continuación, se puede procesar realizando acciones en otras bibliotecas de acciones para finalmente mostrarlo al usuario para su verificación o exportarlo a sistemas de archivos o repositorios externos.

Se puede reconocer la impresión a máquina y la impresión manual. No se da soporte al texto en cursiva.

Se recomienda encarecidamente consultar el documento "Métodos recomendados para el reconocimiento de texto óptimo en IBM Datacap" para descubrir cómo obtener los mejores resultados del reconocimiento.

Idiomas soportados

Se debe establecer el idioma esperado para el correcto reconocimiento. Si una página puede contener varios idiomas, la detección de idioma permitirá reconocer varios idiomas. La especificación de idiomas que no estén en la página puede reducir la calidad del reconocimiento. Cuando el proceso OCR se completa, se genera un informe sobre el número de idiomas detectados (y el número total de palabras detectadas para cada idioma). Este informe se almacena en el DCO de tiempo de ejecución como variables, y también se puede encontrar en el archivo XML de diseño.

Para habilitar la detección automática de idioma:
  • Utilice rrSet o una acción similar para establecer la variable "y_lg" en una lista de coma separada de al menos tres idiomas de la sección "Idiomas soportados por detección automática" a continuación.
  • Después de especificar la lista de idiomas, invoque una acción de reconocimiento como, por ejemplo, RecognizePage, Recognize, RecognizePageFields, etc.

Nota: se recomienda que la lista de idiomas se minimice a los idiomas que se espera que procese la aplicación. Esto se debe a que cuantos más idiomas se especifiquen, más lento será el proceso, lo que puede reducir la calidad del reconocimiento si se especifican idiomas que no están en la página.

Idiomas soportados por detección automática

Importante: cuando establezca la lista de idiomas separados por comas, asegúrese de que el idioma esté escrito exactamente como se escribe a continuación y sin espacios. Un nombre de idioma que no sea válido hará que la acción se cancele. El texto que sigue a los dos puntos (:) es informativo y no se debe incluir en la especificación de idioma. Los idiomas que también admiten la impresión manual se indican con ICR.
  • Afrikaans: ICR
  • Agul
  • Albanian: ICR
  • Arabic: Árabe (Arabia Saudí)
  • ArmenianWestern: Armenio (Occidental)
  • AzeriLatin: Azerbaijani (Latín), ICR
  • Bashkir: ICR
  • Bulgarian: ICR
  • Catalan: ICR
  • ChinesePRC: Chino simplificado
  • ChineseTaiwan: Chino tradicional
  • Croatian: ICR
  • Czech: ICR
  • Danish: ICR
  • Dutch: Países Bajos, ICR
  • DutchBelgian: Bélgica, ICR
  • English: ICR
  • Esperanto
  • Estonian: ICR
  • Finnish: ICR
  • French: ICR
  • German: ICR
  • GermanLuxembourg: Alemán (Luxemburgo), ICR
  • GermanNewSpelling: Alemán (nueva ortografía), ICR
  • Greek: ICR
  • Hebrew
  • Hungarian: ICR
  • Indonesian: ICR
  • Irish: ICR
  • Italian: ICR
  • Japanese
  • JapaneseModern: Juego de caracteres ampliado que incluye caracteres del inglés
  • Korean
  • Korean+English: Coreano e inglés
  • KoreanHangul: Coreano (Hangul)
  • Latin: ICR
  • Latvian: ICR
  • Lithuanian: ICR
  • Mathematical: símbolos matemáticos ingleses y comunes, por ejemplo, ±¼½¾×÷ΣΩαβ≈≠≡≤≥≪≫etc.
  • Norwegian: NorwegianNynorsk y NorwegianBokmal, ICR
  • NorwegianBokmal: Noruego (Bokmal), ICR
  • NorwegianNynorsk: Noruego (Nynorsk), ICR
  • OldEnglish: ICR
  • OldFrench: ICR
  • OldGerman: ICR
  • OldItalian: ICR
  • OldEspañol: ICR
  • Polish: ICR
  • PortugueseBrazilian : Portugués (Brasil), ICR
  • PortugueseStandard : Portugués (Portugal), ICR
  • Romanian: ICR
  • RussianOldSpelling
  • Russian: ICR
  • RusanWithAccent: Ruso (con tildes para marcar la posición del acento)
  • Slovak: ICR
  • Slovenian: ICR
  • Spanish: ICR
  • Swedish: ICR
  • Tatar
  • Thai
  • Turkish: ICR
  • Ukrainian: ICR
  • Vietnamese

El idioma se puede enlazar al objeto DCO seleccionándolo en la pestaña OCR_A en la pestaña Zonas de Datacap Studio. Cuando se selecciona en la pestaña OCR_A, la variable y_lg se establece en el idioma. El idioma también se puede establecer dentro de las reglas utilizando la acción rrSet para establecer la variable y_lg en el idioma deseado. Por ejemplo: rrSet("Italian", "@X.y_lg") establecerá el idioma en italiano.

Si la variable s_lg no se establece para el objeto DCO actual, el idioma reconocido se determina por el entorno local actual establecido con la variable hr_locale. Por ejemplo, si el entorno local se establece para Alemania, rrSet("de-DE", "@X.hr_locale"), el texto se reconocerá como German.

Si las variables hr_locale e y_lg están establecidas, el valor en y_lg tiene preferencia sobre el valor de entorno local. Si se establece y_lg pero el motor debe utilizar el valor establecido para hr_locale, si se establece la variable dco_uselocale en "1", se dará prioridad a hr_locale.

Ejemplos de establecimiento de más de un idioma:
  • rrSet("English,French,German", @P.y_lg") - Detección automática de inglés, francés o alemán
  • rrSet("English,German,GermanNewSpelling,Norwegian", @P.y_lg") - Detección automática de inglés, francés, alemán o noruego
  • rrSet("ChinesePRC+@CHR(43)+English", "@P.y_lg") - Excepción para la especificación de chino simplificado e inglés para evitar la interpretación de parámetros Smart de +.
  • rrSet("@STRING(ChinesePRC+English)", "@P.y_lg") - Excepción para la especificación de chino simplificado e inglés para evitar la interpretación de parámetros Smart de +.

Reconocimiento de impresión manual

Las acciones OCR/A pueden reconocer el texto escrito a mano. El texto manuscrito es mucho más difícil de reconocer que el texto generado por máquina, y su realización correcta depende mucho de la calidad de los caracteres. El uso de formularios estructurados para limitar el posible rango de caracteres, junto con filtros de nivel de zona y la validación de caracteres individuales puede mejorar la precisión de forma importante. Su aplicación deberá manejar la precisión disminuida que supone la impresión manual, en comparación con la alta calidad del texto impreso a máquina. Además de establecer restricciones en el texto reconocido, normalmente las aplicaciones corregirán el texto utilizando una combinación de reglas y verificación. El reconocimiento de caracteres impresos a mano requerirá más tiempo que el texto impreso a máquina.

El texto manuscrito tiene estos requisitos para un mejor reconocimiento:
  • El texto debe ser de formularios pre-impresos. Los colores drop-out funcionan mejor. Pueden ser cuadros o recuadros combinados en tinta drop out.
  • Las letras no deben estar pegadas.
  • Los caracteres de bloques funcionan mejor.
  • La lista de idiomas y símbolos que soporta el texto manuscrito es menor en comparación con el texto de máquina.
  • Se da soporte a campos de varias líneas, aunque se obtienen mejor resultados en los campos de una sola línea.
  • Escriba caracteres de igual tamaño y espaciado.
  • Si utiliza un color drop out, no utilice un bolígrafo del mismo color drop out.
  • La mejora de imagen puede aumentar el reconocimiento mediante la eliminación de líneas, cuadros combinados y caracteres impresos a mano oscuros.
  • Los bolígrafos y los rotuladores obtienen peores resultados.
  • No se da soporte al texto en cursiva.
  • El texto debe estar en un campo.
  • El establecimiento de una expresión regular en el cuadro de diálogo de propiedades asociado con el campo que especifica los caracteres esperados puede mejorar el reconocimiento.
  • La rotación automática no está soportada cuando se habilita la impresión manual.
  • La detección de imágenes no está soportada cuando se habilita la impresión manual.
  • La detección de tablas no está soportada cuando se habilita la impresión manual.

El reconocimiento del texto manuscrito se puede habilitar en la pestaña OCR/A de la pestaña Zones en Datacap Studio. Habilite la edición en el árbol de DCO y seleccione el campo o la página de destino que se reconocerá como impresión manual. En la propiedad "Text Type", seleccione "HandPrint" para reconocer el texto manuscrito.

La pestaña de propiedades OCR/A también contiene la propiedad "Writing Style". Esta propiedad se utiliza para configurar el estilo de escritura del texto manuscrito. Este valor utiliza el valor predeterminado "Automatic Detection", donde el motor intenta detectar el estilo. El establecimiento del estilo de escritura correcto puede mejorar el reconocimiento. El juego de caracteres soportado para el reconocimiento del texto manuscrito está limitado. Los símbolos como * ^ ™ © ® № § ¡ ¿ ‰ no pueden reconocerse. El análisis de diseño automático no está disponible para el texto manuscrito.

El archivo CCO

El CCO es una representación de un texto reconocido en una página e incluye información de confianza de caracteres. Cada carácter reconocido tiene una puntuación de confianza exclusiva que es una indicación del motor relacionada con la precisión percibida del reconocimiento. El CCO es necesario para muchas operaciones de Datacap como, por ejemplo, el uso de la característica clic y tecla de un panel de verificación. Las acciones que operan en el texto de página completa también requieren el archivo CCO, por ejemplo, las acciones de localización. La acción RecognizePage de OCR/A realizará el reconocimiento y creará y normalizará automáticamente el archivo CCO. La acción Recognize de OCR/A no crea directamente un CCO. Crea un archivo de diseño que se debe convertir en un CCO utilizando la acción CreateCcoFromLayout en la biblioteca de acciones SharedRecognitionTools. Una vez creado el CCO, se pueden utilizar las características posteriores que requieran el CCO.

Texto de derecha a izquierda

Cuando se reconoce el texto de derecha a izquierda, como en hebreo o árabe, establezca la variable DCO hr_bidi en el valor "RTL". Esto indicará que se espera que el texto se trate como texto de derecha a izquierda. Esta variable ajustará la forma en que se almacena el texto en el CCO. También indicará a Datacap Desktop que trate la página o el campo como texto de derecha a izquierda cuando se visualice. Esta variable se debe establecer para cualquier acción de reconocimiento, RecognizePageOCR_A, RecognizePageFieldOCR_A, Recognize, etc. Si no se establece hr_bidi o si se establece en "LTR", el texto se considerará que está orientado de izquierda a derecha. Si la dirección del texto que se está reconociendo no coincide con el valor de hr_bidi, el orden de caracteres puede ser incorrecto.

Variables jerárquicas

Las variables que empiezan por hr_ son variables jerárquicas. hr_locale y hr_bidi son jerárquicas. Una variable jerárquica es especial porque su valor se propagará a los objetos que tiene debajo en el árbol de DCO. Esto significa que si la variable se establece a nivel de documento, también se aplicará a todas las páginas debajo del nodo de documento y a todos los campos en cada nodo de página, a menos que haya otra variable hr_ establecida en un nivel inferior que altere temporalmente el valor de nivel superior.

Por ejemplo, si tiene una página que contiene 10 campos y 9 de los campos deben tratarse como RTL y un campo debe tratarse como LTR, solo tendrá que establecer hr_bidi en dos lugares. En primer lugar, colóquelo a nivel de página y establézcalo en RTL. Esto afectará a todos los campos. A continuación, en el campo que debe tratarse como LTR, en ese objeto de campo, establezca hr_bidi en LTR para alterar temporalmente el valor de la página de nivel superior.

Ajuste de la imagen utilizando acciones OCR/A

Las acciones RecongizePageOCR_A, Recognize, RecognizePageFieldsOCR_A y RecognizeToPDF pueden solicitar al motor que ajuste la imagen durante la acción de reconocimiento. La acción RotateImageOCR_A también respeta los valores de ajuste. Las acciones ajustarán primero la imagen basándose en las características de ajuste de imagen habilitadas y, a continuación, realizarán el reconocimiento. Esto es parecido a utilizar el conjunto de reglas de mejora de imagen antes de invocar una acción de reconocimiento. En algunos casos, el motor de reconocimiento puede ser más fiable que el conjunto de reglas de mejora de imagen, porque puede entender las formas de carácter donde el conjunto de reglas de mejora de imagen funciona basándose solo en la geometría de la imagen. En función de la aplicación, es posible que siga siendo necesario realizar mejoras de imagen antes del reconocimiento. Por ejemplo, las imágenes deben rotarse e inclinarse antes de tomar las huellas digitales. También es posible que se necesite una limpieza de imagen adicional antes de utilizar las huellas digitales.

Las siguientes acciones pueden realizar la rotación, la alineación y el ajuste automáticos de la imagen durante el proceso:
  • RecognizePageOCR_A
  • Recognize
  • RecognizePageFieldsOCR_A
  • RotateImageOCR_A
Si el texto no se reconoce correctamente, la mejora de imagen es la primera herramienta que se utiliza para mejorar el reconocimiento. Por ejemplo, si los caracteres no se reconocen correctamente o si falta texto completamente, el primer enfoque típico es revisar la calidad de las imágenes que se están reconociendo. Las imágenes deben tener la orientación correcta, no estar inclinadas, y el texto debe tener líneas sólidas nítidas con un ruido de fondo mínimo. Si la página tiene colores o sombreados en tinta drop out, también deben eliminarse antes del reconocimiento. Aunque el texto sea claro y nítido, puede ser muy útil aumentar el ancho del texto antes del reconocimiento para solucionar los problemas de reconocimiento. La imagen original siempre se guarda, por lo que la imagen original aún puede utilizarse o restaurarse después del reconocimiento para el archivado.
En los casos en los que se necesiten mejoras de imagen antes del reconocimiento, es posible que se requieran estos pasos lógicos de reconocimiento previo, o algo similar (probablemente sean conjuntos de reglas independientes):
  • RotateImageOCR_A (para rotar, alinear y corregir imágenes con problemas).
  • Conjunto de reglas de ImageEnhancement (para realizar otras mejoras como, por ejemplo, la eliminación de líneas).
  • Otros tipos de operaciones como, por ejemplo, la coincidencia de huellas digitales.
  • RecognizePage, Recognize, RecognizePageFields o RecognizeFields.
Para las aplicaciones que no necesitan separar la rotación y la alineación del reconocimiento, las acciones de reconocimiento pueden realizar algunos de estos ajustes en un solo paso.

Rotación/orientación de página

Una página debe tener la orientación correcta antes del reconocimiento. Las acciones RecognizePageOCR_A, RecognizePageFieldOCR_A y Recognize pueden rotar una imagen durante el paso de reconocimiento. De forma alternativa, se pueden rotar antes del paso de reconocimiento utilizando la acción RotateImageOCR_A o el conjunto de reglas de mejora de imagen, cuando sea necesario separar los pasos de rotación y reconocimiento.

La rotación durante el paso de reconocimiento puede configurarse utilizando la acción SetAutomaticRotationOCR_A. De forma predeterminada, la rotación automática está habilitada. Si las imágenes se han rotado previamente o se garantiza que tienen la orientación correcta, la rotación automática se puede inhabilitar invocando SetAutomaticRotationOCR_A(False) antes de una acción de reconocimiento de OCRA. Por ejemplo, es posible que sea necesario invocar RotateImageOCR_A antes de tomar huellas digitales, lo que permite inhabilitar la rotación automática en el paso de reconocimiento. Si una imagen contiene texto con varias orientaciones, por ejemplo, vertical y horizontal, la imagen puede rotarse de forma no deseada.

Si el tipo de texto se establece en Texto manuscrito, la orientación no puede ajustarse automáticamente.

Alineación de página

La alineación de una imagen realizará una ligera rotación de la imagen para corregir el texto inclinado. Una imagen que esté alineada permitirá un mejor reconocimiento y su rendimiento será mejor en la tarea de verificación. Si una imagen no está alineada, una línea individual de texto puede reconocerse incorrectamente o dividirse en varias líneas, en lugar de que el texto aparezca en una sola línea. Cuando se realiza el reconocimiento después de alinear una imagen, mejora la calidad del reconocimiento y se asegura de que las coordenadas reconocidas coincidan con la posición del texto en la imagen ajustada.

Una página puede alinearse antes del reconocimiento utilizando las acciones de mejora de imagen. De forma alternativa, las acciones Recognize y RecognizePage también pueden alinear automáticamente la imagen en el paso de reconocimiento con el motor de reconocimiento estableciendo la variable y_correctSkewMode. Si hace que el motor de reconocimiento alinee la imagen, no es necesario realizar alinearla primero utilizando las acciones de mejora de imagen, pero puede ser útil realizar otra limpieza de imagen antes del reconocimiento, dependiendo de la calidad de los documentos de entrada.

Cuando el motor de reconocimiento alinea una imagen, se realizará una copia de seguridad de la imagen original y la imagen ajustada se guardará como la nueva imagen de página, que se puede utilizar en pasos posteriores como, por ejemplo, la verificación. El máximo de la imagen que se alineará es 15 grados. El motor puede o no alinear una imagen más de esos grados.

Para que el motor alinee la imagen durante el reconocimiento, establezca y_correctSkewMode en una de las siguientes opciones:
  • 0: Desactiva la alineación durante el reconocimiento.
  • 1: Realiza la alineación utilizando cuadrados de registro negro horizontales.
  • 2: Realiza la alineación utilizando cuadrados de registro negro verticales.
  • 4: Realiza la alineación utilizando líneas horizontales (no se utiliza si las líneas no aparecen en la página).
  • 8: Realiza la alineación utilizando líneas verticales (no se utiliza si las líneas no aparecen en la página).
  • 16: Realiza la alineación utilizando texto horizontal (valor predeterminado, si no se ha establecido y_correctSkewMode).
Cuando se alinea una página, puede ocurrir que el tamaño físico de la imagen aumente un poco, porque la rotación de la imagen añade píxeles adicionales a lo largo de la imagen para conservarla. Por ejemplo, una pagina inclinada de 8,5" x 11" puede convertirse en 9,265" x 11,59". La cantidad de aumento depende de la inclinación de la imagen. Para el reconocimiento de página completa, este cambio normalmente no es relevante. Si se utiliza el reconocimiento de nivel de campo, puede hacer que las zonas se alineen incorrectamente. En este caso, es posible que sea necesario utilizar anclas de registro para alinear la imagen a las zonas o recortar la imagen al tamaño original.

Corrección de geometría de la imagen

El filtro de geometría intenta corregir las distorsiones geométricas (perspectiva de las fotos, líneas curvas de los libros escaneados, etc.) en las imágenes. Esta característica se establece en automática de forma predeterminada. Para habilitar explícitamente esta característica, establezca la variable DCO y_pdfGeomCorrect en "1". Para inhabilitar esta característica, establezca el valor en "0".

Mejora del contraste

La variable DCO y_EnhanceLocalContrast puede habilitarse para que el motor aumente el contraste antes del reconocimiento. Cuando está habilitado, este valor aumentará el contraste de una imagen antes del reconocimiento. Este aumento de contraste puede mejorar la calidad del reconocimiento, especialmente en las imágenes que tienen texto con fondos en color como, por ejemplo, un carnet de conducir. Este valor solo puede utilizarse para imágenes en color o en escala de grises. El establecimiento de esta variable DCO en "1" habilitará el ajuste de contraste; "0" inhabilitará el ajuste. Si esta variable no se establece, tomará el valor predeterminado, "disabled". Por ejemplo: rrSet("1","@X.y_EnhanceLocalContrast")

Filtro de ruido

Puede aplicarse un filtro de ruido a la imagen estableciendo la variable DCO y_ApplySigmaFilter. De forma predeterminada, el filtro se establece en automático. El filtro puede habilitarse específicamente estableciendo el valor en "1" o inhabilitarse estableciendo el valor en "0". Este ajuste está especialmente indicado para ajustar una imagen para mejorar el reconocimiento. Puede tener el efecto de ajustar los colores en una imagen o fotografía.

Corrección de imagen en negativo

El motor puede detectar si la página es una imagen negativa, donde la mayor parte de la página es texto en blanco sobre fondo negro. El motor convertirá la imagen en texto en negro sobre fondo blanco. Esta característica esta inhabilitada de forma predeterminada. Se puede habilitar estableciendo la variable DCO y_CorrectNegativeImage en "1". Este ajuste está especialmente indicado para ajustar una imagen para mejorar el reconocimiento. Funciona mejor en una imagen en blanco y negro. Puede ejecutarse en una imagen en color y puede ajustar los colores en una imagen o fotografía, aunque la imagen no sea una imagen negativa.

Recortar imagen

Esta mejora busca los bordes de la imagen dentro de una foto y recorta la imagen. De forma predeterminada, se establece automáticamente y el motor toma la decisión de recortar la imagen. Para inhabilitar la característica, establezca la variable DCO y_CropImage en "0"; para habilitarla, establezca y_CropImage en "1". Si fuerza el recorte para que siempre esté activado, se recomienda que primero probar con un conjunto de imágenes reales para confirmar que recorta la imagen correctamente en sus documentos. El éxito de la operación puede variar. Este valor solo admite imágenes en color.

Ajuste de resolución

Cuando se realiza el reconocimiento, el motor intenta corregir las imágenes de baja o alta resolución escalándolas a una resolución que pueda utilizarse para el reconocimiento. La variable DCO y_OverwriteResolution determina si el motor ajustará la resolución de la imagen. Los valores válidos son "0" (sin ajuste), "1" (la imagen se ajusta) y " 2" (el motor determina automáticamente si se debe ajustar la imagen). Si no se establece y_OverwriteResolution, se utiliza el valor predeterminado "2" (automático). Si la variable se establece en desactivado, "0", y la resolución de la imagen es demasiado baja (menos de 50 ppp), demasiado alta (más de 3200 ppp) o indefinida, el reconocimiento fallará. La variable y_ResolutionToOverwrite determina el nuevo valor de PPP de la imagen. Si no se establece, el valor predeterminado es 300 ppp.

Ajustar imagen a un valor de PPP recomendado

El valor de PPP de una imagen puede afectar a la calidad del reconocimiento de texto. Las imágenes con un valor de PPP bajo de 150 o menos pueden reconocerse incorrectamente. Esta característica indica al motor que ajuste el valor de PPP de una imagen al valor que considera idóneo para la imagen antes del reconocimiento. Este valor puede utilizarse para aumentar el valor de PPP de las imágenes. Si la aplicación va a ingerir imágenes de baja resolución, esta imagen puede mejorar la calidad del reconocimiento. Pruebe con ejemplos reales para ver si esta característica mejora coherentemente el reconocimiento de las imágenes de baja resolución. Para habilitar esta característica, establezca la variable DCO y_UseSuggestedDPI en "1".

Datacap tiene acciones en otras bibliotecas de acciones como, por ejemplo, ImageUtilities, que también pueden aumentar la resolución de imágenes de baja resolución. En algunos casos, el uso de estas acciones para aumentar la resolución a una resolución predefinida de 250 o 300 PPP puede proporcionar mejores resultados que este valor. Se pueden configurar fácilmente reglas para comprobar el valor de PPP actual de una imagen y aumentar opcionalmente el valor de PPP si la imagen actual tiene un valor de PPP bajo. Se recomienda la realización de pruebas para determinar cuál proporciona los mejores resultados globales.

Ajustar imágenes de valor de PPP bajo a un valor de PPP fijo

De forma similar al valor anterior, es posible ajustar automáticamente las imágenes con una resolución por debajo de un valor de PPP específico a un valor fijo. Por ejemplo, si el valor de PPP de una imagen es inferior a 150 PPP, se puede ajustar a 300 PPP antes del reconocimiento. La variable y_SetNewDPI controla el nuevo valor de PPP de la imagen. Si esta variable está en blanco, no se realiza ningún ajuste. La variable y_SetNewDPIMinDPI controla el valor de PPP mínimo de una imagen. Si la imagen tiene un valor de PPP mayor, no se realizará ningún ajuste.
rrSet("300", "@X.y_SetNewDPI")
rrSet("140", "@X.y_SetNewDPIMinDPI")
Este ejemplo ajustará todas las imágenes que tengan un valor de PPP menor de 140 y las convertirá en un valor de PPP de 300.

Corrección de sombras y resaltados

La imagen se ajustará para corregir el exceso de sombras y resaltado para mejorar la calidad del reconocimiento. Este filtro está indicado para su uso en fotografías, aunque en algunos casos también puede mejorar los documentos escaneados. De forma predeterminada, este filtro se establece en automático y el motor decide si se debe aplicar. El filtro siempre se puede habilitar estableciendo la variable DCO y_CorrectShadowsAndHighlights en "1" o inhabilitar estableciendo la variable en "0". Este ajuste está especialmente indicado para ajustar una imagen para mejorar el reconocimiento. Puede tener el efecto de cambiar la nitidez de una imagen o fotografía.

Archivo de imagen de copia de seguridad

Cuando una imagen requiere rotación o alineación, o si se habilita otra mejor de imagen, la imagen original se guardará en un archivo de copia de seguridad dentro del lote utilizando un nombre similar a: "filename.ocra.ext". Por ejemplo, si el nombre de archivo original era "TM000001.tif", el nuevo nombre del archivo original será "TM000001.ocra.tif" y el archivo "TM000001.tif" se actualizará con la rotación, inclinación y ajuste de la imagen corregidos, entre otros. El sufijo que se añade al nombre de archivo original se puede controlar estableciendo la variable DCO y_ImageSuffix. Si no se establece, se usará el valor predeterminado ".ocra". La imagen de copia de seguridad se crea por si se necesita más tarde la imagen original. Por ejemplo, es común manipular una imagen para el reconocimiento y/o la verificación y, a continuación, archivar la imagen original cuando finaliza el proceso por lotes. El sufijo predeterminado puede modificarse de esta forma antes de invocar una acción OCR_A que ajuste la imagen: rrSet(".mybackup",@X.y_ImageSuffix)

Si solo se habilitan las mejoras de rotación o alineación, el motor solo hará una copia de seguridad de la imagen original si ha rotado o alineado la imagen. Si se habilitan otras mejoras de imagen, el motor no podrá saber siempre si la imagen se ha actualizado o es posible que el cambio no sea visiblemente perceptible. En estos casos, también se creará una copia de seguridad del archivo original.

Extracción de texto en PDF frente a reconocimiento de texto

Cuando se reconoce un PDF, de forma predeterminada, el texto incluido en los resultados de reconocimiento se obtienen de una combinación de reconocimiento automático que se ejecuta en el PDF y de texto que permite realizar búsquedas que se incluye dentro del PDF. Las imágenes incluidas en la página tienen el texto que reconoce el motor. Si las áreas de la página contienen una imagen y texto que permite realizar búsquedas que está asociado a la imagen, el motor decide si debe utilizar ese texto o reconocer el texto de la imagen coincidente. Puesto que el motor realiza el reconocimiento, la confianza del texto puede variar aunque se incluya el mismo texto de búsqueda en el PDF. Se puede utilizar la variable y_contentReuseMode para forzar al motor a utilizar únicamente el texto reconocido en la página o a utilizar únicamente el texto incluido en la página. Una razón por la que puede decidir utilizar únicamente el texto incluido es para impedir el reconocimiento y generar resultados de alta confianza.

Un inconveniente de utilizar solo texto incluido es que si el texto incluido es incorrecto o no está completo, no se realiza el reconocimiento para capturar esos datos que faltan que dan como resultado un XML de diseño que está incompleto en comparación con lo que ve el usuario cuando visualiza el PDF. No utilice este valor si el archivo PDF de origen es del tipo imagen en texto porque, en este caso, la capa de texto no se extrae.

Si una línea de texto contiene caracteres que no están incluidos en el alfabeto de los idiomas de reconocimiento seleccionados, este texto no se graba en el resultado y se debe utilizar la modalidad 0 o 1. Estos valores de y_contentReuseMode se pueden establecer en el nodo DCO que se está convirtiendo:
  • rrSet("0", "@X.y_contentReuseMode") - La modalidad automática predeterminada que utiliza una combinación de texto incluido y de reconocimiento.
  • rrSet("1", "@X.y_contentReuseMode") - Se utiliza solo el reconocimiento para crear el XML de diseño.
  • rrSet("2", "@X.y_contentReuseMode") - Se utiliza solo texto incluido para crear el XML de diseño.
Cuando se utiliza la acción PDFFREDocumentToImage para crear simplemente imágenes a partir del PDF de origen donde el reconocimiento se realizará en un paso aparte, establezca la variable convPdfIgnoreContent antes de invocar DocumentFactory para evitar la creación de resultados de reconocimiento innecesarios, lo que permite una conversión más rápida de PDF a TIF. Consulte la acción para obtener más detalles.

Se admiten PDF de solo imagen y vector para el reconocimiento y la conversión a TIF. No se admiten los PDF editables o los PDF con un formulario XFA.

Parámetros personalizados

Estos valores personalizados pueden configurarse estableciendo la variable en el nodo DCO que está realizando la acción. El valor puede codificarse con código en el DCO de configuración para el nodo o puede establecerse en el tiempo de ejecución utilizando la acción rrSet(). Si el valor se añade al DCO de configuración, se aplicará automáticamente a todos los objetos de ese tipo y no requerirá ningún paso adicional ni se producirá ningún tiempo de proceso cuando se utilice rrSet en el tiempo de ejecución. Independientemente de la variable que se establezca en el DCO de configuración o en el tiempo de ejecución, la acción utilizará la variable.

Las variables siguientes se pueden utilizar para establecer parámetros personalizados para el reconocimiento:

Reconocimiento agresivo de texto: un valor opcional indica al motor que realice el reconocimiento de texto agresivo. El establecimiento de la variable y_EnableAggressiveTextExtraction en "0" inhabilitará esta característica y en "1" habilitará la modalidad agresiva. De forma predeterminada, este valor está habilitado.

Este valor dará instrucciones al motor para que intente extraer el máximo de texto posible en la imagen. Esta modalidad puede ayudar cuando la imagen contenga texto de baja calidad. Esta modalidad de procesamiento puede provocar una interpretación errónea de imágenes como texto o reorganizar verticalmente el texto horizontal. Se recomienda probar con este valor activado y desactivado para ver qué modalidad funciona mejor para sus documentos.

Detectar texto en imágenes: este valor indica al motor que detecte todo el texto en una imagen de página, incluido el texto incluido en las figuras y las imágenes. Este parámetro está habilitado de forma predeterminada. Para inhabilitar este valor, establezca la variable DCO y_DetectTextOnPictures en "0".

Detectar texto poroso: este valor indica al motor que detecte el texto poroso. Este parámetro está habilitado de forma predeterminada. Para inhabilitar este valor, establezca la variable DCO y_DetectPorousText en "0".

Detectar texto de impresora matricial: este valor indica al motor que detecte el texto de matriz de puntos. Este parámetro está habilitado de forma predeterminada. Para inhabilitar este valor, establezca la variable DCO y_DetectMatrixPrinter en "0".

Análisis exhaustivo: este valor puede mejorar el reconocimiento a coste de la velocidad. Se recomienda probar con esta variable activada y desactivada para determinar si mejora el reconocimiento de los documentos y habilitar el valor solo si es necesario. Este valor está desactivado de forma predeterminada.

Para habilitar esta característica, establezca la variable DCO y_EnableExhaustiveAnalysisMode en "1".

Modalidad de baja resolución: este es un valor que indica que la imagen es una imagen de baja resolución. Esto puede mejorar la calidad del reconocimiento cuando se reconocen faxes, texto pequeño en imágenes, imágenes con baja resolución o mala calidad de impresión. Para habilitar esta modalidad, establezca la variable DCO y_LowResolutionMode en "1". Inhabilite esta modalidad estableciendo la variable en "0". Si no está presente, esta modalidad está inhabilitada de forma predeterminada. Si es necesario, pueden configurarse reglas de aplicación para habilitar este valor si una imagen tiene un tamaño pequeño o una baja resolución. Consulte la acción "SaveImageInformation", que puede guardar las propiedades de la imagen en el DCO. A continuación, estas propiedades pueden probarse utilizando la acción rrCompareNumeric para controlar las reglas basándose en las propiedades de la imagen. Por ejemplo: rrSet("1","@X.y_LowResolutionMode")

Modalidad de fotografía: el valor indica si la imagen de procesamiento debe tratarse como una fotografía o como una imagen no fotográfica. Si la imagen es una fotografía, la habilitación de este valor ajustará el modo en el que el motor reconoce el texto en la imagen y puede mejorar la calidad de las imágenes capturadas con una cámara. El valor se configura estableciendo la variable DCO y_PhotoProcessingMode. El valor tiene tres modalidades: "0" = La imagen no es una fotografía, "1" = La imagen es una fotografía, "2" = Automático - el motor intentará determinar automáticamente si la imagen es una fotografía. Si esta variable no se ha establecido, se utilizará el valor predeterminado "Automático". Por ejemplo: rrSet("1","@X.y_PhotoProcessingMode")

Solo reconocimiento de texto: si se establece y_EnableTextExtractionMode en "1", se habilitará el reconocimiento de "solo texto". Las tablas no se detectarán. Si no se encuentra el texto en la página, la habilitación de este valor puede hacer que se reconozca. Si no es necesaria la detección de tablas, la habilitación de este valor puede mejorar el reconocimiento en algunos documentos. Este valor está desactivado de forma predeterminada. Las acciones RecognizePage y RecognizeField no dan soporte a las tablas y la habilitación de este valor puede mejorar los resultados de reconocimiento. También puede habilitarse para la acción Recognize, si no se requiere la detección de tablas. Por ejemplo: rrSet("1","@X.y_EnableTextExtractionMode"). Perfil y_predefined: establezca esta variables en el nombre de un perfil predefinido que se va a utilizar durante el reconocimiento. Los valores válidos son:
  • DocumentConversion_Accuracy
  • DocumentConversion_Speed
  • DocumentArchiving_Accuracy
  • DocumentArchiving_Speed
  • TextExtraction_Accuracy
  • TextExtraction_Speed

Reducción de uso de memoria: si una acción está procesando un documento muy grande o un gran número de páginas, es posible que se requiera más memoria de la que hay disponible, lo que da como resultado un error. La mayoría de acciones OCR/A pueden ejecutarse en una modalidad de memoria reducida. Hay dos valores que se pueden configurar.

"y_maxPagesForInMemoryProcessing" permite seleccionar cuándo puede utilizarse el disco para reducir los requisitos de memoria. Por ejemplo, si se crea un documento PDF grande con RecognizeToPDF o si se divide un documento PDF grande con PDFFREDocumentToImage, "y_maxPagesForInMemoryProcessing" indicará al motor cuándo se debe utilizar el disco. Por ejemplo, si se establece en "50" y el documento contiene menos de 50 páginas, solo se utilizará la memoria. Si hay más de 50 páginas en el documento, se utilizará el disco, lo que permite ahorrar memoria.

"y_LowMemoryMode" indica al motor que utilice el mínimo de memoria posible. Cuando esta variable se establece en "1", la modalidad de memoria baja está habilitada.

Las variables deberán establecerse antes de invocar la acción con el problema. Por ejemplo:
rrSet("10", "@X.y_maxPagesForInMemoryProcessing")
rrSet("1", "@X.y_LowMemoryMode")
Recognize()

Limitación de la utilización de CPU de reconocimiento simultáneo: algunas acciones OCR/A como Recognize y RecognizeToPDFOCR_A pueden realizar el reconocimiento simultáneo de páginas en un mismo lote. El reconocimiento simultáneo permite reconocer las páginas en paralelo, en lugar de secuencialmente. De forma predeterminada, el motor decidirá cuántas CPU se utilizarán para realizar el conocimiento simultáneo. Si la máquina tiene otros procesos con un uso de CPU significativo como, por ejemplo, otros procesos Rulerunner, es posible que se sobresature la máquina. Aunque ejecutar una máquina con un elevado uso de CPU es generalmente deseable para maximizar el rendimiento, una máquina sobresaturada puede provocar la inanición de algunos procesos y reducir el rendimiento. Hay muchos factores y a menudo son factores exclusivos para cada entorno.

El número de CPU utilizadas por la acción OCR/A puede restringirse estableciendo la variable DCO _RecognitionProcessesCount en el número máximo de CPU que se deben utilizar. De forma predeterminada, esta variable se establece en "0", lo que permite que el motor decida cuántas CPU se van a utilizar. Con este valor predeterminado, el establecimiento de un lote individual en un único proceso Rulerunner puede utilizar entre el 70% y el 100% de las CPU. Si se configuran dos o más procesos Rulerunner y se permite que utilicen todas las CPU, puede disminuir el rendimiento. El establecimiento de esta variable permite controlar el número de CPU que utiliza la acción de reconocimiento.

Si la máquina tiene 8 CPU, el valor predeterminado puede o no utilizar todas las CPU disponibles. Si hay 8 CPU y la variable se establece en 8, un único proceso intentará utilizar hasta 8 CPU, siempre que haya trabajo suficiente.

Si hay 8 CPU y la variable y_RecognitionProcessesCount se establece en 4, una única acción de reconocimiento utilizará aproximadamente el 50% de las CPU. La utilización puede aumentar o disminuir, dependiendo del paso actual en la acción, los documentos de entrada y los otros procesos que se ejecuten en el sistema. Si tiene una máquina de 8 CPU y dos Rulerunners que utilizan el reconocimiento simultáneo, el establecimiento del máximo de CPU en 4 limitará la acción a 4 CPU, por lo que si dos Rulerunners ejecutan la misma acción de reconocimiento al mismo tiempo, se maximizará hasta 8 CPU. Por supuesto, cada aplicación tiene su propio conjunto de reglas y acciones, y el mejor valor tendrá que determinarse mediante pruebas. Para encontrar el valor óptimo, a veces será más fácil realizar el reconocimiento solo en su propia tarea y, a continuación, decidir cuántos Rulerunners se requieren para ejecutar la tarea de reconocimiento.

Este valor solo afectará a las acciones OCR/A específicas y no modificará el funcionamiento de las acciones de otras bibliotecas de acciones.

Suponiendo que la acción de reconocimiento se está ejecutando en un nodo de nivel de documento, este ejemplo limitará el procesamiento simultáneo a 4 CPU:
rrSet("4","@X.y_RecognitionProcessesCount)
Recognize()

Igual que con cualquier variable DCO, la variable puede establecerse en el tiempo de ejecución utilizando la acción rrSet o se puede predefinir en el DCO de configuración utilizando Datacap Studio.

Propiedades de reconocimiento adicionales: las propiedades en la pestaña OCR/A de la pestaña Zonas en Datacap Studio tiene propiedades adicionales que se pueden establecer para ajustar el reconocimiento. La pestaña OCR/A tiene varias propiedades adicionales que se pueden establecer para controlar el reconocimiento. El establecimiento adecuado de estas propiedades, en lugar de utilizar los valores predeterminados, puede mejorar la precisión del reconocimiento. Para establecer o cambiar una propiedad, seleccione el nodo DCO, por ejemplo, una página o un campo, bloquee el DCO y podrá cambiar las propiedades. Después de realizar cualquier selección, guarde y desbloquee el DCO.

"Tipo de texto" es un valor disponible en la pestaña de propiedades OCR/A. Este valor identifica el tipo de fuente utilizado en el documento que se va a reconocer. De forma predeterminada, si no se selecciona nada, el motor realizará el reconocimiento utilizando los valores "Normal" y "Matrix". Si se utiliza cualquier combinación de los valores Matrix, Typewriter, OCR_A u OCR_B, no se reconocerán las fuentes en cursiva y el superíndice/subíndice. De forma predeterminada, "Normal" y "Matrix" están habilitadas, por lo que no se reconocerán el texto en cursiva, los superíndices ni los subíndices. Si necesita reconocer este texto, establezca el tipo solo en "Normal".

Sugerencia: algunas propiedades de configuración no están disponibles en la pestaña OCR/A y se configuran estableciendo una variable DCO para habilitar o inhabilitar determinadas características. Recuerde que, en lugar de establecer variables en las reglas en el tiempo de ejecución utilizando la acción rrSet, puede configurarse una variable en el nodo DCO deseado utilizando el árbol de DCO para el DCO de configuración en Datacap Studio. Si se establece una variable en el DCO de configuración, no será necesario establecerla a través de reglas en tiempo de ejecución. Por ejemplo, si tiene 1000 páginas de tipo "Invoice" y se ha establecido una variable en el tiempo de ejecución en el objeto de página "Invoice", rrSet se ejecutará 1000 veces para establecer la variable individualmente para cada nodo DCO de tiempo de ejecución. Por el contrario, si la variable se establece en el DCO de configuración, la variable ya estará establecida y no será necesario establecerla en las reglas en el tiempo de ejecución. Las variables DCO distinguen todas entre mayúsculas y minúsculas, independientemente de que se establezcan en el DCO de configuración o en el DCO de tiempo de ejecución.

Diccionario de expresiones regulares: cuando se realiza el reconocimiento a nivel de campo, es posible especificar una expresión regular que actúa como un diccionario para ayudar a guiar el motor al reconocimiento de caracteres correcto. La expresión regular puede configurarse en la pestaña de propiedades OCR/A en la pestaña Zonas de Datacap Studio.

Cuando se especifica una expresión regular, las palabras reconocidas resultantes no están limitadas estrictamente a las palabras especificadas por la expresión regular. Si el motor no puede detectar una variación adecuada de la palabra que cumpla la sintaxis especificada, el motor puede crear una palabra reconocida basándose en "la mejor suposición" que no cumpla la sintaxis proporcionada. La sintaxis de la expresión regular es un subconjunto de la sintaxis de la expresión regular estándar. En la tabla siguiente, se describe la sintaxis de la expresión regular soportada.
Descripción de la sintaxis Ejemplo de sintaxis Resultado
Cualquier carácter c.t

Denota palabras como "cat" y "cot"

Carácter de un rango de caracteres: []

[b-d]ell

[ty]ell

Denota palabras como "bell", "cell" y "dell"

Denota las palabras "tell" y "yell"

Carácter fuera de un rango de caracteres: [^]

[^y]ell

[^n-s]ell

o: |

c(a|u)t

Denota palabras como "dell", "cell" y "tell", pero prohíbe "yell"

Denota palabras como "bell" y "cell", pero prohíbe "nell", "oell", "pell", "qell", "rell" y "sell"

Denota palabras como "cat" y "cut"

0 o más apariciones en una fila: *

10*

Denota los números 1, 10, 100, 1000, etc.

1 o más apariciones en una fila: +

10+

Permite los números 10, 100, 1000, etc., pero prohíbe 1

Letra o dígito: [0-9a-zA-Z]

[0-9a-zA-Z]

[0-9a-zA-Z]+

Permite un solo carácter

Permite cualquier palabra

Letra latina en mayúsculas: [A-Z]

[A-Z][A-Z][A-Z][A-Z]

Permite 4 caracteres cualesquiera, todas las palabras en mayúsculas

Letra latina en minúsculas: [a-z]

[a-z][a-z][a-z][a-z]

Permite 4 caracteres cualesquiera, todas las palabras en minúsculas

Letra cirílica en mayúsculas: [А-Я]

[А-Я][А-Я][А-Я][А-Я]

Permite 4 caracteres cualesquiera, todas las palabras en mayúsculas

Letra cirílica en minúscula: [а-я]

[а-я][а-я][а-я][а-я]

Permite 4 caracteres cualesquiera, todas las palabras en minúsculas

Dígito: [0-9]

[0-9]

Permite cualquier número de 0 a 9

Espacio: [\s]

[\s]

Permite la especificación de un espacio.

Rango de caracteres: -

-

Un guion permite la especificación de un rango de caracteres. Por ejemplo, [0-9] permitirá cualquier carácter individual entre 0 y 9.

Carácter de escape: \

\

Una barra inclinada invertida permite utilizar un carácter especial como carácter literal. Por ejemplo, [0-9\.]+ permitirá "123.45" como palabra válida.

Carácter de sistema: @

@

 
Algunos caracteres utilizados en las expresiones regulares son “auxiliares”, es decir, se utilizan para fines del sistema. Como se puede ver en la lista anterior, estos caracteres incluyen corchetes, puntos, etc. Si desea especificar un carácter auxiliar como un carácter normal, colóquele una barra inclinada invertida (\) delante. Ejemplo: [t-v]x+ denota palabras como "tx", "txx", "txxx", etc., "ux", "uxx", etc., pero \[t-v\]x+ denota palabras como "[t-v]x", "[t-v]xx", "[t-v]xxx", etc.

Si necesita agrupar determinados elementos de expresión regular, utilice corchetes. Por ejemplo, (a|b)+|c denotes "c" y cualquier combinación como "abbbaaabbb", "ababab", etc. (una palabra de longitud distinta de cero en la que puede haber un número cualquiera de a y b en cualquier orden), mientras que a|b+|c denotes "a", "c", y "b", "bb", "bbb", etc.

Expresiones regulares de ejemplo:

Expresión regular para fechas: el número que denota el día puede estar formado por un dígito (por ejemplo, 1, 2, etc.) o dos dígitos (por ejemplo, 02, 12), pero no puede ser cero (00 o 0). La expresión regular del día tendrá un aspecto similar a este:
((|0)[1-9])|([12][0-9])|(30)|(31)
La expresión regular del mes tendrá un aspecto similar a este:
((|0)[1-9])|(10)|(11)|(12)
La expresión regular del año tendrá un aspecto similar a este:
(((19)|(20))[0-9][0-9])|([0-9][0-9])
Lo que queda es combinar todo esto y separar los números mediante un punto (por ejemplo, 1.03.1999). El punto es un signo auxiliar, por lo que debe colocarse una barra inclinada invertida (\) delante. La expresión regular de la fecha completa tendrá un aspecto similar al siguiente:
(((|0)[1-9])|([12][0-9])|(30)|(31))\.(((|0)[1-9])|(10)|(11)|(12))\.((((19)|(20))[0-9][0-9])|([0-9][0-9]))
Expresión regular para direcciones de correo electrónico: puede crear un lenguaje para denotar direcciones de correo electrónico. La expresión regular de una dirección de correo electrónico puede ser similar a la siguiente:
[a-zA-Z0-9_\-\.]+\@[a-zA-Z0-9\.\-]+\.[a-zA-Z]+

Reconocimiento de marcas ópticas (OMR)

La detección de OMR es una técnica donde se determina si existe una marca de selección en una página. Una forma común de este tipo tiene uno o varios círculos o recuadros vacíos en una página, y una selección se indica rellenando el círculo o el recuadro mediante un lápiz/bolígrafo oscuro. Las selecciones pueden ser independientes, lo que significa que son selecciones no relacionadas que permiten seleccionar algunas, todas o ninguna. El reconocimiento de OMR determina si estas áreas se han rellenado o se han dejado en blanco.

Por ejemplo, una selección puede ser "Casado", que indica si el usuario está casado. La siguiente selección puede ser "¿Lleva un sombrero?". Los dos elementos no tienen ninguna relación entre ellos. Puede seleccionar uno, ambos o ninguno.

Otro tipo de usos de OMR será una selección donde hay un grupo de marcas relacionadas donde solo se espera que se rellene una. Por ejemplo, una opción de pago puede ser una selección de tarjeta de crédito donde se listan los tipos de tarjetas de crédito y solo debe seleccionarse uno. En este caso de ejemplo, también debe haber una verificación para confirmar que se ha realizado exactamente el número necesario de selecciones, que es 'una'.

Se debe configurar una marca de reconocimiento óptico en un campo con una zona creada para la ubicación de la marca óptica. Se necesita un campo de dos niveles para OMR. Si hay una sola entrada OMR, el campo debe tener un subcampo. La zona de subcampo debe rodear la ubicación de OMR. La ubicación de la zona del campo padre debe rodear la ubicación del campo hijo.

Si hay un grupo de selecciones de OMR que están relacionadas, el DCO de configuración se configurará de forma que un campo defina el grupo completo de marcas. A su vez, el campo tendrá varios subcampos. Debe haber un subcampo para cada selección dentro del grupo de OMR. A cada subcampo se le asigna una zona alrededor de una de las ubicaciones de OMR. Si hay 3 selecciones de OMR, el primer subcampo rodeará la primera ubicación de OMR, el segundo subcampo rodeará la segunda ubicación de OMR y la zona del tercer subcampo rodeará la tercera ubicación de OMR. El campo padre se distribuirá en zonas para contener las tres zonas de subcampo. No es necesario rodear el texto, solo las zonas de la marca de OMR.

La aplicación Encuesta de ejemplo que se incluye como parte del Kit de desarrollo de Datacap, DDK, proporciona ejemplos de detección de OMR en un formulario.

Puede haber varios estilos de marcas de OMR, por ejemplo, circulares, cuadradas, ovaladas. Los recuadros de OMR funcionan mejor cuando el recuadro se rellena completamente. Si se coloca simplemente una "X" dentro de la ubicación de OMR, puede disminuir la precisión de la detección.

Se recomienda que un formulario indique al usuario que rellene completamente un OMR, para que se reconozca correctamente. Aunque la detección puede funcionar si el usuario coloca una "X", no es tan fiable como el relleno correcto del área.

La detección de OMR también funciona mejor con colores drop out. Los colores drop out son básicamente un recuadro de color claro que se elimina durante el proceso de escaneado o en las posteriores mejoras de imagen. Por ejemplo, un color drop out común es el rojo y cuando se escanea, los escáneres pueden configurarse para eliminar los colores rojos. Esto dejará un área vacía obvia donde debería estar el OMR o dejarse la marca de OMR si el usuario la ha rellenado. Como resultado, aumentará la fiabilidad de la detección.

Cuando se crea una zona alrededor de un recuadro de OMR, se recomienda dividir por zonas el área rodeando todo el cuadro visible con espacio para el movimiento de alineación. Si intenta crear una zona solo dentro del recuadro o muy cerca alrededor del recuadro, los errores de alineación hacen que parte del recuadro o el círculo aparezca o no aparezca dentro del área OMR, lo que crea un falso positivo. Si el área de zona es suficientemente grande para incluir siempre el área completa, incluidas las líneas, si hay un ligero movimiento, las líneas de recuadro de OMR pueden descartarse al determinar si hay una marca intencional dentro del recuadro.

Un campo se identifica como un campo OMR estableciendo la variable DCO RecogType en "4". Esta variable debe establecerse correctamente en el DCO para que la detección de OMR sea satisfactoria.

Datacap proporciona varios mecanismos diferentes para detectar la selección de OMR. La acción DetermineOMRThreshold de la biblioteca de acciones SharedRecognitionTools es un método para determinar si un campo OMR está rellenado o en blanco. Permite que aparezca una determinada cantidad de "negro" en la selección de OMR para tener en cuenta las líneas que no se han podido eliminar y considera que hay una marca de OMR si la cantidad de píxeles negros sobrepasa una tolerancia especificada.

Las acciones ReconocitionOCRA también dan soporte a la detección de OMR. El reconocimiento puede configurarse para reconocer una ubicación de OMR y determinar si está seleccionada o no seleccionada.

Cuando se utiliza el motor OCR/A para la detección de OMR, el campo debe configurarse en la pestaña Propiedades de OCR/A que se encuentra en la pestaña Zonas de Datacap Studio. Hay tres propiedades de OMR: Tipo de marca de selección, Longitud y Perforación múltiple. Tipo de marca de selección indica el motor la forma de la marca de OMR. Longitud indica cuántas marcas de OMR hay dentro del campo. Perforación múltiple indica si se han realizado varias selecciones de OMR o si solo se espera una única selección. Cuando un campo se configura como un campo OMR y los valores del motor se establecen adecuadamente, el motor detecta el campo como un campo OMR.

Un Diccionario de OMR es un mecanismo que utiliza los valores de DCO para proporcionar significados "Fáciles de entender" a las selecciones de OMR. Los diccionarios se crean utilizando el botón "Diccionarios" de la pestaña "Jerarquía de documentos" de Datacap Studio. Un diccionario de OMR contiene palabras que describen las selecciones dentro de la selección de OMR y también se visualizan en el panel de verificación de los campos OMR.

Se debe dar un nombre exclusivo a un diccionario. Cada diccionario contiene un conjunto de palabras y valores. A menudo, los atributos Palabra y Valor se establecen en valores idénticos. La "Palabra" debe coincidir con el nombre del campo que le corresponde.

Por ejemplo, en la aplicación Encuesta, hay un campo OMR denominado Frecuencia. Este campo tiene cuatro subcampos denominados: Una vez, Mensual, Trimestral y Anual. Estos campos corresponden a cuatro marcas de OMR en el formulario. Cuando se reconoce una de las selecciones, se utiliza el valor del diccionario para proporcionar el texto que se visualiza en el panel de verificación.

Para "asignar" un diccionario a un campo OMR, cree la variable "DICT" en el DCO y, a continuación, establezca el nombre del diccionario como el valor.

Consulte Métodos recomendados para un reconocimiento de texto óptimo para obtener más información.