CommencerCommencer gratuitement

Analyse des sentiments dans les vidéos avec CLIP CLAP

Vous allez maintenant analyser les émotions suscitées par la publicité que vous avez préparée précédemment à l'aide de CLIP/CLAP. Afin de réaliser une classification multimodale des émotions, vous combinerez les prédictions de ces modèles en utilisant la moyenne (méthode dite de fusion tardive).

La vidéo (video) et l'audio correspondant (audio_sample) que vous avez créés précédemment sont toujours disponibles :

Images tirées de la publicité télévisée de Bounce

Une liste d'émotions a été chargée sous le nom emotions.

Cet exercice fait partie du cours

Modèles multimodaux avec Hugging Face

Afficher le cours

Instructions

  • Créez un pipeline de classification audio pour l'zero-shot-audio-classification à l'aide du modèle laion/clap-htsat-unfused.
  • Créez un pipeline de classification d'images pour l'zero-shot-image-classification, en utilisant le modèle openai/clip-vit-base-patch32 (une variante plus petite de celui que nous avons utilisé dans la vidéo).
  • Utilisez le pipeline de classification d'images pour générer des prédictions pour chaque image de la vidéo.
  • Veuillez utiliser le pipeline de classification audio pour générer des prédictions pour l'audio_sample.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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}")
Modifier et exécuter le code