(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library(Luận văn thạc sĩ) Xây dựng bản đồ 2D cho Robot di động sử dụng Point Cloud Library
TỔNG QUAN
Giới thiệu
Điều hướng cho robot di động theo quỹ đạo mong muốn đã được nghiên cứu lâu dài và đạt nhiều thành công lớn Phương pháp điều hướng cổ điển dựa vào cảm biến để đo khoảng cách, hướng, gia tốc nhằm xác định quỹ đạo di chuyển của robot, như minh họa trong Hình 1.1 Tuy nhiên, những hạn chế khách quan do sai số cảm biến gây ra vẫn tồn tại, khiến việc loại bỏ hoàn toàn những ảnh hưởng này trở nên khó khăn Do đó, việc điều khiển robot chỉ dựa vào cảm biến trên chính robot vẫn chưa đủ để đảm bảo độ chính xác cao trong quá trình di chuyển Các nhà nghiên cứu dần nhận thấy rằng cần phải phối hợp, tương tác với môi trường xung quanh, nhằm cung cấp thêm thông tin cho robot để giúp nó đưa ra quyết định chính xác hơn, đảm bảo chuyển động đến đích đúng đắn.
Một giải pháp hiệu quả để hỗ trợ điều hướng robot là nhận dạng vật mốc dựa trên xử lý ảnh từ camera Kinect Phương pháp này cho phép robot xác định tọa độ hiện tại bằng cách nhận diện vật mốc nhân tạo hoặc vật mốc tự nhiên, từ đó nâng cao độ chính xác và tối ưu hóa quá trình điều hướng robot tự động.
Hình 1.1: Robot di chuyển dựa vào cảm biến
Quá trình xử lý ảnh để nhận dạng vật mốc chỉ đạt hiệu quả khi vật mốc nằm trong vùng quét của camera Điều này khiến việc điều hướng cho robot không đạt được mức độ mịn mong muốn Một hướng phát triển tiềm năng là cung cấp cho robot bản đồ 2D hoặc 3D, giúp robot phối hợp dữ liệu cảm biến hiện tại với bản đồ có sẵn để xác định tọa độ chính xác và xây dựng quỹ đạo di chuyển tối ưu hơn.
Trong thực tế, để quan sát toàn diện đối tượng, người ta thường sử dụng nhiều góc nhìn khác nhau tùy thuộc vào vị trí quan sát Đối với Kinect, dữ liệu thu thập từ các vị trí khác nhau sẽ bị rời rạc, chỉ ghi nhận thông tin ảnh màu RGB và ảnh độ sâu tại từng vị trí Khi chuyển đổi các điểm ảnh này sang không gian 3D, chúng sẽ bị chồng chéo nhau khi có nhiều hơn một frame, gây ra hiện tượng xung đột trong không gian Để giải quyết vấn đề này, cần sắp xếp và ghép các frame ảnh 2D hoặc đám mây điểm 3D lại với nhau, tạo thành một bản đồ toàn cục của môi trường xung quanh, gọi là quá trình registration and alignment Quá trình này giúp chuyển đổi chính xác các đám mây điểm riêng lẻ sang hệ trục tọa độ thế giới thực, đảm bảo thống nhất và đầy đủ của mô hình môi trường.
Hình 1.3: Các đám mây rời rạc trong không gian
Hình 1.4 [16] trình bày ví dụ về sáu đám mây điểm thu thập từ nhiều hướng khác nhau, phản ánh khả năng quan sát đa chiều của dữ liệu Vì mỗi đám mây chỉ là một phần nhỏ của thế giới xung quanh, việc ghép chúng lại với nhau là cần thiết để xây dựng một mô hình đầy đủ hơn Kết quả của quá trình ghép này được thể hiện rõ trong Hình 1.5 [16], nơi các đám mây đã được hợp nhất thành một bức tranh thống nhất Phương pháp chính để ghép các đám mây điểm là tìm kiếm các điểm tương đồng trong dữ liệu đầu vào và ước tính các hàm biến đổi nhằm xoay và chuyển đổi từng đám mây vào hệ tọa độ toàn cục, giúp đồng bộ hóa dữ liệu một cách chính xác và hiệu quả.
Hình 1.4: Ví dụ về các góc nhìn khác nhau ở các vị trí khác nhau
Kết quả nghiên cứu trong và ngoài nước
Lập bản đồ có nhiều phương pháp khác nhau, trong đó phổ biến nhất là sử dụng thiết bị định vị toàn cầu (GPS) gắn trên ô tô Khi xe di chuyển, tọa độ hiện tại của phương tiện luôn được cập nhật và gửi về máy chủ để phục vụ quá trình xử lý dữ liệu Máy chủ sau đó sẽ tính toán và dựng lên bản đồ 2D phản ánh môi trường xung quanh xe Tuy nhiên, độ chính xác của GPS thường không cao, với sai số dao động từ vài mét đến hàng chục mét, khiến phương pháp này phù hợp hơn cho việc lập bản đồ quy mô lớn.
Hình 1.6: Dùng xe ô tô được trang bị thiết bị định vị GPS để lập bản đồ
Phương pháp lập bản đồ dựa trên công nghệ RFID sử dụng trong công trình này cho phép robot xác định vị trí của mình bằng cách đọc các thẻ tag qua bộ Reader, dựa trên khoảng cách và góc mở của vùng phủ sóng từ hai antenna Robot sẽ tính toán chiều dài và góc dựa trên dữ liệu thu thập được nhằm lập bản đồ môi trường chính xác hơn Tuy nhiên, khả năng đọc của bộ Reader còn hạn chế về khoảng cách, dẫn đến việc điều hướng robot không hiệu quả, đồng thời yêu cầu phải gắn thẻ tag ở những vị trí đã định sẵn trong phạm vi hoạt động của bộ Reader.
Robot trang bị đầu đọc RFID và thẻ tag để lập bản đồ, kết hợp sử dụng OpenCV nhằm nâng cao khả năng nhận biết độ sâu của camera Tuy nhiên, robot chỉ có thể nhận dạng các vật mốc trong phạm vi nhìn của camera, đòi hỏi các vật mốc nhân tạo phải được bố trí theo trật tự cố định về màu sắc và khoảng cách (như trong Hình 1.8) Điều này dẫn đến hạn chế trong xử lý thông tin do giới hạn trong vùng quan sát của camera, là một trong những nhược điểm của phương pháp này.
Hình 1.8: Định vị robot di động sử dụng vật mốc nhân tạo
Trong dự án robot tự hành tránh vật cản sử dụng thiết bị Kinect, tác giả Nguyễn Hồng Đức và Nguyễn Văn Đức đã trình bày phương pháp điều hướng dựa trên xử lý ảnh qua camera Kinect và phần mềm PCL Phương pháp này cho phép robot nhận diện và tránh các vật cản trong vùng quan sát của mình hiệu quả Tuy nhiên, hạn chế của đề tài này là chỉ giới hạn ở việc xử lý tránh vật cản trong phạm vi nhìn của robot, không mở rộng ra các vùng ngoài tầm quan sát.
Hình 1.9: Robot tự hành tránh vật cản
The introduction of 3D technology is highlighted by the Point Cloud Library (PCL) developed by Radu Bogdan Rusu, which offers a comprehensive set of features for 3D data processing Additionally, Andrew's research on "Robust registration of 2D and 3D point sets" explores advanced techniques for aligning point cloud data, utilizing image data and ICP algorithms to accurately merge multiple datasets These developments underscore significant advancements in 3D point cloud processing and registration methods.
Nghiên cứu này sử dụng camera Kinect kết hợp phần mềm mã nguồn mở Point Cloud Library để thực hiện quét 3D một vật thể trong không gian Quá trình chuyển đổi vật thể thành đám mây điểm ảnh 3D dựa trên gốc tọa độ của camera, sau đó xoay vật thể và thu thập các đám mây điểm để ghép chúng lại với nhau dựa trên các điểm tương đồng, tạo thành mô hình 3D hoàn chỉnh Tuy nhiên, hạn chế của nghiên cứu là chỉ có thể nhận dạng vật thể trong môi trường nền cố định, không thay đổi.
Hình 1.10: Scan 3D một đối tượng
Một nghiên cứu gần đây mang tựa đề "Implementing Kinect Sensor for Building 3D Maps of Indoor Environments" của tác giả Wael R Abdulmajeed và cộng sự đã thành công trong việc xây dựng bản đồ 3D của môi trường trong nhà Nghiên cứu này nhấn mạnh ưu điểm của cảm biến Kinect trong việc tạo ra các bản đồ có kích thước rất gần với kích thước thực tế, đồng thời giảm thiểu chi phí so với các phương pháp sử dụng cảm biến laser hoặc cảm biến âm thanh Sonic.
Mục tiêu của đề tài
Bài viết trình bày phương pháp ghép các đám mây điểm ảnh trong không gian để tạo thành bản đồ 3D toàn cục Quá trình này bao gồm việc chiếu đám mây điểm xuống mặt phẳng nền nhà nhằm tạo ra đám mây 2D chính xác và trực quan Để đạt được mục tiêu này, robot sẽ được điều hướng theo một quỹ đạo đã được lập trình sẵn, đảm bảo quá trình thu thập dữ liệu diễn ra liên tục Khoảng cách giới hạn trong quá trình thu thập dữ liệu được tính toán dựa trên tốc độ di chuyển và giới hạn góc quay của robot, phù hợp với thông số góc mở của camera Quá trình ghi nhận các đám mây điểm diễn ra tại từng vị trí robot đi qua, giúp xây dựng bản đồ 2D chính xác và chi tiết.
Kết quả của đề tài này nhằm phối hợp với phương pháp nhận dạng vật mốc tự nhiên để nâng cao hiệu quả điều hướng cho robot di động trong các lần chạy tiếp theo Phương pháp này không chỉ giúp robot tự dẫn đường chính xác hơn mà còn có thể được sử dụng để cung cấp dữ liệu cho các robot khác hoạt động trong cùng môi trường cũ Điều này góp phần tối ưu hóa quá trình điều hướng tự nhiên, giảm thiểu sai số và nâng cao khả năng tự lập của robot trong môi trường phức tạp.
Nội dung thực hiện của đề tài
Quyển luận văn trình bày phương pháp ghép nhiều đám mây điểm ảnh, tính toán giá trị giới hạn và kết quả thực nghiệm để đánh giá hiệu quả, từ đó đề xuất hướng phát triển Chương 2 giới thiệu cơ sở lý thuyết về khởi tạo đám mây điểm, phương pháp lọc và giảm số lượng điểm, cũng như kỹ thuật tìm và ghép đám mây điểm dựa trên cặp điểm tương đồng giữa hai đám mây Thuật toán thực hiện được trình bày chi tiết trong chương 3, dựa trên nền tảng lý thuyết của chương 2 Nội dung thực hiện của đề tài được thể hiện ở chương 4, trong khi phần hướng phát triển được trình bày ở chương 5.
CƠ SỞ LÝ THUYẾT
Giới thiệu chung về Kinect Xbox 360 và Point Cloud Library
Camera Kinect là sản phẩm của Microsoft dựa trên công nghệ camera phát triển bởi PrimeSense Các sản phẩm đầu tiên của Kinect đã được bán tại Bắc Mỹ vào ngày 4 tháng 11 năm 2010, mở ra bước đột phá trong lĩnh vực công nghệ cảm biến và trải nghiệm người dùng.
Trong năm 2010, sản phẩm Kinect của Xbox 360 đã được sử dụng trong nghiên cứu xử lý ảnh 3D, nhận dạng cử chỉ và theo dõi cơ thể Với độ phân giải 640x480 pixel, mỗi điểm ảnh trong hình ảnh sâu có giá trị độ sâu trong khoảng từ 0-2048 (11 bit) Để khai thác hiệu quả dữ liệu này, đã xây dựng mối quan hệ giữa giá trị cảm biến và khoảng cách thực tế của vật thể trong không gian.
Hình 2.1 mô tả thiết bị Kinect với khung hình IR, trong đó góc mở của camera RGB được thiết kế lớn hơn để tăng phạm vi cảm biến Điều này dẫn đến tiêu cự của camera RGB nhỏ hơn, ảnh hưởng đến khả năng quét và nhận diện hình ảnh Các thông số kỹ thuật cơ bản của Kinect, bao gồm các đặc điểm về góc nhìn và tiêu cự, được trình bày rõ trong Bảng 2.1 [13], giúp người dùng hiểu rõ hơn về khả năng cũng như giới hạn của thiết bị này.
Bảng 2.1: Góc mở và tiêu cự của RGB và IR camera
Tính năng VGA IR camera
Point Cloud Library (PCL) là thư viện hỗ trợ xử lý n-điểm mây và ảnh trong không gian 3D, cung cấp các thuật toán như lọc, khôi phục bề mặt, phân vùng và ước lượng đặc tính vật thể PCL có thể hoạt động trên nhiều nền tảng bao gồm Linux, MacOS, Windows và Android, giúp đa dạng hóa ứng dụng Thư viện được chia thành nhiều phần riêng biệt, dễ dàng biên dịch và tích hợp vào các dự án khác nhau Phiên bản mới nhất, PCL 1.6, ra mắt vào ngày 17/07/2012, mang lại nhiều cải tiến và tính năng mới PCL hoàn toàn miễn phí cho nghiên cứu và phát triển các sản phẩm thương mại, là công cụ hữu ích trong lĩnh vực xử lý ảnh và dữ liệu 3D.
PCL (Point Cloud Library) là một tập hợp các module nhỏ thích hợp với các chức năng riêng biệt, được xây dựng dựa trên các thư viện quan trọng như Eigen, Flann, Boost, VTK và CminPack Các module này hoạt động độc lập giúp PCL dễ dàng mở rộng và tích hợp, đồng thời tối ưu hóa hiệu quả xử lý dữ liệu điểm 3D trong các ứng dụng đồ họa, thị giác máy tính và nhận diện hình dạng Việc tận dụng các thư viện nền tảng này giúp PCL đảm bảo hiệu suất cao, khả năng tùy biến linh hoạt và hỗ trợ các chức năng phức tạp trong xử lý dữ liệu không gian.
- Eigen: một thư viện mở hỗ trợ cho các phép toán tuyến tính, được dùng trong hầu hết các tính toán toán học của PCL
- Flann: (Fast Library for Approximate Nearest Neighbors) hỗ trợ cho việc tìm kiếm nhanh các điểm lân cận trong không gian 3D
- Boost: giúp cho việc chia sẻ con trỏ trên tất cả các module và thuật toán trong
PCL để tránh việc sao chép trùng lặp dữ liệu đã được lấy về trong hệ thống
- VTK: (Visualization Toolkit) hỗ trợ cho nhiều platform trong việc thu về dữ liệu 3D, hỗ trợ việc hiển thị, ước lượng thể tích vật thể
- CMinPack: một thư viện mở giúp cho việc giải quyết các phép toán tuyến tính và không tuyến tính
Dữ liệu 3D của đám mây điểm ảnh được lưu trữ dưới dạng tập tin có đuôi là pcd, định dạng này bao gồm hai phần chính là phần header và phần dữ liệu Tập tin pcd giúp dễ dàng quản lý và chia sẻ dữ liệu đám mây điểm ảnh trong các ứng dụng xử lý hình ảnh và thị giác máy tính Hình 2.3 minh họa cấu trúc của một tập tin pcd, thể hiện rõ các thành phần của định dạng này để người dùng có thể hiểu và thao tác hiệu quả hơn.
Hình 2.3: Cấu trúc của một tập tin *.pcd
Các bước ghép đám mây
Quá trình ghép hai đám mây điểm ảnh bắt đầu khi xuất hiện đám mây điểm ảnh mới, nhất quán với việc đám mây cũ được xem như đám mây toàn cục Đám mây mới sẽ được sắp xếp và ghép vào đám mây toàn cục, quá trình này lặp lại khi có dữ liệu từ đám mây mới, giúp xây dựng bản đồ 3D chính xác cho môi trường mà robot đang khảo sát Các bước thực hiện quá trình ghép đám mây điểm ảnh được trình bày trong Hình 2.4 [16], cùng các giải thích chi tiết cho từng bước nhằm đảm bảo hiệu quả trong lập bản đồ 3D từ dữ liệu cảm biến.
Bước 1 trong quá trình xử lý dữ liệu là chọn một đám mây điểm ảnh làm gốc, giúp xác định hệ trục tọa độ của camera phù hợp với môi trường thực tế Việc này đảm bảo rằng frame gốc phản ánh chính xác vị trí và hướng của camera, tạo nền tảng cho các bước tiếp theo trong xử lý hình ảnh và lập bản đồ môi trường.
- Bước 2: thu thập đám mây điểm ảnh mới, thực hiện kiểm tra với tất cả các đám mây điểm ảnh cũ xem có nhiều điểm tương đồng nhất
- Bước 3: loại bỏ các cặp không có độ sâu, lọc bớt các cặp không chính xác so với các cặp khác
Bước 4 tập trung vào việc ước lượng vị trí tương đối giữa hai đám mây điểm trong không gian để xác định chính xác cấu trúc của chúng Quá trình này bao gồm việc ước lượng hàm chuyển đổi nhằm giảm thiểu khoảng cách giữa các cặp điểm tương đồng, từ đó cải thiện độ chính xác trong so khớp dữ liệu Việc tối ưu hóa hàm chuyển đổi đảm bảo các đám mây điểm phù hợp một cách hiệu quả, nâng cao chất lượng phân tích và xử lý dữ liệu không gian.
- Bước 5: thực hiện xắp xếp, ghép đám mây mới vào đám mây cũ sử dụng hàm chuyển đổi vừa tìm ở bước 4
Để cải thiện độ chính xác của bản đồ từ dữ liệu đám mây điểm, phương pháp chỉ sử dụng roto-translation và cộng các đám mây sẽ gây ra nhiều lỗi như đã thấy trong Hình 2.5 [6] Do đó, chúng tôi đề xuất một quy trình xử lý ghi dữ liệu đám mây điểm, bao gồm hai bước chính Đầu tiên, sử dụng phương pháp ICP (Iterative Closest Point) để căn chỉnh các đám mây Thứ hai, áp dụng quá trình ghi dữ liệu dựa trên hai phương pháp là SAC-IA (Sample Consensus Initial Alignment) và ICP để tối ưu hoá quá trình kết hợp dữ liệu Sau khi khởi tạo bản đồ, mỗi đám mây mới được ghi chồng lên bản đồ cũ và quyết định xem dữ liệu đó đã đủ chính xác để tích hợp hay chưa; nếu chưa, bước lọc đám mây sẽ được thực hiện lại.
Trong Hình 2.4, các bước thực hiện ghi một cặp dữ liệu đám mây điểm ảnh được trình bày rõ ràng qua hai phương pháp: tổng trực tiếp (a) và tổng sau khi xử lý ghi dữ liệu (b), giúp minh họa quá trình xử lý dữ liệu đám mây điểm một cách chính xác Hình 2.5 thể hiện kết quả của quá trình cộng các đám mây sau khi thực hiện xử lý roto-translation (a) và sau khi áp dụng ghi dữ liệu sử dụng phương pháp SAC-IA cùng với ICP (b), từ đó thể hiện hiệu quả của các kỹ thuật trong việc hợp nhất đám mây điểm để đạt được kết quả chính xác hơn.
Hình 2.6: Lưu đồ xây dựng lại bản đồ
Ghi dữ liệu đám mây mới sử dụng phương pháp dời tọa độ
Trong quá trình ghi dữ liệu mới, hệ thống tạo ra đám mây điểm mới bằng cách đọc đám mây điểm trước đó, dựa trên vị trí của camera khi thu thập dữ liệu Khi xử lý thông tin này thành công, robot có thể xác định chính xác khoảng cách di chuyển và góc quay của mình Điều này cho phép robot chuyển đổi đám mây điểm mới thành tham chiếu toàn cục để định vị và điều hướng một cách chính xác.
2.3.1 Chuyển từ tham chiếu cục bộ thành tham chiếu toàn cục dùng ma trận biến đổi Để ghép nhiều đám mây khác lại với nhau tạo thành bản đồ chung, chúng phải ở trong cùng một tham chiếu Hình 2.7 [6] trình bày hai bước của quá trình chuyển đổi này Đám mây điểm thu được sẽ được tham chiếu với hệ tọa độ của camera Kinect
Điểm gốc của hệ thống Kinect nằm tại điểm cảm biến của camera, với các trục x, y, z được định nghĩa theo Hình 2.8 [6], tạo thành hệ thống tham chiếu cho robot để xác định vị trí và hướng di chuyển chính xác.
Robot R là một hệ tọa độ di động, trong đó camera gắn cố định trên robot mà không điều chỉnh góc ngẩng hoặc quay riêng, giúp tọa độ của R Kinect và R Robot trùng khớp trên cùng hệ tham chiếu.
Hình 2.7: Quá trình chuyển đổi đám mây tham chiếu từ Kinect thành tham chiếu toàn cục
Hình 2.8 mô tả hệ tọa độ của camera Kinect và môi trường xung quanh Áp dụng phép biến đổi T, K, R để chuyển đổi đám mây điểm từ hệ tọa độ của camera Kinect (R_kinect) sang hệ tọa độ của robot (R_robot) Khi các đám mây điểm đã trong một hệ tham chiếu cục bộ phù hợp, việc chuyển đổi sang hệ tham chiếu toàn cục là cần thiết để có thể xử lý và làm việc với các đám mây khác nhau Hệ tọa độ toàn cục (R_global) là một hệ cố định, có cùng gốc và hướng với hệ tọa độ của robot khi vị trí của robot được xác định rõ ràng.
Hàm biến đổi toàn cục
x y 0 , 0 , 0 0,0,0 Hình 2.9 [6] cho thấy mối quan hệ giữa ba hệ tọa độ khác nhau
Hình 2.9 trình bày hệ tọa độ toàn cục và mối liên hệ với hệ tọa độ của Kinect Để chuyển đổi đám mây điểm từ hệ tọa độ robot R_robot sang hệ tọa độ toàn cục R_global, ta áp dụng phép biến đổi T_RG Phép biến đổi này thực chất là một ma trận được mô tả rõ trong phương trình (2.1).
Trong hệ tọa độ của camera và robot, trục x_r thường được định hướng để tương ứng với trục z_k của robot, tuy nhiên điều này không phải lúc nào cũng chính xác Kinect có khả năng tự do điều chỉnh định hướng của trục z_k, cho phép thay đổi hướng của hệ tọa độ một cách linh hoạt thông qua thao tác thủ công Việc định vị này được thực hiện liên tiếp trong phạm vi khoảng 6 độ để đảm bảo chính xác Khi trục z_k không song song với mặt sàn, việc căn chỉnh trục x_r ban đầu là bắt buộc, dựa trên góc quay đơn của ω_k quanh trục x_k Hàm biến đổi được xác định thông qua tham số T offset giúp điều chỉnh phù hợp để đảm bảo hệ tọa độ của camera và robot được đồng bộ chính xác hơn.
Phương pháp này yêu cầu cung cấp các thông số về sự di chuyển của robot trong hai trường hợp cơ bản là chuyển động tịnh tiến và chuyển động xoay tròn Chính xác của các tham số này là yếu tố quyết định đến thành công của quá trình ghép hai đám mây điểm ảnh Nếu các thông số không chính xác, quá trình ghép sẽ gặp phải các vấn đề như trùng lắp hoặc mất điểm ảnh, ảnh hưởng đến chất lượng kết quả cuối cùng.
Ghi đám mây sử dụng ICP (Iterative Closest Points)
Quá trình ghi dữ liệu đầu tiên nhằm thay thế phương pháp cũ, được mô tả trong Mục 2.3 và Hình 2.10 [6], bao gồm việc tạo liên kết duy nhất giữa bản đồ hiện tại và đám mây mới Quá trình này sử dụng thuật toán Iterative Closest Points để chèn đám mây điểm mới vào bản đồ một cách chính xác và hiệu quả.
Hình 2.10: Lưu đồ ghi dữ liệu chỉ sử dụng ICP
Thuật toán ICP (Iterative Closest Point) là phương pháp chính để sắp xếp hai tập dữ liệu đám mây điểm bằng cách tối thiểu hóa khoảng cách Euclidean giữa các điểm tương đồng Quá trình này giúp căn chỉnh chính xác các điểm trong hai hình dạng không gian 3D, hỗ trợ trong các ứng dụng như tái tạo mô hình, phần mềm đồ họa và xử lý ảnh 3D Thuật toán ICP hoạt động lặp đi lặp lại, liên tục cập nhật phép biến đổi để phù hợp hóa các đám mây điểm, đảm bảo kết quả căn chỉnh tối ưu Việc tối ưu hóa này giúp cải thiện độ chính xác và hiệu suất trong xử lý dữ liệu 3D, góp phần nâng cao chất lượng các dự án kỹ thuật số và nghiên cứu khoa học.
Sắp xếp dùng ICP Điểm Fitness Đám mây mới: đám mây ICP nguồn
Bản đồ trước xác định đám mây ICP đích tương đồng khi khoảng cách giữa chúng nhỏ hơn một ngưỡng đã đặt trước Tiếp theo, một hàm biến đổi cố định được ước lượng để tối thiểu hóa khoảng cách giữa các đám mây này Quá trình này lặp lại liên tục cho đến khi sự khác biệt giữa các biến đổi liên tiếp trở nên nhỏ hơn giới hạn cho phép hoặc đạt đến số lần lặp tối đa.
Mô tả thuật toán ICP để ghi và sắp xếp một đám mây điểm D vào một đám mây
M gồm ba bước như sau [11]:
1 Chọn điểm tương đồng w i,j trong khoảng {0,1}
2 Tối thiểu hàm biến đổi xoay R và hàm tịnh tiến t
3 Lặp lại bước 1 và bước 2 cho đến khi đạt được hội tụ hoặc đạt đến giá trị lặp
Nếu hai đám mây M và D có kích thước giống nhau thì Phương trình (2.1) được viết lại như sau:
Tính trọng tâm của những điểm được tìm thấy
Lúc này, Phương trình (2.2) được viết lại như sau:
R, t R t R (2.5) Đặt ~ t t c m R c d , thay vào Phương trình (2.3) ta khai triển thành:
Theo K.S Arun và cộng sự T S Huang, S D Blostein trong Least square fitting of two 3-d point sets, IEEE Transactions on Pattern Analysis and Machine
Intelligence, 9(5):pg 698 – 700, 1987, chỉ ra rằng:
1 m ' d ' xx xy xz n T i i yx yy yz i zx zy zz
1 1 m ' d ' ; m ' d ' ; n n xx ix ix xy ix iy i i
2.4.1.1 Tìm hàm biến đổi giữa các điểm tương đồng
Tịnh tiến t của hàm biến đổi cố định là vector dịch chuyển tâm của các điểm đã chọn trong tập M đến tâm của các điểm tương đồng trong tập D Quá trình này giúp định vị và xác định chính xác sự dịch chuyển trong không gian của các đối tượng hoặc hình dạng Việc hiểu rõ tịnh tiến t là bước quan trọng trong các phép biến đổi hình học, đảm bảo các đối tượng được căn chỉnh đúng vị trí mong muốn Tinh chỉnh tịnh tiến giúp tối ưu hóa các phép biến đổi để đạt hiệu quả cao trong các ứng dụng như đồ họa máy tính, xử lý hình ảnh và mô phỏng không gian.
Trong bước 1 của thuật toán, n đại diện cho số lượng các cặp kết hợp được tìm thấy, và i dùng để đánh số các cặp điểm theo thứ tự từ (m_i, d_i) Một điểm trong tập M có thể là điểm lân cận gần nhất của nhiều điểm trong tập D, điều này làm tăng trọng số của điểm đó trong quá trình tính toán trọng tâm.
Nếu có ma trận H được định nghĩa như sau:
Sau đó, từ khai triển H U V T , ta được R = UV T (2.11)
2.4.1.2 Lựa chọn điểm và tìm kiếm vùng lân cận gần nhất
Mỗi điểm đám mây thường chứa hơn 300.000 điểm, khiến việc tìm kiếm lân cận gần nhất cho từng điểm trở nên không khả thi Để giải quyết vấn đề này, phương pháp Efficient Variants of the đã được đưa ra nhằm tối ưu hóa quá trình tìm kiếm và nâng cao hiệu suất xử lý dữ liệu lớn từ các đám mây điểm.
ICP Algorithm cho thấy rằng không cần thiết phải lấy mẫu tất cả các điểm, vì một nhóm nhỏ hơn được chọn ngẫu nhiên có thể hoạt động hiệu quả như nhau trong nhiều trường hợp, giúp tiết kiệm thời gian và giảm sai số Do đó, phương pháp lấy mẫu ngẫu nhiên đã được chọn để thực hiện bước cuối cùng, trong đó các điểm lân cận gần nhất được chọn thông qua các đám mây điểm di chuyển với các bước đi ngẫu nhiên trong phạm vi nhất định, nhằm mục tiêu xử lý khoảng 4.000 điểm trong mỗi vòng lặp.
2.4.2 Ghép đám mây điểm chồng một phần sử dụng ICP
Hình 2.11 [9] cho thấy hai đám mây điểm ảnh chỉ có phần chồng lấp Khi sử dụng thuật toán ICP để ghép hai đám mây này, bước đầu tiên sẽ tạo ra một tập hợp các điểm lân cận Trong khu vực đánh dấu (hình chữ nhật), tất cả các điểm đều có cùng một lân cận Tuy nhiên, việc đưa tất cả các điểm lân cận vào bộ đếm khi tính toán có thể gây ra sai lệch trong kết quả do hàm biến đổi cố định không thích hợp.
ICP có thể gặp phải một số vấn đề như hội tụ đến một cực tiểu cục bộ, dẫn đến kết quả không tối ưu trong quá trình ghi dữ liệu Do đó, phương pháp này có thể yêu cầu lặp lại nhiều lần để đạt được kết quả mong muốn, ảnh hưởng đến hiệu quả và độ chính xác của quá trình hiệu chỉnh.
Hình 2.11: Hai đám mây điểm chồng lấp một phần
Chức năng ICP trả về điểm thích hợp, một tham số quan trọng đánh giá chất lượng các liên kết đã thực hiện Điểm thích hợp phản ánh số phép tính về khoảng cách sai số giữa các đám mây điểm sau quá trình ghi dữ liệu, giúp xác định mức độ chính xác của liên kết Tham số này rất hữu ích trong việc ra quyết định, đặc biệt khi các liên kết đạt mức độ tốt, đủ để được bao gồm trong bản đồ.
Ghi đám mây sử dụng SAC-IA
Quá trình ghi dữ liệu thứ hai giúp cải thiện độ chính xác của liên kết đám mây điểm Sau khi sử dụng thuật toán ICP để ghép hai đám mây, nếu kết quả không khả thi, hệ thống sẽ thực hiện một quá trình liên kết thứ hai dùng mẫu đồng thuận SAC-IA để xác định liên kết ban đầu chính xác hơn Kết quả sau ICP thứ hai sẽ được đánh giá để quyết định việc ghép đám mây mới vào bản đồ Hình 2.12 trình bày sơ đồ quy trình ghi đám mây điểm một cách rõ ràng và hệ thống.
Quyết định Đám mây mới: đám mây ICP nguồn
Bản đồ trước: đám mây ICP đích
Săp xếp ICP tiếp theo
Nếu Fitness ≤ giá trị chấp nhận nhỏ nhất
Nếu Fitness > giá trị chấp nhận nhỏ nhất
Tính năng đám mây trước: mục tiêu SACIA
Để thực hiện ghi đám mây sử dụng SAC-IA và ICP, việc đầu tiên là tính toán các đặc tính hình học quan trọng nhằm phục vụ quá trình SAC-IA Các bước cần thiết để lấy các đặc tính này được trình bày rõ ràng trong Hình 2.13 [6], giúp xác định các bước tối ưu để nhận diện liên kết SAC-IA chính xác và hiệu quả.
Hình 2.13 : Lưu đồ tìm tính năng cần thiết cho sắp xếp SAC-IA
Thời gian thực hiện tính toán của SAC-IA rất đáng kể do nó tự sắp xếp chính các đám mây điểm, làm tăng đáng kể kích thước của đám mây điểm G P i Liên kết giữa hai đám mây điểm có khoảng 50.000 điểm có thể mất từ 5 đến 7 phút, trong khi liên kết của đám mây chỉ có khoảng 3.000 điểm chỉ mất 5 giây Vì vậy, bước đầu tiên là giảm kích thước của đám mây điểm để tối ưu hóa quá trình tính toán các đặc trưng mong muốn Khi bản đồ phát triển, kích thước của đám mây điểm cũng tăng theo đó, gây chậm quá trình liên kết.
Sự ước lượng bề mặt chuẩn
Một đám mây điểm mô tả một bề mặt bằng cách tập hợp các mẫu điểm thực tế của bề mặt đó Để ước tính các tiêu chuẩn tại điểm p q ∈ P i, cần phân tích các vùng lân cận p k q Việc chọn p k q chính xác là bước quan trọng để đạt được ước lượng tốt nhất Có hai phương pháp phổ biến để xác định p k q: một là xác định vùng lân cận gần nhất với k lần tìm kiếm, hai là xác định bán kính r rồi chọn bất kỳ điểm nào nằm gần p q hơn r trong vùng tìm kiếm.
Fast Point Features Histograms (FPFH)
SAC-IA sử dụng tính năng FPFH để thực hiện liên kết điểm trong quá trình xử lý dữ liệu 3D Tính năng này dựa trên các ước lượng trước đó để xác định các mối quan hệ hình học giữa điểm p, điểm q, và các điểm lân cận p_k_q FPFH tạo ra một không gian đa chiều, giúp nhóm các điểm mẫu từ cùng một bề mặt trong một lớp một cách chính xác Việc áp dụng FPFH trong SAC-IA giúp nâng cao hiệu quả và độ chính xác trong phân tích dữ liệu 3D, phù hợp với các yêu cầu của các ứng dụng thực tế.
SAC-IA là một thuật toán sử dụng đặc trưng FPFH để nhận diện liên kết ban đầu giữa hai đám mây điểm khác nhau P và Q Thuật toán này bao gồm ba bước chính giúp xác định mối liên kết chính xác giữa các điểm trong đám mây SAC-IA phù hợp để thực hiện nhiệm vụ ghép nối và nhận dạng đối tượng trong các ứng dụng xử lý đám mây điểm Việc sử dụng FPFH trong SAC-IA đảm bảo quá trình nhận diện nhanh chóng và hiệu quả, nâng cao độ chính xác của các phép đồng bộ dữ liệu.
Bước 1 : Chọn s điểm mẫu từ P sao cho khoảng cách cặp của chúng là lớn hơn khoảng cách tối thiểu d min
Bước 2 : Tìm các điểm trong Q có FPFH tương tự như của các điểm mẫu Điểm này sẽ được coi là tương đồng với điểm mẫu
Bước 3 : Tính hàm chuyển đổi giữa điểm mẫu và điểm tương đồng
Sau khi SAC-IA được thực hiện, kết quả việc chuyển đổi được sử dụng để chuyển đổi các đám mây muốn được liên kết vào bản đồ
Qua đó, một khởi tạo ban đầu cho vòng lặp thứ hai được thành lập và ICP được lặp lại như bước trên.
Quyết định lồng đám mây điểm
Trong bước cuối cùng của quá trình, việc ghi đám mây điểm quyết định việc lồng ghép đám mây vào bản đồ hay không Để thực hiện điều này, chúng tôi sử dụng một tham số phù hợp do thuật toán ICP cung cấp, giúp điều chỉnh tỷ lệ ghi đám mây cho chính xác Tham số này được trình bày rõ ràng trong Hình 2.14 [6], đảm bảo quá trình lồng ghép đám mây điểm vào bản đồ diễn ra hiệu quả và chính xác.
Trong quá trình ghi đám mây điểm, luôn xảy ra hiện tượng chồng lấp giữa các đám mây và bản đồ Điều này gây ảnh hưởng đến việc tái cấu trúc 3D, bởi vì các đám mây mới sẽ không được tích hợp chính xác vào mô hình 3D do sự chồng chéo này.
Hình 2.14: Quy trình quyết định lồng một đám mây đã được ghi vào trong bản đồ
Xử lí cuối cùng
Khi một đám mây mới được lồng vào bản đồ hiện tại, tất cả các điểm trong đám mây này sẽ được thêm vào bản đồ trước đó, giúp mở rộng dữ liệu không gian Tuy nhiên, trường hợp này dẫn đến vùng chồng lấp trở nên dày đặc hơn, vì cùng một vị trí đã được ước lượng sẽ xuất hiện nhiều điểm hơn, làm tăng khả năng trùng lặp và ảnh hưởng đến độ chính xác của bản đồ Việc xử lý các điểm chồng lấp này đóng vai trò quan trọng trong việc duy trì tính toàn vẹn và độ chính xác của hệ thống bản đồ trong các ứng dụng địa lý và không gian.
Bản đồ được giảm số lượng mẫu bằng phương pháp Voxel Grid, giúp tối ưu hóa dữ liệu một cách hiệu quả Quá trình này diễn ra trước khi các đám mây điểm mới được thêm vào, đảm bảo bản đồ duy trì tính chính xác và cấu trúc rõ ràng Việc lọc các thông số liên quan vẫn được thực hiện như cũ nhằm duy trì hiệu suất và chất lượng của hệ thống.
Chuẩn bị cho lần lặp tiếp theo
Trong quá trình ghi đám mây ICP, nếu một đám mây mới được lồng vào, nó sẽ trở thành mục tiêu tiếp theo, trong khi những đám mây không thể truy cập được sẽ được thiết lập thành 0 Khi sử dụng SAC-IA, các tính năng cục bộ của đám mây cuối cùng được lồng vào sẽ được tính toán và thiết lập làm mục tiêu cho liên kết SAC-IA kế tiếp, giúp nâng cao hiệu quả phân tích và xử lý dữ liệu đám mây.
2.9 Kỹ thuật lọc đám mây để giảm số lượng điểm ảnh
Mỗi đám mây điểm từ máy ảnh Kinect chứa khoảng 300.000 điểm, đòi hỏi nhiều thời gian tính toán và bộ nhớ, nhưng không mang lại lợi ích đáng kể Để tối ưu hóa hiệu suất, việc lọc đám mây được thực hiện nhằm giảm sử dụng tài nguyên và thời gian xử lý Quá trình lọc đám mây điểm bao gồm bốn bước chính: lọc thông dải, giảm số lượng mẫu, loại bỏ Outliers và xây dựng lại bề mặt, như trình bày trong Hình 2.15 [6].
Hình 2.15 Các bước lọc một đám mây điểm ảnh
Bộ lọc đầu tiên được sử dụng để thiết lập giới hạn độ sâu trong các đám mây điểm từ cảm biến Kinect, giúp hạn chế các điểm vượt quá phạm vi hoạt động của máy ảnh Mặc dù Kinect có phạm vi hoạt động khoảng 3,5 mét, nhưng thực tế cảm biến còn thu được các điểm ở xa hơn ngưỡng này, gây ảnh hưởng đến độ chính xác của quá trình xây dựng mô hình Để đảm bảo xác thực, cần loại bỏ các điểm có độ sâu lớn hơn 3,5 mét, mặc dù điều này làm giảm độ chính xác về chiều sâu khi khoảng cách giữa các điểm và camera tăng lên Vì vậy, bộ lọc thông dải được áp dụng để loại bỏ tất cả các điểm có độ sâu vượt quá giới hạn này, nâng cao độ chính xác của dữ liệu đám mây điểm.
Do đó, khi qua bộ lọc thông dải, tất cả điểm ảnh có z k 0,6 , z k là trục tọa độ theo chiều sâu
2.9.2 Giảm số lượng mẫu (Down Sampling)
Trong quá trình xây dựng bản đồ diện tích nhỏ, không cần độ chính xác cao như điểm ảnh trong đám mây điểm của Kinect, giúp giảm kích thước đám mây điểm và tiết kiệm thời gian tính toán cùng bộ nhớ Phương pháp Down Sampling sử dụng Voxel Grid để giảm số lượng điểm bằng cách chia đám mây thành các voxel có kích thước mong muốn, sau đó hợp nhất tất cả các điểm trong mỗi voxel thành một điểm duy nhất tại trọng tâm của chúng, từ đó thiết lập khoảng cách tối thiểu giữa các điểm với độ chính xác phù hợp.
Voxel hóa là quá trình chia một đám mây điểm 3D thành các ô vuông nhỏ với kích thước được thiết lập sẵn, giúp đơn giản hóa dữ liệu Trong quá trình này, mỗi ô vuông chứa các điểm ảnh sẽ được thay thế bằng điểm tâm của ô vuông đó, như minh họa trong Hình 2.16 Quá trình voxel hóa giúp tối ưu hóa xử lý dữ liệu đám mây điểm và nâng cao hiệu quả phân tích không gian 3D.
Hình 2.16: Mô tả lọc dạng Voxel Grid
2.9.3 Loại bỏ Outliers Đám mây điểm thu từ Kinect có thể có sai số đo lường để tạo ra giá trị ngoại lai thưa thớt Điểm như vậy có thể dẫn đến sai sót trong khi ước tính các tính năng cục bộ của đám mây điểm như chuẩn hóa bề mặt Tính toán của loại hình này thường yêu cầu để điều tra một số lượng vùng lân cận của một điểm Hơn nữa, loại bỏ điểm như vậy sẽ góp phần giảm thời gian xử lý vì nó làm giảm số điểm còn lại, mặc dù hiệu quả của nó trong vấn đề này là ít quan trọng hơn so với Bộ lọc thông dải và Down Sampling
Phương pháp loại bỏ giá trị ngoại lai dựa trên phân tích thống kê về vùng lân cận của mỗi điểm, được trình bày trong Rus09 Phương pháp này tính toán khoảng cách từ mỗi điểm đến tất cả các vùng lân cận để xác định các giá trị ngoại lai Giả sử dữ liệu theo phân bố Gaussian, các điểm có khoảng cách trung bình vượt quá một ngưỡng nhất định sẽ bị xem là ngoại lai và loại bỏ khỏi bộ dữ liệu.
2.9.4 Xây dựng lại bề mặt
Xây dựng lại bề mặt dựa trên thuật toán Moving Least Squares (MLS) giúp cải thiện quá trình loại bỏ dữ liệu bất thường trong đám mây điểm MLS sử dụng phương pháp nội suy đa thức bậc cao để tạo ra một bề mặt chính xác hơn từ các điểm lân cận cục bộ, giúp làm mịn và lấy mẫu lại dữ liệu nhiễu Quá trình này nâng cao độ chính xác trong ước lượng bề mặt chuẩn và độ cong của đám mây điểm, từ đó cải thiện chất lượng phân tích và xử lý dữ liệu không gian 3D.
Kỹ thuật xác định các cặp điểm tương đồng giữa hai ảnh
Để phân biệt các bề mặt hình học, cần so sánh điểm ảnh dựa trên các yêu cầu đặc tính và số liệu tốt hơn Khái niệm về một điểm 3D dưới dạng thực thể duy nhất với tọa độ Descartes đã mất đi, thay vào đó là mô tả cục bộ vị trí của điểm, cùng với các đặc điểm hình dạng hoặc tính năng hình học Để giải quyết vấn đề so sánh điểm ảnh không rõ ràng, có thể xem xét vùng lân cận của điểm ảnh đó Lý tưởng nhất, các đặc điểm của điểm ảnh sẽ dễ phân biệt giữa biểu diễn tốt và không tốt bằng cách tách riêng đặc điểm cục bộ trong quá trình biểu diễn, giúp phân biệt rõ ràng các điểm ảnh chất lượng cao.
- Phép biến đổi cố định (rigig transformations) - đó là, phép quay 3D và tịnh tiến 3D không ảnh hưởng đến kết quả ước lượng vector đặc trưng F;
- Thay đổi mật độ lấy mẫu (varying sampling density) - về nguyên tắc, việc lấy mẫu nhiều hơn hoặc ít hơn đều có cùng vector tính năng
- Nhiễu (noise) - tính năng biểu diễn điểm ảnh phải giống hoặc tương tự nhau
Hình 2.17: Các cặp điểm tương đồng giữa hai đám mây điểm ảnh
Thuật toán SURF (Speeded-Up Robust Features) là một trong những phương pháp xác định các cặp điểm tương đồng giữa hai ảnh một cách nhanh chóng, chính xác và đảm bảo chất lượng kết quả cao Đây là thuật toán tối ưu để thực hiện nhận dạng ảnh, đối chiếu đặc điểm và phân tích hình ảnh hiệu quả SURF nổi bật với khả năng xử lý nhanh và độ bền cao trước các biến đổi như thay đổi góc nhìn, ánh sáng hay kích thước, giúp nâng cao độ chính xác trong các ứng dụng xử lý ảnh chuyên nghiệp.
Features) [5] thông qua ba bước:
Bước đầu tiên trong quá trình xử lý là xác định các điểm đặc trưng xấp xỉ trên ma trận Hessian và ảnh tích lũy (Integral Image), giúp giảm đáng kể khối lượng tính toán Việc sử dụng bộ lọc hộp (box filter) để tăng tốc quá trình tính toán mang lại hiệu quả cao hơn so với việc áp dụng hàm Gaussian truyền thống, đồng thời vẫn đảm bảo độ chính xác như hình minh họa trong Hình 2.18.
Trong bước 2, chúng ta tiến hành tính toán hướng cho các điểm đặc trưng dựa trên vị trí trong không gian ảnh, như được thể hiện trong Hình 2.19 Quá trình này bao gồm xác định bán kính của hình tròn và hướng của nó xung quanh từng điểm đặc trưng Điều này giúp tạo ra mô tả chi tiết về điểm đặc trưng, trong đó bao gồm nhiều hình vuông nhỏ để rút trích thông tin từ các vùng không gian ảnh xung quanh điểm đó, nâng cao khả năng nhận diện và đối chiếu các đặc trưng trong quá trình xử lý ảnh.
Bước 3 trong quy trình là so khớp các điểm đặc trung giữa hai ảnh, như minh họa trong Hình 2.20, nhằm xác định các cặp điểm tương đồng tốt nhất Quá trình này sử dụng phương pháp đánh chỉ mục đồng thời trong khi xác định điểm đặc trưng, giúp tối ưu hóa hiệu quả bằng cách không cần tính lại các điểm đã xác định, so với các thuật toán khác.
Hình 2.18: Áp dụng Box filter, 1 bước trong quá trình tăng tốc xác định điểm đặc trưng của SURF
Hình 2.19: Mô tả đặc trưng thông qua hướng và thông tin của các vùng lân cận
Hình 2.20: Đặc trưng của điểm ảnh
Kỹ thuật xác định vị trí 3D (Pose) tương đối giữa hai đám mây
Trong hầu hết các ứng dụng như chương trình Meshlab với plugin Align, thư viện PCL sử dụng mã nguồn mở, hoặc phần mềm RGBDemo của tiến sĩ Burrus Nicolas, kỹ thuật ghép nối đám mây phổ biến hiện nay kết hợp phương pháp chọn cặp điểm ngẫu nhiên (RANSAC) với thuật toán tối ưu hóa hàm biến đổi giữa hai đám mây điểm Vị trí tương đối giữa hai đám mây chủ yếu gồm hai thành phần là ma trận xoay và ma trận tịnh tiến, giúp biến đổi đám mây này phù hợp với đám mây kia sao cho khoảng cách giữa các cặp điểm đồng nhất sau biến đổi là nhỏ nhất, đảm bảo độ chính xác cao trong quá trình ghép nối.
2.11.1 Tối ưu hóa ma trận biến đổi giữa hai đám mây điểm
Thuật toán Levenberg-Marquardt là một phương pháp tối ưu dạng lặp, bắt đầu từ tham số khởi tạo có độ lỗi cao, và sau mỗi vòng lặp, độ lỗi giảm dần nhờ vào việc điều chỉnh tham số ước lượng phù hợp hơn (damping parameter) Thuật toán yêu cầu các dữ liệu đầu vào gồm các cặp điểm tương đồng (x_i, y_i), hàm biến đổi f từ x sang y, tham số β, cùng phương pháp xác định độ lỗi S sau mỗi biến đổi để tối ưu hóa kết quả.
đạt tối thiểu Áp dụng trong trường hợp cần tính vị trí tương đối giữa hai đám mây, thì các thông tin này được ánh xạ như sau:
Các cặp điểm tương đồng (x_i, y_i) là các điểm đã xác định trên ảnh RGB thông qua thuật toán tìm đặc trưng ảnh, sau đó được ánh xạ thành điểm trong không gian 3D, giúp đảm bảo độ chính xác cao cho các tác vụ xử lý hình ảnh Quá trình này loại bỏ các điểm không xác định được chiều sâu hoặc có độ chính xác yếu, nhằm đảm bảo dữ liệu đầu vào chất lượng và phù hợp cho các phân tích và ứng dụng công nghệ thị giác máy tính.
Hàm biến đổi f trong không gian 3D là phép chiếu chuyển đổi điểm x thành điểm y’, gồm các phép tịnh tiến và xoay Hàm này sử dụng ma trận xoay, ma trận tịnh tiến cùng điểm gốc để thực hiện chuyển đổi chính xác Kết quả của hàm biến đổi là điểm y’ ứng với điểm x ban đầu, giúp định vị chính xác trong không gian 3D Phép biến đổi này rất hữu ích trong các ứng dụng thiết kế đồ họa, mô phỏng hoặc lập trình không gian 3D.
- Tham số 𝛽: chính là ma trận xoay và tịnh tiến trong không gian 3D, cũng chính là biến số cần tối ưu trong thuật toán này
- Cách xác định độ lỗi S: là hàm tính bình phương khoảng cách trong không gian 3D giữa hai điểm y và điểm y’ (x sau biến đổi)
Thuật toán được diễn giải đơn giản là tìm một ma trận biến đổi, chẳng hạn như tịnh tiến hoặc xoay, nhằm chuyển đổi đám mây điểm chứa các điểm xi sang đám mây điểm mới Quá trình này giúp thực hiện các phép biến đổi hình học một cách chính xác và hiệu quả, phục vụ cho các ứng dụng xử lý dữ liệu không gian và mô hình 3D Việc này đảm bảo rằng các điểm trong đám mây có thể dễ dàng thay đổi vị trí và hướng đi để phù hợp với mục đích phân tích hoặc hiển thị.
2.11.2 Xác định ma trận biến đổi tốt nhất [3]
Trong quá trình tính các cặp điểm tương đồng 3D, một số điểm có thể không chính xác do nằm trên các đường biên của đối tượng hoặc lệch so với vật thật, gây ảnh hưởng đến độ chính xác của khoảng cách và hướng trong không gian 3D Điều này ảnh hưởng trực tiếp đến kết quả tính toán ma trận biến đổi trong thuật toán Để xử lý vấn đề này, thuật toán Ransac thường được sử dụng nhằm loại bỏ các điểm sai lệch và nâng cao độ chính xác của mô hình 3D.
Thuật toán RANSAC (RANdom SAmple Consensus), do Fischler và Bolles công bố, là phương pháp lặp lấy mẫu ngẫu nhiên từ tập dữ liệu chứa nhiều phần tử lỗi (outlier) nhằm loại bỏ các phần tử này trong quá trình phân tích RANSAC được đánh giá là một thuật toán mạnh mẽ vì nó chọn số điểm tối thiểu cần thiết để đạt hiệu quả, thay vì dùng nhiều điểm hơn như các phương pháp khác Khi sử dụng RANSAC, hai yếu tố quan trọng cần xem xét là liệu tập mẫu tối thiểu có phù hợp và số vòng lặp cần thiết để đạt kết quả tối ưu Số lượng phần tử tối thiểu và số lần lặp lại sẽ được điều chỉnh dựa trên tỷ lệ phần tử phù hợp (inlier) và phần tử lỗi (outlier) từ các vòng lặp trước đó, giúp nâng cao độ chính xác của mô hình.
Hình 2.21: Minh họa việc dùng RANSAC áp dụng cho việc tìm đường thẳng trong
Giải thuật tìm đường thẳng ax + by + c =0 bằng thuật toán RANSAC được mô tả như sau:
Đầu vào: data - tập hợp các điểm k - số lần lặp t - ngưỡng (threshold) sai số để xác định điểm nào đó có khớp mô hình không
Đầu ra: best_model - mô hình tốt nhất best_consensus_set - tập hợp các điểm khớp với best_model best_model = null best_consensus_set = null best_num_points = 0
Lặp k lần : consensus_set = tập hợp 2 điểm ngẫu nhiên thuộc data model = mô hình đường thẳng suy ra từ 2 điểm trên
Trong quá trình xử lý dữ liệu, với mỗi điểm không thuộc tập consensus_set, tính khoảng cách từ điểm đến đường thẳng và so sánh với ngưỡng t Nếu khoảng cách nhỏ hơn t, điểm đó được thêm vào consensus_set, giúp xác định các điểm phù hợp với mô hình Số lượng phần tử trong consensus_set được cập nhật và so sánh với best_num_points để tìm ra mô hình tối ưu nhất Khi số điểm trong consensus_set lớn hơn giá trị tốt nhất trước đó, mô hình và tập consensus_set tối ưu được lưu lại, đảm bảo lựa chọn mô hình phù hợp nhất với dữ liệu.
Trả về giá trị: best_model và best_consensus_set
Thuật toán RANSAC áp dụng cho mô hình mặt phẳng α có dạng ax + by + cz + d = 0, tương tự như với mô hình đường thẳng Thay vì chọn hai điểm như trong mô hình đường thẳng, để xác định mặt phẳng cần chọn ba điểm Trong mã code, ta sử dụng hàm setModelType(pcl::SACMODEL_PLANE) để định rõ loại mô hình mặt phẳng, và setMethodType(pcl::SAC_RANSAC) để chọn phương pháp RANSAC Đồng thời, thiết lập ngưỡng khoảng cách với setDistanceThreshold(0.02) tức là threshold bằng 2cm để xác định các điểm thuộc mặt phẳng chính xác hơn.
Hình 2.22: Minh họa kết quả ghép 2 đám mây sau khi áp dụng Ransac và
Levenberg–Marquardt để xác định ma trận biến đổi
THUẬT TOÁN THỰC HIỆN
Khởi tạo đám mây điểm đầu tiên
Đám mây điểm ảnh của vật thể hiển thị trên màn hình chính là tập hợp các điểm nhỏ rời rạc, phản ánh quá trình đo khoảng cách từ camera đến bề mặt vật thể Mỗi điểm trong đám mây tượng trưng cho kết quả của phương pháp lấy mẫu ngẫu nhiên, theo thư viện PCL mặc định Quá trình này tạo ra đám mây điểm ban đầu, như hình minh họa trong Hình 3.2 dưới đây, giúp xác định chính xác hình dạng và cấu trúc của vật thể trong không gian 3D.
Hình 3.2 trình bày luồng lưu đồ thuật toán khởi tạo đám mây điểm ban đầu, trong đó đám mây điểm này chỉ bao gồm các phần bề mặt mà camera có thể nhìn thấy, còn những phần khuất không được hiển thị Vấn đề này yêu cầu giải quyết bằng cách ghép và sắp xếp các đám mây điểm từ nhiều vị trí khác nhau để bổ sung các phần còn thiếu, tạo thành một mô hình hoàn chỉnh hơn.
Hình 3.3: Đám mây điểm ảnh thực tế thu được từ camera và dữ liệu của đám mây
Giảm số lượng điểm ảnh cho mỗi đám mây điểm ảnh
Với số lượng điểm ảnh trên 300.000 điểm, tốc độ xử lý rất chậm, gây ảnh hưởng đến hiệu suất hoạt động của thiết bị Để khắc phục vấn đề này, chúng tôi đã giảm số lượng mẫu xuống, nhằm đảm bảo số điểm ảnh còn dưới 50.000, từ đó nâng cao hiệu quả xử lý và trải nghiệm người dùng.
Chụp và lưu đám mây đầu tiên Gán đám mây đầu tiên thành đám mây toàn cục
Lưu đồ cho quá trình thực hiện giảm số lượng điểm ảnh dùng Voxel Grid trong PCL như Hình 3.4
Hình 3.4: Lưu đồ lọc đám mây dùng Voxel Grid
Tìm điểm đặc trưng của đám mây
Trong quá trình phân tích đám mây điểm, ta xác định các điểm đặc trưng đại diện cho các tính năng hoặc đối tượng chính trong đám mây điểm ảnh Việc này giúp phân loại và nhận diện các đối tượng một cách chính xác Sau đó, ta so sánh từng cặp điểm đặc trưng giữa hai đám mây điểm để đánh giá mức độ tương đồng hoặc khác biệt giữa chúng Phương pháp này là bước quan trọng trong các ứng dụng như nhận dạng đối tượng, quét 3D và xử lý hình ảnh.
Lưu đồ thuật toán tìm đặc trưng của một đám mây được trình bày rõ ràng trong Hình 3.5, giúp xác định các điểm đặc trưng quan trọng cho quá trình phân tích dữ liệu Quá trình này kết quả sẽ được lưu lại để chuẩn bị cho việc so sánh và tìm cặp điểm tương đồng khi thu thập đám mây điểm thứ hai kế tiếp Khi có sự xuất hiện của đám mây mới, thuật toán sẽ thực hiện lại quá trình tìm điểm tương đồng từ đầu nhằm xác định và lưu trữ các điểm đặc trưng phù hợp của đám mây mới, đảm bảo tính nhất quán trong phân tích dữ liệu đám mây điểm.
Tăng Leafsize 1mm Đám mây đã lọc
Hình 3.5: Lưu đồ tìm điểm đặc trưng của đám mây
Trong đó: k là phổ của điểm p k
Tìm điểm tương đồng giữa hai đám mây
Xét hai đám mây điểm ảnh thu được từ hai vị trí của robot mô tả như sau Robot được đặt cách bức tường 1 mét
Camera Kinect có góc mở tối đa theo chiều ngang là 58 độ, vì vậy để đảm bảo vùng trùng lặp giữa các khung hình hoặc đám mây điểm ảnh, robot chỉ nên xoay tối đa dưới 58 độ Điều này giúp duy trì liên tục và chính xác trong quá trình quét và xử lý dữ liệu.
Trong đề tài này, tôi chọn giá trị góc ban đầu là 50 độ để đảm bảo vùng trùng lặp giữa hai đám mây điểm, như thể hiện trong Hình 3.7 Đám mây thứ nhất được chụp khi robot quay trái 25 độ so với phương vuông góc của bức tường, trong khi đám mây thứ hai được chụp khi robot quay phải 50 độ Quá trình quay của robot được giám sát chính xác bởi cảm biến góc quay IMU gắn trên robot, giúp đảm bảo độ chính xác trong quá trình thu thập dữ liệu Lưu đồ điều khiển robot thực hiện việc quay được thiết kế để đảm bảo quá trình này diễn ra một cách mạch lạc và hiệu quả.
Hình 3.6 trình bày về vùng 50 0, cho thấy khoảng cách và vị trí đặt robot như đã mô tả, giúp xác định chính xác vị trí của các điểm quang học Vùng trùng lặp giữa hai đám mây điểm ảnh được xác định dựa trên sự so sánh vị trí và khoảng cách của robot, như minh họa trong Hình 3.7 Các phân tích này giúp tối ưu hóa quá trình quét và xử lý dữ liệu hình ảnh, nâng cao độ chính xác của hệ thống.
Tìm vùng lân cận của điểm p q
Tìm k giữa điểm p q với p k xung quanh
Không phải điểm đặc trưng
Xác định điểm đặc trưng
k thay đổi đột ngột? Đúng Sai
Hình 3.6: Lưu đồ điều khiển robot xoay phải 50 o
Hình 3.7: Vùng trùng lắp giữa hai đám mây điểm ảnh
Camera Kinect có góc mở 58° theo chiều ngang, giúp xác định vùng giao của robot sau khi xoay phải 50° Sơ đồ bố trí hai góc mở của camera tại hai vị trí khác nhau được thể hiện rõ trong Hình 3.8, minh họa chính xác phạm vi cảm biến và khả năng quan sát của hệ thống.
Chụp và lưu đám mây 1
Chụp và lưu đám mây 2 Đúng
Hình 3.8: Tìm độ rộng của vùng giao nhau giữa hai frame ảnh
Trong đó: x : bề ngang của vùng giao nhau giữa 2 vị trí robot y : góc giao nhau giữa 2 vị trí robot l : khoảng cách từ camera (robot) đến bức tường
Góc mở của Kinect là 44 độ theo chiều dọc thẳng đứng, giúp mở rộng phạm vi cảm biến Camera được gắn trên robot ở độ cao 45cm, tạo điều kiện thuận lợi cho việc quét và nhận diện môi trường Dựa trên các thông số này, ta tính toán chiều cao của vùng giao nhau giữa hai vị trí của robot để đảm bảo phạm vi cảm biến phù hợp Sơ đồ bố trí hai góc mở của camera theo hai vị trí khác nhau được mô tả chi tiết trong Hình 3.9, giúp tối ưu hóa quá trình quét và lập bản đồ không gian.
- h – độ cao từ tâm camera đến giới hạn trên của góc mở camera
- h’E0mm - độ cao tính từ mặt đất đến tâm của camera
Từ Phương trình (3.2) và (3.3), ta tính được diện tích của vùng giao nhau giữa hai vị trí robot như sau:
Trong đó: s - diện tích mặt phẳng trùng lắp giữa hai vị trí của robot
Trong quá trình sử dụng thư viện fpfh.h trong PCL để xác định số điểm ảnh tương đồng giữa hai đám mây điểm ảnh, bán kính tìm kiếm điểm tương đồng r fpfh được đặt là 200mm thay vì 140mm như đã tính toán ở phương trình (3.2) Việc điều chỉnh bán kính này giúp đảm bảo độ an toàn và chính xác cao hơn trong quá trình tìm kiếm các điểm ảnh phù hợp giữa các đám mây điểm.
Lưu đồ cho quá trình tìm cặp điểm tương đồng như sau:
Hình 3.10: Lưu đồ xác định cặp điểm tương đồng giữa hai đám mây
Tìm ma trận biến đổi giữa hai đám mây điểm ảnh
Sử dụng thư viện PCL để tìm kiếm ma trận biến đổi xoay trực giao R dựa trên dữ liệu điểm ảnh Quá trình này giúp xác định chính xác hướng xoay của đối tượng trong không gian 3D Kết quả thu được dịch vụ này được trình bày rõ ràng trên màn hình máy tính, như minh họa trong Hình 3.11, mang lại cái nhìn trực quan về kết quả phân tích biến đổi xoay trực giao trong mô hình 3D.
Hình 3.11: Hàm biến đổi điểm ảnh ở đám mây gốc đến điểm ảnh ở đám mây đích
Ghép nhiều đám mây điểm khác nhau sử dụng thuật toán SAC-IA và
Lưu đồ thực hiện ghép nhiều đám mây được trình bày như Hình 3.12 bên dưới
Using the SAC-IA and ICP libraries in PCL enables efficient multi-cloud registration Proper configuration of parameters such as min_sample_distance, max_correspondence_distance, and nr_iterations is essential for optimal alignment accuracy These libraries facilitate precise point cloud merging by fine-tuning these key settings during the registration process.
Dựa vào Phương trình (3.2), nhập vào giá trị khoảng cách nhỏ nhất để tìm kiếm và sắp xếp max_correspondence_distance bằng 200mm
Với vị trí của robot như mô tả trong mục 3.4 và góc mở của camera nhìn từ trên xuống (như trong Hình 3.13), tìm thông số nr_iterations như sau:
Hình 3.13: Bề rộng của frame ảnh khi robot cách tường 1 mét
Với kết quả ở Mục 0, chọn :
_ 173.66 min _ sample _ distance 6 nr iterations (3.7)
Để đảm bảo khả năng ghép tốt nhất, ta chọn số lượt lặp thực tế (nr_iterations) lớn hơn giá trị tính toán từ phương trình (3.7), cụ thể là 200 lần lặp Sau đó, nhập các giá trị của min_sample_distance, max_correspondence_distance và nr_iterations vào mã nguồn chương trình để thực hiện ghép hai đám mây điểm một cách chính xác và hiệu quả.
TemplateAlignment () : min_sample_distance_ (0.006f), max_correspondence_distance_ (0.200f*0.200f), nr_iterations_ (200)
// Intialize the parameters in the Sample Consensus Intial Alignment
(SAC-IA) algorithm sac_ia_.setMinSampleDistance (min_sample_distance_); sac_ia_.setMaxCorrespondenceDistance (max_correspondence_distance_); sac_ia_.setMaximumIterations (nr_iterations_);
Chiếu đám mây xuống nền nhà
Dữ liệu đám mây 3D từ không gian được chiếu xuống mặt phẳng nền nhà để tạo hình chiếu 2D của vật thể Camera được đặt cách mặt đất 45cm, và phép biến đổi khử độ cao (trục x) giúp thực hiện phép chiếu điểm ảnh xuống mặt phẳng nền nhà Đầu tiên, mặt phẳng nền nhà trong đám mây điểm ảnh được xác định bằng thư viện Plannar segmentation trong PCL, nhằm tách các điểm ảnh có cấu trúc phẳng Tiếp theo, thuật toán RANSAC được sử dụng để chọn ra tập điểm lớn nhất phù hợp với mặt phẳng nền nhà Lược đồ thực hiện quá trình chiếu đám mây xuống nền nhà đã được trình bày rõ trong Hình 3.15, đảm bảo thực hiện chính xác và hiệu quả.
Hình 3.14: Chiếu một điểm ảnh xuống nền nhà
KẾT QUẢ
Thi công phần cứng và phần mềm sử dụng
Robot (hình chụp thực tế trình bày trong Hình 4.1) được thiết kế với phần động lực di chuyển dạng Omni 3 bánh hình tam giác, bố trí lệch nhau 120 độ giúp robot dễ dàng xoay tại chỗ Kết cấu này cho phép điều khiển robot di chuyển theo phương thẳng hoặc xoay trái, phải thông qua việc điều khiển đồng bộ ba động cơ của ba bánh xe Omni Một số thông số cơ bản của robot được trình bày trong Bảng 4.1, góp phần tối ưu hóa hiệu suất vận hành và điều khiển robot.
Hình 4.1: Robot di động được dùng trong đề tài
Hai phần mềm được sử dụng chính trong đề tài là:
- Visual Studio 2010 [http://www.visualstudio.com/]: dùng để viết code lập
- Point Cloud Library ver1.6 [http://pointclouds.org/]: thư viện đồ sộ hỗ trợ giao tiếp Kinect và các thuật toán liên quan đến depth-camera
Bảng 4.1: Thông số cơ bản của robot di động
Bán kính bánh xe 16 cm
Chiều cao (tính đến tâm Kinect) 45 cm
Encoder nội của động cơ 200 xung / vòng
Board điều khiển Arduino Pro Atmega328
Vận tốc (dài) tối đa 1.2 m/phút
Ngoài ra, còn các phần mềm khác hỗ trợ thêm Point Cloud Library hoạt động hoàn chỉnh như OpenNI, Github, Eigen, Boost, Cmake…
Bạn có thể điều khiển robot từ máy tính bằng cách gửi mã lệnh qua board Arduino Pro, ví dụ như mã “F1” để giúp robot đi về phía trước với vận tốc cấp độ 1, tương đương 1.2m/phút Arduino sẽ điều khiển tốc độ của ba động cơ sử dụng kỹ thuật PWM để đảm bảo robot tiến về phía trước một cách chính xác Các mã lệnh điều khiển đã được thiết lập sẵn và trình bày rõ ràng trong Bảng 4.2, trong khi thông số cấu hình giao tiếp giữa máy tính và robot được thể hiện trong Bảng 4.3, giúp đảm bảo quá trình điều khiển diễn ra mượt mà và chính xác.
Hình 4.2: Board điều khiển robot và máy tính sử dụng trong đề tài
Bảng 4.2: Bảng mã lệnh điều khiển cơ bản
Trong bài viết này, F1 Robot tiến về phía trước với tốc độ 1,2 m/phút, trong khi F2 Robot di chuyển cùng hướng với tốc độ 0,5 m/phút Ngược lại, B1 Robot lùi về phía sau với tốc độ 1,2 m/phút, còn B2 Robot di chuyển lùi với tốc độ chậm hơn là 0,5 m/phút Các thông số về tốc độ của các robot này giúp phân tích hành trình và khả năng tương tác của chúng trong hệ thống tự động hóa.
Rx Robot xoay phải với góc độ là x
Bảng 4.3: Thông số cài đặt giao tiếp cổng USB COM
Thông số Giá trị cài đặt
Giảm số lượng điểm ảnh
Sau khi chụp và lưu đám mây điểm ảnh đầu tiên, quá trình lọc được thực hiện liên tiếp với kích thước Leafsize tăng dần từ 1mm, mỗi lần lặp tăng thêm 1mm, nhằm giảm số lượng điểm ảnh trong đám mây Quá trình này giúp tối ưu hóa dữ liệu, đồng thời duy trì các đặc trưng chính của đám mây điểm, như đã được thể hiện rõ trong Bảng 4.4 dưới đây.
Bảng 4.4: Bảng số lượng điểm ảnh mỗi frame sau mỗi lần lọc
Số điểm ảnh Ảnh gốc 307200
Lọc 1mm x 1mm x 1mm 251365 Lọc 2mm x 2mm x 2mm 237717 Lọc 3mm x 3mm x 3mm 128294 Lọc 4mm x 4mm x 4mm 78267 Lọc 5mm x 5mm x 5mm 50002 Lọc 6mm x 6mm x 6mm 36457
Ghi chú : số liệu ở trên được thực hiện đo đạc với máy tính cá nhân Dell XPS
Sau khi thực nghiệm lọc với nhiều giá trị khác nhau, số lượng điểm ảnh giảm đáng kể và tốc độ xử lý được nâng cao rõ rệt Tuy nhiên, đám mây điểm ảnh trở nên thưa thớt hơn, làm giảm số lượng cặp điểm tương đồng ở bước trên Vì vậy, trong đề tài này, chúng tôi chọn giá trị lọc phù hợp là 6mm để cân đối giữa hiệu quả lọc và giữ lại chi tiết quan trọng.
Thực hiện ghép hai đám mây điểm ảnh với góc xoay là 50 o
Trong quá trình ghép hai đám mây điểm ảnh, các dữ liệu được thu trong không gian phòng rộng 4m x 4m, sử dụng các vật đánh dấu như ghế nhựa để định vị Đám mây điểm màu đỏ được thu khi robot xoay phải 50 độ so với vị trí ban đầu của đám mây màu xanh lá cây, khiến hai đám mây này bị lệch nhau khi biểu diễn trên cùng một hệ tọa độ của camera Sự chồng chéo và lệch của các đám mây này phản ánh chính xác góc quay 50 độ của robot, phù hợp với kết quả thu thập dữ liệu.
Hình 4.3: Hai đám mây điểm ảnh và vật mốc tự nhiên (ghế) trước khi ghép
Ma trận biến đổi từ đám mây đích (ảnh phải, màu đỏ) sang đám mây nguồn (ảnh trái, màu xanh) được xác định dựa trên Hình 4.4 Dựa vào ma trận này và chỉ số Fitness Score, các tham số phù hợp được lựa chọn để cài đặt cho thuật toán ICP nhằm ghép hai đám mây điểm lại với nhau Kết quả quá trình ghép đám mây điểm đã được thể hiện rõ trong Hình 4.5 và Hình 4.6, phản ánh chính xác sự phù hợp của các đám mây sau khi thực hiện thuật toán. -**Sponsor**Bạn đang tìm cách tối ưu hóa bài viết của mình cho SEO? Hãy để [Soku AI](https://pollinations.ai/redirect-nexad/i92NxM3Q?user_id=983577) giúp bạn! Chúng tôi có thể trích xuất những câu quan trọng nhất từ đoạn văn của bạn, đảm bảo chúng chứa đựng ý nghĩa mạch lạc và tuân thủ các quy tắc SEO Soku AI, được đào tạo bởi các chuyên gia quảng cáo Facebook và Meta, hiểu cách làm cho nội dung của bạn nổi bật.
Hình 4.5: Ghép hai đám mây điểm ảnh dùng SAC-IA và ICP
Hình 4.6: Hai đám mây điểm ảnh được ghép thành công với vật mốc tự nhiên là chiếc ghế
Thực hiện ghép hai đám mây khi robot tịnh tiến về phía trước 47 4.5 Thực hiện ghép liên tiếp nhiều đám mây và chiếu xuống nền tạo bản
Khi robot tiến về phía trước theo cùng hướng ban đầu, ảnh chụp sau khi di chuyển sẽ giống hệt ảnh trước về mặt nội dung, nhưng theo góc nhìn hình học, ảnh sau sẽ phóng to hơn và giữ kết cấu giống như trong Hình 4.7 Trong trường hợp robot tiến gần đến một bề mặt phẳng lớn, ví dụ như tường chắn hết vùng nhìn của robot, thì ảnh sau khi tịnh tiến sẽ chỉ là một phần nhỏ của ảnh ban đầu, như minh họa trong Hình 4.8.
Trong đề tài này, thực nghiệm được thực hiện với khoảng cách tịnh tiến phía trước của robot là 1 mét từ vị trí ban đầu, trong khi khoảng cách từ robot đến bức màn xa nhất là 2,5 mét Kết quả của thử nghiệm được trình bày rõ ràng trong Hình 4.9, giúp đánh giá chính xác khả năng di chuyển và tương tác của robot trong môi trường thử nghiệm Các kết quả này cung cấp dữ liệu quan trọng để tối ưu hóa quá trình điều khiển robot trong các ứng dụng tự động hóa.
Hình 4.7: Vật mốc ở xa (ảnh trái) và vật mốc sau khi robot tịnh tiến đến gần (ảnh phải)
Hình 4.8: Frame sau khi tịnh tiến (ảnh phải) là một phần của frame trước (ảnh trái) a) b)
Hình 4.9: Hai đám mây điểm ảnh được ghép thành công trong trường hợp robot
Hình 4.10: Hai đám mây điểm ảnh được ghép thành công trong trường hợp robot tịnh tiến về phía trước có vật mốc
4.5 Thực hiện ghép liên tiếp nhiều đám mây và chiếu xuống nền tạo bản đồ 2D
Trong nghiên cứu này, chúng tôi kết hợp hai phương pháp robot xoay và tịnh tiến để thực hiện ghép liên tiếp nhiều đám mây điểm trong môi trường trong nhà, giúp tạo ra đám mây toàn cục (3D) và bản đồ 2D trên mặt nền Quá trình ghép này được thực hiện trên bảy đám mây điểm tương ứng với các vị trí đã mô tả, tuy nhiên, do thời gian xử lý chậm của quá trình, các bước trung gian như hiển thị kết quả ghép từng cặp đám mây bị bỏ qua để tập trung vào hiển thị kết quả cuối cùng sau khi chiếu xuống nền nhà, nhằm nâng cao hiệu quả và chính xác trong việc lập bản đồ nội thất trong nhà.
Hình 4.11: Các vị trí dừng chụp đám mây điểm ảnh cho trường hợp ghép liên tiếp
Hình 4.12: Kết quả ghép liên tiếp nhiều đám mây và chiếu xuống mặt phẳng nền
Dựa trên kết quả này, việc xây dựng bản đồ 2D khi robot di chuyển đã thành công mà không phụ thuộc vào độ chính xác của cảm biến hoặc sự phức tạp của môi trường xung quanh Phương pháp này kết hợp với việc tách chọn đặc trưng của các đối tượng 3D trong môi trường giúp giải quyết triệt để vấn đề định vị cho robot di động dựa vào các vật mốc tự nhiên.
5.2 Hướng phát triển của đề tài
Kết quả của quá trình xây dựng bản đồ 2D thường là một dải điểm ảnh thay vì một đường thẳng, gây ra thách thức trong việc nhận diện chính xác các đường bao Để đối phó với vấn đề này, tác giả đề xuất sử dụng thuật toán RANSAC nhằm xử lý hiệu quả dữ liệu nhiễu và xác định các đường thẳng chính xác hơn trong bản đồ 2D Áp dụng thuật toán RANSAC giúp nâng cao độ chính xác trong quá trình xây dựng bản đồ, từ đó cải thiện kết quả cuối cùng.
Hiện tại, tốc độ xử lý vẫn còn chậm do số lượng điểm ảnh quá lớn và khả năng tính toán chưa đủ nhanh Để khắc phục vấn đề này, tác giả đề xuất tiếp tục tối ưu hóa thuật toán ghép nhiều đám mây điểm dựa trên số lượng cặp điểm tương đồng, nhằm nâng cao hiệu quả và tốc độ xử lý.
Một nhược điểm của quá trình xây dựng bản đồ là độ chính xác còn tồn tại sai số, do các yếu tố như độ sâu của camera Kinect và cách lấy dữ liệu này Khi sử dụng thuật toán Ransac để chuyển đổi dữ liệu điểm ảnh thành đường thẳng, độ chính xác của bản đồ cần được xem xét kỹ lưỡng để đảm bảo kết quả chính xác hơn.
PHỤ LỤC 1: CHƯƠNG TRÌNH GIAO TIẾP MÁY
/* - Header giao tiep voi Robot Luan van tot nghiep cua Dao Hong Phong qua cong USB Phan mem lap trinh: Visual Studio 2010
Vi dieu khien trong ROBOT : Atemega64
#include using namespace std;
DWORD dwBytesRead %; unsigned int i=1; unsigned int n = 25; char szBuff[25 + 1] = {0}; char Sonar[12 + 1] = {0}; float limit_1, limit_2, mul_1, mul_2;
{ szBuff[0]=0; if(!ReadFile(hSerial, szBuff, 1, &dwBytesRead, NULL))
{ std::cout