Image Matting
La extracción de mate de imágenes estima la transparencia del primer plano a nivel de píxel y conserva detalles finos, como el pelo, para crear recortes naturales y componer fondos de forma realista.
La extracción de mate de imágenes consiste en estimar cuánto contribuye el primer plano a cada píxel de una imagen. Su resultado, un mate alfa, conserva detalles parcialmente transparentes, como pelos individuales, pelaje y bordes suaves, para que un sujeto pueda colocarse de forma natural sobre otro fondo. Esta tarea, también llamada extracción de mate alfa, pertenece a la visión artificial y permite crear recortes precisos y componer imágenes. Los marcos físicos para cuadros y el revestimiento de suelos médicos son otros significados de «mate».
Cómo funciona un mate alfa#
Un mate alfa es una imagen de un solo canal cuyos valores están entre 0 y 1: 0 representa el fondo, 1 representa un primer plano totalmente opaco y los valores intermedios representan una cobertura parcial del primer plano o transparencia. El alfa describe la mezcla del píxel; la confianza de un modelo describe la certeza de una predicción. El pelo fino puede ocupar solo parte de un píxel, lo que produce un valor alfa intermedio aunque el mechón sea opaco.
La relación de composición estándar es image = alpha * foreground + (1 - alpha) * background. La extracción de mate estima estos componentes a partir de una imagen existente; la composición combina el primer plano extraído con un fondo de sustitución. También es importante estimar el color del primer plano: conservar alrededor del pelo el color del fondo original crea halos de color en la nueva composición.
La segmentación de imágenes asigna píxeles a regiones. La segmentación semántica asigna etiquetas de clase, mientras que la segmentación de instancias separa objetos individuales. La extracción de mate estima la opacidad continua del primer plano. La segmentación de YOLO26 de Ultralytics permite el aislamiento de objetos al convertir máscaras de instancias en recortes transparentes; esas máscaras pueden proporcionar un contorno inicial del primer plano para una etapa independiente de refinamiento de mate.
Trimaps y métodos de extracción de mate#
Un trimap define tres regiones: primer plano conocido, fondo conocido y una región desconocida que contiene bordes o material transparente. Esta forma de anotación de datos restringe el problema de estimación. Al igual que la segmentación interactiva, permite guiar la extracción con una pequeña cantidad de información. Si se marca el pelo por error como fondo seguro, su alfa se fuerza a cero y desaparece del recorte.
La extracción de mate en forma cerrada, presentada por Anat Levin, Dani Lischinski y Yair Weiss en 2006 mediante A Closed Form Solution to Natural Image Matting, utiliza supuestos locales sobre los colores del primer plano y del fondo para construir un sistema lineal disperso. La resolución de ese sistema estima el alfa en toda la región desconocida.
Los métodos de aprendizaje profundo aprenden patrones de apariencia y de bordes a partir de ejemplos etiquetados. En 2017, Ning Xu, Brian Price, Scott Cohen y Thomas Huang presentaron Deep Image Matting, que combina un codificador-decodificador de red neuronal convolucional con un refinamiento. Sus datos de extracción de mate de Adobe y el conjunto de prueba Composition-1k se convirtieron en recursos de evaluación de referencia. Componer primeros planos sobre fondos variados amplía los datos de entrenamiento mediante el aumento de datos.
Estimación de un mate en Python#
La API de estimación alfa de PyMatting implementa la extracción de mate en forma cerrada. Instálala con pip install pymatting pillow y, después, utiliza regiones semilla de primer plano y de fondo en la imagen de muestra. En este caso, los valores grises del trimap dejan píxeles para que los estime el solucionador.
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
# Marca el cielo como fondo y una zona del autobús como primer plano.
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")La imagen en escala de grises guardada muestra la contribución estimada del primer plano: blanco en las semillas del primer plano, negro en las del fondo y transiciones estimadas en el resto.
Aplicaciones y evaluación de la calidad#
La edición de retratos, la fotografía de productos y la composición cinematográfica utilizan mates para conservar los bordes finos al sustituir el fondo. La extracción de mate de vídeo de retratos extiende esta operación a varios fotogramas, donde los bordes inestables producen un parpadeo visible. MODNet ofrece un ejemplo verificable de extracción de retratos sin trimap a partir de una entrada RGB para la inferencia en tiempo real. El relleno de imágenes, en cambio, genera contenido dentro de una región seleccionada.
La evaluación de la extracción de mate compara los valores alfa predichos con los mates de referencia. El benchmark de extracción de mate basado en la percepción, presentado por Christoph Rhemann y sus colaboradores en 2009, utiliza la suma de diferencias absolutas, el error cuadrático medio, el error de gradiente y el error de conectividad. Estas métricas complementan medidas de solapamiento de regiones como la intersección sobre unión: el error de gradiente mide las discrepancias en las transiciones alfa, mientras que el error de conectividad mide las alteraciones de la estructura conectada del primer plano.










