Об этом проекте

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 и указания в отдельных файлах.