Thiết Kế Hệ Thống Tìm Kiếm Khuôn Mặt Trên FPGA: Khóa Luận Tốt Nghiệp Kỹ Thuật Máy Tính

Khóa luận tốt nghiệp kỹ thuật máy tính tập trung thiết kế hệ thống tìm kiếm khuôn mặt trên FPGA, ứng dụng công nghệ xử lý hình ảnh hiện đại.

Chuyên ngành

Kỹ thuật máy tính

Người đăng

Ẩn danh

Thể loại

Khóa luận tốt nghiệp

2023

59
11
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: GIỚI THIỆU TONG QUAN ĐỀ TÀI

1.1. Bối cảnh và nhu cầu thực tế

1.2. Mục tiêu và phương pháp thực hiện đề tài

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

1.2.2. Phương pháp thực hiện

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. Mạng neural tích chập (CNN) và xác minh khuôn mặt (FI)

2.2. Số dấu chấm động - floating point và chuẩn IEEE754

2.2.1. Biểu diễn số floating point

2.2.2. Chuẩn IEEE754

2.3. Độ tương đồng Cosine

3. CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG

3.1. Thiết kế và xác minh module cosine

3.2. Floating Point IP Core

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI

5.1. Khó khăn gặp phải

5.2. Hướng phát triển

DANH MỤC HÌNH

DANH MỤC BẢNG

DANH MỤC TỪ VIẾT TẮT

Tóm tắt

I. Thiết kế hệ thống

Thiết kế hệ thống là trọng tâm của khóa luận, tập trung vào việc xây dựng một hệ thống tìm kiếm khuôn mặt hiệu quả trên nền tảng FPGA. Hệ thống này kết hợp giữa xử lý hình ảnhtính toán độ tương đồng cosine để nhận diện khuôn mặt. Mục tiêu chính là tối ưu hóa tốc độ xử lý và giảm thiểu chi phí năng lượng, đặc biệt khi triển khai trên các thiết bị biên như camera. Hệ thống nhúng được thiết kế để xử lý ít nhất 10.000 khuôn mặt, sử dụng công nghệ FPGA để tăng hiệu suất tính toán.

1.1. Kiến trúc hệ thống

Kiến trúc hệ thống bao gồm ba thành phần chính: Server, SoC Kit, và Web Interface. Server đảm nhiệm việc trích xuất và lưu trữ dữ liệu hình ảnh. SoC Kit, bao gồm Linux nhúng trên lõi ARM và FPGA, thực hiện tính toán độ tương đồng cosine. Web Interface nhận dữ liệu từ camera hoặc internet và hiển thị kết quả tìm kiếm. Sự kết hợp này tạo nên một hệ thống hoàn chỉnh, đáp ứng nhu cầu xử lý thời gian thực với chi phí thấp.

1.2. Tối ưu hóa phần cứng

Việc tối ưu hóa phần cứng được thực hiện thông qua việc thiết kế các module tính toán trên FPGA. Các module này được xây dựng bằng ngôn ngữ Verilog và kiểm tra trên môi trường Vivado. Quá trình này bao gồm việc xác minh tính toán độ tương đồng cosine bằng dữ liệu ngẫu nhiên và dữ liệu thực tế. Kết quả cho thấy hệ thống đạt hiệu suất cao với tài nguyên phần cứng được sử dụng hiệu quả.

II. Tìm kiếm khuôn mặt

Tìm kiếm khuôn mặt là ứng dụng chính của hệ thống, dựa trên việc tính toán độ tương đồng giữa các vector đặc trưng của khuôn mặt. Các vector này được trích xuất từ mạng neural tích chập (CNN), một công nghệ tiên tiến trong lĩnh vực nhận diện khuôn mặt. Hệ thống sử dụng độ tương đồng cosine để so sánh các vector, đảm bảo độ chính xác cao trong việc nhận diện.

2.1. Trích xuất đặc trưng

Quá trình trích xuất đặc trưng được thực hiện bằng CNN, một mạng neural chuyên dụng cho xử lý hình ảnh. CNN phân tích hình ảnh đầu vào và tạo ra các vector đặc trưng, đại diện cho các đặc điểm quan trọng của khuôn mặt. Các vector này sau đó được lưu trữ và sử dụng để tính toán độ tương đồng với các khuôn mặt mới.

2.2. Tính toán độ tương đồng

Độ tương đồng cosine được sử dụng để đo lường mức độ giống nhau giữa hai vector đặc trưng. Công thức tính toán này đảm bảo kết quả chính xác và nhanh chóng, phù hợp với yêu cầu xử lý thời gian thực. Hệ thống được thiết kế để xử lý hàng nghìn khuôn mặt cùng lúc, đáp ứng nhu cầu thực tế trong các ứng dụng như an ninh và giám sát.

III. Ứng dụng FPGA

FPGA đóng vai trò quan trọng trong việc tăng tốc độ tính toán và giảm tiêu thụ năng lượng của hệ thống. Khóa luận tập trung vào việc thiết kế các module phần cứng trên FPGA để thực hiện các phép toán số học phức tạp, đặc biệt là tính toán số dấu chấm động theo chuẩn IEEE754. Các module này được tích hợp vào hệ thống để đảm bảo hiệu suất cao và độ chính xác tuyệt đối.

3.1. Thiết kế module cosine

Module cosine được thiết kế để tính toán độ tương đồng giữa các vector đặc trưng. Module này sử dụng các IP Core của Xilinx để thực hiện các phép toán số học trên số dấu chấm động. Quá trình thiết kế bao gồm việc xác minh tính toán bằng dữ liệu ngẫu nhiên và dữ liệu thực tế, đảm bảo độ chính xác và hiệu suất của module.

3.2. Tích hợp hệ thống

Sau khi thiết kế, module cosine được tích hợp vào hệ thống thông qua Xillybus IP Core, cho phép truyền dữ liệu giữa FPGA và máy chủ. Hệ thống được triển khai trên Zynq-7000 ARM/FPGA SoC Board, đảm bảo hiệu suất cao và khả năng mở rộng. Kết quả thử nghiệm cho thấy hệ thống đạt hiệu suất tốt với tài nguyên phần cứng được sử dụng hiệu quả.

IV. Kết luận và hướng phát triển

Khóa luận đã thành công trong việc thiết kế và triển khai một hệ thống tìm kiếm khuôn mặt trên FPGA, đáp ứng các yêu cầu về tốc độ và hiệu suất. Hệ thống này có tiềm năng ứng dụng rộng rãi trong các lĩnh vực như an ninh, giám sát và nhận diện khuôn mặt. Các hướng phát triển trong tương lai bao gồm tối ưu hóa thêm về tài nguyên phần cứng và mở rộng khả năng xử lý dữ liệu lớn hơn.

4.1. Đánh giá kết quả

Hệ thống đạt được hiệu suất cao với khả năng xử lý hàng nghìn khuôn mặt cùng lúc. Kết quả thử nghiệm cho thấy độ chính xác cao trong việc nhận diện khuôn mặt, đáp ứng các yêu cầu thực tế. Tuy nhiên, vẫn còn một số thách thức trong việc tối ưu hóa tài nguyên phần cứng và giảm thiểu tiêu thụ năng lượng.

4.2. Hướng phát triển

Trong tương lai, hệ thống có thể được cải tiến bằng cách tích hợp các thuật toán học sâu tiên tiến hơn và tối ưu hóa việc sử dụng tài nguyên phần cứng. Ngoài ra, việc mở rộng khả năng xử lý dữ liệu lớn hơn cũng là một hướng phát triển quan trọng, giúp hệ thống đáp ứng các yêu cầu ngày càng cao trong thực tế.

21/02/2025

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

Chương 1. GIỚI THIỆU TONG QUAN ĐỀ TÀI. Bối cảnh và nhu cầu thực tẾ. Mục tiêu và phương pháp thực hiện dé tài.

Mục tiêu của để tài. Phương pháp thực hiện.------e-cceceeeeeeeseeseee LA Chương2. CO’ SO LÝTHUYẾT. Mạng neural tích chập (CNN) và xác minh khuôn mặt (F]).

Số dấu chấm động - floating point và chuẩn IEEE754. Biểu diễn số floating point. Độ tương đồng Cosine.eeererrrrrrrrrrrrrre, LO Chương3. THIẾT KẾ PHẦN CỨNG.

Thiết kế và xác minh module cosine. Floating Point IP Core. Thiết kế chỉ tiết module cosine. Xillybus IP Core.

Quy ước đặt tên các tín hiệu FPGA. _ Tín hiệu cho dữ liệu truyền từ máy chủ xuống FPGA. _ Tín hiệu cho truyền dữ liệu từ FPGA lên máy chủ. Thiết kế phần truyền dữ liệu giữa FPGA và máy chủ.

Thiết kế giao diện dé truyền dữ liệu phần mềm. Thiết kế giao diện dé truyền dữ liệu phần cứng. KẾT QUA KHI TRIEN KHAI TREN FPGA. Kết quả khi tổng hợp hệ thống trên FPGA.

Kết quả đạt được trên FPA.2+vxvthhHhnHnH hit 56 Chương 5. KET LUẬN VA HƯỚNG PHAT TRIỂN CUA DE TÀI. Khó khăn gặp phan. Huong phát triên DANH MỤC HÌNH Hình 1.1 Mô hình hệ thống tìm kiếm khuôn mặt.------2cc+++ccvzvxez 13 Hình 2.1: Kiến trúc mạng CNN đơn giản.----2222c22c+ezt2tEEvvvvrrrrrrrrrrrree 15 Hình 2.2: Kiến trúc mạng DenseÌNet.3: Mô hình trích xuất vector đặc trưng của khuôn mặt từ mạng CNN.4: Các trường bit của biểu diễn số floating-point.5: Giá trị cosine của hai góc trong hệ tọa độ.1: Thông số và các toán tử của khối tính toán số floating point.2: Interface của các khối tính toán số floating point.3: Interface của khối cosine .4: Sơ đồ khối tổng quan của module cosine.-----:---:+cc5sc+2 24 Hình 3.5: Interface của khối floating point add.-----¿-©2z++22+sz+zczsscez 25 Hình 3.6: Interface của khối floating point mul.----¿2©c++22+zz+2zvscez 27 Hình 3.7: Interface của khối floating point sQFt.-:---c¿5sc++2cscc+cvsscez 28 Hình 3.8: Interface của khối floating point sqrt.------cccscsccc-zcccccsssc+3Ù Hình 3.9: Interface của khối MAC.10: Interface của khối cOunt€r.-- ¿¿©22+++22EE++++2EESS+z2vExvrrsrrrscee 32 Hình 3.11: Tài nguyên sử dụng dé triển khai khối cosine.12: Cấu trúc một packet dùng đề xác minh khối cosine.13: Mô trường testbenchh.14: Kết quả đạt được với random dafa.15: Kết qua đạt được với realdata và trực quan dữ liệu.16: Luong dé liệu từ máy chủ truyền xuống FPGA (downstream) [7].17: Luồng dữ liệu được truyền từ FPGA lên máy chủ (upstream) [7] .18: Sơ đồ khối hệ thống.19: Sơ đồ thiết kế của khối Frame Reader.20: Interface của khối Frame Reader.----¿¿-++¿+222v+zz+cvvszcesrr 52 Hình 4.1: Tài nguyên sử dụng của hệ thống dạng bảng.2: Tài nguyên sử dụng của hệ thống dạng biéu đồ.3: Năng lượng tiêu thụ của hệ thống.----:¿¿©22z222v+zz+ccvsvreerr 55 Hình 4.4: Năng lượng tiêu thụ hệ thống trên chip .--¿+22zz+ccsscez 55 Hình 4.5: Kết quả tính toán khi day hai vector khác nhau chứa 128 phần tử.6: Kết quả khi đầy hai vector giống nhau chứa 128 phần tử DANH MỤC BANG Bang 3.1: Mô tả tín hiệu của các khối tính toán sé floating point.2: Mô tả tính hiệu của khối nhân cộng tích lũy (MAC).3: Mô tả tín hiệu của khối floating point add.4: Mô tả tín hiệu của khối floating point mul.5: Mô tả tín hiệu của khối floating point sqrt.6: Mô tả tín hiệu của khối floating point sqrt.7: Mô tả tín hiệu của khối MAC.8: Mô tả tính hiệu của khối cOun(er.9: Tổng hợp kết quả của khối cosine.----2¿¿222sz++222vvzcsccvseeecrr 34 Bảng 3.10: Thông tin về các chân kết nói I/O của hệ thống tìm kiếm khuôn mặt.11: Thông tin về các chân kết nói I/O của module Frame Reader.

53 DANH MỤC TU VIET TAT IEEE Institute of Electrical and Electronics Engineers FI Face Identification CNN Convolutional Neural Network IP Intellectual Property MAC Multiply and Accumulate FIFO First In First Out FPGA Field-Programmable Gate Array DMA Direct Memory Access LUT Look-up table FF Flip-Flop DSP Digital Signal Processing BUFG Global Clock Buffer MMCM Mixed-Mode Clock Manager TÓM TÁT KHÓA LUẬN Hiện nay việc ứng dụng machine learning và deep learning đã quá phổ biến và mang lại nhiều ứng dụng tuyệt vời. Tuy nhiên kèm theo đó sự bùng nỗ của dữ liệu lớn dẫn đến nhiều thách thức hơn cần phải giải quyết, đặc biệt là bài toán tốc độ xử lý. Trong khóa luận này nhóm chúng em xin trình bày giải pháp tìm kiếm khuôn mặt dựa trên vector đặc trưng của khuôn mặt kết hợp với khả năng tính toán mạnh với chỉ phí thấp của FPGA đề giải quyết vấn đề nêu trên. Nhóm đã nghiên cứu về các kiến thức liên quan đến tính toán độ tương đồng, độ tương đồng cosine.

Sau đó nhóm đề xuất kiến trúc tổng quan và chỉ tiết cho từng khối để xây dựng module tính toán cosine bằng code Verilog trên môi trường phần mềm Vivado, tiến hành xác minh mô phỏng bằng di liệu random và tập dữ liệu khuôn mặt được trích xuất trước dé kiểm chứng module đã thiết kế thông qua file testbench. Tiếp đến, nhóm tích hợp module cosine thiết kế được vào xillybus ip core cho phép truyền dữ liệu dựa trên DMA, kết hợp với trình điều khiển linux trên FPGA (xilinux) cùng nhau tạo thành một hệ thống tính toán tương đồng giao tiếp giữa FPGA và PC. Cuối cùng, nhóm tổng hợp toàn bộ thiết kế và nạp xuống board Zynq-7000 ARM/FPGA SoC Board đề thử nghiệm và đánh giá kết quả. GIỚI THIỆU TONG QUAN DE TÀI 1.

Bối cảnh và nhu cầu thực tế Máy học ở thời điểm hiện tại đã không còn là xu hướng hay phong trào trong giới công nghệ, mà đã trở thành một phương pháp phô biến giải quyết được nhiều bài toán trong cuộc sống mà phương pháp lập trình cổ điển bị hạn chế. Cụ thể như là các bài toán nhận diện và xác minh khuôn mặt, nhận diện làn đường, phát hiện đối tượng trong lĩnh vực thị giác máy tính. Hay đề xuất cụm từ, phát hiện bình luận tiêu cực, chống đạo văn bản trong lĩnh vực xử lý ngôn ngữ tự nhiên. Đặc biệt trong cộng đồng nhận diện khuôn mặt bên cạnh xử lý các giải thuật liên quan dé CNN, YoLo.

Thi các giải thuật đi kèm dé xử lý luồng dữ liệu trả ra từ các thuật toán xử lý ảnh cũng rất là lớn. Kèm theo yêu cầu xử lý tốc độ cao khi xử lý real-time ở các thiết bị biên với chỉ phí thấp. Cụ thể với đề tài của nhóm là xử lý tính toán độ tương đồng của hai khuôn mặt bằng cách tính độ tương đồng hai giữa hai vector đặc trưng đặc trưng khuôn mặt sau khi được trích xuất. Từ mạng CNN được đào tạo trước.

Để hiện hiện thực hóa các giải thuật liên quan đề máy học nói chung và những giải thuật liên quan dé học sâu hay xử lý ảnh nói riêng, các nhà phát triển thường triển khai chúng trên một server có rất nhiều tài nguyên đặc biệt là GPU. Trong khi các ứng dụng nhúng AI đề làm việc hiệu quả ở các thiết bị biên (camera) cần tối ưu tính toán dé có hiệu suất tốt hơn và việc tiêu hao năng lượng cũng là vấn đề được quan tâm. Ví dụ, nhận diện khuôn mặt tại camera, nhận diện làn đường cho xe tự hành, điều khiển robot, tiêu hao năng lượng thấp cho giải thuật máy học và học sâu là vô cùng cần thiết. Mục tiêu và phương pháp thực hiện đề tai 1.

Mục tiêu của đề tài Xây dựng hệ thống tìm kiếm khuôn mặt thực hiện tính toán ít nhất trên 10.000 khuôn mặt dựa trên việc kết hợp xử lý trên Server và SoC Kit gồm ba thành phần chính như Hình 1.1: + Server: Thực hiện trích xuất trên dữ liệu hình ảnh ngoài đời thực để lay và lưu trữ hình ảnh khuôn mặt. Giao tiếp với SoC Kit dé tiến hành so sánh độ tương đồng. + SoC: Hiện thực hệ thống tính toán độ tương đồng, gồm hai thành phần Linux nhúng trên lõi ARM của SoC và FPGA sử dụng tính toán độ tương đồng Cosine Similarity. + Web Interface: Thực hiện nhận dữ liệu từ Camera, hoặc Internet, sau đó truyền vào Server, nhận kết quả những khuôn mặt có độ tương đồng cao nhất từ Server để xuât ra màn hình.

SoC eel Featwe m I SQL Server = B FPGA Ran Hình 1.1 Mô hình hệ thống tìm kiếm khuôn mặt 13 1. Phương pháp thực hiện Tìm hiéu và xây dựng các thuật toán tính toán độ tương đồng trên phần mềm. Xây dựng các giải thuật tính toán độ tương đồng dé xuất bằng ngôn ngữ RTL, xây dựng datapath và controller, thiết kế các module. Hoàn thiện thiết kế và tiến hành kiểm tra kết quả phần cứng với kết qua đã thực hiện ở phần mềm, đánh giá tông quan về hiệu suất của thiết kế dé tiến hành tối ưu chuẩn bị để triển khai lên FPGA.

Triển khai thiết kế trên SoC Kit. Xây dựng cơ sở dữ liệu và server cho việc trích xuất và lưu trữ đặc trưng khuôn mặt. Xây dung web interface để nhận dữ liệu đầu vào và xuất dữ liệu đầu ra. Tiến hành chạy và đánh giá kết quả của hệ thống đề xuất.

Mang neural tích chập (CNN) và xác minh khuôn mặt (FI) Trong mạng neural, mô hình mạng neural tích chập (CNN) là một trong những mô hình để nhận dạng và phân loại hình ảnh. Trong đó, xác định đối tượng và nhận dạng khuôn mặt là một trong sỐ những lĩnh vực mà CNN được sử dụng rộng rãi. CNN phân loại hình ảnh bằng cách lấy một hình ảnh đầu vào (feature), xử lý và phân loại nó theo hạng mục nhất định. Mạng CNN là tập hợp nhiều lớp Convolutional chồng lên nhau, sử dụng các hàm Nonlinear Activation và tanh để kích hoạt các trọng số trong các node.

Ở mỗi lớp CNN, sau khi được các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho những lớp tiếp theo. Mỗi layer kế tiếp sẽ là kết quả Convolution từ Layer trước đó nên chúng ta có được các kết nối cục bộ. 14 t3 ftc_4 Eully-Connected Fully-Connected Neural Network Neural Network Conv_1 Conv_2 ReLU activation Convolution Convolution Ả — rile Max-Pooling BÉ AM Max-Pooling @ (with valid’ padding (2x2) valid padding (2x2) dropout) NY s INPUT - n1 channels ni channels n2channels n2channels || 3 @› (28 x28 x1) (24 x24 xn1) (12x12xn1) (8x8xn2) (4x4xn2) | n3 units Hình 2.1: Kiến trúc mang CNN đơn giản Việc thay đổi các lớp hay phát triển các kiến trúc mạng khác nhau cũng là một xu thế chạy đua trong những năm gần đây. Các mạng CNN nổi tiếng như là LetNet, AlexNet, VGG-16, GoogleNet — Inception-VI, ResNet-50, DenseNet vv.

Hiện tại ngày càng xuất hiện nhiều các kiến trúc CNN mới. Chúng hình thành, phát triển và cải tiến về độ sâu, cách thiết kế block. Lần lượt từ VGG Net đến DenseNet, chúng được ra đời dựa trên sự kế thừa những ý tưởng cũ và phát triển những ý tưởng mới. Quá trình phát triển của các kiến trúc mạng cũng song hành cùng với sự phát triển phần cứng máy tính như các GPU, CPU, TPU hay FPGA.

Kỹ thuật huấn luyện phân tán và song song trên nhiều GPU cho phép có kết quả nhanh hơn.

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

Thiết kế hệ thống tìm kiếm khuôn mặt trên FPGA - Khóa luận tốt nghiệp kỹ thuật máy tính là một tài liệu chuyên sâu tập trung vào việc phát triển hệ thống nhận diện khuôn mặt sử dụng công nghệ FPGA (Field-Programmable Gate Array). Nội dung chính bao gồm các phương pháp tối ưu hóa phần cứng để xử lý hình ảnh, cải thiện tốc độ và độ chính xác trong việc nhận diện khuôn mặt. Tài liệu này mang lại lợi ích lớn cho những ai quan tâm đến lĩnh vực xử lý hình ảnh, trí tuệ nhân tạo và thiết kế hệ thống nhúng, đặc biệt là các kỹ sư và sinh viên ngành kỹ thuật máy tính.

Để mở rộng kiến thức về các ứng dụng liên quan đến xử lý hình ảnh và điều khiển hệ thống, bạn có thể tham khảo Luận án nghiên cứu điều khiển rô bốt tay máy di động bám mục tiêu trên cơ sở sử dụng thông tin hình ảnh, nơi đi sâu vào việc ứng dụng thông tin hình ảnh để điều khiển robot. Ngoài ra, Luận án tiến sĩ về spatial-temporal filtering for image and video processing applications cung cấp cái nhìn chi tiết về các kỹ thuật lọc không gian-thời gian để tối ưu hóa chất lượng hình ảnh và video. Cả hai tài liệu này đều là nguồn tham khảo quý giá để hiểu rõ hơn về các công nghệ xử lý hình ảnh tiên tiến.