AI Tutorial

OCR y Resumen de Texto con EasyOCR y GPT-3 Tutorial

Image showing text extraction and summarization process with EasyOCR and GPT-3.

Adquiriendo Habilidades Avanzadas: YOLOv7 y GPT-3 al Alcance de Tu Mano

Al final de este tutorial de IA, sabrás cómo usar EasyOCR para la extracción de texto de diversas fuentes como fotos, ¡y aprovechar el poder de GPT-3 de OpenAI para la resumir textos!

Desentrañando EasyOCR: Una Potente Herramienta de Software

EasyOCR, una entidad privada, es un gigante en el ámbito de la publicación de software, consultoría y suministro. Se destacan en la creación de software listo para usar, software de sistemas operativos, software de aplicaciones comerciales y software de juegos de computadora para todas las plataformas. También ofrecen soluciones de software personalizadas después de un análisis exhaustivo de las necesidades y problemas de los usuarios.

YOLOv7 Revelado: El Futuro de la Detección de Objetos

YOLOv7, la última adición a la familia de detectores de objetos de una sola etapa YOLO, es un cambio completo en el campo de la detección de objetos. Procesa fotogramas de imágenes a través de un backbone para extraer características, que luego se mezclan y combinan en un 'cuello', y finalmente se pasan a la 'cabeza' de la red. Aquí, predice las ubicaciones y clases de objetos, trazando cuadros delimitadores alrededor de ellos. Se lleva a cabo un paso de post-procesamiento mediante supresión de no máximos (NMS) para llegar a su predicción final.

YOLOv7, ideado por WongKinYiu y Alexey Bochkovskiy (AlexeyAB), introduce varios cambios en la red YOLO y en las rutinas de entrenamiento para mejorar la precisión de los cuadros delimitadores y la velocidad de inferencia. Emplea una agregación de capas eficientes ampliadas, técnicas de escalado de modelos, planificación de reparametrización y una cabeza auxiliar para predicciones de grueso a fino. El repositorio de YOLOv7 en GitHub proporciona todo el código necesario para comenzar a entrenar YOLOv7 en datos personalizados, definido en PyTorch y escrito en Python.

Comenzando con YOLOv7

Instalando Dependencias

Comenzaremos descargando las bibliotecas necesarias:

pip install easyocr
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

Código

Para este tutorial, usaré VSC, pero puedes usar cualquier entorno que desees, incluidos notebooks o Google Colab.

Nota: usaré un solo archivo para este tutorial, pero siéntete libre de dividir el código en módulos.

Importar Dependencias

import easyocr
import torch

Extracción de Texto de Imágenes

Para esta tarea, utilizaremos EasyOCR. Crearemos una clase que podrá extraer texto para nosotros!

En el método __init__ definimos el Reader para inglés, utilizará GPU si está disponible, y descargará los modelos en el directorio ./models si no han sido descargados aún.

El método __call__ nos permite llamar directamente al método extract_text utilizando solo la instancia de la clase como una función, por ejemplo:

reader = EasyOCRReader()
extracted_text = reader(image)

El último método es extract_text. Toma una imagen como argumento y devuelve una lista de textos extraídos y la imagen con cuadros delimitadores. Filtra los textos con una confianza menor al 45%. El método devuelve una tupla: lista de textos extraídos e imagen con cuadros delimitadores.

Resultados

Aquí están los resultados después de extraer texto de una imagen:

  • Imagen con cuadros delimitadores
  • Texto extraído

¡No está tan mal!

Resumen de Texto

¡Ya hemos hecho un gran trabajo! Pero aún no ha terminado. Ahora pasamos al resumen de texto utilizando GPT-3.

En este caso, también creamos una clase, que manejará nuestras solicitudes a GPT.

Primero, crearé un archivo .env y colocaré mi clave API de OpenAI aquí.

Ahora definiré la clase para GPT-3.

Definición de Clase GPT-3

class GPT3:
    def __init__(self, api_key):
        self.api_key = api_key
        self.model = 'text-davinci-002'

    def __call__(self, prompt):
        return self.predict(prompt)

    def predict(self, prompt):
        content = openai.Completion.create(model=self.model, prompt=prompt)
        return content['choices'][0]['text']

    def summarize(self, text):
        return self.predict(f'Summarize this text: {text}')

¡Probando el Código!

Después de completar el trabajo, nuestro código se ve así:

// Inserta tu código completo aquí

Correré el código nuevamente y veré qué pasa.

Resultados Finales

Podemos evaluar los resultados:

  • Imagen con cuadros delimitadores
  • Texto extraído y resultados de resumir

¡Guau! ¡Mira esto! Realmente podemos crear una aplicación simple que resume nuestro texto de una foto normal. Espero que puedas darle un buen uso.

Aquí te dejo un enlace al repositorio completo. ¡Diviértete!

¿Cuántas Aplicaciones de IA Puedo Construir?

Es una pregunta tonta porque las únicas limitaciones son tus recursos. Si tienes una idea realmente buena que puede resolver un problema real, ya estás a mitad de camino. También necesitas construirla. Y comercializarla también. Pero podemos ayudarte con todos esos pasos.

Solo únete a nuestros hackatones de IA y cuéntale a nuestra increíble comunidad de más de 52,000 constructores de IA de todo el mundo sobre tu idea. Luego constrúyela con ellos en 7 días y aplícala a nuestro programa AI Slingshot. Es realmente fácil, ¿verdad? Lablab.ai es un lugar para la innovación, ¡y te damos la bienvenida a unirte!

Puede que te interese

Cohere Chrome Extension for Article Summarization Tutorial
A tutorial for creating powerful applications using Streamlit and GPT-3 with Python.

Dejar un comentario

Todos los comentarios se revisan antes de su publicación.

Este sitio está protegido por hCaptcha y se aplican la Política de privacidad de hCaptcha y los Términos del servicio.