Si necesita detectar una cadena de texto estático y sabe que este campo tiene una sola línea en todas las imágenes, es recomendable introducir el valor de texto sin espacios. Esto acelera la búsqueda y no afecta a la calidad de la hipótesis encontrada.
Esto solo es cierto si el texto estático del nombre se ha reconocido sin errores. Esto se debe a que el número máximo de errores (establecido para los elementos de texto estático mediante dos parámetros: Max number of errors y Max error percentage) representa el número de errores en una palabra. Así, si Max number of errors se establece en 1, el nombre consta de 3 palabras y el valor del texto estático se introduce sin espacios, el programa no puede cometer más de 1 error durante el reconocimiento. Cuando se introduce sin espacios, el programa interpreta el nombre como una sola palabra, independientemente del número real de palabras que contenga. Pero si separa las palabras del nombre con espacios, el número o porcentaje de errores permitido se aplicará a cada una de las palabras que haya escrito en el campo Texto de búsqueda. Si se produce algún error de reconocimiento en un texto estático, la hipótesis se penaliza de acuerdo con un algoritmo determinado, y la calidad de las hipótesis con y sin espacios puede ser diferente.
Veamos el proyecto Spaces.fsp (carpeta %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Spaces in StaticText\Project1) y aprendamos algunos métodos para trabajar con elementos de texto estático.
El proyecto tiene 2 páginas:
- Página 1: la calidad de la imagen es buena;
- Página 2: el nombre del campo de datos tiene ruido.
Vamos a buscar el campo de datos “Father’s name” asociado al nombre “Please indicate your father’s name here:”
En el proyecto, creamos un elemento de tipo texto estático y lo llamamos NameOfFatherHeader. Especificamos su valor como una sola palabra, sin espacios (es decir, Pleaseindicateyourfather’snamehere:). El uso de mayúsculas y minúsculas en el nombre es irrelevante. Dejamos los valores predeterminados para todas las demás propiedades del elemento. El número máximo de errores en el nombre es de 10 caracteres (el 30 % de los 35 caracteres que componen el texto).
Una vez que haya ejecutado el procedimiento de emparejamiento de FlexiLayout seleccionando el comando Match, verá que el nombre se ha detectado correctamente en ambas páginas. Sin embargo, en la Página 2 la Chain quality de la hipótesis del elemento es de aproximadamente 0.994, porque se ha penalizado debido al error de reconocimiento causado por el ruido del documento.
Para ver los resultados del prerreconocimiento del nombre buscado, haga clic en “L” (“Show Recognized Lines”) en la Toolbar y señale el texto del nombre. El resultado del prerreconocimiento para el nombre del campo en la Página 2 tendrá este aspecto: “PLEASEINDICATE|OURFATHER’SNAMEHERE:”. Como alternativa, puede mostrar el texto estático detectado seleccionando la hipótesis del elemento NameOfFatherHeader en la ventana árbol de hipótesis y moviendo el puntero del ratón hasta la línea Palabra clave de la ventana Properties-Hypothesis. En este caso, los resultados del prerreconocimiento y los errores detectados (si los hay) se mostrarán en la parte inferior de la ventana Properties-Hypotheses.
Para detectar el campo de datos “Father’s name”, creamos un elemento de tipo cadena de caracteres, porque el campo de datos buscado tiene una sola línea y su valor, a diferencia del texto estático, cambia de un documento a otro. Llamamos al elemento FathersName y especificamos sus propiedades en la sección Relations. Después creamos un bloque con el mismo nombre en FlexiLayout y especificamos que su región coincide con la región del elemento FathersName (seleccionamos el nombre del elemento FathersName en el campo Source element).
Ahora intentemos emparejar el FlexiLayout con las mismas imágenes, pero introduciendo el valor del elemento NameOfFatherHeader como palabras separadas por espacios.
Para ello, creamos el proyecto Spaces.fsp (carpeta Spaces in StaticText\Project2). El valor del elemento NameOfFatherHeader es el siguiente: Please indicate your father’s name here:. Todas las demás opciones de configuración se dejan sin cambios (son idénticas a las del proyecto Spaces.fsp ubicado en la carpeta Spaces in StaticText\Project1).
Una vez ejecutado el procedimiento de emparejamiento de FlexiLayout seleccionando el comando Match, verá que el nombre del campo se ha detectado correctamente en ambas páginas. Sin embargo, la Chain quality de la hipótesis del elemento NameOfFatherHeader en la página 2 es ahora de aproximadamente 0.987, porque la hipótesis recibió una penalización por un error de reconocimiento causado por la baja calidad de la imagen inicial.
Tenga en cuenta que, si hay espacios en el valor de texto estático que escriba en el campo Texto de búsqueda, cada palabra se analizará por separado y el número máximo o el porcentaje de errores se aplicará a cada una de ellas. La calidad final de la hipótesis de texto estático dependerá entonces de la calidad de cada una de esas palabras.