ComeçarComece de graça

Análise de sentimentos em vídeos com o CLIP CLAP

Agora você vai fazer a análise das emoções do anúncio que preparou antes usando o CLIP/CLAP. Para fazer uma classificação multimodal das emoções, você vai juntar as previsões desses modelos usando a média (conhecida como fusão tardia).

audio_sampleO vídeo (video) e o áudio que você fez antes ainda estão disponíveis:

Imagens do comercial da Bounce TV

Uma lista de emoções foi carregada como emotions.

Este exercício faz parte do curso

Modelos multimodais com Hugging Face

Ver curso

Instruções do exercício

  • Crie um pipeline classificador de áudio para zero-shot-audio-classification usando o modelo laion/clap-htsat-unfused.
  • Crie um pipeline classificador de imagens para o zero-shot-image-classification usando o modelo openai/clip-vit-base-patch32 (uma versão menor do que usamos no vídeo).
  • Use o pipeline do classificador de imagens pra gerar previsões pra cada imagem no vídeo.
  • Use o pipeline do classificador de áudio para gerar previsões para o audio_sample.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código