A medida que evolucionan las tecnologías impulsadas por IA, el análisis de imágenes se vuelve cada vez más sofisticado, lo que permite obtener conocimientos más profundos a partir de los datos visuales. Con los avances en los modelos de machine learning, la IA puede procesar las imágenes subidas, extraer metadatos y apoyar la moderación de contenidos a gran escala. Estas herramientas de análisis también contribuyen al modelado predictivo para aplicaciones como la fijación de precios, la optimización visual y la generación de imágenes, haciendo que los flujos de trabajo sean más rentables y eficaces. Al integrar enfoques basados en datos, la IA mejora la automatización y la toma de decisiones, ofreciendo nuevas posibilidades para la interpretación visual inteligente.
Con los rápidos avances en visión artificial y la IA, las empresas y los investigadores están aprovechando las tecnologías para una amplia gama de aplicaciones. Desde la clasificación de imágenes y el OCR (reconocimiento óptico de caracteres) hasta la segmentación y el análisis de vídeo, las herramientas con IA están transformando la forma en que extraemos y analizamos la información visual.
En sectores como las redes sociales, la IA mejora la moderación del contenido al analizar las imágenes a nivel de píxel, garantizar el cumplimiento y mejorar la participación. Las empresas también pueden utilizar Vision API para el procesamiento automatizado de documentos, convirtiendo archivos escaneados, Excel e informes en datos estructurados. Estas aplicaciones agilizan los flujos de trabajo, mejoran la eficacia y permiten a las organizaciones extraer conocimientos significativos de conjuntos de datos visuales a gran escala.
Estos casos de uso ponen de manifiesto el papel creciente del análisis de imágenes con IA en diferentes sectores. En este tutorial, nos centramos en aplicar estas capacidades a las presentaciones de PowerPoint, permitiendo preguntas y respuestas interactivas sobre texto e imágenes utilizando modelos avanzados de visión artificial y modelos de IA
Los modelos de lenguaje de gran tamaño (LLM) han revolucionado el machine learning al permitir obtener conocimiento inteligente a partir de vastos conjuntos de datos de texto no estructurado. Sin embargo, los LLM tradicionales a menudo tienen dificultades con el análisis de imágenes, lo que dificulta extraer conocimiento de gráficos, diagramas y elementos visuales en las presentaciones.
Modelos de lenguaje de gran tamaño (LLM) IBM Granite Vision 3.2 cierra esta brecha al integrar herramientas de IA con algoritmos avanzados de detección de objetos, lo que permite a los usuarios automatizar el análisis multimodal. Este tutorial demuestra cómo agilizar su flujo de trabajo utilizando la IA para extraer y analizar texto e imágenes de archivos de PowerPoint (.pptx), lo que permite preguntas y respuestas interactivas para mejorar el conocimiento de la presentación.
En este tutorial, aprenderá a construir un sistema impulsado por IA capaz de responder en tiempo real a las consultas de los usuarios a partir de diapositivas de PowerPoint utilizando como contexto tanto el texto como las imágenes. Este tutorial le guiará a través de:
Procesamiento de PowerPoint: extraiga texto e imágenes de archivos .pptx para análisis basados en IA.
Preguntas y respuestas basadas en texto: utilice Granite Vision para generar respuestas basadas en el texto extraído de las diapositivas.
Preguntas y respuestas basadas en imágenes:solicite a la IA que analice imágenes, gráficos y diagramas de diapositivas.
Formulación de preguntas optimizada: aprenda a elaborar preguntas eficaces para obtener respuestas de IA precisas y relevantes.
Este tutorial aprovecha tecnologías de vanguardia de IA, incluyendo:
1. IBM Granite Vision: un potente modelo de lenguaje visual (VLM) que procesa tanto texto como imágenes.
2. Python-PPTX: una biblioteca para extraer texto e imágenes de archivos PowerPoint.
3. Transformadores: un marco para procesar las entradas de los modelos de IA de forma eficiente.
Al final de este tutorial, usted podrá:
1. Extraer y procesar el contenido de PowerPoint (texto e imágenes).
2. Utilizar el modelo Granite vision 3.2 para preguntas y respuestas impulsado por IA sobre el contenido de las diapositivas.
3. Hacer preguntas profundas a la IA sobre texto e imágenes.
4. Mejorar la interacción del usuario con las presentaciones mediante explicaciones con IA
Este tutorial está diseñado para desarrolladores de IA, investigadores, creadores de contenido y profesionales empresariales que buscan mejorar sus presentaciones con conocimientos impulsados por IA.
Necesita una cuenta de IBM Cloud para crear un proyecto watsonx.ai.
Aunque puede elegir entre varias herramientas, este tutorial le muestra cómo configurar una cuenta de IBM para utilizar un Jupyter Notebook.
Inicie sesión en watsonx.ai utilizando su cuenta de IBM Cloud.
2. Cree un proyecto watsonx.ai. Puede obtener el ID de su proyecto desde su proyecto. Haga clic en la pestaña Administrar. A continuación, copie el ID del proyecto de la sección Detalles de la página General. Necesita este ID para este tutorial.
Cree un Jupyter Notebook.
4. Cargue el archivo PPTX como activo en watsonx.ai
Este paso abre un entorno de Notebook donde puede copiar el código de este tutorial. También puede descargar este cuaderno en su sistema local y cargarlo en su proyecto watsonx.ai como activo. Este tutorial también está disponible en GitHub.
Nota: Este tutorial necesita infraestructura de GPU para ejecutar el código, por lo que se recomienda utilizar watsonx.ai como se ilustra en este tutorial.
Antes de comenzar a extraer y procesar contenido de PowerPoint, necesitamos instalar las bibliotecas de Python necesarias:
transformadores: proporciona acceso a IBM Granite Vision y a otros modelos de IA.
torch: un marco de deep learning necesario para ejecutar el modelo de manera eficiente.
python-pptx: una biblioteca para extraer texto e imágenes de archivos PowerPoint (.pptx).
Ejecute los siguientes comandos para instalar y actualizar estos paquetes:
En este paso, importamos las bibliotecas necesarias para procesar archivos de PowerPoint, manejar imágenes e interactuar con el modelo IBM Granite Vision:
En este paso, establecemos una conexión con IBM Cloud Object Storage para acceder y recuperar archivos de PowerPoint almacenados en la nube.
Puede aprovechar el soporte para python, proporcionado a través de un fork de la biblioteca boto3 con funciones para aprovechar al máximo IBM Cloud Object Storage. Consulte la documentación oficial para obtener estas credenciales.
ibm_boto3.client: crea un cliente para interactuar con IBM Cloud Object Storage.
ibm_api_key_id: su clave API de IBM Cloud para autenticación.
ibm_auth_endpoint: el endpoint de autenticación para IBM Cloud.
endpoint_url: el endpoint de almacenamiento de objetos en la nube (COS) específico.
Nota: Cuando sube un archivo como activos en watsonx.ai, se almacena automáticamente en IBM Cloud Object Storage. Cuando más adelante importa el archivo en un Jupyter Notebook, watsonx.ai genera e inserta las credenciales necesarias (clave API, endpoint de autenticación y endpoint de almacenamiento) en su notebook. Las credenciales proporcionadas de IBM Cloud Object Storage permiten un acceso seguro para recuperar archivos del almacenamiento, facilitando una integración fluida entre activos watsonx.ai y el entorno del notebook para un procesamiento posterior.
Al configurar esta conexión, podemos importar y procesar de manera fluida presentaciones de PowerPoint almacenadas en IBM Cloud para análisis con IA
En este paso, especificamos el bucket de IBM Cloud Object Storage y los detalles del archivo para localizar y recuperar la presentación de PowerPoint (.pptx) para su procesamiento.
Consulte este documento oficial para obtener los detalles de configuración del bucket a través de la IU de IBM Cloud.
bucket: el nombre del bucket de IBM Cloud Object Storage donde se almacena el archivo.
object_key: el nombre de archivo exacto de la presentación de PowerPoint a la que se desea acceder
En este paso, descargamos el archivo PowerPoint (.pptx) de IBM Cloud Object Storage para procesarlo localmente.
cos_client.get_object(): recupera el archivo del bucket y la clave objeto especificados.
streaming_body.read(): Lee el contenido del archivo en un flujo de bytes para su posterior procesamiento.
En este paso, almacenamos el archivo de PowerPoint descargado (.pptx) localmente para que pueda procesarse.
pptx_path: define el nombre local del archivo donde se guardará la presentación.
open(pptx_path, 'wb'): abre el archivo en modo binario de escritura para almacenar los bytes recuperados.
f.write(pptx_bytes): escribe el contenido del archivo descargado en el archivo.pptx recién creado.
En este paso, imprimimos un mensaje de confirmación para asegurarnos de que el archivo de PowerPoint se ha guardado correctamente. La función "imprimir" muestra la ruta del archivo donde se encuentra el archivo .pptx. El archivo se almacena localmente.
En este paso, definimos una función para procesar el archivo de PowerPoint (.pptx) y extraer su contenido:
slide_texts: almacena el texto extraído de cada diapositiva.
slide_images: almacena las imágenes extraídas como objetos de imagen de la biblioteca de imágenes Python (PIL), junto con sus correspondientes números de diapositiva.
Itera a través de las diapositivas para extraer el texto de las formas que contienen contenido textual e imágenes incrustadas dentro de las diapositivas.
Esta función separa el texto y las imágenes del PPT, lo que permite al agente de chat responder fácilmente a las preguntas de los usuarios basándose en el contenido extraído.
En este paso, llamamos a la función para extraer texto e imágenes del archivo de PowerPoint guardado.
pptx_path: especifica la ruta local del archivo descargado de PowerPoint.
extract_text_and_images_from_pptx(pptx_path): extrae texto e imágenes de las diapositivas.
slide_texts: almacena el texto extraído de todas las diapositivas.
slide_images: almacena las imágenes extraídas.
En este paso, imprimimos el texto extraído de cada diapositiva para verificar que el contenido de PowerPoint se haya procesado correctamente.
enumerate(slide_texts): itera a través del texto extraído, asociando cada uno con su respectivo número de diapositiva.
Separator ('-' * 40): ayuda a distinguir visualmente el contenido de diferentes diapositivas.
En este paso, confirmamos y visualizamos las imágenes extraídas de las diapositivas de PowerPoint.
len: cuenta el número total de imágenes extraídas.
img.show(): abre cada imagen extraída para su revisión.
Puede reemplazar `.show () `por `.save ('filename.png')` para almacenar las imágenes localmente.
En este paso, inicializamos el modelo IBM Granite-Vision-3.2-2B para procesamiento de texto e imágenes con IA.
MODEL_NAME especifica el modelo de Granite Vision preentrenado que se va a utilizar y torch.cuda.is_available() comprueba si hay una GPU (CUDA) disponible para un procesamiento más rápido; de lo contrario, el valor predeterminado es la CPU.
En este paso, cargamos el modelo IBM Granite Vision y su procesador correspondiente para manejar entradas de texto e imágenes.
AutoProcessor.from_pretrained(MODEL_NAME, trust_remote_code=True): carga el procesador preentrenado para formatear las entradas (texto e imágenes) del modelo.
AutoModelForVision2Seq.from_pretrained(MODEL_NAME, trust_remote_code=True, ignore_mismatched_sizes=True).to(device): Carga el modelo de Granite Vision y lo transfiere al dispositivo disponible (GPU o CPU).
donde,
trust_remote_code=True: garantiza la compatibilidad con las implementaciones de modelos personalizados.
ignore_mismatched_sizes=True: evita errores si hay incoherencias menores en el tamaño del modelo.
Nota: Esto puede tardar un poco en cargarse.
En este paso, creamos una función de chat que permite a los usuarios formular preguntas basadas en el texto extraído de las diapositivas de PowerPoint.
Cómo funciona:
En este paso, creamos una función de chat que permite a los usuarios hacer preguntas sobre imágenes individuales extraídas de las diapositivas de PowerPoint.
Cómo funciona:
En este paso, llamamos a la función chat_with_text, que permite al usuario hacer preguntas sobre el texto extraído de las diapositivas de PowerPoint.
Cómo funciona:
RESULTADO
Consulta: ¿Es la integración una ventaja competitiva para su organización?
<|assistant|>
Sí, la integración es una ventaja competitiva para su organización. Le ayuda a avanzar más rápido y a superar los desafíos, y puede provocar un aumento de los costes, ineficiencias, riesgos de seguridad y una mala experiencia del usuario, lo que, en última instancia, pone en peligro la competitividad y la capacidad de una organización para prosperar en un panorama empresarial en rápida evolución.
Haga una pregunta basada en el texto de la presentación (o escriba "exit" para salir): exit
Cuando el usuario preguntaba: "¿Es la integración una ventaja competitiva para su organización?", el modelo Granite Vision procesaba la consulta usando el texto extraído de la diapositiva de PowerPoint y generaba una respuesta.
El modelo reconoció la "integración" como un concepto empresarial y proporcionó una respuesta estructurada de la "diapositiva número 7" explicando tanto sus beneficios como sus riesgos. Destacó que la integración mejora la velocidad y la resolución de problemas, pero también señaló posibles inconvenientes, como el aumento de los costes, las ineficiencias, los riesgos de seguridad y la mala experiencia del usuario si no se gestiona de forma eficaz.
Esta respuesta demuestra la capacidad del modelo para interpretar el texto extraído de la diapositiva y generar una respuesta contextualmente relevante y bien equilibrada
En este paso, llamamos a la función chat_with_images, que permite al usuario hacer preguntas sobre las imágenes extraídas de las diapositivas de PowerPoint.
Cómo funciona:
RESULTADO
Haga una pregunta basada en las imágenes de la presentación (o escriba "exit" para salir): ¿qué es esta imagen?
Introduzca el número de diapositiva (1 a 41) para preguntar por su imagen: 2
Respuesta del modelo: <|system|>
Una charla entre un usuario curioso y un asistente de inteligencia artificial. El asistente ofrece respuestas útiles, detalladas y educadas a las preguntas del usuario.
<|user|>
¿qué es esta imagen?
<|assistant|>
Modelo 3d
Haga una pregunta basada en las imágenes de la presentación (o escriba "exit" para salir): explique esta imagen
Introduzca el número de diapositiva (1 a 41) para preguntar por su imagen: 2
Respuesta del modelo: <|system|>
Una charla entre un usuario curioso y un asistente de inteligencia artificial. El asistente ofrece respuestas útiles, detalladas y educadas a las preguntas del usuario.
<|user|>
explique esta imagen
<|assistant|>
la imagen es un modelo 3D de un cubo
Haga una pregunta basada en las imágenes de la presentación (o escriba "exit" para salir): ¿puede explicar este gráfico?
Introduzca el número de diapositiva (1 a 41) para preguntar por su imagen: 1
Respuesta del modelo: <|system|>
Una charla entre un usuario curioso y un asistente de inteligencia artificial. El asistente ofrece respuestas útiles, detalladas y educadas a las preguntas del usuario.
<|user|>
¿puede explicar este gráfico?
<|assistant|>
Aquí hay un gráfico de barras titulado Progresión de madurez del mercado de nube empresarial de la 1ª a la 4ª generación. El eje X mide la progresión de las generaciones, mientras que el eje Y traza la progresión de la madurez a lo largo de los años. El gráfico muestra que, a medida que avanzan las generaciones, aumenta la madurez del mercado de la nube empresarial.
Haga una pregunta basada en las imágenes de la presentación (o escriba "exit" para salir): exit
Cuando el usuario hacía preguntas relacionadas con las imágenes, el modelo Granite Vision procesaba las imágenes seleccionadas y generaba respuestas basadas en su comprensión del contenido visual.
Para la pregunta "¿Qué es esta imagen?" (diapositiva 2), el modelo identificó la imagen como un "modelo 3D" pero proporcionó una descripción mínima.
Para "Explique esta imagen" (diapositiva 2), el modelo refinó su respuesta, identificándola como "un modelo 3D de un cubo".
Para "¿Puede explicar este gráfico?" (diapositiva 1), el modelo proporcionó una descripción detallada del gráfico de barras, explicando su título, eje X, eje Y y tendencia general, indicando cómo progresa la madurez de la nube empresarial a través de las generaciones.
Este paso permite a los usuarios interactuar con elementos visuales, como gráficos, diagramas e infografías, aprovechando el modelo IBM Granite Vision para análisis y explicaciones inteligentes.
Este tutorial demuestra la capacidad de IBM Granite Vision para interpretar imágenes.