Ứng Dụng MobileNetV2 Trên Ultra96-V2 Cho Camera Thông Minh

Khóa luận trình bày ứng dụng MobileNetV2 trên FPGA Ultra96 V2 cho camera thông minh, tối ưu hóa hiệu suất và khả năng nhận diện hình ảnh.

Người đăng

Ẩn danh

Thể loại

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

2022

58
4
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 ĐỀ TÀI

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

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

1.3. Bố cục báo cáo

2. CHƯƠNG 2: CÁC CÔNG NGHỆ VÀ CÁC NGHIÊN CỨU

2.1. Kiến trúc Field Programmable Gate Array (FPGA)

2.2. Kiến trúc tổng quát

2.3. Công nghệ SoC (System on Chip)

2.4. Định nghĩa hệ thống SoC

2.5. Kiến trúc cơ bản của một hệ thống SoC

2.6. Zynq UltraScale+ MPSoC

2.7. Thuật toán MobileNetV2

2.8. Khối MobileNetV2 Convolutional

2.9. Kiến trúc tổng thể

2.10. Inverted Residual Block

2.11. Các nghiên cứu về smart camera

2.11.1. Nghiên cứu ngoài nước

2.11.2. Nghiên cứu trong nước

3. CHƯƠNG 3: THIẾT KẾ HỆ THỐNG

3.1. Ý tưởng thiết kế hệ thống

3.2. Mô hình thiết kế tổng quát hệ thống

3.3. Tổng hợp IP MobileNetV2

3.4. Hiện thực Smart Camera với Petalinux 2019. Thiết kế block design trên công cụ Vivado

3.5. Các IP của Xilinx dùng trong thiết kế hệ thống SoC

3.5.1. IP Clocking Wizard

3.5.2. IP AXI Interconnect

3.5.3. IP Processor System Reset

3.5.4. IP AXI SmartConnect

3.5.5. IP AXI GPIO

3.5.6. IP AXI Interrupt Controller

3.5.7. IP ZynQ UltraScale + MPSoC

3.5.8. IP Block Memory Generator

4. CHƯƠNG 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

4.1. Kết quả nhận dạng của MobileNet trên board Ultra96V2

4.2. Các kết quả thực nghiệm

4.3. Đánh giá kết quả độ chính xác

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

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

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

5.3. 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 KHÓA LUẬN

MỞ ĐẦU

Tóm tắt

I. Giới thiệu về ứng dụng MobileNetV2 trên Ultra96 V2

Trong bối cảnh công nghệ ngày càng phát triển, việc ứng dụng MobileNetV2 trên nền tảng Ultra96-V2 cho camera thông minh đã trở thành một xu hướng nổi bật. Camera thông minh không chỉ đơn thuần là thiết bị ghi hình mà còn tích hợp khả năng xử lý hình ảnh thông minh, giúp nâng cao hiệu quả trong nhiều lĩnh vực như giám sát an ninh, sản xuất và tự động hóa. Việc sử dụng MobileNetV2 cho phép tối ưu hóa hiệu suất xử lý hình ảnh trên các thiết bị nhúng, đặc biệt là trong môi trường có tài nguyên hạn chế.

1.1. Tầm quan trọng của camera thông minh trong cuộc sống

Camera thông minh ngày càng trở nên phổ biến nhờ vào khả năng nhận diện và phân tích hình ảnh. Chúng được ứng dụng rộng rãi trong các lĩnh vực như an ninh, giao thông và y tế. Việc tích hợp AI vào camera giúp nâng cao khả năng tự động hóa và giảm thiểu sai sót trong quá trình giám sát.

1.2. Tổng quan về MobileNetV2 và Ultra96 V2

MobileNetV2 là một trong những kiến trúc mạng nơ-ron tiên tiến, được thiết kế để hoạt động hiệu quả trên các thiết bị di động và nhúng. Ultra96-V2 là một bo mạch mạnh mẽ, hỗ trợ các ứng dụng IoTAI, cho phép triển khai các thuật toán phức tạp mà không cần đến phần cứng cồng kềnh.

II. Thách thức trong việc triển khai camera thông minh

Mặc dù có nhiều lợi ích, việc triển khai camera thông minh vẫn gặp phải nhiều thách thức. Đầu tiên là vấn đề về hiệu suất xử lý hình ảnh trong thời gian thực. Các thuật toán nhận diện cần phải hoạt động nhanh chóng và chính xác để đáp ứng yêu cầu của người dùng. Thứ hai, việc tiêu tốn năng lượng cũng là một yếu tố quan trọng, đặc biệt là trong các ứng dụng di động. Cuối cùng, việc tích hợp các công nghệ mới vào hệ thống hiện tại cũng gặp nhiều khó khăn.

2.1. Vấn đề về hiệu suất xử lý hình ảnh

Để đảm bảo hiệu suất cao, các thuật toán như MobileNetV2 cần được tối ưu hóa cho Ultra96-V2. Điều này đòi hỏi sự cân nhắc kỹ lưỡng về tài nguyên phần cứng và phần mềm.

2.2. Tiêu tốn năng lượng và chi phí

Một trong những thách thức lớn nhất là làm sao để giảm thiểu tiêu tốn năng lượng trong khi vẫn duy trì hiệu suất. Việc lựa chọn các thành phần phần cứng phù hợp có thể giúp giảm chi phí và năng lượng tiêu thụ.

III. Phương pháp triển khai MobileNetV2 trên Ultra96 V2

Để triển khai MobileNetV2 trên Ultra96-V2, cần thực hiện một số bước quan trọng. Đầu tiên, việc thiết kế hệ thống cần được thực hiện một cách cẩn thận, từ việc lựa chọn các thành phần phần cứng cho đến việc lập trình phần mềm. Thứ hai, cần tối ưu hóa mã nguồn để đảm bảo rằng các thuật toán có thể chạy mượt mà trên nền tảng nhúng. Cuối cùng, việc kiểm tra và đánh giá kết quả là rất cần thiết để đảm bảo rằng hệ thống hoạt động như mong đợi.

3.1. Thiết kế hệ thống và lựa chọn phần cứng

Việc lựa chọn Ultra96-V2 làm nền tảng cho camera thông minh là một quyết định chiến lược. Bo mạch này cung cấp đủ tài nguyên để chạy các thuật toán phức tạp mà không gặp phải vấn đề về hiệu suất.

3.2. Tối ưu hóa mã nguồn cho MobileNetV2

Tối ưu hóa mã nguồn là bước quan trọng để đảm bảo rằng MobileNetV2 có thể hoạt động hiệu quả trên Ultra96-V2. Việc sử dụng các công cụ như Vivado HLS giúp đơn giản hóa quá trình này.

IV. Kết quả thực nghiệm và ứng dụng thực tiễn

Kết quả thực nghiệm cho thấy rằng việc triển khai MobileNetV2 trên Ultra96-V2 mang lại hiệu suất cao trong việc nhận diện hình ảnh. Các thử nghiệm cho thấy độ chính xác của hệ thống đạt mức cao, cho phép nhận diện các đối tượng trong thời gian thực. Hệ thống cũng cho thấy khả năng hoạt động ổn định trong các điều kiện khác nhau, từ đó mở ra nhiều cơ hội ứng dụng trong thực tiễn.

4.1. Đánh giá độ chính xác của hệ thống

Các thử nghiệm cho thấy độ chính xác của hệ thống đạt trên 90%, cho phép nhận diện các đối tượng một cách nhanh chóng và hiệu quả.

4.2. Ứng dụng trong các lĩnh vực khác nhau

Hệ thống có thể được ứng dụng trong nhiều lĩnh vực như giám sát an ninh, quản lý giao thông và tự động hóa trong sản xuất, mở ra nhiều cơ hội mới cho các doanh nghiệp.

V. Kết luận và hướng phát triển trong tương lai

Việc ứng dụng MobileNetV2 trên Ultra96-V2 cho camera thông minh đã chứng minh được tính khả thi và hiệu quả. Tuy nhiên, vẫn còn nhiều thách thức cần phải vượt qua để tối ưu hóa hơn nữa hệ thống. Trong tương lai, việc nghiên cứu và phát triển các thuật toán mới, cũng như cải tiến phần cứng sẽ là những hướng đi quan trọng để nâng cao hiệu suất và khả năng ứng dụng của camera thông minh.

5.1. Những thách thức cần giải quyết

Cần tiếp tục nghiên cứu để giải quyết các vấn đề về hiệu suất và tiêu tốn năng lượng, nhằm nâng cao khả năng hoạt động của hệ thống.

5.2. Hướng phát triển công nghệ camera thông minh

Trong tương lai, camera thông minh sẽ tiếp tục được cải tiến với sự phát triển của công nghệ AIIoT, mở ra nhiều cơ hội mới cho các ứng dụng trong đời sống.

10/07/2025
Khóa luận tốt nghiệp kỹ thuật máy tính mobilenetv2 trên fpga ultra96 v2 ứng dụng camera thông minh

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

Chương 1 sẽ giới thiệu dé tài nhóm đang thực hiện Chương 2: CÁC CÔNG NGHỆ VÀ CÁC NGHIÊN CỨU Chương2 sẽ trình bày những công cụ phục vụ trong việc thiết kế hệ thống và lý thuyết của các giải thuật được sử dụng trong hệ thông. Chương 3: THIẾT KE HE THONG Chương3 trình bay phương pháp thiết kế, xây dựng một hệ điều hành Linux được nạp lên Ultra96-V2 bao gồm việc kết hợp một số module Wifi, thư viện hỗ trợ hiển thị ảnh OpenCV, thư viện Gstreamer, thiết kế pipeline streaming truyền hình ảnh. Chương 4: KET QUÁ DANH GIÁ HỆ THONG Chương 4 sẽ trình bày phương pháp đánh giá của thiết kế Chương 5: KET LUẬN VÀ HUONG PHÁT TRIEN Chương 5 sẽ tóm tắt toàn bộ công việc và kết quả đạt được. Đồng thời đề ra phương hướng phát triển cho đề tài trong tương lai cũng được trình bày ở chương này.

CÁC CÔNG NGHỆ VÀ CÁC NGHIÊN CỨU 2. Kiến trúc Field Programmable Gate Array (FPGA) 2. Dinh nghia Field Programmable Gate Arrays là một chip logic số có thé lập trình được, tức là ban có thé sử dung chúng dé lập trình cho hầu hết các chức năng của bat kỳ một thiết kế số nào. Đã có nhiều tai liệu trên website nói nhiều về FPGA nhưng ở đây mình muốn các bạn chú ý đến cái tên của nó.

Mình thấy trên các website người ta dịch chữ FIELD là dạng trường. Nhưng ở đây không phải như vậy. FIELD nghĩa là nơi sử dụng con chip. Field Programmable nghĩa là có thé lập trình được tại nơi của người sử dụng khác với một sỐ chip là phải lập trình tai nơi sản xuất.

FPGA được tạo thành từ một mảng (matrix hay array) các phần tử khả trình nên được gọi là Programmable Gate Array. Bộ nhớ tĩnh đầu tiên dựa trên FPGA (thường được gọi là SRAM trên nền FPGA) được đề xuất bởi Wahlstrom vào năm 1967. Sau đó bản thương mại của FPGA được Xilinx giới thiệu vào năm 1984. Lúc này nó gồm có một mảng của các khối logic có thé tái cầu hình — Configurable Logic Blocks (CLBs) và các đầu vào ra — /O (input/output).

Chip FPGA đầu tiên chứa 64 CLBs và 58 I/Os. Ngày nay, FPGA có thé chứa khoảng 330,000 CLBs và khoảng 1100 I/Os. Phan lớn các san pham FPGA trên thi trường hiện nay đều dựa trên công nghệ SRAM với 2 hãng sản xuất lớn nhất là Xilinx và Altera. Ngoài ra còn có các hãng khác sản xuất FPGA nhưng với mục đích chuyên dung (Atmel, Actel, Lattice, SiliconBlue,.

Kiến trúc tổng quát Kiến trúc cơ bản của FPGA được thể hiện qua Hình 2.1 bao gồm 3 thành phan chính: khối logic có thé tái cấu hình, Configurable Logic Blocks (CLBs) thực hiện các chức năng logic; các kết nối bên trong, Porgrammable Interconnect có thé lập trình dé kết nối các đầu vào và đầu ra của các CLB và các khối I/O bên trong, các khôi I/O cung cap giao tiêp giữa các ngoại vi và các tín hiệu bên trong. Programmable I/O Blocks L]I L] Programmable Logic Blocks a Programmable. Interconnections L] Hinh 2 I Khối CLB: Mục dich của việc lập trình khối logic trong FPGA là dé cung cấp các tính toán và các phần tử nhớ cơ bản được sử dụng trong hệ thống số. Một phần tử logic cơ bản gồm một mạch tô hợp có thể lập trình, một Flip-Flop hoặc một chốt (latch).

Ngoài khối logic cơ bản đó, nhiều Chip FPGA hiện nay gồm một hỗn hợp các khối khác nhau, một số trong đó chỉ được dùng cho các chức năng cụ thé, chăng hạn như các khối bộ nhớ chuyên dụng, các bộ nhân (multipliers) hoặc các bộ ghép kênh (multiplexers). Tất nhiên, cau hình bộ nhớ được sử dụng trên tất cả các khối logic dé điêu khiên các chức năng cụ thê của mỗi phân tử bên trong khôi đó. Khối kết nối (Interconnections): Các liên kết trong một FPGA dùng dé liên kết các khối logic và I/O lại với nhau để tạo thành một thiết kế. Bao gồm các bộ ghép kênh, các transistor và công đệm ba trạng thái.

Nhìn chung, các transistor và bộ ghép kênh được dùng trong một cum logic dé kết nối các phần tử logic lại với nhau, trong khi đó cả ba đều được dùng cho các cấu trúc định tuyến bên trong FPGA. Một số FPGA cung cấp nhiều kết nối đơn giản giữa các khối logic, một số khác cung cấp ít kết nối hơn nên định tuyến phức tạp hơn. Khối I/O: I/O cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến đến các thành phần bên ngoài. Một trong những vấn đề quan trọng nhất trong thiết kế kiến trúc I/O là việc lựa chọn các tiêu chuẩn điện ap cung cấp và điện áp tham chiếu sẽ được hỗ trợ.

Theo thời gian, các kiến trúc FPGA co bản đã được phát triển hơn nữa thông qua việc bổ sung các khối chức năng đặc biệt có thé lập trình, như bộ nhớ trong (Block RAMs), logic số học (ALU), bộ nhân, DSP-48 và thậm chí là bộ vi xử lý nhúng được thêm vào do nhu cầu của các nguồn tài nguyên cho một ứng dụng. Kết quả là nhiều FPGA ngày nay có nhiều nguồn tài nguyên hơn so với các FPGA trước đó. Công nghệ SoC (System on Chip) 2. Dinh nghia hé thong SoC Thuật ngữ SoC là viết tắt cua System on a Chip.

Chip này có tên như vậy bởi vì nó bao gồm nhiều thành phan tính toán thiết yếu, tat cả đều được nén vào một con chip. SoC chủ yếu được sử dụng cho các thiết bi di động vì kích thước nhỏ và sử dung ít điện năng. Bắt đầu từ năm 1970, một số công ty đã có gắng đưa nhiều thành phần vào một con chip dé cung cấp năng lượng cho đồng hồ kỹ thuật s6. Intel đã thành công trong việc thực hiện điều này với Microma Digital Watch vào năm 1974, được tạo ra SoC thực sự đầu tiên.

Công ty đã tích hợp các chức năng thời gian và những bóng bán dẫn driver LCD vào một chip. SoC thực sự phát triển vào những năm 80 và 90. Máy tính cá nhân đã trở nên phổ biến vào những năm 80 và chúng cần được cung cấp năng lượng bởi những con chip nhỏ hơn. Trong những năm 90, điện thoại di động sử dụng SoC và xu hướng đó tiếp tục cho tới ngày nay.

Kiến trúc cơ bản của một hệ thong SoC Mỗi chip SoC có mật độ tích hợp các chức năng khác nhau nhưng hau hết các SoC đều có các thành phần cơ bản được giới thiệu ở Hình 2.2: Peripheral pS eS ie eee Internal Memory Memory controller generator | | ee er | | BUS 1 | | Reset generator L: | | | | System Bus | Power || : BUS2 — = BUS 2 — | management | L | 11 1 Internal 5 block | USB Video UART CAN s==='.== i= = ET Peripheral Hình 2.2 Kiến trúc cơ ban của một SoC vẰ% s%*% CPU (Central Processing Unit): Lõi vi xử lí là thành phần không thể thiếu trong một SoC, làm nhiệm vụ quản lý toàn bộ hoạt động chính của một SoC. CPU đảm nhiệm luồng xử lý chính trong SoC, điều phối các hoạt động giữa các thành phần khác trong SoC, thực thi các tính toán chính. Một SoC có thể có một hoặc nhiều lõi CPU. Một số lõi CPU thông dụng như: lõi CPU ARM dùng tập lệnh ARM và được phát triển bởi hãng ARM; RISC-V là lõi CPU phát triển trên tập lệnh mở và miễn phí.

Bus hệ thống (System Bus): Bus hệ thống có nhiệm vụ kết nối thông suốt các thành phần chức năng khác nhau trong vi xử lí. Nó giống như những con đường để vận chuyên đữ liệu giữa các thành phần trong SoC. Một số cấu trúc bus hệ thống như: AMBA (AXI, AHB, APB) được phát triển bởi ARM; Avalon được phát triển bởi Altera (hiện nay thuộc Intel); Wishbone được phát triển bởi Silicore Coporation. ~<4 Bộ nhớ (Memory): Bộ nhớ trong một SoC được gọi là bộ nhớ nội dé phân biệt với bộ nhớ năm ngoài SoC và giao tiếp với SoC thông qua các chân (pin) điều khiển của SoC.

Bộ nhớ nội này có thể là: > ROM — lưu cấu hình hoặc chương trình ban đầu của SoC. > RAM - được sử dụng để lưu thông tin hoặc giá trị tính toán trong suốt quá trình hoạt động cua SoC. ¢ Thanh phần điều khiển nội (Internal Block): là thành phần chỉ điều khiển hoạt động bên trong SoC mà không điều khiển trực tiếp port nào của SoC như: > Khối tạo clock (clock generator): cung cấp clock cho toàn bộ các khối chức năng trong SoC ké cả CPU. > Khối tao reset (reset generator): cung cấp reset cho toàn bộ các khối chức năng trong SoC, kể cả CPU.

> Các khối giám sát (monitor): là các khối có chức năng giám sát hoạt động của SoC, kịp thời phát hiện ra các lỗi trong quá trình hoạt động dé khởi động lại một phần hoặc toàn bộ hệ thống. $% Ngoại vi (Peripheral): là các khối có thé điều khién trực tiếp các chân (pin hoặc port) của SoC dé thực thi một chức năng điều khiển bên ngoai SoC như: UART — truyền nhận dữ liệu nối tiếp; Video — điều khiển camera; Audio — thu phát âm thanh; ADC — chuyền đôi tín hiệu tương tự thành tín hiệu SỐ. Zynq UltraScale+ MPSoC Ở đây nhóm chỉ đề cập đến các thành phần được sử dụng trong đề tài này.3 mô tả các khối trong Zynq UltraScale+ MPSoC (tham khảo cấu hình tùy chỉnh ) PS UltraScale+ Block Design Configurable === FPD ——— RPU LPD SS APU na y Ÿ — gel (256 KB) —t | Ỷ > pl nnn j : vA | | »ị ccl be = De Xx L— Core SW ¬ FPD_DMA SP Sai | Ỷ Ÿ ý _Y ý Ỷ ky G7 LPD DA, (DDR3,DDR4, LPDDR3, LPDDR4) __ i AMS DDRContoler Hình 2.3 Các khối trong Zynq UltraScale+ MPSoC ° ox > Application Processing Unit (APU): chứa chip ARM Cortex-A53, bao gồm cả CPU va GPU, là một bộ xử lý da năng, có thể thực hiện cùng lúc nhiều chức năng khác nhau. ° ox > Cache Coherent Interconnect (CCI): đây là giao tiếp nhận biết bộ nhớ cache giữa các lõi CPU dé chúng có thé thay được các giá trị nhất quán khi truy cập cùng một bộ nhớ logic.

Đôi khi, chúng cũng được sử dụng giữa bộ đệm CPU và thiết bị ngoại vi để có quyền truy cập vào cùng một bộ nhớ. ° ox % Core Sofware (Core SW): các chương trình dé điều khiến tín hiệu các bus, truyền nhận dữ liệu. Progammable Logic (PL): là một bộ FPGA có thể lập trình được, người dùng phải sử dung ngôn ngữ mô tả phan cứng đặc trưng (Verilog/VHDL/SystemC.) thông qua các phần mềm chuyên biệt đề có thé tổng hợp và sử dụng. s%*% KR? AXI Bus: Advanced eXtensible Interface Bus là một giao thức dùng để trung chuyên dữ liệu giữa các thành phần trong hệ thống SoC, được phát triển bởi hãng ARM.

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

Tài liệu có tiêu đề "Ứng Dụng MobileNetV2 Trên Ultra96-V2 Cho Camera Thông Minh" trình bày về việc áp dụng mô hình MobileNetV2 trong việc phát triển camera thông minh trên nền tảng Ultra96-V2. Bài viết nêu bật những lợi ích của việc sử dụng MobileNetV2, bao gồm khả năng nhận diện hình ảnh hiệu quả với độ chính xác cao, đồng thời tiết kiệm tài nguyên tính toán, rất phù hợp cho các ứng dụng nhúng. Độc giả sẽ tìm thấy thông tin hữu ích về cách tối ưu hóa hiệu suất của camera thông minh, cũng như các bước triển khai cụ thể trên Ultra96-V2.

Để mở rộng kiến thức của bạn về lĩnh vực này, bạn có thể tham khảo tài liệu Khóa luận tốt nghiệp kỹ thuật máy tính thiết kế tích hợp trên ultra96 v2 cho smart camera, nơi cung cấp cái nhìn sâu sắc hơn về thiết kế hệ thống camera thông minh trên nền tảng Ultra96-V2. Tài liệu này sẽ giúp bạn hiểu rõ hơn về các khía cạnh kỹ thuật và ứng dụng thực tiễn của công nghệ này.