Image Matting
Bildmatting schätzt die Transparenz des Vordergrunds auf Pixelebene und bewahrt feine Details wie Haare, damit natürliche Freisteller und realistische Hintergrundkompositionen entstehen.
Beim Bildmatting wird geschätzt, wie stark der Vordergrund zu jedem Pixel eines Bildes beiträgt. Das Ergebnis, eine Alpha-Matte, bewahrt teilweise transparente Details wie einzelne Haare, Fell und weiche Kanten, sodass ein Motiv natürlich vor einem anderen Hintergrund platziert werden kann. Diese Aufgabe der Computer Vision, auch Alpha-Matting genannt, ermöglicht präzise Freisteller und Bildkompositionen. Physische Passepartouts für Bilder und medizinische Bodenmatten sind andere Bedeutungen von „Matting“.
So funktioniert eine Alpha-Matte#
Eine Alpha-Matte ist ein Einkanalbild mit Werten zwischen 0 und 1: 0 steht für den Hintergrund, 1 für einen vollständig deckenden Vordergrund und Zwischenwerte für eine teilweise Abdeckung durch den Vordergrund oder Transparenz. Alpha beschreibt die Mischung eines Pixels; die Konfidenz eines Modells beschreibt die Sicherheit einer Vorhersage. Feine Haare können nur einen Teil eines Pixels einnehmen und dadurch einen Zwischenwert für Alpha ergeben, selbst wenn die einzelne Haarsträhne deckend ist.
Die übliche Beziehung für die Bildkomposition lautet image = alpha * foreground + (1 - alpha) * background. Beim Matting werden diese Komponenten aus einem vorhandenen Bild geschätzt; bei der Bildkomposition wird der extrahierte Vordergrund mit einem Ersatzhintergrund kombiniert. Auch die Schätzung der Vordergrundfarbe ist wichtig: Bleibt die Farbe des ursprünglichen Hintergrunds an den Haaren erhalten, entstehen im neuen Bild farbige Ränder.
Bei der Bildsegmentierung werden Pixel Regionen zugeordnet. Die semantische Segmentierung weist Klassenbezeichnungen zu, während die Instanzsegmentierung einzelne Objekte voneinander trennt. Beim Matting wird die kontinuierliche Deckkraft des Vordergrunds geschätzt. Die Segmentierung mit Ultralytics YOLO26 unterstützt die Objektfreistellung, indem Instanzmasken in transparente Freisteller umgewandelt werden; diese Masken können eine erste Vordergrundkontur für eine separate Verfeinerungsstufe des Mattings liefern.
Trimaps und Matting-Methoden#
Ein Trimap umfasst drei Bereiche: bekannten Vordergrund, bekannten Hintergrund und einen unbekannten Bereich mit Kanten oder transparentem Material. Diese Form der Datenannotation schränkt das Schätzproblem ein. Wie bei der interaktiven Segmentierung können Nutzer die Extraktion mit wenigen Eingaben steuern. Werden Haare fälschlich als sicherer Hintergrund markiert, wird ihr Alpha-Wert auf null gesetzt und sie werden aus dem Freisteller entfernt.
Das Closed-Form-Matting, das Anat Levin, Dani Lischinski und Yair Weiss 2006 in A Closed Form Solution to Natural Image Matting vorstellten, nutzt Annahmen zu lokalen Vordergrund- und Hintergrundfarben, um ein dünn besetztes lineares Gleichungssystem aufzustellen. Durch dessen Lösung wird Alpha im gesamten unbekannten Bereich geschätzt.
Methoden des Deep Learning lernen Erscheinungs- und Kantenmuster anhand gekennzeichneter Beispiele. Ning Xu, Brian Price, Scott Cohen und Thomas Huang stellten 2017 Deep Image Matting vor, das einen Encoder-Decoder auf Basis eines faltenden neuronalen Netzes mit einer Verfeinerungsstufe kombiniert. Die Adobe-Matting-Daten und der Testsatz Composition-1k entwickelten sich zu etablierten Bewertungsgrundlagen. Das Einfügen von Vordergründen in verschiedene Hintergründe erweitert die Trainingsdaten durch Datenerweiterung.
Eine Matte in Python schätzen#
Die PyMatting-API zur Alpha-Schätzung implementiert Closed-Form-Matting. Installiere sie mit pip install pymatting pillow und verwende dann Vordergrund- und Hintergrundbereiche als Vorgaben für das Beispielbild. Hier lassen graue Trimap-Werte Pixel übrig, deren Werte der Solver schätzen soll.
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
# Markiere den Himmel als Hintergrund und einen Bereich des Busses als Vordergrund.
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")Das gespeicherte Graustufenbild zeigt den geschätzten Beitrag des Vordergrunds: Weiß an den Vordergrundvorgaben, Schwarz an den Hintergrundvorgaben und dazwischen die geschätzten Übergänge.
Anwendungen und Qualitätsbewertung#
Bei der Porträtbearbeitung, Produktfotografie und Filmkomposition werden Matten eingesetzt, um feine Kanten beim Ersetzen des Hintergrunds zu bewahren. Matting von Porträtvideos überträgt diesen Vorgang auf mehrere Einzelbilder, bei denen instabile Kanten sichtbares Flimmern verursachen. MODNet ist ein überprüfbares Beispiel für die trimapfreie Extraktion von Porträts aus RGB-Eingaben zur Echtzeit-Inferenz. Beim Bild-Inpainting werden stattdessen Inhalte innerhalb eines ausgewählten Bereichs erzeugt.
Bei der Matting-Bewertung werden vorhergesagte Alpha-Werte mit Referenzmatten verglichen. Der wahrnehmungsorientierte Matting-Benchmark, den Christoph Rhemann und Kollegen 2009 vorstellten, verwendet die Summe der absoluten Differenzen, den mittleren quadratischen Fehler, den Gradientenfehler und den Konnektivitätsfehler. Diese Kennzahlen ergänzen Maße für die Flächenüberlappung wie Intersection over Union: Der Gradientenfehler misst Abweichungen bei Alpha-Übergängen, während der Konnektivitätsfehler Unterbrechungen in der zusammenhängenden Vordergrundstruktur erfasst.










