Visual Slam

Khi một robot di chuyển trong môi trường, nó cần biết hai điều rất cơ bản: mình đang ở đâu và xung quanh có những gì. Nếu robot chỉ đi theo lệnh có sẵn mà không hiểu không gian xung quanh, nó sẽ rất dễ bị lạc, va vào vật cản hoặc không thể quay lại vị trí ban đầu. Đây chính là lý do bài toán SLAM ra đời. SLAM là viết tắt của Simultaneous Localization and Mapping, nghĩa là robot vừa tự xác định vị trí của mình, vừa xây dựng bản đồ môi trường trong lúc di chuyển.
Visual SLAM là một nhánh của SLAM, trong đó robot sử dụng camera làm nguồn thông tin chính. Thay vì dùng GPS, radar hay các cảm biến đắt tiền, hệ thống quan sát môi trường thông qua ảnh hoặc video. Từ các khung hình thu được, robot cố gắng nhận ra những điểm nổi bật trong cảnh, theo dõi sự thay đổi của chúng theo thời gian, rồi ước lượng xem camera đã di chuyển như thế nào. Nhờ vậy, robot có thể dần dần tạo ra một bản đồ của môi trường và biết vị trí tương đối của mình trong bản đồ đó.

Một hệ Visual SLAM thường có một số bước chính. Đầu tiên là theo dõi chuyển động của camera giữa các khung hình liên tiếp. Tiếp theo, hệ thống chọn ra các thông tin hữu ích trong ảnh để xây dựng bản đồ, ví dụ như các điểm đặc trưng hoặc cấu trúc không gian của cảnh. Sau đó, bản đồ và đường đi của camera sẽ được tinh chỉnh để giảm sai số. Trong quá trình di chuyển lâu, sai số có thể bị tích lũy, khiến robot nghĩ rằng mình đang ở một vị trí hơi khác so với thực tế. Vì vậy, nhiều hệ SLAM còn có bước nhận ra những nơi đã đi qua trước đó để sửa lại bản đồ cho nhất quán hơn.
Visual SLAM có nhiều cách tiếp cận khác nhau. Một số phương pháp dựa vào các điểm đặc trưng dễ nhận ra trong ảnh, chẳng hạn như góc cạnh của vật thể hoặc các vùng có hoa văn rõ ràng. Một số phương pháp khác không tách riêng đặc trưng mà sử dụng trực tiếp độ sáng của pixel để ước lượng chuyển động. Ngoài ra, nếu camera có thêm thông tin độ sâu, việc dựng bản đồ 3D sẽ dễ hơn. Ngược lại, nếu chỉ dùng một camera đơn, hệ thống sẽ gọn nhẹ và rẻ hơn, nhưng bài toán cũng khó hơn vì robot phải tự suy luận khoảng cách và tỉ lệ không gian từ ảnh 2D.
Ý tưởng cốt lõi của Visual SLAM có thể hiểu đơn giản là: robot nhìn bằng camera, ghi nhớ những gì đã thấy, ước lượng mình đã di chuyển ra sao và dần xây dựng bản đồ của thế giới xung quanh.