I. Tổng Quan Hệ Thống Phát Hiện Đối Tượng Thời Gian Thực FPGA
Phát hiện đối tượng thời gian thực là một lĩnh vực quan trọng của computer vision. Nó cho phép máy móc xác định và phân loại các đối tượng trong hình ảnh và video một cách nhanh chóng. Ứng dụng của nó rất đa dạng, từ các hệ thống giám sát tự động nhận diện người và xe cộ, đến các hệ thống quân sự chuyên dụng. Các hệ thống này đòi hỏi sự cân bằng giữa độ chính xác, tốc độ xử lý và mức độ phức tạp của tính toán. Trong các hệ thống nhúng với tài nguyên hạn chế, việc này càng trở nên khó khăn hơn.
Có hai phương pháp chính để phát hiện đối tượng: phương pháp truyền thống sử dụng các thuật toán trích xuất đặc trưng thủ công và phương pháp học sâu sử dụng mạng nơ-ron. Mặc dù các phương pháp học sâu thường được đánh giá cao về độ chính xác, các thuật toán trích xuất đặc trưng thủ công vẫn có những ưu điểm riêng, đặc biệt là về hiệu quả tính toán trên các nền tảng CPU cơ bản. Luận văn này tập trung vào phát triển hệ thống phát hiện đối tượng thời gian thực cho các thiết bị nhúng sử dụng camera cố định và các thuật toán nhẹ, tận dụng đặc điểm nền gần như không đổi của camera cố định. Zifian Estimation được sử dụng để phát hiện các đối tượng chuyển động. Các kết quả đánh giá cho thấy tiềm năng của hướng tiếp cận này trong việc cân bằng giữa hiệu quả và độ chính xác.
1.1. Ứng dụng đa dạng của phát hiện đối tượng thời gian thực
Phát hiện đối tượng thời gian thực đóng vai trò then chốt trong nhiều lĩnh vực. Trong các hệ thống giám sát, nó cho phép tự động phát hiện người và phương tiện, rất quan trọng cho an ninh. Trong nông nghiệp, nó hỗ trợ đếm gia súc, theo dõi sự phát triển của cây trồng và phát hiện dịch bệnh. Xe tự hành sử dụng nó để phân loại các xe khác, người đi bộ, tín hiệu giao thông và biển báo. Nó còn được dùng trong các hệ thống vũ khí công nghệ cao như Kamikaze drones. Độ chính xác chịu ảnh hưởng bởi màu sắc, độ tương phản, hình dạng và hướng đối tượng. Luận văn này tập trung vào phát hiện đối tượng thời gian thực cho các thiết bị nhúng.
1.2. Các phương pháp phát hiện đối tượng Học sâu và truyền thống
Có hai phương pháp chính trong phát hiện đối tượng: truyền thống và học sâu. Phương pháp học sâu có thể chia thành hai loại: thuật toán đề xuất vùng (RCNN, SPP-net, Fast-RCNN, Faster-RCNN) và thuật toán hồi quy (SSD, YOLO). Phương pháp truyền thống sử dụng thuật toán trích xuất đặc trưng thủ công (HOG, SIFT, Haar wavelets). Mặc dù học sâu được khen ngợi về độ chính xác, phương pháp truyền thống vẫn có ưu điểm về hiệu quả tính toán. Thuật toán trích xuất đặc trưng thủ công chạy hiệu quả trên CPU, trong khi mạng nơ-ron cần GPU hoặc phần cứng chuyên dụng. Phương pháp thủ công dựa vào kiến thức chuyên môn, ít phụ thuộc vào bộ dữ liệu huấn luyện lớn. Đồ án tập trung vào hệ thống phát hiện đối tượng thời gian thực cho thiết bị nhúng dùng camera cố định.
II. Vấn Đề Thách Thức Phát Triển Hệ Thống FPGA Hiệu Năng Cao
Phát hiện đối tượng thời gian thực đòi hỏi sự cân bằng giữa tốc độ và độ chính xác. Các ứng dụng yêu cầu xử lý video với tốc độ khung hình cao mà không có độ trễ. Việc tối ưu hóa độ trễ trên các thành phần khác nhau, bao gồm dữ liệu đầu vào, bộ xử lý, phần mềm và thiết bị đầu ra, có thể rất phức tạp. Ứng dụng thường được triển khai trên các thiết bị biên với số lượng lớn, đòi hỏi các yếu tố như kích thước, nguồn điện, hiệu suất xử lý và chi phí phải được xem xét kỹ lưỡng.
Các phương pháp phức tạp sử dụng mạng học sâu có hiệu quả về độ chính xác và tốc độ, nhưng chúng đòi hỏi phần cứng hiệu năng cao như GPU. Việc cân bằng hiệu năng và cấu hình thiết bị là một thách thức lớn. Một hệ thống phát hiện đối tượng thời gian thực cần phải đáp ứng các yêu cầu khắt khe về tốc độ xử lý, độ chính xác và tiêu thụ năng lượng. Việc tối ưu hóa hệ thống để đáp ứng các yêu cầu này trên nền tảng FPGA là một bài toán kỹ thuật phức tạp.
2.1. Cân bằng tốc độ và độ chính xác trong xử lý thời gian thực
Xử lý thời gian thực là yếu tố then chốt. Các hệ thống cần xử lý video với tốc độ khung hình cao mà không có độ trễ. Điều này rất quan trọng để đảm bảo hoạt động hiệu quả và thành công của ứng dụng. Việc tối ưu hóa độ trễ trên các thành phần khác nhau là rất phức tạp. Để đáp ứng yêu cầu, cần cân bằng giữa tốc độ và độ chính xác, đảm bảo hiệu suất tối ưu. Các hệ thống cần được triển khai trên thiết bị biên với số lượng lớn, do đó cần cân nhắc các yếu tố như kích thước, nguồn điện, hiệu suất và chi phí.
2.2. Hạn chế về tài nguyên trên thiết bị nhúng và FPGA
Các ứng dụng phát hiện đối tượng thời gian thực thường được triển khai trên các thiết bị biên. Các thiết bị này có kích thước và công suất hạn chế. Mặc dù các mạng học sâu phức tạp có hiệu quả về độ chính xác và tốc độ, nhưng chúng đòi hỏi phần cứng hiệu năng cao như GPU. Cân bằng hiệu năng và cấu hình thiết bị là một thách thức lớn. Việc phát triển hệ thống phát hiện đối tượng thời gian thực đòi hỏi sự cân bằng giữa tốc độ xử lý, độ chính xác và tiêu thụ năng lượng, đặc biệt khi triển khai trên FPGA. Các hệ thống cần đáp ứng các yêu cầu khắt khe về tài nguyên và chi phí.
III. Giải Pháp Phát Triển Hệ Thống Phát Hiện Đối Tượng Bằng FPGA
Luận văn này đề xuất một hệ thống phát hiện đối tượng thời gian thực cho các thiết bị nhúng sử dụng camera cố định và các thuật toán nhẹ. Hệ thống tận dụng đặc điểm nền gần như không đổi của camera cố định. Kỹ thuật Zipfian Estimation được sử dụng để phát hiện các đối tượng chuyển động. Thuật toán HOG-SVM cũng được sử dụng, tính toán song song ở các tỷ lệ khác nhau để tránh bỏ sót đối tượng. Các giá trị lượng tử hóa được sử dụng để giảm số lượng tính toán phức tạp. Kiến trúc hệ thống bao gồm một chuỗi hình ảnh đầu vào, được tiền xử lý bằng Zipfian Estimation. Các khu vực phát hiện chuyển động được chuyển đến khối Phát Hiện Đối Tượng. Các kết quả được hợp nhất với hình ảnh gốc. Hệ thống được đề xuất để triển khai trên FPGA. Tuy nhiên, do hạn chế về thời gian, hệ thống sẽ được dừng lại ở giai đoạn mô phỏng phần mềm.
3.1. Ứng dụng Zipfian Estimation cho phát hiện chuyển động
Hệ thống này sử dụng kỹ thuật Zipfian Estimation. Kỹ thuật này hữu ích khi xử lý các đối tượng động như con người, vì nó chỉ tính toán những đối tượng nằm trong khung hình. Các khu vực phát hiện chuyển động được chuyển đến khối Phát hiện Đối tượng. Phương pháp này tận dụng đặc điểm nền gần như không đổi của camera cố định. Điều này giúp giảm đáng kể lượng tính toán cần thiết, làm cho hệ thống phù hợp hơn với các thiết bị nhúng có tài nguyên hạn chế.
3.2. Tối ưu hóa hiệu năng với HOG SVM và tính toán song song
Thuật toán HOG-SVM cũng được sử dụng để tính toán, song song ở các tỷ lệ khác nhau để tránh bỏ sót đối tượng. Các giá trị lượng tử hóa được sử dụng để giảm số lượng tính toán phức tạp. Điều này giúp cải thiện hiệu quả của hệ thống. Khối Phát hiện Đối Tượng bao gồm một mô-đun Scale Generator, sáu mô-đun tính toán HOG-SVM chạy song song trong kiến trúc đa luồng và một thuật toán NMS. Mô-đun Scale Generator và mô-đun tính toán HOG-SVM đa luồng rất quan trọng để giảm thời gian xử lý khi chia tỷ lệ hình ảnh đầu vào.
IV. Phương Pháp Thiết Kế Kiến Trúc Hệ Thống Phát Hiện Trên FPGA
Kiến trúc hệ thống được đề xuất bao gồm việc sử dụng một chuỗi hình ảnh làm đầu vào, sau đó sẽ được tiền xử lý bằng Zipfian Estimation. Các vùng có phát hiện chuyển động sẽ được chuyển đến khối Phát hiện Đối tượng, bao gồm mô-đun Scale Generator, sáu mô-đun tính toán HOG-SVM chạy song song trong kiến trúc đa luồng và một mô-đun thuật toán NMS. Các mô-đun Scale Generator và HOG-SVM đa luồng là yếu tố quan trọng để giảm thời gian xử lý khi chia tỷ lệ hình ảnh đầu vào để phát hiện tất cả con người ở nhiều tỷ lệ khác nhau. Kết quả sau đó được hợp nhất với hình ảnh gốc để xem, lưu trữ hoặc truyền đến máy chủ để xử lý thêm. Hệ thống đang được đề xuất để triển khai trên FPGA. Do hạn chế về thời gian, hệ thống sẽ dừng lại ở giai đoạn mô phỏng phần mềm.
4.1. Tiền xử lý với Zipfian Estimation giảm tải tính toán
Hệ thống bắt đầu bằng việc sử dụng chuỗi hình ảnh làm đầu vào. Sau đó, nó sẽ được tiền xử lý bằng Zipfian Estimation. Kỹ thuật này tập trung vào việc phát hiện các đối tượng chuyển động. Các vùng có phát hiện chuyển động sẽ được chuyển đến khối Phát hiện Đối tượng. Bằng cách chỉ tập trung vào các khu vực có chuyển động, lượng tính toán cần thiết sẽ giảm đi đáng kể. Điều này giúp hệ thống phù hợp hơn với các thiết bị nhúng có tài nguyên hạn chế. Hệ thống tận dụng được đặc điểm nền gần như không đổi của camera cố định.
4.2. Song song hóa HOG SVM Tăng tốc độ xử lý trên FPGA
Khối Phát hiện Đối tượng bao gồm mô-đun Scale Generator, sáu mô-đun tính toán HOG-SVM chạy song song trong kiến trúc đa luồng và mô-đun thuật toán NMS. Các mô-đun Scale Generator và HOG-SVM đa luồng rất quan trọng để giảm thời gian xử lý khi chia tỷ lệ hình ảnh đầu vào. Kiến trúc đa luồng cho phép tận dụng tối đa khả năng tính toán song song của FPGA. Điều này giúp tăng tốc độ xử lý và đáp ứng các yêu cầu thời gian thực.
4.3. Triển khai hệ thống trên FPGA Tối ưu cho phần cứng
Hệ thống được đề xuất để triển khai trên FPGA. Tuy nhiên, do hạn chế về thời gian, hệ thống sẽ dừng lại ở giai đoạn mô phỏng phần mềm. Việc triển khai trên FPGA cho phép tối ưu hóa hệ thống cho phần cứng, tận dụng các tài nguyên như DSP slices và Block RAM. FPGA cung cấp sự linh hoạt và hiệu năng cao, phù hợp cho các ứng dụng phát hiện đối tượng thời gian thực trên thiết bị nhúng. Điều này giúp hệ thống đáp ứng các yêu cầu khắt khe về hiệu năng và tiêu thụ năng lượng.
V. Đánh Giá Hiệu Năng Hệ Thống Phát Hiện Đối Tượng FPGA
Hệ thống được đề xuất đã trải qua thử nghiệm trên nền tảng phần mềm C++ trên máy tính với bộ xử lý Intel® Core™ i5-1035G4. Nguồn video đầu vào được lấy từ bộ dữ liệu MOT15. Đánh giá hệ thống dựa trên tốc độ và độ chính xác. Tốc độ của hệ thống tương đối tốt, nhưng độ chính xác thấp. Điều này có thể là do nhiều yếu tố như độ phức tạp của hình ảnh đầu vào, hạn chế của bộ đào tạo SVM và việc không chọn ngưỡng phù hợp cho từng bước như Zipfian Estimation, HOG-SVM hoặc NMS. Ngoài ra, các giá trị lượng tử hóa để tối ưu hóa tốc độ trong các bước đã góp phần làm giảm độ chính xác. Tuy nhiên, điểm sáng là hệ thống có độ phức tạp thấp đã được tối ưu hóa phù hợp cho các nền tảng phần cứng trong tương lai như nền tảng FPGA của Xilinx.
5.1. Thiết lập thử nghiệm và bộ dữ liệu sử dụng trong đánh giá
Hệ thống được thử nghiệm trên nền tảng phần mềm C++. Máy tính sử dụng bộ xử lý Intel® Core™ i5-1035G4. Nguồn video đầu vào được lấy từ bộ dữ liệu MOT15. Bộ dữ liệu MOT15 là một bộ dữ liệu chuẩn được sử dụng để đánh giá các thuật toán theo dõi đối tượng. Việc sử dụng bộ dữ liệu chuẩn giúp đảm bảo tính khách quan và khả năng so sánh với các hệ thống khác.
5.2. Kết quả đánh giá Tốc độ và độ chính xác của hệ thống
Đánh giá hệ thống dựa trên tốc độ và độ chính xác. Tốc độ của hệ thống tương đối tốt. Tuy nhiên, độ chính xác thấp. Điều này có thể là do nhiều yếu tố, bao gồm độ phức tạp của hình ảnh đầu vào và hạn chế của bộ đào tạo SVM. Ngoài ra, việc không chọn ngưỡng phù hợp cho từng bước như Zipfian Estimation, HOG-SVM hoặc NMS cũng góp phần làm giảm độ chính xác. Việc sử dụng các giá trị lượng tử hóa để tối ưu hóa tốc độ cũng có thể ảnh hưởng đến độ chính xác.
VI. Kết Luận Triển Vọng Hệ Thống Phát Hiện Đối Tượng FPGA
Mặc dù hệ thống hiện tại còn một số hạn chế về độ chính xác, nhưng nó cung cấp một nền tảng vững chắc cho việc phát triển một hệ thống phát hiện đối tượng thời gian thực hiệu quả trên FPGA. Các vấn đề về độ chính xác có thể được cải thiện bằng cách sử dụng một bộ dữ liệu huấn luyện SVM phù hợp hơn và chọn các ngưỡng thích hợp cho từng bước của quy trình. Việc triển khai hệ thống trên FPGA sẽ cho phép tận dụng tối đa khả năng tính toán song song và hiệu quả năng lượng của nền tảng này. Hệ thống này có tiềm năng lớn để được sử dụng trong nhiều ứng dụng khác nhau, bao gồm giám sát an ninh, xe tự hành và robot công nghiệp. Với những cải tiến hơn nữa, hệ thống này có thể trở thành một giải pháp hiệu quả và tiết kiệm chi phí cho việc phát hiện đối tượng thời gian thực trên các thiết bị nhúng.
6.1. Hướng cải thiện độ chính xác và hiệu năng hệ thống
Có thể cải thiện độ chính xác bằng cách sử dụng một bộ dữ liệu huấn luyện SVM phù hợp hơn. Cần chọn các ngưỡng thích hợp cho từng bước của quy trình (Zipfian Estimation, HOG-SVM, NMS). Việc triển khai trên FPGA sẽ cho phép tận dụng tối đa khả năng tính toán song song và hiệu quả năng lượng của nền tảng này. Cần tối ưu hóa hệ thống để tận dụng tối đa các tài nguyên phần cứng của FPGA.
6.2. Tiềm năng ứng dụng trong các lĩnh vực khác nhau
Hệ thống này có tiềm năng lớn để được sử dụng trong nhiều ứng dụng khác nhau. Các ứng dụng tiềm năng bao gồm giám sát an ninh, xe tự hành và robot công nghiệp. Hệ thống có thể được tùy chỉnh để đáp ứng các yêu cầu cụ thể của từng ứng dụng. Với những cải tiến hơn nữa, hệ thống này có thể trở thành một giải pháp hiệu quả và tiết kiệm chi phí cho việc phát hiện đối tượng thời gian thực trên các thiết bị nhúng.