Image Matting
Ước lượng alpha của ảnh xác định độ trong suốt của tiền cảnh ở cấp pixel, giữ lại các chi tiết nhỏ như tóc để tạo ảnh cắt tự nhiên và ghép nền chân thực.
Matting ảnh là quá trình ước tính mức độ thành phần tiền cảnh đóng góp vào từng pixel trong ảnh. Đầu ra của quá trình này, mặt nạ alpha, giữ lại các chi tiết bán trong suốt như từng sợi tóc, lông và các cạnh mềm, nhờ đó chủ thể có thể được đặt tự nhiên trên một nền khác. Còn được gọi là ước lượng alpha, tác vụ thị giác máy tính này hỗ trợ tách chủ thể chính xác và ghép ảnh. Tấm lót khung tranh và thảm trải sàn y tế là những nghĩa khác của từ "matting".
Cách hoạt động của Alpha Matte#
Alpha matte là ảnh một kênh có các giá trị từ 0 đến 1: 0 biểu thị nền, 1 biểu thị tiền cảnh hoàn toàn đục và các giá trị trung gian biểu thị mức độ bao phủ hoặc độ trong suốt một phần của tiền cảnh. Alpha mô tả sự pha trộn của pixel; độ tin cậy của model mô tả mức độ chắc chắn về một dự đoán. Tóc mảnh có thể chỉ chiếm một phần pixel, tạo ra giá trị alpha trung gian ngay cả khi bản thân sợi tóc đó đục.
Quan hệ ghép ảnh tiêu chuẩn là image = alpha * foreground + (1 - alpha) * background. Ước lượng alpha xác định các thành phần này từ ảnh hiện có; ghép ảnh kết hợp tiền cảnh đã tách với nền thay thế. Việc ước lượng màu tiền cảnh cũng rất quan trọng: giữ lại màu của nền gốc quanh tóc sẽ tạo ra viền màu trong ảnh ghép mới.
Phân đoạn ảnh gán pixel vào các vùng. Phân đoạn ngữ nghĩa gán nhãn lớp, trong khi phân đoạn đối tượng tách riêng từng đối tượng. Ước lượng alpha xác định độ mờ liên tục của tiền cảnh. Tính năng phân đoạn của Ultralytics YOLO26 hỗ trợ tách riêng đối tượng bằng cách chuyển đổi mask đối tượng thành ảnh cắt trong suốt; các mask đó có thể cung cấp đường viền tiền cảnh ban đầu cho một giai đoạn tinh chỉnh alpha riêng biệt.
Trimap và các phương pháp ước lượng alpha#
Trimap xác định ba vùng: tiền cảnh đã biết, nền đã biết và vùng chưa xác định chứa đường biên hoặc vật liệu trong suốt. Hình thức gán nhãn dữ liệu này giới hạn bài toán ước lượng. Tương tự như phân đoạn tương tác, trimap cho phép người dùng hướng dẫn quá trình tách đối tượng chỉ với một lượng nhỏ dữ liệu đầu vào. Đánh dấu nhầm tóc là nền chắc chắn sẽ buộc alpha của tóc bằng 0, khiến tóc bị loại khỏi ảnh cắt.
Ước lượng alpha dạng đóng, do Anat Levin, Dani Lischinski và Yair Weiss giới thiệu năm 2006 trong A Closed Form Solution to Natural Image Matting, sử dụng các giả định về màu tiền cảnh và nền cục bộ để xây dựng một hệ tuyến tính thưa. Giải hệ này sẽ ước lượng alpha trên toàn vùng chưa xác định.
Các phương pháp học sâu học các mẫu về hình thức và đường biên từ các ví dụ được gán nhãn. Năm 2017, Ning Xu, Brian Price, Scott Cohen và Thomas Huang giới thiệu Deep Image Matting, kết hợp bộ mã hóa-giải mã mạng nơ-ron tích chập với bước tinh chỉnh. Bộ dữ liệu ước lượng alpha của Adobe và tập kiểm thử Composition-1k trở thành các tài nguyên đánh giá phổ biến. Ghép tiền cảnh lên nhiều nền khác nhau giúp mở rộng dữ liệu huấn luyện thông qua tăng cường dữ liệu.
Ước lượng Matte bằng Python#
API ước lượng alpha PyMatting triển khai phương pháp ước lượng alpha dạng đóng. Cài đặt bằng pip install pymatting pillow, sau đó sử dụng các vùng seed tiền cảnh và nền trên ảnh mẫu. Trong ví dụ này, các giá trị trimap màu xám để lại những pixel cần bộ giải ước lượng.
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
# Đánh dấu bầu trời là nền và một vùng trên xe buýt là tiền cảnh.
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")Ảnh thang độ xám đã lưu thể hiện mức đóng góp tiền cảnh được ước lượng: màu trắng tại các seed tiền cảnh, màu đen tại các seed nền và các chuyển tiếp được ước lượng ở những vị trí khác.
Ứng dụng và đánh giá chất lượng#
Chỉnh sửa chân dung, chụp ảnh sản phẩm và ghép cảnh phim sử dụng matte để giữ lại đường biên chi tiết khi thay nền. Ước lượng alpha video chân dung mở rộng thao tác này qua nhiều khung hình, trong đó đường biên không ổn định gây ra hiện tượng nhấp nháy rõ rệt. MODNet là một ví dụ có thể kiểm chứng về việc tách chân dung không cần trimap từ đầu vào RGB cho suy luận thời gian thực. Ngược lại, inpainting ảnh tổng hợp nội dung bên trong một vùng được chọn.
Đánh giá ước lượng alpha so sánh các giá trị alpha dự đoán với matte tham chiếu. Bộ tiêu chuẩn đánh giá matting hướng đến cảm nhận, do Christoph Rhemann và các cộng sự giới thiệu năm 2009, sử dụng tổng sai khác tuyệt đối, sai số bình phương trung bình, sai số gradient và sai số kết nối. Các chỉ số này bổ sung cho những phép đo độ chồng lấp vùng như độ giao trên hợp: sai số gradient đo độ lệch trong các vùng chuyển tiếp alpha, còn sai số kết nối đo sự gián đoạn trong cấu trúc tiền cảnh liên thông.










