À propos du projet

Segmentation Models PyTorch (SMP) est une bibliothèque Python construite sur PyTorch pour la segmentation sémantique d'images. Elle offre une API de haut niveau où un modèle de segmentation est un torch.nn.Module standard, créable en quelques lignes. Principales capacités décrites dans le README : - 12 architectures encodeur-décodeur : Unet, Unet++, MAnet, Linknet, FPN, PSPNet, PAN, DeepLabV3, DeepLabV3+, UPerNet, Segformer et DPT, chacune liée à son article et à sa documentation. - Plus de 800 encodeurs pré-entraînés convolutionnels et basés sur transformers, incluant la prise en charge des backbones timm. Les encodeurs exposent des caractéristiques intermédiaires plutôt que seulement les caractéristiques finales de classification, et sont fournis avec des poids pré-entraînés destinés à accélérer et stabiliser la convergence. Le README mentionne des options légères (mobilenet/mobileone) pour l'inférence à faible latence ou en périphérie, et des options à plus grande capacité (convnext/swin/mit) pour des tâches complexes. - Assistants de prétraitement : get_preprocessing_fn renvoie une fonction de prétraitement correspondant au pré-entraînement d'un encodeur (par exemple ImageNet), ce qui, selon le README, peut améliorer les résultats et la convergence, mais n'est pas obligatoire lors de l'entraînement du modèle complet. - Pertes et métriques couramment utilisées pour l'entraînement en segmentation (Dice, Jaccard, Tversky et autres). - Options de l'API du modèle : in_channels pour un nombre arbitraire de canaux d'entrée (avec réutilisation documentée des poids de la première convolution), aux_params pour une tête de classification auxiliaire optionnelle (global pooling, dropout optionnel, linéaire, activation optionnelle) produisant une sortie de label en plus du masque, et encoder_depth pour réduire les étapes de sous-échantillonnage et alléger les modèles. - Facilité d'export et de déploiement : export ONNX et compatibilité torch script/trace/compile. Les exemples incluent des notebooks pour la segmentation binaire (OxfordPets, CamVid), la segmentation multiclasse (CamVid), le chargement et l'exécution d'inférence avec Segformer, DPT et UPerNet pré-entraînés, la sauvegarde/le chargement de modèles localement ou sur le Hugging Face Hub, et l'export vers ONNX. Les checkpoints pour UPerNet, Segformer et DPT sont liés sur Hugging Face. L'installation se fait via pip (segmentation-models-pytorch) ou directement depuis GitHub. Le README mentionne également une page hall-of-fame des compétitions remportées à l'aide de la bibliothèque, un projet construit avec SMP (suppression d'arrière-plan withoutBG), des instructions de contribution utilisant des cibles make pour l'installation de développement, les tests et le linting, une entrée de citation, et la licence : principalement MIT avec certains fichiers sous d'autres licences, les utilisateurs commerciaux étant donc invités à consulter le fichier LICENSES et les mentions par fichier.