3D Gaussian Splatting biến một bộ ảnh hoặc một đoạn video thành cảnh 3D chân thực mà bạn xoay quanh được theo thời gian thực. Huấn luyện một cảnh như vậy cần GPU NVIDIA đủ mạnh và nhiều VRAM, đúng thứ mà nhiều nhiếp ảnh gia, kiến trúc sư, họa sĩ game hay sinh viên không có trên bàn làm việc. Thuê GPU dựng 3D Gaussian Splatting giải quyết chuyện đó: thuê card trong vài giờ cần dùng, huấn luyện không giao diện qua SSH, rồi mang cảnh hoàn chỉnh về máy. Bài viết hướng dẫn chọn VRAM, đưa ảnh lên máy, chọn khu vực theo dung lượng upload thay vì theo thói quen, và xuất kết quả.
Ở Việt Nam, kỹ thuật này đang được dùng để số hóa di tích, chụp nội thất cho bất động sản, quét sản phẩm cho shop online và làm tư liệu cho game. Chỉ cần một chiếc điện thoại chụp đủ ảnh và vài giờ GPU thuê ngoài.
Quy trình gồm những gì
Một dự án 3DGS (hoặc NeRF) điển hình có bốn giai đoạn:
- Chụp: vài chục tới vài trăm ảnh chồng lấn nhau, hoặc khung hình tách từ video.
- Ước lượng vị trí camera: structure-from-motion (thường là COLMAP) tính xem mỗi ảnh được chụp từ đâu.
- Huấn luyện: bộ tối ưu splatting khớp hàng triệu Gaussian với ảnh trên GPU.
- Xuất và xem: bạn nhận file
.ply(hoặc định dạng tương tự) để xem trong viewer, game engine hay trình phát trên web.
Giai đoạn 2 và 3 là nặng nhất. Tất cả chạy không giao diện; instance GPU của Cloudj không có desktop đồ họa, nên bạn huấn luyện trên máy chủ và xem kết quả trên máy tính của mình.
Cần bao nhiêu VRAM
VRAM quyết định bạn huấn luyện được bao nhiêu ảnh, ở độ phân giải nào, trước khi tràn bộ nhớ. Hướng dẫn chung:
| Card | VRAM | Thường phù hợp |
|---|---|---|
| RTX 3090 | 24 GB | Phần lớn cảnh vật thể và cảnh trong phòng ở độ phân giải vừa phải |
| RTX 4090 | 24 GB | Cùng bộ nhớ, huấn luyện nhanh hơn rõ rệt |
| RTX A6000 | 48 GB | Cảnh ngoài trời lớn, nhiều ảnh độ phân giải cao, ít phải thỏa hiệp; cần cấp tài khoản cao hơn |
Các bản cài đặt tham chiếu của 3DGS thường khuyến nghị khoảng 24 GB để huấn luyện chất lượng đầy đủ trên các bộ dữ liệu chuẩn. Với ít bộ nhớ hơn, bạn có thể giảm độ phân giải ảnh hoặc giảm mức tăng mật độ Gaussian, đổi lại mất một ít chi tiết. Nếu gặp lỗi hết bộ nhớ trên card 24 GB, giảm độ phân giải đầu vào một nửa là cách sửa nhanh; chuyển sang card 48 GB là cách gọn gàng hơn.
Chọn khu vực theo dung lượng upload
Với việc huấn luyện, không ai ngồi chờ từng khung hình, nên vị trí GPU không ảnh hưởng tốc độ. Thứ nó ảnh hưởng là thời gian upload bộ ảnh và thời gian kéo kết quả về. Quy tắc đơn giản:
- Bộ ảnh nhỏ (vài trăm MB): vị trí gần như không quan trọng. Bỏ bộ lọc quốc gia, chọn theo giá, độ tin cậy và thời hạn tối đa.
- Bộ ảnh lớn (nhiều GB ảnh RAW độ phân giải cao hoặc video): ưu tiên máy gần bạn, có tốc độ tải xuống cao. Với người ở Việt Nam,
SGvàHKthường là điểm khởi đầu; đường mạng từ nhà bạn quan trọng hơn băng thông của chính máy chủ. - Ràng buộc dữ liệu (tài sản của khách, công trình hạn chế chụp): chỉ lọc những nước bạn được phép dùng.
Vị trí GPU trên Cloudj là bộ lọc quốc gia áp lên danh sách máy chủ đang có. Mở trang triển khai RTX 4090, nhập mã quốc gia vào ô Country nếu cần, rồi đọc kết quả. Có máy thì bạn triển khai được; hàng thay đổi trong ngày. Nếu bạn ở gần Mỹ hoặc làm cho khách Mỹ, bài RTX 4090 ở Mỹ hướng dẫn cách tìm. Giá "từ" có trên GPU cloud.
Chọn dung lượng ổ đĩa
Dung lượng ổ đĩa chọn lúc triển khai và không thể đổi sau đó. Hãy cộng lại: bộ ảnh (hoặc video cộng khung hình tách ra), cơ sở dữ liệu và ảnh đã khử méo của COLMAP, vài checkpoint huấn luyện và cảnh xuất ra, cộng môi trường phần mềm. Bộ ảnh thường bị nhân bản trong lúc tiền xử lý, nên hãy chừa ít nhất gấp hai đến ba lần dung lượng gốc. Bài chọn dung lượng ổ đĩa cho GPU có bảng tính.
Upload bộ ảnh
Nhiều file nhỏ upload rất chậm. Hãy đóng gói trước và dùng cách truyền có thể nối lại:
tar -cf capture.tar capture/
rsync -avP -e "ssh -p <port>" capture.tar root@<host>:/workspace/
Nếu nguồn là video, hãy upload video thay vì khung hình đã tách, rồi tách trên máy chủ bằng ffmpeg. Như vậy thường nhỏ hơn nhiều, đỡ hẳn cho đường lên quốc tế. Bài chuyển model và dữ liệu giữa các khu vực GPU hướng dẫn nén, kiểm tra checksum và nối lại khi truyền lỗi.
Huấn luyện không giao diện
Triển khai bằng template Ubuntu + CUDA và SSH key, rồi kết nối bằng host và port trong tab Connection. Cài bộ công cụ bạn chọn (mã tham chiếu gốc của 3DGS, hoặc thư viện như gsplat hay nerfstudio) theo hướng dẫn của chúng. Cloudj không cài sẵn các công cụ này.
Một phiên làm việc điển hình:
ssh -p <port> root@<host>
nvidia-smi
cd /workspace && tar -xf capture.tar
tmux new -s splat
Trong tmux, chạy bước ước lượng camera, rồi huấn luyện. Giữ trong tmux để kết nối SSH rớt không làm chết lượt chạy dài. Theo dõi bộ nhớ GPU bằng nvidia-smi ở cửa sổ thứ hai trong vài phút đầu; nếu gần chạm trần, khởi động lại với ảnh đã giảm độ phân giải trước khi phí cả tiếng đồng hồ.
Một số bộ công cụ có viewer web hiển thị tiến trình huấn luyện. Nếu dùng, hãy cho nó lắng nghe trên localhost và chuyển tiếp port qua SSH thay vì mở ra Internet:
ssh -p <port> -L 7007:localhost:7007 root@<host>
Xuất kết quả và kết thúc
Kéo kết quả về ngay khi huấn luyện xong:
rsync -avP -e "ssh -p <port>" root@<host>:/workspace/output/ ./splat-output/
Sau đó xem file .ply trong viewer trên máy hoặc trên web, hoặc nhập vào game engine hay add-on của Blender. Nếu bạn muốn render video bay quanh cảnh, bài render Blender bằng GPU cloud châu Âu trình bày quy trình render không giao diện.
Mỗi máy là host độc lập có ngày "available until", nên đừng để bản duy nhất trên đó. Xong việc thì Destroy instance; để Stop vẫn tốn phí lưu trữ và còn nhả mất GPU. Tiền thuê trừ theo phút từ số dư, nạp bằng chuyển khoản VND, nên một dự án nhỏ chỉ tốn vài giờ GPU.
Câu hỏi thường gặp
Có xem quá trình huấn luyện trực tiếp bằng ứng dụng đồ họa trên máy chủ được không?
Không có desktop. Hãy dùng viewer web của bộ công cụ qua đường hầm SSH, hoặc xem checkpoint đã xuất trên máy mình.
24 GB có đủ cho Gaussian Splatting không?
Với phần lớn cảnh vật thể và cảnh trong phòng ở độ phân giải vừa phải thì đủ. Cảnh ngoài trời lớn, độ phân giải cao có thể cần giảm độ phân giải hoặc card 48 GB.
Nước đặt GPU có ảnh hưởng chất lượng hay tốc độ huấn luyện không?
Không. Nó chỉ ảnh hưởng thời gian upload, tải về và việc đáp ứng ràng buộc dữ liệu.
Nên upload khung hình hay video?
Upload video rồi tách khung hình trên máy chủ. Dung lượng gửi đi thường nhỏ hơn nhiều.
Dựng cảnh đầu tiên
Mở trang triển khai RTX 4090, chọn máy phù hợp với dung lượng upload của bạn và xem đang có gì. So sánh giá trực tiếp trên GPU cloud.