ComenzarEmpieza gratis

Análisis de sentimiento en vídeo con CLIP CLAP

Ahora vas a realizar el análisis de emociones del anuncio que preparaste antes usando CLIP/CLAP. Para hacer una clasificación multimodal de emociones, combinarás las predicciones de estos modelos usando la media (conocido como late fusion).

El vídeo (video) y el audio correspondiente (audio_sample) que creaste previamente siguen disponibles:

Frames from the Bounce TV commercial

Se ha cargado una lista de emociones como emotions.

Este ejercicio forma parte del curso

Modelos multimodales con Hugging Face

Ver curso

Instrucciones del ejercicio

  • Crea un pipeline de clasificador de audio para zero-shot-audio-classification usando el modelo laion/clap-htsat-unfused.
  • Crea un pipeline de clasificador de imagen para zero-shot-image-classification usando el modelo openai/clip-vit-base-patch32 (una variante más pequeña de la que usamos en el vídeo).
  • Usa el pipeline de clasificación de imagen para generar predicciones para cada imagen del vídeo.
  • Usa el pipeline de clasificación de audio para generar predicciones para audio_sample.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Make an audio classifier pipeline
audio_classifier = ____(model="____", task="____")

# Make an image classifier pipeline
image_classifier = ____(model="____", task="____")

# Create emotion scores for each video frame
predictions = image_classifier(video, candidate_labels=emotions)
scores = [
    {l['label']: l['score'] for l in prediction}
    for prediction in predictions
]

avg_image_scores = {emotion: sum([s[emotion] for s in scores])/len(scores) for emotion in emotions}

# Make audio scores
audio_scores = ____(____, candidate_labels=____)

audio_scores = {l['label']: l['score'] for l in audio_scores}
multimodal_scores = {emotion: (avg_image_scores[emotion] + audio_scores[emotion])/2 for emotion in emotions}
print(f"Multimodal scores: {multimodal_scores}")
Editar y ejecutar código