En este tutorial, aprenderemos cómo construir una aplicación interactiva multimodal que realice una aplicación de cambio de imagen utilizando la plataforma Colab de Google, el poderoso modelo de blip de Salesforce y optimizar para una interfaz web intuitiva. Los modelos multimodales, que combinan capacidades de procesamiento de imágenes y texto, se han vuelto cada vez más importantes en las aplicaciones de IA, lo que permite tareas como subtítulos de imágenes, respuesta de preguntas visuales y más. Esta guía paso a paso garantiza una configuración suave, aborda claramente las dificultades comunes y demuestra cómo integrar y desplegar soluciones de IA avanzadas, incluso sin una experiencia extensa.
!pip install transformers torch torchvision streamlit Pillow pyngrok
Primero instalamos transformadores, antorcha, visión antorchvision, racionalización, almohada, pyngrok, todas las dependencias necesarias para construir una aplicación de subtítulos de imagen multimodal. Incluye Transformers (para modelo Blip), Torch & TorchVision (para aprendizaje profundo y procesamiento de imágenes), Streamlit (para crear la interfaz de usuario), almohada (para manejar archivos de imagen) y Pyngrok (para exponer la aplicación en línea a través de NGROK).
%%writefile app.py
import torch
from transformers import BlipProcessor, BlipForConditionalGeneration
import streamlit as st
from PIL import Image
device = "cuda" if torch.cuda.is_available() else "cpu"
@st.cache_resource
def load_model():
processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base").to(device)
return processor, model
processor, model = load_model()
st.title("🖼️ Image Captioning with BLIP")
uploaded_file = st.file_uploader("Upload your image:", type=["jpg", "jpeg", "png"])
if uploaded_file is not None:
image = Image.open(uploaded_file).convert('RGB')
st.image(image, caption="Uploaded Image", use_column_width=True)
if st.button("Generate Caption"):
inputs = processor(image, return_tensors="pt").to(device)
outputs = model.generate(**inputs)
caption = processor.decode(outputs[0], skip_special_tokens=True)
st.markdown(f"### ✅ **Caption:** {caption}")
Luego creamos una aplicación de subtitulación de imágenes multimodal basada en transmisión a través del modelo BLIP. Primero carga el blipprocessor y la generación de BLIPFORDITIONAL de la cara abrazada, lo que permite que el modelo procese imágenes y genere subtítulos. La interfaz de usuario de Strewlit permite a los usuarios cargar una imagen, mostrarla y genera un título al hacer clic en un botón. El uso de @St.Cache_Resource garantiza una carga eficiente del modelo, y el soporte CUDA se utiliza si está disponible para un procesamiento más rápido.
from pyngrok import ngrok
NGROK_TOKEN = "use your own NGROK token here"
ngrok.set_auth_token(NGROK_TOKEN)
public_url = ngrok.connect(8501)
print("🌐 Your Streamlit app is available at:", public_url)
# run streamlit app
!streamlit run app.py &>/dev/null &
Finalmente, configuramos una aplicación de transmisión de acceso público que se ejecuta en Google Colab usando NGROK. Hace lo siguiente:
- Autentica NGROK usando su token personal (`ngrok_token`) para crear un túnel seguro.
- Expone la aplicación de optimización que se ejecuta en el puerto `8501` a una URL externa a través de` ngrok.connect (8501) `.
- Imprime la URL pública, que se puede utilizar para acceder a la aplicación en cualquier navegador.
- Inicia la aplicación Streamlit (`app.py`) en segundo plano.
Este método le permite interactuar de forma remota con su aplicación de subtítulos de imagen, a pesar de que Google Colab no proporciona alojamiento web directo.
En conclusión, hemos creado e implementado con éxito una aplicación de subtitulación de imágenes multimodal impulsada por Salesforce’s Blip y Strewlit, alojada de forma segura a través de NGROK desde un entorno de Google Colab. Este ejercicio práctico demostró cuán fácilmente sofisticado aprendizaje automático Los modelos pueden integrarse en interfaces fáciles de usar y proporcionar una base para explorar y personalizar más aplicaciones multimodales.
Aquí está el Cuaderno de colab. Además, no olvides seguirnos Gorjeo y únete a nuestro Canal de telegrama y LinkedIn GRsalpicar. No olvides unirte a nuestro Subreddit de 80k+ ml.
Asif Razzaq es el CEO de MarktechPost Media Inc .. Como empresario e ingeniero visionario, ASIF se compromete a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, MarktechPost, que se destaca por su cobertura profunda de noticias de aprendizaje automático y de aprendizaje profundo que es técnicamente sólido y fácilmente comprensible por una audiencia amplia. La plataforma cuenta con más de 2 millones de vistas mensuales, ilustrando su popularidad entre el público.