VITALIFY.ASIA logo

Tìm hiểu 3DGS – Phần 2: 3DGS khác Photogrammetry như thế nào?

3DGS và Photogrammetry đều dùng nhiều ảnh để tái tạo không gian 3D và có nhiều điểm chung ở giai đoạn SfM. Bài viết giải thích cách hai phương pháp tách ra sau SfM: Photogrammetry đi tới MVS, point cloud, mesh và texture, còn 3DGS tối ưu các Gaussian để tái tạo hình ảnh chân thực.

Tìm hiểu 3DGS – Phần 2: 3DGS khác Photogrammetry như thế nào?
Nội dung bài viết

Trong bài viết trước, chúng ta đã tìm hiểu sự khác biệt giữa 3DGS và mesh 3D truyền thống.

Tóm tắt lại một cách đơn giản, mesh 3D là phương pháp biểu diễn hình dạng ba chiều bằng cách kết hợp các đỉnh và bề mặt. Bằng cách áp texture lên bề mặt, chúng ta có thể tái tạo màu sắc, hoa văn và chất liệu.

Phần lớn các mô hình 3D thông thường được sử dụng trong game và sản xuất hình ảnh đều được tạo bằng mesh. Trong quy trình sản xuất 3D truyền thống, các chuyên gia gọi là 3D modeler sử dụng những công cụ chuyên dụng như Blender để xây dựng hình dạng và chất liệu.

Trong khi đó, 3DGS là công nghệ tái tạo không gian thực từ nhiều bức ảnh và biểu diễn không gian 3D với hình thức gần giống ảnh chụp bằng cách bố trí một lượng lớn các phần tử nhỏ gọi là Gaussian.

Tuy nhiên, 3DGS không phải là công nghệ đầu tiên có thể tạo không gian 3D thực tế từ nhiều bức ảnh.

Một ví dụ tiêu biểu là Photogrammetry.

Photogrammetry là công nghệ phân tích nhiều bức ảnh để ước tính hình dạng của đối tượng cũng như mối quan hệ vị trí giữa các camera, từ đó tạo ra mô hình 3D.

Trong quy trình Photogrammetry thông thường, kết quả cuối cùng thường là một mesh có texture.

Nói cách khác, Photogrammetry là công nghệ tự động tạo mô hình 3D từ ảnh, nhưng cấu trúc của sản phẩm đầu ra tương tự mô hình 3D dạng mesh truyền thống đã được giới thiệu trong bài trước.

Vậy 3DGS và Photogrammetry có phải là hai công nghệ hoàn toàn khác nhau hay không?

Thực tế không phải như vậy.

Hai công nghệ này có một số quy trình chung. Đặc biệt, ở giai đoạn đầu khi ước tính vị trí và hướng của camera từ nhiều bức ảnh, chúng sử dụng những quy trình khá giống nhau.

Vậy chúng giống nhau đến đâu, và sự khác biệt bắt đầu từ đâu?

Trong bài viết này, chúng ta sẽ nhìn lại cơ chế cơ bản của Photogrammetry, đồng thời tìm hiểu những điểm giống và khác nhau so với 3DGS.

Trước tiên, hãy nhìn tổng quan quy trình của Photogrammetry

Photogrammetry là công nghệ tái tạo hình dạng 3D của đối tượng hoặc môi trường từ nhiều bức ảnh.

Ví dụ, bằng cách chụp một tòa nhà từ nhiều hướng khác nhau và phân tích những bức ảnh đó, chúng ta có thể tạo ra mô hình 3D của tòa nhà.

Quy trình phổ biến có thể được mô tả như sau:

  1. Chụp ảnh từ nhiều góc nhìn
  2. Ghép các feature point tương ứng giữa các bức ảnh
  3. Ước tính vị trí và tư thế của camera
  4. Tạo Sparse Point Cloud
  5. Tạo Dense Point Cloud
  6. Tạo mesh và texture

Hai quy trình đặc biệt quan trọng ở đây là SfM (Structure from Motion) và MVS (Multi-View Stereo).

SfM: Ước tính vị trí camera và cấu trúc 3D từ ảnh

SfM là công nghệ ghép các feature point xuất hiện trong nhiều bức ảnh, sau đó sử dụng thông tin này để ước tính vị trí và tư thế của camera cũng như tọa độ 3D của các feature point.

Ví dụ, giả sử một hoa văn trên tường xuất hiện trong nhiều bức ảnh.

Bằng cách xác định hoa văn đó nằm ở đâu trong từng bức ảnh, hệ thống có thể ước tính mối quan hệ vị trí giữa các ảnh.

Sau đó, thông qua các mối quan hệ tương ứng giữa nhiều bức ảnh, hệ thống xác định vị trí và tư thế của camera tại thời điểm chụp, đồng thời tính toán vị trí 3D của các feature point.

Kết quả của quá trình này là thông tin về vị trí và tư thế camera cùng với Sparse Point Cloud.

Sparse Point Cloud là một tập hợp điểm thưa tập trung chủ yếu tại các feature point. Ở giai đoạn này, mật độ điểm vẫn chưa đủ để biểu diễn toàn bộ bề mặt của vật thể.

MVS: Tái tạo hình dạng 3D dày đặc từ nhiều bức ảnh

Sau khi xác định được vị trí và tư thế của camera bằng SfM, bước tiếp theo là MVS.

MVS sử dụng nhiều bức ảnh có mối quan hệ vị trí camera đã được xác định để ước tính vị trí 3D tương ứng với từng pixel.

Nhờ đó, có thể tạo ra Dense Point Cloud với mật độ điểm cao hơn Sparse Point Cloud.

Sau đó, mesh được tạo từ point cloud và texture được áp lên bề mặt để hoàn thành một mô hình 3D Photogrammetry thông thường.

Nói cách khác, Photogrammetry trước tiên xác định vị trí camera và cấu trúc 3D thưa từ ảnh, sau đó tiếp tục tái tạo hình dạng với mật độ chi tiết cao hơn.

Thực ra 3DGS cũng bắt đầu từ SfM

Bây giờ hãy xem quy trình của 3DGS.

Về cơ bản, 3DGS cũng sử dụng nhiều bức ảnh làm dữ liệu đầu vào.

Trong nhiều workflow 3DGS tiêu chuẩn, SfM được thực hiện ở bước đầu tiên.

Nói cách khác, tương tự Photogrammetry, các feature point giữa các bức ảnh được ghép với nhau để ước tính vị trí và tư thế của camera.

Ngoài ra, Sparse Point Cloud được tạo ra từ SfM cũng được sử dụng.

Đây là một điểm rất quan trọng.

3DGS không xây dựng toàn bộ không gian 3D từ đầu bằng một phương pháp hoàn toàn khác với Photogrammetry.

Ít nhất trong các pipeline 3DGS phổ biến, thông tin camera và point cloud thu được từ SfM được sử dụng làm điểm xuất phát cho các bước xử lý tiếp theo.

Trên thực tế, các triển khai 3DGS tiêu biểu có thể sử dụng kết quả SfM từ COLMAP(※1)làm dữ liệu đầu vào.

※1: COLMAP là phần mềm mã nguồn mở có thể thực hiện SfM và MVS. Nó cũng được sử dụng rộng rãi trong Photogrammetry.

Sau SfM, Photogrammetry và 3DGS bắt đầu đi theo hai hướng khác nhau

Vậy điều gì xảy ra sau khi SfM hoàn tất?

Từ đây, cách tiếp cận của hai công nghệ bắt đầu khác biệt đáng kể.

Trong Photogrammetry, MVS thường được sử dụng để tạo Dense Point Cloud, sau đó tạo mesh và texture.

Trong khi đó, 3DGS sử dụng Sparse Point Cloud và các dữ liệu khác làm giá trị khởi tạo, sau đó bố trí và tối ưu các Gaussian.

Nói đơn giản, Gaussian là những phần tử biểu diễn nhỏ có dạng gần giống ellipsoid được đặt trong không gian 3D.

Mỗi Gaussian chứa các thông tin như vị trí, kích thước, hướng, độ trong suốt và màu sắc.

Bằng cách bố trí một lượng lớn Gaussian và tối ưu chúng sao cho hình ảnh được tái tạo gần nhất với các ảnh đầu vào, một 3D Gaussian Scene được tạo ra.

Nếu đơn giản hóa và so sánh quy trình của hai phương pháp, chúng ta có thể biểu diễn như sau.

Photogrammetry

Chụp ảnh
↓
SfM(ước tính vị trí và tư thế camera)
↓
Sparse Point Cloud
↓
MVS
↓
Dense Point Cloud
↓
Tạo Mesh
↓
Tạo Texture

3DGS

Chụp ảnh
↓
SfM(ước tính vị trí và tư thế camera)
↓
Sparse Point Cloud
↓
Khởi tạo Gaussian
↓
Tối ưu Gaussian
↓
Tạo 3D Gaussian Scene

Như vậy, hai phương pháp có nhiều điểm chung cho đến giai đoạn SfM, nhưng sau đó chúng khác nhau về cách biểu diễn không gian 3D cũng như tư duy tối ưu hóa.

Dữ liệu được tạo ra khác nhau như thế nào?

Tiếp theo, hãy cùng整理 sự khác biệt giữa các loại dữ liệu được tạo ra.

Như đã đề cập ở phần đầu, sản phẩm đầu ra của Photogrammetry về cơ bản là một 3D mesh, tương tự các mô hình được xử lý bằng phần mềm 3D modeling thông thường.

Mesh có các bề mặt được xác định rõ ràng và texture có thể được áp lên các bề mặt đó.

Ngược lại, đơn vị render của 3DGS là các phần tử nhỏ có độ lan tỏa trong không gian. Scene được biểu diễn bằng những thuộc tính như vị trí, hình dạng, màu sắc và độ trong suốt.

Điều cần lưu ý ở đây là Gaussian của 3DGS không nhất thiết biểu diễn chính xác bề mặt thực tế của vật thể.

3DGS là một phương pháp chú trọng vào việc tái tạo các ảnh đầu vào một cách tự nhiên nhất có thể khi quan sát từ những góc nhìn khác.

Do đó, ngay cả khi hình ảnh trông rất chân thực, hình dạng được trích xuất từ scene đó không nhất thiết trở thành một mô hình 3D có độ chính xác hình học cao.

Đây là một trong những khác biệt lớn so với Photogrammetry truyền thống.

3DGS có phải là công nghệ thay thế Photogrammetry không?

Dựa trên những nội dung trên, liệu 3DGS có phải là công nghệ thay thế cho Photogrammetry hay không?

Câu trả lời phụ thuộc vào mục đích sử dụng.

Ví dụ, 3DGS có thể là lựa chọn phù hợp trong những trường hợp như:

  • Muốn tái tạo không gian thực với chất lượng hình ảnh cao
  • Muốn quan sát scene từ các góc nhìn tự do
  • Ưu tiên hình thức gần giống ảnh chụp
  • Muốn đạt được tốc độ render gần thời gian thực

Trong khi đó, việc tạo mesh bằng Photogrammetry truyền thống có thể phù hợp hơn trong những trường hợp như:

  • Muốn đo kích thước và hình dạng với độ chính xác cao
  • Muốn sử dụng làm dữ liệu cho CAD hoặc 3D modeling
  • Muốn sử dụng cho mô phỏng vật lý
  • Muốn chỉnh sửa hoặc xử lý như một mô hình 3D thông thường

Tất nhiên, các nghiên cứu và công nghệ nhằm tạo mesh từ 3DGS cũng đang tiếp tục phát triển.

Tuy nhiên, scene thu được từ 3DGS và mô hình mesh thu được từ Photogrammetry truyền thống vốn hướng đến những mục tiêu khác nhau.

Do đó, thay vì đơn giản so sánh công nghệ nào tốt hơn, điều quan trọng là lựa chọn phương pháp phù hợp dựa trên việc chúng ta muốn biểu diễn điều gì dưới dạng 3D.

Tổng kết

Trong bài viết này, chúng ta đã tìm hiểu mối quan hệ giữa 3DGS và Photogrammetry.

Có thể tóm tắt ba điểm quan trọng như sau:

  1. 3DGS và Photogrammetry có nhiều điểm chung ở giai đoạn SfM, nơi vị trí và tư thế của camera được ước tính từ nhiều bức ảnh.
  2. Sau SfM, Photogrammetry tiếp tục với MVS để tái tạo hình dạng dày đặc và tạo mesh, trong khi 3DGS chuyển sang khởi tạo và tối ưu Gaussian.
  3. Trong khi Photogrammetry chủ yếu hướng tới việc tái tạo hình học, 3DGS chú trọng hơn vào việc tái tạo hình thức của ảnh với chất lượng cao.

3DGS không phải là công nghệ hoàn toàn không liên quan đến Photogrammetry truyền thống.

Ngược lại, sẽ dễ hiểu hơn nếu xem 3DGS là một công nghệ xây dựng trên nền tảng của các kỹ thuật hiện có như SfM, sau đó kết hợp chúng với một phương pháp biểu diễn và render 3D mới.

Trong bài tiếp theo, chúng ta sẽ tìm hiểu sự khác biệt giữa 3DGS, 2DGS và NeRF, xem mỗi công nghệ sử dụng hình thức biểu diễn 3D như thế nào và chúng có thế mạnh ở đâu.

Đừng để ý tưởng chỉ nằm trên giấy. Với tốc độ và sự linh hoạt đã được chứng minh qua 1.000+ dự án, chúng tôi sẽ giúp doanh nghiệp của bạn bứt phá.

Quay lại Blog
I'm Duper, ask me anything!