/ Модель

Характеристики

Параметры
113 млн
Лицензия
Apache 2.0
Архитектура
vit · dense
Библиотека
transformers
Опубликована
8 сен 2026

emotion-vit-model

Классификация изображенийИзображение → label

Классификатор на базе ViT распознаёт одно из семи выражений лица на обрезанных чёрно-белых изображениях.

62скачиваний за 30 дней0лайковвеса обновлены8 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Модель bsgcasa/emotion-vit-model — классификатор выражений лица на базе Vision Transformer (ViT), дообученный на наборе FER2013. Она относит изображение лица к одному из семи классов: злость, отвращение, страх, радость, грусть, удивление или нейтральное выражение. Модель содержит 113,2 млн параметров и распространяется в формате safetensors; лицензия — Apache-2.0.

Модель предназначена для распознавания эмоций на портретных изображениях. Для обучения применялись взвешивание классов, сглаживание меток и аугментации, чтобы учитывать дисбаланс классов. В тестировании автор сообщает точность 0,7082 и Macro F1 0,6784.

Обучающие изображения FER2013 — это тесно обрезанные чёрно-белые лица размером 48×48 пикселей. Для более надёжной классификации входное изображение следует обрезать по лицу и преобразовать в градации серого; на полноразмерных цветных фотографиях качество может быть низким, а предсказания — неуверенными.

Сценарии применения

  • классификация выражений лица на портретах
  • распознавание семи базовых эмоций на изображениях лиц
  • анализ распределения эмоций в наборе портретных фотографий

Ограничения

Для ожидаемого качества изображения нужно обрезать по лицу и преобразовать в градации серого; полноразмерные цветные фотографии могут давать низкую точность и неуверенные результаты. На тестовой выборке автор сообщает Accuracy 0,7082 и Macro F1 0,6784.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Facial Emotion Recognition (ViT, fine-tuned on FER2013)

Fine-tuned google/vit-base-patch16-224-in21k for 7-class facial emotion recognition, with class-weighted + label-smoothed loss to handle FER2013's class imbalance (disgust is heavily underrepresented) and data augmentation (flip/rotation/jitter).

Classes

angry, disgust, fear, happy, sad, surprise, neutral

Test set results

  • Accuracy: 0.7082
  • Macro F1: 0.6784

⚠️ Important: input format required

This model was trained on FER2013, which consists of tightly cropped, grayscale, 48x48 face images. Feeding it a full, uncropped, color photo (e.g. straight from your phone or the internet) will give poor, low-confidence results, because that input looks nothing like what the model saw during training.

For good results, always crop to the face and convert to grayscale before running inference. The example below does this automatically using a face detector.

Usage (Google Colab)

facenet-pytorch pins an old numpy<2.0 / pillow combo that no longer has prebuilt wheels on current Colab runtimes, which causes a source-build error. Installing with --no-deps avoids re-resolving those pins and uses the numpy/pillow/torch already present in Colab:

%pip install facenet-pytorch --no-deps
%pip install requests torchvision --no-deps

Restart the session after installing (Runtime → Restart session in the Colab menu), then run:

import torch
import numpy as np
from PIL import Image
from facenet_pytorch import MTCNN
from transformers import AutoImageProcessor, AutoModelForImageClassification

processor = AutoImageProcessor.from_pretrained("bsgcasa/emotion-vit-model")
model = AutoModelForImageClassification.from_pretrained("bsgcasa/emotion-vit-model")
model.eval()

mtcnn = MTCNN(keep_all=False)

def predict_emotion(image_path):
    img = Image.open(image_path).convert("RGB")

    box, _ = mtcnn.detect(img)
    if box is None:
        print("No face detected.")
        return None

    x1, y1, x2, y2 = [int(v) for v in box[0]]
    face_crop = img.crop((x1, y1, x2, y2)).convert("L")  # grayscale, matches training

    face_rgb = Image.fromarray(np.stack([np.array(face_crop)] * 3, axis=-1).astype(np.uint8))

    inputs = processor(images=face_rgb, return_tensors="pt")
    with torch.no_grad():
        logits = model(**inputs).logits

    probs = torch.softmax(logits, dim=-1)[0]
    predicted_id = probs.argmax().item()

    print(f"Predicted: {model.config.id2label[predicted_id]}")
    for i, p in enumerate(probs):
        print(f"  {model.config.id2label[i]:>10}: {p:.3f}")

    return model.config.id2label[predicted_id]

predict_emotion("your_face_image.jpg")  # upload a photo to Colab and update this path

Troubleshooting

  • ModuleNotFoundError: No module named 'facenet_pytorch' — the install cell either didn't run or silently failed. Use %pip (not !pip), check the cell's output for errors, and restart the session after installing.
  • Build error on numpy/pillow — this is the version-pin issue described above; use --no-deps as shown.
  • your_face_image.jpg not found — upload an image to the Colab file browser (folder icon on the left) and update the path, or use from google.colab import files; files.upload() to upload interactively.

Notes

  • Trained with class-weighted + label-smoothed cross-entropy loss.
  • Data augmentation applied during training (horizontal flip, rotation, color jitter).
  • Face detection + grayscale conversion is required at inference time — the saved image processor only handles resizing/normalization, not face cropping. Using the model on full, uncropped, color photos will produce unreliable results.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers · image-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
ViTForImageClassification
Ревизия весов
2ad304e

0 моделей