1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thực thi và đánh giá thuật toán tách biên ảnh trên FPGA

72 828 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 20,88 MB
File đính kèm Source_code.rar (4 MB)

Nội dung

Nhằm thiết kế các ứng dụng đạt hiệu quả cao thì vấn đề xử lý nhằm đáp ứng về tốc độ, thời gian thực là những yêu cầu rất quan trọng trong hầu hết các ứng dụng. Để đáp ứng được các yêu cầu này thì ta phải xử lý một cách tốt nhất từng giai đoạn trong quá trình xử lý ảnh. Một trong những giai đoạn quan trọng này là tách biên của một bức ảnh. Do đó chúng tôi đã chọn đề tài “Thực thi và đánh giá thuật toán tách biên ảnh trên FPGA”. Đề tài này được thực hiện trên cả phần cứng sử dụng KIT FPGA Virtex5XUP LX110T và phần mềm sử dụng Matlab Simulink trên nền Xilinx System Generator. Nội dung đồ án này được chia làm 4 chương:2. Chương 1: Tổng quan về xử lý ảnh số và bài toán tách biên.Xử lý ảnh số đóng vai trò rất quan trọng trong đời sống hiện nay, do đó để hiểu rõ hơn về xử lý ảnh trong chương này sẽ trình bày một cách tổng quan về xử lý ảnh số và bài toán tách biên bao gồm:•Một số khái niệm cơ bản trong xử lý ảnh như điểm ảnh, độ phân giải ảnh, mức xám của ảnh, các loại ảnh.•Các phép xử lý ảnh số thông dụng như phép nhân chập, lọc trung bình, lọc thông thấp, thông cao.• Bài toán tách biên được sử dụng là tách biên theo phương pháp Gradient với hai bộ lọc là Sobel và Prewitt.3.Chương 2: Giới thiệu về KIT FPGA Virtex5, phần mềm Matlab Simulink và Xilinx System Generator.Việc thực thi thiết kế trên cả phần cứng sử dụng FPGA Virtex5 và phần mềm sử dụng Matlab Simulink trên nền Xilinx System Generator đòi hỏi ta phải có sự hiểu biết nhất định về những công cụ mà ta sử dụng. Vì vậy trong chương này sẽ đi giới thiệu tổng quan về những công cụ sử dụng trong thiết kế trên phần cứng và phần mềm.•FPGA: Tìm hiểu tổng quan về FPGA, cấu trúc của và ứng dụng•Matlab Simulink: Giới thiệu về Matlab và vai trò của Simulink trong việc xây dựng các thuật toán DSP.•Xilinx System Generator4.Chương 3: Xây dựng hệ thống tách biên ảnh trên FPGA.Trong chương này ta sẽ tiến hành xây dựng hệ thống xử lý ảnh tách biên trên XSG thông qua việc mô tả hệ thống nhằm hiểu chức năng của hệ thống, sau đó tiến hành thiết kế hệ thống theo quy trình thiết kế số.4.1. Mô tả hệ thống: •Tìm hiểu hệ thốngNhiệm vụ: “Thực thi và đánh giá thuật toán tách biên ảnh trên FPGA”. Thực hiện trên cả phần mềm Matlab Simulink và phần cứng FPGAVirtex5.Phương pháp xây dựng: áp dụng bài toán tách biên sử dụng bộ lọc Sobel và Prewitt trong môi trường Simulink, XSG.•Sơ đồ tổng quát hệ thống Image source: ngõ vào bức ảnh bất kì có thể là ảnh màu hay ảnh gray.Image preprocessing unit: khối tiền xử lý ảnh, được thực hiện trên Matlab.Edge detection module: khối IP core của thiết kế, thực hiện trên XSG.Image postprocessing unit: khối hậu xử lý ảnh, thực hiện trên Matlab.Image viewer: xem kết quả thiết kế.4.2. Thiết kế hệ thống•Thiết kế HighLevel: Sơ đồ mạch cho từng moduleImage preprocessing unit Image postprocessing unit module edge detection •Thiết kế LowLevel: sơ đồ mạch hoàn chỉnh thiết kế 5.Chương 4: Kết quả thực thi và đánh giáTrong chương này ta dựa vào sơ đồ mạch hoàn chỉnh trong thiết kế ở chương 3 để tiến hành mô phỏng, đánh giá kết quả đạt được trên phần mềm và phần cứng sau đó nhận xét về hệ thống.

Trang 1

LỜI CAM ĐOAN

Cộng hòa xã hội chủ nghĩa Việt Nam Độc lập - Tự do - Hạnh phúc

LỜI CAM ĐOAN



Kính gửi : Hội đồng bảo vệ đồ án tốt nghiệp khoa Điện tử - Viễn thông

Trường Đại học Bách Khoa - Đại học Đà NẵngNhóm chúng tôi gồm có 2 thành viên:

Trần Nhật Tin, Lớp 09DT1- Khoa Điện tử -Viễn Thông, Trường đại họcBách Khoa - Đại học Đà Nẵng

Lê Thanh Lâm, Lớp 09DT1- Khoa Điện tử -Viễn Thông, Trường đại họcBách Khoa - Đại học Đà Nẵng

Chúng tôi xin cam đoan nội dung trong đồ án này là do chúng tôi thựchiện dưới sự hướng dẫn trực tiếp của thầy Huỳnh Việt Thắng, không phải là bảnsao chép của bất cứ đồ án hoặc công trình đã có từ trước

Trang 2

MỤC LỤC



CHƯƠNG 1: TỔNG QUAN XỬ LÝ ẢNH SỐ VÀ BÀI TOÁN TÁCH BIÊN 1

1.1 Giới thiệu chương 1

1.2 Một số khái niệm cơ bản trong xử lý ảnh 1

1.2.1 Điểm ảnh 1

1.2.2 Độ phân giải ảnh 2

1.2.3 Mức xám của bức ảnh 2

1.2.4 Các loại ảnh 3

1.3 Các phép xử lý ảnh số 3

1.3.1 Phép nhân chập 3

1.3.2 Lọc trung bình 4

1.3.3 Lọc thông thấp 5

1.3.4 Lọc thông cao 5

1.4 Bài toán tách biên ảnh 6

1.4.1 Một số khái niệm 6

1.4.2 Phương pháp Gradient tách biên ảnh 7

1.4.2.1 Bộ lọc Sobel 8

1.4.2.2 Bộ lọc Prewitt 8

1.5 Kết luận chương 9

CHƯƠNG 2: GIỚI THIỆU VỀ KIT FPGA VIRTEX-5, PHẦN MỀM MATLAB SIMULINK VÀ XILINX SYSTEM GENERATOR 10

2.1 Giới thiệu chương 10

2.2 Tổng quan về FPGA 10

2.2.1 Lịch sử ra đời của FPGA 10

2.2.2 Khái niệm cơ bản và cấu trúc FPGA 11

2.2.3 Các ứng dụng của FPGA 12

2.3 Giới thiệu KIT FPGA Virtex-5 12

Trang 3

MỤC LỤC

2.4 Giới thiệu phần mềm Matlab Simulink 14

2.4.1 Giới thiệu Matlab 14

2.4.2 Simulink 14

2.5 Giới thiệu công cụ Xlinx System Generator 15

2.5.1 Giới thiệu hãng Xilinx 15

2.5.2 Xilinx System Generator 15

2.6 Kết luận chương 18

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG TÁCH BIÊN ẢNH TRÊN FPGA 19

3.1 Giới thiệu chương 19

3.2 Mô tả hệ thống 19

3.2.1 Tìm hiểu tổng quan hệ thống 19

3.2.2 Sơ đồ tổng quát hệ thống 19

3.2.3 Phân tích hệ thống 20

3.3 Thiết kế hệ thống 20

3.3.1 Quy trình thiết kế 20

3.3.2 Nội dung thiết kế 21

3.3.2.1 Request 21

3.3.2.2 Research 22

3.3.2.3 Thiết kế High-Level 23

3.3.2.4 Thiết kế Low-Level 31

3.4 Kết luận chương 32

CHƯƠNG 4: KẾT QUẢ THỰC THI VÀ ĐÁNH GIÁ 33

4.1 Giới thiệu chương 33

4.2 Kết quả mô phỏng 33

4.2.1 Mục tiêu mô phỏng 33

4.2.2 Thiết lập mô phỏng 33

4.2.3 Quy trình mô phỏng 34

4.2.4 Kết quả đạt được 37

4.2.4.1 Ảnh gốc ngõ vào 37

Trang 4

4.2.4.2 Kết quả thực hiện bằng bộ lọc Sobel 39

4.2.4.3 Kết quả thực hiện bằng bộ lọc Prewitt 42

4.2.4.4 Nhận xét kết quả 45

4.3 Đánh giá kết quả 46

4.3.1 Tiêu chí đánh giá 46

4.3.2 Kết quả đánh giá 46

4.3.2.1 Đánh giá tài nguyên 46

4.3.2.2 Đánh giá công suất 48

4.3.2.3 Đánh giá chất lượng ảnh ngõ ra 50

4.4 Đánh giá đề tài 51

4.4.1 Ưu điểm 51

4.4.2 Nhược điểm và hạn chế 52

4.5 Kết luận chương 52

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 53

TÀI LIỆU THAM KHẢO 55

PHỤ LỤC 56

Trang 5

MỤC LỤC

DANH MỤC HÌNH VẼ

Hình 1.1: Ma trận pixel của bức ảnh Lena 256*256

Hình 1.2: Ảnh có độ phân giải khác nhau

Hình 1.3: Các loại ảnh khác nhau

Hình 1.4: Phép nhân chập tìm giá trị pixel trung tâm

Hình 1.5: Ảnh trước và sau khi lọc trung bình

Hình 1.6: Các loại đường biên

Hình 1.7: Ảnh trước và sau khi tách biên dùng bộ lọc SobelHình 1.8: Ảnh trước và sau khi tách biên dùng bộ lọc PrewittHình 2.1: Kiến trúc tổng quan FPGA

Hình 2.2: KIT FPGA Virtex-5 LX110T

Hình 2.3: Sơ đồ mô hình sử dụng Matlab Simulink

Hình 2.4: Quy trình thiết kế của XSG

Hình 2.5: Sơ đồ mô hình sử dụng Xilinx System GeneratorHình 3.1: Sơ đồ tổng quát hệ thống

Hình 3.2: Quy trình thiết kế

Hình 3.3: Sơ đồ module tiền xử lý ảnh

Hình 3.4: Block Image From File

Hình 3.5: Block Color Space Convertion

Hình 3.6: Block Frame Convertion

Hình 3.7: Block Unbuffer

Hình 3.8: Sơ đồ khối hậu xử lý ảnh

Hình 3.9: Khối buffer

Hình 3.10: Khối Convert 1-D to 2-D

Hình 3.11: Khối Data Type Coversion

Hình 3.12: Sơ đồ quy trình thiết kế edge detection dùng XSGHình 3.13: Sơ đồ chi tiết khối edge detection

Hình 3.14: Mặc nạ theo phương ngang

Hình 3.15: Mặc nạ theo phương dọc

Trang 6

Hình 3.16: Sơ đồ mạch khối lấy ngưỡng

Hình 3.17: Sơ đồ mạch khối lấy trị tuyệt đối

Hình 3.18: Sơ đồ mạch hoàn chỉnh thiết kế

Hình 4.1: Kết nối Board FPGA Virtex5 với máy tính thông qua JTAG.Hình 4.2: Nạp bức ảnh vào Matlab

Hình 4.3: Thiết lập mới KIT chưa có trong XSG

Hình 4.4: Cấu hình thông số cho Virtex5 xc5vlx110t-1ff1136

Hình 4.24: Khởi động công cụ XPower Analyzer

Hình 4.25: Công suất tiêu thụ khi dùng bộ lọc Sobel

Hình 4.26: Công suất tiêu thụ khi dùng bộ lọc Prewitt

Trang 7

MỤC LỤC

Trang 8

DANH MỤC BẢNG



Bảng 4.1: Uớc lượng tài nguyên Prewitt edge detectionBảng 4.2: Uớc lượng tài nguyên Sobel edge detectionBảng 4.3: Người tham gia đánh giá chất lượng tách biên

Trang 9

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

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

AASIC Application Specific Intergrated

Circuit

Vi mạch tích hợp thực hiện chứcnăng chuyên dụng

CCPLD Complex Programable Logic Devices Vi mạch phức tạp lập trình được

DDSP

DIMM

Digital Signal Processing

Dual In-line Memory Module

Xử lý tín hiệu sốRam sử dụng module bộ nhớkênh đôi

EEDK Embedded Development Kit Là công cụ để xây dựng hệ

thống có các vi xử lý nhúngtrong FPGA

FFPGA Field Programable Gate Array Mảng cổng logic lập trình được

I

IP Intellectual Property Là một sản phẩm trong thiết kế

vi mạch bao gồm Soft IP vàHard IP

JJTAG Join Test Action Group Công cụ truyền nhận dữ liệu,

debug và test hệ thốngL

LUT Look Up Table Là khối logic có thể thực hiện

bất kì hàm logic nào từ 4 đầuvào

MMII Media Independent Interface Một chuẩn giao diện dùng để kết

nối Fast EthernetP

PAL Programable Array Logic Mảng logic lập trình được

RRAM Random Acess Memory Bộ nhớ truy cập ngẫu nhiên

S

Trang 10

SRAM Stactic Random Access Memory Bộ nhớ tĩnh truy cập ngẫu nhiên

UUSB Universal Serial Bus Bus truyền nhận nối tiếp

XXSG Xinix System Generator Công cụ thiết kế phần cứng của

Xilinx

Trang 11

Nhằm thiết kế các ứng dụng đạt hiệu quả cao thì vấn đề xử lý nhằm đáp ứng

về tốc độ, thời gian thực là những yêu cầu rất quan trọng trong hầu hết các ứngdụng Để đáp ứng được các yêu cầu này thì ta phải xử lý một cách tốt nhất từng giaiđoạn trong quá trình xử lý ảnh Một trong những giai đoạn quan trọng này là tách

biên của một bức ảnh Do đó chúng tôi đã chọn đề tài “Thực thi và đánh giá thuật toán tách biên ảnh trên FPGA” Đề tài này được thực hiện trên cả phần cứng sử

dụng KIT FPGA Virtex-5XUP LX110T và phần mềm sử dụng Matlab Simulinktrên nền Xilinx System Generator Nội dung đồ án này được chia làm 4 chương:

 Chương 1: Tổng quan về xử lý ảnh số và bài toán tách biên

 Chương 2: Giới thiệu về KIT FPGA Virtex-5, phần mềm MatlabSimulink và Xilinx System Generator

 Chương 3: Xây dựng hệ thống tách biên ảnh trên FPGA

 Chương 4: Kết quả thực thi và đánh giá

Trang 12

Bảng phân công nhiệm vụ:

TRẦN NHẬT TIN

- Tìm hiểu lý thuyết về Matlab Simulink và Xilinx SystemGenerator (XSG)

- Tìm hiểu quy trình thiết kế trên XSG

- Xây dựng module Image pre-processing

- Xây dựng IP core Sobel edge detection

- Test module Image pre-processing và IP core Sobel edgedetection

- Mô phỏng trên phần cứng và phần mềm hệ thống táchbiên sử dụng bộ lọc Sobel

- Thực hiện đánh giá tài nguyên và chất lượng ảnh ngõ ra

LÊ THANH LÂM

- Tìm hiểu lý thuyết tổng quan về xử lý ảnh, FPGA

- Tìm hiểu quy trình thiết kế trên Matlab Simulink

- Xây dựng module Image post-processing

- Xây dựng IP core Prewitt edge detection

- Test module Image post-processing và IP core Prewittedge detection

- Mô phỏng trên phần cứng và phần mềm hệ thống táchbiên sử dụng bộ lọc Prewitt

- Thực hiện đánh giá công suất tiêu thụ

Trong quá trình tìm hiểu được sự chỉ bảo và giúp đỡ nhiệt tình của thầyHuỳnh Việt Thắng nên chúng tôi đã hoàn thành được đồ án này trong khoảng thờigian quy định, song là một sinh viên đang ngồi trên ghế nhà trường kiến thức cònhạn chế nên không thể trách khỏi sự thiếu sót, rất mong được sự chỉ bảo và giúp đỡcủa các thầy cô để có thể nâng cao sự hiểu biết và hoàn thiện bản thân, cũng như cónhững nhận xét về nội dung đồ án này để đề tài được hoàn thiện hơn

Qua đây chúng tôi xin chân thành cảm ơn các thầy cô giáo trong khoa Điện

Trang 13

LỜI MỞ ĐẦU

và giúp đỡ trong khoảng thời gian học tại trường Chúng tôi cũng xin gửi đến thầy

Huỳnh Việt Thắng lời biết ơn sâu sắc nhất để đáp lại sự chỉ dạy và giúp đỡ tận tình

chúng tôi trong khoảng thời gian làm đồ án tốt nghiệp

Chúng tôi xin chân thành cảm ơn!

Trang 14

CHƯƠNG 1: TỔNG QUAN XỬ LÝ ẢNH SỐ VÀ BÀI TOÁN TÁCH BIÊN 1.1 Giới thiệu chương

Xử lý ảnh số đóng vai trò rất quan trọng trong đời sống hiện nay, ta có thểgặp rất nhiều ứng dụng liên quan như trong giao thông, bảo mật, do đó để hiểu rõhơn về xử lý ảnh trong chương này sẽ trình bày một cách tổng quan về lý thuyết xử

lý ảnh bao gồm: một số khái niệm cơ bản trong xử lý ảnh, các phép xử lý ảnh số

1.2 Một số khái niệm cơ bản trong xử lý ảnh

1.2.1 Điểm ảnh

Ảnh tự nhiên là ảnh liên tục về không gian và độ sáng Để xử lý bằng máytính, ảnh cần phải được số hoá Số hoá ảnh là sự biến đổi gần đúng một ảnh liên tụcthành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng (mứcxám) Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người khôngphân biệt được ranh giới giữa chúng Mỗi một điểm như vậy gọi là điểm ảnh (PEL:Picture Element) hay gọi tắt là Pixel Trong khuôn khổ ảnh hai chiều, mỗi pixel ứngvới cặp tọa độ (x, y) Hình 1.1 mô tả các pixel của một bức ảnh

PIXEL

Hình 1.1: Ma trận pixel của bức ảnh Lena 256*256

Trang 15

CHƯƠNG 1: TỔNG QUAN VỀ XỬ LÝ ẢNH SỐ VÀ BÀI TOÁN TÁCH BIÊN

1.2.2 Độ phân giải ảnh

Định nghĩa: Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấnđịnh trên một ảnh số được hiển thị Khoảng cách giữa các điểm ảnh phải được chọnsao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cáchthích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bốtheo trục x và y trong không gian hai chiều

Độ phân giải của ảnh được biểu diễn làm hai loại:

 Độ phân dải màu: sự thay đổi màu nhỏ nhất có thể thay đổi được vàcho ta biết số màu tối đa của ảnh

 Độ phân dải không gian: chi tiết nhỏ nhất có thể thay đổi được

Với những bức ảnh có độ phân giải khác nhau được mô tả như hình 1.2 thì chấtlượng ảnh ngõ ra có sự khác nhau Những ảnh có độ phân giải cao thì bức ảnh rõràng và nét hơn

Hình 1.2: Ảnh có độ phân giải khác nhau

1.2.3 Mức xám của bức ảnh

Mỗi pixel ngoài vị trí tọa độ của nó trong ảnh thì nó còn có giá trị mức xám.Mức xám của ảnh biểu thị cường độ sáng của nó tại mỗi giá trị pixel Số mức xámcủa ảnh phụ thuộc vào không gian màu của ảnh đó Ví dụ một ảnh 8 bit thì có 256mức xám từ 0-255

Trang 16

1.2.4 Các loại ảnh

Có các loại ảnh như sau:

 Ảnh màu: được tổng hợp từ 3 màu cơ bản R, G, B trong không gian màuRGB Để tạo nên thế giới màu, người ta thường dùng 3 byte để mô tả mứcmàu, khi đó các giá trị màu khoảng 16,7 triệu

 Ảnh mức xám: là ảnh chỉ có hai màu đen trắng có giá trị mức xám của cácđiểm ảnh có thể khác nhau

 Ảnh nhị phân: là ảnh đen trắng có không gian màu là 1 bit Với bit 0 màuđen, bit 1 màu trắng

Các loại ảnh được mô tả như hình 1.3 bao gồm: ảnh màu, ảnh mức xám và ảnh nhịphân

Trang 17

CHƯƠNG 1: TỔNG QUAN VỀ XỬ LÝ ẢNH SỐ VÀ BÀI TOÁN TÁCH BIÊN

Nhân chập [14] không phải là một thuật toán xử lý ảnh, mà là phép toánthông dụng trong các thuật toán xử lý ảnh sử dụng toán tử cửa sổ Nhân chập được

sử dụng trong các bài toán tách biên (edge detection) và lọc tuyến tính (linear filter)

Nhân chập tính toán ra giá trị mới của pixel trung tâm của toán tử cửa sổ,bằng cách thực hiện phép tính với các pixel lân cận và chính pixel trung tâm Việcthực thi phép nhân chập như sau: cho một cửa sổ với pixel trung tâm chạy trên toàn

bộ frame ảnh, với mỗi cửa sổ 3x3 thu được, ta thực hiện phép toán:

1 1 1

I (i, j) (n, m).I(n, m) (1.1)

j i

Lọc trung bình thường được sử dụng đối với ảnh có nhiễu phân bố đều, ngẫunhiên độc lập với mỗi pixel, ta có thể mặt nạ sau sẽ làm giảm ảnh hưởng của nhiễuđối với pixel trung tâm bằng cách lấy trung bình cộng các pixel lân cận trong cửa sổ

Trang 18

1 1 11

Kết quả thực hiện bộ lọc trung bình được mô tả như hình 1.5

Hình 1.5: Ảnh trước và sau khi lọc trung bình

Trang 19

CHƯƠNG 1: TỔNG QUAN VỀ XỬ LÝ ẢNH SỐ VÀ BÀI TOÁN TÁCH BIÊN

1.4 Bài toán tách biên ảnh

Hình 1.6: Các loại đường biên

 Đường biên lý tưởng được định nghĩa là sự thay đổi giá trị cấp xámtại một vị trí xác định Nếu sự thay sự thay đổi cấp xám giữa các vùngtrong ảnh càng lớn thì đường biên càng dễ nhận ra Trong trường hợpnày sự thay đổi lại diễn ra tại một điểm nên đường biên có độ rộng làmột điểm ảnh và vị trí của đường biên chính là vị trí thay đổi cấp xám

 Đường biên bậc thang: là đường biên xuất hiện khi có sự thay đổi cấpxám trải rộng qua nhiều điểm ảnh Vị trí của đường biên được xemnhư vị trí chính giữa của đường nối giữa cấp xám thấp và cấp xámcao Tuy nhiên đây chỉ là đường thẳng trong toán học, từ khi ảnh được

Trang 20

kỹ thuật số hoá thì đường đó không còn là đường thẳng mà thànhnhững đường không trơn.

 Đường biên thực: là đường biên xuất hiện khi có sự thay đổi cấp xámtại nhiều điểm ảnh nhưng không trơn

1.4.2 Phương pháp Gradient tách biên ảnh

Tương tự như các phép toán làm trơn ảnh, khả năng lấy đạo hàm theo tọa độcác điểm ảnh là hết sức quan trọng Bài toán cơ bản ở đây là nếu ta dùng định nghĩatoán học về đạo hàm thì chúng ta không thể lấy đạo hàm các điểm ảnh, do một ảnh

số hóa không phải là một hàm liên tục a[x, y] theo các biến tọa độ mà chỉ là mộthàm rời rạc I [m, n] với các biến tọa độ nguyên Do đó những thuật toán mà chúng

ta trình bày ở đây chỉ có thể được xem là các xấp xỉ cho đạo hàm thật sự theo tọa độcủa ảnh liên tục ban đầu bằng cách dùng phương pháp tích chập

Phương pháp Gradient [17] là phương pháp dò biên cục bộ (phương pháp tìmbiên trực tiếp) dựa theo đạo hàm cực đại bậc nhất Gradient là một vectơ có cácthành phần biểu thì tốc độ thay đổi giá trị của điểm ảnh theo hai hướng x và y

Trang 21

CHƯƠNG 1: TỔNG QUAN VỀ XỬ LÝ ẢNH SỐ VÀ BÀI TOÁN TÁCH BIÊN

Trang 22

Bộ lọc Prewitt [12] cũng được ứng dụng nhiều trong tách biên của bức ảnh, cũnggiống như bộ lọc Sobel bộ lọc Prewitt cũng sử dụng 2 mặt nạ để tách biên của bứcảnh theo phương ngang và phương dọc.

Qua chương này ta đã đi tìm hiểu tổng quan về lý thuyết xử lý ảnh số, điều

đó giúp ta có cái nhìn cơ bản về xử lý ảnh bao gồm những khái niệm, các phươngpháp xử lý ảnh khác nhau Tạo tiền đề cho việc xây dựng thuật toán tách biên sửdụng FPGA

Trang 23

CHƯƠNG 2: GIỚI THIỆU VỀ KIT FPGA VIRTEX-5, PHẦN MỀM MATLAB SIMULINK VÀ XILINX SYSTEM GENERATOR

CHƯƠNG 2: GIỚI THIỆU VỀ KIT FPGA VIRTEX-5, PHẦN MỀM MATLAB SIMULINK VÀ XILINX SYSTEM GENERATOR

2.1 Giới thiệu chương

Trong chương này sẽ giới thiệu tổng quan về FPGA, cấu trúc KIT FPGAVirtex-5, phần mềm Simulink Matlab và công cụ Xilinx System Generator

2.2 Tổng quan về FPGA

2.2.1 Lịch sử ra đời của FPGA

FPGA [1] được thiết kế đầu tiên bởi Ross Freeman, người sáng lập công tyXilinx vào năm 1984, kiến trúc mới của FPGA cho phép tích hợp số lượng tươngđối lớn các phần tử bán dẫn vào một vi mạch so với kiến trúc trước đó là CPLD.FPGA có khả năng chứa tới từ 100.000 đến hàng vài tỷ cổng logic, trong khi CPLDchỉ chứa từ 10.000 đến 100.000 cổng logic; con số này đối với PAL, PLA còn thấphơn nữa chỉ đạt vài nghìn đến 10.000 cổng

CPLD được cấu trúc từ số lượng nhất định các khối SPLD (SimpleProgramable Logic Device) thuật ngữ chung chỉ PAL, PLA SPLD thường là mộtmảng logic AND/OR lập trình được có kích thước xác định và chứa một số lượnghạn chế các phần tử nhớ đồng bộ Cấu trúc này còn hạn chế về khả năng thực hiệnnhững hàm phức tạp và thông thường hiệu suất làm việc của vi mạch phụ thuộc vàocấu trúc cụ thể của vi mạch hơn là vào yếu tố bài toán

Kiến trúc của FPGA là kiến trúc mảng các khối cổng logic, mỗi khối này nhỏhơn nhiều nếu đem so sánh với một khối SPLD, ưu điểm này giúp FPGA có thểchứa nhiều hơn các phần tử logic và phát huy tối đa khả năng lập trình của các phần

tử logic vào hệ thống mạch kết nối Để đạt được mục đích này thì kiến trúc FPGAphải phức tạp hơn nhiều so với CPLD

Một điểm khác biệt nữa với CPLD là trong những FPGA hiện đại được tíchhợp nhiều bộ logic số học đã được tối ưu hoá hỗ trợ RAM, ROM tốc độ cao hay các

bộ nhân, bộ cộng dùng cho những ứng dụng xử lý tín hiệu số Ngoài khả năng cấutrúc lại vi mạch ở mức toàn cục, một số FPGA hiện đại còn hỗ trợ cấu trúc lại ở

Trang 24

mức cục bộ tức là khả năng cấu trúc lại một bộ phận riêng lẻ trong khi vẫn đảm báohoạt động bình thường cho các bộ phận khác.

2.2.2 Khái niệm cơ bản và cấu trúc FPGA

FPGA là vi mạch dùng cấu trúc mảng phần tử logic mà người dùng có thểlập trình đươc Kiến trúc tổng quan về FPGA được mô tả như hình 2.1

Hình 2.1: Kiến trúc tổng quan FPGA [16]

Vi mạch FPGA được cấu thành từ các bộ phận:

 Các khối logic cơ bản lập trình được (Logic Block)

Logic Block là khối chính của FPGA, khối này được cấu thành từLUT (Look Up Table) và một phần nhớ đồng bộ flip-flop LUT là khối logic

có thể thực hiện bất kì hàm logic nào từ 4 đầu vào, kết quả của hàm này tuỳthuộc 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ớ filp-flop

 Hệ thống mạng liên kết lập trình được

Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theohai phương ngang và đứng tuỳ từng loại FPGA mà các đường liên kết đượcchia thành các nhóm khác nhau

Trang 25

CHƯƠNG 2: GIỚI THIỆU VỀ KIT FPGA VIRTEX-5, PHẦN MỀM MATLAB SIMULINK VÀ XILINX SYSTEM GENERATOR

Khối vào/ra nhiều hay ít là tuỳ thuộc vào từng loại FPGA Chúng cóthể được kết nối với các thiết bị bên ngoài như LED, USB, RS232, RAM,…tuỳ thuộc vào mục đích sử dụng

 Các phần tử tích hợp sẵn

Ngoài các khối logic, tuỳ theo các loại FPGA khác nhau mà có cácphần tử tích hợp thêm khác nhau chẳng hạn như trong dòng Virtex-5 củaXilinx có chứa nhân xử lý PowerPC, DSP Slice

2.2.3 Các ứng dụng của FPGA

Ứng dụng của FPGA bao gồm: xử lý tín hiệu số, các hệ thống hàng không vũtrụ, quốc phòng, tiền thiết kế mẫu ASIC, các hệ thống điều khiển trực quan, phântích nhận dạng ảnh, nhận dạng tiếng nói, mô hình phần cứng, … Do tính linh độngcao trong quá trình thiết kế cho phép FPGA giải quyết được các bài toán phức tạp

mà trước kia chỉ thực hiện nhờ phần mềm máy tính Ngoài ra nhờ mật độ cổng logiclớn FPGA được ứng dụng cho những bài toán đòi hỏi khối lượng lớn tính toán vàdùng trong các hệ thống làm việc theo thời gian thực

2.3 Giới thiệu KIT FPGA Virtex-5

Hình 2.2 giới thiệu hình ảnh KIT Virtex5 XUP LX110T

Hình 2.2: KIT FPGA Virtex-5 LX110T

Trang 26

Virtex-5 LX110T là board mạch phát triển nền tản với bộ nhớ on-board và giao tiếpkết nối tiêu chuẩn công nghiêp XUPV5-LX110T thích hợp cho việc giảng dạy vànghiên cứu về các lĩnh vực:

Cấu hình và ngoại vi của XUPV5-LX110T:

 Xilinx Virtex-5 XC5VLX110T FPGA

 2 Xilinx XCF32P Platform Flash PROMs (32 Mbytes) phục vụ lưu trữ cấuhình dung lượng lớn

 Xilinx SystemACE Compact Flash configuration controller

 64 bit wide 256 Mbytes DDR2 small outline DIMM module compatible withEDK supported IP and software drivers

 On – board 32 bits ZBT đồng bộ SRAM và Intel P30 StrataFlash

 10/100/1000 tri-speed Ethernet PHY hỗ trợ giao tiếp MII, GMII, RGMII, andSGMII

 Điều khiển USB host và ngoại vi

 Bộ phát xung clock hệ thống lập trình được

 Stereo AC97 codec với line in, line out, headphone, microphone, và đầu cắm

âm thanh số SPDIF

 Cổng RS232, 16*2 LCD

 Các thiết bị I/O khác

Trang 27

CHƯƠNG 2: GIỚI THIỆU VỀ KIT FPGA VIRTEX-5, PHẦN MỀM MATLAB SIMULINK VÀ XILINX SYSTEM GENERATOR

2.4.1 Giới thiệu Matlab

Matlab là từ viết tắt của Matrix Laboratory, nó là một ngôn ngữ lập trình cấpcao dạng thông dịch Nó là môi trường tính toán số được thiết kế bởi công tyMathWorks Matlab cho phép thực hiện các phép tính toán số, ma trận, vẽ đồ thịhàm số hay biểu diễn thông tin (dưới dạng 2D hay 3D), thực hiện các thuật toán vàgiao tiếp với các chương trình của các ngôn ngữ khác một cách dễ dàng

2.4.2 Simulink

Simulink [5] là một công cụ mô phỏng được tích hợp sẵn trong Matlab, nógiúp ta có thể dễ dàng xây dựng các thuật toán xử lý tín hiệu một các dễ dàng thôngqua các khối (block) chức năng được thiết kế sẵn Ngoài ra nó còn tạo môi trườngthuận lợi cho việc xử lý các bài toán DSP trên phần mềm, sau đó chuyển sang phầncứng với sự hỗ trợ bằng công cụ của Xilinx được tích hợp cùng

Hình 2.3 là một ví dụng về một thiết kế sử dụng Matlab Simulink

Design and Verification

Copyright 2005-2009 The MathWorks, Inc.

Sobel Edge Detection

Mean Difference

satellite.gif R Image From File

double

>= 419 Compare

To Constant

In1 In2Out1

Compare

|u|

|u|

2-D FIR Filter I

2-D FIR Filter I

Hình 2.3: Sơ đồ mô hình sử dụng Matlab Simulink

Các kiểu dữ liệu trong Simulink:

 double: số thực với độ chính xác gấp đôi

 single: số thực với độ chính xác đơn

 int8: số nguyên có dấu 8 bit

 uint8: số nguyên không dấu 8 bit

 int16: số nguyên có dấu 16 bit

Trang 28

 uint16: số nguyên không dấu 16 bit

 int32: số nguyên có dấu 32‐bit

 uint32: số nguyên không dấu 32‐bit

2.5 Giới thiệu công cụ Xlinx System Generator

2.5.1 Giới thiệu hãng Xilinx

Xilinx là nhà phát triển hàng đầu hiện nay trong lĩnh vực chip khả trình.Được thành lập bởi Ross Freeman, Bernie Vonderschmitt, và Jim Barnett, và có trụ

sở tại thung lũng Silicon Trụ sở chính hiện nay ở San Jose , California Là thànhviên của nhóm 100 công ty hàng đầu thế giới hiện nay do tạp chí Fortune bình chọn

Xilinx là nhà phát triển FPGA, CPLD được sử dụng rộng rãi trong những ứng dụng truyền thông, tự động hóa, mật mã và các lĩnh vực khác Các sản phẩmphần cứng của Xilin gồm có các dòng CPLD: CoolRunner, các họ FPGA nhưSpartans, Virtex

2.5.2 Xilinx System Generator

Xilinx System Generator (XSG) [1] [3] là công cụ phát triển hệ thống choFPGA, cho phép thiết kế hệ thống ở dạng các khối, và hỗ trợ mô phỏng, debug, tạocode để nạp vào FPGA hoặc kết hợp vào những ứng dụng lớn hơn

Hình 2.4 mô tả quy trình chung cho việc thiết kế trên XSG

Hình 2.4: Quy trình thiết kế của XSG [13]

Trang 29

CHƯƠNG 2: GIỚI THIỆU VỀ KIT FPGA VIRTEX-5, PHẦN MỀM MATLAB SIMULINK VÀ XILINX SYSTEM GENERATOR

XSG [7] được xây dựng như một Blockset của Simulink trong Matlab Do

đó, XSG thừa hưởng tất cả các ưu điểm của Simulink trong việc xây dựng hệ thống

và mô phỏng XSG còn sử dụng thư viện của Logic Core để xây dựng các block củamình Trong thư viện của XSG có tất cả các khối thực hiện các chức năng từ cơ bảnnhư cộng, trừ, nhân, các khối logic, cho đến những thiết kế phức tạp hơn như cácDSP, bộ lọc số, nhân chập, UART , các bộ nhớ tích hợp: Single Port, DualPortRam, FIFOs, các thanh ghi

XSG còn cho phép người thiết kế tạo ra các khối để thực hiện những nhiệm

vụ riêng bằng khối Black Box, tại đây người thiết kế sẽ tạo ra các entity và cài mãcủa nó vào Black Box để tạo ra các thiết kế riêng của mình Những thiết kế củaXSG có thể được dịch ra nhiều kiểu dữ liệu, có thể thành file *.bit để nạp ngay vàophần cứng, hoặc thành các thiết kế để ghép vào một hệ thống lớn hơn Với việc kếthợp với Mathwork để xây dựng XSG, Xilinx đã làm cho việc thiết kế hệ thống trênnền FPGA của mình trở nên thuận tiện và đơn giản hơn rất nhiều đối với người làm

kỹ thuật Trong đồ án này, chúng tôi đã sử dụng XSG để xây dựng toàn bộ phầnthuật toán xử lý ảnh tách biên cho thiết kế của mình

XSG cung cấp 3 dạng dữ liệu số học được sử dụng nhiều nhất trong DSP: sốphẩy động, số phẩy tĩnh có dấu và không dấu

Thư viện Simulink của XSG chứa 2 thư viện: Xilinx Blocksets và XilinxReference Blocksets Trong đó thư viện “Xilinx Blocksets” chứa các khối chứcnăng đơn giản như: thanh ghi, bộ cộng, delay, các hàm toán học đơn giản, ROM,các bộ lọc FIR, bộ nhớ đệm FIFO, … Thư viện “Xilinx Reference Blocksets” chứacác khối chuẩn, các khối này tương đối phức tạp và có thể sử dụng với các mục đíchxác định khác nhau như: các bộ tính FFT, DFT, … các khối này đưa ra các sự trừutượng số học, logic, bộ nhớ và xử lý tín hiệu phù hợp cho thực hiện các hệ thốngDSP trong FPGA Bổ sung vào thư viện này XSG còn cung cấp sự thực hiện từnghàm và phần mềm tạo mã dịch các hệ thống con mà đã kết hợp các khối XSG vào

mô tả phần cứng của mô hình

Trang 30

-13 Constant1

1 Constant

a

b a + b

z-1AddSub

Sy stem Generator

Hình 2.5: Sơ đồ mô hình sử dụng Xilinx System Generator

2.6 Kết luận chương

Qua chương này ta đã có cái nhìn một cách tổng quan về FPGA nói chung vàKIT FPGA Virtex-5 nói riêng, đồng thời biết được công dụng của Matlab cũng nhưXilinx System Generator Điều đó giúp ta có thể dễ dàng tìm hiểu, thực thi, và đánhgiá một hệ thống DSP trên cả phần cứng và phần mềm một cách dễ dàng

Trang 31

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG TÁCH BIÊN ẢNH TRÊN FPGA

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG TÁCH BIÊN ẢNH TRÊN FPGA 3.1 Giới thiệu chương

Trong chương này ta sẽ tiến hành xây dựng hệ thống xử lý ảnh tách biên trênXSG thông qua việc mô tả hệ thống nhằm hiểu chức năng của hệ thống, sau đó tiếnhành thiết kế hệ thống theo quy trình thiết kế số

3.2.2 Sơ đồ tổng quát hệ thống

Ta mô tả hệ thống xử lý ảnh tách biên theo sơ đồ tổng quát như hình 3.1

pre-proscessing unit

Edge detection module

Image processing unit

Trang 32

 Image pre-processing unit: khối tiền xử lý ảnh, được thực hiện trên Matlab.

 Edge detection module: khối IP core của thiết kế, thực hiện trên XSG

 Image post-processing unit: khối hậu xử lý ảnh, thực hiện trên Matlab

 Image viewer: xem kết quả thiết kế

3.3 Thiết kế hệ thống

3.3.1 Quy trình thiết kế

Hình 3.2: Quy trình thiết kế

 Request: yêu cầu đặt ra ban đầu cho thiết kế mà ta cần phải giải quyết

 Research: tìm hiểu tổng quan về thiết kế, nguyên lý hoạt động

 High-level Design: sơ đồ khối tổng quát của tín hiệu, các ngõ vào ra của thiếtkế

 Low-level Design: vẽ sơ đồ mạch chi tiết cho từng module

 Coding: viết RTL code cho thiết kế

Các công cụ hỗ trợ cho việc thiết kế số:

 Microsoft Word: specification description, user guide

 Microsoft Visio: design structure

 Microsoft Excel: memory and register map

 Notepad++ or EmEditor: Coding

Trang 33

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG TÁCH BIÊN ẢNH TRÊN FPGA

 XEmacs: Auto-connection

 LEDA (Synopsys): RTL code checker

 Quartus (Altera), ISE Design Suite (Xilinx), XSG (Xilinx): Checking,Compiling and Simulating on FPGA

3.3.2 Nội dung thiết kế

3.3.2.1 Request

Trong phần này sẽ đưa ra yêu cầu bài toán là “Thực thi và đánh giá thuật toán táchbiên ảnh trên FPGA” Do đó khi có yêu cầu này mình phải lên các phương án khácnhau để có thể xử lý được bài toán

 Phương án 1: thực hiện bằng phần mềm ta có 2 cách

 Cách 1: sử dụng Matlab để có thể giải quyết bài toán này, có thể lậptrình trong môi trường của Matlab hoặc có thể sử dụng các blocktrong Simulink

3.3.2.2 Research

Bài toán đặt ra là ta phải giải quyết vấn đề tách biên của bức ảnh Do đó ta phải đitìm hiểu nguyên lý hoạt động của hệ thống, cơ chế tách biên và cách thực hiện trênphần mềm và phần cứng

 Nguyên lý hoạt động của hệ thống:

Trang 34

 Đầu tiên ta đưa một bức ảnh cần xử lý vào khối Image source, bứcảnh này là bất kì có thể là ảnh màu hay ảnh gray với bất kì kích thướcnào Tuy nhiên nếu kích thước bức ảnh nhỏ hơn thì tốc đọ xử lý sẽnhanh hơn và ngược lại.

 Tiếp theo bức ảnh ngõ vào sẽ được chuyển thành ảnh gray để xử lý

 Sau khi được ảnh gray ta sẽ đưa ảnh này vào khối Image processing unit Bức ảnh sẽ được tiền xử lý dưới dạng các ma trậnkhác nhau

pre- Sau khi đã tiền xử lý ta tiếp tục đưa vào khối Edge detection modulekhối này bao gồm các mặt nạ được thiết kế bằng các khối block củaXSG làm nhiệm vụ nhân chập ma trận bức ảnh ngõ vào với ma trậnmặt nạ Sau đó lấy ngưỡng để tạo giá trị pixel là 0 hoặc 1 để tạo điểmbiên đồng thời giảm nhiễu

 Sau khi các ma trận ảnh được xử lý xong trong khối Edge detectionmodule sẽ tiếp tục đưa qua khối Image post-processing unit để hậu xử

lý ma trận ảnh

 Cuối cùng là xuất kết quả thông qua khối Image viewer

 Cơ chế tách biên: theo như phần đề cập trong chương 1 ta đã biết để táchbiên của bức ảnh ta dùng phương pháp Gradient với 2 bộ lọc Sobel vàPrewitt theo phép nhân chập

 Cách thực hiện trên phần mềm, phần cứng

 Phần mềm: dùng các block trong Simulink đề xây dựng thuật toán

 Phần cứng: dùng các blocksets trong XSG để xây dựng, và dùngFPGA Virtex-5 XUP LX110T để thực hiện

3.3.2.3 Thiết kế High-Level

High-level design: thiết kế mức cao trong phần này sẽ chia thiết kế thành nhữngmodule con sau đó sẽ xác định sơ đồ khối cho từng module

 Image source: Là các bức ảnh ngõ vào bất kì

 Image pre-processing unit

Trang 35

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG TÁCH BIÊN ẢNH TRÊN FPGA

 Sơ đồ khối module Image pre-processing unit như hình 3.3

Hình 3.3: Sơ đồ module tiền xử lý ảnh

 Phân tích các khối trong sơ đồ

 Image From File: block trong Simulink dùng để nhập bức ảnh ngõ vào Ta có thể nhập bất kì bức ảnh nào, tuy nhiên để đảm bảo tốc

độ xử lý nên trong đề tài này ta chỉ dùng những bức ảnh có kích thước 512*512 trở xuống

Hình 3.4: Block Image From File

Trang 36

 Color Space Convertion: chuyển một bức ảnh ngõ vào bất kì thànhảnh gray

Hình 3.5: Block Color Space Convertion

 Transpose: dùng để chuyển vị ma trận ảnh ngõ vào, nghĩa làchuyển hàng thành cột và cột thành hàng

 Convert 2D-to-1D: chuyển ma trận ảnh ngõ vào 2D thành 1D

 Frame Conversion: thiết lập mode lấy mẫu của tín hiệu ngõ ra

Hình 3.6: Block Frame Convertion

Ngày đăng: 24/06/2016, 22:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] S. Gupta and S. G. Mazumdar, “Sobel edge detection algorithm,” vol. 2, no. 2, pp. 1578–1583, 2013 Sách, tạp chí
Tiêu đề: Sobel edge detection algorithm
[4] R. Maini and J. S. Sohal, 2006. “Performance Evaluation of Prewitt Edge Detector for Noisy Images” Vol. 6, pp. 39, 42, GVIP Journal Sách, tạp chí
Tiêu đề: Performance Evaluation of Prewitt Edge Detector for Noisy Images
[7] C. S. Panda, “Filtering corrupted image and edge detection in restored grayscale image using derivative filters,”no.3, pp.105 Sách, tạp chí
Tiêu đề: Filtering corrupted image and edge detection in restored grayscale image using derivative filters
[8] “Modeling and Implementation of DSP FPGA Solutions", Robert D. Turney, Chris Dick1, David B Sách, tạp chí
Tiêu đề: Modeling and Implementation of DSP FPGA Solutions
[9] “Optimal Operators in Digital Image Processing” by Scharr, Hanno, PhD thesis, 2000 Sách, tạp chí
Tiêu đề: Optimal Operators in Digital Image Processing
[10] S. Panda, “Filtering corrupted image and edge detection in restored grayscale image using derivative filters,”no.3, pp.105 Sách, tạp chí
Tiêu đề: Filtering corrupted image and edge detection in restored grayscale image using derivative filters
[5] Simulink, http://www.mathworks.com/products/simulink/ Link
[1] Xilinx System Generator User’s Guide, downloadable from; http:// www. Xilinx.com Khác
[6] Xilinx Inc., “System Generator for Digital Signal Processing Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w