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 insights más profundos a partir de los datos visuales. Con los avances en los modelos de machine learning, la IA puede procesar imágenes cargadas, extraer metadatos y admitir la moderación de contenido a gran escala. Estas herramientas de análisis también contribuyen al modelado predictivo para aplicaciones como precios, optimización visual y generación de imágenes, lo que hace que los flujos de trabajo sean más rentables y eficientes. 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 e IA avanzada, las empresas y los investigadores están aprovechando las tecnologías basadas en imágenes 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 video, las herramientas impulsadas por IA están transformando la manera en que extraemos y analizamos la información visual.
En industrias como las redes sociales, la IA mejora la moderación del contenido mediante el análisis de imágenes a nivel de píxel, lo que garantiza el cumplimiento y mejora la interacció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 eficiencia y permiten a las organizaciones extraer insights significativos de conjuntos de datos visuales a gran escala.
Estos casos de uso destacan el papel cada vez mayor del análisis de imágenes impulsado por IA en todas las industrias. En este tutorial, nos centramos en aplicar estas capacidades a las presentaciones de PowerPoint, lo que permite realizar preguntas y respuestas interactivas sobre texto e imágenes utilizando modelos avanzados de visión artificial y modelos de IA
Los modelos de lenguaje grandes (LLM) han revolucionado el machine learning al permitir insights inteligentes a partir de vastos conjunto 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 información de gráficos, diagramas y elementos visuales en presentaciones.
IBM® Granite Vision 3.2, un modelo de lenguaje grande (LLM), acorta esta brecha mediante la integración de 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 optimizar su flujo de trabajo mediante el uso de IA para extraer y analizar texto e imágenes de archivos de PowerPoint (.pptx), lo que permite preguntas y respuestas interactivas para mejorar los insights de la presentación.
En este tutorial, aprenderá a crear un sistema impulsado por IA capaz de responder en tiempo real a las consultas de los usuarios a partir de diapositivas de PowerPoint, utilizando tanto texto como imágenes como contexto. 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 la diapositiva.
Preguntas y respuestas basadas en imágenes: solicite a la IA que analice imágenes, gráficos y diagramas de diapositivas.
Formulación optimizada de preguntas: aprenda a elaborar preguntas efectivas para obtener respuestas de IA precisas y relevantes.
Este tutorial aprovecha las tecnologías de IA de vanguardia, que incluyen:
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 manera eficiente.
Al final de este tutorial, podrá:
1. Extraer y procesar contenido de PowerPoint (texto e imágenes).
2. Utilizar el modelo Granite vision 3.2 para preguntas y respuestas impulsadas por IA sobre el contenido de las diapositivas.
3. Hacer preguntas perspicaces a la IA sobre texto e imágenes.
4. Mejorar la interacción del usuario con las presentaciones mediante el uso de explicaciones impulsadas por IA.
Este tutorial está diseñado para desarrolladores de IA, investigadores, creadores de contenido y profesionales de negocios que buscan mejorar sus presentaciones con insights impulsados por IA.
Necesita una cuenta de IBM Cloud para crear un proyecto en watsonx.ai.
Si bien puede elegir entre varias herramientas, este tutorial lo guiará a través de cómo configurar una cuenta de IBM para usar un Jupyter Notebook.
Inicie sesión en watsonx.ai con su cuenta de IBM Cloud.
2. Cree un proyecto de watsonx.ai. Puede obtener su ID de proyecto desde dentro de su proyecto. Haz clic en la pestaña Manage. Luego, copie el ID del proyecto de la sección Details de la página General. Necesita este ID para este tutorial.
3. Cree un Jupyter Notebook.
4. Cargar 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 Notebook 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 usar watsonx.ai como se ilustra en este tutorial.
Antes de comenzar a extraer y procesar contenido de PowerPoint, debemos instalar las bibliotecas de Python necesarias:
transformers: proporciona acceso a IBM Granite Vision y otros modelos de IA.
Torch: un marco de aprendizaje profundo 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 a archivos de PowerPoint almacenados en la nube y recuperarlos.
Puede aprovechar el soporte de python, proporcionado a través de una bifurcación de la biblioteca boto3 con características 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 de API de IBM Cloud para la 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 carga un archivo como activos en watsonx.ai, se almacena automáticamente en IBM Cloud Object Storage. Cuando más tarde importa el archivo a un Jupyter Notebook, watsonx.ai genera e inserta las credenciales necesarias (clave de 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 watsonx.ai Activos y el entorno del notebook para un procesamiento posterior.
Al configurar esta conexión, podemos importar y procesar perfectamente presentaciones de PowerPoint almacenadas en IBM Cloud para análisis impulsados por 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 interfaz de usuario (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 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 del archivo local 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 guardó correctamente. La función `print` muestra la ruta del archivo donde se encuentra el archivo .pptx. almacenado 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 de Python (PIL), junto con sus números de diapositiva correspondientes.
Recorre las diapositivas para extraer texto de las formas que contienen contenido textual e imágenes insertadas en 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 en función del 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 PowerPoint descargado.
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 el procesamiento de texto e imágenes impulsado por IA.
MODEL_NAME especifica el modelo 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 previamente entrenado para formatear las entradas (texto e imágenes) para el 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 implementaciones de modelos personalizados.
ignore_mismatched_sizes=True: evita errores si hay incongruencias 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 hacer 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:
RESULTADOS
Consulta: ¿La integración es una ventaja competitiva para su organización?
<|asistente|>
Sí, la integración es una ventaja competitiva para su organización. Le ayuda a moverse más rápido y a superar los desafíos, y puede generar mayores costos, ineficiencias, riesgos de seguridad y una mala experiencia, lo que, en última instancia, pone en peligro la competitividad y la capacidad de una organización para prosperar en un escenario en rápida evolución.
Hacer una pregunta basada en el texto de la presentación (o escribir 'exit' para salir): exit
Cuando el usuario preguntó: "¿La integración es una ventaja competitiva para su organización?", el modelo Granite Vision procesó la consulta utilizando el texto extraído de la diapositiva de PowerPoint y generó una respuesta.
El modelo reconoció "integración" como un concepto de negocio 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 desventajas, como mayores costos, ineficiencias, riesgos de seguridad y una mala experiencia del usuario si no se gestiona de manera efectiva.
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:
RESULTADOS
Hacer una pregunta basada en las imágenes de la presentación (o escribir 'exit' para salir): ¿qué es esta imagen?
Ingrese el número de diapositiva (1 a 41) para preguntar sobre su imagen: 2
Respuesta del modelo: <|system|>
Una conversación entre un usuario curioso y un asistente de inteligencia artificial. El asistente ofrece respuestas útiles, detalladas y educadas a las preguntas del usuario.
<|usuario|>
¿Qué es esta imagen?
<|asistente|>
Modelo 3d
Haga una pregunta basada en las imágenes de la presentación (o escriba 'exit' para salir): explique esta imagen
Ingrese el número de diapositiva (1 a 41) para preguntar sobre su imagen: 2
Respuesta del modelo: <|system|>
Una conversación entre un usuario curioso y un asistente de inteligencia artificial. El asistente ofrece respuestas útiles, detalladas y educadas a las preguntas del usuario.
<|usuario|>
explique esta imagen
<|asistente|>
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?
Ingrese el número de diapositiva (1 a 41) para preguntar sobre su imagen: 1
Respuesta del modelo: <|system|>
Una conversación entre un usuario curioso y un asistente de inteligencia artificial. El asistente ofrece respuestas útiles, detalladas y educadas a las preguntas del usuario.
<|usuario|>
¿puede explicar este gráfico?
<|asistente|>
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 hizo preguntas relacionadas con las imágenes, el modelo Granite Vision procesó las imágenes seleccionadas y generó 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 perfeccionó su respuesta e identificó que se trataba de "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 la madurez de la nube empresarial progresa a través de 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.