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 :

Une liste d'émotions a été chargée sous le nom emotions.
Cet exercice fait partie du cours
Modèles multimodaux avec Hugging Face
Instructions
- Créez un pipeline de classification audio pour l'
zero-shot-audio-classificationà l'aide du modèlelaion/clap-htsat-unfused. - Créez un pipeline de classification d'images pour l'
zero-shot-image-classification, en utilisant le modèleopenai/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}")