Ayuda a proteger la Gran Barrera de Coral con TensorFlow en Kaggle Únete Challenge

Reconocimiento óptico de caracteres (OCR)

El reconocimiento óptico de caracteres (OCR) es el proceso de reconocer personajes a partir de imágenes mediante técnicas de visión por computadora y aprendizaje automático. Esta aplicación de referencia demuestra cómo usar TensorFlow Lite para hacer OCR. Se utiliza una combinación de texto modelo de detección y un modelo de reconocimiento de texto como una tubería de OCR para reconocer los caracteres de texto.

Empezar

Si es nuevo en TensorFlow Lite y está trabajando con Android, le recomendamos que explore la siguiente aplicación de ejemplo que puede ayudarlo a comenzar.

Ejemplo de Android

Si está utilizando una plataforma que no sea Android, o si ya está familiarizado con las APIs TensorFlow Lite , puede descargar los modelos de TF Hub .

Cómo funciona

Las tareas de OCR a menudo se dividen en 2 etapas. Primero, usamos un modelo de detección de texto para detectar los cuadros delimitadores alrededor de posibles textos. En segundo lugar, introducimos cuadros delimitadores procesados ​​en un modelo de reconocimiento de texto para determinar caracteres específicos dentro de los cuadros delimitadores (también necesitamos hacer Supresión no máxima, transformación de perspectiva, etc. antes de la reconocimiento de texto). En nuestro caso, ambos modelos son de TensorFlow Hub y son modelos cuantificados FP16.

Benchmarks de desempeño

Números de referencia de rendimiento son generados con la herramienta descrita aquí .

Nombre del modelo Tamaño del modelo Dispositivo UPC GPU
Detección de texto 45,9 Mb Pixel 4 (Android 10) 181,93 ms * 89,77 ms *
Reconocimiento de texto 16,8 Mb Pixel 4 (Android 10) 338,33 ms * N / A**

* 4 hilos utilizados.

** este modelo no pudo usar el delegado de GPU porque necesitamos operaciones de TensorFlow para ejecutarlo

Entradas

El modelo de detección de texto acepta un 4-D float32 Tensor de (1, 320, 320, 3) como entrada.

El modelo de reconocimiento de texto acepta un 4-D float32 Tensor de (1, 31, 200, 1) como entrada.

Salidas

El modelo de detección de texto devuelve un 4-D float32 Tensor de forma (1, 80, 80, 5) como cuadro delimitador y un 4-D float32 Tensor de forma (1,80, 80, 5) como puntuación de la detección.

El modelo de reconocimiento de texto devuelve un 2-D float32 Tensor de forma (1, 48) como los índices de asignación a la lista alfabeto '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'

Limitaciones

  • El actual modelo de reconocimiento de texto es entrenado utilizando datos sintéticos con las letras y los números en inglés, por lo que sólo es compatible Inglés.

  • Los modelos no son lo suficientemente generales para OCR en la naturaleza (digamos, imágenes aleatorias tomadas con la cámara de un teléfono inteligente en condiciones de poca luz).

Por lo tanto, hemos elegido 3 logotipos de productos de Google solo para demostrar cómo hacer OCR con TensorFlow Lite. Si usted está buscando un producto de OCR de calidad industrial listo para su uso, se debe considerar Google ML Kit . ML Kit, que usa TFLite debajo, debería ser suficiente para la mayoría de los casos de uso de OCR, pero hay algunos casos en los que es posible que desee crear su propia solución de OCR con TFLite. Algunos ejemplos son:

  • Tiene sus propios modelos TFLite de detección / reconocimiento de texto que le gustaría usar
  • Tiene requisitos comerciales especiales (es decir, reconocer textos que están al revés) y necesita personalizar la canalización de OCR
  • Quieres admitir idiomas que no cubre el Kit de AA
  • Los dispositivos de los usuarios de destino no necesariamente tienen los servicios de Google Play instalados

Referencias