/ Модель

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

Архитектура
segformer · dense
Библиотека
transformers
Опубликована
6 июл 2022

face-parsing

Сегментация изображенийИзображение → mask3 профессии

SegFormer, дообученный для сегментации областей лица на портретных изображениях.

176 тыс.скачиваний за 30 дней229лайковвеса обновлены18 фев 2026

Бенчмарки

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

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

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

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

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

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

Face Parsing — модель семантической сегментации изображений, разработанная Jonathan Dinu и дообученная на CelebAMask-HQ от nvidia/mit-b5 с использованием архитектуры SegFormer. Она предназначена для разбора лица на области и подходит для обработки портретных изображений, в том числе в веб-приложениях; для веб-инференса доступна версия ONNX.

Модель принимает изображение и выдаёт карту сегментации с метками областей лица. В карточке указана библиотека Transformers и лицензия для некоммерческих исследований и образовательных целей. Обучение на изображениях знаменитостей может приводить к смещению и ограниченной репрезентативности результатов.

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

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

Ограничения

Данные CelebAMask-HQ состоят из изображений знаменитостей и могут быть недостаточно разнообразными, что способно вызывать смещение и снижать репрезентативность результатов. Лицензия ограничивает использование некоммерческими исследованиями и образовательными целями.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

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

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

Открыть на Hugging Face

Face Parsing

example image and output

Semantic segmentation model fine-tuned from nvidia/mit-b5 with CelebAMask-HQ for face parsing. For additional options, see the Transformers Segformer docs.

ONNX model for web inference contributed by Xenova.

Usage in Python

Exhaustive list of labels can be extracted from config.json.

idlabelnote
0background
1skin
2nose
3eye_geyeglasses
4l_eyeleft eye
5r_eyeright eye
6l_browleft eyebrow
7r_browright eyebrow
8l_earleft ear
9r_earright ear
10moutharea between lips
11u_lipupper lip
12l_liplower lip
13hair
14hat
15ear_rearring
16neck_lnecklace
17neck
18clothclothing
import torch
from torch import nn
from transformers import SegformerImageProcessor, SegformerForSemanticSegmentation

from PIL import Image
import matplotlib.pyplot as plt
import requests

# convenience expression for automatically determining device
device = (
    "cuda"
    # Device for NVIDIA or AMD GPUs
    if torch.cuda.is_available()
    else "mps"
    # Device for Apple Silicon (Metal Performance Shaders)
    if torch.backends.mps.is_available()
    else "cpu"
)

# load models
image_processor = SegformerImageProcessor.from_pretrained("jonathandinu/face-parsing")
model = SegformerForSemanticSegmentation.from_pretrained("jonathandinu/face-parsing")
model.to(device)

# expects a PIL.Image or torch.Tensor
url = "https://images.unsplash.com/photo-1539571696357-5a69c17a67c6"
image = Image.open(requests.get(url, stream=True).raw)

# run inference on image
inputs = image_processor(images=image, return_tensors="pt").to(device)
outputs = model(**inputs)
logits = outputs.logits  # shape (batch_size, num_labels, ~height/4, ~width/4)

# resize output to match input image dimensions
upsampled_logits = nn.functional.interpolate(logits,
                size=image.size[::-1], # H x W
                mode='bilinear',
                align_corners=False)

# get label masks
labels = upsampled_logits.argmax(dim=1)[0]

# move to CPU to visualize in matplotlib
labels_viz = labels.cpu().numpy()
plt.imshow(labels_viz)
plt.show()

Usage in the browser (Transformers.js)

import {
  pipeline,
  env,
} from "https://cdn.jsdelivr.net/npm/@xenova/transformers@2.14.0";

// important to prevent errors since the model files are likely remote on HF hub
env.allowLocalModels = false;

// instantiate image segmentation pipeline with pretrained face parsing model
model = await pipeline("image-segmentation", "jonathandinu/face-parsing");

// async inference since it could take a few seconds
const output = await model(url);

// each label is a separate mask object
// [
//   { score: null, label: 'background', mask: transformers.js RawImage { ... }}
//   { score: null, label: 'hair', mask: transformers.js RawImage { ... }}
//    ...
// ]
for (const m of output) {
  print(`Found ${m.label}`);
  m.mask.save(`${m.label}.png`);
}

p5.js

Since p5.js uses an animation loop abstraction, we need to take care loading the model and making predictions.

// ...

// asynchronously load transformers.js and instantiate model
async function preload() {
  // load transformers.js library with a dynamic import
  const { pipeline, env } = await import(
    "https://cdn.jsdelivr.net/npm/@xenova/transformers@2.14.0"
  );

  // important to prevent errors since the model files are remote on HF hub
  env.allowLocalModels = false;

  // instantiate image segmentation pipeline with pretrained face parsing model
  model = await pipeline("image-segmentation", "jonathandinu/face-parsing");

  print("face-parsing model loaded");
}

// ...

full p5.js example

Model Description

  • Developed by: Jonathan Dinu
  • Model type: Transformer-based semantic segmentation image model
  • License: non-commercial research and educational purposes
  • Resources for more information: Transformers docs on Segformer and/or the original research paper.

Limitations and Bias

Bias

While the capabilities of computer vision models are impressive, they can also reinforce or exacerbate social biases. The CelebAMask-HQ dataset used for fine-tuning is large but not necessarily perfectly diverse or representative. Also, they are images of.... just celebrities.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
SegformerForSemanticSegmentation
Ревизия весов
758b82e

0 моделей