ÎncepețiÎncepe gratuit

Analiza sentimentelor din video cu CLIP și CLAP

Acum vei efectua analiza emoțiilor din reclama pregătită anterior, folosind CLIP/CLAP. Pentru a realiza o clasificare multi-modală a emoțiilor, vei combina predicțiile acestor modele prin medie (tehnică cunoscută sub numele de late fusion).

Videoclipul (video) și audioul corespunzător (audio_sample) create anterior sunt în continuare disponibile:

Frames from the Bounce TV commercial

O listă de emoții a fost încărcată ca emotions.

Acest exercițiu face parte din cursul

Modele Multi-Modale cu Hugging Face

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un pipeline de clasificare audio pentru zero-shot-audio-classification folosind modelul laion/clap-htsat-unfused.
  • Creează un pipeline de clasificare a imaginilor pentru zero-shot-image-classification folosind modelul openai/clip-vit-base-patch32 (o variantă mai mică față de cea folosită în video).
  • Folosește pipeline-ul de clasificare a imaginilor pentru a genera predicții pentru fiecare imagine din videoclip.
  • Folosește pipeline-ul de clasificare audio pentru a genera predicții pentru audio_sample.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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}")
Editează și rulează codul