Luận văn thạc sĩ khoa học máy tính: Ứng dụng monocular full SLAM

Nghiên cứu chuyên sâu Ứng dụng monocular full SLAM trong luận văn thạc sĩ khoa học máy tính, phương pháp luận hiện đại, kết quả ứng dụng thực tế

Trường đại học

Đại học Bách Khoa

Chuyên ngành

Khoa học máy tính

Người đăng

Ẩn danh

Thể loại

luận văn thạc sĩ

2012

75
3
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới thiệu về monocular SLAM

Trong bối cảnh phát triển công nghệ hiện đại, monocular SLAM (Simultaneous Localization and Mapping) đã trở thành một trong những lĩnh vực nghiên cứu quan trọng trong khoa học máy tínhrobotics. Việc sử dụng chỉ một camera đơn để xác định vị trí và lập bản đồ đồng thời không chỉ giúp giảm thiểu chi phí mà còn đơn giản hóa quá trình triển khai ứng dụng. Full SLAM là một thuật ngữ chỉ việc xác định đồng thời quỹ đạo của camera và bản đồ ba chiều của môi trường xung quanh. Điều này có ý nghĩa lớn trong việc phát triển các robot tự hành và các ứng dụng trong augmented reality. Theo nghiên cứu của Davison và các đồng nghiệp, việc sử dụng monocular camera trong SLAM cho phép thu thập thông tin môi trường một cách hiệu quả mà không cần đến các thiết bị cảm biến phức tạp hơn.

1.1. Tầm quan trọng của monocular SLAM

Việc phát triển ứng dụng monocular SLAM mang lại nhiều lợi ích thiết thực trong các lĩnh vực như roboticshệ thống tự động. Một trong những ứng dụng nổi bật là trong việc xây dựng robot tự hành, nơi mà robot cần phải xác định vị trí của mình trong không gian một cách chính xác. Đồng thời, trong lĩnh vực augmented reality, thông qua việc tích hợp thông tin từ camera vào môi trường thực tế, các ứng dụng có thể tương tác với người dùng một cách tự nhiên hơn. Điều này không chỉ nâng cao trải nghiệm người dùng mà còn mở ra nhiều khả năng cho các ứng dụng tương lai.

II. Cấu trúc của ứng dụng full SLAM

Một ứng dụng full SLAM bao gồm hai thành phần chính: front-end và back-end. Front-end chịu trách nhiệm ước lượng vị trí và đo đạc tọa độ của các cột mốc trong môi trường xung quanh. Các giá trị ước lượng này thường không chính xác do nhiều yếu tố như sai số cảm biến và điều kiện môi trường. Do đó, back-end sẽ tổng hợp và tính toán lại các giá trị này để đưa ra kết quả chính xác hơn. Việc sử dụng Extended Kalman Filter (EKF) là một trong những phương pháp phổ biến trong back-end để tối ưu hóa các giá trị ước lượng. Cấu trúc này cho phép ứng dụng monocular SLAM hoạt động hiệu quả trong việc xác định vị trí và lập bản đồ đồng thời.

2.1. Thành phần front end

Trong phần front-end, các mô hình điều khiển và đo đạc được thiết lập để ước lượng sự di chuyển của camera. Mô hình điều khiển có thể sử dụng các thông số từ các cảm biến như IMU hoặc chỉ dựa vào các giả định về chuyển động. Mô hình đo đạc sử dụng thông tin từ monocular camera để xác định tọa độ của các cột mốc. Sự kết hợp này tạo ra một hệ thống có khả năng xác định vị trí tương đối của camera và các cột mốc trong không gian ba chiều. Điều này là cần thiết để xây dựng bản đồ và giúp robot hoặc ứng dụng AR hoạt động chính xác hơn.

2.2. Thành phần back end

Back-end của ứng dụng monocular SLAM tập trung vào việc tối ưu hóa các giá trị ước lượng từ front-end. Sử dụng các thuật toán như EKF hoặc các phương pháp tối thiểu hóa sai số, back-end sẽ tính toán lại vị trí của camera và tọa độ của các cột mốc. Việc này không chỉ cải thiện độ chính xác mà còn giúp giảm thiểu sai số trong quá trình đo đạc. Các kết quả này sau đó được sử dụng làm đầu vào cho front-end để tiếp tục cập nhật các giá trị mới, tạo thành một vòng lặp khép kín giúp tối ưu hóa liên tục.

III. Ứng dụng thực tiễn của monocular full SLAM

Ứng dụng của monocular full SLAM không chỉ dừng lại ở việc xác định vị trí và lập bản đồ mà còn mở rộng ra nhiều lĩnh vực khác nhau. Trong robotics, việc áp dụng công nghệ này cho phép phát triển các robot tự hành có khả năng di chuyển và làm việc trong môi trường phức tạp mà không cần đến sự can thiệp của con người. Ngoài ra, trong lĩnh vực augmented reality, các ứng dụng có thể tạo ra những trải nghiệm tương tác phong phú, nơi mà các đối tượng ảo có thể được chèn vào môi trường thực tế một cách tự nhiên. Điều này mang lại giá trị lớn cho ngành công nghiệp giải trí và giáo dục, nơi mà sự tương tác giữa người dùng và công nghệ ngày càng trở nên quan trọng.

3.1. Lợi ích trong robotics

Việc sử dụng monocular SLAM trong lĩnh vực robotics cho phép robot tự hành xác định vị trí của mình một cách chính xác trong không gian ba chiều. Điều này giúp robot có thể thực hiện các nhiệm vụ phức tạp như giao hàng, dọn dẹp hoặc thậm chí là khám phá các khu vực nguy hiểm mà không cần đến sự giám sát của con người. Các ứng dụng này không chỉ tiết kiệm thời gian và chi phí mà còn nâng cao độ an toàn trong nhiều tình huống.

3.2. Ứng dụng trong augmented reality

Trong lĩnh vực augmented reality, ứng dụng của monocular SLAM cho phép tạo ra những trải nghiệm tương tác phong phú hơn cho người dùng. Các đối tượng ảo có thể được chèn vào môi trường thực tế một cách mượt mà, tạo ra cảm giác chân thực và sống động. Điều này không chỉ mang lại giá trị giải trí mà còn có thể được áp dụng trong giáo dục, y tế và nhiều lĩnh vực khác, nơi mà sự tương tác và trải nghiệm người dùng đóng vai trò quan trọng.

07/01/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1. Hình thành vấn đề Trong những năm gần đây chúng ta chứng kiến sự bùng nổ các thiết bị giải trí điện tử có khả năng kết hợp giữa hình ảnh thu được từ thế giới tự nhiên và hình ảnh nhân tạo sinh ra từ thiết bị điện tử. Với thiết bị PlayStation Eye hay Kinect, người chơi không những thấy được hình ảnh thật mà còn thấy được hình ảnh nhân tạo hòa trộn vào đó một cách tự nhiên và nhịp nhàng với chuyển động của ảnh thực. Đây là một xu hướng mới trong xây dựng các ứng dụng và trò chơi có thể tương tác với người dùng.

Để có thể chèn một đối tượng nhân tạo vào chuỗi ảnh thật, ta cần có công nghệ có thể xác định chính xác không những khoảng không gian (tức bản đồ) nơi muốn chèn ảnh vào mà còn quỹ đạo chuyển động của camera đã quay lại chuỗi ảnh đó. Ngoài ra đối tượng sinh ra phải tuân theo các quy luật về quang học trong chuỗi ảnh. Trong đó việc xác định bản đồ và chuyển động của camera là một phần quan trọng khi xây dựng ứng dụng. Bài toán này thường được gọi tên là xác định vị trí và lập bản đồ đồng thời (Simultaneous Localization and Mapping − SLAM) [1] hoặc theo vết và lập bản đồ song song (Parallel Tracking and Mapping − PTAM [36].

Bài toán SLAM được xem như đã được giải quyết ở cấp độ lý thuyết bằng mô hình toán học xác xuất [1][2]. Tuy nhiên, vẫn còn nhiều vấn đề ở cấp độ kỹ thuật trong từng ứng dụng SLAM cụ thể cần được nghiên cứu thêm. Một ứng dụng SLAM cụ thể thường có hai thành phần: front-end và back-end. Thành phần front-end có chức năng tính toán ước lượng vị trí (pose) tương quan giữa những lần dịch chuyển của đối tượng (camera, robot, …), và đo đạc trực tiếp hoặc gián tiếp tọa độ của các cột mốc có trong quang cảnh xung quanh so với đối tượng.

Các giá trị ước lượng và đo đạc này luôn kém chính xác do quá trình ước lượng không sát với thực tế và việc đo đạc các đại lượng vật lý luôn kèm theo sai số. Thành phần back-end sẽ tổng hợp các giá trị ước lượng và đo đạc từ front-end, và tính toán lại các vị trí tương quan sao cho các giá trị tính toán lại gần với giá trị thực nhất. Hình 1 minh họa một ứng dụng SLAM điển hình bao gồm một robot di chuyển trong mặt phẳng từ vị trí x1 đến vị trí x2 và xoay một góc. Tại mỗi vị trí, robot tiến hành đo tọa độ của hai cột mốc tĩnh P1 và P2.

Do bề mặt di chuyển gồ ghề và hiện tượng trượt trong quá trình di chuyển (trượt giữa bánh xe và bề mặt tiếp xúc, và 7 trượt giữa các cấu trúc cơ học trong động cơ điều khiển), nên có nhiều khả năng robot không hiện diện tại đúng vị trí x2 như mong đợi. Mặt khác, khi robot đo tọa độ các cột mốc, sai số nội tại của các cảm biến làm cho giá trị đo được không chính xác. Sự không chắc chắn của vị trí robot và tọa độ các cột mốc được minh họa bằng các đường nét đứt thể hiện vùng không gian mà khả năng xuất hiện của các đối tượng (robot hoặc cột mốc) là cao nhất. Điều ta mong muốn là với tập các giá trị về vị trí robot, tọa độ các cột mốc và kèm theo đó là các giá trị cho biết sự không chắc chắn của các vị trí và tọa độ đó, làm thế nào tính toán lại vị trí robot cũng như tọa độ các cột mốc một cách chính xác hơn.

Nói cách khác, các giá trị tính toán lại gần với giá trị mong đợi hơn (Hình 2). P1 P2 Tọa độ cột mốc P2 mà robot đo được. Vị trí thực tế của robot. Một ứng dụng SLAM minh họa một đoạn di chuyển của robot từ vị trí x1 đến x2.

Các hình elip minh họa cho các vùng không gian mà robot và hai cột mốc có khả năng hiện diện cao nhất. Vị trí robot sau khi tính toán lại, x '2 , gần với vị trí mong đợi hơn. Tọa độ các cột mốc sau khi tính toán lại cũng gần với tọa độ thực tế hơn. Phạm vi nghiên cứu Một ứng dụng SLAM cụ thể là một sự kết hợp một hay nhiều thiết bị cảm biến với một mô hình điều khiển (process model) và một mô hình đo đạc (measurement model).

Mô hình điều khiển có chức năng dự đoán (ước lượng) vị trí sắp tới của đối tượng chuyển động so với vị trí hiện tại. Mô hình đo đạc có chức năng đo trực tiếp hoặc gián tiếp vị trí tương quan giữa đối tượng chuyển động và các cột mốc xung quanh (giả sử cảnh quang xung quanh là tĩnh theo thời gian). Sự kết hợp này tạo nên thành phần front-end của ứng dụng. Ngoài ra, để làm tăng độ chính xác các giá trị ước lượng được, người ta thường dùng một giải thuật cập nhật lại (tính toán lại) vị trí của đối tượng chuyển động và tọa độ các cột mốc (bản đồ) sao cho gần với giá trị mong đợi nhất.

Giải thuật này tạo nên thành phần back-end của ứng dụng (Hình 3). Kết quả cập nhật lại của back-end có thể lấy để làm đầu vào của mô hình điều khiển và mô hình đo đạc. Dựa vào dữ liệu hồi quy này và dữ liệu đầu vào từ thiết bị cảm biến mà hai mô hình sinh ra dữ liệu cho bước tiếp theo. 9 Front-end Thiết bị cảm biến Thiết bị cảm biến (có thể có hoặc không) Mô hình điều khiển Mô hình đo đạc Back-end Cập nhật lại vị trí và bản đồ có thể có hoặc không Hình 3.

Kiến trúc tổng quát của một ứng dụng SLAM. Tùy thuộc vào ứng dụng cụ thể mà mô hình điều khiển có thể sử dụng nhiều loại thiết bị cảm biến để ước lượng di chuyển của đối tượng [38]. Thiết bị cảm biến có thể gắn lên trên đối tượng như là IMU (Inertial Measurement Unit) [39], có thể là một phần của bộ phận điều khiển chuyển động của đối tượng như là servo motor [40]. Thiết bị cảm biến cũng có thể nằm ngoài đối tượng như GPS (Global Positioning System) [8].

Tuy nhiên có những ứng dụng không sử dụng thiết bị cảm biến cho mô hình điều khiển, khi đó người ta thường đưa ra những giả thiết về tính chất chuyển động của đối tượng để xây dựng mô hình điều khiển [3][4][5]. Thiết bị cảm biến dùng trong mô hình đo đạc có thể là loại thiết bị đo đạc trực tiếp như laser, sonar, radar rangefinder hoặc gián tiếp như video camera. Các thiết bị đo đạc trực tiếp giúp mô hình đo đạc trở nên đơn giản, tuy nhiên đây là các thiết bị đắt tiền. Monocular camera tuy rẻ tiền nhưng không được thiết kế để thực hiện chức năng đo đạc.

Ta có thể tính toán vị trí tương đối của các cột mốc trong quang cảnh chụp được so với camera bằng cách sử dụng các quy luật hình học. Tính toán tọa độ của các cột mốc từ một hay nhiều tấm hình chụp được từ monocular camera là một công việc phức tạp [10]. Để giảm bớt độ phức tạp tính toán, người ta có thể sử 10 dụng stereo camera hay trinocular camera [8], tuy nhiên những thiết bị này lại là những thiết bị đắt tiền. Trong phần back-end, ta sử dụng một giải thuật tối ưu để tính toán lại vị trí của đối tượng chuyển động (camera, robot, …) và tọa độ các cột mốc (bản đồ) đã ước lượng được sao cho gần với giá trị mong đợi nhất.

Có hai trường phái nghiên cứu về giải thuật này: trường phái nghiên cứu các giải thuật lọc (filter) và trường phái nghiên cứu các giải thuật tối thiểu sai số. Đã có rất nhiều bài báo nghiên cứu áp dụng các giải thuật lọc, trong đó các giải thuật lọc thường được sử dụng nhất trong các ứng dụng SLAM là EKF (Extended Kalman Filter) [3][4][5][6][12], particle filter [8][41][42][43] và information filter [44][45][46]. Một hướng nghiên cứu khác tìm cách làm tối thiểu hóa sai biệt giữa các giá trị dự đoán (ước lượng) với các giá trị đo đạc được [15][16][35][47]. Ngoài việc xây dựng hai mô hình điều khiển và đo đạc cụ thể (trong front-end) cho phù hợp với các cảm biến sử dụng và chọn một giải thuật thực thi trong phần back- end, sự phong phú của các ứng dụng SLAM còn thể hiện ở chỗ ứng dụng nhắm đến khía cạnh nào của bài toán SLAM: lập bản đồ hay xác định vị trí hay cả hai.

Trong khi ứng dụng monocular SLAM của Davison và nhóm tác giả [3][4][5][9] tập trung xác định quỹ đạo của monocular camera (việc đo đạc chỉ là bước trung gian nhằm xác định vị trí camera), thì giải thuật SAM của Frank Dellaert [35] và iSAM của Kaess và nhóm tác giả [15] xác định đồng thời quỹ đạo của đối tượng và bản đồ ba chiều (3D map), hay còn gọi là full SLAM. Tùy thuộc vào môi trường ứng dụng mà ta chọn các cảm biến thích hợp và kết hợp với một giải thuật tối ưu để xây dựng chương trình. Ở môi trường ngoài trời, ta có thể sử dụng GPS kết hợp với radar rangefinder để thu thập dữ liệu đầu vào cho ứng dụng. Đối với ứng dụng trong môi trường trong nhà như robot tự hành, ta có thể sử dụng servo motor kết hợp với video camera.

Trong luận văn này, chúng tôi xây dựng một ứng dụng thuộc dạng full SLAM, nhưng chỉ sử dụng duy nhất một thiết bị cảm biến là monocular camera cho cả hai mô hình điều khiển và đo đạc, kết hợp với một giải thuật tối ưu hóa thuộc dạng tối thiểu sai số trong phần back-end. Đây là một sự kết hợp giữa monocular camera với một giải thuật tối thiểu sai số để hiện thực ứng dụng full SLAM mà chưa ai làm trước đây. Mục tiêu đề tài Davison và đồng nghiệp [3][4][5][6][9][23][27][28] đã nghiên cứu thành công việc sử dụng duy nhất một monocular camera để hiện thực ứng dụng visual SLAM. Trong đó các tác giả giả định chuyển động của camera là đều và sử dụng monocular camera để hiện thực mô hình đo đạc trong mặt phẳng ảnh 2D.

Trong phần back-end, các tác giả sử dụng EKF để xác định vị trí của camera. Đề tài của chúng tôi nghiên cứu việc sử dụng duy nhất một monocular camera để hiện thực ứng dụng visual full SLAM. Trong đó mô hình điều khiển và đo đạc đều sử dụng dữ liệu cung cấp bởi monocular camera. Mô hình đo đạc tính toán tọa độ 3D của quang cảnh xung quanh.

Trong phần back-end, chúng tôi sử dụng một thư viện tối thiểu hóa sai số để xác định đồng thời vị trí camera và tọa độ của quang cảnh xung quanh.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài luận văn thạc sĩ khoa học máy tính mang tên "Ứng dụng monocular full SLAM" của tác giả Hà Thủy Tú, dưới sự hướng dẫn của PGS. Lê Ngọc Minh tại Đại học Bách Khoa TP. Hồ Chí Minh, trình bày về việc phát triển ứng dụng SLAM (Simultaneous Localization and Mapping) sử dụng camera đơn. Nghiên cứu này không chỉ đóng góp vào lĩnh vực công nghệ nhận diện và định vị mà còn mở ra hướng đi mới cho các ứng dụng thực tế trong robot và xe tự hành. Bài viết cung cấp cái nhìn sâu sắc về công nghệ SLAM, từ lý thuyết đến ứng dụng thực tiễn, giúp người đọc hiểu rõ hơn về tiềm năng và thách thức của công nghệ này trong tương lai.

Nếu bạn quan tâm đến các nghiên cứu liên quan trong lĩnh vực khoa học máy tính, hãy tham khảo thêm bài viết "Ứng Dụng Active Learning trong Lựa Chọn Dữ Liệu Gán Nhãn cho Bài Toán Nhận Diện Giọng Nói" của Nguyễn Minh Sơn, hay bài viết "Nhận dạng giọng nói tiếng Việt qua học sâu và mô hình ngôn ngữ" của Nguyễn Đức Huy. Những nghiên cứu này không chỉ bổ sung cho kiến thức về công nghệ nhận diện mà còn mở rộng hiểu biết của bạn về các phương pháp học máy hiện đại trong khoa học máy tính.