Đồ án HCMUTE: Đánh giá hiệu năng các bộ lọc xử lý ảnh trên nền tảng SoC Zynq 7000

Đồ án nghiên cứu hcmute thực hiện và đánh giá hiệu năng các bộ lọc xử lý ảnh trên nền tảng soc zynq 7000, thiết kế chi tiết, tính toán kỹ thuật theo tiêu chuẩn, đánh giá tính khả

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2018

109
3
0

Phí lưu trữ

35 Point

Mục lục chi tiết

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

LỜI CẢM ƠN

TÓM TẮT

1. CHƯƠNG 1: TỔNG QUAN

1.1. MỤC TIÊU ĐỀ TÀI

1.2. NỘI DUNG THỰC HIỆN

1.3. TÌNH HÌNH NGHIÊN CỨU

1.4. BỐ CỤC QUYỂN BÁO CÁO

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. NỀN TẢNG SoC ZYNQ-7000

2.2. GIAO THỨC AXI, AXI4

2.3. MÔ HÌNH PIPELINE, DATAFLOW

2.3.1. Mô hình Pipeline

2.3.2. Mô hình Dataflow

2.4. GIẢI THUẬT TÁCH BIÊN ẢNH MÀU

2.4.1. Lý thuyết ảnh màu và xử lý ảnh

2.4.2. Kỹ thuật tách biên ảnh màu

2.4.3. Chuyển đổi ảnh xám

2.4.4. Tích chập trong xử lý ảnh

2.4.5. Bộ lọc Gaussian Blur

2.4.6. Bộ lọc Sobel

2.4.7. Bộ lọc Prewitt

2.4.8. Bộ lọc Canny

2.5. CƠ BẢN VỀ OPENCV

3. CHƯƠNG 3: THỰC HIỆN CÁC GIẢI THUẬT XỬ LÝ LỌC ẢNH TRÊN HW/SW

3.1. ĐẶC TẢ HỆ THỐNG

3.2. THỰC THI GIẢI THUẬT TRÊN NỀN TẢNG PHẦN MỀM

3.2.1. Quy trình thực thi thiết kế

3.2.2. Xây dựng Platform cho hệ thống

3.2.3. Xây dựng platform phần cứng cho hệ thống

3.2.4. Xây dựng platform phần mềm cho hệ thống

3.2.5. Triển khai các giải thuật

3.2.5.1. Giải thuật Sobel
3.2.5.2. Giải thuật Prewitt
3.2.5.3. Giải thuật Canny

3.3. THỰC THI GIẢI THUẬT TRÊN NỀN TẢNG PHẦN CỨNG

3.3.1. Quy trình thực thi thiết kế

3.3.2. Xây dựng các khối giao tiếp HDMI và VGA

3.3.3. Xây dựng các IPCore với các giải thuật phát hiện biên ảnh

3.3.3.1. IPCore với giải thuật Sobel
3.3.3.2. IPCore với giải thuật Prewitt
3.3.3.3. IPCore với giải thuật Canny

4. CHƯƠNG 4: KẾT QUẢ

4.1. SƠ ĐỒ MẠCH HỆ THỐNG TRÊN PHẦN CỨNG

4.2. THÔNG SỐ HỆ THỐNG TRÊN PHẦN CỨNG

4.3. KẾT QUẢ THỰC NGHIỆM VÀ SO SÁNH HIỆU SUẤT

4.3.1. Kết quả thực thi với giải thuật Sobel

4.3.2. Kết quả thực thi với giải thuật Prewitt

4.3.3. Kết quả thực thi với giải thuật Canny

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

5.1. HƯỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về Xử lý ảnh trên nền tảng SoC Zynq 7000

Đề tài tập trung vào việc thực hiện và đánh giá hiệu năng các bộ lọc xử lý ảnh (Sobel, Prewitt, Canny) trên nền tảng SoC Zynq 7000. SoC Zynq 7000, với kiến trúc tích hợp ARM Cortex-A9FPGA, cung cấp môi trường lý tưởng cho việc triển khai cả phần mềm và phần cứng. Nghiên cứu này so sánh hiệu năng giữa việc thực hiện các bộ lọc trên phần mềm và phần cứng, nhấn mạnh vào việc tối ưu hóa thời gian xử lý và tiêu thụ năng lượng. Hiệu năng bộ lọc ảnh Zynq 7000 được đánh giá dựa trên các chỉ số thời gian thực thi và chất lượng ảnh sau xử lý. Các thuật toán bộ lọc ảnh Zynq 7000 được lựa chọn là những thuật toán phổ biến và hiệu quả trong xử lý ảnh.

1.1. Kiến trúc SoC Zynq 7000 và khả năng xử lý ảnh

Phần này trình bày kiến trúc của SoC Zynq 7000, bao gồm Processing System (PS) với lõi ARM Cortex-A9Programmable Logic (PL). SoC Zynq 7000 xử lý ảnh được thực hiện bằng cách tận dụng sức mạnh xử lý song song của cả hai thành phần. PS chịu trách nhiệm điều khiển toàn bộ hệ thống và thực thi các thuật toán trên phần mềm, trong khi PL được lập trình để thực hiện các phép tính song song, tăng tốc độ xử lý cho các bộ lọc ảnh. FPGA và xử lý ảnh Zynq 7000 đóng vai trò quan trọng trong việc tăng tốc độ xử lý. Giao tiếp giữa PSPL dựa trên giao thức AXI (Advanced Extensible Interface). Nghiên cứu khảo sát sâu về việc sử dụng AXI4AXI4-Stream cho việc truyền dữ liệu hiệu quả giữa các module. Việc lựa chọn kiến trúc này nhằm mục đích tối ưu hiệu năng bộ lọc ảnh Zynq 7000.

1.2. Các bộ lọc xử lý ảnh Sobel Prewitt Canny

Đề tài tập trung vào ba thuật toán bộ lọc ảnh Zynq 7000 phổ biến: Sobel, Prewitt, và Canny. Mỗi thuật toán được mô tả chi tiết về nguyên lý hoạt động và ứng dụng. Bộ lọc SobelPrewitt là các bộ lọc đơn giản, hiệu quả trong việc phát hiện biên ảnh. Bộ lọc Canny phức tạp hơn, cho kết quả chính xác hơn nhưng cần nhiều tài nguyên xử lý hơn. Các loại bộ lọc ảnh trên Zynq 7000 được so sánh về độ phức tạp và hiệu quả. Việc lựa chọn các thuật toán này là dựa trên tính phổ biến và hiệu quả trong thực tế. Thuật toán bộ lọc ảnh Zynq 7000 được chọn phù hợp với mục tiêu đánh giá hiệu năng của nền tảng.

II. Thực hiện và tối ưu hóa bộ lọc xử lý ảnh

Phần này trình bày quá trình thực hiện các bộ lọc xử lý ảnh trên cả phần mềm và phần cứng. Thực hiện bộ lọc ảnh trên Zynq 7000 trên phần mềm sử dụng SDK (Software Development Kit) của Xilinx. Thực hiện bộ lọc ảnh trên Zynq 7000 trên phần cứng sử dụng Vivado HLS (High-Level Synthesis) để tạo ra các IP Core từ mã nguồn C/C++. Tối ưu hóa bộ lọc ảnh Zynq 7000 được thực hiện bằng cách ứng dụng các mô hình PipelineDataflow để tăng tính song song trong xử lý. Phần cứng xử lý ảnh Zynq 7000 được tối ưu để đạt hiệu suất cao.

2.1. Triển khai phần mềm và phần cứng

Thực hiện bộ lọc ảnh trên Zynq 7000 trên phần mềm được thực hiện sử dụng SDK. Quá trình này bao gồm việc lập trình các thuật toán trên lõi ARM Cortex-A9. ARM Cortex-A9 và xử lý ảnh Zynq 7000 cung cấp môi trường lập trình quen thuộc. Triển khai phần mềm đơn giản và dễ thực hiện, nhưng hiệu năng có thể bị giới hạn. Thực hiện bộ lọc ảnh trên Zynq 7000 trên phần cứng sử dụng Vivado HLS để chuyển đổi mã C/C++ thành các IP Core. Vivado HLS tự động tối ưu hóa mã nguồn cho hiệu năng cao trên FPGA. Các IP Core này được tích hợp vào PL để thực hiện xử lý song song. Phần cứng xủ lý ảnh Zynq 7000 được thiết kế với mô hình PipelineDataflow để tối ưu hóa tốc độ và hiệu suất.

2.2. Áp dụng mô hình Pipeline và Dataflow

Mô hình PipelineDataflow được áp dụng để tăng tốc độ xử lý. Mô hình Pipeline chia nhỏ quá trình xử lý thành các giai đoạn nhỏ, xử lý đồng thời nhiều dữ liệu. Mô hình Dataflow cho phép xử lý dữ liệu một cách song song, tận dụng tối đa khả năng của FPGA. Tối ưu hóa bộ lọc ảnh Zynq 7000 thông qua việc ứng dụng hai mô hình này. Việc tích hợp hiệu quả các mô hình này vào thiết kế IP Core ảnh hưởng lớn đến hiệu năng bộ lọc ảnh Zynq 7000. Khả năng xử lý ảnh Zynq 7000 được nâng cao đáng kể nhờ vào việc tối ưu hóa này.

III. Kết quả và phân tích hiệu năng

Phần này trình bày kết quả thực nghiệm và phân tích hiệu năng của các bộ lọc xử lý ảnh trên cả phần mềm và phần cứng. Đánh giá hiệu năng Zynq 7000 được thực hiện bằng cách đo thời gian xử lý và tiêu thụ năng lượng. So sánh hiệu năng bộ lọc ảnh Zynq 7000 giữa hai phương pháp cho thấy sự cải thiện đáng kể về tốc độ khi sử dụng phần cứng. Phân tích hiệu năng Zynq 7000 được thực hiện dựa trên các chỉ số định lượng như thời gian xử lý mỗi ảnh, tốc độ khung hình (FPS) và tiêu thụ điện năng. Kết quả được trình bày bằng biểu đồ và bảng số liệu.

3.1. So sánh hiệu năng phần mềm và phần cứng

Kết quả thực nghiệm cho thấy sự khác biệt rõ rệt về hiệu năng giữa việc thực hiện các bộ lọc trên phần mềm và phần cứng. So sánh hiệu năng bộ lọc ảnh Zynq 7000 cho thấy phần cứng có tốc độ xử lý nhanh hơn đáng kể so với phần mềm, đặc biệt khi xử lý ảnh độ phân giải cao. Thời gian thực hiện bộ lọc ảnh Zynq 7000 được đo đạc và phân tích kỹ lưỡng. Hiệu năng bộ lọc ảnh Zynq 7000 được cải thiện nhờ việc sử dụng FPGA và tối ưu hóa bằng mô hình PipelineDataflow. Các kết quả thực nghiệm được trình bày một cách rõ ràng và chi tiết.

3.2. Phân tích tiêu thụ điện năng

Ngoài thời gian xử lý, nghiên cứu cũng phân tích tiêu thụ điện năng của hệ thống trong quá trình xử lý ảnh. Tiêu thụ điện năng bộ lọc ảnh Zynq 7000 được đo đạc và so sánh giữa phần mềm và phần cứng. Mặc dù phần cứng có tốc độ xử lý nhanh hơn, nhưng tiêu thụ điện năng có thể cao hơn so với phần mềm. Phân tích hiệu năng Zynq 7000 cân nhắc cả hai yếu tố tốc độ và tiêu thụ điện năng. Đánh giá hiệu năng Zynq 7000 đầy đủ cần phải xem xét cả hai yếu tố này để đưa ra kết luận tổng thể.

01/02/2025

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

Chương 1 Tổng quan Chương này trình bày tổng quan về đề tài đã thực hiện bao gồm mục tiêu, nhiệm vụ, các công việc thực hiện và tình hình nghiên cứu. Đồng thời giới thiệu về bối cảnh công nghệ hiện tại, lý do nhóm nghiên cứu lựa chọn đề tài này để thực hiện và các văn bản có liên quan đến đề tài. Chương 2 Cơ sở lý thuyết Chương này trình bày về các cơ sở lý thuyết đã được nhóm nghiên cứu sử dụng trong đề tài. Các kiến thức liên quan đến giải thuật phát hiện biên ảnh, lý thuyết về ảnh màu và xử lý ảnh, nền tảng SoC ZYNQ-7000, các giao diện giao tiếp giữa các IPCore và các mô hình tối ưu giải thuật trên nền tảng SoC ZYNQ-7000.

Chương 3 Thực hiện các giải thuật xử lý lọc ảnh trên HW/SW Trong chương này trình bày về việc thực hiện các giải thuật, các bước xây dựng platform cho hệ thống, các bước xây dựng IPCore cho đề tài, các bước thực thi các giải thuật phát hiện biên ảnh Sobel, Prewitt, Canny với các mô hình tối ưu trên nền tảng SoC ZYNQ-7000. Sơ đồ kết nối các IPCore cho ứng dụng trên phần cứng cũng như platform cho việc xây dựng ứng dụng trên pần mềm với lõi ARM. Chương 4 Kết quả Trong chương này trình bày về kết quả đã thực hiện được trên cả phần cứng lẫn phần mềm. Đồng thời trình bày các thông số như số cổng logic, số lượng FF, số lượng LUT,… đã được sử dụng trong thiết kế.

Bên cạnh đó là so sánh thời gian xử lý của giải thuật trên phần cứng và phần mềm. Chương 5 Kết luận và hướng phát triển Dựa trên những gì đã thực hiện chương này sẽ trình bày về nhận định của nhóm nghiên cứu về đề tài đã thực thi. Từ đó đề ra định hướng phát triển cho đề tài trong tương lai. 7 do an Chương 2 CƠ SỞ LÝ THUYẾT 2.

NỀN TẢNG SoC ZYNQ-7000 SoC – Hệ thống trên một vi mạch là một hướng đi mới công nghệ, là một vi mạch được tích hợp các thành phần của một máy tính hoặc các hệ thống điện tử khác. Với sự tiến bộ của công nghệ bán dẫn cho phép con người ngày càng có thể tích hợp nhiều hệ thống trên cùng vi mạch với ứng dụng đa dạng hơn và hiệu năng tốt hơn. Một SoC có thể bao gồm các khối chức năng kĩ thuật số (Digital), tương tự (Analog), tín hiệu kết hợp (Mixed-signal) và cả các khối tần số radio (RF). SoC là một công nghệ phổ biến trong các thiết bị như điện thoại di động, các thiết bị thông minh tiêu tốn ít năng lượng hay các hệ thống nhúng.

Các loại SoC có thể kể đến là SoC tích hợp một vi điều khiển, SoC tích hợp một vi xử lý và một loại SoC đặc biệt được thiết kế cho các ứng dụng riêng biệt hoàn toàn khác với 2 loại kia. Loại SoC này là PSoC (Programmable SoC), PSoC có một số thành phần không được cài đặt hoặc thiết lập trước mà có thể lập trình FPGA để thiết lập. Kiến trúc ZYNQ-7000 8 do an ZYNQ – 7000 là sản phẩm được sản xuất bởi Xilinx vào năm 2012, dựa trên nền tảng cấu trúc của PSoC. ZYNQ-7000 được tích hợp một hệ thống xử lý dựa trên lõi kép ARM Cortex-A9 (PS) và nền tảng FPGA Xilinx 28 nm (PL).

CPU ARM Cortex- A9 MPCore là trung tâm của PS, bao gồm các bộ nhớ on-chip, giao diện bộ nhớ ngoài và bộ thiết bị ngoại vi I/O phong phú [18]. Nền tảng ZYNQ-7000 hỗ trợ rất tốt cho các thiết kế SoC, các khối IP được kết nối thông qua giao diện bus AXI. Cấu trúc của ZYNQ-7000 gồm các khối sau:  Khối hệ thống xử lý PS - Processing System  Khối đơn vị xử lý - APU (Application processor unit)  Khối giao diện giao tiếp bộ nhớ - MI (Memory interfaces)  Khối thiết bị ngoại vi - IOP (I/O peripherals)  Khối kết nối  Khối logic lập trình PL - Programmable Logic  Các khối logic có khả năng tái cấu hình - CLB (Configurable Logic Blocks)  Khối RAM  Khối xử lý tín hiệu số - DSP48E1  Khối XADC (Analog-to-digital converter) PS và PL có thể được kết hợp chặt chẽ hoặc không chặc chẽ bằng nhiều giao diện và các tín hiệu khác có tổng cộng hơn 3. Điều này cho phép tích hợp hiệu quả các bộ tăng tốc phần cứng do người dùng tạo và các chức năng khác trong PL có thể truy cập tới các bộ vi xử lý và cũng có thể truy cập các tài nguyên bộ nhớ trong hệ thống xử lý.

Thành phần PS của ZYNQ-7000 Trong PS khối APU bao gồm hai lõi vi xử lý ARM Cortex-A9. Trong đó mỗi lõi đều bao gồm các khối NEON, khối xử lý dữ liệu dấu chấm động (FPU: Floating Point Unit), khối quản lý bộ nhớ (MMU: Memory Management Unit), hai bộ nhớ cache I- cache (Instructions cache) và D-cache (Data cache) cho việc lưu trữ lệnh và dữ liệu. APU cũng bao gồm một bộ nhớ cache L2 và bộ nhớ on-chip (On-Chip Memory: OCM) dùng chung cho cả hai lõi vi xử lý. Ngoài ra APU còn bao gồm các giao diện ngoại vi, giao diện ghép nối bộ nhớ, mạng truyền thông và mạch tạo tín hiệu đồng bộ.

Truyền thông giữa PS với các thiết bị ngoại vi bên ngoài có thể thực hiện trực tiếp thông qua khối ghép nối MIO (Multiplexed Input/Output) gồm 54 chân. Ngoài ra có thể sử dụng các I/O là một phần của PL cho các ngoại vi của PS, việc này được thực hiện nhờ kết nối EMIO (Extended MIO). Các kết nối ngoại vi I/O trong PS gồm: 9 do an  2 kết nối SPI: cung cấp một phương thức truyền thông nối tiếp sử dụng 4 dây cho cả truyền và nhận.  2 kết nối I2C: cung cấp một phương thức truyền thông nối tiếp sử dụng 2 dây cho cả truyền và nhận  2 kết nối CAN: chuẩn truyền thông nối tiếp được sử dụng phổ biến trong ngành công nghiệp ô-tô  2 kết nối UART: chuần truyền thông nối tiếp thường dùng để kết nối thiết bị đầu cuối với máy tính cho mục đích gỡ rối, sửa lỗi.

 4 bộ kết nối GPIO: bộ ghép nối song song 32-bit  2 kết nối SD: dùng ghép nối với SDCard  2 kết nối USB: tương thích chuẩn USB 2.0  2 kết nối Ethernet: hỗ trợ tốc độ kết nối 10Mbps, 100Mbps và 1Gbps Thành phần PL của ZYNQ-7000 PL trên ZYNQ-7000 bao gồm các khối logic có khả năng tái cấu hình và một số tài nguyên phần cứng chuyên dụng tương thích với chuẩn FPGA Artix-7 và Kintex-7 của Xilinx:  Các thiết bị dựa trên Artix: Z-7010 và Z-7020  Các thiết bị dựa trên Kintex: Z-7030 và Z-7054 Cũng giống như các FPGA khác, phần PL của ZYNQ-7000 bao gồm các khối logic cấu hình (CLB), mỗi CLB gồm 2 slice. Mỗi slice chứa 4 LUT, 8 Flip-flop (FF), và một ma trận chuyển mạch (Switch Matrix) có chức năng định tuyến linh hoạt cho Hình 2. Cấu trúc khối CLB 10 do an việc kết nối giữa các phần tử trong một CLB hoặc từ khối CLB đến các tài nguyên khác trong PL. Ngoài ra còn có khối RAM và DSP.

GIAO THỨC AXI, AXI4 Để cho PS giao tiếp với các thiết bị ngoại vi phần cứng được khởi tạo trong PL, thì một giao thức truyền thông cho phép cả PS và PL truy cập thông tin chia sẻ trong bộ nhớ DDR3 một cách kịp thời và có tổ chức phải được thực hiện. Giao thức truyền thông này là một tiêu chuẩn công nghiệp được gọi là AXI. AXI là một phần của ARM AMBA (Advanced Microcontroller Bus Architecture) một loại bus điều khiển ở cấp độ vi mô đầu tiên được giới thiệu vào năm 1996. Phiên bản đầu tiên của AXI được đưa vào AMBA 3.0 được phát hành năm 2010, bao gồm phiên bản thứ hai của AXI là AXI4.

Có ba loại giao diện AXI4: AXI4, AXI4-Lite, AXI4-Stream [19]. Trong giao thức này các thành phần được kết nối theo mô hình chủ - tớ, nên tất cả các khối IP được thiết kế cho một nền tảng ZYNQ-7000 phải đóng vai trò hoặc là chủ hoặc là tớ trong giao thức AXI. Thiết bị chủ có khả năng khởi tạo các lệnh đọc và ghi, trong khi các thiết bị tớ chỉ có thể trả lời các lệnh này. Trong các giao thức ánh xạ bộ nhớ, tất cả các giao dịch liên quan đến khái niệm di chuyển địa chỉ đích trong không gian bộ nhớ hệ thống, trong đó các IP hoạt động trong một bản đồ bộ nhớ xác định.

Vì thế khi triển khai thiết bị ngoại vi hoặc xây dựng các IPCore thì chúng phải bao gồm các I/O cần thiết để cho phép chúng tham gia vào bus AXI. AXI4 cung cấp các cải tiến mang lại nhiều lợi ích trong hiệu năng, tính linh hoạt và tính khả dụng:  Hiệu năng: bằng cách tiêu chuẩn hóa giao diện AXI, người thiết kế chỉ cần tìm hiểu một giao thức duy nhất cho các IPCore.  Tính linh hoạt: Cung cấp các giao thức phù hợp cho nhiều ứng dụng khác nhau:  AXI4: cho các yêu cầu ánh xạ bộ nhớ hiệu suất cao, tốc độ có thể lên tới 256 chu kỳ truyền dữ liệu chỉ với một pha địa chỉ duy nhất.  AXI4-Lite: cho các giao tiếp ánh xạ bộ nhớ đơn giản, dung lượng thấp.

 AXI4-Stream: cho các ứng dụng với luồng dữ liệu phát trực tiếp, tốc độ cao. Giao diện AXI4-Stream không có các pha địa chỉ, do đó không được xem là ánh xạ bộ nhớ. 11 do an  Tính khả dụng: bằng cách chuyển sang chuẩn công nghiệp, người thiết kế dễ dàng hơn trong việc tái sử dụng các IPCore trên các nền tảng khác nhau do Xilinx cung cấp hay các nền tảng của các nhà cung cấp khác trên toàn thế giới, hay tích hợp các IPCore đã xây dựng với các IPCore được cung cấp bởi Xilinx hay của cộng đồng ARM với cùng tiêu chuẩn truyền thông. Giao diện AXI4 bao gồm năm kênh khác nhau: Đọc địa chỉ, ghi địa chỉ, đọc dữ liệu, ghi dữ liệu, ghi phản hồi.

Dữ liệu có thể di chuyển theo cả hai hướng giữa chủ và tớ một cách đồng thời, và kích thước dữ liệu có thể thay đổi được. Việc đọc và ghi của AXI4 được thể hiện trong hình sau: Hình 2. Hoạt động đọc và ghi dữ liệu trong giao diện AXI4 12 do an Trong các giao diện của chuẩn AXI4 thì AXI4-Stream có tính tối ưu cao trong các ứng dụng về xử lý ảnh. Giao thức AXI4-Stream được sử dụng cho các ứng dụng tập trung vào một mô hình dữ liệu tập trung và luồng dữ liệu, trong đó khái niệm về một địa chỉ là không có hoặc không cần thiết.

Mỗi AXI4-Stream hoạt động như một kênh đơn hướng duy nhất cho luồng dữ liệu có tính bắt tay trong quá trình truyền nhận dữ liệu.

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