Chương 1. tt th re 2 1. Lý do thực hiện khóa luận. Mục tiêu khóa luận.
re3 Chương2. CO SỞ LÝ THUYÉT. Stride - Bước nhảy [I]. Ý nghĩa phép tính tích chập:.---cc:c2222+2tv2EEEvrreEErrrrrsrrkrrrrrrrrrrree 8 2.
Câu trúc mang veccccsscessssssecscssssscssssssessssssscsssssvecssssusecesssueeesssssecessseess 8 2. Nguyên lý hoạt động của mang nơ-ron nhân tạo. Mạng nơ-ron tích chập (CNN). Câu trúc mạng nơ-ron tích chập.
Lớp tích chập [3]. Mô hình YOLLO. Hàm tính IoU [G]. Fine-grained Feature 2.
Mô hình YOLO v2-TÌny. Mô hình Custom YOLO. Mô hình YOLOv3. Mô hình Tinier-YOLO [9].
Cấu trúc mô hình. Số dau chấm động (Floating poin†). Số châm động với chuẩn [EEE 754. Số chấm động half-precision với chuẩn IEEE 754.
Cách OpenCL tổ chức các phép tính toán song song. Truyén nhận dữ LGU. Intel® FPGA SDK for OpenCLTM [15] 0. Tổng quan về board DEI-SoC.---:2scz222ssvzeccvse 34 Chuong 3.
PHƯƠNG PHÁP THỰC HIỆN. Thiết kế mô hình Custom Tinier YOLO. Chuẩn bị và huấn luyện mô hình.38 Chuan bi va 0n ân, Vẽ. Cấu hình mô hình trên framework darknet.
Huấn luyện mô hình. Xây dựng hệ điều hành Linux trên board DEI-SoC. Luồng boot linux [I7].¿-cc522vs+veeccvvrreerrsrrrerrreree 44 3. Các công cụ cần thiết 3.
Tạo file FPGA programmable bitstream (.aocx) và file raw binary 0000809077. Tạo file preloader (preloader-mkpimage. Tạo file u-boot (uboot. Tạo file zImage và file device tree blob(.
Tạo root filesystem [17]. Tạo u-boot script [17]. Tạo OpenCL driver. Tạo SD image [21].
eee eee SE ren50 3. Thiết kế hệ thống SoC-FPGA. Hiện thực host prograim. Hiện thực kernel.---- + +5 +x+k‡k*k*EkEekekE ngư55 Chuong 4.
KET QUA THUC HIỆN. Kết quả huấn luyện mô hình Custom Tinier YOLO. Kết quả chạy giả lập Custom Tinier YOLO. KET LUẬN VÀ HƯỚNG PHAT TRIÉN.
Kết quả dat ẨƯỢC. Nhược điểm. TÀI LIEU TIENG ANH TAI LIEU TIENG VIET DANH MỤC HÌNH Hìn 2. Ma trận điểm ảnh X có kích thước 5*5.
Nhân ma trận con với kernel W. Kết quả tích giữa ma trận con A va kernel W. Kết quả tích chập Y giữa ma trận X va kernel W. Ma trận với padding=1.
Ma trận với padding=1 và stride=2. Kernel cho phép tích chập làm nét ảnh. Kernel cho phép tích chập xác định đường nét ảnh. Cấu trúc tổng quan của mang nơ-ron nhân ta0.
Đường biểu diễn biểu thức ReLU. Đường biểu diễn Leaky ReLU. Sơ đồ quá trình Feed-forward. Cấu trúc mạng no-ron tích chập.
Tensor ba chiều biểu diễn ảnh màu. Tích chập giữa tensor ảnh màu va tensor kernel. Kích thước dữ liệu đầu ra từ lớp tích chập. Ví du về max pooling.---zz+22scc+ccz+ Hin 2.
Phương pháp pooling giảm width va height của dữ liệu đầu vao.Téng quan quá trình nhận diện bằng mô hình YOLO. Cầu trúc của mô hình YOLO. Các thông số của bounding box.------ccc:¿+222cvvvvcresrrrrrrree 19 Hinl h 2. Công thức tính lo.
Dự đoán bounding box dựa trên độ lệch so với anchor box. Cấu trúc mô hình YOLOV2. Cau trúc mô hình YOLOv2-Tiny [1]. Cấu trúc mô hình Custom YOLO.
Cấu trúc Darknet-53 mà mô hình YOLOv3 dùng. Cấu trúc mô hình Tinier YOLO. Số dau cham động dang single precision theo chuẩn IEEE 754. Số dau cham động half-precision theo chuân IEEE 754.
Thuật toán GEMM. --- 5c c2 St SE erverrrrrrrrrrrrrrrrrrrrrrree 30 Hin h 2. Workflow của OpenCL framewWOrẨK. Global dimension, local dimension, work-group và work-item.
Vi dụ về cách ma OpenCL đồng bộ phép tinh. Sau khi gan phép tính vào work-item. Cấu trúc của hệ thống SoC-FPGA board DE1-SoC. Board DE1-SoC ÏayOUL.
Một số ảnh trong Stanford car dataset.:---cc++2cvsccrccrveree 39 Hin h 3. Layout của SD card image [Í6]. Ludng boot Linux.-:--:¿22+++22+++++22vv+eztvvsversrrsseee 44 Hin 3. Các bước chạy sau khi Linux kernel được boot.
Board package support của Terasic. Tổng quan hệ thống SoC-FPGA. Mô tả quá trình thực thi của hệ thống. Áp dụng phương pháp im2col dé xử lý đầu vào cho GEMM.
Áp dụng phương pháp im2row đề xử lý đầu vào cho GEMM. Kết quả huấn luyện mô hình. Kết quả nhận diện của Custom Tinier YOLO khi chạy giả lập. Kết quả biên dịch của kernel.
Kết quả chạy gia lập mô hình cho board DE1-SoC. 64 DANH MỤC BANG Bảng 2. So sánh hiệu suất của các phiên bản YOLO [2]. mAP và FLOPS của Tiny Yolov2 và Custom Yolo.3 Bang so sánh tốc độ của các kiến trúc mạng nơ-ron.
Bảng so sánh độ chính xác của nhiều mô hình khác nhau. Bảng thông số mô hình Custom Tinier YOLO. Liệt kê đặc trưng các loại xe trong tập huấn luyện. Chỉ tiết của mỗi partition.
Độ chính xác AP của các đối tượng Bảng 4. Một số kết quả ngẫu nhiên của 3 đối tượng. So sánh BFLOPS của một số mô hình Tiny YOLO. So sánh độ phức tap của các mô hình Tiny YOLO cho FPGA.
61 DANH MỤC TU VIET TAT STT Từ viết tắt Từ đầy đủ 1 ALM Adaptive Logic Module 2 ALUT Adaptive Look-Up Table 3 CNN Convolution Neural Network 4 DNN Deep Neural Network 5 DSP Digital Signal Processing 6 FPGA Field Programmable Gate Array 7 GEMM General Matrix Multiply 8 HLS High-Level Synthesis 9 HPS Hardware Processor System 10 IoU Intersection over Union 11 LUT Look-Up Table 12 ReLU Retified Linear Unit 13 SDK Software Development Kit 14 SoC System on Chip 15 YOLO You Only Look Once TÓM TÁT KHÓA LUẬN Đề tài "Hệ thống nhận diện phương tiện giao thông trên FPGA" - một nghiên cứu về việc thiết kế và xây dựng một hệ thống nhận diện phương tiện giao thông trên FPGA(Field-programmable gate array). Hệ thống này có khả năng nhận diện một số phương tiện giao thông trên đường bao gồmô tô, xe máy, xe tải. Từ đó có thể ứng dụng mô hình này để xây dựng hệ thống giám sát vi phạm luật giao thông như bắn tốc độ trên đường cao tốc, kiểm tra các vi phạm như lấn làn, vượt đèn đó, gây tai nạn,. Việc thiết kế hệ thống sử dụng FPGA giúp tăng tốc độ xử lý và giảm thời gian đáp ứng của hệ thống và có thể phát triển thành các IC.
Kết quả của nghiên cứu này sẽ giúp cải thiện an toàn giao thông và giảm tỷ lệ xảy ra tai nạn. Đề tài tập trung nghiên cứu một số mô hình nhận diện vật thé phổ biến hiện nay, cụ thé là mô hình YOLO và các biến thé của nó. Vì YOLO được biết đến là một trong những mô hình CNN có khả năng phát hiện và phân loại đối tượng với tốc độ cao mà vẫn đảm bảo độ chính xác nên thường được ứng dụng trong các hệ thống nhận diện thời gian thực. Hơn nữa, một số biến thể của YOLO đã phát triển để đáp ứng những môi trường bị giới hạn tài nguyên như máy tính nhúng hay hệ thống SoC FPGA.
Từ đó, nhóm xây dựng một mô hình YOLO phù hợp với môi trường tài nguyên hạn hẹp của DEI-SoC. Đề phục vụ cho việc phát triển khả năng nhận diện một số loại phương tiện giao thông, nhóm đã thu thập một bộ dữ liệu huấn luyện cho mô hình của nhóm. Ngoài ra, đề tài cũng nghiên cứu cách xây dựng hệ thống sử dụng hệ điều hành Linux trên board DE1-SoC phục vụ cho việc thực thi chương trình trên board. Từ đó, nhóm tận dung khả năng hỗ trợ xây dựng mach logic tổ hợp bằng ngôn ngữ OpenCL dé hiện thực mô hình nhận diện trên FPGA.
Lý do thực hiện khóa luận Sự phát triển bùng nỗ của phương tiện giao thông khiến cho việc quan lý đảm bảo trật tự an toàn giao thông cũng như giám sát vi phạm luật của các phương tiện trở nên khó khăn hơn, từ đó dẫn đến số vụ tai nạn và khả năng gặp tai nạn tăng cao. Nhằm tang cường đảm bảo an toàn cho người dân khi tham gia giao thông, chính phủ đã cho thực hiện những chính sách đây mạnh ứng dụng khoa học công nghệ vào việc xây dựng hệ thống hỗ trợ quản lý, giám sát. Một trong những giải pháp công nghệ được ứng dụng phổ biến, đóng một vai trò quan trọng trong việc quản lý, điều phối và xử lý các tình huống giao thông chính là xử lý ảnh. Xử lý ảnh là đối tượng nghiên cứu của lĩnh vực thị giác máy tính và là phân ngành trong xử lý tín hiệu số với tín hiệu xử lý là ảnh.
Day là một phân ngành khoa học mới rất phát triển trong những năm gần đây, thu hút rất nhiều nhà nghiên cứu và phát các kỹ thuật cũng như mô hình xử lý ảnh có độ chính xác và khả năng ứng dụng cao trong đời sống. Tuy nhiên, các thuật toán xử lý đều phải thực thi trên hệ thống máy tính phức tạp. Việc này hạn chế năng lực xử lý ảnh cũng như gây tiêu hao công suất tiêu thụ khi sử dụng lượng lớn camera và CPU hiệu năng cao cho hệ thống giám sát. Để cải thiện khả năng xử lý nhanh hơn và tiết kiệm năng lượng thì giải thuật nhận diện vật thé nên được thực hiện trên FPGA.
Nhằm mục đích tìm hiéu, tiếp cận các kỹ thuật xử lý ảnh đang phổ biến hiện nay khi kết hợp cùng với các giải thuật máy học, thông qua các bước nghiên cứu về kiến thức cơ bản về mô hình máy học xử lý ảnh như mạng nơ-ron tích chập CNN, nghiên cứu các thư viện hỗ trợ xử lý tính toán như OpenCV, BLAS. Hơn nữa, nhóm mong muốn học hỏi thêm về hệ thống SoC, cũng như khả năng hiện thực mô hình máy học lên FPGA. Từ đó, chúng em có thé đưa ra và hiện thực giải pháp cho van dé nói trên, cụ thể hơn là hiện thực một hệ thống máy học có thể nhận diện một số phương tiện giao thông trên FPGA. Do đó, nhóm chọn thực hiện khóa luận “Hệ thống nhận điện phương tiện giao thông trên FPGA”.
Mục tiêu khóa luận Mục tiêu chính của khóa luận là nghiên cứu, hiện thực một hệ thống SoC có khả năng phát hiện và phân loại một phương tiện giao thông trên đường, sử dụng mô hình Custom Tinier YOLO hiện thực trên board FPGA DEI-SoC. Cụ thể, chúng em sẽ tiến hành: Tìm hiểu và nghiên cứu các bài báo về hiện thực mô hình nhận diện trên FPGA. Từ đó lựa chọn hệ thống và mô hình khả thi dựa trên tài nguyên hiện có. Tìm hiểu về board DEI-SoC cũng như ngôn ngữ OpenCL nhằm hỗ trợ cho quá trình xây dựng cũng như hiện thực mô hình nhận diện phù hợp lên hệ thống.
Tìm hiểu và nghiên cứu mô hình YOLO cũng như các biến thé của nó dé chọn ra mô hình phù hợp với tiêu chí cụ thể như độ chính xác và độ tin cậy của dự đoán, kích thước mô hình, tốc độ xử lý. Từ đó, xây dựng mô hình phù hợp với phần cứng nhưng vẫn đảm bảo độ chính xác của kết quả dự đoán. Thu thập và xây dựng dataset phù hợp cho mô hình và tiến hành huấn luyện. Xây dựng chương trình có thê phát hiện và phân loại được 3 loại phương tiện giao thông gồm xe hơi, xe máy và xe tải.