NNT vs OCR. Tecnologías para el Reconocimiento Matrículas

publicado en: Critical, IDTK | 0

Critical Europe desarrolla su propio código fuente para la captación y reconocimiento de matrículas al que llamamos código NNT (Neural Network Technology) basado en redes Neuronales.

♦ NNT y OCR están diseñados para “leer” el contenido de las matrículas de los vehículos a partir de imágenes capturadas por una cámara, y se usan principalmente en dispositivos de vigilancia, control y gestión de tráfico.

 

¿Pero en que se diferencian estas tecnologías?

NNT (Neural Network Technology)

Este sistema de reconocimiento de las imágenes de los números y letras de las matrículas se puede implementar mediante distintas técnicas de aprendizaje de máquina, siendo las más habituales las redes neuronales. También llamadas Técnicas de aprendizaje profundo (Deep Learning).

Las redes neuronales artificiales son un paradigma de aprendizaje automático inspirado en el funcionamiento del cerebro biológico. Estas redes están compuestas por neuronas interconectadas entre sí que colaboran para producir una salida a partir de los datos de entrada de la red. Cada neurona artificial es una unidad de procesamiento que recibe una serie de señales de entrada que multiplica por un peso determinado. La neurona calcula la suma del producto de cada entrada por su peso correspondiente – al que se le suele añadir un factor de corrección, y aplica al valor resultante a una función activación que produce un valor de salida u otro, dependiendo de si la suma de señales y pesos supera un umbral determinado.

OCR (Optical Character Reconigtion)

OCR es una tecnología que convierte el texto que aparece en una imagen en un archivo de texto que podrá ser editado y utilizado como tal por cualquier otro programa o aplicación que lo necesite.

Partiendo de una imagen perfecta, es decir, una imagen con sólo dos niveles de gris, el reconocimiento de estos caracteres se realizará básicamente comparándolos con unos patrones o plantillas que contienen todos los posibles caracteres. Ahora bien, las imágenes reales no son perfectas, por lo tanto el OCR se encuentra con varios problemas:

  • El dispositivo que obtiene la imagen puede introducir niveles de grises al fondo que no pertenecen a la imagen original.
  • La resolución de estos dispositivos puede introducir ruido en la imagen, afectando los píxeles que han de ser procesados.
  • La distancia que separa a unos caracteres de otros, al no ser siempre la misma, puede producir errores de reconocimiento.
  • La conexión de dos o más caracteres por píxeles comunes también puede producir errores.

Las redes neuronales artificiales se organizan en capas de neuronas donde cada capa procesa la información recibida de la anterior. El número de capas y el tipo de función de activación de las neuronas determina la complejidad de los problemas que puede resolver la red: desde detectar patrones sencillos en datos linealmente separables (una capa), a complejas relaciones no lineales entre los datos de entrada (más de tres capas). Las redes con una o más capas intermedias entre la entrada y la salida son lo que se denominan redes profundas, y son la base del Deep Learning o aprendizaje profundo.

El algoritmo de aprendizaje de estas redes permite extraer los atributos o características de cada clase a partir de un conjunto de datos de entrenamiento previamente clasificado. Estos atributos son los pesos de las diferentes neuronas de la red, y sus valores se calculan de manera iterativa mediante un método de aprendizaje supervisado denominado backpropagation o “propagación de errores hacia atrás”. El algoritmo consta de dos etapas que se repiten iterativamente por cada elemento del conjunto de entrenamiento:

  • En la primera se calcula la clase a la que pertenece el ejemplar de entrada según los valores actuales de los pesos de la red. Una vez clasificado, el algoritmo determina la validez de dicha clasificación mediante una función de error o coste que calcula lo buena o mala que es, comparándola con la clase a la que realmente pertenece el ejemplo de entrenamiento introducido en la red.
  • Conocido el error, la segunda etapa del algoritmo lo propaga hacia atrás a todas las neuronas de la red que han contribuido a la clasificación del ejemplar, recibiendo cada una la “porción” del error correspondiente en función de su aportación, para que actualicen los pesos proporcionalmente, de tal manera que los nuevos valores reduzcan el error de clasificación. El algoritmo empleado para esta optimización suele ser el de descenso del gradiente. La combinación de ambos métodos – propagación hacia atrás y descenso del gradiente – tiene como objetivo minimizar la función de error, actualizando sus parámetros (los pesos de la red) en la dirección opuesta a su gradiente (la derivada parcial de la función de error en base a dichos pesos). Este gradiente se calcula en cada una de las capas de neuronas implicadas en la clasificación del ejemplar.

Todos los algoritmos de OCR tienen la finalidad de poder diferenciar un texto de una imagen cualquiera. Para hacerlo se basan en cuatro etapas:

  1. Binarización o caracterización.

La mayor parte de algoritmos de OCR parten como base de una imagen binaria (dos colores). Por lo tanto es conveniente convertir una imagen de escala de grises, o una de color, en una imagen en blanco y negro, de tal forma que se preserven las propiedades esenciales de la imagen. Una forma de hacerlo es mediante el histograma de la imagen, donde se muestra el número de píxeles para cada nivel de grises que aparece a la imagen

  1. Fragmentación o segmentación de la imagen.

Es el proceso más costoso y necesario para el posterior reconocimiento de caracteres. La segmentación de una imagen implica la detección mediante procedimientos de “etiquetado determinista” o estocástico de los contornos o regiones de la imagen, basándose en la información de intensidad o información espacial. Permite la descomposición de un texto en diferentes entidades lógicas, que han de ser suficientemente invariables, para ser independientes del escritor, y suficientemente significativas para su reconocimiento.

  1. Adelgazamiento de los componentes.

Aislados los componentes conexos de la imagen, se les tendrá que aplicar un proceso de adelgazamiento para cada uno de ellos. Este procedimiento consiste en ir borrando sucesivamente los puntos de los contornos de cada componente de forma que se conserve su tipología. La eliminación de los puntos ha de seguir un esquema de barridos sucesivos para que la imagen continúe teniendo las mismas proporciones que la original y así conseguir que no quede deforme.

  1. Comparación con patrones.

Se comparan los caracteres obtenidos anteriormente con unos teóricos (patrones) almacenados en una base de datos. El método de proyección, en el cual se obtienen proyecciones verticales y horizontales del carácter por reconocer, y se comparan con el alfabeto de caracteres posibles hasta encontrar la máxima coincidencia.

Las redes NNT (Neural Network Technology) son hoy por hoy el “estado del arte” en el campo de la visión artificial, donde han demostrado una eficacia muy superior a otras técnicas, y esto es debido a tres ventajas clave de su arquitectura:

  1. Posibilidad de detectar un atributo en cualquier posición de la imagen gracias al deslizamiento de la ventana.
  2. Tolerancia a leves variaciones de rotación, traslación o escala, gracias a las capas de pooling.
  3. Capacidad para reconocer atributos o características complejas de alto nivel mediante la combinación de los filtros de las capas convolucionales

Una vez introducida una imagen, el sistema ejecutará el proceso de segmentación que consiste en la detección de los posibles números y letras presentes en la matrícula. El módulo de código que realiza este proceso lleva a cabo una segmentación basada en la detección de contornos, empleando para ello las funciones de la popular librería de visión artificial OpenCV. La etapa de reconocimiento de caracteres se realizará mediante una red neuronal (NNT) entrenada previamente con un conjunto de datos con imágenes de números y letras generadas por ordenador con distintas tipografías y estilos. La salida del sistema será una cadena de texto compuesta por los caracteres detectados en la imagen de la matrícula de entrada.

La eficacia de un sistema de clasificación de imágenes basado en una red neuronal convolucional depende tanto de la arquitectura y ajustes de la red, como del conjunto de datos empleado para su entrenamiento. Este último debe ser suficientemente amplio y representativo del problema que se quiere resolver.

El software OCR debe ser capaz de afrontar diferentes dificultades posibles, que incluyen:

  • Resolución de imagenpobre, a menudo porque la matrícula está demasiado lejos, aunque a menudo es resultado del uso de una cámara de baja calidad.
  • Imágenes desenfocadas, en particular desenfoque de movimientoy muy a menudo en unidades móviles
  • Iluminaciónpobre y bajo contraste debido a sobreexposición, reflexión o sombras
  • Un objeto que oscurece (parte de) la matrícula, a menudo una barra del remolque, o suciedad en la matrícula
  • Técnicas de evasión

Desde Critical Europe creemos firmemente que el uso y la apuesta por las tecnologías  Deep Learning, a la que en nuestra adaptación hemos bautizado como NNT para la fabricación de nuestros equipos captación y reconocimiento de matrículas IDTK. Son todo un acierto, aportándonos una serie de ventajas y beneficios como la consecución de capturas perfectas en ángulos complicados, contraluces extremos, larga distancia. Además de una alta tasa de reconocimiento en lecturas de marca, tipo y color del vehículo.

Fuentes: wikipedia , uoc

Conclusiones:

 

 

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *