Supprimer l'arrière-plan d'une image avec la bibliothèque Rembg Python

la bibliothèque image Python rembg, supprimer l'arrière plan d'une image

1. Liste des bibliothèques de suppression d'arrière plan d'une image

Python est doté de nombreuses bibliothèques qui permettent la suppression de l'arrière-plan d'une image. En voici une liste complète de telles bibliothèques selon différentes approches: IA, vision par ordinateur, outils spécialisés...

  1. rembg : Bibliothèque légère utilisant le modèle U²-Net pour une suppression d'arrière-plan rapide et efficace. Idéale pour un usage simple sans configuration.
  2. backgroundremover : Alternative à rembg avec outils CLI intégrés, utilisant des modèles légers pour le détourage.
  3. modnet : Modèle optimisé pour les portraits et les objets, avec un bon équilibre entre performance et qualité.
  4. OpenCV (cv2) : Permet des méthodes manuelles (GrabCut, seuillage, masques) pour des cas spécifiques. Requiert une expertise.
  5. scikit-image : Offre des algorithmes de segmentation (SLIC, Felzenszwalb) pour des approches semi-automatiques.
  6. Pillow (PIL) : Utile pour des opérations basiques de masquage et post-traitement, mais limité seul.
  7. PyTorch/TensorFlow : Permet d'utiliser des modèles avancés (DeepLabV3, U-Net) pour des besoins spécifiques. Requiert des compétences en ML.
  8. Hugging Face Transformers : Accès à des modèles comme MaskFormer ou CLIPSeg pour une segmentation sémantique haute précision.
  9. segment-anything (Meta AI) : Modèle polyvalent (SAM) pour la segmentation d'objets via prompts, très puissant mais gourmand en ressources.
  10. auto-background : Solution minimaliste pour un traitement rapide, mais moins personnalisable.
  11. DeepLabV3+ (via torchvision) : Modèle de segmentation sémantique pré-entraîné, efficace pour les scènes complexes.
  12. MediaPipe Selfie Segmentation : Modèle léger de Google pour la segmentation en temps réel (optimisé pour les vidéos).

2. La bibliothèque Rembg

2.1 Description de bibliothèque Rembg

Rembg est une bibliothèque Python open-source qui permet de supprimer les arrière-plans d'images de manière automatique et efficace. Elle utilise des modèles de deep learning pré-entraînés pour détecter et isoler le premier plan d'une image, éliminant ainsi l'arrière-plan sans nécessiter d'intervention manuelle.

2.2 Fonctionnalités principales

  1. Suppression d'arrière-plan : Retire l'arrière-plan des images, laissant le sujet principal (personnes, objets, etc.) avec un fond transparent (format PNG).
  2. Modèles pré-entraînés : Utilise des architectures comme U²-Net pour une segmentation précise.
  3. Facile à utiliser : Une seule ligne de code suffit pour traiter une image.
  4. Support multiple : Fonctionne avec des fichiers locaux, des URLs ou des données binaires.
  5. Personnalisable : Possibilité d'utiliser différents modèles ou de post-traiter les résultats.

2.3 Installation

Nous devons aussi installer la bibliothèque onnxruntime qui est un moteur d'inférence (inference engine) haute performance pour l'exécution de modèles au format ONNX (Open Neural Network Exchange). Il est optimisé pour déployer des modèles de machine learning (ML) et d'intelligence artificielle (IA).

2.4 Utilisation de base




3. Usage de la bibliothèque rembg

3.1 Usage basique

Dans l'usage basique de la bibliothèque rmbg Python, nous allons commencer par traiter un exemple simple de suppression d'arrière-plan:

3.2 Utilisation avec des fichiers directement

La bibliothèque rembg offre aussi la possibilité de travailler directement avec des fichiers:

3.3 Usage avancé

3.3.1 hoix du modèle

rembg propose plusieurs modèles. Par défaut, il utilise "u2net", mais vous pouvez en choisir d'autres:

3.3.2 Usage des paramètres supplémentaires

La fonction remove() accepte plusieurs paramètres:
python

3.3.3 Usage en tant que service

rembg peut aussi être utilisé comme un service HTTP. Pour lancer le serveur:

Par défaut, le serveur écoute sur http://0.0.0.0:5000. Vous pouvez ensuite envoyer des requêtes POST à ce serveur avec vos images.
Exemple complet

Voici un exemple complet avec gestion des erreurs et options avancées:

3.3.4 Bonnes pratiques pour un usage correcte

  1. Format de sortie : Utilisez PNG pour préserver la transparence plutôt que JPEG.
  2. Performance : Pour traiter plusieurs images, réutilisez la même session.
  3. Modèles :
    • 'u2net' : modèle général (bon équilibre)
    • 'u2netp' : version plus légère de u2net
    • 'u2net_human_seg' : spécialisé pour les personnes
    • 'isnet-general-use' : très performant pour les objets généraux
  4. GPU : Si disponible, utilisez un GPU pour accélérer le traitement.

4. Traitement par lots, Intégration avec opencv

4.1 Traitement par lots

4.2 Intégration avec OpenCV

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply