DeepLabv3

Сеть семантической сегментации, которая параллельно агрегирует признаки на нескольких коэффициентах расширения (atrous spatial pyramid pooling), прежде чем классифицировать каждый пиксель. LibreYOLO поставляет её только для семантической сегментации.

Задачи
semantic
Размеры
Установка
pip install libreyolo
Уровень поддержки
Только инференс, начиная с v. Только предсказание, валидация и экспорт. Функции обучения неприменимы.
Исходный проект
DeepLabv3 от PyTorch, BSD-3-Clause. Статья, исходный код
Лицензии
Код: BSD-3-Clause, веса: BSD-3-Clause. Коммерческое использование

Установка

DeepLabv3 не требует опциональных extra. Всё, что он импортирует, входит в базовую установку.

bash
pip install libreyolo

Предсказание

Веса скачиваются с Hugging Face при первом запуске и кэшируются локально. Суффикс -sem в имени файла обязателен для этого семейства.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDeepLabv3r50-sem.pt")result = model(SAMPLE_IMAGE, save=True) mask = result.semantic_maskprint(mask.data.shape)   # (H, W) id классовprint(mask.classes)      # отсортированные id классов, присутствующих на изображении
CLI
libreyolo predict model=LibreDeepLabv3r50-sem.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

Семантическая сегментация возвращает по одному id класса на пиксель, а не рамки, поэтому result.semantic_mask хранит массив (H, W) в .data и список id классов, присутствующих на изображении, в .classes. conf, iou и max_det принимаются ради совместимости API, но ни на что не влияют: модель назначает класс каждому пикселю по argmax, без порога уверенности и без шага NMS. Про источники, стриминг и обработку результатов см. предсказание.

Варианты

Три бэкбона с расширенными свёртками: ResNet-50, ResNet-101 и MobileNetV3-Large. Это DeepLabv3, а не DeepLabv3+, поэтому здесь нет ни стадии декодера, ни уточнения через CRF — так устроена реализация torchvision, а не референсный код самой статьи.

LibreYOLO не обучает DeepLabv3: train() вызывает NotImplementedError для этого семейства, и уровень поддержки выше помечает его как только инференс. Три опубликованных чекпойнта — это собственные веса torchvision, обученные на COCO с метками VOC и конвертированные для загрузчика LibreYOLO.

Валидация

val() возвращает metrics/mIoU и metrics/pixel_accuracy, измеренные на любом датасете в том формате, в котором вы обучали.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeepLabv3r50-sem.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mIoU"])print(metrics["metrics/pixel_accuracy"])
CLI
libreyolo val model=LibreDeepLabv3r50-sem.pt data=my-dataset.yaml

Экспорт

ЗадачаONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
semanticsemantic to ONNX: поддерживаетсяsemantic to TorchScript: поддерживаетсяsemantic to ExecuTorch: не поддерживаетсяsemantic to TensorRT: поддерживаетсяsemantic to OpenVINO: поддерживаетсяsemantic to Paddle: не поддерживаетсяsemantic to MNN: не поддерживаетсяsemantic to RKNN: не поддерживаетсяsemantic to ncnn: не поддерживаетсяsemantic to TFLite: не поддерживаетсяsemantic to CoreML: не поддерживаетсяsemantic to Core AI: не поддерживается

Экспортированный артефакт загружается обратно через LibreYOLO() по расширению файла, поэтому файл .onnx или .engine ведёт себя как чекпойнт и возвращает тот же Results. Экспорт перечисляет аргументы, которые принимает каждый формат.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeepLabv3r50-sem.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreDeepLabv3r50-sem.pt format=onnxlibreyolo export model=LibreDeepLabv3r50-sem.pt format=tensorrt half=True
Использование экспортированного файла
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Фабрика выбирает загрузчик по расширению файла, поэтому# экспортированный артефакт загружается как любой чекпойнт и# возвращает тот же объект Results.model = LibreYOLO("LibreDeepLabv3r50-sem.onnx")result = model(SAMPLE_IMAGE) print(result.semantic_mask.data.shape)

Чекпойнты

Все опубликованные файлы весов этого семейства.

ФайлВход (пикс.)Лицензия весов
semantic
LibreDeepLabv3r50-sem.ptbsd-3-clause
LibreDeepLabv3r101-sem.ptbsd-3-clause
LibreDeepLabv3mv3-sem.ptbsd-3-clause

Все перечисленные выше файлы уже доступны в организации LibreYOLO и скачиваются при первом использовании.

Лицензирование

Проверяйте лицензию в репозитории конкретных весов на Hugging Face. Она указана для каждого чекпойнта в организации LibreYOLO и может различаться даже внутри одного семейства. Этот репозиторий считается авторитетным источником, а сводка ниже описывает условия на момент последней проверки страницы.

Это описание соответствующих лицензий, а не юридическая консультация. Если ответ важен для коммерческого использования, прочитайте лицензии самостоятельно и проконсультируйтесь с юристом.

Оригинальная работа
DeepLabv3, PyTorch
Лицензия исходного проекта
BSD-3-Clause
Исходный код проекта
github.com/pytorch/vision
Код LibreYOLO
MIT
Веса
BSD-3-Clause, повторно опубликованы на huggingface.co/LibreYOLO
Толкование
BSD-3-Clause is a permissive license, so this code and these weights can be used in commercial and closed-source products. It asks you to keep the copyright notice, license text and a non-endorsement clause with any copy you redistribute. LibreYOLO's inference graph is torchvision's ASPP head over its ResNet-50, ResNet-101 and MobileNetV3-Large backbones; it is DeepLabv3, not DeepLabv3+, so there is no decoder or CRF, and the paper's training-only auxiliary FCN classifier is excluded. The three published checkpoints are torchvision's official COCO-with-VOC-label weights; their separate LibreYOLO Hugging Face mirrors carry BSD-3-Clause on an implied basis disclosed by torchvision rather than an explicit checkpoint-specific grant, and torchvision's own documentation notes that pretrained-model terms can depend on the training data, leaving that determination to the user.

Проверено с LibreYOLO v1.5.0. Таблицы поддержки, чекпойнты и результаты бенчмарков на этой странице сгенерированы из выпущенной библиотеки и опубликованных весов, а не написаны вручную.