Khóa Luận Tốt Nghiệp: Thiết Kế Và Hiện Thực Mạng Nơ-Ron Tích Chập Trên FPGA Với Kiến Trúc Xception

Khóa luận tốt nghiệp trình bày thiết kế và hiện thực mạng nơ-ron tích chập trên FPGA sử dụng kiến trúc Xception, ứng dụng trong xử lý ảnh và AI.

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

2022

74
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: LỜI MỞ ĐẦU

1.1. Lý do chọn đề tài

1.2. Mục tiêu nghiên cứu đề tài

1.3. Phạm vi nghiên cứu

2. CHƯƠNG 2: TỔNG QUAN ĐỀ TÀI

2.1. Giới thiệu chung về mạng CNN

2.2. Xác nhận mặt người có hoặc không có mang khẩu trang

2.3. Xác nhận khuôn mặt không đeo khẩu trang

2.4. Xác nhận khuôn mặt không đeo khẩu trang hoặc khác

2.5. Dấu chấm động độ chính xác đơn (Single precision Floating Point)

2.5.1. Định nghĩa Dấu chấm động

2.5.2. Dấu chấm động chuẩn IEEE-754

2.5.3. Cấu trúc biểu diễn trong máy tính

2.5.4. Ưu điểm

2.5.5. Nhược điểm

3. CHƯƠNG 3: LÝ THUYẾT VỀ KIẾN TRÚC XCEPTION

3.1. Tổng quan kiến trúc mạng Xception

4. CHƯƠNG 4: CHI TIẾT VỀ THIẾT KẾ CÁC MODULE XCEPTION

4.1. Thiết kế khối Convolution 3x3 stride 2 padding 0

4.2. Kernel 3x3 stride 2 padding 0

4.3. Thiết kế khối Convolution 3x3 stride 1 padding 0

4.4. Kernel 3x3 stride 1 padding 0

4.5. Thiết kế khối Convolution 3x3 stride 1 padding 1 - Depthwise

4.6. Kernel 3x3 stride 1 padding 1

4.7. Thiết kế khối Convolution 1x1 stride 1 padding 1 - Pointwise

4.8. Kernel 1x1 stride 1 padding 1 - Pointwise

4.9. Thiết kế khối Convolution 1x1 stride 2 padding 0

4.10. Kernel 1x1 stride 2 padding 0

4.11. Thiết kế khối Convolution tổng quát

4.12. Thiết kế khối ReLU

4.13. Thiết kế khối Max Pooling 3x3

4.14. Kernel 3x3 stride 2 padding 1

4.15. Khối tính giá trị max

4.16. Thiết kế khối Global Average Pooling

4.17. Thiết kế khối Dense

4.18. Thiết kế khối Sigmoid

4.19. Thiết kế khối Batch Normalization

5. CHƯƠNG 5: LẤY GIÁ TRỊ TRỌNG SỐ

5.1. Tổng quan về nhận diện khuôn mặt đeo khẩu trang

5.2. Giá trị trọng số Convolution

5.3. Giá trị trọng số Separable Convolution

5.4. Giá trị trọng số Batch Normalization

6. CHƯƠNG 6: HIỆN THỰC THIẾT KẾ

6.1. Hiện thực thiết kế mạng CNN sử dụng kiến trúc Xception

6.2. Mô phỏng thiết kế khối Convolution 3x3 stride 2 padding 0

6.3. Mô phỏng thiết kế khối Separable Convolution

6.4. Mô phỏng thiết kế khối Max Pooling

6.5. Mô phỏng thiết kế khối Dense

6.6. Mô phỏng thiết kế khối Datapath

6.7. Mô phỏng thiết kế khối Sigmoid

7. CHƯƠNG 7: TỔNG HỢP TÀI NGUYÊN

7.1. Kết quả đạt được

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

7.3. 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 VẼ

DANH MỤC BẢNG

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

TÓM TẮT KHÓA LUẬN

Tóm tắt

I. Thiết kế mạng nơ ron tích chập

Phần này tập trung vào thiết kế mạng nơ-ron tích chập (CNN) sử dụng kiến trúc Xception. Mục tiêu chính là tạo ra một mô hình hiệu quả để nhận diện khuôn mặt có hoặc không đeo khẩu trang. Kiến trúc Xception được chọn vì khả năng xử lý hình ảnh phức tạp và hiệu suất cao. Quá trình thiết kế bao gồm việc phân tích các lớp tích chập, lớp tổng hợp, và lớp kết nối đầy đủ. Các hàm kích hoạt như ReLU và Sigmoid cũng được tích hợp để tăng độ chính xác của mô hình.

1.1. Kiến trúc Xception

Kiến trúc Xception là một phiên bản nâng cao của CNN, tập trung vào việc tách biệt các phép tích chập để giảm độ phức tạp tính toán. Kiến trúc này bao gồm ba phần chính: Entry Flow, Middle Flow, và Exit Flow. Mỗi phần được thiết kế để xử lý các đặc trưng khác nhau của hình ảnh, từ đó tối ưu hóa hiệu suất và độ chính xác.

1.2. Tối ưu hóa FPGA

Việc tối ưu hóa FPGA được thực hiện để đảm bảo mô hình có thể chạy hiệu quả trên phần cứng. Các kỹ thuật như giảm số lượng tham số và tối ưu hóa bộ nhớ được áp dụng để phù hợp với tài nguyên của board Virtex-7 VC707.

II. Hiện thực mạng nơ ron tích chập trên FPGA

Phần này mô tả quá trình hiện thực mạng nơ-ron tích chập trên FPGA sử dụng ngôn ngữ Verilog. Các trọng số được huấn luyện trước trên phần mềm như Keras và TensorFlow, sau đó được trích xuất và tích hợp vào thiết kế phần cứng. Quá trình hiện thực bao gồm việc mô phỏng và kiểm tra từng module nhỏ đến khi hoàn thiện toàn bộ hệ thống.

2.1. Mô phỏng thiết kế

Các module như Convolution, Separable Convolution, và Max Pooling được mô phỏng chi tiết để đảm bảo tính chính xác. Kết quả mô phỏng được so sánh với kết quả từ Python để đánh giá hiệu suất và độ tin cậy.

2.2. Tổng hợp IP Xception

Sau khi mô phỏng thành công, các module được tổng hợp thành một IP Xception hoàn chỉnh. IP này được tối ưu hóa để sử dụng trên FPGA, đảm bảo hiệu suất cao và tiết kiệm tài nguyên phần cứng.

III. Ứng dụng và đánh giá

Phần này đánh giá hiệu suất và ứng dụng thực tế của mô hình. Mô hình được sử dụng để nhận diện khuôn mặt có hoặc không đeo khẩu trang, với độ chính xác cao. Kết quả được so sánh giữa Verilog và Python để đảm bảo tính nhất quán.

3.1. Đánh giá hiệu suất

Mô hình được đánh giá dựa trên các tiêu chí như độ chính xác, tốc độ xử lý, và tài nguyên sử dụng. Kết quả cho thấy mô hình đạt hiệu suất cao trên FPGA, với độ chính xác tương đương với kết quả từ Python.

3.2. Ứng dụng thực tế

Mô hình có thể được ứng dụng trong các hệ thống giám sát an ninh, giúp tự động hóa việc nhận diện người đeo khẩu trang. Điều này đặc biệt hữu ích trong bối cảnh dịch bệnh, giúp hạn chế sự lây lan của các bệnh truyền nhiễm.

21/02/2025
Khóa luận tốt nghiệp kỹ thuật máy tính thiết kế và hiện thực mạng nơ ron tích chập trên fpga sử dụng kiến trúc xception

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

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.

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

Tóm tắt bài báo "Thiết kế và hiện thực mạng nơ-ron tích chập trên FPGA sử dụng kiến trúc Xception" cho thấy một cách tiếp cận hiệu quả để triển khai mạng nơ-ron tích chập (CNN) tiên tiến, cụ thể là Xception, trên phần cứng FPGA. Bài báo tập trung vào việc tối ưu hóa kiến trúc Xception để tận dụng lợi thế về hiệu năng và hiệu quả năng lượng của FPGA. Điều này đặc biệt quan trọng trong các ứng dụng yêu cầu xử lý ảnh và video tốc độ cao, đồng thời có giới hạn về năng lượng như thiết bị di động và hệ thống nhúng. Bằng cách hiện thực hóa Xception trên FPGA, bài báo mang đến một giải pháp khả thi để vượt qua những hạn chế của việc triển khai trên CPU hoặc GPU truyền thống. Đọc giả có thể thu được kiến thức về cách thức tối ưu hóa mạng nơ-ron cho phần cứng cụ thể, cũng như những thách thức và cơ hội trong việc triển khai các kiến trúc deep learning phức tạp trên FPGA.

Để hiểu sâu hơn về các phương pháp học trọng số trong mạng nơ-ron, bạn có thể tham khảo tài liệu Phát triển một số phương pháp học trọng số cho mạng nơ ron tế bào bậc hai. Ngoài ra, nếu bạn quan tâm đến việc lựa chọn thuật toán tối ưu hóa phù hợp cho các mô hình deep learning, hãy xem xét tài liệu Deeplearning mnist optimize, nơi so sánh hiệu quả của các thuật toán tối ưu hóa khác nhau như SGD, Momentum, RMSprop và Adam.