GIỚI THIỆU CHUNG
Đặt vấn đề
Cuộc sống đang ngày càng phát triển cùng với những nhu cầu của con người về công nghệ hiện đại có thể thay thế một phần sức lao động của con người Trí tuệ nhân tạo không chỉ đơn thuần là một phần mềm máy tính có tính logic mà chúng còn chứa đựng cả trí tuệ của con người Chúng biết suy nghĩ, lập luận để giải quyết các vấn đề, có thể giao tiếp với con người Chính vì những tính năng vượt trội này mà trí tuệ nhân tạo có lợi ích vô cùng lớn Trí tuệ nhân tạo đã góp phần không nhỏ để đáp ứng nhu cầu hiện nay của con người Các bán toán được con người đặt ra nhằm giải quyết các vấn đề thiết yếu trong cuộc sống như ứng dụng trí tuệ nhân tạo trong y tế (phát hiện sớm u não, ung thư, ), ứng ụng trong kinh tế (dự đoán chứng khoán, các mô hình dự đoán thị trường, giá cả), ứng dụng trong học tập hay rất nhiều ứng dụng thiết thực khác nữa trong đời sống.
Máy bay không người lái – một thiết bị thông minh được phát minh ra đã giúp giải quyết rất nhiều vấn đề con người gặp phải Máy bay không người lái với thiết kế nhỏ gọn có thể bay ở nhiều độ cao khác nhau kết hợp với các thiết bị thông minh như camera, GPU, … được ứng dụng trong nhiều lĩnh vực của cuộc sống như trong quân sự hay y tế giúp tìm kiếm cứu nạn, cảnh báo cháy nổ, giám sát nơi công cộng hay ở những địa hình khó khăn mà con người không tới được, trong phim ảnh, nông nghiệp, công nghiệp, giao thông liên lạc, … máy bay không người lái giúp con người có cái nhìn tổng quát từ trên không Cùng với sự phát triển của nhu cầu con người với máy bay không người lái, các nghiên cứu luôn luôn được tìm kiếm không ngừng để áp dụng giải quyết các bài toán liên quan.
Năm 2019 với việc Trái Đất ngày càng nóng lên, khí hậu biến đổi dần đến ngưỡng chịu đựng của con người và có khi còn vượt quá mức chịu đựng đó. Theo thống kê của Đoàn giám sát từ tháng 7 năm 2014 đến tháng 7 năm 2018 đã có trung bình 3287 vụ cháy, nổ xảy ra mỗi năm [1] Có rất nhiều vụ cháy nổ xảy ra vô cùng thương tâm như gần đây nhất là vụ cháy rừng ở Hà Tĩnh, cháy rừng lớn ở Úc, Amazon, …Vấn đề đặt ra là làm cách nào để phát hiện được cháy rừng sử dụng trí tuệ nhân tạo nhanh chóng để đưa ra cảnh báo và phát hiện được trên diện rộng?
Tiềm năng của thiết bị bay không người lái vẫn còn rất lớn, nhưng hiện tại, các triển khai của thiết bị bay này trong các môi trường dân cư vẫn còn nhiều trở ngại.Các ứng dụng như vận chuyển bưu kiện, giám sát hay quay phim đều yêu cầu rất cao sự an toàn và tin cậy Với việc tích hợp nhận dạng đám cháy trên thiết bị bay không người lái và yêu cầu cao về sự chính xác khi định vị là một yêu cầu cần thiết Chính vì vậy các nghiên cứu trong luận văn của em dưới đây đã kết hợp việc ứng dụng trí tuệ nhân tạo giúp giải quyết bài toán về nhận dạng và định vị trên thiết bị bay không người lái.
Tổng quan về thiết bị bay không người lái
Thiết bị bay không người lái hay UAV (Unmanned Aerial Vehicle), thường được gọi là drone và từ đây gọi tắt là thiết bị bay, là một máy bay không có phi công, phi hành đoàn hoặc hành khách trên máy bay UAV là một phần của một hệ thống máy bay không người lái (UAS – unmanned aircraft system), ngoài UAV còn có thêm các thành phần khác là một trạm điều khiển mặt đất, một hệ thống truyền thông và các thiết bị hỗ trợ Tiến trình bay của UAV có thể được thực hiện bởi một người điều khiển từ xa, tự động bay dưới hỗ trợ của con người, hoặc tự động bay hoàn toàn.
Thiết bị bay đã được phát triển từ thế kỷ XX, cho các mục đích quân sự có tính chất quá nguy hiểm, không phù hợp cho con người Theo thời gian, với sự phát triển trong công nghệ điều khiển và chi phí sản xuất giảm, trong thế kỷ XXI, các ứng dụng của thiết bị bay đã phát triển nhanh chóng và bao quát trên nhiều lĩnh vực khác nhau như quay phim, vận chuyển, nông nghiệp, giám sát, khoa học và giải trí.
Dựa theo khả năng tự động của thiết bị bay, thiết bị bay có thể được chia thành hai loại là điều khiển từ xa hoặc tự động bay Một số thiết bị bay được điều khiển từ xa trong hầu hết quá trình thực hiện tác vụ, nhưng có thêm chức năng tự động trở về điểm xuất phát Ngoài ra còn có OPVs (Optionally Piloted Vehicle), có thể hoạt động với phi công điều khiển, hoặc trở thành UAV khi không có phi công. Dựa theo độ cao và phạm vi hoạt động, diễn đàn về các hệ thống không người lái ParcAberporth chia thiết bị bay thành các loại:
• Loại cầm tay: độ cao 600 m, phạm vi 2 km
• Loại tầm gần: độ cao 1500 m, phạm vi 10 km
• Mẫu của NATO: độ cao 3000 m, phạm vi 50 km
• Loại chiến lược: độ cao 5500 m, phạm vi 160 km
• MALE (medium altitiude, long endurance): độ cao 9000 m, phạm vi trên 200 km
• HALE (high altitude, long endurance): độ cao 9100 m, không giới hạn phạm vi
• Vận tốc siêu thanh: độ cao 15200 m, phạm vi trên 200 km Dựa theo khối lượng, thiết bị bay được chia thành các loại:
• Micro air vehicle (MAV): thiết bị bay siêu nhỏ, loại nhỏ nhất có thể ít hơn 1g
• Miniature UAV, còn được gọi là SUAS (small Unmanned Aircraft Systems): thiết bị bay cỡ nhỏ, khối lượng từ dưới 2 kg đến dưới 25 kg
• Heavier UAV: Thiết bị bay loại lớn
Hình 1 1 Các trục chính của một thiết bị bay
Một máy bay có thể quay theo ba trục tự do (Hình 1 1) gồm:
• Trục yaw: mũi máy bay sẽ di chuyển sang trái hoặc phải
• Trục pitch: mũi máy bay di chuyển lên hoặc xuống
• Trục roll: trục chạy dọc từ mũi xuống đuôi máy bay
Ba trục yaw, pitch, roll có gốc tại gốc của vector trọng lực máy bay Khi máy bay di chuyển thì ba trục này cũng di chuyển theo.
Giới thiệu trí tuệ nhân tạo và thi giác máy tính
1.3.1 Khái niệm trí tuệ nhân tạo
Trí tuệ nhân tạo hay trí thông minh nhân tạo (Artificial Intelligence – viết tắt là AI) là một ngành thuộc lĩnh vực khoa học máy tính Là những thiết bị có trí tuệ do con người lập trình tạo nên với mục tiêu giúp máy tính có thể tự động hóa các hành vi thông minh như con người ví dụ như: biết suy nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp do hiểu ngôn ngữ, tiếng nói, biết học và tự thích nghi, …
1.3.2 Ứng dụng của trí tuệ nhân tạo
Trí tuệ nhân tạo được chia làm 4 loại chính:
Công nghệ trí tuệ nhân tạo phản ứng: Công nghệ trí tuệ nhân tạo phản ứng có khả năng phân tích những động thái khả thi nhất của chính mình và của đối thủ, từ đó, đưa ra được giải pháp tối ưu nhất.
Một ví dụ là Deep Blue, chương trình tự động chơi cờ vua của IBM đã đánh bại kì thủ thế giới Garry Kasparov vào những năm 1990 Công nghệ AI của Deep Blue có thể xác định các nước cờ và dự đoán những bước đi tiếp theo Nó không có ký ức và không thể sử dụng những kinh nghiệm trong quá khứ để tiếp tục huấn luyện trong tương lai.
Công nghệ trí tuệ nhân tạo với bộ nhớ hạn chế: Các hệ thống trí tuệ nhân tạo này có thể sử dụng những kinh nghiệm trong quá khứ để đưa ra các quyết định trong tương lai Một số chức năng ra quyết định này có mặt trong các loại thiết bị không người lái như xe, thiết bị bay không người lái hoặc tàu ngầm Kết hợp các cảm biến môi trường xung quanh công nghệ trí tuệ nhân tạo này có thể dự đoán được tình huống và đưa ra những bước hành động tối ưu cho thiết bị Sau đó chúng sẽ được sử dụng để đưa ra hành động trong bước tiếp theo.
Ví dụ như đối với một thiết bị bay không người lái giao hàng của Google như trên Hình 1 2, nhiều cảm biến được trang bị xung quanh thiết bị bay để theo dõi môi trường xung quanh giúp thiết bị tính toán khoảng cách với các vật cản phía trước, công nghệ trí tuệ nhân tạo sẽ dự đoán khả năng xảy ra va chạm, từ đó điều chỉnh để tránh vật cản.
Lý thuyết trí tuệ nhân tạo: Công nghệ AI này có thể học hỏi cũng như tự suy nghĩ, sau đó áp dụng những gì học được để thực hiện một việc cụ thể Hiện nay, công nghệ AI này vẫn chưa trở thành một phương án khả thi.
Tự nhận thức: Lúc này cả hệ thống trí tuệ nhân tạo có ý thức về bản thân, có ý thức và hành xử như con người Chúng thậm chí còn có cảm xúc và hiểu được cảm xúc của những người khác Tuy nhiên, loại công nghệ trí tuệ nhân tạo này vẫn chưa khả thi.
Hình 1 2 Thiết bị bay không người lái ứng dụng AI giao hàng của Google
1.3.3 Khái niệm thị giác máy tính
Thị giác máy tính là một lĩnh vực kết hợp một trong những lĩnh vực của khoa học máy tính và nghiên cứu trí tuệ nhân tạo bao gồm các phương pháp thu nhận, kỹ thuật số, phân tích và nhận dạng các hình ảnh và video, nói chung là dữ liệu đa chiều từ thế giới thực để cho ra các thông tin số hoặc biểu tượng.
Thị giác máy tính kế thừa và kết hợp các kiến thức của học máy và khoa học máy tính giúp cho máy tính có khả năng nhìn và hiểu giống như con người Và có một số trường hợp chỉ có máy tính mới thực hiện được mà con người không thể, do đó thị giác máy tính đang ngày càng phát triển.
Hình 1 3 Tổng quan về thị giác máy tính
Hình 1 3 đã khái quát mối quan hệ giữa những vấn đề liên quan đến Thị giác máy tính cụ thể có trí tuệ nhân tạo, học máy, xử lý ảnh, xử lý tín hiệu, kết hợp các thông tin của cảm biến ngoài và đồ họa máy tính.
1.3.4 Ứng dụng của thị giác máy tính
Dựa vào đặc điểm, cách thức ta có một số ứng dụng phổ biến của thị giác máy tính được trình bày ở Hình 1.4 dưới đây.
Hình 1.4 Ứng dụng của Thị giác máy tính [2]
Dựa vào đặc điểm, hướng ứng dụng thực tiễn, thị giác máy tính có một số ứng dụng phổ biến như sau: phân loại hình ảnh, nhận dạng hình ảnh, theo dõi chuyển động, ứng dụng không chỉ camera 2D mà còn ứng dụng trong xử lý hình ảnh thị giác 3D.
1.3.4.1 Phân loại hình ảnh (Object classification)
Giống như bài toán phân lớp trong học máy nhưng thị giác máy tính chỉ tập trung xử lý phần hình ảnh Làm cách nào để có thể phân loại một bức ảnh là ảnh người hay cây từ những dữ liệu cho trước? Để làm được điều này chúng ta phải chuẩn bị dữ liệu muốn phân loại và áp dụng mạng nơ-ron tích chập (CNN - Convolution Neural Network) vô cùng phổ biến để dạy máy biết đâu là loại nào để phân loại theo đúng mục đích yêu cầu.
Ví dụ: Phân loại khối u não, phân loại các loại hoa, … hay ví dụ về một số dữ liệu được huấn luyện để phân loại như Hình 1.5 dưới dây của CIFAR 10.
Hình 1.5 Ví dụ về phân loại hình ảnh của dữ liệu CIFAR 10 [3]
Bài toán phân loại hình ảnh có một số hạn chế, khi mà bài toán chỉ hoạt động tốt khi chỉ có một đối tượng cần phân loại trong bức ảnh Nếu có nhiều hơn một đối tượng và độ phức tạp của bức ảnh nhiều lên thì bài toán này không còn hoạt động tốt.
1.3.4.2 Phân loại hình ảnh với vị trí (Image classification with localization)
Bài toán này tương tự như phân loại hình ảnh nhưng thêm một nhiệm vụ là tìm kiếm vị trí của vật cần phân loại trong bức ảnh Chỉ ra chi tiết xem vật đó ở đâu và phân loại Đây là một ứng dụng cũng khá là phổ biến Hình 1.6 dưới đây sẽ chỉ rõ thế nào là xác định vị trí.
Hình 1.6 Bài toán xác định vị trí đối tượng
Hệ thống định vị cho thiết bị bay
Định vị cho thiết bị bay là một tiến trình mà robot lập kế hoạch để có thể đi tới vị trí chỉ định an toàn và nhanh chóng Tiến trình này chịu ảnh hưởng lớn bởi môi trường và vị trí hiện tại của robot Để thực hiện định vị thành công, thiết bị bay phải tự nhận thức được trạng thái của bản thân robot, bao gồm vị trí, vận tốc, hướng quay của nó, cùng với vị trí của điểm đầu vào điểm cuối hành trình. Đến nay, các giải pháp định vị cho thiết bị bay thường được chia thành ba loại chính: định vị theo quán tính, định vị theo vệ tinh và định vị theo thị giác [6].Tuy nhiên, không có phương pháp nào là vượt trội hoàn toàn, mỗi tác vụ khác nhau sẽ có một phương pháp định vị thích hợp.
1.4.1 Hệ thống định vị theo quán tính
Thông thường, hệ thống định vị cho thiết bị bay có thể lấy thông tin từ cả cảm biến ngoại vi (Exteroceptive - thu thông tin về môi trường như camera, áp suất, cảm biến khoảng cách laser, siêu âm) hoặc các cảm biến nội vi (Proprioceptive - thu thông tin bản thân robot như cảm biến quán tính, GPS) [7] Các cảm biến truyền thống được sử dụng trong định vị cho thiết bị bay chủ yếu là GPS và cảm biến quán tính.
Cảm biến quán tính hay thiết bị đo lường quán tính (IMU – Inertial Measurement Unit) là một thiết bị điện tử, bao gồm gia tốc kế, con quay hồi chuyển, cung cấp thông tin về gia tốc và tốc độ góc của thiết bị, ngày nay thường được bổ sung thêm từ kế để cung cấp thêm thông tin về hướng của thiết bị IMU thường được sử dụng trong điều khiển máy bay, bay gồm cả thiết bị bay không người lái, tàu không gian, vệ tinh hay phi thuyền.
Nguyên tắc hoạt động cơ bản của IMU là sử dụng một hoặc một vài gia tốc kế để đo gia tốc tuyến tính, và dùng một hoặc một vài con quay hồi chuyển để đo vận tốc góc Ngoài ra, một số loại IMU có tích hợp thêm từ kế để xác định hướng quay Một cấu hình cơ bản của IMU sẽ bao gồm một gia tốc kế, một con quay hồi chuyển và một từ kế cho từng trục của thiết bị bay là: roll, pitch và yaw.
Cảm biến quán tính thường được tích hợp trong một hệ thống định vị quán tính (INS - Inertial Navigation Systems), dựa vào các phép đo của cảm biến quán tính để tính toán ra các tham số như độ cao, tốc độ góc, vận tốc tuyến tính và vị trí Một hệ thống INS trang bị IMU là cấu trúc chính cho nhiều hệ thống điều khiển cho cả phương tiện quân sự lẫn dân sự như máy bay, tên lửa, tàu thủy, tàu ngầm hay vệ tinh Đây cũng là một thành phần thiết yếu trong các hệ thống phương tiện không người lái như thiết bị bay, UGV (Unmanned Ground Vehicle) hay UUV (Unmanned underwater vehicles).
Trong định vị, dữ liệu từ IMU sẽ được đưa vào bộ xử lý để tính toán ra các tham số độ cao, vận tốc và vị trí Với việc sử dụng cảm biến IMU, dữ liệu cảm biến được đo trong bản thân robot, không chịu ảnh hưởng lớn từ môi trường (trừ va đập) nên dòng dữ liệu được đảm bảo Vì vậy, IMU luôn là nguồn dữ liệu ổn định, tin cậy Tuy nhiên, hệ thống định vị này có nhược điểm rất lớn Nhược điểm lớn nhất của định vị sử dụng IMU là chúng có lỗi tích lũy Hệ thống điều khiển sẽ liên tục tích hợp gia tốc theo thời gian để tính toán ra được vận tốc và vị trí, từ đó, bất kể lỗi phép đo từ nhỏ đển lớn đều sẽ bị tích lũy dần theo thời gian Điều này dẫn đến hiện tượng “trôi”: sự chênh lệch giữa vị trí tính toán được với vị trí chính xác sẽ luôn tăng.
1.4.2 Hệ thống định vị theo vệ tinh
Hệ thống định vị toàn cầu hay GPS (Global Positioning System) là một hệ thống thu phát sóng để định vị theo vệ tinh, sở hữu bởi chính phủ Hoa Kỳ và được quản lý bởi United States Space Force Đây là một phần của hệ thống định vị toàn cầu theo vệ tinh (GNSS – global navigation satellite systems), cung cấp thông tin về thời gian và địa lý cho các thiết bị thu GPS từ bất kì đâu trên bề mặt Trái Đất, với điều kiện sóng điện từ từ bốn vệ tinh hoặc nhiều hơn đến thiết bị thu không bị cản trở Những vật cản như núi hay toàn nhà sẽ làm cho tín hiệu GPS suy yếu.
GPS không yêu cầu người dùng truyền đi bất kỳ dữ liệu nào, hoạt động độc lập với tín hiệu điện thoại hoặc internet GPS có khả năng cung cấp thông tin về vị trí, thời gian cho cả quân sự, dân sự và thương mại Chính phủ Hoa Kỳ tạo ra và duy trì hệ thống, và cung cấp khả năng truy cập miễn phí cho bất kỳ thiết bị thu GPS nào.
Khi thiết bị thu GPS nhận được dữ liệu từ nhiều vệ tinh GPS, nó sẽ tính toán vị trí và thời gian của chính nó Mỗi vệ tinh sẽ lưu lại chính xác vị trí và thời gian của chúng, và truyền dữ liệu này đến thiết bị thu Mỗi vệ tinh bao gồm một đồng hồ nguyên tử, rất ổn định, được đồng bộ với những vệ tinh khác Vị trí của vệ tinh cũng được tính toán với độ chính xác rất cao.
Với việc sử dụng các dữ liệu từ vệ tinh có độ chính xác rất cao nên kết quả định vị của GPS luôn có một độ tin cậy nhất định Do hệ thống được Hoa Kỳ liên tục cập nhật và phát triển, các hệ thống GPS đang ngày càng cải thiện được độ chính xác và ổn định Tuy vậy, hệ thống định vị này có nhiều nhược điểm Do tốc độ của sóng điện từ là không đổi và không phụ thuộc vào tốc độ của vệ tinh, khoảng thời gian trễ từ khi vệ tinh truyền tín hiệu đến bộ thu sẽ tỷ lệ thuận với quãng đường truyền Do đó, bốn vệ tinh khác nhau sẽ tạo ra bốn thời gian trễ khác nhau Nếu như xung đồng hồ của thiết bị thu không đồng bộ với các vệ tinh, thì độ trễ này sẽ càng khó xử lý Điều này dẫn đến sai số của các thiết bị GPS là khá lớn Đến thời điểm 2000, GPS có thể đạt được độ chính xác là 5m (16 ft) [8].
Và nhược điểm lớn nhất, để có thể tính toán được vị trí hiện tại, thiết bị thu phải đảm báo thu được ít nhất bốn tín hiệu GPS khác nhau, phụ thuộc rất lớn vào môi trường và địa hình Vì vậy, hệ thống định vị sử dụng GPS thường có độ ổn định thấp và có thể bị mất dữ liệu.
Các hệ thống định vị tiên tiến thường sử dụng thêm các cảm biến khác như la bàn hoặc INS để bổ sung cho GPS.
1.4.3 Hệ thống định vị theo thị giác
Với phương pháp định vị theo GPS, một trong những trở ngại lớn nhất của nó là độ tin cậy, độ chính xác của bài toán định vị tỷ lệ thuận tới số lượng tín hiệu vệ tinh khả dụng Còn với phương pháp định vị theo cảm biến quán tính, do lỗi tích lũy gây ra hiện tượng “trôi”, INS sẽ mất dần độ chính xác khi thời gian triển khai càng mở rộng Đây là những hạn chế của các cảm biến truyền thống.
Phương pháp định vị theo thị giác đang hiện có nhiều tiềm năng do đi cùng với sự phát triển nhanh chóng của thị giác máy tính Với các lợi thế lớn mà camera mang lại: cung cấp dữ liệu lớn về môi trường như màu sắc, chi tiết; hoạt động tốt với các chuyển động cao; camera là loại cảm biến thụ động, thu tín hiệu từ môi trường nên tránh được bị phát hiện, khác với cảm biến chủ động tự phát và thu tín hiệu phản xạ, có thể bị phát hiện Cảm biến camera cũng có giá thành thoải mái từ rẻ đến đắt, dễ triển khai Các loại camera phổ biến hiện nay thể hiện trên Hình 1 9.
Camera đơn mắt (monocular - Hình 1 9a [9]) có nhiều lợi thế trong các ứng dụng có yêu cầu về khối lượng và kích thước nhỏ Ngoài ra, với giá thành rẻ và khả năng triển khai linh hoạt, camera đơn mắt là một lựa chọn tốt cho các ứng dụng trên thiết bị bay.
Tuy nhiên, camera đơn mắt cũng là camera đơn giản nhất, chỉ cung cấp dữ liệu ảnh môi trường Với camera đôi (stereo - Hình 1 9b [10]), là sự kết hợp của hai camera đơn giống hệt nhau, đặt song song trên một trục, cung cấp thêm những dữ liệu quan trọng khác Ngoài các dữ liệu hình ảnh giống như camera đơn, với lợi thế có hai tầm nhìn, ta hoàn toàn có thể ước tính được bản đồ độ sâu mà không cần trợ giúp của cảm biến hồng ngoại.
Định vị thị giác cho thiết bị bay
Định vị là khả năng tự nhận thức được vị trí và hướng quay của bản thân trong một hệ tọa độ tham chiếu Trong bài toán định vị, sau khi định vị bản thân, cùng với bản đồ đã dựng, robot sẽ lập kế hoạch để đến được vị trí đích.
Cấu trúc tổng thể của một hệ thống định vị cho thiết bị bay dựa theo thị giác được hiển thị trên Hình 1 10.
Hình 1 10 Cấu trúc định vị thị giác
Sau khi nhận được dữ liệu từ cảm biến, khối định vị và lập bản đồ sẽ cung cấp các thông tin về vị trí hiện tại, bản đồ cục bộ và bản đồ toàn cục cho các tiến trình tránh vật cản, lập kế hoạch; từ đó, hệ thống định vị sẽ điều khiển liên tục để đưa thiết bị bay đến vị trí đích.
Trong bài toán định vị, em thực hiện khối Định vị, dựa vào dữ liệu từ cảm biến để cung cấp thông tin về vị trí thiết bị bay cho bộ điều khiển, cũng như các tiến trình khác trong hệ thống định vị.
Trong lĩnh vực Robotics và Thị giác Máy tính, định vị thị giác là tiến trình xác định vị trí và góc quay của robot, bằng cách phân tích một chuỗi ảnh liên tiếp do camera cung cấp Phương pháp này đã được sử dụng rộng rãi trong các ứng dụng robotics, kể cả trên tàu thám hiểm sao Hỏa Rovers Với việc phân tích chuỗi ảnh liên tiếp, ta có thể tính toán ra thông số khoảng cách di chuyển Điều này cho phép cải thiện độ chính xác cho trình định hướng robot. Định vị thị giác, viết tắt là VO (Visual Odometry), có thể phân loại dựa theo loại camera, định vị thị giác chia thành hai loại là định vị thị giác đơn mắt (Monocular VO) khi trang bị một camera đơn mắt; và định vị thị giác mắt đôi (Stereo VO) khi trang bị camera đôi. Định vị thị giác cũng có thể được phân loại dựa theo phương pháp xử lý Các thuật toán định vị thị giác truyền thống thường trích xuất các điểm đặc trưng trên ảnh như góc, cạnh, sau đó theo dõi những điểm đặc trưng này trên chuỗi ảnh liên tiếp Gần đây, các thuật toán định vị thị giác sử dụng phương pháp trực tiếp, sử dụng trực tiếp cường độ pixel ảnh Một số thuật toán sử dụng phương pháp lai (hybrid) giữa hai phương pháp trên.
Tác vụ định vị là một phần của khối Định vị và lập bản đồ trong cấu trúc của một hệ thống định vị thiết bị bay Sau khi nhận dữ liệu từ hệ cảm biến, khối Định vị sẽ tính toán ra các thông số trạng thái quan trọng của thiết bị bay là vị trí, vận tốc, góc quay Các thông số này được truyền đến bộ điều khiển và các tác vụ kiểm tra để đưa thiết bị bay đến đích.
Các thuật toán định vị thị giác thường hoạt động theo trình tự sau:
• Lấy dữ liệu ảnh: sử dụng các loại camera như camera đơn mắt, camera đôi hoặc camera đa hướng
• Xử lý ảnh: sử dụng các kỹ thuật xử lý ảnh như loại bỏ biến dạng ảnh
• Phát hiện điểm đặc trưng: phát hiện và khớp các điểm đặc trưng giữa các ảnh, xây dựng biểu đồ luồng quang (opitical flow)
• Kiểm tra các vector trong biểu đồ luồng quang để phát hiện lỗi và loại bỏ các điểm dị biệt
• Tính toán trạng thái của camera là vị trí, góc quay dựa theo biểu đồ luồng quang
• Tạo và phát hiện các điểm đặc trưng mới để duy trì mật độ điểm đặc trưng giữa các ảnh
Tuy nhiên, thuật toán này có nhiều nhược điểm Do chỉ dựa vào dữ liệu ảnh, có thể bị ảnh hưởng từ môi trường khi có chuyển động nhanh hoặc vào những khu vực hạn chế thiếu tầm nhìn Và một nhược điểm lớn của phương pháp này là nếu dữ liệu ảnh được lấy từ camera đơn mắt, thì các tham số khoảng cách chỉ là giá trị tương đối, không thể chuyển về hệ mét cơ sở.
1.5.2 Định vị thị giác kết hợp cảm biến quán tính Định vị thị giác – quán tính hay VIO (Visual-Inertial Odometry) là một trường hợp đặc biệt của định vị thị giác VIO là tiến trình ước tính trạng thái (gồm vị trí, góc quay và vận tốc) của một phương tiện, sử dụng đầu vào là một hoặc nhiều camera, kết hợp với một hoặc nhiều IMU VIO là giải pháp phù hợp nhất để thay thế cho các trình định vị sử dụng GPS hoặc các cảm biến khoảng cách LIDAR hay siêu âm, mà vẫn có thể đạt được độ chính xác cao Với giá thành của camera và IMU đều rẻ hơn nhiều so với các cảm biến định vị khác, đây sẽ là giải pháp có nhiều tiềm năng phát triển phổ biến ngày nay.
Việc kết hợp cảm biến xuất phát từ vấn đề nếu chỉ sử dụng GPS, IMU hoặc thị giác đơn lẻ, kết quả định vị sẽ có nhiễu lớn, độ chính xác kém và kém ổn định. Với một hệ thống kết hợp cảm biến, ta có thể xử lý các trường hợp có cảm biến bị mất tín hiệu do hệ thống không bị phụ thuộc chỉ vào một cảm biến Ngoài ra, với nguồn cấp dữ liệu tăng lên, độ chính xác cũng đc cải thiện hơn, và các tham số trước đây chưa tính toán được cũng có thể được bổ sung vào hệ thống.
Với sự trợ giúp của IMU, hệ thống định vị thị giác – quán tính có thể cho ra tham số khoảng cách hệ mét, chính xác hơn và sẵn sàng để đưa vào các khối điều khiển và kiểm tra để thực hiện tác vụ định vị.
Kết luận chương 1
Chương 1 đã giới thiệu tổng quan về các khái niệm, lý thuyết liên quan cho đề tài luận văn Kiến thức về thiết bị bay không người lái, trí tuệ nhân tạo, thị giác máy tính và các bài toán liên quan: bài toán nhận dạng và bài toán định vị.Chương 1 giúp mọi người có cái nhìn tổng quan và phân biệt một số khái niệm sẽ được trình bày ở chương 2 và chương 3 tiếp theo.
BÀI TOÁN NHẬN DẠNG ĐÁM CHÁY
Định nghĩa bài toán nhận dạng
Bài toán nhận diện đối tượng là một vấn đề phổ biến của thị giác máy tính, bài toán sẽ nhận dạng và xác định vị trí của đối đượng trong ảnh Khác với bài toán xác định vị trí là việc phát hiện vị trí của đối tượng thì bài toán nhận dạng sẽ nhận được nhiều đối tượng trong ảnh và phân loại đối tượng vào từng loại đối tượng. Để xác định đối tượng có một khái niệm trong bài toán này là hộp bao quanh (bounding box), hộp này sẽ bao quanh đối tượng cần nhận dạng và chỉ ra đó là đối tượng thuộc phân lớp nào Hoặc một cách khác là tìm tất cả pixel chứa đối tượng đó và phân loại dựa vào màu sắc chỉ định - đó là bài toán phân vùng đối tượng (object segmentation) một bài toán cũng rất phổ biến hiện nay Hình 2 1và Hình
2 2 dưới đây sẽ minh họa về 2 kiểu nhận dạng đối tượng là sử dụng hộp bao quanh và phân vùng đối tượng.
Hình 2 1 Bài toán nhận dạng sử dụng hộp bao quanh [13]
Hình 2 2 Bài toán nhận dạng sử dụng phân vùng đối tượng [14]
Phân loại thuật toán nhận dạng đối tượng
Dựa vào cách thức thực hiện bài toán, người ta chia bài toán nhận dạng đối tượng ra làm 2 nhóm chính nhận dạng một bước và nhận dạng hai bước hay còn gọi là nhóm R-CNN (Region Convolutional Neural Network) và nhóm YOLO (You Only Look Once)
2.2.1 Nhận dạng đối tượng hai bước Được gọi là 2 bước (two-step) để nhận diện đối tượng vì trong thuật toán này sử dụng hai bước quan trọng là tìm ra vị trí chứa đối tượng sau đó sử dụng thuật toán để phân loại đối tượng thuộc nhóm nào Cụ thể là sử dụng mạng lưới đề xuất khu vực RPNs (Region Proposal Networks) để tìm ra hộp bao quanh phù hợp nhất bao quanh đối tượng, sau đó đưa đối tượng đã được tìm thấy đó vào mạng lưới học để nhận dạng, phân loại đó là đối tượng gì.Hình 2 3 dưới đây minh họa chi tiết về về nhận dạng đối tượng hai bước cụ thể là phương pháp R-CNN.
Hình 2 3 Bài toán nhận dạng hai bước với R-CNN [15]
Một số thuật toán sử dụng bài toán nhận dạng hai bước như RCNN (Region with Convolution Neural Network features), Faster-RCNN, Selective Search, … Để hiểu chi tiết về phương pháp này chúng ta cần tìm hiểu chi tiết hơn về Convolution Neural Network, Region Proposal Network (RPN).
Input của RPN là các bản đồ đặc trưng từ các lớp tích chập và đầu ta là các region proposal Đầu ra thường là các hình chữ nhật bao quanh Hình 2 4 minh họa một hộp bao quanh điển hình.
Hình 2 4 Cấu tạo hộp bao quanh
Mà một hình chữ nhật được xác định bằng 2 điểm ở 2 góc, ví dụ A (x_min, y_min) và B (x_max, y_max) Khi RPN dự đoán ta phải ràng buộc x_min < x_max và y_min < y_max Hơn nữa các giá trị x,y khi dự đoán có thể ra ngoài khỏi bức ảnh Vì thế cần một kĩ thuật mới để biểu diễn region propsal, khi đó khái niệm
Anchor ra đời để giải quyết mọi bài toán sau này liên quan đến RPN. Ý tưởng là thay vì dự đoán 2 góc ta sẽ dự đoán điểm trung tâm (x_center, y_center) và chiều dài, chiều rộng của hình chữ nhật Như vậy mỗi anchor được xác định bằng 4 tham số (x_center, y_center, width, height) Hình 2 5 là mô tả về cấu trúc một anchor.
Hình 2 5 Cấu trúc một anchor
Mô hình RPN khá đơn giản, ma trận điểm đặc trưng được cho qua lớp tích chập. Sau đó với mỗi anchor lấy được ở trên, RPN thực hiện 2 bước:
Dự đoán xem anchor đấy là tiền cảnh (chứa đối tượng) hay nền (không chứa đối tượng)
Dự đoán 4 giá trị khởi tạo cho x_center, y_center, width, height cho các anchor.
Thế nhưng phương pháp hai bước còn một số hạn chế Mặc dù kết quả khi huấn luyện cho ra là rất cao, tỉ lệ phát hiện chính xác lớn nhưng vì phải qua hai bước nên tốc độ xử lý tức thời (real-time) còn khá chậm Chính vì thế một phương pháp nữa ra đời là bài toán nhận dạng một bước.
2.2.2 Bài toán nhận dạng một bước Để tăng thời gian xử lý vấn đề bài toán nhận dạng người ta cố gắng tối ưu kết hợp cả hai bước là xác định vị trí và phân loại đối tượng Việc này làm cho tốc độ xử lý nhanh hơn đáng kể Một số thuật toán sử dụng phương pháp này là:YOLOv1, v2, v3, SSD, RestinaNet, … Hình 2 6 mô tả cách hoạt động của phương pháp một bước sử dụng YOLO.
Hình 2 6 Bài toán nhận dạng một bước [16]
Bên cạnh việc tạo ra các hộp bao quanh đối tượng chúng ta cũng dự đoán luôn hộp bao quanh đó đó có đang chứa đối tượng hay không Từ đó lựa chọn ra hộp có xác suất chứa đối tượng cao nhất và sai số thấp nhất là hộp mà máy dự đoán được. Kết quả của việc sử dụng các thuật toán bài toán nhận dạng đối tượng được tổng hợp và trình bày chi tiết ở Bảng 2 1 dưới đây.
Bảng 2 1 Kết quả một số thuật toán trên tập dữ liệu Pascal VOC 2007 [17]
Thuật toán mAP FPS Batch Boxes Input size resolution
Ta thấy một số thuật toán nhận dạng một bước có kết quả cao hơn nhưng tốc độ chậm hơn, còn bài toán nhận dạng hai bước tốc độ xử lý nhanh hơn nhưng độ chính các lại kém hơn Một số thuật toán của bài toán một bước có xác suất khá cao đó làSSD (Single Shot multibox Detection) và tốc độ xử lý cũng rất nhanh Trong đề tài này em đã lựa chọn và sử dụng thuật toán này và phần tiếp theo sẽ nói chi tiết hơn về cơ sở lý thuyết của thuật toán này.
Giới thiệu về SSD
Single Shot Detector, là một dạng của bài toán nhận dạng một bước, dùng để nhận dạng nhiều đối tượng và nó có độ chính xác lớn hơn nhiều thuật toán một bước khác như YOLO (You Only Look Once) và đáng kể về tốc độ so với phương pháp nhận dạng hai bước như Faster R-CNN như trên Bảng 2 1.
Cấu tạo của SSD là dự đoán xác suất có đối tượng và ví trí của hộp bao quanh với những hộp mặc định đặt trước sử dụng lớp tích chập để lấy ra ma trận đặc trưng.
Tại mỗi vị trí trên ma trận đặc trưng, SSD đặt các hộp bao quanh mặc định với kích thước, tỷ lệ khác nhau Trong quá trình xử lí, SSD sẽ đánh giá và tìm đối tượng trên các hộp mặc định này nhằm tìm ra hộp phù hợp nhất với đối tượng cần tìm kiếm Thêm vào đó, bằng việc tìm kiếm trên các ma trận đặc trưng khác nhau, SSD có thể tìm kiếm các đối tượng với kích thước khác nhau mà không cần thay đổi kích thước của các hộp bao quanh. Ý tưởng chính của SSD đến từ việc sử dụng các hộp bao quanh này, bằng việc khởi tạo sẵn các hộp tại mỗi vị trí trên ảnh, SSD sẽ tính toán và đánh giá thông tin tại mỗi vị trí xem vị trí đó có vật thể hay không, nếu có thì là vật thể nào, và dựa trên kết quả của các vị trí gần nhau, SSD sẽ tính toán được một hộp phù hợp nhất bao trọn vật thể.
Hình 2 7 Cách hoạt động của SSD
Như trên Hình 2 7 mô tả ta có thể thấy hình giữa với bản đồ đặc trưng 8x8 ta sẽ chọn ra được đối tượng là con mèo nhưng không thể tìm ra hộp bao quanh phù hợp với bình hoa Nhưng hình cuối ta có thể thấy với bản đồ đặc trưng 4x4 chúng ta sẽ có hộp bao quanh phù hợp với hình ảnh bình hoa, như vậy việc phát hiện đối tượng trở nên đơn giản hơn.
Mô hình hoàn chỉnh của SSD được biểu diễn dưới Hình 2 8.
Hình 2 8 Kiến trúc của SSD [17]
Nhìn hình trên ta có thể thấy SSD chia làm 3 nhóm lớp chính là mạng cốt lõi sử dụng mạng VGG16 làm mạng cơ sở, extra feature layers và cuối cùng là non- maximum suppression để lựa chọn hộp bao quanh đối tượng tối ưu nhất.
Một số từ khóa cốt lõi của kiến trúc mạng SSD là: chia nhiều tỷ lệ bản đồ đặc trưng cho dự đoán (multi-scale feature maps for prediction), dự đoán tích chập để phát hiện (convolutional predictors for detection) và hộp mặc định và tỷ lệ khung hình (default boxes and aspect ratios).
2.3.1.1 Chia nhiều tỷ lệ bản đồ đặc trưng cho dự đoán
Sau khi lấy ra được những đặc trưng từ mạng cơ sở VGG16 người ta thêm các lớp mạng tích chập với lõi khác nhau Bằng việc sử dụng các bộ lọc, kích thước của các bản đồ đặc trưng sẽ giảm dần theo độ sâu của mạng, hỗ trợ cho việc phát hiện vật thể ở các kích thước và tỉ lệ khác nhau.
2.3.1.2 Dự đoán tích chập để phát hiện
Như trên hình mô tả thấy rằng sau khi lấy ra mạng lưới tính năng đặc trưng bằng VGG16 các lớp tích chập sau đó được tính toán lấy ra các giá trị dự đoán cho lớp nhận dạng cuối cùng Sử dụng các nhân (kernel) có kích thước nhỏ trong tích chập để tạo ra hộp bao quanh và điểm số cho đối tượng.
Ví dụ mỗi lớp đặc trưng có kích thước mxn với p kênh, sử dụng kernel nhỏ
3x3xp để tính toán đầu ra Tại mỗi vị trí mxn mà áp dụng nhân k sẽ tạo ra giá trị đầu ra, các giá trị ban đầu của hộp bao quanh được đo tương ứng với hộp mặc định tạo ra.
2.3.1.3 Hộp mặc định và tỷ lệ khung hình
Tại mỗi ảnh khởi tạo một bản đồ đặc trưng có kích thước mxn, tại mỗi cell của bản đồ đặc trưng khởi tạo các hộp mặc định Vì các cell là cố định nên các hộp mặc định này cũng là cố định Khác với faster-RCNN các hộp mặc định trong SSD được sử dụng với các tỉ lệ khác nhau dẫn đến các hộp này sẽ fit với đối tượng cần tính hơn.
Tại mỗi hộp mặc định, sẽ tính toán dự đoán ra điểm của c các đối tượng và 4 điểm ban đầu của hộp mặc định Như vậy nếu có k hộp mặc định sẽ có (c+4)k đầu ra ở mỗi ô và nếu có mxn bản đồ đặc trưng thì sẽ có (c+4)kmn đầu ra.
Như vậy như trên hình 4.8 sẽ thấy sau các lớp tích chập sử dụng hộp bao quanh để dự đoán đầu ra cuối cùng ta sẽ có 8732 box cho mỗi lớp đối tượng.
2.3.2 Huấn luyện mô hình SSD
Việc huấn luyện mô hình SSD yêu cầu việc cung cấp thông tin của Hộp sự thật (Groundtruth) của vật thể bao gồm các thông tin về các đối tượng và khối. Các vấn đề trong quá trình huấn luyện được trình bày như sau.
2.3.2.4 Lựa chọn các hộp bao quanh phù hợp
Trong quá huấn luyện tạo mô hình tạo ra rất nhiều các hộp để dự đoán đối tượng, việc cần làm là loại bỏ bớt các hộp sai để mô hình đơn giản và tốc độ tăng lên. Một khái niệm xuất hiện để làm việc này là jaccard overlap Hình 2 9 mô tả công thức và minh họa cụ thể cách tích jaccard overlap hay còn gọi là IoU (Intersection over Union).
Như trên hình các chỉ số của jaccard overlap được tính dựa trên tỉ lệ của phần giao nhau với phần hợp nhau của hộp mặc định và hộp sự thật Nếu hệ số này càng cao thì xác suất hộp chứa vật thể cũng cao Chúng ta sẽ sử dụng một ngưỡng và loại bỏ những hộp không đạt đến ngưỡng Như vậy số lượng hộp sẽ giảm đi Cụ thể trong SSD sử dụng ngưỡng 0.5, những hộp được chọn phải thỏa mãn điều kiện này.
Áp dụng vào bài toán phát hiện đám cháy
Áp dụng những kiến thức về thuật toán SSD đã nêu ở trên cho đề tài nhận dạng trên thiết bị bay Phần này em sẽ nói rõ chi tiết các bước làm thế nào để hoàn thành bài toán này.
Như đã tìm hiểu ở các chương trước, một mô hình học sâu nói chung và thị giác máy tính nói riêng, việc dạy được máy học thì ta cần phải có kiến thức để máy có thể học được, cụ thể với bài toán nhận dạng là ảnh đầu vào chứa chủ đề cần nhận dạng. Đối với bài toán phân loại ta chỉ cần chuẩn bị ảnh có chứa đối tượng nhưng đối với bài toán nhận dạng được cả vị trí và đối tượng cần xử lý dữ liệu đầu vào chi tiết hơn Cụ thể với việc phát hiện cháy, ta cần khoanh vùng được đối tượng là đám cháy có trong ảnh để máy có thể học được cách xác định vị trí Ảnh đầu vào sẽ gồm những ảnh ở tập dữ liệu của bài toán phân loại và một số ảnh có chất lượng tốt hơn em có tải ở nguồn trên Google, Pixabay, …
Những bức ảnh đầu vào này sẽ được xử lý bằng công cụ LabelImg, công cụ giúp chúng ta tự tạo hộp bao quanh đối tượng cần phát hiện gọi là hộp sự thật (ground truth), gán nhãn cho đối tượng và công cụ sẽ trả về cho người dùng thông số của đối tượng như: loại đối tượng, tọa độ của hộp bao quanh, …được lưu trữ trong file xml Hình 2 12 là hình ảnh của công cụ LabelImg được sử dụng rất nhiều cho việc gán nhãn đối tượng.
Hình 2 12 Sử dụng LabelImg trong chuẩn bị dữ liệu
Như vậy tập dữ liệu ảnh đầu vào cho quá trình huấn luyện sẽ bao gồm tập hình ảnh và file chứa dữ liệu về phân vùng đám cháy Trong đề tài này em đã tự gán nhãn 1043 hình ảnh đám cháy được tải ở nhiều nguồn trên mạng và một số hình ảnh được lấy ra từ một số video có chứa đám cháy Hình 2 13 mô tả hình ảnh sau khi gán thông tin nhãn Em có kiểm tra việc gán nhãn với ảnh tương ứng của nó thu được kết quả.
Hình 2 13 Một số hình ảnh của tập dữ liệu huấn luyện
Từ dữ liệu về đối tượng trong tập dữ liệu khởi tạo dữ liệu lưu định dạng dễ truy nhập hơn là csv hoặc tf.record để những lần khác sử dụng dữ liệu tốt hơn [20]
Mạng SSD sử dụng mạng cơ sở là VGG-16 tuy nhiên kiến trúc VG-16 tốn rất nhiều phép tính thực hiện do đó rất khó để thực hiện trên các thiết bị phần cứng yếu sử dụng trên thiết bị bay không người lái Vì vậy việc thay thế mạng cơ sở này bằng các mạng khác nhẹ hơn giúp tối ưu được các phép tính thực hiện và giúp tăng tốc độ tính toán.
Một mạng nơ-ron mới được nghiên cứu là MobileNet-V2 với những cải tiến mới hơn so với VGG-16.
Hình 2 14 Mô hình SSD với backbone MobileNet-V2 Bảng 2 2 So sánh giá trị của VGG và MobileNet [21]
Model ImageNet Million Multi- Million
Bảng 2 3 So sánh độ chính xác và giá trị phép tính của 2 mô hình trong SSD [21]
Từ các nghiên cứu của tác giả, ta nhận thấy rằng mô hình MobileNet đạt được kết quả tốt hơn với việc nhỏ hơn 32 lần về lượng tham số mô hình và gần 27 lần về phép tính toán so với mô hình VGG16 đã sử dụng.
2.4.2.2 Chuẩn bị tài nguyên Để áp dụng SSD vào mô hình em có sử dụng Tensorflow API để đơn giản việc khởi tạo mô hình Tensorflow là một thư viện mã nguồn mở với khả năng xử lý dữ liệu lớn dựa theo mô hình mô tả sự thay đổi của dữ liệu.
Tensorflow API cung cấp mô hình đào tạo dữ liệu cho bài toán nhận dạng, sử dụng Tensorflow API với tập dữ liệu đã chuẩn bị cùng với mô hình SSD để huấn luyện mô hình học máy Dữ liệu huấn luyện trên nền tảng GPU của GTX 1080 Ti giúp cho việc đào tạo nhanh chóng và đơn giản hơn.
Với tensorflow trong quá trình huấn luyện ta có thể theo dõi các bước chạy của mô hình cũng như kết quả đạt được bằng tensorboard Phần 2.4.3 là kết quả của quá trình huấn luyện mô hình SSD trong phát hiện cháy.
Từ những bước đã chuẩn bị ở trên em có một số kết quả sau quá trình huấn luyện như sau.
2.4.3.3 Độ chính xác trung bình
Em thu được giá trị precision của 2 trường hợp khi mà IoU = 0.5 và IoU 0.75 như Hình 2 15 biểu diễn.
Hình 2 15 Kết quả precision trong quá trình đào tạo dữ liệu.
Như ta thấy giá trị dự đoán chính xác trung bình của IoU 0.5 lớn hơn 0.7 như vậy việc loại bỏ hộp mà IoU = 0.7 sẽ làm mất nhiều hộp chứa đối tượng, dẫn đến kết quả sai số nhiều hơn.
Hình 2 16 Kết quả recall trong quá trình đào tạo dữ liệu.
Hình 2 16 là kết quả mAR của quá trình huấn luyện mô hình với 1 đối tượng trong ảnh là đám cháy Nhận thấy giá trị AR tăng và ổn định ở mức >0.6 như vậy mô hình được đánh giá là tốt.
Hình 2 17 là kết quả của hàm mất mát dựa vào công thức (2.1) để có tổng giá trị mất mát bao gồm giá trị sai số khi phân loại em đã trình bày ở phương trình (2.2) và sai số khi xác định vị trí đối tượng ở phương trình (2.3).
Hình 2 17 Tổng giá trị loss của mô hình SSD
Nhận thấy đường giá trị hàm mất mát giảm dần, giá trị này là tương đối chính xác như vậy mô hình em đã huấn luyện là tốt.
Trong quá trình huấn huyện mô hình, Tensorflow bên cạnh việc tính toán những giá trị đầu vào còn tạo ra sơ đồ các bước đi của dữ liệu và mô hình mô tả các bước của SSD từ hình ảnh đầu vào ban đầu, tạo ra các hộp bao quanh và tính toán tìm ra hộp phù hợp nhất với đối tượng Do đó em có kết quả như thể hiện dưới đây.
Hình 2 18 Hình ảnh dự đoán trong quá trình đào tạo SSD
Nhìn Hình 2 18 ta thấy bên trái là kết quả mà mô hình dự đoán và hình bên phải là hộp sự thật của đối tượng tức là hình ảnh thực tế ban đầu em gán nhãn và hộp mặc định cho hình ảnh đám cháy Trong quá trình huấn luyện máy cố gắng tạo ra các hộp dự đoán và so sánh với hộp sự thật trong tập dự liệu ban đầu em đã tạo ra Như ta thấy mô hình dự đoán gần đúng với dữ liệu thực tế.
4.2.3.4 Kết quả kiểm thử thực tế
Kết luận chương
Chương 2 đã trình bày chi tiết lý thuyết thuật toán nhận dạng SSD kết hợp học sâu và thị giác máy tính sau đó đã áp dụng phương pháp này triển khai cho bài toán nhận dạng đám cháy áp dụng cho thiết bị bay không người lái Kết quả thu được từ nghiên cứu là rất cao khi có thể nhận dạng được đám cháy từ hình ảnh thu được của camera kết hợp với máy tính nhúng được tích hợp trên thiết bị bay không người lái.
BÀI TOÁN ĐỊNH VỊ CHO THIẾT BỊ BAY
Định vị thị giác với camera đơn mắt (monocular camera)
3.1.1 Tổng quan về định vị với camera đơn mắt
Các phương pháp thực hiện định vị thị giác đơn mắt thông thường chủ yếu được chia thành 2 nhóm: phương pháp dựa trên điểm đặc trưng (feature-based)
[22], phương pháp theo dõi trực tiếp (direct tracking) [23].
Như được biết đến rộng rãi trong thị giác máy tính, một điểm đặc trưng (feature) là một điểm ảnh có thể có cấu trúc đặc biệt trong hình ảnh, chẳng hạn như điểm góc, cạnh hoặc đối tượng khối Tuy nhiên, các điểm ở góc thường được xác định là các feature vì dễ dàng tìm thấy các góc trong hình ảnh hơn là tìm các cạnh hoặc khối. Phương pháp dựa trên feature đã được sử dụng rộng rãi vì tính mạnh mẽ của nó, phương pháp này chủ yếu dựa trên việc mô tả các điểm đặc trưng Tuy nhiên, nếu tăng cường độ mạnh thì độ phức tạp của mô tả điểm đặc trưng cũng phải tăng lên, điều này dẫn đến sự gia tăng lớn về độ phức tạp của thuật toán Có nhiều phương pháp trích xuất điểm dựa trên đặc điểm khác nhau đã được nghiên cứu trong nhiều năm như biến đổi đặc trưng bất biến theo tỷ lệ (SIFT), tăng tốc các tính năng mạnh mẽ (SURF) [24] và định hướng FAST và xoay vòng (ORB) [25].
Các phương pháp theo dõi trực tiếp (direct tracking) không trích xuất các tính năng mà ước tính chuyển động của camera trong hình ảnh dựa trên luồng quang học bằng cách giảm thiểu sai số trắc quang Phương pháp này sẽ sử dụng tất cả thông tin có thể có trên ảnh như một vùng nhỏ của gradient pixel Do đó, hiệu suất của Direct VO tốt hơn so với phương pháp dựa trên tính năng trong trường hợp các cảnh có kết cấu kém như tường, bầu trời hoặc biển Tuy nhiên, tốc độ thấp và thiếu đảm bảo tính tối ưu hoặc tính nhất quán là những vấn đề của phương pháp theo dõi trực tiếp [26]
Bảng so sánh hiệu suất của các phương pháp định vị thị giác khác nhau dựa trên điểm chuẩn trên bộ dữ liệu EuRoC ORB-SLAM3 là hệ thống mạnh mẽ nhất trong được coi là định vị thị giác đơn mắt dựa trên tính năng thông thường hiện đại
[27] Vì vậy phương pháp định vị sử dụng học sâu mạnh mẽ nhất là sử dụng trích xuất đặc trưng với ORB-SLAM3.
Hầu hết các phương pháp định vị dựa trên điểm đặc trưng bao gồm ORB- SLAM3, được thực hiện theo các quy trình sau như trong Hình 3 1 Máy ảnh là cảm biến duy nhất trong định vị thị giác đơn mắt Nó được sử dụng để thu thập các hình ảnh liên tiếp có các cảnh chồng lên nhau Mỗi máy ảnh có một bộ thông số nội tại cụ thể, được biểu thị dưới dạng ma trận máy ảnh K(3x3) hoặc dưới dạng một cặp góc Trường nhìn (FoV).
Hình 3 1 Định vị thi giác sử dụng camera đơn mắt thông thường
Trích xuất đặc trưng và kết hợp: Để ước tính tư thế tương đối giữa các ảnh, các điểm đặc trưng xi được trích xuất bằng nhiều phương pháp khác nhau SIFT và SURF có thể mang lại kết quả trích xuất tốt nhưng chúng tốn rất nhiều tài nguyên tính toán Do đó, khó có thể sử dụng chúng trong các ứng dụng thời gian thực ORB kết hợp các ưu điểm của Tính năng từ Kiểm tra phân đoạn được đánh giá cao (Features from Accel- erated Segment Test-FAST) và Tính năng cơ bản độc lập mạnh mẽ nhị phân (Binary Robust Independent Elementary Features -BRIEF), do đó nó có thể đạt được các tính năng được trích xuất tốt hơn về tỷ lệ, xoay và độ sáng.Hơn nữa, sự kết hợp này rất hiệu quả, giúp giảm thiểu thời gian tính toán Do đó,ORB phù hợp hơn nhiều với lược đồ thời gian thực Các tính năng được trích xuất từ các chế độ xem khác nhau của hình ảnh được khớp với nhau để tạo ra các cặp tương ứng cho phép tam giác So khớp được thực hiện bằng cách sử dụng
Tổng số chênh lệch bình phương (Sum of Squared Differences - SSD) hoặc K- Hàng xóm gần nhất (K-Nearest Neighbors - KNN).
Lọc ngoại lệ và Tam giác: Các ngoại lệ (hoặc kết hợp sai) được định nghĩa là các điểm đặc trưng được kết hợp không chính xác giữa hai khung Để giảm số lượng ngoại lệ trong một tập hợp dữ liệu được quan sát, thuật toán Đồng thuận Lấy mẫu Ngẫu nhiên (RANSAC) là phương pháp phổ biến nhất Dựa trên các tương ứng đặc trưng được trích xuất và so khớp từ các bước trước đó, RANSAC sử dụng thuật toán 5 điểm hoặc 8 điểm để phân tích và tính toán ma trận cơ bản F tốt nhất có thể có thể lọc ra nhiều giá trị ngoại lệ nhất. Ước lượng tư thế: Sau khi thực hiện F và K từ bước trước, ma trận cơ bản E
Lấy sự phân rã giá trị = được suy ra để nắm bắt mối quan hệ hình học giữa một cặp hình ảnh.
(3.1) đơn lẻ (SVD) của E, chúng ta có thể ước tính độ quay và
=[ ]× (3.2) phép tịnh tiến giữa 2 mặt phẳng hình ảnh trong đó R là ma trận xoay, t là vectơ tịnh tiến được cho bởi: t= [tx, ty, tz ]T và [t] × là ma trận đối xứng xiên được cho bởi:
Tự học giám sát cho định vị thị giác với camera đơn mắt
3.2.1 Sử dụng tổng hợp Novel View làm giám sát Ý tưởng áp dụng tổng hợp chế độ xem mới để giải quyết ước tính tư thế máy ảnh được truyền cảm hứng rất nhiều từ phương pháp định vị thị giác trực tiếp và chiếu trong trục 2D ảnh là = [ , ] được = [ , , ] có thể được thể hiện như sau: chúng ta có một hình
Với mỗi điểm trong tọa độ 3D của camera: tính như sau:
K (3.4) trong đó Z là khoảng cách đến tâm máy ảnh, còn được gọi là giá trị độ sâu của điểm cụ thể đó và K là ma trận 3x3 trong của kiểu máy ảnh Do đó, để khôi phục một điểm 3D từ phép chiếu 2D tương ứng của nó trên khung hình ảnh, với giá trị
Với phép quay và dị
= ch chuy � ển camera từ các phương trình trước đó, chúng ta
−1 (3.5) sau: mục tiêu trên một mặt phẳng hình ảnh mới như có thể tìm tọa độ 2D của một
(3.6) pixel trong khung ảnh gốc, em có thể Nhân rộng sự biến đổi này cho tất cả các ̂ tổng hợp một hình ảnh 2D mới, với tất cả các pixel di chuyển đến tọa độ 2D mới trong chế độ novel view Vì các giá trị tọa độ mới này là liên tục, nên giá trị cường độ mới sẽ được tính toán đối với các pixel lân cận trong một chế độ xem mới, sử dụng nội suy song tuyến Toàn bộ quá trình này được gọi là nghịch đảo dọc Mục tiêu của Direct VO là ước tính , bằng cách giảm thiểu tổn thất tái tạo trắc quang giữa hình ảnh mục tiêu ban đầ u và hình ả nh đối chiếu tổng hợp của nó sa u khi
(3.7) Để giảm thiểu giá trị mất mát (loss) trên, các thuật toán Gauss-Newton hoặc Levenberge-Marquardt có thể được áp dụng Đối với định vị thị giác đơn mắt tự giám sát, có hai mạng nơ-ron được sử dụng: Mạng DeepNet để ước tính mặt phẳng Độ sâu 2D từ ảnh mục tiêu của camera đơn mắt và Mạng Tư thế để hồi quy chuyển động tư thế 6 DoF từ khung hình mục tiêu sang các khung hình lân cận� ,như ̂,�được hiển thị trong Hình 3 1 Trong quá trình chuyển tiếp, các ước lượng sau đó được sử dụng cho quá trình inverse wrap để tính toán hàm mất mát có thể phân biệt trong công thức (3.7) sẽ được tối ưu hóa cho mọi bước của quá trình truyền ngược Một trong những nỗ lực đầu tiên để thực hiện ý tưởng nói trên là SfMLearner [28] Tuy nhiên, SfMLearner dễ bị ảnh hưởng bởi các cảnh động, đầu ra của nó thường xuyên gặp phải cả sự nhất quán và mơ hồ về quy mô Do đó, một phiên bản cải tiến của SfM, có tên SC-SFM Learner được đề xuất để giải quyết vấn đề nhất quán về quy mô.
Quy mô không rõ ràng và không nhất quán về tỷ lệ là những vấn đề phổ biến trong định vị thị giác đơn mắt SC-SfMLearner đã đề xuất một sự mất nhất quán về hình học để giải quyết sự không nhất quán về tỷ lệ vì không thể giải quyết được sự mơ hồ về tỷ lệ trong phép đo định vị thị giác của camera đơn mắt.
Phương pháp SC-SfMLearner [29] dựa trên việc tổng hợp chế độ xem mới lạ, trong đó bản đồ độ sâu đầu ra và tư thế tương đối được học thông qua việc tối ưu hóa sự mất mát tái tạo trắc quang giữa hình ảnh tổng hợp và mục tiêu ban đầu. Toàn bộ quá trình của SC-SfMLearner được hiển thị trong Hình 3 2.
Hình 3 2 Chuyến tiếp của quy trình Inverse warp
Mặc dù được xây dựng trên cùng một lý thuyết như SfM Learner, nó có nhiều khác biệt về kiến trúc thần kinh cho cả mạng DeepNet và mạng PoseNet. Đối với mỗi mẫu đào tạo của chuỗi hình ảnh con, một khung được chọn làm chế độ xem đích và các khung khác là chế độ xem nguồn Mạng độ sâu chỉ lấy khung mục tiêu trong mỗi dãy con và xuất ra các hình ảnh độ sâu đa tỷ lệ Mạng Tư thế lấy chế độ xem mục tiêu được nối với tất cả các chế độ xem nguồn trong chuỗi con làm đầu vào, trả về 6 tư thế máy ảnh DoF tương đối giữa khung hình đích và mỗi khung hình nguồn Sau đó, độ sâu dự đoán và tư thế máy ảnh được sử dụng để đảo này tham gia đào tạo với mạng ngược chiều dọc để thu được hình ảnh bị cong vênh � Để cải thiện hiệu suất, các tác giả đã thêm mạng mặt nạ giải thích, mạng
= ∑ ∑ � ( ) − ( )� Độ sâu và Tư thế, do đó, mục tiêu tổng hợp chế độ xem được sửa đổi:
Trong đó: là ảnh đích là ảnh biến đối
�p chỉ số tọa độ pixel
� mặt nạ giải thích. Đầu ra của mạng học sâu SC-SfMLearner là độ sâu dự đoán ( , +1) của hai ảnh liên tiếp trong dãy con Bên cạnh đó chúng ta sử dụng bản đồ độ sâu tỉ lệ đơn thay vì đa tỉ lệ như SfMLearner (4 scales) Để ước tính tư thế, Mạng tư thế không có mặt nạ giải thích lấy hai hình ảnh liên tiếp được ghép nối và xuất ra tư thế tương thêm chức năng → +1
Để xử lý các thay đổi về độ chiếu sáng, SC-SfMLearner đối giữa chúng suy hao SSIM [30], do đó tổn thất trắc quang được tính như sau: Trong đó V là
| | ∈ � 2 số lượng điểm hợp lệ được hình chiếu đúng từ tới mặt phẳng sử dụng từ thư thế và độ sâu nội suy từ
, được +1 được tạo từ các tác giả đề xuấ t sự mất nhất quán về hình học, với độ sâu cong vê nh Để giải quyết sự không nhất quán về hình học giữa độ sâu dự đoán và tư thế,
SC-SfMLearner tối ưu hóa lặp đi lặp lại cả hai chức năng mục tiêu thông qua cộng hưởng ngược và có thể tạo ra đầu ra phù hợp với quy mô hơn.
Thực hiện và thử nghiệm trên mô phỏng bay
Hình 3 3 Mô hình hệ thống ORB-SLAM3
Trong phần này sẽ trình bày sự so sánh giữa phép đo định vị thị giác đơn mắt dựa trên tính năng thông thường và dựa trên học tập sâu Em đã chọn các thuật toán hiện đại của cả hai phương pháp để so sánh: ORB-SLAM3 cho phương pháp dựa trên tính năng thông thường và SC-SfM Learner cho phương pháp dựa trên học sâu Để đánh giá và so sánh các phương pháp trên, một trình mô phỏng thiết bị bay ảnh thực tế nổi tiếng có tên Flightmare được sử dụng Flightmare không chỉ nhanh chóng trong việc thu thập và tính toán một số lượng lớn hình ảnh mà còn được tích hợp với một động cơ của thiết bị bay chính xác do ETH Zurich phát triển Với các chức năng hình ảnh thực tế của Flightmare, một môi trường mô phỏng có thể được tạo ra dựa trên hình ảnh thực bằng cách sử dụng Công cụ kết xuất (Unity) Do đó, có thể giảm thiểu sự khác biệt giữa chế độ xem máy ảnh mô phỏng và thế giới thực Do đó, các thuật toán có thể được đánh giá trong một môi trường an toàn và rẻ tiền nhưng gần như thực tế Tổng quan về công việc của em được mô tả trong Hình 3 3 Ước tính tư thế 6-Dof được ước tính theo thời gian thực bởi cả ORB-SLAM3 và Sc-SfM Learner bằng cùng hình ảnh camera đơn mắt đầu vào từ trình mô phỏng Những tư thế này sau đó được đánh giá dựa trên ground truth do trình mô phỏng cung cấp để đánh giá kết quả của chúng Dựa trên kết quả đánh giá trên bộ mô phỏng, các thông số tốt nhất của thuật toán có thể được lựa chọn để phù hợp với từng loại môi trường Hơn nữa, các trường hợp hạn chế hoặc lỗi của thuật toán có thể được tìm thấy giúp cải thiện thuật toán hoặc tìm ra các điều kiện điều khiển thích hợp để tránh thất bại trong các thí nghiệm thực tế.
3.3.1 Thu thập dữ liệu trên flightmare
Hình 3 4 Môi trường flightmare Đầu tiên em đi khắp bản đồ Rừng bằng cách sử dụng một thiết bị bay mô phỏng, thu thập tổng cộng 5 quỹ đạo với hình dạng và độ dài khác nhau Các cảnh RGB từ môi trường này chứa một nguồn tính năng đa dạng và phong phú, làm cho nó trở thành một nguồn tài liệu đào tạo lý tưởng Đối với môi trường Công nghiệp, em muốn tạo một bộ xác thực phù hợp có thể đánh giá cả độ mạnh mẽ của ORB-SLAM đơn mắt và khả năng tổng quát hóa của 2 mô hình học sâu trên một bối cảnh hoàn toàn khác nhau.
Máy bay không người lái được điều khiển thủ công bằng cần điều khiển USB, vì em muốn các quỹ đạo được ghi lại kết hợp các chuyển động không thể đoán trước, buộc các lưới thần kinh phải học một loạt các chuyển động.
Em sử dụng bộ điều khiển tốc độ cơ thể và sơ đồ trộn lực đẩy được phát triển để bay thiết bị bay dọc theo quỹ đạo hình chữ nhật và quỹ đạo hình lục giác.
Flightmare cung cấp cho chúng ta không chỉ một nguồn dữ liệu hình ảnh thực tế phong phú để đào tạo mạng nơ-ron học sâu mà còn là một bộ sưu tập các luồng chính xác và liên tục của các tư thế ground truth được sử dụng để xác thực hiệu suất của các thuật toán định vị thị giác Em đã thu thập tổng cộng 7 quỹ đạo trên 2 môi trường mô phỏng trong Flightmare: Forest và Industry Một số hình ảnh mẫu từ các môi trường nói trên có thể được nhìn thấy trong Hình 3 4 Có thể thấy rõ sự khác biệt giữa 2 môi trường từ số lượng các tính năng được trích xuất trong mỗi môi trường. Đối với mỗi quỹ đạo, em sử dụng Flightmare ROS Wrapper để trích xuất các chủ đề ROS của các tư thế RGB, Hình ảnh Độ sâu và sự thật, lưu chúng thành định dạng ROSBAG.
Ma trận máy ảnh nội tại K được tính trực tiếp từ các góc FoV và độ phân giải của hình ảnh đào tạo, sử dụng công thức sau:
Trong đó fx, fy là tiêu cự và cx, cy là tọa độ pixel của tâm camera chiếu lên mặt phẳng ảnh.
3.3.2 Huấn luyện mô hình Sc-SfmLearner
Với mỗi mô phỏng, em đã chuyển đổi luồng hình ảnh màu thành 15926 hình ảnh riêng lẻ sẽ được đưa vào DataLoader của cơ sở mã SC-SfmLearner Pytorch.
Vì mô hình ResNet18 của SC-SfmLearner chỉ có thể nhận đầu vào chia hết cho 32, em phải sửa đổi chiều rộng ban đầu của hình ảnh đào tạo, bằng cách cắt 4 hàng pixel từ trên cùng và dưới cùng của hình ảnh.
Tỷ lệ xuất bản của các poses sự thật cao hơn nhiều so với tốc độ khung hình của các chủ đề RGB, có nghĩa là trong một khoảng thời gian cụ thể, số lượng tư thế được ghi lại luôn nhiều hơn so với hình ảnh RGB Để xác thực kết quả đầu ra của SC-SfMLearner đối với giá trị sự thật, cần xác định vị trí sự thật chính xác tại thời điểm ảnh được chụp Do đó, em thực hiện đồng bộ hóa thời gian giữa chủ đề hình ảnh và chủ đề sự thật cơ bản, chỉ định mỗi thông điệp hình ảnh với một tư thế duy nhất tại cùng một dấu thời gian hoặc với phép nội suy của hai tư thế hàng xóm ở hai dấu thời gian gần nhất như được hiển thị trong Hình 3 5
Toàn bộ quá trình đào tạo được thực hiện trên cơ sở mã gốc của Sc- SfmLearner được viết bằng PyTorch Mỗi mẫu được tải vào mạng tạo dáng là một chuỗi 5 hình ảnh liên tiếp được xếp chồng lên nhau, với hình ảnh trung tâm đóng vai trò là khung đích và 4 hình còn lại làm khung nguồn Trình tối ưu hóa Adam được sử dụng với tỷ lệ học tập là 0.0001 để đào tạo cả mạng độ sâu và mạng đặt ra trong tổng số 100 vòng Do dung lượng kiến trúc lớn của Sc- SfMLearner, em đã giảm kích thước lô xuống 2 để tránh lỗi hết bộ nhớ CUDA.
Cả hai mô hình được đào tạo và đánh giá trên 1 GPU Nvidia GTX 1080Ti(11GB DDR5X Vram, 3584 CUDA cores) sử dụng Ubuntu 20.04.
Hình 3 6 Sai số Photometric và sai số Geometry Consistency của Mô hình đào tạo
SC-SfMLeaner với dữ liệu flightmare
Triển khai trên ROS (Robot Operating System)
Việc tạo ra những phần mềm cho robot đáp ứng được độ ổn định, chính xác và nhất quán là rất khó Với nhận thức của robot, những vấn đề tưởng chừng như đơn giản với con người lại trở thành một bài toán đa đối tượng, đa tác vụ để xử lý các nhân tố của môi trường Với những bài toán này, nếu chỉ có một cá nhân, một phòng nghiên cứu hay một tổ chức sẽ phải tốn rất nhiều thời gian và công sức để có thể tự giải quyết vấn đề.
Từ đó, ROS được xây dựng để trở thành một framework linh hoạt, nhất quán cho các ứng dụng cho robot Robot Operating System (ROS) là một hệ thống phần mềm có tính linh hoạt và chuyên dụng cao dùng để lập trình và điều khiển robot ROS bao gồm các thư viện, công cụ hỗ trợ lập trình, công cụ đồ họa, các công cụ hỗ trợ truyền thông với phần cứng cũng như các thư viện xử lý cảm biến và các thuật toán phổ biến trong lập trình điều khiển robot.
Framework xây dựng trên ý tưởng khuyến khích việc hợp tác để xây dựng hệ thống Ví dụ, với một phòng nghiên cứu, ta cần có một bộ phận đảm nhiệm xây dựng bản đồ, một đội khác sử dụng bản đồ đó để định vị robot, và một đội khác làm tác vụ phát hiện vật thể trong một nhóm vật… ROS xây dựng phù hợp cho một nhóm hợp tác, phát triển trên kết quả của nhau.
ROS cấu thành bởi các thành phần như Hình 3 7.
Hình 3 7 Các thành phần của ROS [31]
Nodes: là đơn vị cơ bản nhằm hỗ trợ giao tiếp với các thành phần cấu thành nên robot Các nodes này có thể giao tiếp và tương tác với nhau qua Master. Master: đóng vai trò kết nối các node với nhau Do đó, master luôn được khởi động đầu tiên, sau đó thì ta có thể gọi bất kỳ các node nào trong hệ thống Sau khi gọi xong, các node có thể kết nối và tương tác với nhau.
Parameter Server: Là một cấu trúc nhiều tham số có thể truy cập trong lúc chạy ROS Các node sử dụng cấu trúc này nhằm lưu trữ và truy xuất các thông số trong thời gian chạy, thường là kiểu dữ liệu tĩnh, chẳng hạn như các thông số cấu hình, thời gian hệ thống.
Message: Đây là cấu trúc dữ liệu được các node sử dụng để trao đổi với nhau. Các node tương tác với nhau bằng cách gửi và nhận ROS message.
Topics: là phương pháp giao tiếp trao đổi dữ liệu giữa hai node, nó bao gồm nhiều cấp bậc thông tin mà chúng có thể giao tiếp thông qua ROS message Hai phương thức trong topic bao gồm publish và subscribe.
Services: Là một phương thức trao đổi dữ liệu/thông tin giữa hai node thông qua phương thức request và response Thường được áp dụng trong trường hợp việc thực hiện một lệnh cần nhiều thời gian xử lý nên dữ liệu tính toán được lưu ở server và sẽ dùng khi cần xử lý.
Bags: là một định dạng tệp trong ROS dùng để lưu trữ dữ liệu message có vai trò quan trọng và có thể được xử lý, phân tích bởi các công cụ mô phỏng trongROS như Rviz.
Ngoài ra, ROS còn tích hợp thêm một số thư viện khác như Gazebo, OpenCV,
… Gazebo là một trình giả lập môi trường trong nhà/ngoài trời với nhiều robot cùng lúc, với một hệ vật lý động học hoàn chỉnh Việc kết hợp ROS và Gazebo tạo ra một bộ các công cụ hỗ trợ rất nhiều mô hình robot và cảm biến hiện có. Nhờ hỗ trợ giao tiếp dựa trên messages tương tự như ROS, trong Gazebo, ta hoàn toàn có thể viết các nodes ROS vừa phù hợp với mô phỏng và thực tế Ta có thể phát triển ứng dụng trên mô phỏng, sau đó triển khai trên thực tế với một chút thay đổi trong mã nguồn.
OpenCV là một thư viện đồ sộ trong lĩnh vực Thị giác Máy tính, được sử dụng trong cả nghiên cứu và thực tế OpenCV cung cấp nhiều thuật toán phổ biến liên quan đến Thị giác Máy tính ROS tích hợp chặt chẽ với OpenCV, cho phép người dùng dễ dàng xử lý các dữ liệu hình ảnh.
Với những đặc điểm này, ROS là framework thích hợp để nghiên cứu các thuật toán ứng dụng trong robotics và thị giác máy tính.
3.4.2 Triển khai thuật toán ORB-SLAM3 trên ROS Đối với ORB-SLAM3, em kiểm tra tư thế ước tính bằng cách sử dụng mô-đun theo dõi của cơ sở mã gốc Em xây dựng mô hình định vị thị giác của riêng mình trên thiết bị theo dõi đơn mắt ban đầu Cũng cần nhắc lại rằng đầu ra từ trình theo dõi đại diện cho tư thế trong khung máy ảnh; do đó, em nhân nó với ma trận chuyển đổi T giữa thân thiết bị bay và máy ảnh, trước khi thêm thành phần dịch để chuyển tư thế dự đoán vào khung hình thế giới Toàn bộ phép tính được thực hiện thông qua Sophus, và kết quả cuối cùng sau đó được chuyển thành định dạng tin nhắn PoseStamped ROS.
Hình 3 8 Chuyển đổi chuyển động từ PoseNet sang ROS Odometry
Vì SC-SfMLearner lấy 2 hình ảnh cho mỗi lần lặp lại suy luận, một cấu trúc hàng đợi được triển khai để đẩy lùi dữ liệu mới mỗi khi nhận được thông báo hình ảnh và bật lên phía trước hình ảnh từ các dấu thời gian trước đó sau khi thông báo tư thế được xuất bản Mô-đun PyTorch chỉ thực hiện chuyển tiếp bất cứ khi nào độ dài hàng đợi bằng 2, xuất ra tensor chuyển động tư thế 6-DoF giữa hai đầu vàoRGB hiện đang xếp hàng Chuyển động tư thế ước tính sau đó được nhân với tư thế máy ảnh từ lần thực hiện cuối cùng để trở thành phép đo mùi, trước khi được chuyển đổi thành tư thế thế giới và được xuất bản dưới dạng thông báoPoseStamped như trong Hình 3 8 Em sử dụng GPU để tăng tốc độ suy luận của mô-đun mạng thần kinh.
Đánh giá kết quả
Công cụ đánh giá RPG [32] được sử dụng để so sánh hiệu suất của hai công cụ ước lượng tư thế từ các nút ROS tự viết ở trên Em đánh giá cả ORB-SLAM3 và SC-SfMLearner trên quỹ đạo nói trên được ghi lại từ Flightmare Quá trình đánh giá cho từng quỹ đạo có thể được trình bày chi tiết theo các bước sau:
•Chạy tệp đã ghi có chứa quỹ đạo mục tiêu.
•Khởi động trình mô phỏng, áp dụng điều khiển và lập kế hoạch thích hợp cho từng quỹ đạo.
•Khởi chạy các nút ROS của trình ước lượng tư thế đăng ký các chủ đề rgb từ trình mô phỏng.
•Ghi lại mọi thông báo PoseStamped được xuất bản từ mỗi công cụ ước lượng tư thế.
• Lưu các tư thế ước tính đã ghi cùng với dấu thời gian của chúng thành định dạng văn bản để đưa vào công cụ đánh giá RPG.
•Công cụ đánh giá RPG thực hiện đồng bộ hóa thời gian và căn chỉnh tỷ lệ giữa các tư thế ước tính và sự thật, đồng thời hình dung chúng Hệ số tỷ lệ được tính bằng phương pháp Umeyama.
Hình 3 9 Biểu diễn quỹ đạo ước tính và quỹ đạo thật
Như đã thấy trong Hình 3 9, ORB-SLAM3 nói chung hoạt động tốt hơn Sc- SfMLearner Đối với ba quỹ đạo được ghi lại từ môi trường Rừng, ORB-SLAM3 đạt được kết quả vượt trội, với các quỹ đạo dự đoán là trơn tru và bám sát vào các quỹ đạo chân thực Sc-SfM Learner xuất ra các quỹ đạo thô hơn; tuy nhiên, các tư thế ước tính vẫn bám sát chân lý cơ bản, cả về hình dạng và hướng.
Mặt khác, SC-SfM Learner chịu ảnh hưởng rất nhiều lỗi về quy mô khi thử nghiệm trong môi trường Công nghiệp Xu hướng này có thể xuất phát từ thực tế là dữ liệu hình ảnh được ghi lại từ môi trường này chứa ít điểm đặc trưng hơn so với cảnh Rừng Ngoài ra, có thể nhận thấy rõ ràng rằng SC-SfM Learner nhạy cảm hơn nhiều với các chuyển động quay góc Không cần quay theo chiều ngang (bay thẳng), Sc-SfM Learner có thể theo dõi chính xác ground truth Tuy nhiên, số lần quay ngang của máy bay không người lái càng cao và góc nghiêng càng lớn, thì thuật toán càng có nhiều khả năng không dự đoán được kết quả như ý Hạn chế này của SC- Sfm Learner có thể bắt nguồn từ việc thiếu tính năng xoay yaw trong dữ liệu được sử dụng để huấn luyện mạng tư thế Đối với ORB-SLAM3, trình theo dõi một mắt của thuật toán thực hiện ước tính độ chính xác cao, với đường dự đoán có cùng hình dạng chữ nhật với quỹ đạo sự thật Kết quả này có thể khẳng định sức mạnh củaORB-SLAM3 như một công cụ ước tính tư thế linh hoạt và chính xác Mặt khác, cần thêm nhiều dữ liệu đào tạo và thuật toán nâng cao vào phương pháp học để tránh sai lệch Các điều kiện kiểm soát thích hợp cũng có thể được đề xuất, ví dụ, dựa trên các phép quay yaw rất chậm, để tối ưu hóa hiệu suất của phương pháp học định vị thị giác trong sử dụng thực tế.
Kết luận chương
Chương 3 đã trình bày các nghiên cứu thử nghiệm về việc áp dụng phương pháp học sâu của trí tuệ nhân tạo để thay thế phương pháp định vị truyền thống sử dụng camera đơn mắt Mặc dù phương pháp ứng dụng học sâu mang lại kết quả không tốt bằng phương pháp truyền thống do hạn chế khi sử dụng camera đơn mắt và việc học ít đặc trưng ảnh hơn nhưng các nghiên cứu liên quan đến phương pháp học sâu cũng đã bám sat bài toán định vị tương đối chính xác đường đi của thiết bị bay Đây cũng là tiền đề cho bài toán định vị ứng dụng học sâu trong tương lai