Đồ án: Triển khai mô hình YOLO trên SoC FPGA phát hiện mục tiêu bay

Đồ án tốt nghiệp: Ứng dụng YOLO trên SoC FPGA để phát hiện mục tiêu bay theo thời gian thực. Mô hình học sâu hiệu quả, tốc độ cao.

Trường đại học

Đại học Bách Khoa Hà Nội

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2023

107
3
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: GIỚI THIỆU CHUNG

1.1. Tổng quan về bài toán phát hiện các mục tiêu bay trong hình ảnh

1.2. Các phương pháp phát hiện mục tiêu dựa trên học sâu và giới thiệu về mô hình mạng YOLO

1.3. Triển khai FPGA của các mô hình học sâu

1.4. Giới thiệu nền tảng Zynq UltraScale+ MPSoC và Vitis AI

1.4.1. Nền tảng Zynq UltraScale+ MPSoC

1.4.2. Bộ kit phát triển Xilinx Zynq UltraScale+ MPSoC ZCU104

1.4.3. Nền tảng phát triển Vitis AI

1.5. Mục tiêu của đề tài

1.6. Mạng nơ-ron tích chập

1.6.1. Cấu trúc cơ bản

1.6.2. Lớp tích chập

1.6.3. Lớp kết nối đầy đủ

1.6.4. Hàm kích hoạt

1.6.5. Một số vấn đề khác

1.7. Các thang đo cho mô hình phát hiện mục tiêu

1.8. Mô hình học sâu phát hiện YOLO

1.8.1. Các phiên bản đầu tiên: YOLOv1, YOLOv2

1.8.2. Các phiên bản rút gọn: YOLOv3-tiny, YOLOv4-tiny

1.9. Tổng quan về nền tảng phát triển Vitis AI

1.9.1. Tổng quan về DPU

1.9.2. Các công cụ và thư viện

1.9.3. Quy trình phát triển

1.10. Phương pháp triển khai

1.11. Chuẩn bị dữ liệu và tối ưu hoá mô hình

1.11.1. Chuẩn bị dữ liệu

1.11.2. Tối ưu hoá mô hình

1.12. Huấn luyện và đánh giá mô hình trên GPU

1.13. Phần cứng sử dụng

1.14. Kết quả huấn luyện và đánh giá

1.15. Nén mô hình bằng phương pháp cắt tỉa

1.16. Triển khai FPGA

1.16.1. Tổng quan thiết kế

1.16.2. Xây dựng mô hình

1.16.3. Xây dựng nền tảng phần cứng và phần mềm cho board

1.16.4. Xây dựng chương trình thực thi

2. KẾT QUẢ VÀ ĐÁNH GIÁ

2.1. Công suất tiêu thụ

2.2. Hướng phát triển của đồ án trong tương lai

TÀI LIỆU THAM KHẢO

DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT

DANH MỤC HÌNH VẼ

DANH MỤC BẢNG BIỂU

Tóm tắt

I. Tổng quan đồ án YOLO trên SoC FPGA cho mục tiêu bay

Việc triển khai các mô hình học sâu trên nền tảng nhúng đang mở ra một kỷ nguyên mới cho các ứng dụng thông minh, đặc biệt trong lĩnh vực an ninh và giám sát. Đồ án 'triển khai mô hình học sâu YOLO trên nền tảng SoC FPGA ứng dụng phát hiện các mục tiêu bay theo thời gian thực' là một minh chứng tiêu biểu cho xu hướng này. Bài viết sẽ phân tích sâu về phương pháp luận, các thách thức kỹ thuật và kết quả đột phá của đồ án, cung cấp một cái nhìn toàn diện về việc kết hợp sức mạnh của thuật toán YOLO với khả năng tăng tốc phần cứng cho AI của công nghệ SoC FPGA. Mục tiêu chính là xây dựng một hệ thống có khả năng nhận dạng các vật thể bay như UAV, drone với độ chính xác cao, độ trễ thấp và hiệu quả năng lượng vượt trội. Nghiên cứu này không chỉ giải quyết bài toán kỹ thuật cụ thể mà còn đóng góp vào sự phát triển của các hệ thống giám sát bằng camera tự động, thông minh, đáp ứng yêu cầu vận hành liên tục và ổn định trong các điều kiện phức tạp. Thay vì phụ thuộc vào các máy chủ GPU cồng kềnh, giải pháp này mang trí tuệ nhân tạo đến gần hơn với các thiết bị biên, nơi dữ liệu được tạo ra và cần xử lý ngay lập tức.

1.1. Bài toán phát hiện mục tiêu bay và thách thức thời gian thực

Phát hiện các mục tiêu bay như UAV, quadrotor, hay tiêm kích là một bài toán thị giác máy tính thời gian thực có yêu cầu rất cao. Các mục tiêu này thường có kích thước nhỏ, di chuyển với tốc độ lớn trên nền trời phức tạp, đòi hỏi hệ thống phải có khả năng xử lý hàng chục khung hình mỗi giây (FPS). Các phương pháp truyền thống dựa trên radar hay sóng âm thường đắt đỏ và dễ bị ảnh hưởng bởi nhiễu môi trường. Trong khi đó, các giải pháp dựa trên xử lý ảnh và video thời gian thực sử dụng học sâu cho thấy tiềm năng vượt trội. Tuy nhiên, thách thức lớn nhất là làm sao để triển khai các mạng nơ-ron tích chập (CNN) phức tạp như YOLO trên các thiết bị nhúng có tài nguyên hạn chế mà vẫn đảm bảo tốc độ và hiệu quả năng lượng. Đây chính là vấn đề cốt lõi mà đồ án tập trung giải quyết.

1.2. Tại sao SoC FPGA là nền tảng tối ưu cho học sâu

SoC (System on a Chip) FPGA là sự kết hợp giữa hệ thống xử lý (PS) với các lõi ARM và logic khả trình (PL) tương đương một FPGA trên cùng một con chip. Kiến trúc này mang lại lợi thế kép: PS thực thi các tác vụ phần mềm nối tiếp như chạy hệ điều hành, quản lý ngoại vi, trong khi PL cho phép thiết kế các bộ tăng tốc phần cứng chuyên dụng cho các tác vụ song song. Đối với các mô hình học sâu, các phép tính tích chập và nhân ma trận chiếm phần lớn tài nguyên. Việc ánh xạ các phép tính này lên phần cứng của FPGA giúp giảm đáng kể độ trễ và điện năng tiêu thụ so với GPU. Nền tảng SoC Zynq UltraScale+ MPSoC, đặc biệt là kit ZCU104 được sử dụng trong đồ án, cung cấp một môi trường lý tưởng cho các ứng dụng học sâu trên hệ thống nhúng, cân bằng hoàn hảo giữa hiệu năng, tính linh hoạt và hiệu quả năng lượng.

II. Thách thức khi triển khai YOLO Vì sao CPU GPU chưa đủ

Mặc dù GPU là nền tảng thống trị trong giai đoạn huấn luyện mô hình học sâu, nhưng khi chuyển sang giai đoạn suy luận (inference) trên các thiết bị biên, những nhược điểm cố hữu của nó bắt đầu bộc lộ. Bài toán triển khai mô hình AI trên FPGA không chỉ là một lựa chọn thay thế, mà là một yêu cầu tất yếu cho các ứng dụng đòi hỏi độ tin cậy và hiệu quả cao. GPU, với mức tiêu thụ điện năng lớn (TDP cao) và tỏa nhiệt nhiều, không phù hợp cho các hệ thống nhúng nhỏ gọn, hoạt động bằng pin như UAV hay các camera giám sát di động. Hơn nữa, độ trễ xử lý của GPU có thể không ổn định do phụ thuộc vào kiến trúc driver và hệ điều hành. CPU, với kiến trúc xử lý nối tiếp, hoàn toàn không thể đáp ứng yêu cầu tính toán song song khổng lồ của các mô hình như YOLOv5/YOLOv8 trên FPGA. Do đó, việc tìm kiếm một giải pháp phần cứng chuyên biệt, có thể tùy chỉnh để tối ưu cho một mô hình cụ thể là cực kỳ cần thiết. Đây là lúc FPGA thể hiện vai trò không thể thay thế của mình trong các ứng dụng object detection on embedded systems.

2.1. Phân tích độ trễ và hiệu suất năng lượng của GPU

Hiệu suất năng lượng, được đo bằng chỉ số FPS/Watt, là một thước đo quan trọng đối với các hệ thống nhúng. Trong khi GPU có thể đạt được FPS cao, mức tiêu thụ điện năng của nó cũng rất lớn, dẫn đến chỉ số FPS/Watt thấp. Tài liệu gốc đã chỉ ra rằng, khi so sánh trực tiếp, hệ thống SoC Zynq ZCU104 tiêu thụ công suất trung bình thấp hơn đáng kể so với GPU. Điều này có ý nghĩa sống còn đối với các thiết bị cần hoạt động liên tục hoặc có nguồn năng lượng hạn chế. Về độ trễ, việc xử lý dữ liệu trên GPU thường đi qua nhiều lớp phần mềm, gây ra độ trễ không thể đoán trước. Ngược lại, một thiết kế tăng tốc phần cứng trên FPGA có luồng dữ liệu xác định, giúp đạt được độ trễ thấp và ổn định, một yếu tố cực kỳ quan trọng cho các ứng dụng nhận dạng đối tượng thời gian thực.

2.2. Yêu cầu nén và lượng tử hóa mô hình cho hệ thống nhúng

Các mô hình YOLO gốc thường có kích thước lớn và yêu cầu các phép tính dấu phẩy động (32-bit floating-point), vốn rất tốn tài nguyên trên phần cứng. Để triển khai mô hình AI trên FPGA hiệu quả, việc tối ưu hóa mô hình là bắt buộc. Hai kỹ thuật chính được áp dụng trong đồ án là cắt tỉa (pruning) và lượng tử hóa mô hình (model quantization). Pruning giúp loại bỏ các kết nối nơ-ron không cần thiết để giảm độ phức tạp tính toán. Quantization chuyển đổi các trọng số và phép tính từ dấu phẩy động 32-bit sang số nguyên 8-bit (INT8). Quá trình này không chỉ giảm kích thước mô hình mà còn giúp các phép tính thực hiện nhanh hơn và tiêu thụ ít tài nguyên phần cứng hơn trên FPGA. Nền tảng Vitis AI cung cấp các công cụ mạnh mẽ để thực hiện các kỹ thuật này một cách hiệu quả.

III. Phương pháp tối ưu mô hình YOLO cho SoC FPGA hiệu quả

Để đạt được kết quả tốt nhất, một quy trình chuẩn bị và tối ưu hóa mô hình YOLO đã được xây dựng một cách khoa học. Quá trình này không chỉ dừng lại ở việc huấn luyện mô hình trên một tập dữ liệu có sẵn, mà bao gồm cả việc xây dựng một bộ dữ liệu chuyên biệt và áp dụng các kỹ thuật tiên tiến để mô hình vừa gọn nhẹ, vừa chính xác. Mục tiêu của giai đoạn này là tạo ra một mô hình 'FPGA-friendly', sẵn sàng cho quá trình lượng tử hóa và biên dịch sau đó. Theo tài liệu gốc, các mô hình YOLOv3, YOLOv4 và các biến thể 'tiny' của chúng đã được lựa chọn để huấn luyện và đánh giá. Việc lựa chọn này cho phép so sánh sự đánh đổi giữa độ chính xác và tốc độ, từ đó tìm ra ứng viên tốt nhất cho việc triển khai trên kit SoC Zynq ZCU104. Quá trình này đòi hỏi sự kết hợp giữa kiến thức về học sâu và hiểu biết về kiến trúc phần cứng, là bước nền tảng quyết định sự thành công của toàn bộ dự án phát hiện drone bằng YOLO.

3.1. Xây dựng và tiền xử lý bộ dữ liệu mục tiêu bay chuyên dụng

Chất lượng của mô hình học sâu phụ thuộc rất lớn vào chất lượng của bộ dữ liệu huấn luyện. Đồ án đã tiến hành xây dựng một tập dữ liệu hình ảnh riêng, bao gồm các lớp mục tiêu bay quan trọng như UAV cánh bằng, quadrotor, trực thăng, tiêm kích và chim. Việc đưa lớp 'chim' vào giúp mô hình có khả năng phân biệt tốt hơn, giảm thiểu các trường hợp dương tính giả (False Positive). Dữ liệu được thu thập từ nhiều nguồn khác nhau và được gán nhãn cẩn thận bằng các công cụ chuyên dụng như LabelImg. Các kỹ thuật tăng cường dữ liệu (data augmentation) như Mosaic, thay đổi màu sắc, và lật ảnh cũng được áp dụng để làm phong phú thêm bộ dữ liệu, giúp mô hình có khả năng khái quát hóa tốt hơn và hoạt động ổn định trong các điều kiện ánh sáng và góc nhìn khác nhau.

3.2. Kỹ thuật cắt tỉa pruning và lượng tử hóa quantization

Sau khi có mô hình đã được huấn luyện (fine-tuning) với độ chính xác cao trên GPU, bước tiếp theo là nén mô hình. Đồ án đã áp dụng phương pháp cắt tỉa L1-norm pruning để loại bỏ các kênh (channels) có trọng số nhỏ, giảm đáng kể số lượng phép tính mà không ảnh hưởng nhiều đến độ chính xác. Tiếp theo, quá trình lượng tử hóa mô hình được thực hiện bằng công cụ Vitis AI Quantizer. Quá trình này bao gồm hai bước: hiệu chuẩn (calibration) để xác định dải giá trị của các trọng số và kích hoạt, sau đó chuyển đổi mô hình từ FP32 sang INT8. Kết quả là một mô hình có kích thước nhỏ hơn nhiều lần, sẵn sàng để biên dịch cho Deep Learning Processor Unit (DPU).

IV. Hướng dẫn triển khai YOLO trên SoC FPGA với Vitis AI

Nền tảng Vitis AI của Xilinx đã đơn giản hóa đáng kể quy trình triển khai mô hình học sâu trên nền tảng SoC FPGA. Thay vì phải thiết kế phần cứng từ đầu bằng các ngôn ngữ mô tả phần cứng như Verilog/VHDL cho AI, các kỹ sư có thể sử dụng một luồng phát triển hợp nhất, bắt đầu từ các framework học sâu phổ biến như TensorFlow hay PyTorch và kết thúc bằng một ứng dụng chạy trên bo mạch. Quy trình này bao gồm ba bước chính: Lượng tử hóa mô hình, Biên dịch mô hình cho DPU, và Xây dựng ứng dụng phần mềm để chạy trên bo mạch. Đồ án đã tuân thủ chặt chẽ quy trình này để triển khai thành công các mô hình YOLOv4-tinyYOLOv3-tiny trên kit ZCU104. Việc sử dụng các thư viện và API do Vitis AI cung cấp giúp tăng tốc quá trình phát triển, cho phép tập trung nhiều hơn vào việc tối ưu thuật toán thay vì các chi tiết phần cứng phức tạp. Đây là một bước tiến lớn trong việc giúp cộng đồng dễ dàng tiếp cận với công nghệ FPGA acceleration for deep learning.

4.1. Vai trò của DPU Deep Learning Processor Unit trong tăng tốc

DPU là một lõi IP (Intellectual Property) có thể cấu hình, được tối ưu hóa để thực thi các phép tính của mạng nơ-ron tích chập (CNN). Nó hoạt động như một bộ xử lý chuyên dụng cho AI, được tích hợp vào vùng logic khả trình (PL) của SoC Zynq. Vitis AI Compiler sẽ phân tích mô hình đã được lượng tử hóa và biên dịch nó thành một tập các chỉ lệnh (instructions) mà DPU có thể hiểu và thực thi. DPU được thiết kế với kiến trúc song song cao, cho phép nó xử lý nhiều phép tính cùng lúc, từ đó đạt được hiệu năng vượt trội. Trong đồ án này, DPU được cấu hình trên kit ZCU104 để cung cấp tài nguyên tính toán cần thiết cho mô hình YOLO, giải phóng bộ xử lý ARM cho các tác vụ khác.

4.2. Biên dịch và xây dựng chương trình thực thi trên ZCU104

Sau khi mô hình được lượng tử hóa, Vitis AI Compiler được sử dụng để biên dịch file mô hình .h5 hoặc .pb thành một file .xmodel. File này chứa các chỉ lệnh đã được tối ưu cho kiến trúc DPU cụ thể. Bước tiếp theo là xây dựng nền tảng phần cứng (hardware platform) bằng công cụ Vivado và nền tảng phần mềm (software platform) chứa hệ điều hành Linux và các thư viện cần thiết. Cuối cùng, một chương trình ứng dụng C++ được viết để điều khiển toàn bộ hệ thống: nhận dữ liệu từ camera, đưa dữ liệu vào DPU để xử lý, nhận kết quả đầu ra, và vẽ các hộp giới hạn (bounding box) lên hình ảnh. Chương trình này sử dụng các thư viện Vitis AI Runtime (VART) để giao tiếp với DPU một cách hiệu quả.

V. Kết quả đồ án YOLO trên FPGA vượt trội GPU ra sao

Kết quả thực nghiệm là thước đo chính xác nhất cho sự thành công của một đồ án kỹ thuật. Bằng cách so sánh trực tiếp hiệu năng trên ba nền tảng CPU, GPU và FPGA, đồ án đã cung cấp những bằng chứng thuyết phục về ưu thế của giải pháp triển khai mô hình học sâu trên nền tảng SoC FPGA. Các chỉ số quan trọng như số khung hình trên giây (FPS), độ chính xác trung bình (mAP), và đặc biệt là hiệu quả năng lượng (FPS/Watt) đã được đo lường và phân tích chi tiết. Kết quả cho thấy, nền tảng FPGA không chỉ đạt được hiệu năng thời gian thực mà còn vượt trội hoàn toàn so với GPU về mặt hiệu quả sử dụng năng lượng. Đây là một kết luận quan trọng, khẳng định tính khả thi và tiềm năng to lớn của việc sử dụng FPGA cho các ứng dụng thị giác máy tính thời gian thực tại biên, đặc biệt là trong các hệ thống phát hiện các mục tiêu bay yêu cầu sự nhỏ gọn và tiết kiệm năng lượng.

5.1. So sánh FPS độ trễ và độ chính xác mAP đa nền tảng

Theo bảng kết quả trong tài liệu gốc, mô hình YOLOv4-tiny triển khai trên kit ZCU104 (FPGA) đã đạt được tốc độ xử lý ấn tượng, đáp ứng yêu cầu thời gian thực (FPS > 30). Con số này cao hơn đáng kể so với khi chạy trên CPU và cạnh tranh trực tiếp với GPU. Về độ chính xác, chỉ số mAP của mô hình trên FPGA sau khi lượng tử hóa chỉ giảm nhẹ so với mô hình gốc trên GPU, cho thấy quá trình tối ưu hóa đã rất thành công trong việc bảo toàn chất lượng của mô hình. Điều này chứng minh rằng việc sử dụng số nguyên 8-bit là hoàn toàn khả thi cho bài toán nhận dạng đối tượng thời gian thực mà không phải hy sinh quá nhiều về độ chính xác.

5.2. Đánh giá hiệu quả năng lượng FPS W Lợi thế của FPGA

Đây là điểm mà nền tảng FPGA thể hiện sự vượt trội rõ rệt nhất. Bằng cách đo lường công suất tiêu thụ trung bình của kit ZCU104 và card GPU trong quá trình hoạt động, đồ án đã tính toán chỉ số hiệu quả năng lượng FPS/Watt. Kết quả cho thấy hệ thống SoC FPGA có hiệu quả năng lượng cao hơn gấp nhiều lần so với GPU. Cụ thể, trong khi cả hai nền tảng có thể đạt FPS tương đương, FPGA chỉ tiêu thụ một phần nhỏ công suất so với GPU. Lợi thế này làm cho FPGA trở thành lựa chọn không thể thay thế cho các ứng dụng học sâu trên hệ thống nhúng như drone, robot tự hành, hay các thiết bị IoT yêu cầu thời gian hoạt động dài bằng pin.

VI. Tương lai đồ án YOLO trên SoC FPGA và hướng phát triển

Đồ án triển khai mô hình học sâu YOLO trên nền tảng SoC FPGA đã chứng minh thành công tính khả thi và ưu việt của giải pháp tăng tốc phần cứng cho các ứng dụng AI tại biên. Tuy nhiên, đây mới chỉ là bước khởi đầu. Tiềm năng của công nghệ này còn rất lớn và có thể được mở rộng theo nhiều hướng khác nhau. Các nghiên cứu trong tương lai có thể tập trung vào việc tối ưu hóa sâu hơn nữa, tích hợp các cảm biến đa phương thức, và áp dụng cho các bài toán phức tạp hơn. Việc kết hợp giữa các thuật toán AI tiên tiến và các nền tảng phần cứng linh hoạt như SoC FPGA sẽ tiếp tục là động lực chính thúc đẩy cuộc cách mạng công nghiệp 4.0, tạo ra các hệ thống tự động thông minh và hiệu quả hơn. Các phiên bản YOLO mới hơn như YOLOv8 trên FPGA cũng là một hướng nghiên cứu hứa hẹn, đòi hỏi các kiến trúc DPU mới và kỹ thuật tối ưu hóa phức tạp hơn.

6.1. Tích hợp camera và xây dựng hệ thống giám sát hoàn chỉnh

Một hướng phát triển tự nhiên là xây dựng một hệ thống giám sát tự động hoàn chỉnh. Điều này bao gồm việc tích hợp trực tiếp camera MIPI hoặc USB vào bo mạch ZCU104, xây dựng một giao diện người dùng để hiển thị kết quả phát hiện theo thời gian thực, và thiết lập cơ chế cảnh báo khi phát hiện mục tiêu đáng ngờ. Hệ thống này có thể được triển khai tại các khu vực nhạy cảm như sân bay, nhà máy điện, hoặc các cơ sở quân sự để tạo thành một lớp phòng thủ chủ động, giúp phát hiện sớm các mối đe dọa từ UAV bất hợp pháp. Việc sử dụng các công cụ High-Level Synthesis (HLS) có thể giúp tăng tốc quá trình phát triển các module xử lý tiền kỳ và hậu kỳ cho luồng video.

6.2. Tiềm năng mở rộng ứng dụng trong an ninh giám sát

Phương pháp luận và quy trình kỹ thuật được trình bày trong đồ án có thể được áp dụng rộng rãi cho nhiều bài toán thị giác máy tính khác. Ví dụ, hệ thống có thể được huấn luyện lại để phát hiện người, phương tiện giao thông cho các ứng dụng thành phố thông minh, hoặc phát hiện khuyết tật sản phẩm trong các dây chuyền sản xuất công nghiệp. Khả năng tái cấu hình của FPGA cho phép một nền tảng phần cứng duy nhất có thể phục vụ nhiều ứng dụng khác nhau chỉ bằng cách nạp một mô hình và thiết kế phần cứng mới. Đây chính là lợi thế chiến lược của FPGA, mở ra vô số tiềm năng cho các ứng dụng tăng tốc phần cứng cho AI trong tương lai.

11/09/2025

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

Chương 1 trình bày tổng quan về bài toán phát hiện, nhận dạng các mục tiêu bay trong hình ảnh và tầm quan trọng của nó trong các ứng dụng khác nhau, đặc biệt là trong lĩnh vực quân sự. Ưu nhược điểm của phương pháp học sâu so với các phương pháp truyền thống trong bài toán phát hiện mục tiêu, giải thích lý do lựa chọn mạng học sâu YOLO để triển khai, và sự cần thiết của việc triển khai bộ tăng tốc phần cứng trên FPGA. Cung cấp tổng quan ngắn gọn về nền tảng phần cứng FPGA Zynq UltraScale+ MPSoC của Xilinx, nền tảng phát triển Vitis AI và kit phát triển ZCU104, đồng thời giải thích tại sao lại triển khai mô hình học sâu trên nền tảng này và đề ra mục tiêu thiết kế cần đạt được.1 Tổng quan về bài toán phát hiện các mục tiêu bay trong hình ảnh Trong những năm gần đây, những thuật toán xử lý và phân tích dựa trên hình ảnh là một chủ đề nóng và nhận được nhiều sự quan tâm. Xử lý ảnh không chỉ được áp dụng trong các lĩnh vực dân sự mà còn được áp dụng rộng rãi trong lĩnh vực quân sự.

Trong lĩnh vực quân sự, ảnh hàng không và ảnh viễn thám được sử dụng để phát hiện các mục tiêu là máy bay trong các căn cứ quân sự và sân bay, có ý nghĩa to lớn đối với việc triển khai tình báo và triển khai chiến lược. Qua hình ảnh thu được, người chỉ huy có thể nắm được nhanh chóng, chính xác số lượng máy bay địch trên chiến trường và tình hình cất, hạ cánh. Cung cấp thông tin cần thiết cho quyết định tiếp theo, đóng vai trò thiết yếu trong chiến thắng [1]. Do đó, phát hiện máy bay hay các mục tiêu bay khác trong hình ảnh rất phổ biến trong lĩnh vực nghiên cứu quân sự.

Ngoài ra, việc nhận dạng, phân loại các mục tiêu bay quân sự cũng rất quan trọng, giúp đem lại nhiều thông tin có ích hơn. Vì vậy, làm thế nào để phát hiện và nhận dạng chính xác các mục tiêu bay trong ảnh chụp trên không có giá trị nghiên cứu cao. Đặc biệt là trong thời gian gần đây, UAV hay drone được sử dụng rộng rãi với nhiều mục đích khác nhau. Với công nghệ ngày càng hiện đại, được trang bị nhiều chức năng cao cấp, linh hoạt với thiết kế nhỏ gọn mà giá thành lại không quá đắt.

UAV được sử dụng trong nhiều lĩnh vực với nhiều mục đích khác nhau, đặc biệt là trong lĩnh vực quân sự, các thế lực thù địch sử dụng nó để thăm dò địa hình, mang vật liệu nổ trái phép, có thể đe dọa đến an ninh. UAV lại thường hoạt động ở các địa hình phức tạp như trong thành phố có nhiều toà nhà cao tầng. Do đó việc phát hiện UAV bất hợp pháp trong nhiều điều kiện khác nhau và với các kích thước đa dạng là rất cần thiết. Việc phát hiện các mục tiêu bay nói chung cũng như phát hiện UAV có thể được chia thành các phương pháp: các phương pháp phát hiện dựa trên sóng âm, các phương pháp phát hiện dựa trên Radar, các phương pháp phát hiện dựa trên sóng RF, các phương pháp phát hiện dựa trên hình ảnh và video.

Trong [2], [3] chỉ ra rằng các phương pháp phát hiện dựa trên hình ảnh ít nhạy cảm với nhiễu môi trường so với các phương pháp khác. Các phương pháp Radar cần thiết bị đắt tiền và có một nhược điểm là điểm mù qua đó máy bay nhỏ có thể bay gần mặt đất mà không bị phát hiện. Điều này có thể bị khai thác cho các hoạt động bất hợp pháp 1 và có khả năng được sử dụng cho các cuộc tấn công khủng bố, gián điệp. Các phương pháp phát hiện dựa trên sóng âm thì dễ bị ảnh hưởng bởi tiếng ồn môi trường.

Hơn nữa, các giải pháp phát hiện dựa trên hình ảnh sử dụng học máy hoặc học sâu đã thu hút sự chú ý ngày càng tăng do sự phổ biến của AI. Phương pháp phát hiện dựa vào hình ảnh có 2 nhược điểm lớn là là phụ thuộc vào điều kiện tầm nhìn và yêu cầu tính toán cao của các thuật toán xử lý. Đối với UAV, việc phát hiện và nhận dạng các mục tiêu bay khác có thể làm cơ sở cho hệ thống phát hiện và né tránh (DAA – Detect and Avoid), nhằm tránh va chạm với các phương tiện bay cũng như vật cản trong không phận [4]. Có thể được áp dụng với UAV bầy đàn để bay một cách an toàn như ở môi trường trong nhà hoặc UAV trinh thám, do thám quân sự.

Ngoài ứng dụng đặc biệt cho UAV thì phát hiện và nhận dạng các mục tiêu bay còn có thể được tích hợp trong các hệ thống chống UAV và được triển khai trong các cơ sở hạ tầng quan trọng (các cơ quan chính phủ, nhà máy điện hạt nhân…) hoặc bất cứ nơi nào cần thiết, chúng có thể được sử dụng để phát hiện các cuộc tấn công bằng UAV nhằm vô hiệu hóa chúng (Hình 1. a, Hệ thống phát hiện và né tránh b, UAV bầy đàn c, Hệ thống chống UAV d, Ứng dụng viễn thám Hình 1.1 Một số ứng dụng của phát hiện các mục tiêu bay [5] Phát hiện các mục tiêu bay trong hình ảnh có một số yêu cầu đặc biệt cụ thể so với phát hiện mục tiêu, đối tượng nói chung là [5]:  Khả năng phát hiện các mục tiêu nhỏ trong ảnh.  Khả năng xử lý trong thời gian thực.  Có thể tích hợp trên các phương tiện bay nhỏ như UAV.

 Khả năng phân biệt với các vật thể bay khác như chim.  Khả năng hoạt động liên tục. Những yêu cầu này có thể thay đổi với các ứng dụng cụ thể, ví dụ như nếu triển khai tích hợp trên các phương tiện bay nhỏ như UAV để làm hệ thống DAA 2 hoặc phục vụ mục đích do thám, trinh sát thì có yêu cầu cao nhất vì nhiều lý do như chúng là các hệ thống thời gian thực, trọng lượng, kích thước và mức điện năng tiêu thụ bị hạn chế. Những ứng dụng khác như hệ thống chống UAV hoặc các mục tiêu bay khác thì yêu cầu thấp hơn vì không bị hạn chế về trọng lượng, kích thước và mức điện năng tiêu thụ.

Tất nhiên những hệ thống trong thực tế không chỉ dựa vào một công nghệ phát hiện duy nhất nào cho tất cả các yêu cầu và ứng dụng khác nhau vì mỗi công nghệ có một ưu nhược điểm riêng mà thường là kết hợp nhiều công nghệ như là Radar và cả camera thường lẫn camera hồng ngoại để khắc phục nhược điểm của các phương pháp và hỗ trợ cho nhau, trong đồ án này em chỉ tập trung vào các phương pháp phát hiện mục tiêu dựa vào hình ảnh.2 Các phương pháp phát hiện mục tiêu dựa trên học sâu và giới thiệu về mô hình mạng YOLO Trước khi đi vào các phương pháp phát hiện mục tiêu trong ảnh thì cần phải làm rõ một số khái niệm về bài toán phát hiện hay nhận dạng mục tiêu, đối tượng trong lĩnh vực thị giác máy tính. Nhận dạng đối tượng là một thuật ngữ chung để mô tả một tập hợp các nhiệm vụ thị giác máy tính có liên quan liên quan đến việc xác định các đối tượng trong ảnh kỹ thuật số. Phân loại hình ảnh liên quan đến việc dự đoán lớp của một đối tượng trong một hình ảnh. Định vị vật thể đề cập đến việc xác định vị trí của một hoặc nhiều đối tượng trong một hình ảnh và vẽ bounding box (hình chữ nhật được vẽ bao quanh đối tượng nhằm xác định đối tượng) xung quanh chúng.

Phát hiện đối tượng kết hợp hai nhiệm vụ trên và thực hiện cho một hoặc nhiều đối tượng trong hình ảnh. Chúng ta có thể phân biệt giữa ba nhiệm vụ thị giác máy tính cơ bản trên thông qua input và output của chúng như sau:  Phân loại hình ảnh: Dự đoán nhãn của một đối tượng trong một ảnh. o Input: Một hình ảnh với một đối tượng. o Output: Nhãn lớp (ví dụ: một hoặc nhiều số nguyên được ánh xạ tới nhãn lớp).

 Định vị đối tượng: Xác định vị trí hiện diện của các đối tượng trong ảnh và cho biết vị trí của chúng bằng bounding box. o Input: Một hình ảnh có một hoặc nhiều đối tượng. o Output: Một hoặc nhiều bounding box được xác định bởi tọa độ tâm, chiều rộng và chiều cao.  Phát hiện đối tượng: Xác định vị trí hiện diện của các đối tượng trong bounding box và nhãn của các đối tượng nằm trong một hình ảnh.

o Input: Một hình ảnh có một hoặc nhiều đối tượng. o Output: Một hoặc nhiều bounding box và nhãn cho mỗi bounding box. Một số định nghĩa khác cũng rất quan trọng trong computer vision là phân đoạn đối tượng (object segmentation), trong đó các đối tượng được nhận dạng bằng cách làm nổi bật các pixel cụ thể của đối tượng thay vì bounding box. Và image 3 captioning kết hợp giữa các kiến trúc mạng CNN và LSTM để đưa ra các lý giải về hành động hoặc nội dung của một bức ảnh.2 Các mối liên hệ giữa các tác vụ trong thị giác máy tính [6] Có rất nhiều các phương pháp, thuật toán được dùng trong bài toán phát hiện mục tiêu, đối tượng trong hình ảnh.

Đặc biệt là trong thời gian gần đây với sự phát triển bùng nổ của AI và sự ra đời của học sâu (DL), một nhánh con của học máy (ML). Từ đó có sự phân chia các phương pháp, thuật toán phát hiện đối tượng thành các phương pháp truyền thống và các phương pháp hiện đại được phát triển trong thời gian gần đây. Sự xuất hiện của học sâu có thể giải quyết một số nhược điểm của các phương pháp truyền thống. Các kiến trúc học sâu có thể học các đặc trưng phức tạp hơn từ hình ảnh.

Ở những thời kì đầu tiên trong lĩnh vực này, các phương pháp phát hiện đối tượng truyền thống như SIFT [7], HOG [8] nghiên cứu tập trung vào việc sử dụng các hand-crafted feature (đặc điểm nhận dạng do con người nghĩ ra) yêu cầu trích xuất đặc trưng thủ công và các bộ phân loại (classifier) được thiết kế và huấn luyện cho các đối tượng phát hiện cụ thể. Cách tiếp cận phát hiện đối tượng truyền thống thường có ba giai đoạn là: lựa chọn vùng thông tin, trích xuất đặc trưng và phân loại đối tượng.

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