Analisi del sentiment dei video con CLIP CLAP
Ora eseguirai l’analisi delle emozioni dello spot pubblicitario che hai preparato in precedenza usando CLIP/CLAP. Per ottenere una classificazione multi-modale delle emozioni, combinerai le predizioni di questi modelli facendo la media (nota come late fusion).
Il video (video) e il corrispondente audio (audio_sample) che hai creato in precedenza sono ancora disponibili:

Un elenco di emozioni è stato caricato come emotions.
Questo esercizio fa parte del corso
Modelli multi-modali con Hugging Face
Istruzioni dell'esercizio
- Crea una pipeline di classificazione audio per
zero-shot-audio-classificationusando il modellolaion/clap-htsat-unfused. - Crea una pipeline di classificazione di immagini per
zero-shot-image-classificationusando il modelloopenai/clip-vit-base-patch32(una variante più piccola di quella usata nel video). - Usa la pipeline di classificazione di immagini per generare predizioni per ogni immagine del video.
- Usa la pipeline di classificazione audio per generare predizioni per
audio_sample.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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}")