ПочатиПочніть безкоштовно

Аналіз настроїв у відео за допомогою CLIP і CLAP

Тепер ви виконаєте аналіз емоцій у рекламному ролику, який підготували раніше, за допомогою CLIP/CLAP. Щоб отримати мультимодальну класифікацію емоцій, ви об'єднаєте передбачення цих моделей за середнім значенням (підхід late fusion).

Відео (video) та відповідний аудіосупровід (audio_sample), створені раніше, усе ще доступні:

Кадри з реклами Bounce TV

Список емоцій завантажено як emotions.

Ця вправа є частиною курсу

Багатомодальні моделі з Hugging Face

Переглянути курс

Інструкції до вправи

  • Створіть конвеєр класифікації аудіо для zero-shot-audio-classification, використовуючи модель laion/clap-htsat-unfused.
  • Створіть конвеєр класифікації зображень для zero-shot-image-classification, використовуючи модель openai/clip-vit-base-patch32 (менший варіант того, що ми використовували у відео).
  • Використайте конвеєр класифікації зображень, щоб згенерувати передбачення для кожного зображення у відео.
  • Використайте конвеєр класифікації аудіо, щоб згенерувати передбачення для audio_sample.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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}")
Редагувати та запускати код