Об этом проекте
Segmentation Models PyTorch (SMP) — это библиотека Python, построенная на PyTorch для семантической сегментации изображений. Она предоставляет высокоуровневый API, в котором модель сегментации является стандартным torch.nn.Module и создаётся в пару строк.
Ключевые возможности, описанные в README:
- 12 архитектур encoder-decoder: Unet, Unet++, MAnet, Linknet, FPN, PSPNet, PAN, DeepLabV3, DeepLabV3+, UPerNet, Segformer и DPT, каждая со ссылкой на свою статью и документацию.
- Более 800 предобученных свёрточных и трансформерных энкодеров, включая поддержку backbone из timm. Энкодеры возвращают промежуточные признаки, а не только финальные признаки классификации, и поставляются с предобученными весами, предназначенными для ускорения и стабилизации сходимости. В README отмечены лёгкие варианты (mobilenet/mobileone) для инференса с низкой задержкой или на периферийных устройствах и более ёмкие варианты (convnext/swin/mit) для сложных задач.
- Вспомогательные функции предобработки: get_preprocessing_fn возвращает функцию предобработки, соответствующую предобучению энкодера (например, ImageNet); по словам README, это может улучшить результаты и сходимость, но не обязательно при обучении всей модели.
- Функции потерь и метрики, обычно используемые при обучении сегментации (Dice, Jaccard, Tversky и другие).
- Опции API модели: in_channels для произвольного числа входных каналов (с документированным переиспользованием весов первой свёртки), aux_params для необязательной вспомогательной головы классификации (глобальный пулинг, необязательный dropout, линейный слой, необязательная активация), выдающей выход метки вместе с маской, и encoder_depth для сокращения числа этапов понижающей дискретизации и облегчения моделей.
- Удобство экспорта и развёртывания: экспорт в ONNX и совместимость с torch script/trace/compile.
Примеры включают ноутбуки для бинарной сегментации (OxfordPets, CamVid), многоклассовой сегментации (CamVid), загрузки и запуска инференса с предобученными Segformer, DPT и UPerNet, сохранения/загрузки моделей локально или в Hugging Face Hub и экспорта в ONNX. Контрольные точки для UPerNet, Segformer и DPT приведены по ссылкам на Hugging Face.
Установка выполняется через pip (segmentation-models-pytorch) или напрямую с GitHub. В README также упоминаются страница зала славы соревнований, выигранных с использованием библиотеки, проект, построенный на SMP (удаление фона withoutBG), инструкции по внесению вклада с использованием целей make для установки для разработки, тестов и линтинга, запись для цитирования и лицензирование: преимущественно MIT, при этом некоторые файлы распространяются под другими лицензиями, поэтому коммерческим пользователям рекомендуется проверять файл LICENSES и указания в отдельных файлах.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.