Depth Bleeding
Loang độ sâu là lỗi trong bản đồ độ sâu, khi khoảng cách bị nhòe qua ranh giới vật thể, tạo ra pixel lơ lửng và quầng sáng trong đám mây điểm và cảnh AR.
Hiện tượng rò độ sâu là lỗi trong bản đồ độ sâu, trong đó giá trị độ sâu tràn qua ranh giới giữa đối tượng tiền cảnh và hậu cảnh, khiến pixel dọc theo cạnh nhận độ sâu của bề mặt còn lại hoặc giá trị pha trộn của cả hai. Hiện tượng này xuất hiện tại các điểm gián đoạn độ sâu — ranh giới che khuất nơi một bề mặt kết thúc và một bề mặt ở xa hơn nhiều bắt đầu — và ảnh hưởng đến mọi nguồn dữ liệu độ sâu: thị giác lập thể, cảm biến thời gian bay và LiDAR, cùng các phương pháp ước lượng độ sâu dựa trên học máy. Tầm quan trọng của các cạnh lớn hơn nhiều so với tỷ lệ pixel của chúng. Khi được chiếu ngược vào đám mây điểm 3D, các pixel bị rò trở thành pixel bay — những điểm lơ lửng trong khoảng không giữa đối tượng và bức tường phía sau. Trong thực tế tăng cường, chúng khiến vật thể ảo xuyên qua hoặc lơ lửng trước các cạnh thật; trong tổng hợp góc nhìn mới, chúng kéo giãn cạnh như tấm cao su; còn với robot học và xe tự hành, chúng khiến đối tượng trông rộng hơn thực tế, làm lệch điểm gắp của robot và kéo giãn khung của phát hiện đối tượng 3D.
Nguồn gốc hiện tượng rò độ sâu#
Trong ghép ảnh lập thể, kết quả ghép của mỗi pixel được xác định bằng cách so sánh một cửa sổ các pixel lân cận; gần cạnh, cửa sổ đó bao phủ cả hai bề mặt. Pixel tiền cảnh trong cửa sổ có thể chi phối chi phí ghép, khiến độ sâu tiền cảnh lan sang các pixel hậu cảnh bên cạnh — hiện tượng mà tài liệu về ảnh lập thể gọi là hiện tượng tiền cảnh phình rộng. Các pixel chỉ một camera nhìn thấy không có kết quả ghép chính xác và nhận độ sâu của pixel lân cận.
Mạng nơ-ron dùng để ước lượng độ sâu đơn ảnh gây rò độ sâu theo hai cách. Encoder giảm kích thước ảnh thành các feature map thô, nên nhiều decoder dự đoán độ sâu ở độ phân giải thấp hơn đầu vào rồi nội suy phóng lớn, làm pha trộn hai bề mặt qua mọi cạnh. Ngoài ra, tại pixel ranh giới có thể thuộc về một trong hai bề mặt, hàm mất mát bình phương sai số được tối thiểu hóa khi dự đoán giá trị trung bình của hai độ sâu — một giá trị không nằm trên bề mặt nào. Các model độ sâu Ultralytics YOLO26 dự đoán log-depth ở một phần tư độ phân giải đầu vào; predictor phóng lớn bản đồ bằng nội suy song tuyến tính về kích thước ảnh ban đầu, vì vậy bước nhảy giữa hai bề mặt trong đầu ra trở thành một dải chuyển tiếp rộng vài pixel.
Cảm biến gây rò do tính chất vật lý. Một pixel thời gian bay hoặc tia LiDAR có vùng phủ cắt ngang cạnh nhận ánh sáng từ cả hai bề mặt và báo độ sâu nằm giữa chúng — nguồn gốc điển hình của pixel bay trong đám mây điểm từ camera độ sâu. Camera RGB-D còn gặp sai lệch căn chỉnh, vì độ sâu được đo từ vị trí hơi khác so với vị trí đo màu; các cạnh sẽ dịch chuyển khi chiếu lại dữ liệu này lên dữ liệu kia.
Ví dụ này phóng lớn bản đồ độ sâu có độ phân giải bằng một phần tư của người đứng cách bức tường 4 m một khoảng 1,5 m, theo cách nhiều mạng độ sâu đạt độ phân giải đầy đủ, rồi đếm số pixel có độ sâu không thuộc về bề mặt nào:
import torch
import torch.nn.functional as F
# A depth map predicted at 1/4 resolution: a person 1.5 m away in front of a wall 4 m away
low = torch.full((1, 1, 120, 160), 4.0)
low[..., 30:, 60:100] = 1.5
for mode in ["bilinear", "nearest"]:
# Upsample 4x to the 480 x 640 image
depth = F.interpolate(low, size=(480, 640), mode=mode)[0, 0]
# Bleeding pixels hold depths that belong to neither surface
bleeding = (depth > 1.6) & (depth < 3.9)
print(f"{mode}: {bleeding.sum().item()} bleeding pixels, row 300 across the edge: {depth[300, 394:404].tolist()}")Phóng lớn song tuyến tính tạo ra 3.518 pixel bị rò, với dải chuyển tiếp lần lượt là 1,81; 2,44; 3,06 và 3,69 m dọc theo mọi cạnh đường viền; mỗi pixel này sẽ lơ lửng giữa không trung trong đám mây điểm. Phóng lớn theo láng giềng gần nhất không tạo ra pixel nào vì không bao giờ sinh giá trị mới, nhưng trong ảnh thực, cạnh thật nằm bên trong một pixel thô; do đó, đầu ra láng giềng gần nhất có thể đặt cạnh lệch đến hai pixel và biến cạnh chéo thành dạng bậc thang.
Giảm thiểu và đo lường hiện tượng rò độ sâu#
Phóng lớn có nhận biết cạnh, một dạng siêu phân giải độ sâu có hướng dẫn, sử dụng ảnh màu ở độ phân giải đầy đủ làm ảnh dẫn hướng. Phương pháp phóng lớn song phương kết hợp, do Johannes Kopf và các cộng sự giới thiệu năm 2007, cùng bộ lọc guided gán trọng số cho từng pixel lân cận dựa trên độ tương đồng màu sắc, nhờ đó độ sâu dừng lại tại các cạnh ảnh. Lỗi ngược lại, sao chép kết cấu, xảy ra khi các cạnh màu không đi kèm thay đổi độ sâu — chẳng hạn chữ in trên hộp — bị khắc vào bản đồ độ sâu. Mạng giảm rò độ sâu bằng cách tạo đầu ra độ phân giải cao hơn, dùng hàm mất mát huấn luyện có nhận biết ranh giới và tinh chỉnh dựa trên phân đoạn ảnh; Depth Pro của Apple được thiết kế và đánh giá riêng cho ranh giới sắc nét. Với ảnh lập thể, kiểm tra tính nhất quán trái-phải đánh dấu các pixel có kết quả ghép không nhất quán giữa hai hướng; với mọi nguồn dữ liệu, có thể loại bỏ pixel bay bằng cách bỏ các điểm có độ sâu thay đổi mạnh giữa các điểm lân cận hoặc bề mặt gần song song với tia nhìn.
Các metric tiêu chuẩn hầu như không ghi nhận hiện tượng rò, vì pixel cạnh chỉ chiếm tỷ lệ nhỏ trong ảnh và sai số trung bình như sai số tương đối tuyệt đối hầu như không thay đổi. Bộ benchmark iBims-1, do Tobias Koch và các cộng sự tại Đại học Kỹ thuật Munich công bố năm 2018, chấm trực tiếp các cạnh độ sâu thông qua sai số biên độ sâu: độ chính xác đo khoảng cách giữa cạnh dự đoán và cạnh được gán nhãn thủ công; độ đầy đủ đo số cạnh thật bị dự đoán bỏ sót.










