Neural Rendering
Dựng hình nơ-ron thay thế một phần pipeline đồ họa bằng mạng nơ-ron để tạo hình ảnh và cảnh 3D được học từ ảnh. Tìm hiểu các phương pháp và code.
Kết xuất thần kinh là việc tạo ảnh và video bằng mạng nơ-ron để thay thế hoặc bổ sung các phần trong quy trình đồ họa máy tính truyền thống, đồng thời vẫn kiểm soát được các thuộc tính của cảnh như góc nhìn camera, ánh sáng, hình học và diện mạo. Kết xuất thông thường tính toán ảnh từ các model 3D, vật liệu và nguồn sáng được xây dựng thủ công bằng cách mô phỏng vật lý truyền ánh sáng. Thay vào đó, kết xuất thần kinh học một số thành phần này từ ảnh và video, hoặc học cách tạo trực tiếp các pixel đầu ra. Là một lĩnh vực, kết xuất thần kinh kết hợp học máy tạo sinh với kiến thức vật lý từ đồ họa máy tính, thường bằng cách tích hợp kết xuất khả vi vào quá trình huấn luyện mạng. Kết xuất thần kinh hỗ trợ tạo bản quét 3D chân thực như ảnh chụp của địa điểm thực, nâng cấp bằng AI và tạo khung hình trong trò chơi điện tử, cũng như mô phỏng cho robot và xe tự lái.
Cách thức kết xuất thần kinh hoạt động#
Nhánh có ảnh hưởng lớn nhất học cảnh 3D từ ảnh chụp thông thường. Một biểu diễn cảnh, chẳng hạn như mạng nơ-ron, lưới đặc trưng đã học hoặc tập hợp các phần tử nguyên thủy 3D, được bộ kết xuất khả vi chuyển thành ảnh từ vị trí camera của ảnh huấn luyện. Vì có thể tính đạo hàm qua mọi bước của bộ kết xuất, sai khác giữa ảnh được kết xuất và ảnh chụp thực có thể được truy ngược qua lan truyền ngược đến mọi tham số của cảnh. Lặp lại quy trình này trên nhiều góc nhìn sẽ tái dựng cảnh đủ chính xác để kết xuất những góc nhìn mà camera chưa từng ghi lại:
Tư thế camera của ảnh thường được xác định bằng phần mềm Structure from Motion như COLMAP, phần mềm này đối sánh đặc trưng giữa các ảnh chụp chồng lấp để xác định vị trí chụp từng ảnh.
Các biểu diễn cảnh thần kinh#
Trường bức xạ thần kinh (NeRF), được giới thiệu năm 2020, lưu trữ cảnh trong trọng số của perceptron đa tầng, ánh xạ vị trí 3D và hướng nhìn thành mật độ và màu sắc. Để kết xuất một pixel, NeRF lấy mẫu các điểm dọc theo tia camera đi qua pixel đó và pha trộn màu bằng phương pháp kết xuất thể tích: mỗi mẫu đóng góp tùy theo độ mờ đục và lượng ánh sáng còn lại sau khi đi qua các mẫu phía trước. Đoạn mã PyTorch này huấn luyện một trường nhỏ để tái tạo một pixel quan sát được trên một tia:
import torch
from torch import nn
# A tiny neural field that maps a 3D point to a density and an RGB color
torch.manual_seed(0)
field = nn.Sequential(nn.Linear(3, 64), nn.ReLU(), nn.Linear(64, 4))
optimizer = torch.optim.Adam(field.parameters(), lr=0.01)
# 64 points along one camera ray, and the color a training photo shows for that pixel
depths = torch.linspace(2.0, 6.0, 64)
points = torch.stack([torch.zeros(64), torch.zeros(64), depths], dim=1)
observed = torch.tensor([0.9, 0.4, 0.1])
for step in range(200):
density, color = field(points).split([1, 3], dim=1)
# Volume rendering: each sample's opacity times the light that reaches it through the samples in front
alpha = 1 - torch.exp(-nn.functional.softplus(density.squeeze(1)) * (depths[1] - depths[0]))
transmittance = torch.cumprod(torch.cat([torch.ones(1), 1 - alpha[:-1]]), dim=0)
pixel = (transmittance * alpha) @ torch.sigmoid(color)
loss = ((pixel - observed) ** 2).sum()
optimizer.zero_grad()
loss.backward()
optimizer.step()
if step in (0, 199):
print(f"step {step}: rendered {pixel.detach().numpy().round(2)}, loss {loss.item():.4f}")Đoạn mã in ra step 0: rendered [0.71 0.37 0.56], loss 0.2496 và step 199: rendered [0.9 0.4 0.1], loss 0.0000. Mạng chưa huấn luyện kết xuất một màu tùy ý; các gradient lan truyền ngược qua phương trình kết xuất sẽ điều chỉnh trọng số cho đến khi pixel kết xuất khớp với ảnh chụp. NeRF thực hiện tương tự với hàng triệu tia từ hàng chục đến hàng trăm ảnh chụp.
NeRF ban đầu cần một đến hai ngày huấn luyện cho mỗi cảnh trên GPU NVIDIA V100; mỗi ảnh kết xuất cần 150 đến 200 triệu lượt truy vấn mạng, tương đương khoảng 30 giây mỗi khung hình. Instant NGP của NVIDIA thay thế phần lớn mạng bằng bảng băm đa độ phân giải chứa các đặc trưng đã học, rút ngắn thời gian huấn luyện xuống còn vài giây hoặc vài phút và kết xuất xuống còn vài chục mili giây ở độ phân giải 1920×1080. Gaussian splatting tiến xa hơn vào năm 2023: biểu diễn cảnh bằng hàng triệu Gaussian 3D tường minh được raster hóa theo thời gian thực, không cần đánh giá mạng khi kết xuất; phương pháp này thường được xếp vào nhóm kết xuất thần kinh vì được tối ưu hóa theo cùng cách.
Kết xuất thần kinh trong không gian ảnh#
Nhánh thứ hai giữ lại bộ kết xuất thông thường và dùng mạng để hoàn thiện hoặc mở rộng đầu ra. DLSS của NVIDIA kết xuất trò chơi ở độ phân giải thấp hơn, nâng cấp ảnh bằng model Transformer, và trên GPU GeForce RTX 50 Series tạo tối đa năm khung hình cho mỗi khung hình mà trò chơi kết xuất. Các ảnh kết xuất dò tia đường đi sử dụng bộ khử nhiễu đã học để tạo ảnh rõ nét từ một vài mẫu ánh sáng trên mỗi pixel. Các model khác tổng hợp ảnh từ bố cục cảnh: GauGAN của NVIDIA biến bản đồ ngữ nghĩa gồm bầu trời, mặt nước và cây cối thành phong cảnh chân thực như ảnh chụp; các hệ thống avatar thần kinh kết xuất khuôn mặt một người từ góc nhìn hoặc điều kiện ánh sáng mới.
Kết xuất thần kinh và các thuật ngữ liên quan#
- Kết xuất khả vi: Bộ kết xuất có đầu ra khả vi theo các đầu vào. Đây là cơ chế cho phép kết xuất thần kinh học từ ảnh; cơ chế này cũng được dùng mà không cần mạng nơ-ron, chẳng hạn để khớp mesh với ảnh chụp.
- Kết xuất ngược: Khôi phục hình học, vật liệu và ánh sáng từ ảnh, thường bằng kết xuất khả vi, để có thể chỉnh sửa và kết xuất lại kết quả.
- Tổng hợp góc nhìn mới: Tác vụ tạo ảnh từ các góc nhìn chưa từng thấy, được NeRF và Gaussian splatting giải quyết; kết xuất thần kinh là tập hợp kỹ thuật rộng hơn.
- AI tạo sinh: Các model tạo ảnh từ văn bản và tạo video tạo nội dung từ prompt, thường không có cảnh tường minh để quan sát từ vị trí camera tùy chọn.
Ứng dụng thực tế#
- Điện ảnh và sản xuất ảo: Các địa điểm được ghi lại được tái dựng thành trường bức xạ hoặc các đốm Gaussian, rồi kết xuất từ đường di chuyển camera mới để tạo hiệu ứng hình ảnh và tiền trực quan hóa.
- Bản sao số và thương mại điện tử: Ảnh chụp phòng, tòa nhà và sản phẩm bằng điện thoại được chuyển thành góc nhìn 3D để khách hàng và người lập kế hoạch khám phá bằng trình duyệt hoặc kính AR.
- Robot và xe tự hành: Các chuyến lái xe đã ghi hình được tái dựng và kết xuất lại từ những góc nhìn lệch, tạo dữ liệu tổng hợp để kiểm thử hệ thống nhận thức. Người và xe di chuyển trong lúc ghi hình tạo ra các hiện tượng giả bán trong suốt, vì vậy quy trình xử lý sẽ che chúng khỏi ảnh huấn luyện; các model phân đoạn instance YOLO26 tự động tạo các mask đó cho mọi khung hình. Block-NeRF của Waymo đã tái dựng toàn bộ khu phố San Francisco từ 2,8 triệu ảnh bằng cách ghép một lưới NeRF được huấn luyện riêng biệt.










