Điểm đánh giá đề tài Tiêu chí 1: Mức độ thời sự của đề tài, độ khó của đề tài 10% Điểm 2 4 6 8 10 Quá dễ thực hiện nhưng thực tế không Thực hiện được cần Vấn đề vừa sức/Cần phải dành thờ
TỔNG QUAN
Đặt vấn đề
1.1.1 Các nghiên cứu ngoài nước
UAV (Unmanned Aerial Vehicle) là một loại phương tiện bay không có phi công trên buồng lái, được điều khiển từ xa hoặc bay tự động dựa vào hệ thống máy tính Với ưu điểm an toàn, linh hoạt và khả năng mang theo các thiết bị điện tử, hàng hoá và vũ khí, UAV ngày càng dành được sự quan tâm nghiên cứu trên toàn thế giới Ban đầu, chúng được ứng dụng cho các nhiệm vụ quân sự, do thám và cứu hộ, nhưng sau đó đã được chế tạo đa dạng về hình dạng, kích thước và công suất để phục vụ các mục đích dân sự, thường được gọi là Drone Đặc biệt, sự phát triển của công nghệ 4.0 và tốc độ tính toán thị giác máy tính đã mở ra nhiều cơ hội phát triển vượt bậc cho Drone, giúp chúng thực hiện nhiều nhiệm vụ đòi hỏi sự chính xác và tự động cao, như nhận dạng và bám theo mục tiêu dựa vào hình ảnh Camera và máy tính nhúng gắn trên Quadcopter.
Nhận dạng và theo dõi đối tượng trên máy bay không người lái là một lĩnh vực nghiên cứu mới mẻ và đầy tiềm năng, mang lại nhiều ứng dụng hữu ích trong đời sống như nhận dạng và theo dõi tội phạm, phát hiện và bám theo mục tiêu, bắt chuyển động trong thể thao Tuy nhiên, các phương pháp thủ công trước đây đòi hỏi người vận hành phải thông thạo kỹ năng điều khiển bay và làm việc xuyên suốt trong quá trình theo dõi, đồng thời có thể gặp phải những hạn chế về hình ảnh truyền về bị gián đoạn khi ở khoảng cách xa Để khắc phục những vấn đề này, cần có một hệ thống máy bay không người lái có thể độc lập thực hiện tác vụ nhận dạng và theo dõi đối tượng Các nghiên cứu gần đây đã đề xuất sử dụng mô hình AR Drone, bộ mô hình này được sử dụng để thương mại hoá của hãng Parrot, tuy nhiên có một số nhược điểm như hạn chế về tải trọng, khả năng chịu gió tương đối kém và thiếu tính chuyên nghiệp Để có một cách tiếp cận mới mẻ và quen thuộc hơn với Drone, một số công trình nghiên cứu đã dựa trên các loại vi xử lý và board mạch khác nhau kết hợp bộ lọc Kalman và sử dụng thư viện OpenCV Tuy nhiên, việc phát hiện và theo dõi vật thể bằng màu sắc có rất nhiều hạn chế như nhạy cảm với sự thay đổi bởi điều kiện ánh sáng, sự biến đổi màu sắc của vật thể cũng có thể gây ra sự nhầm lẫn trong quá trình theo dõi Vì vậy, việc sử dụng các mạch bay chuyên dụng với sự kết hợp của AI, học máy (ML) cùng với bộ lọc Kalman mở rộng (EKF) đã được đề xuất để giúp cải thiện cho quá trình nghiên cứu và ứng dụng được trở nên dễ dàng hơn.
Việc kết hợp thuật toán phát hiện đối tượng trên thời gian thực đã giúp nâng cao chất lượng của hệ thống 801 Các nghiên cứu về mạch bay chuyên dụng kết hợp với AI và MC đã tối ưu hóa quá trình bay, mang lại sự ổn định và dễ dàng áp dụng mô hình học máy như YOLO, CNN, từ đó tăng độ chính xác trong phát hiện và theo dõi vật thể, góp phần đẩy mạnh khả năng ứng dụng Drone trong thực tế.
1.1.2 Các nghiên cứu trong nước và tại Trường Đại học Sư phạm Kỹ thuật Ở Việt Nam, Drone đang ngày càng phát triển và có sự quan tâm lớn từ cả cộng đồng nghiên cứu, doanh nghiệp và chính phủ Trong đó, đã có nhiều doanh nghiệp Việt đã đầu tư nghiên cứu và sản xuất thương mại sản phẩm Drone “Make in Việt Nam” như công ty MiSmart hiện đang cung cấp 3 dòng Drone nông nghiệp; Công ty cổ phần thiết bị bay AgriDrone Việt Nam với 7 loại Drone phun thuốc; Công ty cổ phần Dịch vụ Nông nghiệp MAJ đã cho ra mắt mẫu sản phẩm Fly Cam TB01 và 2 dịch vụ Drone hậu cần vào tháng 10/2022
Chủ đề về Drone đang là chủ đề khá mới mẻ và thu hút đối với cộng đồng sinh viên nghiên cứu, đặc biệt là tại Việt Nam Tuy nhiên, do hạn chế về khả năng nghiên cứu cũng như sự thiếu hụt về giảng dạy và nghiên cứu về Drone tại các trường Đại Học, các đề tài về Drone của sinh viên Việt Nam vẫn còn hạn chế Một số mô hình nghiên cứu và ứng dụng của máy bay không người lái tại Việt Nam đã được thực hiện, chẳng hạn như dự án của sinh viên Lê Mạnh Cường trường Đại học Sư phạm vào năm 2019, thể hiện tiềm năng phát triển của lĩnh vực này trong tương lai.
Một nghiên cứu đáng chú ý tại Đại học Sư phạm Kỹ thuật TP HCM đã áp dụng thành công Quadcopter trong việc phát hiện và theo dõi người, sử dụng mô hình bay đơn giản dựa trên mạch Arduino Tuy nhiên, kiến trúc phần mềm kết hợp giữa thuật toán phát hiện chính xác nhưng chậm và thuật toán theo dõi người nhanh nhưng ít chính xác, dẫn đến tốc độ xử lý trung bình chỉ đạt 3-4 FPS.
Các nghiên cứu trước đây về điều khiển mô hình bay Drone đã đạt được một số thành tựu nhất định, nhưng vẫn còn hạn chế về tính ứng dụng và độ chính xác Chẳng hạn, đề tài "Điều khiển mô hình bay Drone bám theo đối tượng" chỉ dừng lại ở việc sử dụng YOLO để phát hiện người, trong khi đề tài "Thiết kế và thực hiện mô hình Quadcopter tự động hạ cánh xuống mục tiêu cố định" chỉ sử dụng bộ điều khiển PID kinh điển cho việc cất và hạ cánh Một số nghiên cứu khác như "Nghiên cứu mô hình phát hiện rác thải nhựa ven biển sử dụng máy bay không người lái và mạng nơ-ron tích chập sâu" đã đề xuất thuật toán phát hiện rác thải nhựa, nhưng vẫn còn tồn tại một số khó khăn về điểm nhìn và đa dạng chủng loại rác thải nhựa.
Năm 2015, một nhóm nghiên cứu sinh viên Việt Nam tại Đại học Ulsan, Hàn Quốc đã trình bày đề tài "Xây dựng mô hình mô phỏng trên LabVIEW cho Quadcopter tự động nhận dạng và bám mục tiêu di động trên cơ sở xử lý ảnh" Đề tài này đã xây dựng mô hình hệ thống mô phỏng để bắt và bám đối tượng dựa trên thuật toán Camshift, sử dụng các thư viện trong MATLAB, LabVIEW và OpenCV Mặc dù đạt được kết quả đáng mong đợi, công việc này vẫn còn hạn chế ở mức mô phỏng và chưa được thực nghiệm.
Các nghiên cứu về Quadcopter tại Việt Nam chủ yếu dừng lại ở mức mô phỏng và ứng dụng đơn giản như cất, hạ cánh, cũng như lý thuyết động học và động lực học Tuy nhiên, việc ứng dụng xử lý ảnh trên Quadcopter tại các trường Đại học trong nước vẫn còn hạn chế Vì vậy, việc mở ra hướng nghiên cứu mới về vấn đề này để áp dụng vào thực tiễn là vô cùng cần thiết, nhằm thúc đẩy và đóng góp cho nền nghiên cứu nước nhà Nhóm nghiên cứu mong muốn tạo ra một mô hình bay tiết kiệm chi phí nhưng vẫn đáp ứng ứng dụng thực tiễn, và đề tài "Thiết kế mô hình bay không người lái và thuật toán bám theo đối tượng" được thực hiện với mục tiêu này.
Mục tiêu đề tài
Thiết kế mô hình máy bay không người lái và giải thuật điều khiển bám theo đối tượng
Tính toán được các phương trình mô tả động học của máy bay bốn cánh từ đó thiết kế mô hình bay có thể bay thăng bằng
Xây dụng được chương trình nhận dạng đối tượng cho máy tính nhúng khi máy bay đang bay
Thiết kế thành công thuật toán điều khiển bay bám theo đối tượng là con người, đánh dấu một bước tiến quan trọng trong lĩnh vực công nghệ tự động hóa Việc áp dụng giải thuật bay bám theo mục tiêu vào mô hình thực tế đã chứng minh hiệu quả cao, mở ra nhiều khả năng ứng dụng trong tương lai.
Nội dung nghiên cứu
Chương 1 của đề tài trình bày tính cấp thiết, đối tượng và phạm vi nghiên cứu, cùng với mục đích thực hiện của đề tài Tiếp theo, những cơ sở lý thuyết về Quadcopter, mô hình động học các kiến thức về xử lý ảnh, AI và thị giác máy tính sử dụng để thực hiện đề tài được trình bày trong chương 2 Nội dung chương 3 sẽ trình bày công việc thiết kế và thi công mô hình Quadcopter Ở chương 4 trình bày thuật toán điều khiển bay Quadcopter, mô hình nhận dạng đối tượng MobileNet- SSD và thuật toán điều khiển bám theo đối tượng Ở chương 5 sẽ trình bày thực nghiệm và đánh giá chương trình xử lý ảnh, cùng với đó là thực nghiệm và đánh giá dữ liệu điều khiển máy bay bốn cánh Cuối cùng, chương 6 sẽ đi đến kết luận và hướng phát triển của đề tài.
Giới hạn đề tài
Mô hình máy bay bốn cánh do nhóm sinh viên thiết kế và thi công có thể vẫn còn hạn chế về độ bền vững và ổn định trong quá trình hoạt động do chưa được kiểm nghiệm thực tế Ngoài ra, do thời gian thực hiện đề tài ngắn, khả năng đáp ứng của Drone khi bám theo người vẫn còn nhiều hạn chế và cần được cải thiện.
Do hạn chế về kinh phí, nhóm nghiên cứu đã sử dụng một camera góc hẹp, không có khả năng tính toán khoảng cách từ đối tượng được phát hiện đến camera Điều này dẫn đến hạn chế trong việc theo dõi nhiều đối tượng cùng lúc, khi đó drone chỉ có thể bám theo người đầu tiên xuất hiện trong khung hình Để giải quyết vấn đề này, nhóm có thể áp dụng phương pháp khác hoặc cải tiến từ phương pháp phát hiện hiện tại.
Các công cụ đánh giá
Để phân tích nghiên cứu về Quadcopter X, chúng tôi đã sử dụng các công cụ tìm kiếm như Google, Scholar để thu thập thông tin và dữ liệu liên quan Đồng thời, chúng tôi cũng tiến hành phân tích cơ sở toán học của Quadcopter X thông qua việc tính toán và phân tích động học dựa vào cấu hình của nó.
Phân tích thực nghiệm: Sử dụng phần mềm Mission Planner để quan sát và thu thập dữ liệu quá trình bay của Quadcopter
Phân tích dữ liệu: Sử dụng phần mềm MATLAB để phân tích dữ liệu
Để đánh giá hiệu quả của phương pháp xử lý ảnh, có hai tiêu chí quan trọng cần xem xét Thứ nhất, mô hình xử lý ảnh được đánh giá dựa trên thông số mAP thông qua tệp dữ liệu COCO và số lần thực nghiệm, giúp đo lường độ chính xác của mô hình Thứ hai, quá trình huấn luyện được đánh giá thông qua đồ thị Loss thu được, từ đó chọn bộ thông số tốt nhất cho mô hình.
CƠ SỞ LÝ THUYẾT
Lý thuyết về thiết bị bay không người lái
Máy bay không người lái, hay còn được gọi tắt là UAV (Unmanned Aerial Vehicle), là những phương tiện bay hiện đại không có sự hiện diện của phi công trên buồng lái, mang lại nhiều ứng dụng và lợi ích trong các lĩnh vực khác nhau.
Các thiết bị này hoạt động như những Robot di động được vi tính hoá, cho phép điều khiển từ xa bởi con người hoặc vận hành tự động bằng máy tính thông qua chương trình kế hoạch bay đã tải lên Chúng được trang bị cảm biến gắn trên máy bay và hệ thống định vị toàn cầu (GPS), giúp đảm bảo hoạt động chính xác và hiệu quả.
Hình 2.1: Mô tả thiết bị bay không người lái UAV
2.1.2 Lịch sử ra đời và phát triển
Vào cuối thế kỷ XV, Leonardo Da Vinci đã thiết kế và phác thảo một ý tưởng mang tên "Vít bay" (Aerial screw), có hình dạng tương tự như máy bay trực thăng hiện đại Đây được coi là tiền đề đầu tiên cho sự phát triển của các phương tiện bay sau này, đánh dấu một bước ngoặt quan trọng trong lịch sử hàng không.
Hình 2.2: Mô tả Aerial screw của Leonardo da Vinci
Sau thành công nổi tiếng năm 1909 của anh em nhà Wright tại Kitty Hawk, Bắc Carolina, chiếc máy bay Wright Flyer đã trở thành hiện thực, đánh dấu sự khởi đầu của kỷ nguyên hàng không khi trở thành chiếc máy bay đầu tiên được cất cánh thành công.
Hình 2.3: Orville và Wilbur Wright cùng chiếc máy bay Wright Flyer đầu tiên
Thiết bị bay không người lái đã có những bước đầu tiên trong lịch sử, khi được ứng dụng vào mục đích quân sự từ rất sớm Một trong những ví dụ đầu tiên về UAV thô sơ được ghi nhận vào tháng 7-1849, khi quân đội Áo sử dụng 200 khinh khí cầu không người lái chứa chất nổ để tấn công thành phố Venice của Ý Tuy nhiên, kế hoạch này đã thất bại do điều kiện thời tiết không thuận lợi.
Hình 2.4: Ý tưởng đầu tiên về UAV của quân đội Áo tại Venice
Khi chiến tranh thế giới thứ nhất bùng nổ, sự phát triển của công nghệ động cơ phản lực và động cơ quạt tua-bin đã mở đường cho việc tạo ra chiếc máy bay không người lái hiện đại đầu tiên vào năm 1916, được gọi là "Ruston Proctor Aerial Target", sử dụng hệ thống dẫn đường vô tuyến tiên tiến do kỹ sư người Anh Archibald Low thiết kế.
Hình 2.5: Archibald Low và máy bay không người lái Ruston Proctor
Năm 1996, công ty General Atomics của Mỹ đã chế tạo máy bay do thám không người lái MQ-1 Predator, nổi bật với khả năng tàng hình sóng Radar, trang bị vũ khí hiện đại và đạt tốc độ bay lên đến 217km/h, trở thành UAV quân sự mạnh mẽ nhất thời điểm đó.
Hình 2.6: Máy bay không người lái hiện đại MQ-1 Predator của quân đội Hoa Kỳ
Bước sang thế kỷ XIX, các UAV đã mở rộng ứng dụng của mình vượt ra ngoài lĩnh vực quân sự, phát triển mạnh mẽ trong nhiều lĩnh vực khác với mục đích dân dụng, thường được gọi là máy bay không người lái dân dụng.
Các Drone hiện đại đã trải qua nhiều cải tiến đáng kể so với nguyên bản, đặc biệt về hình dạng, kích thước và hiệu suất động cơ Đa số các Drone thương mại thường có công suất nhỏ, giá thành phải chăng và kết cấu đơn giản, giúp dễ dàng thao tác và điều khiển, phục vụ cho mục đích sử dụng trong lĩnh vực thương mại.
Hình 2.7: Các Drone hiện đại ngày nay
Một trong những thiết kế phổ biến nhất của máy bay không người lái là cơ cấu Quadcopter với 4 cánh quạt được gắn trên khung hình chữ "X" hoặc dấu "+", dựa trên thiết kế "de Bothezat helicopter" của George de Bothezat năm 1920 Thiết kế này tận dụng các nguyên lý khí động học và con quay hồi chuyển để cất cánh, và đã trở thành một lựa chọn rộng rãi trong nghiên cứu và ứng dụng hiện nay.
Hình 2.8: Mô hình “de Bothezat helicopter” của George de Bothezat năm 1920
2.1.3 Phân loại và ưu nhược điểm của các cấu hình
2.1.3.1 Phân tích ưu nhược điểm của các cấu hình UAV
Các cấu hình UAV có thể được phân loại dựa trên sự đa dạng về đặc điểm cấu trúc, cách thức hoạt động và tính ứng dụng của chúng, tạo nên sự phong phú và đa dạng trong lĩnh vực công nghệ bay không người lái.
Bảng 2-1: Phân tích các cấu hình UAV
Loại UAV Ưu điểm Nhược điểm
Thời gian hoạt động lâu Ít tiêu tốn năng lượng
Vùng hoạt động rộng lớn
Giá thành cao, nhiều rủi ro, vận hành phức tạp
Phụ thuộc điều kiện thời tiết, tải trọng
Cần đường băng dài để cất/hạ cánh
Cất/hạ cánh theo phương thẳng đứng
Chịu tải trọng tương đối tốt Độ an toàn, ổn định không cao
Chi phí vận hành, bảo dưỡng cao, khó điều khiển và kiểm soát
Dễ tiếp cận, sử dụng
Hoạt động trong địa hình hiểm trở, linh hoạt trong cất và hạ cánh Độ ổn định, giá thành rẻ
Thời gian hoạt động ngắn, tốc độ bay thấp Tải trọng giới hạn Phạm vi hoạt động thấp
Dựa trên phân loại trên, UAV dạng Multicopter được coi là lựa chọn phù hợp cho ứng dụng nhận dạng và bám theo đối tượng Trong số đó, có một số chủng loại Multicopter phổ biến như Tricopter (3 cánh quạt), Hexacopter (6 cánh quạt) và Octocopter, mỗi loại đều có những đặc điểm và ứng dụng riêng.
2.1.3.2 Phân tích hiệu năng các dạng Multicopter
Hình 2.9: Các dạng Multicopter thông dụng
Với các nhiều khác biệt về cấu tạo và phân bố điều khiển Do đó, cần có so sánh hiệu năng giữa chúng
Bảng 2-2: So sánh hiệu năng các chủng loại Multicopter
Stt Yếu Tố Tricopter Quadcopter Hexacopter Octocopter
2 Stabilization Điều chỉnh Tốt Tốt Rất tốt
3 Sức nâng Thấp Trung bình Cao Rất cao
4 Tải trọng Nhẹ Trung bình Cao Rất nặng
5 Độ ổn định Thấp Cao Rất cao Rất cao
6 Khả năng chịu gió Thấp Trung bình Cao Rất cao
7 Độ phức tạp Thấp Thấp Trung bình Cao
8 Kích thước Nhỏ Nhỏ Trung bình Lớn
9 Tiêu thụ năng lượng Thấp Trung bình Trung bình Cao
10 Giá thành Thấp Thấp Trung bình Cao
Bảng phân tích hiệu năng đã chỉ ra rằng Quadcopter sở hữu một số ưu điểm đáng kể, bao gồm kết cấu cơ khí đơn giản, kích thước nhỏ gọn, cho phép nó linh hoạt trong phạm vi hẹp và dễ dàng điều khiển Những đặc điểm này cũng giúp người dùng mới dễ dàng làm quen và sử dụng Ngoài ra, chi phí chế tạo Quadcopter tương đối thấp Với những lợi thế này, mô hình máy bay Quadcopter đã được lựa chọn để phân tích và sử dụng trong đề tài nghiên cứu, phù hợp với yêu cầu và khả năng của sinh viên.
2.1.4 Lý thuyết về máy bay bốn cánh
Quadcopter là loại UAV có thiết kế khung hình chữ thập, chữ H hoặc chữ X, với bốn động cơ được đặt ở bốn góc Khi hoạt động, mỗi động cơ kết hợp với cánh quạt tạo ra lực nâng và mô-men xoắn riêng biệt xung quanh tâm của chúng Đặc biệt, bốn cánh quạt trên quadcopter được chia thành hai nhóm quay ngược chiều nhau, với hai cánh đối diện quay cùng chiều, tạo nên sự ổn định và cân bằng cho thiết bị bay này.
Hình 2.10: Dạng khung máy bay bốn cánh phổ biến
Cấu trúc Quadcopter dạng chữ X được thiết kế với động cơ #1 và #3 quay ngược chiều kim đồng hồ (CCW), trong khi động cơ #2 và #4 quay cùng chiều kim đồng hồ (CW) Khi các động cơ này hoạt động, các cánh quạt gắn trên chúng sẽ tạo ra lực nâng (Thrust) và mô-men (Moments) tác động lên thiết bị bay, giúp nó có thể di chuyển và ổn định trong không khí.
Hình 2.11: Mô tả nguyên lý cân bằng của Quadcopter
Lý thuyết bộ điều khiển vi tích phân tỉ lệ
Bộ điều khiển PID là một hệ thống hồi tiếp vòng kín được ứng dụng rộng rãi trong lĩnh vực điều khiển tự động, đặc biệt là trong điều khiển máy bay không người lái Với sự kết hợp của ba khâu chính là tỉ lệ, tích phân và vi phân, bộ điều khiển PID có khả năng loại bỏ sai số xác lập, tăng tốc độ đáp ứng và giảm độ vọt lố khi các thông số được lựa chọn phù hợp.
Hình 2.32 Cấu trúc bộ điều khiển PID
Bộ điều khiển PID hoạt động dựa trên nguyên tắc liên tục tính toán giá trị "sai số" - hiệu số giữa giá trị biến đổi thực tế và giá trị đặt mong muốn Quá trình này cho phép bộ điều khiển xác định mức độ chênh lệch và thực hiện điều chỉnh cần thiết để giảm thiểu sai số Thông qua công thức tính toán, bộ điều khiển PID điều chỉnh giá trị điều khiển đầu vào một cách chính xác, đảm bảo rằng hệ thống hoạt động ổn định và đạt được giá trị mong muốn.
Các tham số điều khiển PID bao gồm độ lợi tỷ lệ (Kp), độ lợi tích phân (Ki) và độ lợi vi phân (Kd), mỗi tham số đều có ảnh hưởng riêng đến hệ thống Độ lợi tỷ lệ (Kp) càng lớn thì thời gian đáp ứng càng nhanh, nhưng cũng làm tăng sai số Trong khi đó, độ lợi tích phân (Ki) giúp triệt tiêu sai số ổn định nhanh hơn, nhưng cũng làm tăng độ vọt lố Ngược lại, độ lợi vi phân (Kd) giúp giảm độ vọt lố, nhưng có thể làm chậm đáp ứng quá độ và gây mất ổn định Việc lựa chọn giá trị phù hợp cho các tham số này là rất quan trọng để đảm bảo hệ thống hoạt động ổn định và chính xác.
Lý thuyết về trí tuệ nhân tạo và thị giác máy tính
Trí tuệ nhân tạo (Artificial Intelligence - AI) là quá trình mô phỏng trí tuệ của con người bằng các hệ thống máy tính, bao gồm các quy trình học tập, hệ thống lý luận và tự điều chỉnh Trong lĩnh vực máy bay không người lái, AI đóng vai trò quan trọng trong việc thu thập thông tin, xử lý dữ liệu và đưa ra quyết định Điều này giúp ứng dụng nhận dạng và theo dõi đối tượng trở nên hiệu quả hơn, đồng thời là nòng cốt cho sự phát triển của máy bay tự hành.
Trí tuệ nhân tạo (AI) là một lĩnh vực rộng lớn bao gồm nhiều kỹ thuật và phương pháp khác nhau để giải quyết các bài toán và nhiệm vụ, trong đó có Machine Learning (học máy), Search and Optimization (tìm kiếm và tối ưu hóa), Logical Reasoning (lập luận logic) và đặc biệt là Deep Learning (học sâu) - một tập hợp con của Machine Learning với khả năng suy nghĩ và tư duy tương tự con người Cấu trúc bộ não người với các tế bào thần kinh (nơ-ron) liên kết với nhau tạo thành mạng lưới là ý tưởng ban đầu cho các mô hình toán học của Machine Learning, trong đó mỗi nơ-ron nhận dữ liệu đầu vào, tính toán đầu ra dựa trên trọng số liên kết và hàm kích hoạt, và kết nối với nhau thành các lớp theo kiến trúc truyền thẳng hoặc kiến trúc phản hồi để tạo thành mạng thần kinh nhân tạo.
Hình 2.34: Cấu trúc mô hình học máy dựa trên nơ-ron con người
Mạng thần kinh nhân tạo (ANN) là một hệ thống phức tạp gồm nhiều lớp nơ-ron nhân tạo kết nối với nhau Mỗi lớp bao gồm một dãy các nút mạng (node) được liên kết với các lớp liền kề thông qua các trọng số tương ứng Các nút này có chức năng áp dụng hàm kích hoạt để "chuẩn hóa" đầu ra, cho phép thông tin được truyền tải một cách chính xác giữa các nút và lớp khác nhau trong mạng.
Quá trình xử lý dữ liệu trong mạng nơ-ron diễn ra khi dữ liệu được đưa vào mạng và đi qua tất cả các lớp, cuối cùng trả về kết quả ở lớp cuối cùng Trong quá trình huấn luyện mạng nơ-ron, trọng số được cập nhật liên tục để tìm ra bộ trọng số tối ưu, giúp mô hình đạt được khả năng dự đoán tốt nhất.
Hình 2.35: Cấu trúc mạng thần kinh nhân tạo
Mô hình càng nhiều lớp thì càng có khả năng xử lý dữ liệu phức tạp và giải quyết các bài toán khó khăn hơn Quá trình học tập của máy tính thông qua các mô hình ANN có nhiều lớp kết nối đã dẫn đến sự ra đời của khái niệm học sâu, còn được gọi là Deep Learning.
Học sâu (Deep Learning - DL) là một nhánh quan trọng của Machine Learning, cho phép máy tính tự học hỏi và cải thiện chính mình thông qua các thuật toán tiên tiến Trọng tâm của học sâu là các mạng thần kinh nhân tạo, được thiết kế để mô phỏng cách thức hoạt động của bộ não con người Nhờ vào khả năng tự học hỏi và thích nghi, học sâu đã trở thành một công cụ mạnh mẽ trong nhiều lĩnh vực, từ xử lý ngôn ngữ tự nhiên đến nhận dạng hình ảnh và phân tích dữ liệu lớn.
Mô hình học sâu nhận dữ liệu đầu vào và truyền qua mạng lưới các lớp ẩn, nơi dữ liệu được sửa đổi để có mối quan hệ tương quan với biến mục tiêu Quá trình này diễn ra thông qua các nút trong mạng lưới, mỗi nút mang một trọng số và thực hiện phép nhân với dữ liệu khi đi qua Sau khi đi qua nhiều lớp khác nhau, mô hình học sâu có thể điều khiển dữ liệu thành thông tin có ý nghĩa, từ đó tạo ra kết quả đầu ra chính xác.
Trong lĩnh vực Học sâu (Deep Learning - DL), máy tính được đào tạo để thực hiện các nhiệm vụ phức tạp như phân loại hình ảnh, nhận dạng ký tự, văn bản hoặc xử lý ngôn ngữ tự nhiên Các mô hình học sâu này đạt được độ chính xác cao, thậm chí vượt qua hiệu suất của con người trong một số trường hợp Một ví dụ điển hình của ứng dụng học sâu là Thị giác máy tính, được sử dụng rộng rãi trong lĩnh vực robot, đặc biệt là trong phát triển máy bay không người lái (drone).
Hình 2.36: Mô hình học sâu nhận biết hình ảnh
Thị giác máy tính (Computer Vision - CV) là một ứng dụng quan trọng của Deep Learning, cho phép máy móc nhận biết thông tin qua hình ảnh thông qua kỹ thuật xử lý ảnh và mạng nơ-ron tích chập Dữ liệu hình ảnh được xử lý và phân tích để trích xuất thông tin quan trọng và đưa ra quyết định dựa trên đó Một trong những ứng dụng chính của thị giác máy tính là phát hiện đối tượng, quá trình xác định và nhận biết đường bao của các đối tượng cụ thể trong hình ảnh.
2.3.3.1 Mạng thần kinh tích tập
Mạng thần kinh tích chập (Convolutional Neural Network - CNN) là một mô hình học sâu hàng đầu trong lĩnh vực thị giác máy tính, với cấu trúc tương tự như mạng thần kinh nhân tạo của Deep Learning CNN được thiết kế đặc biệt cho việc phân tích hình ảnh, trong đó ảnh đầu vào sẽ được nhân tích chập với một loạt các bộ lọc để trích xuất các đặc trưng như cạnh, vùng đối tượng và các đặc trưng khác Những đặc trưng này sau đó sẽ được cung cấp cho các lớp theo sau, và cuối cùng, thông qua lớp kết nối đầy đủ và áp dụng hàm Softmax, mô hình sẽ phân loại đối tượng với giá trị xác suất giữa 0 và 1.
Hình 2.37: Cấu trúc mạng thần kinh tích chập CNN
Các mạng CNN được thiết kế theo kiến trúc tuần tự, bao gồm một chuỗi các lớp quan trọng Để xây dựng một mạng CNN, người ta thường sử dụng ba loại lớp chính: lớp tích chập (Convolutional Layer), lớp gộp (Pooling Layer) và lớp kết nối đầy đủ (Fully Connected Layer), cùng với các phép tính như làm phẳng (Flattening) và Phép chọn kết quả (Softmax) Các lớp này được xếp chồng lên nhau để tạo thành các khối nhiệm vụ, trong đó có hai khối nhiệm vụ chính được sử dụng để phân loại đối tượng bằng hình ảnh.
- Khối học tính năng (Feature learning)
• Lớp tích chập: Được sử dụng để phát hiện các tính năng
• Hàm kích hoạt phi tuyến: Chuyển từ tuyến tính sang phi tuyến cho dữ liệu nhờ các hàm phi tuyến như Sigmoid, ReLU,
• Lớp gộp: Giảm số lượng trọng số và kiểm soát độ phức tạp của dữ liệu
• Phép làm phẳng :Chuẩn bị dữ liệu cho mạng nơ-ron cổ điển
• Lớp kết nối đầy đủ: Mạng nơ-ron tiêu chuẩn được sử dụng để phân loại
• Phép chọn kết quả: Lựa chọn kết quả dựa trên xác suất mà mạng tìm được
Lớp tích chập - Convolutional Layer
Trong Hình 2.38, đầu vào của lớp tích chập được thể hiện ở bên trái, trong khi đó bộ lọc tích chập hay còn gọi là kernel được hiển thị ở bên phải Kernel là một ma trận vuông với kích thước kk, trong đó k là một số lẻ, đóng vai trò quan trọng trong quá trình tích chập.
Hình 2.38 Đầu vào và bộ lọc của CNN
Lớp tích chập hoạt động dựa trên nguyên tắc nhân tích chập giữa ma trận điểm ảnh đầu vào và ma trận lọc để tạo ra một ma trận đặc trưng Ma trận Kernel thường có kích thước nhỏ hơn kích thước ma trận đầu vào, phổ biến nhất là các kích thước 3x3, 5x5 hoặc 7x7.
Hình 2.39 Dữ liệu đầu vào, bộ lọc và kết quả của một lớp tích chập
Ảnh được biểu diễn dưới dạng tensor 3 chiều với 3 kênh màu Red, Green và Blue Vì vậy, khi thực hiện nhân tích chập, ma trận lọc cũng là một tensor 3 chiều tương ứng với kích thước kk3 Quá trình này được thực hiện bằng cách quét ma trận lọc qua ma trận dữ liệu đầu vào từ trái sang phải và từ trên xuống dưới, sử dụng phép nhân Element-Wise cho từng giá trị đầu vào và cộng lại kết quả.
Hình 2.40 Hoạt động tích chập của CNN
Hoạt động tích chập của một CNN, I là một mảng đầu vào, K là bộ lọc tích chập, I K là đầu ra của tích chập Công thức của lớp tích chập:
Với I là ma trận ảnh đầu vào, K là kích thước của ma trận lọc có chiều rộng w và chiều cao h
Quá trình nhân tích chập được thực hiện nhiều lần trên một đầu vào, mỗi lần sử dụng một bộ ma trận lọc khác nhau, dẫn đến việc tạo ra nhiều bản đồ đặc trưng (Feature map) riêng biệt Các bản đồ đặc trưng này sau đó được sắp xếp lại với nhau, tạo thành đầu ra cuối cùng của lớp tích chập dưới dạng một ma trận 3 chiều nhiều lớp, bao gồm nhiều ma trận đặc trưng khác nhau.
Hàm kích hoạt - Activation Function
Lý thuyết nhận dạng đối tượng bằng phương pháp học sâu
Các mô hình phát hiện đối tượng đã được huấn luyện để phát hiện đối tượng trong hình ảnh, video hoặc trong thời gian thực, trở thành một lĩnh vực đáng quan tâm trong nhiều năm qua Trước khi có sự phát triển của phương pháp học sâu và các công nghệ xử lý ảnh hiện đại, các phương pháp xử lý ảnh truyền thống như HOG (Histogram of Oriented Gradients) kết hợp với các thuật toán trích xuất cạnh và phân đoạn đối tượng thường được áp dụng để giải quyết bài toán này.
Sự ra đời của mạng nơ-ron tích chập (CNN) và những tiến bộ trong công nghệ thị giác máy tính đã mở ra nhiều hướng tiếp cận mới cho bài toán phát hiện đối tượng với độ chính xác cao hơn Một trong những thuật toán phát hiện đối tượng phổ biến nhất được sử dụng rộng rãi sẽ được nhóm chúng tôi tìm hiểu và trình bày trong phần này.
Mạng Region-Convolutional Neural Network (R-CNN) là một mô hình mạng nơ-ron tích chập đặc biệt được công bố để giải quyết bài toán nhận dạng đối tượng, bao gồm Object Detection, Localization và Classification R-CNN có khả năng định vị và nhận biết được các đối tượng trong ảnh, với đầu ra thường là một tập những khung bao quanh (Bounding Box) những đối tượng được nhận biết và nhãn của đối tượng đó với phân phối xác suất (Confidence).
Hình 2.47: Hoạt động của mạng R-CNN
R-CNN sử dụng các Pre-train về phân loại ảnh, ví dụ VGG hoặc Resnet đã được đào tạo cho bộ ImageNet dataset Nhiệm vụ phân loại liên quan đến N lớp Sau đó đề xuất các vùng Region of Interest (ROI) có thể chứa đối tượng với các Size khác nhau bằng thuật toán Selective Search, Fine-tune mạng CNN (với Learning Rate nhỏ và Mini-batch) trên các vùng được đề xuất cho K+1 lớp Với mỗi Proposed Region, mỗi lần truyền qua CNN sẽ tạo ra một Feature vector Sau đó Feature vector này sẽ được sử dụng bởi thuật toán nhị phân (Support Vector Machine- SVM) đã được đào tạo cho từng lớp Những Positive samples là những Proposed Region có IoU (Intersection over Union) lớn hơn mức đã định, còn lại sẽ là Negative Samples
Sau sự ra đời của mô hình R-CNN, một số mô hình mạng khác đã được phát triển, bao gồm Fast-R-CNN và Faster-R-CNN, với mục tiêu cải thiện đáng kể thời gian huấn luyện và độ chính xác của mô hình, đồng thời cho phép áp dụng vào các bài toán yêu cầu thời gian thực.
Fast R-CNN optimizes the process by performing a single CNN forward pass over the entire image, allowing region proposals to share the same feature matrix, rather than extracting CNN feature vectors for each proposal individually This shared feature matrix is then branched out for use in classification and bounding-box regression tasks.
Mô hình Faster R-CNN tích hợp thuật toán đề xuất vùng (region proposal) vào mạng CNN, tạo thành một mô hình duy nhất bao gồm Region Proposal Network (RPN) và Fast R-CNN, trong đó mạng CNN được chia sẻ giữa hai thành phần này, giúp tăng hiệu suất và độ chính xác trong việc phát hiện đối tượng.
Mặc dù các mạng kể trên đã đạt được những thành công nhất định, nhưng chúng vẫn còn một số hạn chế đáng kể Quá trình huấn luyện mô hình vẫn còn cồng kềnh và tốn nhiều thời gian, đồng thời xảy ra trên nhiều giai đoạn khác nhau Điều này dẫn đến mô hình mạng làm việc chậm so với thời gian thực, gây ra những hạn chế trong việc ứng dụng thực tế Để giải quyết những vấn đề này, kiến trúc mạng mới Single-Shot Detector (SSD) đã được đề xuất, hứa hẹn mang lại hiệu suất tốt hơn và khả năng thực hiện trên thời gian thực.
2.4.2 SSD: Single Shot MultiBox Detector
W Liu (2016) đã phát triển một Single Shot MultiBox Detector (SSD) [35] để dự đoán cùng một lúc các hộp giới hạn và xác suất lớp bằng một kiến trúc CNN end- to-end Single Shot là việc định vị và phân loại đối tượng được thực hiện trên 1 phase duy nhất từ đầu đến cuối, MultiBox là tên của kỹ thuật về Bounding Box được sử dụng bởi Szegedy và các cộng sự, Detector là khả năng nhận biết và phân loại đối tượng
Mô hình này nhận một hình ảnh làm đầu vào và sau đó đi qua nhiều lớp tích chập với các bộ lọc có kích thước khác nhau, bao gồm 1010, 55 và 33 Các bản đồ đặc trưng được tạo ra từ các lớp tích chập ở vị trí khác nhau trong mạng sẽ được sử dụng để dự đoán các hộp giới hạn Tiếp theo, các hộp giới hạn này sẽ được xử lý bởi các lớp tích chập cụ thể có bộ lọc 33, còn được gọi là các lớp đặc trưng bổ sung, để tạo ra một tập hộp giới hạn chính xác hơn.
Mô hình SSD dựa trên kiến trúc chuẩn như VGG16 đã được loại bỏ tầng Fully-Connected, tạo ra một khối Feature map gọi là Base Network Sau đó, 6 tầng Convolution phụ trợ được thêm vào để trích xuất các Features với nhiều tỉ lệ khác nhau và giảm kích thước đầu vào trong từng tầng mạng Trên Feature map này, hai biến đổi chính được áp dụng: Convolutional Layer để thu được các lớp ngõ ra tiếp theo và Classifier để nhận diện đối tượng, vùng đề xuất và xác xuất tỉ lệ của chúng Mô hình SSD nhận đầu vào là các bức ảnh có kích thước cố định, chẳng hạn 3003003 đối với kiến trúc SSD300 hoặc 5005003 đối với kiến trúc SSD500.
Hình 2.51: Cấu trúc mạng cơ sở VGG16 hỗ trợ cho SSD
Sau khi thu được Feature map ở Base Network, chúng ta sẽ tiếp tục bổ sung các lớp Convolutional Layers để giảm kích thước của Feature map, từ đó giảm thiểu số lượng khung hình cần dự báo và cho phép dự báo và nhận diện vật thể ở nhiều hình dạng kích thước khác nhau Điều này cho phép các Feature map có kích thước lớn phát hiện tốt các vật thể nhỏ, trong khi các Feature map kích thước nhỏ giúp phát hiện tốt hơn các vật thể lớn, tăng cường khả năng nhận diện và dự báo chính xác.
Hình 2.52 Các Feature map sau khi qua các lớp tích chập
Kĩ thuật Bounding box được sử dụng trong SSD được lấy ý tưởng từ Szegedy
[36] là phương pháp sử dụng nhiều bounding box phù hợp với mọi đối tượng lớn nhỏ Dưới đây là cấu trúc của Multi-scale Convolution Prediction trong SSD
Hình 2.53: Cấu trúc Multi-scale convolution prediction trong SSD
Loss Function của MultiBox là sự kết hợp của 2 thành phần tương ứng với 2 chức năng của SSD:
• Confidence Loss: Sử dụng Cross-entropy để tìm tỉ lệ rơi vào Class mà Bounding box được tính toán
• Location Loss: Sử dụng L2-Norm để uớc lượng sự sai lệch thực tế của Bounding box so với tập dữ liệu mẫu
Trong mô hình MultiBox, khái niệm Priors đề cập đến các Default Bounding Box được tính toán trước với kích thước cố định, tuân theo phân phối gần giống với phân phối của Bounding Box mẫu Các Priors này được lựa chọn dựa trên tỉ lệ Intersection/Union (IoU) lớn hơn ngưỡng 0.5, tạo nền tảng cho giải thuật Bounding Box Regression học tham số của mạng một cách hiệu quả Mặc dù giá trị IoU tại 0.5 chưa phải là lý tưởng, nhưng nó vẫn là điểm bắt đầu ổn định cho quá trình hồi quy, giúp tiết kiệm thời gian và mang lại kết quả tốt hơn so với việc bắt đầu tại một vị trí ngẫu nhiên.
Kiến trúc của SSD bao gồm một tập hợp các Bounding Box mặc định với số chiều và tỉ lệ khác nhau cho mỗi Cell của Feature map, bao gồm các kích thước như 88, 66, 44, 33, 22 và một Prior duy nhất với kích thước 11, giúp bao phủ toàn bộ bức ảnh đầu vào trên nhiều tỉ lệ khác nhau Các Prior này được chọn một cách thủ công, cho phép SSD tạo ra Bounding Box cho bất kỳ kiểu đầu vào nào mà không cần phải trải qua giai đoạn Pre-trained trước đó.
Đối với mỗi Feature map, quá trình phân loại sẽ chia nó thành một Grid cell có kích thước (Width × Height), đồng thời bỏ qua chiều sâu vì quá trình này thực hiện tích chập trên toàn bộ chiều sâu Trong Grid cell, mỗi Pixel sẽ tạo ra 6 Default Bounding Boxes với các tỷ lệ khung hình khác nhau Mỗi Default Bounding Boxes sẽ cần tìm các tham số bao gồm phân phối xác suất của nhãn dưới dạng vector (n class) và 4 tham số Offsets (x, y, w, h) để xác định chính xác Bounding Boxes.
Do đó trên mỗi Default Bounding có n class _ + 4 Số lượng thông tin được được sinh ra trên mỗi Feature map là ( width height ) 6 ( _ n classes + 4)
Hình 2.54 Ngõ ra SSD Ngõ ra của SSD là một vector:
Lý thuyết theo dõi theo đối tượng
2.5.1 Khái niệm theo dõi đối tượng bằng hình ảnh
Xác định vị trí của đối tượng bằng hình ảnh từ camera là kỹ thuật quan trọng trong việc theo dõi và định danh các vật thể trong video Object Tracking là công nghệ cho phép gán một ID duy nhất cho từng vật thể, giúp định danh và theo dõi chúng khi di chuyển trong ngữ cảnh Quá trình này bắt đầu khi vật thể xuất hiện và kết thúc khi vật thể rời khỏi ngữ cảnh Mục tiêu chính của Object Tracking là xác định chính xác các đối tượng cần quan tâm, ước lượng quỹ đạo di chuyển và truy vết chúng khi di chuyển trong video.
Nhận dạng đối tượng (Object Detection) và theo dõi đối tượng (Object Tracking) có mối quan hệ chặt chẽ với nhau Để theo dõi một đối tượng trong toàn bộ video, mô hình cần phải xác định được đối tượng đó trong từng khung hình thông qua Object Detection, sau đó áp dụng thuật toán theo dõi Độ chính xác của việc theo dõi đối tượng phụ thuộc vào khả năng phát hiện đối tượng của mô hình trong từng frame.
2.5.2 Phương pháp theo dõi đối tượng
There are numerous image processing-based methods for object tracking, including Meanshift, Deep Learning-based Tracking (SIFT), Optical Flow Tracking, Minimum Output Sum of Squared Error (MOSSE), Visual IOU Object Tracker, and Centroid Based Object Tracking, each offering unique approaches to accurately track objects.
Bảng 2-12: Các kỹ thuật theo dõi đối tượng dựa vào xử lý ảnh
STT Phương pháp Mô tả
Kỹ thuật Meanshift tracking sử dụng histogram để xác định vị trí của đối tượng, đồng thời tìm kiếm điểm tối đa trên Histogram để định vị chính xác đối tượng đó Đây là một phương pháp hiệu quả, đặc biệt phù hợp với các đối tượng có kích thước và hình dạng đồng đều, giúp tăng cường độ chính xác trong quá trình theo dõi.
Kỹ thuật theo dõi đối tượng sử dụng mạng Neural để học và theo dõi đối tượng trên các khung hình tiếp theo, giúp đạt được kết quả tốt trên nhiều tập dữ liệu, đặc biệt là với phương pháp Deep Learning-based Tracking, hiện đang là phương pháp phổ biến nhất hiện nay.
Kỹ thuật Optical Flow tracking sử dụng phương trình liên quan đến tốc độ chuyển động của các điểm trên hình ảnh để xác định vị trí của đối tượng Ưu điểm của kỹ thuật này là đặc biệt hiệu quả đối với các đối tượng di chuyển nhanh, giúp theo dõi và xác định vị trí chính xác hơn.
Bộ lọc tương quan thích ứng (Adaptive Correlation Filters) được ứng dụng để theo dõi đối tượng trong các khung hình tiếp theo MOSSE tính toán hàm tương quan giữa mẫu đối tượng và khung hình hiện tại, sau đó sử dụng kết quả này để cập nhật bộ lọc cho khung hình tiếp theo, đảm bảo độ chính xác và hiệu suất theo dõi cao.
Intersection-over-Union is another technique in tracking that links detections of consecutive frames using their spatial overlap, enabling the tracing of objects across frames.
Centroid-based Object Tracking tận dụng Euclidean Distance giữa các Centroids của đối tượng được phát hiện giữa 2 Frames liên tiếp trong một Video
2.5.3 Centroid based Object Tracking Đối với đề tài, nhóm em sử dụng Centroid based Object Tracking vì không đòi hỏi tính toán phức tạp và có thể hoạt động với tốc độ cao và phù hợp với các ứng dụng thời gian thực
Phương pháp Centroid dựa trên giả định rằng tâm của một đối tượng sẽ di chuyển một khoảng cách nhỏ giữa các khung hình liên tiếp Điều này cho phép phương pháp Centroid Tracking đáp ứng nhu cầu xử lý nhanh chóng và hiệu quả trong các tác vụ liên quan đến theo dõi đối tượng.
Phương pháp này nổi bật với sự đơn giản và hiệu quả trong việc theo dõi vật thể Bằng cách tận dụng thông tin hình học cơ bản như tâm và kích thước của vật thể, phương pháp này giúp đơn giản hóa quá trình tính toán và làm giảm đáng kể thời gian xử lý, mang lại kết quả nhanh chóng và chính xác.
• Độ chính xác tốt: Phương pháp này có độ chính xác tốt đối với các đối tượng di chuyển chậm hoặc không di chuyển nhiều
Hình 2.73: Phương pháp Centroid based Object Cách thức hoạt động gồm 4 bước:
Bước đầu tiên trong quá trình phát hiện và theo dõi đối tượng là xác định các đối tượng tại thời điểm t-1 và đóng khung chúng trong các Bounding boxes Tiếp theo, tính toán các Centroids (trung tâm) của các đối tượng đã được phát hiện tại thời điểm này để tạo cơ sở cho việc theo dõi và phân tích tiếp theo.
Tại bước thứ hai, hệ thống sẽ phát hiện và khoanh vùng các đối tượng (Objects) trong khung hình tại thời điểm t bằng cách sử dụng các Bounding box Đồng thời, mỗi đối tượng sẽ được gán một mã định danh duy nhất (Unique ID) để phân biệt và theo dõi Ngoài ra, hệ thống cũng tính toán tâm (Centroids) của các đối tượng được phát hiện tại thời điểm t, cung cấp thông tin chính xác về vị trí của chúng.
To determine the continuity of moving objects, calculate the Euclidean Distance between the Centroids of detected objects at time t-1 and t If the distance between the Centroids at time t-1 and t is less than the Threshold, it indicates that they belong to the same moving object.
Khi khoảng cách giữa đối tượng cũ và mới vượt quá giá trị Threshold, hệ thống sẽ tự động tạo ra một Object ID mới Trong trường hợp ngược lại, hệ thống sẽ sử dụng lại Object ID hiện tại và cập nhật lại Bounding box mới cho đối tượng, giúp duy trì sự chính xác và liên tục trong việc theo dõi và nhận diện đối tượng.
THIẾT KẾ MÔ HÌNH MÁY BAY BỐN CÁNH
Tổng quan hệ thống
Hình 3.1: Sơ đồ tổng quan hệ thống
Hệ thống này bao gồm 2 phần chính: khối điều khiển giám sát mặt đất và khối Quadcopter Khối điều khiển giám sát mặt đất được trang bị một máy tính chuyên dụng, giúp thực hiện các chức năng điều khiển và giám sát từ xa.
PC để nhận và thu thập dữ liệu từ Quadcopter thông qua kết nối Bluetooth giữa Quadcopter và Mission Planner Còn trong khối Quadcopter, có các thành phần sau:
Máy tính đồng hành Jetson Nano đóng vai trò quan trọng trong việc thực hiện các giải thuật xử lý ảnh, giúp nâng cao khả năng tự động hóa của hệ thống Khi nhận hình ảnh từ Camera, Jetson Nano sẽ thực hiện các tính toán cần thiết và gửi các giá trị tính toán này đến mạch điều khiển Pixhawk thông qua giao tiếp UART (DroneKit), đảm bảo quá trình điều khiển được chính xác và hiệu quả.
• Nhóm sử dụng camera Logitech C270 kết nối với Jetson Nano qua cổng USB để thực hiện việc thu thập hình ảnh
Mạch điều khiển bay Pixhawk đóng vai trò quan trọng trong việc nhận và xử lý các giá trị từ bộ xử lý Jetson Nano, từ đó điều khiển Quadcopter bám sát và theo dõi đối tượng một cách chính xác Ngoài ra, mạch điều khiển này cũng thu thập dữ liệu từ các cảm biến như la bàn (Compass), cảm biến (Sensor), hệ thống định vị toàn cầu (GPS) và các cảm biến khác, giúp cung cấp thông tin toàn diện và chính xác cho quá trình điều khiển và theo dõi.
Bộ điều khiển tốc độ điện tử (ESC) đóng vai trò quan trọng trong việc điều khiển tốc độ của động cơ Quadcopter Với khả năng nhận tín hiệu từ mạch điều khiển bay Pixhawk, bốn ESC có thể điều chỉnh tốc độ quay của động cơ một cách chính xác, giúp điều khiển Quadcopter bay ổn định và hiệu quả.
Bộ bốn động cơ không chổi than đóng vai trò quan trọng trong việc truyền động bay cho Quadcopter, cho phép nó thực hiện các chuyển động linh hoạt và thay đổi độ cao một cách chính xác khi cần thiết.
Thiết kế mô hình máy bay bốn cánh
Mô hình 3D máy bay bốn cánh được thiết kế trên phần mềm SolidWorks 2021 bao gồm các thành phần chính như khung, đế, vỏ chống nhiễu mạch bay và chân gá Camera, tạo nên một cấu trúc tổng thể hoàn chỉnh và tối ưu.
Hình 3.2: Mô hình 3D máy bay bốn cánh
Khung máy bay đóng vai trò quan trọng trong việc kết nối các bộ phận cấu thành nên Quadcopter, quyết định phương thức điều khiển và ảnh hưởng trực tiếp đến khả năng mang tải của máy bay Khi lựa chọn khung máy bay, bạn cũng cần xem xét đến các bộ phận khác như động cơ, cánh máy bay để đảm bảo sự tương thích và hiệu suất tối ưu Việc chọn khung máy bay phù hợp sẽ giúp bạn xây dựng một chiếc Quadcopter mạnh mẽ và ổn định, đáp ứng nhu cầu sử dụng của mình.
Hình 3.3: Mô hình 3D khung máy bay bốn cánh
Hình 3.4: Kích thước khung máy bay Thông số cụ thể của khung được trình bày trong bảng dưới đây [43]:
Bảng 3-1: Thông số kích thước khung máy bay
STT Thành phần Thông số (mm)
6 Khoảng cách giữa 2 moto 455 Đề máy bay
Hình 3.5: Mặt đế trên và mặt đế dưới của khung máy bay
3.2.1.2 Sải cánh và cánh quạt
Các yếu tố quyết định động lực học của Quadcopter bao gồm chiều dài sải cánh và hình dạng cánh quạt, cho phép người dùng điều chỉnh linh hoạt sau khi chọn kiểu khung phù hợp cho mô hình Đặc biệt, kích thước mỗi sải cánh của mô hình này là 215mm, đóng vai trò quan trọng trong việc tối ưu hóa hiệu suất bay.
Hình 3.6: Hình ảnh 3D cánh máy bay
Cánh quạt diện tích 0.239m, đọ cong xấp xỉ 12 dựa theo thiết kế cánh DJI Phantom3 - 9450 phù hợp cho động cơ 920KV
Hình 3.7: Hình ảnh 3D cánh quạt máy bay
3.2.2 Thiết kế vỏ bảo vệ và chân gá Camera
Khi Quadcopter hoạt động, cánh quạt từ động cơ tạo ra áp suất tĩnh, gây ra sai lệch cảm biến áp suất do áp suất tích dần quanh thân khung máy và mạch điều khiển Vỏ bảo vệ đóng vai trò quan trọng trong việc tránh các trường hợp nhiễu do gió từ cánh quạt, đảm bảo độ chính xác của cảm biến áp suất.
Hình 3.8: Hình ảnh 3D vỏ bảo vệ mạch bay
Chân gá Camera là phụ kiện quan trọng giúp cố định và điều chỉnh góc Camera trên máy bay, cho phép người dùng thu được hình ảnh ở nhiều góc khác nhau khi độ cao máy bay thay đổi Thiết kế này bao gồm 3 bộ phận chính, bao gồm đế kết nối, trục xoay và đế xoay, giúp tối ưu hóa khả năng chụp ảnh từ trên cao.
Hình 3.9: Hình ảnh 3D đế kết nối với thân máy bay
Hình 3.10: Hình ảnh 3D trục xoay
Hình 3.11: Hình ảnh 3D đế xoay
Hình 3.12: Hình ảnh 3D kết cấu chân máy quay
Bảng 3-2: Thành phần thiết bị của Quadcopter
STT Thành phần Hình ảnh Tính năng
1 Động cơ không chổi than
Mạch điều khiển tốc độ
- Tốc độ max: 210000 vòng/phút
- Lõi ARM Cortex M4 32 -bit MPU6000 là gia tốc kế chính và con quay hồi chuyển
- 5 cổng: UART, I2C, SPI, USB, CAN
- Mức độ tiêu thụ điện năng thấp
- Tần số ngõ ra 1-10Hz
- Thể loại kết nối: USB-A 2.0
- Ghi lại hình ảnh ở chế độ HD
- CPU 4 nhân 64-bit (ARM Cortex-A57, RAM 4GB)
- Tần số tối đa: 921Mhz
- Đầu ra ESC dòng điện liên tục: 25A 4 hoặc 15A 6
Sơ đồ nối dây
Hình 3.13: Sơ đồ nối dây Quadcopter
Trung tâm phần cứng của Quadcopter là vi điều khiển trung tâm Pixhawk PIX 2.4.8, điều khiển động cơ thông qua tín hiệu gửi đến các ESC và nhận thông tin từ cảm biến áp suất, con quay hồi chuyển Pixhawk kết nối với máy tính nhúng Jetson Nano qua USB để nhận mệnh lệnh và gửi thông tin chuyến bay về máy tính cá nhân qua mạng không dây Đồng thời, camera cũng được kết nối với Jetson Nano qua USB, trong khi mạch chia nguồn Power Diver đảm bảo cung cấp nguồn từ Pin đến các động cơ, vi điều khiển, máy tính nhúng và camera.
Thi công hệ thống
Sau khi hoàn thiện thiết kế và lựa chọn thiết bị phù hợp, nhóm thực hiện in 3D các chi tiết của Quadcopter Tiếp theo, họ tiến hành lắp ráp phần cứng và kết nối dây hệ thống cho mô hình, đảm bảo tất cả các thành phần hoạt động trơn tru và hiệu quả.
Mô hình hoàn thiện được trình bày như các hình bên dưới: a) b) c) d)
Hình 3.14 : a) Quadcopter sau khi lắp ráp; b) Mặt trên của Quadcopter; c) Mặt bên của
Quadcopter; d) Quadcopter ngoài thực nghiệm
THUẬT TOÁN ĐIỀU KHIỂN
Thuật toán điều khiển bay Quadcopter
Thuật toán điều khiển máy bay bốn cánh là phương pháp điều khiển quan trọng để điều hướng Quadcopter hiệu quả Khi phát triển thuật toán này, cần xem xét tất cả 6 biến tự do để đảm bảo hoạt động ổn định Để đạt được điều này, hai bộ điều khiển riêng biệt được thiết kế, một bộ điều khiển độ cao và trạng thái, và một bộ điều khiển vị trí theo trục x và y.
Hình 4.1: Sơ đồ tổng quan điều khiển máy bay bốn cánh
Bộ điều khiển vị trí và bộ điều khiển trạng thái là hai thành phần quan trọng trong hệ thống điều khiển máy bay bốn cánh, tương tác với nhau để đảm bảo hoạt động ổn định và chính xác của Quadcopter Bộ điều khiển vị trí xác định và điều khiển vị trí không gian của Quadcopter dựa trên cảm biến GPS, cảm biến áp suất và hệ thống thực tế Bộ điều khiển trạng thái điều khiển góc quay và độ nghiêng của Quadcopter thông qua cảm biến Gyroscope, bộ lọc Kalman và máy ảnh Qua sự tương tác giữa hai bộ điều khiển này thông qua thông tin phản hồi và thuật toán PID, Quadcopter có thể duy trì vị trí cân bằng, điều khiển di chuyển và thực hiện các tác vụ như bay thẳng, quay và theo quỹ đạo cụ thể một cách chính xác và ổn định.
4.1.1 Bộ điều khiển độ cao và trạng thái
4.1.1.1 Bộ điều khiển độ cao
Bộ điều khiển độ cao được triển khai để ổn định vị trí Quadcopter trong trục z và ổn định các góc Roll, Pitch, Yaw
Hình 4.2: Bộ điều khiển độ cao được đề cập
Bộ điều khiển PID được sử dụng để tính toán tín hiệu điều khiển dựa trên sai lệch giữa độ cao hiện tại và độ cao mong muốn Kết quả tính toán này sẽ được xuất ra dưới dạng ngõ ra của bộ PID, ký hiệu là U1, giúp điều chỉnh và kiểm soát quá trình một cách chính xác.
• P là hệ số tỷ lệ (Proportional gain), quyết định tín hiệu điều khiển tỷ lệ với sai lệch giữa độ cao hiện tại và độ cao mục tiêu
• I là hệ số tích phân (Integral gain), quyết định tín hiệu điều khiển tỷ lệ với tích phân của sai lệch theo thời gian
Hệ số vi phân (Derivative gain), ký hiệu là D, đóng vai trò quan trọng trong việc quyết định tín hiệu điều khiển tỷ lệ với đạo hàm của sai lệch theo thời gian Điều này giúp hệ thống hoạt động ổn định hơn và giảm thiểu hiện tượng dao động, từ đó đảm bảo quá trình điều khiển được thực hiện một cách chính xác và hiệu quả.
Sai số độ cao được tính bằng hiệu của độ cao mục tiêu và độ cao hiện tại: z sp e =z −z (4.2)
Bộ điều khiển độ cao của Quadcopter sử dụng các tham số bộ điều khiển PID có thể điều chỉnh được, bao gồm k pz, k iz và k dz, để duy trì độ cao ổn định của thiết bị so với mục tiêu đặt ra.
4.1.1.2 Bộ điều khiển trạng thái
Hình 4.3: Bộ điều khiển trạng thái được đề cập
Bộ điều khiển trạng thái đóng vai trò quan trọng trong việc duy trì và ổn định các góc Roll, Pitch, Yaw của Quadcopter, đảm bảo sự ổn định và kiểm soát chính xác của thiết bị bay Luật điều khiển trạng thái được áp dụng thông qua việc sử dụng các thuật toán và công nghệ điều khiển hiện đại, giúp Quadcopter hoạt động mượt mà và ổn định trong không gian.
Với sai số góc đặt và góc từ đơn vị tính toán trạng thái: d feedback d feedback d feedback e e e
4.1.2 Bộ điều khiển vị trí
Bộ điều khiển vị trí được gọi là bộ điều khiển vòng ngoài vì nó cung cấp các đầu vào được tham chiếu cho bộ điều khiển trạng thái
Hình 4.4 Chuyển đổi hệ quy chiếu
Vận tốc trong hệ quy chiếu mặt đất được sử dụng làm biến trạng thái kiểm soát
Để đạt được trạng thái mong muốn, cần xác định độ lệch vị trí trong hệ quy chiếu trên thân và ánh xạ độ lệch này với vận tốc mong muốn, sau đó chuyển đổi thông tin này thành trạng thái mong muốn thông qua bộ chuyển đổi.
Ma trận xoay quanh trục z được biểu diễn bằng ma trận R ψ, kết hợp với vector vận tốc tuyến tính ξ trong khung quán tính và vận tốc dài μ trong khung cơ thể Điều này được thể hiện qua các thành phần của ma trận, bao gồm cos(ψ), sin(ψ) và các giá trị tương ứng khác, tạo nên một hệ thống chuyển động phức tạp.
Giá trị sai số x err và y err được xác định bằng cách lấy giá trị đặt ban đầu trừ đi giá trị phản hồi thu được từ vòng điều khiển, cụ thể là x err = − x d x feedback và y err = y d − y feedback Trong đó, x d và y d là giá trị đặt ban đầu, còn x feedback và y feedback là giá trị phản hồi thu được Giá trị vận tốc v x và v y được xác định trong khung cơ thể bằng cách sử dụng các giá trị đầu vào và ma trận chuyển đổi, bao gồm cả các hàm cos và sin.
Bộ điều khiển PID đơn giản đóng vai trò quan trọng trong việc truyền đạt mệnh lệnh về trạng thái của phương tiện, từ đó điều hướng Quadcopter đến vị trí mong muốn một cách chính xác và hiệu quả.
Hình 4.5: Bộ điều khiển vị trí Luật điều khiển trạng thái được thực hiện bằng cách sử dụng:
Mô hình nhận dạng đối tượng
4.2.1 Mô hình nhận dạng đối tượng MobileNet-SSD
Nhóm nghiên cứu đã lựa chọn MobileNet làm mạng cơ sở và kết hợp với khung nhận diện đối tượng SSD để triển khai trên máy tính nhúng, tạo nên một mô hình hiệu quả với cấu trúc đặc trưng.
Hình 4.6: Cấu trúc mô hình MobileNet-SSD
Mô hình MobileNet sử dụng đầu ra của lớp tích chập cuối cùng để thực hiện phép tích chập thêm một vài lần nữa, từ đó thu được các bản đồ đặc trưng (Feature map) ở kích thước khác nhau Các Feature map này sau đó được sử dụng cho phần phát hiện đối tượng của SSD, giúp tăng cường khả năng nhận diện và phân loại đối tượng.
Bảng 4-1: Các lớp tích chập của MoblieNetSSD
Conv14_1_BN_ReLU6 (1 1) 1 10101024 1010256 ※Conv14_2_BN_ReLU6 (3 3) 2 1010256 55512 Conv15_1_BN_ReLU6 (1 1) 1 55512 55128
※Conv15_2_BN_ReLU6 (3 3) 2 55128 33256 Conv16_1_BN_ReLU6 (1 1) 1 33256 33128 ※Conv16_2_BN_ReLU6 (3 3) 2 33128 22256 Conv17_1_BN_ReLU6 (1 1) 1 22256 2264
Để phát hiện đối tượng, 6 Feature map được chọn để tích chập Các lớp tích chập này được lấy từ lớp thứ 11 của mạng cơ sở MobileNet và các lớp tiếp theo của SSD với kích thước giảm dần Đặc điểm của Feature map là kích thước càng nhỏ thì có thể phát hiện được vật thể càng lớn, ngược lại kích thước càng lớn thì có thể phát hiện được vật thể càng nhỏ Ngoài ra, chiều sâu của Feature map càng lớn thì có thể trích xuất được nhiều đặc trưng hơn.
Hình 4.7: Cấu trúc các lớp của MobileNet-SSD
Mô hình nhận dạng đối tượng khi triển khai gồm 4 giai đoạn:
Giai đoạn 1: Sử dụng mạng cơ sở MobileNet để trích xuất các đặc trưng của ảnh (trích xuất Feature map):
Mô hình MobileNet-SSD tận dụng mạng cơ sở MobileNet để trích xuất các đặc trưng mong muốn, đồng thời áp dụng phương pháp tích chập có thể phân tách theo chiều sâu (Depthwise-separable Convolution) thay cho các lớp tích chập cổ điển Điều này cho phép mô hình giảm thiểu khối lượng tính toán và độ phức tạp, từ đó tăng tốc độ triển khai và cải thiện hiệu suất tổng thể.
Mô hình này sử dụng hình ảnh đầu vào có kích thước 300x300x3 để trích xuất các Feature map thông qua 13 lớp Depthwise-separable Convolution Sau đó, lớp đặc trưng cuối cùng với kích thước 10x10x1024 được sử dụng làm đầu vào cho các lớp tích chập tiếp theo, tạo ra tập hợp các Feature map mới với nhiều kích thước khác nhau.
Hình 4.8: Các Feature map ở giai đoạn 1
Giai đoạn 2 của phương pháp này áp dụng kỹ thuật Featurized Image Pyramid (FIP), cho phép tạo ra một tập hợp các Feature map với nhiều kích thước khác nhau Điều này giúp hệ thống phát hiện đối tượng ở các kích thước khác nhau một cách hiệu quả Bằng cách sử dụng các Feature map đa kích thước, FIP có thể bắt được các đặc trưng của đối tượng ở nhiều mức độ chi tiết khác nhau, từ đó tăng cường khả năng phát hiện đối tượng chính xác.
MobileNet-SSD áp dụng phương pháp FIP để tạo ra Feature pyramid, giúp xử lý các đối tượng có kích thước khác nhau trong ảnh Feature pyramid bao gồm các Feature map ở các tỉ lệ khác nhau, cho phép phát hiện và nhận dạng đối tượng ở nhiều kích thước và mức độ phân giải khác nhau, tăng cường hiệu suất nhận dạng hình ảnh.
The feature maps of the Extra-Feature Layers in SSD are generated by taking the output of Conv_13 (feature map size 10x10x1024) from the MobileNet Base Network and applying successive convolutions with a 3x3 kernel and stride 2, followed by a 1x1 kernel and stride 1, resulting in subsequent feature maps with decreasing sizes.
Có 6 Feature map được chọn làm lớp phát hiện đối tượng, với mục đích chính là phát hiện độc lập các đối tượng ở nhiều tỷ lệ khác nhau Điều này được gọi là Multi-scale Feature Maps, cho phép nhận biết chi tiết về các đối tượng có kích thước lớn khi kích thước Feature map nhỏ hơn và độ phân giải thấp hơn, đồng thời cũng có thể nhận biết được các đối tượng có kích thước nhỏ khi kích thước Feature map lớn hơn và độ phân giải cao hơn.
Hình 4.9: Phương pháp Featurized Image Pyramid ở giai đoạn 2
Giai đoạn 3: Trình dự đoán bằng lớp tích chập (Convolutional Layers) cho phát hiện, xác định vị trí và tạo khung cho đối tượng:
Sau khi trích xuất các Feature maps dựa vào kiến trúc của mạng cơ sở, mô hình sẽ tiếp tục thực hiện các bước tính toán để xác định vị trí và tạo khung cho các đối tượng, giúp phân tích và nhận dạng chúng một cách chính xác.
The SSD model initiates prediction based on default bounding boxes, where each cell in the detection feature map is associated with 4 or 6 default boxes, each initialized with 5 different aspect ratios and scales, enabling the model to effectively detect objects of varying sizes.
SSD sau đó sẽ dự đoán vị trí và kích thước của Default Box, bao gồm 4 tham số xác định độ x, y và kích thước w, h, cũng như phân phối xác suất nhãn của từng Default Box dưới dạng một vector có n lớp Quá trình này được thực hiện nhờ vào các bộ lọc tích chập nhỏ đã được xác định trong quá trình huấn luyện.
Bộ lọc dự đoán (Kernel filter 3x3) được áp dụng cho mỗi Cell trong Feature map, từ đó đưa ra (n classes + 4) dự đoán cho các nhãn n, đồng thời tính toán xác suất phân phối và đưa ra tỉ lệ dự đoán cho mỗi nhãn.
Hình 4.10: Các Default box trên các cell của một Feature map kích thước 33
Sau khi dự đoán, kỹ thuật triệt tiêu không tối đa được áp dụng để giảm số lượng dự đoán trong một khung hình xuống còn số lượng đối tượng sự thật cơ bản thực tế, giúp tối ưu hóa quá trình phân tích và tăng độ chính xác của kết quả.
Giai đoạn 4 là bước cuối cùng trong quá trình dự đoán vị trí và phân phối xác suất của các đối tượng Tại đây, các khung dự đoán sẽ được đưa qua thuật toán Non-max Suppression (NMS) để loại bỏ các khung có xác suất thấp hơn hoặc trùng lặp Quá trình này giúp tinh lọc và đưa ra kết quả dự đoán chính xác nhất.
Thuật toán điều khiển bám theo đối tượng
4.3.1 Sơ đồ tổng quan nhận dạng và bay bám theo đối tượng
Nhóm đã kết hợp thuật toán phát hiện đối tượng và điều khiển theo vị trí và trạng thái để xây dựng hệ thống vòng kín bay bám theo đối tượng Mục tiêu chính của hệ thống này là điều khiển Quadcopter di chuyển theo phương tiến và xoay dựa trên đầu vào từ một camera duy nhất Đối tượng được phát hiện chuyển động với tốc độ không đổi theo hướng tiến và lùi, đòi hỏi giải quyết vấn đề về vị trí tương đối giữa Quadcopter và đối tượng Để giải quyết vấn đề này, cần cập nhật vị trí tương đối và ước tính để đưa ra kết quả thích hợp, giúp hệ thống hoạt động hiệu quả trong môi trường động.
Hình 4.15: Sơ đồ tổng quan nhận dạng và bay bám theo đối tượng
Bộ điều khiển được thiết kế để điều khiển sai số vị trí tương đối giữa Quadcopter và đối tượng được phát hiện về 0, đảm bảo chúng di chuyển ở vận tốc xác định Để đạt được mục tiêu này, nhóm đã triển khai bộ điều khiển PID để giảm thiểu lỗi khi cập nhật vị trí cho Quadcopter, giúp ổn định lỗi vị trí Bộ điều khiển phản hồi vòng kín được phát triển để giải quyết vấn đề này, đảm bảo Quadcopter và đối tượng được phát hiện di chuyển ở vận tốc mong muốn.
4.3.2 Phương pháp bay bám theo đối tượng dựa vào chương trình xử lý ảnh
Sau khi phát hiện người và tạo khung giới hạn (Bounding Box), Quadcopter sẽ tự động theo dõi và điều chỉnh góc quay để đưa vị trí tâm của khung giới hạn trùng với vị trí giữa khung hình, từ đó thực hiện điều khiển bay tiến lùi một cách chính xác.
Sau khi phát hiện được vật thể, Bounding Box sẽ chứa thông tin về vị trí của vật thể trong ảnh, cung cấp giá trị Pixel chính xác về vị trí của vật thể, bao gồm (X min, Y min), (X max, Y min), (X max, Y max) và (X min, Y max).
(X ,Y ) Vị trí trung tâm vật thể được xác định như sau: min max min max
Hình 4.17: Tính toán khoảng cách giữa tâm người và tâm khung hình
Vị trí trung tâm của hình ảnh được xác định như sau:
Để theo dõi đối tượng một cách thích hợp, mục tiêu chính là điều khiển trung tâm của đối tượng được phát hiện luôn trùng với trung tâm hình ảnh Nhóm nghiên cứu đã sử dụng bộ chuyển đổi để đạt được mục tiêu này.
PID được thực hiện như hình bên dưới:
Hình 4.18: Mô hình chuyển đổi bay bám theo đối tượng
0 t x y px x ix x dx t y x py y iy y dy v k e k e d k de dt r k e k e d k de dt
Với x d = x 0 , y d = y 0 , x feedback = x i , y feedback = y i Giá trị độ lệch tâm giữa trung tâm của hình ảnh và trung tâm của vật thể được xác định:
Quadcopter thực hiện di chuyển theo trục x để tiến lùi và xoay quanh trục z để thực hiện việc xoay Cụ thể, quá trình di chuyển theo trục x được điều khiển bởi tín hiệu v_y, trong khi đó, việc xoay quanh trục z được điều khiển bởi tín hiệu r_x.
THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
Lưu đồ giải thuật xử lý ảnh và điều khiển
5.1.1 Lưu đồ thuật toán nhận dạng đối tượng
Hình 5.1: Lưu đồ thuật toán nhận dạng đối tượng SSD-MobileNet
Chương trình nhận dạng đối tượng với mô hình SSD-MobileNet gồm 5 bước:
• Bước 1: Thu thập dữ liệu qua Camera và xử lý dữ liệu ban đầu
• Bước 2: Dự đoạn đối tượng và Bounding Box
• Bước 3: Kiểm tra dữ liệu đạt ngưỡng hay chưa? Nếu dữ liệu chưa đạt ngưỡng, loại bỏ đối tượng đó
• Bước 4: Nếu đạt ngưỡng, loại bỏ các Bounding Box không cần thiết
• Bước 5: Xuất dữ liệu ra màn hình
5.1.2 Lưu đồ thuật toán bay giữ độ cao
Hình 5.2: Lưu đồ giải thuật bay giữ độ cao
Chương trình bay giữ độ cao gồm 5 bước:
• Bước 1: Kiểm tra Quadcopter đã vào trạng thái sẵn sàng cất cánh hay chưa?
• Bước 2: Nếu Quadcopter đã sẵn sàng tiến hành cất cánh
• Bước 3: Cất cánh đến độ cao mong muốn
• Bước 4: In ra độ cao hiện tại Nếu độ cao hiện tại > 95% độ cao mong muốn In ra thông báo đã đạt được độ cao
• Bước 5: Sau thời gian đặt trước, ta tiến hành hạ cánh
5.1.3 Lưu đồ di chuyển tiến và xoay
Hình 5.3: Lưu đồ giải thuật bay theo hướng tiến và xoay cấp sẵn Chương trình bay giữ độ cao gồm 4 bước:
• Bước 1: Kiểm tra Quadcopter đã vào trạng thái sẵn sàng và cất cánh đến độ cao mong muốn
• Bước 2: Xét giá trị ban đầu bằng 0
• Bước 3: Kiểm tra giá trị đếm nhỏ hơn 3 Nếu đúng thì thực hiện việc tiến và xoay, sau đó tăng biến đếm lên 1
• Bước 4: Kiểm tra giá trị đếm lớn hơn 3 thì tiến hành hạ cánh và kết thúc
5.1.4 Lưu đồ bay bám theo đối tượng
Hình 5.4: Lưu đồ chương trình bay bám đối tượng
Chương trình bay bám theo đối tượng gồm 4 bước:
• Bước 1: Kết nối Quadcopter và Quadcopter tự động cất cánh đến độ cao đặt và giữ thăng bằng
• Bước 2: Phát hiện người với mô hình SSD-MobileNet và kiểm tra có phát hiện được người không?
• Bước 3: Nếu phát hiện được người, thực hiện bám theo đối tượng bằng phương pháp tính độ lệch tâm giữa người và tâm khung ảnh
• Bước 4: Nếu độ lệch lớn hơn 0 và tâm khung ảnh không nằm trong
Bounding Box thì thực hiện việc xoay và ngược lại thì thực hiện việc tiến
5.1.5 Lưu đồ bay tìm kiếm khi không có vật thể
Hình 5.5: Lưu đồ giải thuật tìm kiếm khi không có vật thể Chương trình bay tìm kiếm khi không có vật thể gồm 4 bước:
• Bước 1: Kết nối Quadcopter và Quadcopter tự động cất cánh đến độ cao đặt và giữ thăng bằng
• Bước 2: Quadcopter tìm kiếm người trong vòng 36 giây Nếu vượt quá
36 giây mà Quadcopter không phát hiện được người thì tự động hạ cánh
• Bước 3: Trong vòng 36 giây thực hiện tìm kiếm người, nếu không phát hiện được người thì thực hiện góc quay 10 độ
• Bước 4: Trong quá trình tìm kiếm, nếu phát hiện được người thì
Quadcopter tự động chuyển sang giải thuật bám theo đối tượng.
Thực nghiệm và đánh giá chương trình xử lý ảnh
5.2.1 Thực nghiệm quá trình huấn luyện mô hình
Nhóm sử dụng mô hình xử lý ảnh đã được đào tạo để chương trình nhận dạng các đối tượng mong muốn một cách chính xác Quan hệ giữa quá trình xử lý ảnh và nhận dạng đối tượng thể hiện mối liên hệ chặt chẽ, giúp chương trình tự động xác định và phân loại các đối tượng theo yêu cầu.
Quan hệ giữa quá trình huấn luyện và xử lý ảnh được thể hiện rõ ràng trong hình 5.6 Nhóm nghiên cứu đã áp dụng phương pháp học tập chuyển giao (Transfer learning) thông qua Object detection API, tận dụng mô hình đào tạo trước của SSD-MobileNet trên tập dữ liệu MS COCO và sau đó đào tạo lại trên tập dữ liệu tùy chỉnh để đạt được kết quả chính xác cao hơn.
Quá trình thực hiện huấn luyện mô hình gồm 2 bước: Chuẩn bị dữ liệu và đào tạo mô hình
Quá trình thu thập và chuẩn bị dữ liệu cho việc huấn luyện mô hình của nhóm gồm các bước được mô tả như hình sau:
Hình 5.7: Quy trình chuẩn bị dữ liệu
Chuẩn bị tập dữ liệu là bước quan trọng nhất khi làm việc với mạng học sâu Để xây dựng mô hình, nhóm RICLAB đã thu thập tập dữ liệu hình ảnh con người với các tư thế đứng khác nhau từ camera trên quadcopter Quá trình thu thập dữ liệu bao gồm việc tách từng khung hình từ video để tạo ra khoảng 1000 bức hình, phục vụ làm dữ liệu ban đầu cho mô hình.
Hình 5.8: Tách khoảng 1000 hình trong các Videos
Để tăng khả năng học của mô hình, nhóm thực hiện đã áp dụng chiến lược làm giàu dữ liệu bằng cách xoá bỏ những bức hình gần giống nhau và thay thế bằng các biến thể của một số bức ảnh thông qua các công cụ cơ bản như xoay, thu phóng, lật hình ảnh và thay đổi độ sáng Mục đích của việc này là nhằm tăng độ chính xác và khả năng tổng quát hóa của mô hình, giúp nó có thể xử lý và nhận diện các dữ liệu mới một cách hiệu quả hơn.
Tất cả hình ảnh từ tập dữ liệu được gán nhãn thủ công bằng cách sử dụng công cụ dán nhãn LabelImg như hình bên dưới:
Hình 5.9: Dán nhãn ảnh bằng LabelImg
Sau khi thu thập bộ dữ liệu ban đầu, nhóm tiến hành chia dữ liệu thành các tập Train-set, Validation-set và Test-set với tỉ lệ 7/2/1 Tập Train-set chiếm 70% được sử dụng để huấn luyện mô hình, trong khi tập Validation-set chiếm 20% dùng để đánh giá độ chính xác của mô hình Cuối cùng, tập Test-set chiếm 10% được sử dụng để kiểm tra mô hình sau quá trình huấn luyện, giúp đảm bảo độ tin cậy của mô hình.
Hình 5.10: Phân chia dữ liệu mô hình
Sau khi thu thập được bộ dữ liệu cần thiết, nhóm tiến hành đào tạo mô hình bằng cách tận dụng nền tảng Google Colab Do hạn chế về cấu hình máy tính không có GPU mạnh, Google Colab cung cấp giải pháp hiệu quả với máy ảo chạy trên đám mây và truy cập trực tiếp vào tài nguyên phần cứng mạnh mẽ GPU của Google.
Quá trình đào tạo mô hình dựa vào thuật toán tối ưu để điều chỉnh các tham số của mô hình, nhằm mục tiêu đạt được hiệu suất tốt nhất trên tập dữ liệu huấn luyện và khả năng tổng quát hóa trên tập dữ liệu mới Quy trình này đóng vai trò quan trọng trong việc tối ưu hóa mô hình, giúp nó có thể xử lý và dự đoán chính xác trên dữ liệu mới Trong trường hợp của mô hình SSD-MobileNet, quy trình huấn luyện được thực hiện theo các bước cụ thể để đảm bảo mô hình đạt được hiệu suất tối ưu.
Nhóm bắt đầu quá trình đào tạo với thông số khởi tạo ban đầu là batch-size=2 và epoch 0 Sau đó, họ dành 2 giờ để đào tạo tập dữ liệu Quá trình đào tạo dữ liệu được ghi lại chi tiết và cung cấp cái nhìn tổng quan về hiệu suất của mô hình.
Sau quá trình huấn luyện, nhóm đã thu được kết quả đáng khích lệ với các thông số Loss quan trọng Cụ thể, kết quả đánh giá mô hình cho thấy Validation Loss, Validation Regression Loss và Validation Classification Loss đã đạt được mức độ tối ưu Điều này chứng tỏ quá trình đào tạo mô hình đã đạt được hiệu quả cao và sẵn sàng cho các ứng dụng thực tế.
Khi phân tích các đồ thị Error, chúng ta có thể xác định tình trạng hiện tại của mô hình Nếu mô hình được huấn luyện quá sơ sài, nó có thể bị Underfitting, trong khi huấn luyện quá nhiều lần có thể dẫn đến Overfitting Do đó, việc chọn Epoch với Error thấp nhất cho cả Regression và Classification là rất quan trọng Sau quá trình huấn luyện, chúng ta sẽ thu được các đồ thị Loss để đánh giá hiệu suất của mô hình.
Hình 5.13: Đồ thị Loss trung bình
Sau quá trình đào tạo, nhóm đã lựa chọn mô hình có trung bình Loss nhỏ nhất ở Epoch để đưa vào sử dụng Cụ thể, mô hình được chọn có Loss trung bình là 0.637140440552131, dựa trên đồ thị Loss trung bình tổng hợp từ Validation Loss, Validation Regression Loss và Validation Classification Loss.
Validation Loss là tổng hợp của các hàm mất mát của mô hình trên tập dữ liệu Validation, thể hiện độ chênh lệch giữa giá trị dự đoán và giá trị thực tế của đầu ra mô hình Hàm mất mát này càng nhỏ, mô hình càng có khả năng dự đoán chính xác trên các dữ liệu mới, cho thấy hiệu suất tốt của mô hình trong việc dự đoán kết quả.
Hình 5.14: Đồ thị Train sample Error của Validation
Hình 5.15: Đồ thị Test sample Error của Validation
Chỉ số Validation Regression Loss là thước đo đánh giá hiệu suất của mô hình trong các tác vụ Regression, nơi đầu ra là giá trị liên tục Chỉ số này tính toán sai số giữa giá trị dự đoán và giá trị thực tế của đầu ra, và giá trị càng thấp cho thấy mô hình càng chính xác trong việc dự đoán kết quả.
Hình 5.16: Đồ thị Train sample Error của Regression
Hình 5.17: Đồ thị Test sample Error của Regression
Validation Classification Loss là chỉ số đánh giá hiệu suất của mô hình trong các tác vụ phân loại, nơi đầu ra của mô hình là một nhãn xác định Chỉ số này tính toán mức độ sai lệch giữa giá trị dự đoán và giá trị thực tế của nhãn, và nó càng thấp, mô hình càng chính xác trong việc phân loại dữ liệu.
Hình 5.18: Đồ thị Train sample Error của Classification
Hình 5.19: Đồ thị Test sample Error của Classification Các đồ thị trên được nhóm thu được trong quá trình đào tạo mô hình
5.2.2 Đánh giá chương trình xử lý ảnh
Sau khi hoàn thiện quá trình đào tạo, nhóm đã triển khai mô hình SSD-MobileNet và chuyển đổi kết quả đào tạo sang dạng ONNX để chạy trên Jetson Nano, tận dụng khả năng hỗ trợ NVIDIA TensorRT giúp mô hình hoạt động nhanh hơn Quá trình thử nghiệm được thực hiện ở hai môi trường khác nhau, bao gồm thử nghiệm trong điều kiện đủ sáng và thử nghiệm trong điều kiện thiếu ánh sáng, nhằm đánh giá khả năng phát hiện người của mô hình.
5.2.2.1 Đánh giá với môi trường đủ ánh sáng Đối với môi trường thử nghiệm đủ sáng, nhóm dựa vào tiêu chí đánh giá Confusion Matrix
Hình 5.20: Đánh giá môi trường đủ sáng Với số lần thử nghiệm là 50 lần, mô hình cho kết quả như bảng sau:
Bảng 5-1: Bảng đánh giá hệ thống với môi trường đủ sáng
Trung bình cộng của thông số đánh giá với môi trường đủ sáng:
Tỉ lệ nhận đúng đối tượng rất tốt và tỉ lệ nhận nhầm đối tượng thấp
5.2.2.2 Đánh giá với môi trường thiếu ánh sáng
Hình 5.21: Đánh giá môi trường thiếu sáng
Tương tự như trường hợp thử đủ ánh sáng, bằng cách giảm cường độ ánh sáng xuống, ta lập được bảng như sau:
Bảng 5-2: Bảng đánh giá hệ thống với môi trường thiếu ánh sáng
Trung bình cộng của thông số đánh giá với môi trường đủ sáng:
Tỉ lệ nhận đúng đối tượng tốt và tỉ lệ nhận nhầm đối tượng thấp
Thực nghiệm thuật toán bám đối tượng
Nhóm sử dụng mô hình đã đào tạo ở phần 5.2.1 đẻ thực hiện triển khai thuật toán bám theo đối tượng Centroids base Object Tracking như các hình bên dưới:
Hình 5.23: a) Minh hoạ trạng thái tiến; b) Minh hoạ trạng thái lùi
Theo quy ước, tâm của khung hình màu xanh lục và tâm của Bounding box màu đỏ, quyết định hướng di chuyển của Quadcopter dựa trên giá trị của y Khi giá trị y âm, Quadcopter ở vị trí nhìn xuống dưới so với vật thể và sẽ tiến về phía trước Ngược lại, khi giá trị y dương, Quadcopter ở vị trí nhìn lên trên so với vật thể và sẽ thực hiện việc lùi lại.
Hình 5.24: a) Minh hoạ trạng xoay phải; b) Minh hoạ trạng xoay trái
Theo quy ước, tâm của hình ảnh được biểu thị bằng màu xanh lục và tâm của Bounding Box được biểu thị bằng màu đỏ Khi giá trị x đạt dương, Quadcopter sẽ ở vị trí bên phải so với vật thể và thực hiện việc xoay sang phải Ngược lại, khi giá trị x đạt âm, Quadcopter sẽ ở vị trí bên trái so với vật thể và thực hiện việc xoay sang trái, giúp điều chỉnh vị trí một cách chính xác.
Thực nghiệm đánh giá tốc độ xử lý của mô hình
Để đánh giá thời gian xử lý của quá trình phát hiện đối tượng, nhóm nghiên cứu đã tiến hành thực nghiệm đánh giá tốc độ xử lý của quá trình này Quá trình này bao gồm việc phát hiện và bám đối tượng, và kết quả thu được sẽ giúp đánh giá hiệu suất của hệ thống.
Kết quả đánh giá tốc độ xử lý của mô hình cho thấy tốc độ đạt được trong khoảng 27 FPS, phù hợp với môi trường ngoài trời Điều này đã giúp nhóm tự tin quyết định tiến hành bay thực tế và đánh giá mô hình để kiểm tra hiệu suất trong điều kiện thực tế.
Thực nghiệm và đánh giá điều khiển bay
Để đánh giá hiệu suất của giải thuật bám theo đối tượng, nhóm thực hiện kiểm nghiệm điều khiển bay của Quadcopter trong trường hợp không kết hợp với xử lý ảnh, nhằm kiểm tra độ ổn định của các bộ điều khiển, bao gồm bộ điều khiển vị trí và bộ điều khiển trạng thái Quá trình kiểm nghiệm này sẽ giúp xác định hiệu suất của các bộ điều khiển trước khi áp dụng giải thuật bám theo đối tượng.
• Thứ nhất là điều khiển Quadcopter cất cánh, giữ độ cao và sau đó hạ cánh
• Thứ hai là điều khiển Quadcopter di chuyển theo hướng tiến và xoay
Tiếp theo, nhóm sẽ đánh giá điều khiển bay của Quadcopter kết hợp với chương trình xử lý ảnh để thu thập dữ liệu và điều chỉnh thuật toán xử lý ảnh nhằm cung cấp thông tin tín hiệu điều khiển chính xác Mục tiêu của quá trình này là cho phép Quadcopter thực hiện bay bám đối tượng theo hai hướng tiến-lùi và xoay một cách hiệu quả.
• Thứ nhất là điều khiển bay tiến-lùi theo đối tượng
• Thứ hai là điều khiển xoay theo đối tượng di chuyển hình vòng cung
• Thứ ba là điều khiển kết hợp bay tiến-lùi và xoay bám theo đối tượng di chuyển tự do
Từ đó, nhóm thu được các đồ thị nhằm đánh giá chất lượng chương trình điều khiển và hình ảnh thu được từ bản đồ vệ tinh
5.5.1 Cất cánh, giữ độ cao và hạ cánh
5.5.1.1 Thực nghiệm cất cánh, giữ độ cao và hạ cánh
Mục tiêu chính của nhóm là thiết kế và điều khiển máy bay cất cánh thẳng đứng lên đến độ cao mong muốn trong khoảng 2.5m và duy trì độ cao đó trong vòng 100 giây, sau đó thực hiện hạ cánh an toàn Quá trình này được minh họa thông qua các đồ thị đáp ứng góc Roll, Pitch và Yaw, thể hiện khả năng kiểm soát và ổn định của máy bay trong quá trình bay.
Dựa vào tín hiệu ra quan sát được của hệ thống, có thể thấy trạng thái của máy bay trong quá trình cất cánh, giữ độ cao và hạ cánh đáp ứng tương đối tốt Góc lệch của cả 2 góc Roll, Pitch đều xấp xỉ bằng 0, chứng tỏ máy bay không có xu hướng tiến, lùi hay di chuyển sang ngang Đáp ứng của góc Yaw cho thấy máy bay có xu hướng xoay nhẹ tại chỗ theo hướng Bắc và tương đối ổn định, với la bàn nhận được góc của máy bay ở khoảng 360 độ và 0 độ.
Hình 5.28: Đáp ứng độ cao của máy bay
Từ đồ thị đáp ứng độ cao của máy bay, ta có thể thấy độ cao được giữ ở mức 2.5m trong vòng 100 giây a) b)
Hình 5.29: a) Đồ thị đáp ứng vận tốc theo phương x; b) Đồ thị xuất xung động cơ
Đồ thị đáp ứng vận tốc theo phương x cho thấy vận tốc của máy bay gần như không đổi, chứng tỏ máy bay không có xu hướng di chuyển tiến hoặc lùi Đồng thời, đồ thị xuất xung động cơ cũng cho thấy máy bay có khả năng giữ độ cao ổn định với xung động cơ được băm đều, và có khả năng cất cánh và hạ cánh nhanh chóng, ổn định khi xung động cơ được điều chỉnh kịp thời.
5.5.2 Di chuyển theo hướng tiến và xoay
5.5.2.1 Thực nghiệm di chuyển tiến và xoay
Mục tiêu chính của nhóm nghiên cứu là điều khiển máy bay di chuyển theo vận tốc và góc được đặt trước một cách chính xác Cụ thể, máy bay sẽ được điều khiển bay với vận tốc 1m/s và góc quay 90 độ trong 3 lần, trong thời gian bay tổng cộng là 60 giây Hình bay mong muốn mà nhóm hướng tới thu thập được là hình vuông, đòi hỏi sự chính xác cao trong việc điều khiển máy bay.
Hình 5.30: Ảnh chụp từ vệ tinh a) b) c) Hình 5.31: a) Đồ thị đáp ứng góc Roll; b) Đồ thị đáp ứng góc Pitch; c) Đồ thị đáp ứng góc Yaw
Dựa trên tín hiệu ra quan sát được của hệ thống, trạng thái của máy bay trong quá trình cấp góc tiến và quay đáp ứng tương đối tốt Đặc biệt, góc lệch của góc Roll đạt gần bằng 0, chứng tỏ máy bay không có xu hướng di chuyển sang ngang Đồ thị đáp ứng của góc Yaw cho thấy sự thay đổi của các góc xoay được cấp một cách rõ ràng, từ vị trí đặt máy ban đầu ở 180 độ, sau lần quay đầu tiên máy bay sẽ đáp ứng ở góc quay 270 độ, tiếp theo là 360 độ và cuối cùng là 90 độ sau lần xoay cuối.
Hình 5.32: Đồ thị đáp ứng độ cao
Từ đồ thị đáp ứng độ cao của máy bay, có thể thấy độ cao được giữ ở mức 2.5m trong vòng 60 giây a) b)
Hình 5.33: a) Đồ thị đáp ứng vận tốc theo phương x; b) Đồ thị xuất xung động cơ
Từ đồ thị đáp ứng vận tốc theo phương x, có thể thấy vận tốc của máy bay theo phương x luôn thay đổi để đáp ứng cho góc tiến, cho thấy máy bay đang có xu hướng di chuyển tiến hoặc lùi Đồ thị xuất xung động cơ cũng cho thấy các động cơ được băm xung rõ rệt khi máy bay ở trạng thái cấp góc tiến và xoay, đồng thời xung động cơ được băm khi cất và hạ cánh cũng đáp ứng rất nhanh, chứng tỏ máy bay cất và hạ cánh rất ổn định.
5.5.3 Điều khiển bay bám theo đối tượng kết hợp xử lý ảnh Để thực hiện việc đáp ứng giải thuật bám đối tượng, nhóm thực nghiệm và đánh giá điều khiển bay Quadcopter kết hợp xử lý ảnh Ở phần này, nhóm tiến hành bay bám đối tượng theo hướng tiến, xoay theo đối tượng và cuối cùng là bay bám kết hợp hướng tiến và xoay
Hình 5.34: Thực nghiệm bay nhận dạng và bám đối tượng tại khu E trường ĐH SPKT
Hình 5.35: Thực nghiệm bay nhận dạng và bám đối tượng tại sân bóng trường ĐH SPKT
5.5.3.1 Thực nghiệm di chuyển theo hướng tiến Đầu tiên, nhóm sẽ tiến hành thực nghiệm cho Quadcopter phát hiện và bám đối tượng theo hướng tiến và lùi Mục tiêu là Quadcopter sẽ phát hiện được đối tượng có trong khung hình và bám đối tượng đó Đối tượng sẽ di chuyển tiến và lùi để kiểm chứng tính hoạt động chính xác của Quadcopter Quá trình bay được thực hiện trong khoảng 120 giây để kiểm chứng tính đáp ứng của hệ thống:
Hình 5.36: Ảnh chụp từ vệ tinh a) b) c) Hình 5.37: a) Đồ thị đáp ứng góc Roll; b) Đồ thị đáp ứng góc Pitch; c) Đồ thị đáp ứng góc
Dựa trên tín hiệu quan sát được của hệ thống, có thể thấy máy bay di chuyển theo đối tượng theo hướng tiến một cách tương đối tốt Độ lệch của góc Roll xấp xỉ bằng 0, chứng tỏ máy bay không có xu hướng di chuyển sang ngang Ngoài ra, máy bay có xu hướng xoay nhẹ tại chỗ theo hướng Bắc, thể hiện qua đồ thị đáp ứng của góc Yaw Trong quá trình di chuyển, máy bay tiến để bám đối tượng từ 0 đến 60 giây và lùi để bám đối tượng từ 70 đến 100 giây, như thể hiện qua đồ thị đáp ứng góc Pitch.
Hình 5.38: Đồ thị đáp ứng độ cao
Từ đồ thị đáp ứng độ cao của máy bay, có thể thấy độ cao được giữ ở mức 2.5m trong vòng 120 giây a) b)
Hình 5.39: a) Đồ thị đáp ứng vận tốc theo phương x; b) Đồ thị xuất xung động cơ
Đồ thị đáp ứng vận tốc theo phương x cho thấy vận tốc của máy bay luôn thay đổi để đáp ứng cho góc tiến và lùi, chứng tỏ máy bay có xu hướng di chuyển tiến hoặc lùi khi bám đối tượng Đồng thời, đồ thị xuất xung động cơ cũng cho thấy các động cơ được băm xung rõ rệt khi máy bay di chuyển bám đối tượng theo hướng tiến, lùi, và có khả năng đáp ứng nhanh khi cất và hạ cánh, đảm bảo máy bay cất và hạ cánh ổn định.
5.5.3.2 Thực nghiệm xoay theo đối tượng
Sau khi thực nghiệm thành công với máy bay trong trường hợp phát hiện và bám người theo hướng tiến và lùi, nhóm nghiên cứu tiếp tục thực nghiệm để máy bay phát hiện và xoay theo người Quá trình này cho phép Quadcopter phát hiện đối tượng trong khung hình và xoay theo đối tượng một cách chính xác Để kiểm chứng tính hoạt động của hệ thống, đối tượng được phát hiện sẽ di chuyển theo hình vòng cung tròn, và kết quả được thể hiện qua các đồ thị đáp ứng góc Roll, Pitch và Yaw.
Hình 5.41: Đồ thị đáp ứng độ cao a) b) Hình 5.42: a) Đồ thị đáp ứng vận tốc theo phương x; b) Đồ thị xuất xung động cơ
Qua phân tích đồ thị đáp ứng vận tốc theo phương x, có thể thấy vận tốc của máy bay theo phương này gần như bằng 0, cho thấy máy bay gần như không di chuyển theo phương x Đồng thời, đồ thị xuất xung động cơ cũng cho thấy các động cơ được điều khiển liên tục để duy trì khả năng xoay theo đối tượng của máy bay.
5.5.3.3 Kết hợp hướng tiến và xoay theo đối tượng