Hầu hết các hướng dẫn tái tạo ảnh 3D thường rời rạc hoặc đi quá sâu vào lý thuyết.

Điều thú vị về tái tạo ảnh 3D (và thị giác máy tính nói chung) là tái cấu trúc thế giới xung quanh bạn chứ không phải thế giới (hay bộ dữ liệu) của ai khác. Hướng dẫn này sẽ đưa bạn từ số 0 đến mô hình điểm đám mây (point cloud) sử dụng camera điện thoại và hình ảnh của riêng bạn.

Hướng dẫn này được chia thành 3 phần:

  • Phần 1 (Lý thuyết và yêu cầu): Tổng quan rất ngắn gọn về các bước cần thiết để tái tạo hình ảnh 3D. Đây là phần sẽ được nói đến trong bài viết này.
  • Phần 2 (Camera calibration): Bao gồm những điều cơ bản về hiệu chỉnh camera bằng mã.
  • Phần 3 (Disparity map và point cloud): Bao gồm những điều cơ bản về tái tạo hình ảnh được chụp bằng camera đã được hiệu chỉnh trước đó bằng mã.

Các bước cần thiết để xây dựng lại ảnh 3D

Có nhiều cách để tái cấu trúc thế giới xung quanh nhưng tất cả đều quy về mục đích là có được một bản đồ với độ sâu thực tế.

Bản đồ độ sâu (depth map) là hình ảnh mà trong đó mọi pixel đều có thông tin độ sâu (thay vì thông tin màu). Nó thường được đại diện bởi một bức tranh trắng đen.

Bản đồ độ sâu từ bộ dữ liệu Tsukuba.

Như đã đề cập trước đây, có nhiều cách khác nhau để có được depth map và những cách này phụ thuộc vào cảm biến được sử dụng. Cảm biến có thể là một máy ảnh đơn giản (máy ảnh RGB) nhưng có thể sử dụng các loại khác như LiDAR hoặc hồng ngoại hoặc kết hợp cả hai.

Loại cảm biến sẽ xác định độ chính xác của bản đồ độ sâu. Về độ chính xác, thông thường nó sẽ như thế này: LiDAR> Hồng ngoại> Máy ảnh. Depth map cũng có thể được tô màu để hình dung độ sâu tốt hơn.

Một bức ảnh selfie chuyên sâu chụp bằng camera Kinect.

Tùy thuộc vào loại cảm biến được sử dụng, có ít nhiều các bước cần thiết để thực sự có được depth map. Ví dụ, camera Kinect sử dụng cảm biến hồng ngoại kết hợp với camera RGB và như vậy bạn sẽ có được depth map ngay lập tức (vì đó là thông tin được xử lý bởi cảm biến hồng ngoại).

Nhưng nếu bạn không có gì khác ngoài camera điện thoại thì sao? Trong trường hợp này, bạn cần phải tái tạo lại ảnh. Tái tạo ảnh sử dụng cùng một nguyên tắc mà não và mắt của bạn sử dụng để thực sự hiểu được chiều sâu.

Ngắn gọn thì nó bao gồm việc nhìn vào cùng một bức tranh từ hai góc độ khác nhau, tìm kiếm cùng một thứ trong cả hai bức tranh và suy ra chiều sâu từ sự khác biệt về vị trí. Cái này được gọi là stereo matching.

Để thực hiện stereo matching, điều quan trọng là phải có cả hai hình ảnh có chính xác cùng đặc điểm. Khi đặt tách nhau ra, cả hai hình ảnh không nên có bất kỳ biến dạng nào. Đây cũng là một vấn đề vì ống kính trong hầu hết các máy ảnh gây ra biến dạng. Điều này có nghĩa là để stereo matching chính xác, người ta cần biết các trung tâm quang học và độ dài tiêu cự của máy ảnh.

Trong hầu hết các trường hợp, thông tin này sẽ không xác định (đặc biệt đối với máy ảnh điện thoại của bạn) và đây là lý do tại sao quá trình tái tạo ảnh 3D yêu cầu các bước sau:

  1. Hiệu chỉnh máy ảnh: Sử dụng một loạt các hình ảnh để suy ra tiêu cự và trung tâm quang học của máy ảnh.
  2. Bỏ biến dạng ảnh: Loại bỏ biến dạng trong ảnh được sử dụng để tái tạo.
  3. Kết hợp tính năng: Tìm kiếm các tính năng tương tự giữa cả hai hình ảnh và xây dựng depth map.
  4. Xây dựng lại các điểm: Sử dụng depth map để chiếu lại pixel vào không gian 3D.
  5. Xây dựng point cloud: Tạo một tệp mới chứa các điểm trong không gian 3D để trực quan hóa.
  6. Xây dựng lưới để có được một mô hình 3D thực tế (nằm ngoài phạm vi của hướng dẫn này, nhưng sẽ có trong một hướng dẫn khác).

Bước 1 chỉ cần thực hiện một lần, trừ khi bạn thay đổi máy ảnh. Các bước 2 đến 5 được yêu cầu mỗi khi bạn chụp một cặp ảnh mới và việc này cũng xảy ra khá nhiều.

Trong phần tiếp theo, chúng ta sẽ tìm hiểu làm thế nào để hiệu chỉnh máy ảnh điện thoại và một số cách tốt nhất để hiệu chuẩn.

Theo Becoming Human

Tin liên quan: