Thiết Kế Tích Hợp Hệ Thống Smart Camera Trên FPGA Ultra96-V2

Khóa luận tốt nghiệp nghiên cứu 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, vận dụng lý thuyết vào thực tế, đề xuất giải pháp cụ thể cho vấn

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

2021

99
3
0

Phí lưu trữ

35 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. Giới hạn đề tài

1.4. Kết quả mong muốn

1.5. Bố cục luận văn

2. CHƯƠNG 2: CÁC CÔNG NGHỆ VÀ CÁC NGHIÊN CỨU LIÊN QUAN ĐẾN SMART CAMERA

2.1. Field Programmable Gate Array (FPGA)

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

2.3. Ưu nhược điểm của FPGA

2.4. Hệ thống nhúng

2.4.1. Phần cứng của một hệ thống nhúng

2.4.2. Phần mềm của một hệ thống nhúng

2.4.3. Đặc trưng của một hệ thống nhúng

2.4.4. Ưu nhược điểm của hệ thống nhúng

2.5. Hệ thống SoC (System on Chip)

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

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

2.5.3. Ưu nhược điểm của hệ thống SoC

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

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

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

2.6.3. Tổng kết chương và ý tưởng đề xuất

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

3.1. Zynq UltraScale+ MPSoC

3.2. Thiết kế tổng quát của hệ thống

3.2.1. Batch normalization

3.2.2. High resolution classifier

3.2.3. Kiến trúc Anchor Box

3.2.4. K-means clustering

3.2.5. Direction location prediction

3.2.6. Fine-grained feature

3.2.7. Multi-scale training

3.2.8. Light-weight backbone

3.3. Quá trình xử lý

3.4. Kiến trúc tổng quát cho YOLOV2 FPGA

3.5. Tổng hợp YOLOv2 trên Vivado HLS 2019

3.6. Thiết kế SoC tích hợp IP YOLO2_FPGA

4. CHƯƠNG 4: HIỆN THỰC SMART CAMERA

4.1. OpenCV, GStreamer và lập trình Socket

4.2. Lập trình Socket

4.3. Xây dựng luồng streaming bằng GStreamer

4.4. Xây dựng luồng streaming bằng công cụ Vitis 2019

4.5. Kết quả thực nghiệm

4.5.1. Tốc độ nhận diện

4.5.2. Kết quả nhận dạng của YOLOv2

4.5.3. Stream nhiều máy nhận

4.6. Đánh giá hệ thống

4.7. Giao diện người dùng

5. CHƯƠNG 5: KẾT LUẬN VÀ 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. Giới thiệu về Thiết Kế Hệ Thống Smart Camera Trên FPGA Ultra96 V2

Hệ thống Smart Camera đang trở thành một phần quan trọng trong nhiều ứng dụng hiện đại. Việc thiết kế hệ thống này trên nền tảng FPGA Ultra96-V2 mang lại nhiều lợi ích về hiệu suất và khả năng tùy biến. Đề tài này sẽ khám phá các khía cạnh quan trọng trong việc phát triển một hệ thống camera thông minh, từ lý do chọn đề tài đến các ứng dụng thực tiễn.

1.1. Lý do chọn đề tài thiết kế Smart Camera

Sự phát triển của công nghệ Smart Camera đã thu hút sự chú ý từ nhiều lĩnh vực. Các ứng dụng trong giám sát an ninh, sản xuất và robot đang ngày càng phổ biến. Việc tích hợp FPGA Ultra96-V2 giúp tối ưu hóa hiệu suất và giảm thiểu độ trễ trong quá trình xử lý hình ảnh.

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

Mục tiêu chính của đề tài là thiết kế một hệ thống Smart Camera có khả năng truyền hình ảnh qua mạng Wifi với độ trễ thấp. Hệ thống sẽ tích hợp thuật toán YOLOv2 để nhận diện đối tượng trong khung hình, mang lại giá trị thực tiễn cao.

II. Các thách thức trong thiết kế hệ thống Smart Camera

Việc thiết kế hệ thống Smart Camera trên FPGA Ultra96-V2 không chỉ đơn thuần là một quá trình kỹ thuật. Nó còn đối mặt với nhiều thách thức như độ chính xác trong nhận diện hình ảnh, tốc độ xử lý và khả năng tiêu thụ năng lượng. Những yếu tố này cần được cân nhắc kỹ lưỡng để đảm bảo hiệu quả hoạt động của hệ thống.

2.1. Độ chính xác trong xử lý hình ảnh

Độ chính xác là yếu tố quan trọng trong việc nhận diện đối tượng. Hệ thống cần được tối ưu hóa để đạt được độ chính xác cao nhất có thể, đặc biệt khi sử dụng thuật toán YOLOv2.

2.2. Tốc độ xử lý và độ trễ

Tốc độ xử lý hình ảnh là một trong những thách thức lớn nhất. Hệ thống cần đảm bảo rằng hình ảnh được truyền tải và xử lý trong thời gian thực, với độ trễ tối thiểu để đáp ứng nhu cầu của người dùng.

III. Phương pháp thiết kế hệ thống Smart Camera hiệu quả

Để thiết kế một hệ thống Smart Camera hiệu quả, cần áp dụng các phương pháp và công nghệ tiên tiến. Việc sử dụng FPGA Ultra96-V2 cho phép lập trình linh hoạt và tối ưu hóa hiệu suất. Các bước thiết kế sẽ được trình bày chi tiết trong phần này.

3.1. Lập trình FPGA cho Smart Camera

Lập trình FPGA là một bước quan trọng trong quá trình thiết kế. Sử dụng Vivado HLS giúp đơn giản hóa việc phát triển và tối ưu hóa mã nguồn cho hệ thống camera thông minh.

3.2. Tích hợp thuật toán YOLOv2

Thuật toán YOLOv2 sẽ được tích hợp vào hệ thống để nhận diện đối tượng. Việc này không chỉ nâng cao khả năng nhận diện mà còn giúp giảm thiểu độ trễ trong quá trình xử lý hình ảnh.

IV. Ứng dụng thực tiễn của hệ thống Smart Camera

Hệ thống Smart Camera có nhiều ứng dụng thực tiễn trong các lĩnh vực như giám sát an ninh, sản xuất thông minh và robot. Việc truyền tải hình ảnh qua mạng Wifi giúp người dùng dễ dàng theo dõi và quản lý hệ thống từ xa.

4.1. Giám sát an ninh

Hệ thống camera thông minh có thể được sử dụng để giám sát an ninh trong các khu vực công cộng và tư nhân. Việc nhận diện đối tượng giúp nâng cao hiệu quả bảo mật.

4.2. Ứng dụng trong sản xuất

Trong ngành sản xuất, Smart Camera có thể được sử dụng để theo dõi quy trình sản xuất, phát hiện lỗi và tối ưu hóa hiệu suất làm việc.

V. Kết luận và hướng phát triển tương lai của Smart Camera

Hệ thống Smart Camera trên nền tảng FPGA Ultra96-V2 không chỉ mang lại hiệu suất cao mà còn mở ra nhiều cơ hội phát triển trong tương lai. Các nghiên cứu tiếp theo có thể tập trung vào việc cải thiện độ chính xác và giảm thiểu độ trễ hơn nữa.

5.1. Tương lai của công nghệ Smart Camera

Công nghệ Smart Camera sẽ tiếp tục phát triển với sự hỗ trợ của các thuật toán AI tiên tiến. Điều này sẽ giúp nâng cao khả năng nhận diện và xử lý hình ảnh trong thời gian thực.

5.2. Đề xuất nghiên cứu tiếp theo

Các nghiên cứu tiếp theo có thể tập trung vào việc tích hợp thêm các cảm biến khác và cải thiện khả năng kết nối mạng để nâng cao hiệu quả hoạt động của hệ thống.

10/07/2025
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

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

Chương 1: Giới thiệu đề tài Chương đầu tiên sẽ trình bày ngắn gọn lý do chọn đề tài của nhóm, mục tiêu đê ra của nhóm, những giới hạn đê tài và kêt quả mà nhóm mong muôn đạt được. Chương 2: Các công nghệ và các nghiên cứu liên quan tới smart camera Dựa vào các tài liệu nhóm tìm kiêm được trên Internet và kho dữ liệu trên website của khoa, chương này trình bày một số lý thuyết về một số công nghệ nền tảng cho việc tích hợp smart camera, cũng như nêu lên một sô bài báo, nghiên cứu về smart camera mà nhóm đã tìm hiéu được. Từ đó nhóm nghiên cứu tông kết, so sánh và đưa ra một mô hình sơ bộ cho hệ thông smart camera của đê tài. Chương 3: Thiết kế hệ thống smart camera Ở chương này nhóm đề xuất một hệ thống smart camera tích hợp YOLOv2 trên phần mềm Vivado 2019.2, sau đó giới thiệu cách hoạt động của hệ thống và một số kết quả tài nguyên tiêu tốn.

Chương 4: Hiện thực smart camera trên Ultra96-V2 Nhóm đề xuất 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. và xây dựng phần mềm điều khiển bộ YOLOv2 trên FPGA thông qua core ARM trên Ultra96-V2. Nhóm cũng trình bày một số kết quả đạt được cũng như đóng gói sản phẩm và demo ứng dụng phần mềm cho người dùng. Chương 5: Kết luận và hướng phát triển Chương cuối tông kết lại những công việc đã hoàn thành, khó khăn gặp phải của nhóm.

Đồng thời nhóm trình bày hướng đi cải tiến trong tương lai. CÁC CÔNG NGHỆ VÀ CÁC NGHIÊN CỨU LIÊN QUAN ĐÉN SMART CAMERA 2. Field Programmable Gate Array (FPGA) 2. Dinh nghĩa FPGA là một loại mạch tích hợp cỡ lớn dùng cau trúc mảng phan tử logic mà người dùng có thê lập trình được.

Chữ field ở đây muốn nói đến khả năng tái lập trình "bên ngoài" của người sử dụng, không phụ thuộc vào dây chuyền sản xuất phức tạp của nhà máy bán dẫn. Vi mạch FPGA được cấu thành từ các bộ phận: s* Các khối logic cơ bản lập trình được (logic block). s* Hệ thống mạch liên kết lập trình được. s* Khối vao/ra (I/O Pads).

s* Phan tử thiết kế san khác như DSP slice, RAM, ROM, vi xử lý. FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dung ASIC, nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện logic thì FPGA không đạt đựợc mức độ tối ưu như những loại này và còn hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp. Tuy vậy FPGA ưu việt hơn ở chỗ có thé tái cau trúc lại khi dang sử dụng, công đoạn thiết kế đơn giản do vậy chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng. Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả phần cứng HDL như VHDL, Verilog, AHDL.

Các hãng sản xuất FPGA lớn như Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thiết kế. Ngoài ra cũng có một số hãng thứ ba cung cấp các gói phần mềm kiêu này như Synopsys, Synplify. Các gói phần mềm này có khả năng thực hiện tất cả các bước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (con gọi là mã RTL). Kiến trúc tổng quát Kiến trúc cơ bản của FPGA gồm 3 thành phan chính sau: Khối I/O (hay gọi là các pin FPGA), khối kết nối (Interconnection), các khối logic cấu hình (Logic Blocks hoặc Configurable Logic Blocks - CLB).

Các khối CLB được tổ chức sắp xếp theo mảng với 2 hướng doc và ngang như Hình 2. Programmable I/O Blocks | [| Programmable Logic Blocks Interconnections L] L] ` [| L] [| Hình 2.1: Kiến trúc cơ ban của FPGA Khối CLB: thực thi các chức năng logic, cung cấp các tính toán và phần tử nhớ cơ bản được sử dụng trong hệ thống số. CLBs là phần tử cơ bản cấu thành FPGA, là nguồn tài nguyên logic chính tạo nên các mạch logic đồng bộ lẫn không đồng bộ. Một CLB cơ bản gồm một mạch tổ hợp có thé lập trình (còn gọi là LUT), một Flip-Flop hoặc một chốt (latch).

Kết quả của hàm này tùy vào mục đích mà gửi ra ngoài khối logic trực tiếp hay thông qua phần tử nhớ flip-flop. Ngoài khối logic cơ bản đó, nhiều chip FPGA hiện nay còn có 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, cấu hình bộ nhớ được sử dụng trên tất cả các khối logic được dùng 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): dùng dé liên kết các khối logic và I/O lại với nhau dé tạo thành một thiết kế hoàn chỉnh.

Mạng liên kết trong FPGA được cầu thành từ các đường kết nối theo hai phương ngang và đứng. Tùy theo từng loại FPGA mà các đường kết nối được chia thành các nhóm khác nhau. Các đường kết nối được nối với nhau thông qua các khối chuyển mạch lập trình được (programmable switch). Trong mỗi khối chuyên mạch chứa một số lượng nút chuyên lập trình được đảm bảo cho các dạng liên kết phức tạp khác nhau.

Khối 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 van dé 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 áp cung cấp và điện áp tham chiếu sẽ được hỗ trợ. Số lượng Pin (/O) của FPGA tương đối lớn, thường được chia ra làm 2 loại: User Pin (chân người dùng), Dedicated Pin (chân chuyên dung). User Pin: người dùng có thê lập trình như đầu vào, đầu ra hoặc cả đầu vào — ra.

Mỗi pin được kết nối với một “I/O Cell” bên trong FPGA, được cấp bởi các chan Vcc I/O (/O power pin). Dedicated Pin: được mã hóa cứng với một chức năng cụ thé như: s* Power Pin. “ Configuration Pin: các pin dé cấu hình FPGA. s* Dedicated Input hay Clock Pin: điều khiển mạng lưới clock trong FPGA.

s Voltage IO: cấp nguồn cho các công logic và flip-flops bên trong FPGA. Theo thời gian, các kiến trúc FPGA cơ bản đã được phát triển nhiều hơn 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ớ Block RAMs, logic số hoc (ALU), bộ nhân, DSP-48 và thậm chi 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 đó. Ưu nhược điểm của FPGA ¢ Uu điểm: > FPGA có thé được lập trình ở mức logic.

Do đó, nó có thé thực hiện xử lý tin hiệu song song và nhanh hơn hệ thống nhúng. > FPGA có thé được lập trình lại hoặc sử dụng lai bất kỳ lúc nào. FPGA cũng có thé được lập trình từ xa. > Phát triển FPGA rẻ hơn do các công cụ ít tốn kém hơn.

s* Nhược điểm: > Việc lập trình FPGA đòi hỏi kiến thức về ngôn ngữ lập trình VHDL/Verilog cũng như các nguyên tắc cơ bản về hệ thống kỹ thuật số. Việc lập trình không đơn giản như lập trình ngôn ngữ bậc cao C hay Python được điều khiển dựa trên bộ xử lý. Hơn nữa, các kỹ sư cần học cách sử dụng các công cụ mô phỏng đa dạng. > Khi bất kỳ FPGA cụ thể nào được sử dụng, các kỹ sư cần sử dụng tài nguyên có sẵn trên FPGA.

Điều này sẽ hạn chế về kích thước thiết kế cũng như tài nguyên hao tốn. Để tránh tình huống như vậy, FPGA thích hợp cần được chọn ngay từ đầu. Hệ thống nhúng 2. Dinh nghĩa Hệ thống nhúng là một loại hệ thống máy tính được thiết kế dé thực hiện một số tác vụ như truy cập, xử lý, lưu trữ và kiểm soát đữ liệu trong các hệ thong thiét bi điện tử khác nhau.

Các hệ thống nhúng là sự kết hop giữa phan cứng va phần mềm, ở đây phần mềm được nhúng vào phần cứng. Một trong những đặc điểm quan trọng nhất của các hệ thống này là nó chỉ cung cấp input/output trong một khoảng thời gian giới hạn. Sự hỗ trợ của các hệ thống nhúng giúp cho công việc trở nên hoàn thiện và thuận tiện hơn. Vì thế, các hệ thống nhúng thường được tích hợp trong rất nhiều thiết bị từ đơn giản đến phức tạp.2 mô tả mô hình cơ bản của một hệ thống nhúng.

Input Output Variables Variables Link to Other Systems Hình 2.2: Mô hình cơ bản của một hệ thông nhúng 2. Phần cứng của một hệ thống nhúng Hệ thống nhúng sử dụng nền tảng phần cứng dé thực thi các hoạt động. Phan cứng của hệ thống nhúng được lắp ráp cùng với bộ vi xử lý/vi điều khiển. Hệ thống phần cứng này bao gồm các yêu tố như giao diện cho các dữ liệu đầu vào/đầu ra, bộ nhớ, giao diện người dùng và bộ hiển thị dữ liệu.3 mô tả các phan cứng cơ bản của một hệ thống nhúng.

Phần mềm của một hệ thống nhúng Phần mềm được viết cho hệ thống nhúng được gọi là phần mềm nhúng hay firmware. Phần mềm nhúng là một chương trình được viết, biên dịch trên máy tính và nạp vào một hệ thống khác bao gồm một hoặc nhiều bộ vi xử lí đã được cài đặt san một hệ điều hành, bộ nhớ ghi chép được, các công giao tiếp được với các phan cứng khác. Phần mềm nhúng là phần mềm tạo nên phần hồn, phần trí tuệ của các sản phẩm nhúng. Phần mềm nhúng ngày càng có giá trị cao trong các sản phẩm nhúng.

Đặc trưng của một hệ thống nhúng Hệ thống nhúng được thiết kế để thực hiện một chức năng chuyên biệt nào đó. Day là điểm khác biệt so với các hệ thông máy tính khác như máy tính cá nhân hoặc các siêu máy tính có thể thực hiện nhiều chức năng khác nhau với những phép 11 tính phức tạp. Tính chuyên dụng của hệ thống nhúng giúp nâng cao khả năng sử dụng và tiết kiệm tài nguyên cho hệ thống. Tất cả các hệ thống máy tính đều có những hạn chế về các số liệu thiết kế, tài nguyên.

Số liệu thiết kế là thước đo dé đánh giá việc xây dựng các tính năng như độ lớn, công suất, chi phí và cả hiệu năng hoạt động của hệ thống.

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

Tài liệu "Thiết Kế Hệ Thống Smart Camera Trên FPGA Ultra96-V2" cung cấp cái nhìn sâu sắc về việc phát triển và triển khai hệ thống camera thông minh sử dụng công nghệ FPGA. Bài viết nêu bật các kỹ thuật thiết kế, tối ưu hóa hiệu suất và ứng dụng thực tiễn của hệ thống này trong việc xử lý hình ảnh và nhận diện đối tượng. Đặc biệt, tài liệu giúp người đọc hiểu rõ hơn về cách mà FPGA có thể cải thiện tốc độ và độ chính xác trong các ứng dụng camera thông minh.

Để mở rộng kiến thức của bạn về các khía cạnh liên quan, bạn có thể tham khảo thêm tài liệu 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, nơi trình bày chi tiết về việc áp dụng MobileNetV2 trong thiết kế camera thông minh. Ngoài ra, tài liệu Luận văn nghiên cứu kỹ thuật deep learning và ứng dụng trong phân loại ảnh sẽ giúp bạn hiểu rõ hơn về các phương pháp học sâu trong phân loại hình ảnh, một phần quan trọng trong việc phát triển hệ thống camera thông minh. Cuối cùng, bạn cũng có thể tìm hiểu về Luận văn hiệu chỉnh mẫu và nhận dạng trong nhập điểm tự động, tài liệu này sẽ cung cấp thêm thông tin về các kỹ thuật xử lý hình ảnh tự động, hỗ trợ cho việc phát triển hệ thống camera thông minh hiệu quả hơn.