Image Matting
Le détourage d’image estime la transparence de premier plan au niveau du pixel, en préservant les détails fins comme les cheveux pour obtenir des détourages naturels et des compositions réalistes sur un autre arrière-plan.
Le détourage d’image consiste à estimer la contribution du premier plan à chaque pixel d’une image. Son résultat, un masque alpha, préserve les détails partiellement transparents, comme les cheveux individuels, la fourrure et les contours flous, afin qu’un sujet puisse être placé naturellement sur un autre arrière-plan. Également appelée matte alpha, cette tâche de vision par ordinateur permet de réaliser des détourages précis et de composer des images. Les passe-partout physiques pour encadrer des tableaux et les revêtements de sol médicaux sont des sens distincts du terme « matting ».
Fonctionnement d’un masque alpha#
Un masque alpha est une image à un seul canal dont les valeurs sont comprises entre 0 et 1 : 0 représente l’arrière-plan, 1 représente un premier plan entièrement opaque et les valeurs intermédiaires représentent une couverture partielle du premier plan ou une transparence. L’alpha décrit le mélange du pixel ; la confiance d’un modèle décrit la certitude de sa prédiction. Des cheveux fins peuvent n’occuper qu’une partie d’un pixel, ce qui produit une valeur alpha intermédiaire même si la mèche elle-même est opaque.
La relation standard de composition est image = alpha * foreground + (1 - alpha) * background. Le détourage estime ces composantes à partir d’une image existante ; la composition associe le premier plan extrait à un nouvel arrière-plan. Il est également important d’estimer la couleur du premier plan : conserver autour des cheveux la couleur de l’arrière-plan d’origine crée des franges colorées dans la nouvelle composition.
La segmentation d’image attribue les pixels à des régions. La segmentation sémantique attribue des étiquettes de classe, tandis que la segmentation d’instances distingue les objets individuels. Le détourage estime l’opacité continue du premier plan. La segmentation d’Ultralytics YOLO26 permet l’isolement d’objets en transformant les masques d’instances en détourages transparents ; ces masques peuvent fournir un contour initial du premier plan pour une étape distincte de raffinement du détourage.
Trimaps et méthodes de détourage#
Un trimap définit trois régions : un premier plan connu, un arrière-plan connu et une région inconnue contenant les contours ou des éléments transparents. Cette forme d’annotation de données délimite le problème d’estimation. Comme la segmentation interactive, elle permet aux utilisateurs de guider l’extraction en fournissant peu d’informations. Si des cheveux sont marqués à tort comme faisant définitivement partie de l’arrière-plan, leur alpha est forcé à zéro et ils sont supprimés du détourage.
Le détourage à forme fermée, présenté par Anat Levin, Dani Lischinski et Yair Weiss en 2006 dans A Closed Form Solution to Natural Image Matting, utilise des hypothèses locales sur les couleurs du premier plan et de l’arrière-plan pour construire un système linéaire creux. La résolution de ce système permet d’estimer l’alpha dans toute la région inconnue.
Les méthodes d’apprentissage profond apprennent les motifs d’apparence et de contour à partir d’exemples annotés. En 2017, Ning Xu, Brian Price, Scott Cohen et Thomas Huang ont présenté Deep Image Matting, qui associe un encodeur-décodeur à réseau neuronal convolutif à un module de raffinement. Les données de détourage d’Adobe et le jeu de test Composition-1k sont devenus des ressources d’évaluation de référence. La composition de premiers plans sur des arrière-plans variés enrichit les données d’entraînement grâce à l’augmentation des données.
Estimer un masque en Python#
L’API d’estimation alpha de PyMatting implémente le détourage à forme fermée. Installe-la avec pip install pymatting pillow, puis utilise les zones d’amorce du premier plan et de l’arrière-plan sur l’image d’exemple. Ici, les valeurs grises du trimap laissent au solveur le soin d’estimer les pixels concernés.
from urllib.request import urlopen
import numpy as np
from PIL import Image
from pymatting import estimate_alpha_cf
with urlopen("https://ultralytics.com/images/bus.jpg") as response:
photo = Image.open(response).convert("RGB")
photo.thumbnail((256, 256))
image = np.asarray(photo, dtype=np.float64) / 255.0
# Marque le ciel comme arrière-plan et une partie du bus comme premier plan.
trimap = np.full(image.shape[:2], 0.5)
trimap[:20, :] = 0.0
trimap[120:145, 115:145] = 1.0
alpha = estimate_alpha_cf(image, trimap)
matte = Image.fromarray(np.uint8(np.clip(alpha, 0, 1) * 255))
matte.save("alpha_matte.png")L’image en niveaux de gris enregistrée montre la contribution estimée du premier plan : blanc pour les amorces du premier plan, noir pour celles de l’arrière-plan et transitions estimées ailleurs.
Applications et évaluation de la qualité#
La retouche de portraits, la photographie de produits et la composition de films utilisent des masques pour préserver les contours fins lors du remplacement de l’arrière-plan. Le détourage vidéo de portraits applique cette opération à chaque image ; l’instabilité des contours produit alors un scintillement visible. MODNet fournit un exemple vérifiable d’extraction de portraits sans trimap à partir d’images RVB pour l’inférence en temps réel. Le remplissage d’image, lui, synthétise du contenu dans une région sélectionnée.
L’évaluation du détourage compare les valeurs alpha prédites aux masques de référence. Le benchmark de détourage fondé sur la perception, présenté par Christoph Rhemann et ses collègues en 2009, utilise la somme des différences absolues, l’erreur quadratique moyenne, l’erreur de gradient et l’erreur de connectivité. Ces mesures complètent les mesures de recouvrement de régions comme l’intersection sur union : l’erreur de gradient mesure les écarts dans les transitions alpha, tandis que l’erreur de connectivité mesure les ruptures de la structure connectée du premier plan.










