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.