Đến nội dung chính

VGGT: Visual Geometry Grounded Transformer

Best Paper (CVPR 2025)Tái dựng hình học 3D & 4D

VGGT dùng một mạng feed-forward để suy ra camera, độ sâu, point map và quỹ đạo điểm từ một hoặc nhiều ảnh. Kiến trúc chung nghiên cứu cách học các thuộc tính hình học 3D liên quan trong cùng mô hình thay vì những bộ giải riêng biệt.

Mức giải thích

VGGT thay chuỗi bước hình học lặp bằng một transformer duy nhất cho dựng hình 3D từ ảnh. Bài này tóm tắt bài toán, phương pháp, số liệu đã đối chiếu với bài báo và các giới hạn tác giả nêu.

Tổng quan

VGGT (Visual Geometry Grounded Transformer) là mạng feed-forward nhận từ một đến hàng trăm ảnh của một cảnh và dự đoán trực tiếp tham số camera (nội tại và ngoại tại), bản đồ độ sâu, point map 3D và track điểm. Tác giả cho biết mạng chạy dưới một giây với tập ảnh nhỏ và thường vượt các phương pháp dựa trên tối ưu hóa mà không cần hậu xử lý. Nhóm tác giả gồm Jianyuan Wang, Minghao Chen, Nikita Karaev, Andrea Vedaldi, Christian Rupprecht và David Novotny (Visual Geometry Group, Oxford và Meta AI).

Đóng góp chính theo bài báo: (1) một transformer lớn dự đoán mọi đại lượng 3D quan trọng cùng lúc; (2) kết quả dùng trực tiếp được và thường tốt hơn các phương pháp có hậu xử lý chậm; (3) khi kết hợp thêm bundle adjustment (BA) thì còn tốt hơn nữa; (4) backbone đã huấn luyện có thể dùng lại cho tracking điểm động và novel view synthesis. Việc bài báo nằm trong danh sách Best Paper là ghi nhận chính thức của hội nghị; các nhận xét về ý nghĩa của nó là diễn giải biên tập của EyeCode.

Bài toán nghiên cứu

Structure-from-motion (SfM) cổ điển gồm nhiều giai đoạn: ghép ảnh, tam giác hóa và bundle adjustment. Học máy đã cải thiện từng thành phần, và VGGSfM kết hợp học với BA khả vi, nhưng hình học vẫn đóng vai trò lớn nên hệ thống phức tạp và tốn tính toán. DUSt3R và MASt3R dự đoán point map cho một cặp ảnh nhưng chỉ xử lý hai ảnh một lúc và cần hậu xử lý (global alignment) để ghép nhiều ảnh.

Công thức bài toán: đầu vào là N ảnh RGB của cùng một cảnh (N từ một đến hàng trăm). Với mỗi ảnh, mạng xuất camera (9 số), bản đồ depth, point map trong hệ tọa độ của camera đầu tiên và lưới đặc trưng dùng cho tracking. Ảnh đầu tiên là khung tham chiếu; thứ tự các ảnh còn lại là tùy ý. Khó ở chỗ mạng phải suy ra đồng thời hình học cảnh và vị trí các góc nhìn mà không được cho trước camera.

Ý tưởng chính

Ý tưởng cốt lõi là một transformer lớn gần như chuẩn với một lựa chọn cấu trúc: alternating attention (AA), luân phiên self-attention trong từng khung và self-attention toàn cục trên token của mọi khung. Mô hình học đồng thời nhiều đại lượng 3D liên quan (camera, depth, point map, track) trên nhiều bộ dữ liệu công khai. Tác giả báo cáo rằng học chung làm tăng độ chính xác, và rằng lúc suy luận, point map dựng từ depth cộng camera cho kết quả tốt hơn head point map chuyên dụng.

Phương pháp

Sơ đồ minh họa luồng dữ liệu của VGGT do EyeCode vẽ
Minh họa gốc của EyeCode về luồng dữ liệu VGGT theo mô tả trong bài báo; không phải bản sao hình của tác giả. · EyeCode Tech (Original EyeCode illustration) · Nguồn
Biểu đồ cột ablation attention trên ETH3D, lấy từ Bảng 5
Biểu đồ gốc của EyeCode vẽ lại Bảng 5 của bài báo: lỗi point map Overall trên ETH3D (càng thấp càng tốt). · EyeCode Tech (Original EyeCode illustration) · Nguồn

Pipeline: (1) mỗi ảnh được chia thành patch 14×14 và biến thành token bằng DINOv2; (2) mỗi khung thêm một camera token và bốn register token, riêng khung đầu dùng bộ token học được khác để đánh dấu khung tham chiếu; (3) 24 khối, mỗi khối có một lớp attention trong khung và một lớp attention toàn cục; (4) head camera (bốn lớp self-attention và một lớp tuyến tính) dự đoán camera, head DPT dự đoán depth, point map và độ bất định, và head tracking dựa trên CoTracker2 dự đoán vị trí của một điểm truy vấn ở các ảnh khác.

Dữ liệu huấn luyện gồm khoảng 17 nguồn (Co3Dv2, BlendMVS, DL3DV, MegaDepth, Kubric, WildRGB, ScanNet, HyperSim, Mapillary, Habitat, Replica, MVS-Synth, PointOdyssey, Virtual KITTI, hai bộ Aria và một bộ tài sản tổng hợp do nghệ sĩ tạo). Tổng loss là camera + depth + point map + 0,05 lần loss track.

Thực nghiệm & kết quả

Bảng 1 của bài báo: ước lượng pose camera với 10 khung ngẫu nhiên mỗi cảnh, AUC@30 (càng cao càng tốt). Không phương pháp nào được huấn luyện trên RealEstate10K; các phương pháp học được huấn luyện trên Co3Dv2. Dấu ‡ là công trình đồng thời. Thời gian đo trên một GPU H100. Một số hàng của bài (Colmap+SPSG, PixSfM, PoseDiff) được lược bớt.
Phương phápRe10K AUC@30CO3Dv2 AUC@30Thời gian
DUSt3R67.776.7~7 s
MASt3R76.481.8~9 s
VGGSfM v278.983.4~10 s
MV-DUSt3R ‡71.369.5~0.6 s
CUT3R ‡75.382.8~0.6 s
FLARE ‡78.883.3~0.5 s
Fast3R ‡72.782.5~0.2 s
VGGT (feed-forward)85.388.2~0.2 s
VGGT (with BA)93.591.8~1.8 s
Bảng 2 của bài báo: ước lượng depth đa góc nhìn trên DTU, các chỉ số Chamfer (Accuracy, Completeness, Overall; càng thấp càng tốt). Cột "GT camera" cho biết phương pháp có dùng camera ground-truth khi kiểm thử hay không. Một số hàng (Gipuma, MVSNet, CIDER) được lược bớt.
Phương phápGT cameraAcc.Comp.Overall
PatchmatchNetyes0.4270.3770.417
MASt3Ryes0.4030.3440.374
GeoMVSNetyes0.3310.2590.295
DUSt3Rno2.6770.8051.741
VGGTno0.3890.3740.382
Bảng 10 của bài báo (phụ lục C): ước lượng pose camera trên IMC (phototourism), AUC ở các ngưỡng góc 3°, 5°, 10° (càng cao càng tốt). Cột "TTO" cho biết có tối ưu lúc kiểm thử hay không. Một số hàng (các biến thể PixSfM khác, COLMAP SIFT+NN) được lược bớt.
Phương phápTTOAUC@3°AUC@5°AUC@10°Thời gian
PixSfM (SP + SG)yes45.1957.2270.47>20 s
DFSfM (LoFTR)yes46.5558.7472.19>10 s
DUSt3Ryes13.4621.2435.62~7 s
MASt3Ryes30.2546.7957.42~9 s
VGGSfMyes45.2358.8973.92~6 s
VGGSfMv2yes59.3267.7876.82~10 s
VGGTno39.2352.7471.260.2 s
VGGT + BAyes66.3775.1684.911.8 s
Biểu đồ cột AUC@30 trên RealEstate10K của VGGT và các baseline, lấy từ Bảng 1
Biểu đồ gốc của EyeCode vẽ lại số liệu từ Bảng 1 của bài báo (AUC@30 trên RealEstate10K, càng cao càng tốt). · EyeCode Tech (Original EyeCode illustration) · Nguồn

Giao thức: pose camera được đo bằng AUC@30 (diện tích dưới đường cong độ chính xác góc, kết hợp sai số xoay và tịnh tiến) trên RealEstate10K và CO3Dv2, với 10 khung ngẫu nhiên mỗi cảnh. Mô hình không được huấn luyện trên RealEstate10K. Baseline gồm DUSt3R, MASt3R, VGGSfM v2 và các công trình đồng thời (MV-DUSt3R, CUT3R, FLARE, Fast3R). Bảng 1 cho thấy VGGT feed-forward đạt 85,3 và 88,2, thêm BA đạt 93,5 và 91,8. Theo tác giả, khoảng cách rõ hơn trên RealEstate10K và BA vẫn còn mang lại cải thiện.

Các kết quả khác: trên DTU, Overall giảm từ 1,741 (DUSt3R) xuống 0,382 mà không cần camera thật. Trên ETH3D (10 khung, căn chỉnh bằng Umeyama), Overall là 0,709 với head point map và 0,677 khi dựng từ depth cộng camera, so với 0,826 của MASt3R và 1,005 của DUSt3R. So khớp hai ảnh trên ScanNet-1500: AUC@5 là 33,9 so với 31,8 của Roma. Trong tracking động, gắn đặc trưng VGGT vào CoTracker nâng AJ trên Kinetics từ 49,6 lên 57,2. Về tốc độ, Bảng 9 báo 0,14 giây cho 10 khung và 1,04 giây cho 50 khung trên một GPU H100.

Định tính: tác giả chọn ví dụ tranh sơn dầu, hai ảnh không chồng lấn và họa tiết lặp, nơi DUSt3R bị méo hoặc thất bại.

Hạn chế

Do tác giả nêu

Phần Discussions của bài báo nêu: mô hình hiện không hỗ trợ ảnh fisheye hoặc panorama; chất lượng giảm khi ảnh đầu vào xoay cực đoan; mô hình chịu được chuyển động phi cứng nhỏ nhưng thất bại khi biến dạng phi cứng lớn. Tác giả cho rằng có thể khắc phục bằng tinh chỉnh trên dữ liệu phù hợp. Họ cũng thừa nhận global self-attention tốn bộ nhớ khi có nhiều token và gợi ý dùng kỹ thuật như tensor parallelism.

Phân tích của EyeCode (diễn giải biên tập)

Bộ nhớ đạt 40,63 GB ở 200 khung cho thấy giới hạn thực tế với ảnh rất nhiều. Ở ngưỡng góc chặt trên IMC, bản feed-forward còn kém bản có BA, nên BA vẫn có chỗ đứng khi cần độ chính xác cao.

Điểm cần nhớ

  • Một mạng feed-forward dự đoán camera, depth, point map và track trong một lượt.
  • Alternating attention và học đa nhiệm là hai lựa chọn có ablation hỗ trợ (Bảng 5 và 6).
  • Trên RealEstate10K và CO3Dv2, AUC@30 đạt 85,3 và 88,2 trong khoảng 0,2 giây; thêm BA lên 93,5 và 91,8.
  • BA vẫn cải thiện thêm, nhất là ở ngưỡng góc chặt.
  • Giới hạn: fisheye, panorama, xoay cực đoan, biến dạng phi cứng lớn và bộ nhớ.

Hướng gợi ý (đề xuất của EyeCode, không phải kết luận của bài báo)

  • Thử kết hợp VGGT với BA nhẹ trên dữ liệu riêng của bạn và so với COLMAP về thời gian và lỗi.

Tài liệu tham khảo

  1. VGGT: Visual Geometry Grounded Transformer (arXiv, Tables 1-10, Appendix B and C)
  2. VGGT project page
  3. VGGT official code and README (facebookresearch/vggt)
  4. VGGT authors PDF (CVPR 2025 version)
  5. CVPR 2025 Best Papers

KEEP EXPLORING

Đọc tiếp để nối các ý tưởng.