Incorpore PaddleOCR con Amazon SageMaker Projects para MLOps para realizar reconocimiento óptico de caracteres en documentos de identidad PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Incorpore PaddleOCR con Amazon SageMaker Projects for MLOps para realizar reconocimiento óptico de caracteres en documentos de identidad

El reconocimiento óptico de caracteres (OCR) es la tarea de convertir texto impreso o escrito a mano en texto codificado por máquina. OCR se ha utilizado ampliamente en varios escenarios, como la electronización de documentos y la autenticación de identidad. Debido a que OCR puede reducir en gran medida el esfuerzo manual para registrar información clave y servir como un paso de entrada para comprender grandes volúmenes de documentos, un sistema OCR preciso juega un papel crucial en la era de la transformación digital.

La comunidad de código abierto y los investigadores se están concentrando en cómo mejorar la precisión de OCR, la facilidad de uso, la integración con modelos previamente entrenados, la extensión y la flexibilidad. Entre muchos marcos propuestos, PaddleOCR ha ganado una atención creciente recientemente. El marco propuesto se concentra en obtener una alta precisión mientras se equilibra la eficiencia computacional. Además, los modelos preentrenados para chino e inglés lo hacen popular en el mercado basado en el idioma chino. Ver el Repositorio de GitHub de PaddleOCR para más información.

En AWS, también hemos propuesto servicios de inteligencia artificial integrados que están listos para usar sin experiencia en aprendizaje automático (ML). Para extraer texto y datos estructurados como tablas y formularios de documentos, puede usar Amazon Textil. Utiliza técnicas de ML para leer y procesar cualquier tipo de documento, extrayendo con precisión texto, escritura a mano, tablas y otros datos sin esfuerzo manual.

Para los científicos de datos que desean la flexibilidad de usar un marco de código abierto para desarrollar su propio modelo OCR, también ofrecemos el servicio ML totalmente administrado. Amazon SageMaker. SageMaker le permite implementar las mejores prácticas de MLOps a lo largo del ciclo de vida de ML y proporciona plantillas y conjuntos de herramientas para reducir el trabajo pesado indiferenciado para poner proyectos de ML en producción.

En esta publicación, nos concentramos en desarrollar modelos personalizados dentro del marco PaddleOCR en SageMaker. Recorremos el ciclo de vida del desarrollo de ML para ilustrar cómo SageMaker puede ayudarlo a crear y entrenar un modelo y, finalmente, implementar el modelo como un servicio web. Aunque ilustramos esta solución con PaddleOCR, la guía general es válida para marcos arbitrarios que se usarán en SageMaker. Para acompañar esta publicación, también proporcionamos un código de muestra en el Repositorio GitHub.

Marco PaddleOCR

Como un marco de OCR ampliamente adoptado, PaddleOCR contiene detección de texto enriquecido, reconocimiento de texto y algoritmos de extremo a extremo. Elige la Binarización Diferenciable (DB) y la Red Neural Recurrente Convolucional (CRNN) como modelos básicos de detección y reconocimiento, y propone una serie de modelos, denominados PP-OCR, para aplicaciones industriales tras una serie de estrategias de optimización.

El modelo PP-OCR está dirigido a escenarios generales y forma una biblioteca modelo de diferentes idiomas. Consta de tres partes: detección de texto, detección y rectificación de casillas y reconocimiento de texto, ilustrado en la siguiente figura en el PaddleOCR repositorio oficial de GitHub. También puede consultar el artículo de investigación PP-OCR: un práctico sistema OCR ultraligero para obtener más información.

Para ser más específicos, PaddleOCR consta de tres tareas consecutivas:

  • Detección de texto – El propósito de la detección de texto es ubicar el área de texto en la imagen. Tales tareas pueden basarse en una red de segmentación simple.
  • Detección y rectificación de cajas – Cada cuadro de texto debe transformarse en un cuadro de rectángulo horizontal para el reconocimiento de texto posterior. Para ello, PaddleOCR propone entrenar un clasificador de dirección de texto (tarea de clasificación de imágenes) para determinar la dirección del texto.
  • Reconocimiento de texto – Después de detectar el cuadro de texto, el modelo de reconocimiento de texto realiza una inferencia en cada cuadro de texto y genera los resultados según la ubicación del cuadro de texto. PaddleOCR adopta el método ampliamente utilizado CRNN.

PaddleOCR proporciona modelos preentrenados de alta calidad que son comparables a los efectos comerciales. Puede usar el modelo preentrenado para un modelo de detección, un clasificador de dirección o un modelo de reconocimiento, o puede ajustar y volver a entrenar cada modelo individual para que sirva a su caso de uso. Para aumentar la eficiencia y la eficacia de la detección de chino tradicional e inglés, ilustramos cómo ajustar el modelo de reconocimiento de texto. El modelo pre-entrenado que elegimos es ch_ppocr_mobile_v2.0_rec_tren, que es un modelo liviano que admite chino, inglés y reconocimiento de números. El siguiente es un resultado de inferencia de ejemplo utilizando una tarjeta de identidad de Hong Kong.

Incorpore PaddleOCR con Amazon SageMaker Projects para MLOps para realizar reconocimiento óptico de caracteres en documentos de identidad PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

En las siguientes secciones, explicamos cómo ajustar el modelo preentrenado con SageMaker.

Mejores prácticas de MLOps con SageMaker

SageMaker es un servicio de aprendizaje automático completamente administrado. Con SageMaker, los científicos de datos y los desarrolladores pueden crear y entrenar modelos de aprendizaje automático de manera rápida y sencilla, y luego implementarlos directamente en un entorno administrado listo para la producción.

Muchos científicos de datos usan SageMaker para acelerar el ciclo de vida de ML. En esta sección, ilustramos cómo SageMaker puede ayudarlo desde la experimentación hasta la producción de ML. Siguiendo los pasos estándar de un proyecto de ML, desde la frase experimental (desarrollo de código y experimentos) hasta la frase operativa (automatización del flujo de trabajo de creación de modelos y canalizaciones de implementación), SageMaker puede brindar eficiencia en los siguientes pasos:

  1. Explore los datos y cree el código ML con Estudio Amazon SageMaker cuadernos.
  2. Entrene y ajuste el modelo con un trabajo de entrenamiento de SageMaker.
  3. Implemente el modelo con un extremo de SageMaker para la publicación de modelos.
  4. Orqueste el flujo de trabajo con Canalizaciones de Amazon SageMaker.

El siguiente diagrama ilustra esta arquitectura y flujo de trabajo.

Incorpore PaddleOCR con Amazon SageMaker Projects para MLOps para realizar reconocimiento óptico de caracteres en documentos de identidad PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Es importante tener en cuenta que puede utilizar SageMaker de forma modular. Por ejemplo, puede compilar su código con un entorno de desarrollo integrado (IDE) local y entrenar e implementar su modelo en SageMaker, o puede desarrollar y entrenar su modelo en sus propias fuentes informáticas de clúster y usar una canalización de SageMaker para orquestar flujos de trabajo y implementar en un punto final de SageMaker. Esto significa que SageMaker proporciona una plataforma abierta para adaptarse a sus propios requisitos.

Vea el código en nuestro Repositorio GitHub y README para comprender la estructura del código.

Aprovisionar un proyecto de SageMaker

Puedes usar Proyectos de Amazon SageMaker para iniciar tu viaje. Con un proyecto de SageMaker, puede administrar las versiones de sus repositorios de Git para que pueda colaborar entre equipos de manera más eficiente, garantizar la coherencia del código y permitir la integración continua y la entrega continua (CI/CD). Si bien los cuadernos son útiles para la creación y experimentación de modelos, cuando tiene un equipo de científicos de datos e ingenieros de ML trabajando en un problema de ML, necesita una forma más escalable de mantener la coherencia del código y tener un control de versión más estricto.

Los proyectos de SageMaker crean una plantilla MLOps preconfigurada, que incluye los componentes esenciales para simplificar la integración de PaddleOCR:

  • Un repositorio de código para crear imágenes de contenedores personalizadas para procesamiento, capacitación e inferencia, integrado con herramientas de CI/CD. Esto nos permite configurar nuestra imagen Docker personalizada y enviarla a Registro de contenedores elásticos de Amazon (Amazon ECR) para estar listo para usar.
  • Una canalización de SageMaker que define los pasos para la preparación de datos, el entrenamiento, la evaluación de modelos y el registro de modelos. Esto nos prepara para estar listos para MLOps cuando el proyecto ML entre en producción.
  • Otros recursos útiles, como un repositorio de Git para el control de versiones de código, un grupo de modelos que contiene versiones de modelos, un activador de cambio de código para la canalización de creación de modelos y un activador basado en eventos para la canalización de implementación de modelos.

Puede usar el código inicial de SageMaker para crear proyectos estándar de SageMaker o una plantilla específica que su organización creó para los miembros del equipo. En esta publicación, usamos el estándar Plantilla MLOps para creación de imágenes, creación de modelos e implementación de modelos. Para obtener más información sobre cómo crear un proyecto en Studio, consulte Cree un proyecto MLOps con Amazon SageMaker Studio.

Explore datos y cree código ML con SageMaker Studio Notebooks

Los cuadernos de SageMaker Studio son cuadernos colaborativos que puede iniciar rápidamente porque no necesita configurar instancias informáticas ni almacenamiento de archivos de antemano. Muchos científicos de datos prefieren usar este IDE basado en la web para desarrollar el código ML, depurar rápidamente la API de la biblioteca y hacer que todo funcione con una pequeña muestra de datos para validar el script de entrenamiento.

En las notebooks de Studio, puede usar un entorno preconstruido para marcos comunes como TensorFlow, PyTorch, Pandas y Scikit-Learn. Puede instalar las dependencias en el kernel prediseñado o crear su propia imagen de kernel persistente. Para obtener más información, consulte Instale bibliotecas externas y kernels en Amazon SageMaker Studio. Los cuadernos de Studio también proporcionan un entorno de Python para activar trabajos de capacitación, implementación u otros servicios de AWS de SageMaker. En las siguientes secciones, ilustramos cómo usar las notebooks de Studio como un entorno para desencadenar trabajos de capacitación e implementación.

SageMaker proporciona un IDE potente; es una plataforma ML abierta donde los científicos de datos tienen la flexibilidad de usar su entorno de desarrollo preferido. Para los científicos de datos que prefieren un IDE local como PyCharm o Visual Studio Code, puede usar el entorno Python local para desarrollar su código ML y usar SageMaker para entrenar en un entorno escalable administrado. Para más información, ver Ejecute su trabajo de TensorFlow en Amazon SageMaker con un IDE de PyCharm. Una vez que tenga un modelo sólido, puede adoptar las mejores prácticas de MLOps con SageMaker.

Actualmente, SageMaker también ofrece Instancias de notebook de SageMaker como nuestra solución heredada para el entorno de Jupyter Notebook. Tiene la flexibilidad de ejecutar el comando de compilación de Docker y use el modo local de SageMaker para entrenar en su instancia de notebook. También proporcionamos código de muestra para PaddleOCR en nuestro repositorio de código: ./train_and_deploy/notebook.ipynb.

Cree una imagen personalizada con una plantilla de proyecto de SageMaker

SageMaker hace un uso extensivo de los contenedores de Docker para tareas de compilación y tiempo de ejecución. Puede ejecutar su propio contenedor con SageMaker fácilmente. Ver más detalles técnicos en Utilice sus propios algoritmos de entrenamiento.

Sin embargo, como científico de datos, la creación de un contenedor puede no ser sencilla. Los proyectos de SageMaker le brindan una forma sencilla de administrar dependencias personalizadas a través de una canalización de CI/CD de creación de imágenes. Cuando usa un proyecto de SageMaker, puede realizar actualizaciones en la imagen de entrenamiento con su Dockerfile de contenedor personalizado. Para obtener instrucciones paso a paso, consulte Cree proyectos de Amazon SageMaker con canalizaciones de CI / CD de creación de imágenes. Con la estructura proporcionada en la plantilla, puede modificar el código proporcionado en este repositorio para crear un contenedor de capacitación de PaddleOCR.

Para esta publicación, mostramos la simplicidad de construir una imagen personalizada para procesamiento, entrenamiento e inferencia. El repositorio de GitHub contiene tres carpetas:

Estos proyectos siguen una estructura similar. Tome la imagen del contenedor de entrenamiento como ejemplo; la image-build-train/ El repositorio contiene los siguientes archivos:

  • El archivo codebuild-buildspec.yml, que se utiliza para configurar Construcción de código AWS para que la imagen se pueda compilar y enviar a Amazon ECR.
  • El Dockerfile utilizado para la compilación de Docker, que contiene todas las dependencias y el código de entrenamiento.
  • El punto de entrada de train.py para el script de entrenamiento, con todos los hiperparámetros (como la tasa de aprendizaje y el tamaño del lote) que se pueden configurar como argumento. Estos argumentos se especifican cuando inicia el trabajo de entrenamiento.
  • Las dependencias.

Cuando inserta el código en el repositorio correspondiente, se activa AWS CodePipeline para construir un contenedor de entrenamiento para usted. La imagen del contenedor personalizado se almacena en un repositorio de Amazon ECR, como se ilustra en la figura anterior. Se adopta un procedimiento similar para generar la imagen de inferencia.

Entrene el modelo con el SDK de entrenamiento de SageMaker

Después de validar y empaquetar el código de su algoritmo en un contenedor, puede usar un trabajo de entrenamiento de SageMaker para aprovisionar un entorno administrado para entrenar el modelo. Este entorno es efímero, lo que significa que puede tener recursos informáticos separados y seguros (como GPU) o un entorno distribuido de múltiples GPU para ejecutar su código. Cuando finaliza la capacitación, SageMaker guarda los artefactos del modelo resultante en un Servicio de almacenamiento simple de Amazon (Amazon S3) ubicación que especifique. Todos los datos de registro y metadatos persisten en el Consola de administración de AWS, estudio y Reloj en la nube de Amazon.

El trabajo de entrenamiento incluye varias piezas importantes de información:

  • La URL del depósito de S3 donde almacenó los datos de entrenamiento
  • La URL del depósito de S3 donde desea almacenar el resultado del trabajo
  • Los recursos informáticos administrados que desea que SageMaker use para el entrenamiento de modelos
  • La ruta de Amazon ECR donde se almacena el contenedor de entrenamiento

Para obtener más información acerca de los trabajos de entrenamiento, consulte Modelos de trenes. El código de ejemplo para el trabajo de entrenamiento está disponible en experimentos-tren-cuaderno.ipynb.

SageMaker crea los hiperparámetros en un CreateTrainingJob solicitud disponible en el contenedor Docker en el /opt/ml/input/config/hyperparameters.json archivo.

Usamos el contenedor de entrenamiento personalizado como punto de entrada y especificamos un entorno de GPU para la infraestructura. Todos los hiperparámetros relevantes se detallan como parámetros, lo que nos permite realizar un seguimiento de cada configuración de trabajo individual y compararlos con el seguimiento del experimento.

Debido a que el proceso de ciencia de datos está muy orientado a la investigación, es común que se ejecuten varios experimentos en paralelo. Esto requiere un enfoque que realice un seguimiento de todos los diferentes experimentos, diferentes algoritmos y conjuntos de datos e hiperparámetros potencialmente diferentes que se intentaron. Experimentos de Amazon SageMaker le permite organizar, rastrear, comparar y evaluar sus experimentos de aprendizaje automático. Lo demostramos también en experimentos-tren-cuaderno.ipynb. Para obtener más detalles, consulte Administre el aprendizaje automático con los experimentos de Amazon SageMaker.

Implementar el modelo para la publicación de modelos

En cuanto a la implementación, especialmente para el servicio de modelos en tiempo real, a muchos científicos de datos les puede resultar difícil hacerlo sin la ayuda de los equipos de operaciones. SageMaker simplifica la implementación de su modelo entrenado en producción con el SDK de SageMaker Python. Puede implementar su modelo en los servicios de alojamiento de SageMaker y obtener un punto final para usar en la inferencia en tiempo real.

En muchas organizaciones, los científicos de datos pueden no ser responsables de mantener la infraestructura del punto final. Sin embargo, probar su modelo como punto final y garantizar los comportamientos de predicción correctos es responsabilidad de los científicos de datos. Por lo tanto, SageMaker simplificó las tareas de implementación al agregar un conjunto de herramientas y SDK para esto.

Para el caso de uso en la publicación, queremos tener capacidades de baja latencia, interactivas y en tiempo real. Inferencia en tiempo real es ideal para esta carga de trabajo de inferencia. Sin embargo, existen muchas opciones que se adaptan a cada requerimiento específico. Para obtener más información, consulte Implementar modelos para inferencia.

Para implementar la imagen personalizada, los científicos de datos pueden usar el SDK de SageMaker, ilustrado en

experimentos-implementar-notebook.ipynb.

En create_model solicitud, la definición del contenedor incluye la ModelDataUrl parámetro, que identifica la ubicación de Amazon S3 donde se almacenan los artefactos del modelo. SageMaker utiliza esta información para determinar desde dónde copiar los artefactos del modelo. Copia los artefactos al /opt/ml/model directorio para uso de su código de inferencia. los serve y predictor.py es el punto de entrada para servir, con el artefacto modelo que se carga cuando inicia la implementación. Para más información, ver Utilice su propio código de inferencia con los servicios de alojamiento.

Organice su flujo de trabajo con SageMaker Pipelines

El último paso es envolver su código como flujos de trabajo de ML de extremo a extremo y aplicar las mejores prácticas de MLOps. En SageMaker, SageMaker Pipelines administra la carga de trabajo de creación de modelos, un gráfico acíclico dirigido (DAG). Pipelines es un servicio completamente administrado que admite la orquestación y el seguimiento del linaje de datos. Además, debido a que Pipelines está integrado con SageMaker Python SDK, puede crear sus canalizaciones mediante programación mediante una interfaz Python de alto nivel que usamos anteriormente durante el paso de capacitación.

Proporcionamos un ejemplo de código de canalización para ilustrar la implementación en tubería.py.

La canalización incluye un paso de preprocesamiento para la generación de conjuntos de datos, un paso de entrenamiento, un paso de condición y un paso de registro del modelo. Al final de cada ejecución de canalización, los científicos de datos pueden querer registrar su modelo para los controles de versión e implementar el de mejor rendimiento. El registro de modelos de SageMaker proporciona un lugar central para administrar versiones de modelos, catalogar modelos y desencadenar la implementación automatizada de modelos con el estado de aprobación de un modelo específico. Para obtener más detalles, consulte Registre e implemente modelos con Model Registry.

En un sistema ML, la orquestación del flujo de trabajo automatizado ayuda a prevenir la degradación del rendimiento del modelo, en otras palabras, la desviación del modelo. La detección temprana y proactiva de las desviaciones de datos le permite tomar medidas correctivas, como volver a entrenar modelos. Puede activar la canalización de SageMaker para volver a entrenar una nueva versión del modelo después de que se hayan detectado desviaciones. El desencadenante de una canalización también se puede determinar mediante Monitor de modelo de Amazon SageMaker, que supervisa continuamente la calidad de los modelos en producción. Con la capacidad de captura de datos para registrar información, Model Monitor admite el monitoreo de calidad de datos y modelos, el sesgo y el monitoreo de desviación de atribución de características. Para más detalles, consulte Supervise los modelos en busca de datos y calidad del modelo, sesgo y explicabilidad.

Conclusión

En esta publicación, ilustramos cómo ejecutar el marco PaddleOCR en SageMaker para tareas de OCR. Para ayudar a los científicos de datos a incorporar fácilmente SageMaker, recorrimos el ciclo de vida de desarrollo de ML, desde la creación de algoritmos hasta la capacitación y el alojamiento del modelo como un servicio web para la inferencia en tiempo real. Puede usar el código de plantilla que proporcionamos para migrar un marco arbitrario a la plataforma SageMaker. Pruébelo para su proyecto ML y cuéntenos sus historias de éxito.


Acerca de los autores

Incorpore PaddleOCR con Amazon SageMaker Projects para MLOps para realizar reconocimiento óptico de caracteres en documentos de identidad PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Junyi (Jackie) LIU es científico senior aplicado en AWS. Tiene muchos años de experiencia laboral en el campo del aprendizaje automático. Tiene una rica experiencia práctica en el desarrollo e implementación de soluciones en la construcción de modelos de aprendizaje automático en algoritmos de predicción de la cadena de suministro, sistemas de recomendación de publicidad, OCR y área de PNL.

Incorpore PaddleOCR con Amazon SageMaker Projects para MLOps para realizar reconocimiento óptico de caracteres en documentos de identidad PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Yanwei Cui, PhD, es un arquitecto de soluciones especializado en aprendizaje automático en AWS. Comenzó la investigación de aprendizaje automático en IRISA (Instituto de Investigación de Ciencias de la Computación y Sistemas Aleatorios) y tiene varios años de experiencia en la construcción de aplicaciones industriales impulsadas por inteligencia artificial en visión por computadora, procesamiento de lenguaje natural y predicción de comportamiento de usuarios en línea. En AWS, comparte la experiencia del dominio y ayuda a los clientes a desbloquear el potencial comercial y a generar resultados procesables con el aprendizaje automático a escala. Fuera del trabajo, le gusta leer y viajar.

Incorpore PaddleOCR con Amazon SageMaker Projects para MLOps para realizar reconocimiento óptico de caracteres en documentos de identidad PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Yi An Chen es desarrolladora de software en Amazon Lab 126. Tiene más de 10 años de experiencia en el desarrollo de productos impulsados ​​por el aprendizaje automático en diversas disciplinas, incluida la personalización, el procesamiento del lenguaje natural y la visión artificial. Fuera del trabajo, le gusta hacer carreras largas y andar en bicicleta.

Sello de tiempo:

Mas de Aprendizaje automático de AWS