Latest Post

Khái niệm Low Code và kiến thức cơ bản về Low Code Khái niệm Web Development và lý do chọn nghề Web Developer

Để đo khoảng cách giữa hai vật thể hoặc hai điểm bằng camera, có nhiều thuật toán và phương pháp khác nhau tùy thuộc vào loại dữ liệu và thông tin mà camera cung cấp. Dưới đây là một số thuật toán và phương pháp phổ biến:

1. Phương pháp đo khoảng cách bằng một camera (Monocular Vision)

Nguyên lý:

Sử dụng công thức tam giác dựa trên kích thước thực tế của vật thể và kích thước biểu kiến của nó trên ảnh.

Công thức:

D=W⋅FPD = \frac{W \cdot F}{P}

  • DD: Khoảng cách từ camera đến vật thể.
  • WW: Kích thước thực tế của vật thể (được biết trước).
  • FF: Tiêu cự của camera (trích xuất từ thông số nội tại của camera).
  • PP: Kích thước biểu kiến của vật thể trên ảnh (số pixel).

Hạn chế:

  • Cần biết trước kích thước thực tế của vật thể.
  • Không đo được khoảng cách giữa hai điểm trên cùng một mặt phẳng.

Ứng dụng:

  • Nhận diện biển báo giao thông.
  • Xác định khoảng cách từ camera đến một đối tượng cố định.

2. Phương pháp đo bằng hai camera (Stereo Vision)

Nguyên lý:

Dựa trên sự chênh lệch thị sai (disparity) giữa hai hình ảnh từ hai camera đặt cách nhau một khoảng cố định.

Công thức:

Z=f⋅BdZ = \frac{f \cdot B}{d}

  • ZZ: Khoảng cách từ camera đến điểm cần đo.
  • ff: Tiêu cự của camera.
  • BB: Khoảng cách giữa hai camera (baseline).
  • dd: Độ chênh lệch thị sai (disparity) giữa hai hình ảnh.

Thuật toán phổ biến:

  • Block Matching: Tìm sự tương đồng giữa các khối pixel trong hai ảnh để tính disparity.
  • Semi-Global Matching (SGM): Thuật toán nâng cao giúp tăng độ chính xác khi tìm disparity.

Hạn chế:

  • Đòi hỏi cài đặt chính xác giữa hai camera.
  • Phức tạp hơn monocular vision.

Ứng dụng:

  • Xe tự hành.
  • Robotics.
  • Nhận diện chiều sâu (Depth Perception).

3. Phương pháp sử dụng cảm biến chiều sâu (Depth Camera)

Nguyên lý:

Sử dụng camera tích hợp cảm biến chiều sâu (như Time-of-Flight camera hoặc Structured Light camera) để đo khoảng cách.

Camera phổ biến:

  • Microsoft Kinect.
  • Intel RealSense.
  • LiDAR (Light Detection and Ranging).

Cách hoạt động:

  1. Time-of-Flight (ToF):
    • Phát xung ánh sáng hồng ngoại và đo thời gian ánh sáng phản xạ quay lại.
    • Tính khoảng cách dựa trên tốc độ ánh sáng.
  2. Structured Light:
    • Chiếu một mẫu ánh sáng đặc biệt lên bề mặt, sau đó phân tích sự biến dạng của mẫu ánh sáng để tính chiều sâu.

Ưu điểm:

  • Đo chính xác khoảng cách trong thời gian thực.
  • Không cần tính toán kích thước vật thể.

Hạn chế:

  • Chi phí cao.
  • Bị ảnh hưởng bởi ánh sáng môi trường.

4. Sử dụng kỹ thuật đo chiều sâu từ video (Structure from Motion – SfM)

Nguyên lý:

Dựa trên việc phân tích sự thay đổi vị trí của các điểm trong hình ảnh khi camera di chuyển để tái tạo mô hình 3D và tính toán khoảng cách.

Các bước:

  1. Trích xuất các điểm đặc trưng (keypoints) trong ảnh.
  2. Theo dõi sự thay đổi của các điểm qua nhiều khung hình.
  3. Sử dụng thuật toán như Bundle Adjustment để tái tạo chiều sâu.

Thuật toán phổ biến:

  • ORB-SLAM: Kết hợp SfM với SLAM để định vị và lập bản đồ 3D.
  • OpenCV SfM Module.

Hạn chế:

  • Yêu cầu camera phải di chuyển.
  • Không chính xác trong môi trường ít đặc trưng (textureless).

5. Sử dụng các thư viện và framework AI

Nếu bạn muốn đo khoảng cách giữa hai vật thể phức tạp (ví dụ: giữa xe hơi và người đi bộ trong ảnh), bạn có thể dùng các thư viện AI kết hợp với camera:

  • YOLO + Depth Estimation: Nhận diện vật thể và kết hợp với thông tin chiều sâu để tính khoảng cách.
  • TensorFlow Object Detection API + 3D Bounding Box Estimation.

Cách thực hiện:

  1. Dùng YOLO hoặc các mô hình khác để phát hiện hai vật thể.
  2. Kết hợp với dữ liệu chiều sâu từ stereo vision hoặc depth camera để tính toán khoảng cách.

Gợi ý lựa chọn phương pháp:

  • Một camera đơn (Monocular Vision): Nếu bạn chỉ cần ước lượng khoảng cách và biết kích thước thực tế của vật thể.
  • Stereo Vision: Khi bạn cần đo chính xác khoảng cách giữa hai điểm hoặc vật thể trong không gian 3D.
  • Depth Camera: Khi cần đo khoảng cách chính xác mà không muốn xử lý phức tạp.
  • SfM hoặc AI: Khi bạn muốn tái tạo mô hình 3D và đo khoảng cách từ video.

Hãy theo dõi thêm các bài khác trong series để biết thêm nhé! 😊

One thought on “Thuật toán để đo khoảng cách 2 vật thể hoặc 2 điểm bằng camera

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *