LỜI MỞ ĐẦU. Lý do chọn đề tài 1. Mục tiêu nghiên cứu đề tài. Phạm vi nghiên cứu.
TONG QUAN DE TÀII. Giới thiệu chung về mạng CNN. Xác nhận mặt người có hoặc không có mang khẩu TATĐ,. Xác nhận khuôn mặt không đeo khâu trang.
Xác nhận khuôn mặt không đeo khẩu trang hoặc khác. Dấu chấm động độ chính xác don (Single precision Floating Point). - + SE E111 11111 HH HH Hiến 5 2. Dau cham động chuẩn IEEE~754.
Cấu trúc biểu diễn trong máy tính. Nhược điểm. LÝ THUYET VỀ KIÊN TRÚC XCEPTION. Tổng quan kiến trúc mạng Xception.
Hướng xây dựng kiến trÚc. Kiến trúc nhóm sử dụng. Lớp tích chập (Convolution). cece ¿5+ + SSk‡k#EkEkekEE E1 gu.
Lớp tổng hợp (Pooling). Lớp kết nói đầy đủ (Fully-Connected). Tại sao lại là Separable Convolution 3. Các hàm kích hoạt.--- ¿5c St SxSsvxvEvEvxrrrrrrrrrrrkrree 18 ko.
St St SEkEErkkrirrkkrkrkkkkrkrkrkrkrkrkrek 19 Chương 4. CHI TIẾT VE THIẾT KE CAC MODULE XCEPTION. Thiết kế khối Convolution 3x3 stride 2 padding 0. Kernel 3x3 stride 2 padding 0.
Thiết kế khối Convolution 3x3 stride 1 padding 0. Kernel 3x3 stride 1 padding Ú. Thiết kế khối Convolution 3x3 stride 1 padding 1 - Depthwise. Kernel 3x3 stride 1 padding Ì.
Thiết kế khối Convolution 1x1 stride 1 padding 1 - Pointwise. Kernel 1x1 stride 1 padding 1 - Pointwise. Convolution Core 1XLice ceceseeeeeseeneseereeeesteeeseseanseeeseeeeeeseneees 29 4. Thiết kế khối Convolution 1x1 stride 2 padding 0.
Kernel 1x1 stride 2 padding Ú. Thiết kế khối Convolution tông quát. Thiết kế kị hối ReLu. Thiết kế khối Max Pooling 3x3.
Kernel 3x3 stride 2 padding Ì. Khối tính giá trị maX. Thiết kế khối Global Average Pooling. Thiết kế khối Dense.
Thiết kế khối Sigmoid. Thiết kế khối Batch Normalization.-----ccc:::++222222vvvvvvrrrrrrrrrrrrrer 39 Chương 5. LAY GIA TRI TRỌNG SỐ. Tổng quan về nhận diện khuôn mặt đeo khẩu trang.
Gia tri trong số Convolution. Giá trị trọng số Separable Convolution. Giá trị trọng số Batch Normalization. Giá trị trong 1?” 43 Chương 6.
HIỆN THỰC THIẾT KÊ.22--©22222¿22EEE2222E2EE22E22+222222222rrrkk 44 6. Hiện thực thiết kế mạng CNN sử dụng kiến trúc Xception. Mô phỏng các thiết 6. Mô phỏng thiết kế khối Convolution 3x3 stride 2 padding 0.
Mô phỏng thiết kế khối Separable Convolution. Mô phỏng thiết kế khố 6. Mô phỏng thiết kế khối Max Pooling. Mô phỏng thiết kế khối Dense.
Mô phỏng thiết kế khối Datapath. Mô phỏng thiết kế khối SigmOid.ccccscsssssesessesssseseessssseeessessseessseessseeeeees 52 Chương 7. Tổng hợp tài nguyÊn. Kết quả dat AUQC.
Hướng phát trién. Giải pháp đề xuất cho hướng phát triển. TÀI LIỆU THAM KHẢO. DANH MỤC HÌNH VE Hình 2.1 Hình mô tả tổng quát về mô hình mang CNN.2 Mô tả tra cứu khuôn mặt không đeo khẩu trang.3 M6 tả tra cứu khuôn mặt có đeo khẩu trang.4 Mô tả tra cứu khác.1 Mô tả diagram của kiến trúc Xception với kích cỡ ảnh 299x299x3.
HH1 HH HH 1 HH 1.2 Mô tả Diagram của kiến trúc Xception với ảnh đầu vào 22s 2m—.3 Mô tả kiến trúc Xception xử lý tuần tự.4 Mô tả kiến trúc Xception xử lý song song.5 Mô tả khối thiết kế Xception với ảnh đầu vào 47x47x1.6 Mô tả convolution có output = 8x8x1.7 Mô tả quá trình convolution: 12x12x3 - (5x5x3x256) = ĐxÐX25Ố.8 Mô tả khối Max-Pooling và Average-Pooling.9 Mô tả hoạt động của khối Fully-Connected.10 Mô tả Depthwise Convolution dùng 3 kernel để chuyển ảnh 12x12x3 thành 8x8x3.11 Mô tả Pointwise Convolution chuyển 3 channel ảnh thành 1 Hình 3.12 M6 tả Pointwise Convolution với 256 kernel có output ảnh là 256 channel.13 Mô tả hàm phi tuyến tính ReLU.14 Mô tả biểu diễn hàm Sigmoid trên trục Oxy.15 Mô tả công thức tính của hàm Sigmoid.16 Mô tả bước stride 1 với ảnh đầu vào 6x6 và kernel 2x2.17 Mô tả bước stride 2 với ảnh đầu vào 6x6 và kernel 2x2.1 Mô tả sơ đồ khối Line Buffer.2 Mô tả sơ đồ khối Convolution 3x3 stride 2 padding 0.3 Mô tả cách lấy giá trị của khối Kernel 3x3 stride 2 padding 0.4 Mô tả cách nhân tích chập các input của khối .5 Mô tả sơ đồ khối Convolution Core 3x3.6 Mô tả sơ đồ khối Convolution 3x3 stride 1 padding 0.7 Mô tả cách lấy giá trị của khối Kernel 3x3 stride 1 padding 0.8 Mô tả cách lấy giá trị của khối Kernel 3x3 stride 2 padding 1.9 Mô tả sơ đồ khối Convolution 1x1 stride 1 padding 1.10 Mô tả cách lấy giá trị của khối Kernel 1x1 stride 1 padding 1.11 Mô tả sơ đồ khối Convolution Core 1x1.12 Mô tả sơ đồ khối Convolution 1x1 stride 2 padding 0.13 Mô tả cách lấy giá trị của khối Kernel 1x1 stride 2 padding 0.14 Mô tả sơ đồ khối Kernel 1x1 stride 2 padding 0.15 Mô tả sơ đồ khối Convolution tổng quát.16 M6 tả cách thực thi của hàm kích hoạt Relu.17 Mô tả sơ đồ khối ReLU Activation.18 Mô tả sơ đồ khối của Max Pooling 3x3 stride 2.19 Mô tả cách lấy giá trị của khối Kernel 3x3 stride 2 padding 1.20 Mô tả sơ đồ khối tinh giá trị max.21 Mô tả sơ đồ khối Global Average Pooling.22 M6 tả sơ đồ khối Dense.23 Mô tả công thức tính của hàm kích hoạt Sigmoid.24 Mô tả sơ đồ khối Sigmoid.25 Mô tả công thức tính của khối Batch Normalization.26 Mô tả interface sơ đồ khối Batch Normalization.1 Mô tả các thông số khi train các ảnh.2 Mô tả các lớp layer nhỏ bên trong Batch Normalization trong quá trình lấy trọng SỐ.1 Tổng quan quy trình thiết kế kiến trúc Xception.2 Mô tả sơ đồ khối Datapath chỉ tiết.3 Mô ta interface các port khối ControlÌer.4 Mô tả giá trị ảnh đầu vào 7Xx7x.5 Mô tả giá trị ma tran kernel 3x3.- ---- 555cc sssesersersee 47 Hình 6.6 Mô tả kết quả thực tế khi nhân tích chập ma trận 3x3.7 Kết quả mô phỏng khối Convolution 3x3 Stride 2 Padding 0.8 Mô tả mô phỏng thiết kế khối Separable với input ảnh đầu vao.9 Mô tả mô phỏng thiết kế khối Separable với output ảnh đầu ra.10 Mô tả kết quả mô phỏng khối ReLU.11 Mô tả mô phỏng khối Max Pooling quá trình nạp input ảnh.12 Mô tả mô phỏng khối Max Pooling quá trình xuất output ảnh.13 Mô tả quá trình thực hiện nhân Kernel và cộng tổng các giá trị Hình 6.15 Mô tả kết quả mô phỏng của khối Dense.16 Mô tả kết quả Verilog với đối tượng đeo khẩu trang và đối 81490158 :4:r-112 11117.17 Mô tả kết quả bằng Python với đối tượng đeo khẩu trang và đối tWONG :4:r-112 1111777.18 Mô tả kết quả bằng Verilog với đối tượng không đeo khẩu DANH MỤC BẢNG Bảng 2.1 Mô tả các kiểu dấu chấm động.1 Mô tả tín hiệu interface của các khối chung thiết kế.1 Kết quả sau khi tổng hợp IP Xception.2 Mô tả so sánh tài nguyên khi xử lý ảnh 47x47 và 127x127.3 Mô tả so sánh tài nguyên khi xử lý tuần tự và song song. 56 DANH MỤC TU VIET TAT Al Artificial Intelligence AXI Advanced Extensible Interface CNN Convolutional Neural Network CNNs Convolutional Neural Networks CPU Central Processing Unit DL Deep Learning DSP Digital Signal Processor FPGA Field Programmable Gate Array FC Fully Connected FF Flip flop FIFO First In First Out FP Floating Point GPU Graphics Processing Unit IP Intellectual Property LUT Look Up Table LUTRAM Look Up Table Random Address Memory Mux Multiplexer Mul Multiplication MSB Most Significant Bits PC Personal Computer RAM Random Access Memory ReLU Rectified Linear Unit Reg Register SD Secure Digital TÓM TÁT KHÓA LUẬN Trong khóa luận nay, nhóm đề xuất mang No ron than kinh tích chập CNN sử dung kiến trúc Xception trên FPGA. Trong đó mạng sử dụng trọng số đã được huấn luyện trước sẵn trên phần mềm (Keras, Tensorflow,.) bằng ngôn ngữ Python sau đó trích xuất các trọng số cần thiết để đưa vào mạng nhóm đã thiết kế bằng ngôn ngữ phần cứng Verilog. Kiến trúc mạng có thé thay đổi được các trọng số đầu vào, có thé thay đổi đối tượng nhận diện mong muốn.
Đồng thời nhóm tiến hành tối ưu tài nguyên dé có thể đáp ứng được cho board sử dụng là Virtex-7 VC707. Kết quả sẽ được đánh giá theo các tiêu chí: * Tinh chính xác của thuật toán, kết quả sẽ được đánh giá dựa vào kết quả tính toán ở cơ sở lý thuyết và so sánh với kết quả model đã mô phỏng thử trên Python. * M6 phỏng và hiện thực: Thành công thiết kế, tối ưu, va synthesis từng module nhỏ đến module Xception tông hợp thành một IP thống nhất đề tiễn hành xây dựng tài nguyên và hệ thống trên FPGA. + Tai nguyên phần cứng: Việc đánh giá các thông số này sẽ được thực hiện trên các phân mêm của Xilinx.
LỜI MỞ ĐÀU 1. Lý do chọn đề tài Máy học là một trong những ứng dụng của công nghệ AI cung cấp cho các hệ thống khả năng tự động học hỏi và cải thiện từ kinh nghiệm mà không cần lập trình rõ ràng đóng vai trò rất lớn trong thời đại 4. Trong đó học sâu DL một chỉ của ngành máy học là tập hợp các thuật toán để có gắng mô hình dữ liệu trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp hoặc bằng nhiều cách khác. Trong đó Mạng nơ-ron thần kinh tích chập là CNN.
Đây là một trong những mô hình của DL. Với việc phát triển của AI đi theo đó ta cần những phần cứng cần được phát triển để có thể giúp cho việc vận hành của AI dé dàng nhanh chóng hơn. Từ đó việc ứng dụng mô hình mạng Nơ-ron tích chập trên FPGA sẽ giúp tối ưu hóa hơn về thời gian, không phụ thuộc quá nhiều vào server đồng thời giúp ta có thé dé dàng kiểm soát tốt hơn về tài nguyên sử dụng. Dựa trên lý do đó nhóm muốn nghiên cứu và phát triển lõi IP CNN xử lý trên số dấu chấm động độ chính xác đơn (Single- precision Floating Point) và có thê nạp được trên board FPGA.
Tình hình dịch COVID-19 hiện nay trên thế giới nói chung và Việt Nam nói riêng tuy đã có cải thiện rõ rệt. Qua trận đại dịch vừa rồi cho thấy được các căn bệnh truyền nhiễm qua đường hô hấp đang có xu hướng gia tăng qua từng năm. Tương lai vẫn có thé xuất hiện các căn bệnh truyền nhiễm khác mà ta không thé ngờ tới. Do đó việc đeo khẩu trang ở nơi công cộng là không thé thiếu và điều đó đã và đang trở thành điều bắt buộc ở một số nước có không khí bị ô nhiễm.
Với đề tại được chọn này nhóm mong muốn hoàn thành mục tiêu có thể hiện thực thành công mạng CNN sử dụng kiến trúc Xception để nhận diện khuôn mặt người có hoặc không đeo khẩu trang từ đó có thé giúp giải quyết được nhiều van dé cần thiết trong xã hội với vấn đề dịch bệnh nhằm hạn chế sự tác động của con người 1. Mục tiêu nghiên cứu đề tài Nghiên cứu, tìm hiểu, phân tích về các thành phần trong mô hình mạng nơ ron tích chập CNN. Nghiên cứu, tìm hiểu, thiết kế được lõi IP có thể hiện thực được mô hình mạng nơ ron tích chập sử dụng Verilog. Hiện thực thiết kế cho mạng nhận diện được 2 đối tượng riêng biệt.