1. Trang chủ
  2. » Giáo Dục - Đào Tạo

nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga

57 69 0

Đ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 57
Dung lượng 2,68 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

LỜI CAM ĐOANTôi xin cam đoan rằng đồ án tốt nghiệp: NGHIÊN CỨU CÔNG NGHỆ VI MẠCH KHẢ TRÌNH VÀ ỨNG DỤNG THIẾT KẾ BỘ LỌC TRONG XỬ LÝ ẢNH SỬ DỤNG KIT FPGA là công trình nghiên cứu của bản t

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN

THÔNG VIỆT HÀN KHOA CÔNG NGHỆ KỸ THUẬT MÁY TÍNH VÀ ĐIỆN TỬ

MSSV : 17CE047

Đà Nẵng, ngày 15 tháng 12 năm 2021

Trang 2

Trong suốt khóa học (2017-2022) tại Trường Công Nghệ Thông Tin và Truyền Thông Việt Hàn, quý Thầy Cô đã truyền đạt cho em rất nhiều kiến thức bổ ích đặc biệt là các thầy cô trong khoa Kỹ Thuật Máy Tính và Điện Tử

đã truyền đạt cho chúng em rất nhiều kiến thức về chuyên ngành rất cần thiết cho chúng em sau khi ra trường Đặc biệt là trong thời gian làm đề tài, em đã học hỏi được rất nhiều kiến thức thực tế từ Thầy hướng dẫn nên đã hoàn thành đề tài trong thời gian quy định

Sau những gì đã học được, thực hiện được Em xin gửi lời biết ơn chân thành đến gia đình, quý Thầy Cô trong khoa Kỹ Thuật Máy Tính và Điện Tử Đặc biệt là Thầy TS.Dương Hữu Ái đã hướng dẫn, dìu dắt trong suốt quá trình làm đồ án tốt nghiệp Em cũng xin cảm ơn các anh chị, các bạn sinh viên trong khoa đã giúp đỡ rất nhiều như: thiết bị nghiên cứu, tài liệu, phần mềm, đóng góp ý kiến … để em hoàn thành được đề tài.

Em xin cảm ơn tất cả!

Lời Cảm Ơn !

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan rằng đồ án tốt nghiệp: NGHIÊN CỨU CÔNG NGHỆ VI MẠCH KHẢ TRÌNH VÀ ỨNG DỤNG THIẾT KẾ BỘ LỌC TRONG XỬ LÝ ẢNH

SỬ DỤNG KIT FPGA là công trình nghiên cứu của bản thân mình Những phần có

sử dụng tài liệu tham khảo có trong đồ án đã được liệt kê và nêu rõ ra tại phần tàiliệu tham khảo Đồng thời những số liệu hay kết quả trình bày trong đồ án đềumang tính chất trung thực, không sao chép, đạo nhái

Những nội dung trong luận văn này là do tôi/nhóm thực hiện dưới sự

hướng dẫn trực tiếp của Thầy TS Dương Hữu Ái

Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng và trung

thực tên tác giả, tên công trình, thời gian, địa điểm công bố

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo hoặc không đúng

sự thật, tôi/nhóm xin chịu hoàn toàn trách nhiệm

Đà Nẵng, ngày 15 tháng 12 năm 2021

Ký tên

Trần Cao Thông

Trang 4

MỤC LỤC

Lời Cảm Ơn ! 2

LỜI CAM ĐOAN 2

MỤC LỤC 4

Danh mục viết tắt 6

Danh mục hình ảnh 7

Chương 1 GIỚI THIỆU 8

1.1 LÝ DO CHỌN ĐỀ TÀI 8

1.2 MỤC TIÊU VÀ NHIỆM VỤ NGHIÊN CỨU 9

1.3 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 9

1.4 PHƯƠNG PHÁP NGHIÊN CỨU 9

1.5 KẾT QUẢ ĐẠT ĐƯỢC 9

1.6 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 10

1.7 NỘI DUNG ĐỒ ÁN 10

Chương 2 CƠ SỞ LÝ THUYẾT 11

2.1 TÌM HIỂU VỀ CÔNG NGHỆ VI MẠCH KHẢ TRÌNH FPGA 11

2.1.1 Khái niệm về FPGA 11

2.1.2 Tại sao lại sử dụng FPGA 12

2.1.3 Kiến trúc FPGA 14

2.1.4 Nguyên lý hoạt động của FPGA 15

2.1.5 Các loại FPGA 15

2.1.6 Ứng dụng của FPGA 16

2.2 TÌM HIỂU VỀ NGÔN NGỮ LẬP TRÌNH PHẦN CỨNG VERILOG 17

2.2.1 Giới thiệu 17

2.2.2 Kiểu dữ liệu 18

2.2.3 Mô tả 20

2.2.4 Cấu trúc chương trình 21

Trang 5

2.3 GIỚI THIỆU VỀ XỬ LÝ ẢNH 22

2.3.1 Các khái niệm cơ bản về ảnh 22

2.3.2 Cách phân loại ảnh 23

2.3.3 Khái niệm về xử lý ảnh 24

2.3.4 Ứng dụng của xử lý ảnh 24

2.3.5 Các giai đoạn trong xử lý ảnh 25

2.4 TÌM HIỂU VỀ PHƯƠNG PHÁP LỌC BIÊN ẢNH SỐ 27

2.4.1 Giới thiệu chung 27

2.4.2 Một số phương pháp phát hiện biên 29

2.5 GIỚI HIỆU VỀ CÔNG CỤ LẬP TRÌNH VIVADO 31

2.5.1 Tìm hiểu về Vivado 31

2.5.2 Cài đặt và sử dụng Vivado 32

2.6 GIỚI THIỆU VỀ BOARD VIRTEX-7 FPGA 42

2.6.1 Mô tả sản phẩm 42

2.6.2 Tính năng 43

2.6.3 Sơ đồ khối 44

Chương 3 THIẾT KẾ VÀ KẾT QUẢ THỰC HIỆN 45

3.1 TOÁN TỬ SOBEL VÀ ỨNG DỤNG VÀO PHÁT HIỆN CẠNH BIÊN .45 3.2 SƠ ĐỒ KHỐI 46

3.3 KẾT QUẢ THỰC HIỆN 46

3.4 KẾT QUẢ THỰC NGHIỆM 46

Chương 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 47

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

5.2 KẾT LUẬN 47

PHỤ LỤC 51

TÀI LIỆU THAM KHẢO 56

Trang 6

Danh mục viết tắt

VHDL VHSIC-HDL, Very High-Speed Integrated Circuit

Hardware Description Language

Trang 7

Danh mục hình ảnh

Hình 1: FGPA là gì? 11

Hình 2: Kiến trúc FPGA 14

Hình 3: Cấu trúc chương trình Verilog 21

Hình 4: Ví dụ về cấu trúc chương trình Verilog 22

Hình 5: Xử Lý Ảnh 24

Hình 6: Khôi phục ảnh bằng xử lý ảnh 25

Hình 7:Một số kiểu đường biên thông dụng 28

Hình 8: Sử dụng các vùng ảnh để tìm đường biên 28

Hình 9: Vivado 31

Hình 10:Download vivado 32

Hình 11:Cài đặt vivado 33

Hình 12:Cài đặt vivado 33

Hình 13:Cài đặt vivado 34

Hình 14:Cài đặt vivado 35

Hình 15:Tạo dự án vivado 35

Hình 16:Tạo dự án vivado 36

Hình 17:Tạo dự án vivado 36

Hình 18:Tạo dự án vivado 37

Hình 19:Tạo dự án vivado 38

Hình 20:Tạo dự án vivado 38

Hình 21:Tạo dự án vivado 39

Hình 22:Tạo dự án vivado 40

Hình 23:Tạo dự án vivado 40

Hình 24:Tạo dự án vivado 41

Hình 25:Tạo dự án vivado 41

Hình 26:Tạo dự án vivado 42

Hình 27: Board Virtex-7 VC707 43

Hình 28: Sơ đồ khối 44

Trang 8

Chương 1 GIỚI THIỆU

 Phát hiện biên của ảnh là một trong những nhiệm vụ quan trọng trong xử lýảnh Nhận dạng ảnh dùng máy tính liên quan tới việc nhận dạng và phân loạicác đối tượng trong bức ảnh do đó phát hiện biên là một công cụ quan trọng.Phát hiện biên sẽ làm giảm một cách đáng kể khối lượng dữ liệu cần xử lý vàloại bỏ các thông tin không cần thiết trong khi vẫn đảm bảo các thuộc tínhquan trọng về cấu trúc của ảnh

 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 những yêu cầu này thì FPGA là một sự lựa chọn hoànhảo

 Field-programmable gate array (FPGA) là một mạch tích hợp dùng cấu trúcmảng phần tử logic mà người dùng có thể lập trình được

 FPGA có tốc độ xử lý nhanh, có thể cung cấp độ trễ thấp hay độ trễ xác địnhcho các ứng dụng thời gian thực như xử lý hình ảnh, video bằng cách nhậptrực tiếp hình ảnh hoặc video vào FPGA, bỏ qua CPU FPGA cũng có thểđáp ứng nhiều chức năng giúp mang lại hiệu quả cao về năng lượng FPGA

có thể sử dụng một phần FPGA cho một chức năng thay vì toàn bộ chip- điều

đó cho phép FPGA lưu trữ hoặc thưc hiện nhiều chức năng song song

Trang 9

 FPGA cũng có những phần mềm chuyên dụng giúp người dùng có thể nhanhchóng tiếp cận và sử dụng.

1.2 MỤC TIÊU VÀ NHIỆM VỤ NGHIÊN CỨU

 Tìm hiểu về xử lý ảnh số: cấu trúc ảnh số, lọc ảnh số, ứng dụng và cácphương pháp và thuật toán nâng cao chất lượng ảnh số

 Tìm hiểu về công nghệ vi mạch khả trình (cách vận hành, ưu nhược điểm,ứng dụng thực tế…) và tìm hiểu về ngôn ngữ lập trình mô tả phần cứngVerylog và phần mềm lập trình Vivado Nghiên cứu về các bo mạch pháttriển FPGA và cách thức nạp/ chạy chương trình trên bo mạch FPGA

 Cài đặt thuật toán lọc biên ảnh số bằng ngôn ngữ mô tả phần cứng và môphỏng được thuật toán lọc biên ảnh số trên phần mềm vivado Cài đặt vàthực thi được bộ lọc biên ảnh số trên KIT FPGA

1.3 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

 Công nghệ FPGA: Ứng dụng, các phần mềm và phần cứng liên quan

 Xử lý ảnh: Cấu trúc, thuật toán và các phương pháp lọc ảnh

 Ứng dụng xử lý ảnh vào công nghệ FPGA

1.4 PHƯƠNG PHÁP NGHIÊN CỨU

 Bước 1: Nghiên cứu lý thuyết

 Bước 2: Phát triển chương trình

 Bước 3: Thực thi thử nghiệm

 Bước 4: Đánh giá kết quả

Trang 10

1.5 KẾT QUẢ ĐẠT ĐƯỢC

 Nghiên cứu và phát triển chương trình xử lý ảnh trên nền tảng FPGA

 Mô Phỏng được trên phần mềm Vivado

 Cài đặt và thực thi được bộ lọc biên ảnh số trên KIT FPGA và ghép nốimáy tính để đưa ra kết quả

1.6 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

 Ý nghĩa khoa học:

o 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 quantrọng trong hầu hết các ứng dụng

o Nên trong đề tài này, em ứng dụng xử lý ảnh vào FPGA để phục

vụ nhu cầu đó

 Ý nghĩa thực tiễn:

o Tiếp cận và nhanh chóng công nghệ FPGA và làm chủ được công

nghệ nhận dạng và xử lý ảnh

o Thiết kế bộ loc hình ảnh trên FPGA làm nâng cao khả năng và tốc

độ xử lý hình ảnh và giảm thiểu quá trình trung gian

o Làm giảm một cách đáng kể khối lượng dữ liệu cần tính toán, chỉ

giữ lại một số ít những thông tin cần thiết đồng thời vẫn bảo toànđược những cấu trúc quan trọng

1.7 NỘI DUNG ĐỒ ÁN

 Chương 1: Giới thiệu tổng quan đề tài

 Chương 2: Tìm hiểu lý thuyết của FPGA (cách vận hành, ưu nhược

điểm, ứng dụng thực tế…) và tìm hiểu về ngôn ngữ lập trình mô tả phần

cứng Verylog và phần mềm lập trình Vivado Tìm hiểu xử lý ảnh (cấu

Trang 11

trúc ảnh số, lọc ảnh số, ứng dụng và các phương pháp và thuật toán

nâng cao chất lượng ảnh số)

 Chương 3: Đi sâu vào phân tích và thực hiện thuật toán để xử lý hình

ảnh trên FPGA, tiến hành nạp code và chạy kết quả Phân tích so sánh

với ảnh được xử lý bằng phần mềm phần mềm matlab

 Chương 4: Kết luận và hướng phát triển của đề tài

Chương 2 CƠ SỞ LÝ THUYẾT

2.1 TÌM HIỂU VỀ CÔNG NGHỆ VI MẠCH KHẢ TRÌNH FPGA

2.1.1 Khái niệm về FPGA

2.1.1.1 Lịch sử FPGA.

FPGA đượ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 Tiền thân trước đó của FPGA chính là CPLD CPLD đượccấu trúc từ số lượng nhất định các khối SPLD (Simple programmable devices, thuậtngữ chung chỉ PAL, PLA) SPLD thường là một mảng logic AND/OR lập trìnhđược có kích thước xác định và chứa một số lượng hạn chế các phần tử nhớ đồng bộ(clocked register) Cấu trúc này hạn chế khả năng thực hiện những hàm phức tạp vàhiệu suất không cao

Kiến trúc của FPGA là kiến trúc mảng các khối logic, FPGA có khả năngchứa tới từ 100.000 đến hàng vài tỷ cổng logic, trong khi CPLD chỉ chứa từ 10.000đến 100.000 cổng logic Một điểm khác biệt với CPLD là trong những FPGA hiệnđại được tích hợp nhiều những bộ logic số học đã sơ bộ tối ưu hóa, hỗ trợ RAM,ROM, tốc độ cao, hay các bộ nhân cộng (multiplication and accumulation, MAC),thuật ngữ tiếng Anh là DSP slice dùng cho những ứng dụng xử lý tín hiệu số DSP

Ngoài khả năng tái cấu trúc vi mạch toàn cục, một số FPGA hiện đại còn hỗtrợ tái cấu trúc cục bộ, tức là khả năng tái cấu trúc một bộ phận riêng lẻ (partialconfiguration) trong khi vẫn đảm bảo hoạt động bình thường cho các bộ phận khác

Trang 12

2.1.1.2 FPGA là gì?

Hình 1: FGPA là gì?

Field-programmable gate array (FPGA) là một mạch tích hợp bao gồm cáckhối phần cứng bên trong với các kết nối liên kết có thể lập trình cho người dùng đểtùy chỉnh hoạt động cho một ứng dụng cụ thể Các kết nối liên kết có thể dễ dàngđược lập trình lại, cho phép FPGA thích ứng với các thay đổi đối với thiết kế hoặcthậm chí hỗ trợ một ứng dụng mới trong suốt thời gian hoạt động của bộ phận

FPGA có nguồn gốc từ các thiết bị trước đó như bộ nhớ chỉ đọc có thể lậptrình (PROM) và thiết bị logic có thể lập trình (PLD) Các thiết bị này có thể đượclập trình tại nhà máy hoặc tại hiện trường, nhưng chúng sử dụng công nghệ cầu chì(do đó, cụm từ “đốt một PROM”) và không thể thay đổi sau khi được lập trình.Ngược lại, FPGA lưu trữ thông tin cấu hình của nó trong một phương tiện có thể lậptrình lại như RAM tĩnh (SRAM) hoặc bộ nhớ flash Các nhà sản xuất FPGA baogồm Intel, Xilinx, Lattice Semiconductor, Microchip Technology và Microsemi

2.1.2 Tại sao lại sử dụng FPGA

 Thứ nhất, do FPGA có kiến trúc mảng phần tử logic nên có thể thực thi songsong So với vi điều khiển hoặc CPU phải thực thi mã lệnh theo dạng tuần

tự Như vậy với FPGA, chúng ta có thể tăng hiệu suất/năng suất xử lý của hệthống, hoặc những ứng dụng đòi hỏi phải xử lý tốc độ cao hoặc dùng trongcác hệ thống làm việc theo thời gian thực

Trang 13

 Thứ hai, vì có thể cấu hình, lập trình lại được, nên FPGA dễ dàng mở rộngcác ngoại vi cũng như giao tiếp với nhiều thiết bị hơn mà các MCU hoặcASIC lại hạn chế về điểm này.

 Thứ ba, nhìn chung ASIC/ASSP có hiệu suất cao hơn nếu xét về mặt tiêuthụ công suất và số lượng cổng Nhưng nếu chỉ cần thực thi một chức năngnhỏ nào đó, một chip ASIC/ASSP có thể đòi hỏi công suất tiêu thụ lớn hơn

và nhiều cổng hơn thực tế yêu cầu Với FPGA, firmware có thể xác địnhđược “kích cỡ” của ứng dụng, từ đó giảm số cổng và công suất cần tiêu thụ

 Thứ tư, nếu xét về giá thành, FPGA không thể nào so sánh được với ASIChay SoC, nhưng bù lại, với khả năng tái cấu hình kiến trúc, FPGA đóng vàitrò vô cùng to lớn trong việc giảm giá thành và thời gian chế tạo ASIC Để

rõ hơn, chúng ta cần phải biết quy trình thiết kế của hai công nghệ này.FPGA và ASIC đều phải trải qua hai giai đoạn: Front End (ý tưởng, thiết kế

ở mức logic sử dụng các ngôn ngữ mô tả phần cứng, kiểm tra mô phỏngbằng phần mềm, …) và Back End (kiểm tra timing đảm bảo thiết kế sẽ hoạtđộng ở tần số yêu cầu, layout chip, …) Ở khâu backend này, với FPGA, cácgiai đoạn sẽ được làm tự động bằng phần mềm của nhà sản xuất FPGA vàtạo ra 1 file bitstream để nạp xuống FPGA và chạy thử nghiệm Còn vớiASIC, thì back end cần tốn nhân lực và thời gian lâu hơn Sau đó, toàn bộthiết kế đó được gửi tới nhà máy sản xuất chip (vd như Intel, TSMC, …) đểlàm ra chip mẫu với giá thành vài triệu đô la Tiếp đến là quá trình test chiptrong môi trường thực, nếu thất bại thì phải thực hiện lại từ đầu như qui trìnhtrên và vài triệu đô trước đó xem như vứt sọt rác Nhưng với FPGA, khôngnhững giúp rút ngắn thời gian mà còn giảm tối đa chi phí nghiên cứu, thiết

kế có thể thử nghiệm trực tiếp trên FPGA gần với môi trường ASIC thựcnhất Khả năng tái cấu hình cho phép bạn sửa đi sửa lại thiết kế cho đến khiđạt yêu cầu mà không tốn một xu nào cho nhà sản xuất chip

Trang 14

2.1.3 Kiến trúc FPGA

Hình 2: Kiến trúc FPGA

 Khối logic có thể lập trình: Các khối logic có thể được hìnhthành từ hàng nghìn bóng bán dẫn đến hàng triệu bóng bándẫn Chúng thực hiện các chức năng logic theo yêu cầu củathiết kế và bao gồm các thành phần logic như cặp bóng bándẫn, bảng tra cứu (LUT), và Logic điều khiển và mang (flipflops và bộ ghép kênh)

 Khối I / O có thể lập trình: Chúng kết nối các khối logic vớicác thành phần bên ngoài thông qua các chân giao diện

 Tài nguyên kết nối có thể lập trình: Chúng là các kết nối điện

có thể lập trình (được đặt sẵn theo chiều dọc và chiều ngang)cung cấp đường dẫn định tuyến cho các khối logic có thể lậptrình được Các đường dẫn định tuyến chứa các đoạn dây có

độ dài khác nhau có thể được kết nối với nhau thông qua các

Trang 15

công tắc lập trình điện Mật độ FPGA phụ thuộc vào số lượngphân đoạn được sử dụng cho các đường dẫn định tuyến.

2.1.4 Nguyên lý hoạt động của FPGA

 FPGA bao gồm các mô-đun logic được kết nối bằng các kênh định tuyến.Mỗi mô-đun được tạo thành từ một bảng tra cứu có thể lập trình được dùng

để kiểm soát các phần tử mà mỗi ô bao gồm và để thực hiện các chức nănglogic của các phần tử tạo nên ô Ngoài bảng tra cứu, mỗi ô chứa các bộ cộngxếp tầng cho phép thực hiện việc bổ sung Phép trừ cũng có thể được thựchiện bằng cách thay đổi các trạng thái logic của đầu vào Ngoài ra, còn cócác thanh ghi (phần tử logic được sử dụng để thực hiện các chức năng bộnhớ đơn giản nhất) và bộ ghép kênh (phần tử chuyển mạch)

 FPGA cũng có thể bao gồm các bộ nhớ động và tĩnh trên chip, tùy thuộc vàokiểu máy cụ thể của nhà sản xuất Ngoài ra, trong FPGA, bạn có thể tìm thấycác thành phần sẵn sàng, chẳng hạn như lõi CPU, bộ điều khiển bộ nhớ, bộđiều khiển USB hoặc thẻ mạng Các thành phần này phổ biến đến mứckhông cần phải triển khai chúng trong cấu trúc FPGA Thay vào đó, bạn cóthể sử dụng một thành phần đã được sản xuất sẵn

2.1.5 Các loại FPGA

 Kiến trúc định tuyến ảnh hưởng đến mật độ và hiệu suất của FPGA Dựa trên

sự sắp xếp bên trong của các khối, FPGA có thể được phân loại thành baloại:

o Mảng đối xứng: Cách sắp xếp này bao gồm các khối logic được sắp xếptheo hàng và cột của ma trận và kết nối các tài nguyên giữa chúng vớinhau Ma trận đối xứng này được bao quanh bởi các khối I / O kết nối nóvới thế giới bên ngoài

o Kiến trúc dựa trên hàng: Nó xen kẽ các hàng tài nguyên kết nối có thể lậptrình với các hàng khối logic trong khi các khối Đầu vào / Đầu ra nằm ở

Trang 16

ngoại vi của các hàng Một hàng có thể được kết nối với các hàng liền kềthông qua liên kết dọc.

o PLD phân cấp: Chúng được thiết kế theo cách phân cấp với cấp cao nhấtchỉ chứa các khối logic và các kết nối liên kết Mỗi khối logic chứa một

số mô-đun logic Và mỗi mô-đun logic có các phần tử chức năng tổ hợpcũng như tuần tự

 Dựa trên loại công nghệ lập trình, FPGA có thể được phân thành ba loại:

o FPGA dựa trên SRAM: Các tế bào RAM tĩnh điều khiển bóng bán dẫntruyền, cổng truyền hoặc bộ ghép kênh Chúng có thể được lập trình lạikhi thiết kế phát triển, nhưng khi tắt nguồn, chương trình sẽ bị mất vàchúng cần được cấu hình khi bắt đầu Do đó, chúng cần một bộ nhớ ngoài

để lưu trữ chương trình

o FPGA dựa trên chống sử dụng: Chúng sử dụng công nghệ CMOS chống

sử dụng và một khi FPGA đã được lập trình, nó không thể được lập trìnhlại Họ giữ lại chương trình của họ khi tắt nguồn

o FPGA dựa trên Flash: Chúng sử dụng các ô cổng nổi làm công tắc để cảithiện hiệu quả khu vực Họ không bị mất thông tin khi thiết bị bị sậpnguồn Công nghệ này không cần bộ nhớ ngoài để lưu trữ chương trình,nhưng chúng không thể được lập trình lại trong thời gian vô hạn do tích

tụ điện tích trong oxit

2.1.6 Ứng dụng của FPGA

 Nhiều ứng dụng dựa vào việc thực hiện song song các hoạt động giống hệtnhau; khả năng định cấu hình các CLB của FPGA thành hàng trăm hoặchàng nghìn khối xử lý giống nhau có các ứng dụng trong xử lý hình ảnh, trítuệ nhân tạo (AI), bộ tăng tốc phần cứng trung tâm dữ liệu, mạng doanhnghiệp và hệ thống hỗ trợ lái xe nâng cao trên ô tô (ADAS)

 Nhiều lĩnh vực ứng dụng này đang thay đổi rất nhanh khi các yêu cầu pháttriển và các giao thức và tiêu chuẩn mới được áp dụng FPGA cho phép cácnhà sản xuất triển khai các hệ thống có thể được cập nhật khi cần thiết

Trang 17

 Một ví dụ điển hình về việc sử dụng FPGA là tìm kiếm tốc độ cao: Microsoftđang sử dụng FPGA trong các trung tâm dữ liệu của mình để chạy các thuậttoán tìm kiếm Bing FPGA có thể thay đổi để hỗ trợ các thuật toán mới khichúng được tạo ra Nếu nhu cầu thay đổi, thiết kế có thể được thay thế đểchạy các quy trình mô phỏng hoặc mô hình hóa trong ứng dụng HPC Tínhlinh hoạt này rất khó hoặc không thể đạt được với ASIC.

 Các mục đích sử dụng khác của FPGA bao gồm hàng không vũ trụ và quốcphòng, điện tử y tế, truyền hình kỹ thuật số, điện tử tiêu dùng, điều khiểnđộng cơ công nghiệp, công cụ khoa học, hệ thống an ninh mạng và truyềnthông không dây

 Verilog là ngôn ngữ mô tả phần cứng được sử dụng trong việc thiết kế cáccác hệ thống số, các mạch tích hợp: như bộ nhớ RAM, bộ vi xử lý hoặc đơngiản là D-FlipFlop…

2.2.1.2 Đặc điểm

 Verilog là ngôn ngữ mô tả phần cứng không phải là ngôn ngữ lập trình

 Một điều khác giữa Verilog và C/C++ là không những Verilog thực hiềntuần tự mà còn thực hiện song song

2.2.1.3 Mục đích sử dụng Verilog

 Hệ thống số là một hệ thống phức tạp bậc cao Ở cấp độ chi tiết nhất, chúng

có thể bao gồm hàng nghìn thành phần như: các transistor hoặc các cổnglogic, cho nên với hệ thống số lớn, thìết kế ở mức cộng không còn sử dụng

Trang 18

nữa Qua nhiều thập kỷ, giản đồ log của các thiết kế logic cũng không cònnhiều nữa Ngày nay, sự phức tạp của phần cung đã tăng lên ở một mức độ

mà giản đồ của cổng logic hầu như vô ích khi nó chỉ biển diễn một mạnglưới phức tạp các liên kết không theo chức năng của thiết kế Từ những năm

1970, các kỹ sư điện và máy tính đổi hướng theo ngôn ngữ mô tả phần cứng(HDL) Hai ngôn ngữ mô tả phần cứng nổi bật trong kỹ thuật là Verilog vàVHDL nhưng những nhà thiết kế công nghệ thích sử dụng Verilog hơn

 Verilog cho phép các nhà thiết kế logic thiết kế và mô tả hệ thống số ở nhiềumức độ khác nhau và có sự hỗ trợ từ các công cụ thiết kế bằng máy tính đểgiúp cho việc xử lý thiết kế ở những mức độ khác nhau

 Cách sử dụng cơ bản của Verilog HDL trong thiết kế mạch tích hợp là môphỏng thiết kế và tạo mẫu trên FPGA trước khi chuyển sang sản xuất Mụctiêu của Verilog không phải tạo ra những chip VLSI mà sử dụng Verilog để

mô tả một cách chính xác chức năng của bất kỳ hệ thống số nào và nạpchương trình tạo mẫu lên FPGA, ví dụ như máy tính, các bộ vi xử lý, … tuytốc độ chậm và lãng phí diện tích hơn Những thiết kế mức thấp hơn trongVerilog được thực hiện trên VLSI để đạt đến tốc độ cực đại và có diện tíchcực tiểu Tuy nhiên sử dụng thiết kế dùng Verilog trên FPGA sẽ tiết kiệm chiphí và thời gian thiết kế

2.2.2 Kiểu dữ liệu

 Có 2 kiểu dữ liệu:

o Kiểu dữ liệu net

o Kiểu dữ liệu thanh ghi

 Nếu các đối tượng dữ liệu net (wire, wand, wor, tri, supply0, supply1) hoặcregiter (reg) được khai báo mà không có tầm, theo mặc định các đối tượngnày rộng 1-bit và được tham chiếu ở dạng vô hướng Nếu một tầm được khaibáo, đối tượng có nhiều bit và được gọi là vector Một vector có thể đượctham chiếu trong trạng thái toàn bộ, một phần hoặc từng bit riêng rẽ khi cần

Trang 19

2.2.2.1 Kiểu dữ liệu net

 Các đối tượng dữ liệu net là khả năng tổng hợp, sẽ biểu diễn và mô hình sựkết nối vật lý các tín hiệu Một phép gán trong verilog là cơ chế cơ bản đểgán giá trị đến các kiểu dữ liệu của net và register Cụ thể là, phát biểu gántiếp tục sẽ gán giá trị đến bất kỳ kiểu nào trong các kiểu dữ liệu của net và dovậy kết nối đến một đường dây thực tế trong mạch điện suy ra được

o Wire: Một tín hiệu kiểu wire biểu diễn cho một dây nối trong mạch thiết

kế và được dùng để kết nối các cổng logic, các module Các tín hiệu kiểuwire chi được đọc, không được gán trong các hàm hoặc các block Tínhiệu kiểu wire không lưu trử giá trị của nó và nó phải được gán giá trịbằng các lệnh gán đồng thời hoặc được kết nối vào các output của cáccông logic, các module

o Cú pháp: Wire [msb: Isb] wire_variable_1list;

o Wor: Mô hình OR- nối dây của vài mạch kích đang kích cùng một net.Một cổng OR sẽ được tổng hợp

o Wand: Mô hình AND- nổi dây của vài mạch đang kích cùng một net Mộtcổng AND sẽ được tổng hợp

2.2.2.2 Kiểu dữ liệu Register

 Kiểu dữ liệu register lưu giữ giá trị từ một phát biểu gán thủ tục đến phátbiểu gán thủ tục kế tiếp và có ý nghĩa là đối tượng này lưu giữ giá trị trên cácchu kỳ delta mô phỏng Phép gán thủ tục là một phép gán cho một kiểu dữliệu của register và không hàm ý rảng một thanh ghi vật lý sẽ được tổng hợp,mặc dù phép gán được sử dụng cho mục đích này Phép gán được sử dụng đểgán giá trị dưới những điều kiện kích khởi, chẳng hạn như các phát biểu if vàcase

 Phép gán thủ tục lưu giữ giá trị trong một kiểu dữ liệu của register và đượcduy trì cho đến phép gán thủ tục kế tiếp cho kiểu dữ liệu của register đó

Trang 20

2.2.2.3 Thông số

 Một kiểu dữ liệu thông số sẽ định nghĩa một hằng Chỉ có các hằng thôngsốnguyên (không thực) được sử dụng với phần mềm tổng hợp Giống nhưmọi

kiểu dữ liệu khác, vị trí của chúng sẽ được xác định chúng là toàn cục đổi với

một module hay là cục bộ đối với một phát biểu always riêng biệt

 Ví dụ: integer N;

2.2.2.5 Tập giá trị

 Các đối tượng dữ liệu wire và dữ liệu reg có thể có những giá trị sau :

o Logic 0 hoặc sai : 0

o Logic 1 hoặc đúng : 1

o Giá trị logic không xác định : X

o Trạng thái tổng trở cao của cổng ba trạng thái : Z

 Biến reg được gán giá trị ban đầu là X ở đầu chương trình Biến wire khôngđược nối với bất kỳ cái gì cũng có giá trị là X

 Có thể xác định cỡ của thanh ghi hoặc dây trong khai báo

Trang 21

 Vùng nhớ: Vùng nhớ được định nghĩa giống như vectơ của thanh ghi

 Ví dụ: Một vùng nhớ gồm 1024 từ, mỗi từ 16 bit: reg [15:0] Mem [1024:0];

 Kí hiệu Mem [0] sẽ tham chiếu đến vùng nhớ đầu tiên

 Chú ý rằng không thể tham chiếu đến một bit trong 1 từ của vùng nhớ, muốnlàm điều này phải chuyển dữ liệu vào một thanh ghi trung gian

2.2.3 Mô tả

 Có 3 loại

o Cấu trúc: Thực hiện mô phỏng ở mức thấp (mức cổng logic), mạch tổnghợp chính xác

o Luồng dữ liệu: Đầu ra phụ thuộc đầu vào (thường dùng từ khóa assign)

Mô tả chính xác hàm như mọi trường hợp

o Hành vi: Chỉ mô tả chức năng của mạch Mức hành vi mô tả một hệthống số bằng những thuật toán (một số lệnh giống ngôn ngữ C như: if,case, for, while…) Mạch khó tổng hợp chính xác (dùng từ khóa always

@)

2.2.4 Cấu trúc chương trình

Hình 3: Cấu trúc chương trình Verilog

Trang 22

Hình 4: Ví dụ về cấu trúc chương trình Verilog

2.3 GIỚI THIỆU VỀ XỬ LÝ ẢNH

2.3.1 Các khái niệm cơ bản về ảnh

Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô

tả ảnh gần với ảnh thật Số điểm ảnh xác định độ phân giải của ảnh Ảnh có độ phângiải càng cao thì càng thể hiện rõ nét các đặt điểm của tấm hình càng làm cho tấmảnh trở nên thực và sắc nét hơn

a) Điểm ảnh (Picture Element)

Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x, y) với độxám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đóđược chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian

và mức xám (hoặc màu) của ảnh số gần như ảnh thật Mỗi phần tử trong matrận được gọi là một phần tử ảnh

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

Mức xám: Là kết quả của sự biến đổi tương ứng 1 giá trị độ sáng của

1 điểm ảnh với 1 giá trị nguyên dương Thông thường nó xác định trong [0,255] tuỳ thuộc vào giá trị mà mỗi điểm ảnh được biểu diễn Các thang giá trịmức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là mức phổ dụng Lý

Trang 23

do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám Mức xámdùng 1 byte biểu diễn: 28 =256 mức, tức là từ 0 đến 255).

c) Độ phân giải của ả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ị

Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao chomắ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

Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) làmột lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200 điểmảnh (320*200) Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn mànhình CGA 17” độ phân giải 320*200 Lý do: cùng một mật độ (độ phân giải)nhưng diện tích màn hình rộng hơn thì độ mịn (liên tục của các điểm) kémhơn

2.3.2 Cách phân loại ảnh

 Ảnh nhị phân: Giá trị xám của tất cả các điểm ảnh chỉ nhận giá trị 1 hoặc 0như vậy mỗi điểm ảnh trong ảnh nhị phân được biểu diễn bởi 1 bit Ảnhxám: Giá trị xám nằm trong [0, 255] như vậy mỗi điểm ảnh trong ảnh nhịphân được biểu diễn bởi 1 byte

 Ảnh màu:

o Hệ màu RGB:

Một pixel được biểu diễn bằng 3 giá trị (R, G, B) trong đó R, G, B làmột giá trị xám và được biểu biểu diễn bằng 1 byte Khi đó ta có mộtảnh 24 bits

P(x, y) = (R, G, B)

o Hệ màu CMY: là phần bù của hệ màu RGB

(C, M, Y) = (1, 1, 1) – (R, G, B)

Hay C+R=M+G=Y+B=1

Trang 24

=> Hệ màu này thường được dùng trong máy in.

o Hệ màu CMYK: trong đó K là độ đậm nhạt của màu K= min(C, M, Y)

P(x, y) = (C-K, M-K, V-K, K)

Ví dụ:

Với (C1, M1, Y1) ta sẽ có K=min(C1, M1, Y1)

vậy CMYK=(C1-K, M1-K, Y1-K, K)

2.3.3 Khái niệm về xử lý ảnh

Xử lý ảnh là một phân ngành trong xử lý số tín hiệu với tín hiệu xử lý là ảnh.Đây là một phân ngành khoa học mới rất phát triển trong những năm gần đây Xử lýảnh gồm 4 lĩnh vực chính: xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh

và truy vấn ảnh Sự phát triển của xử lý ảnh đem lại rất nhiều lợi ích cho cuộc sốngcủa con người

Trang 25

Hình 6: Khôi phục ảnh bằng xử lý ảnh

2.3.5 Các giai đoạn trong xử lý ảnh

a) Thu nhận ảnh (Image Acquisition)

 Ảnh được thu từ nhiều nguồn khác nhau:máy ảnh, máy quay phim, máy quét, ảnh vệ tinh…

 Mục đích: biến đổi thông tin hình ảnh về các cấu trúc được lưu trữ trong máy tính, có thể hiển thị ra các thiết bị ngoại vi như là máy in, màn

hình…

 Gồm hai tiến trình:

o Biến đổi năng lượng quang học thành năng lượng điện

o Tổng hợp năng lượng điện thành ảnh hoặc ma trận số

b) Tiền xử lý (Image Processing)

 Là quá trình sử dụng các kỹ thuật xử lý ảnh để làm ảnh tốt lên theo mục đích sử dụng

Trang 26

o Hiệu chỉnh giá trị độ sáng giữa nền và đối tượng.

o Chuẩn hoá độ lớn, màu, dạng của ảnh

o Điều chỉnh bộ lọc để khuyếch đại và nén các tần số

c) Phân đoạn (Segmentation)

 Là quá trình phân chia nội dung các đối tượng cần khảo sát ra khỏi ảnh

 Phân chia các đối tượng tiếp giáp nhau

 Phân tách các đối tượng riêng biệt thành các đối tượng con

d) Biểu diễn ảnh (Image Representation)

 Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết với các vùng lận cận Việc biến đổi các số liệunày thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng

(Feature Selection) gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được

 Ví dụ: trong nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các đặc trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác

e) Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)

 Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng

 Ví dụ: một loạt chữ số và nét gạch ngang trên phong bì thư có thể được nội suy thành mã điện thoại Có nhiều cách phân loai ảnh khác nhau về ảnh Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được

phân theo hai loại nhận dạng ảnh cơ bản:

o Nhận dạng theo tham số

o Nhận dạng theo cấu trúc

 Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng

trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay,

Trang 27

chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng

mã vạch, nhận dạng mặt người…

f) Cơ sở tri thức (Knowledge Base)

Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phươngpháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước

quy trình tiếp nhận và xử lý ảnh theo cách của con người Trong các bước xử

lý đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người

Vì vậy, ở đây các cơ sở tri thức được phát huy

2.4 TÌM HIỂU VỀ PHƯƠNG PHÁP LỌC BIÊN ẢNH SỐ

2.4.1 Giới thiệu chung

2.4.1.1 Khái niệm

Phát hiện biên là một công cụ quan trọng trong xử lý ảnh số Nó làm giảmmột cách đáng kể khối lượng dữ liệu cần tính toán, chỉ giữ lại một số ít những thôngtin cần thiết đồng thời vẫn bảo toàn được những cấu trúc quan trọng trong bức ảnh

2.4.1.2 Một số kiểu đường biên

Điểm biên là nơi mà các điểm ảnh lân cận nhau có cường độ thay đổi mạnhmột cách đột ngột

Trang 28

Hình 7:Một số kiểu đường biên thông dụng (a) Biên dạng nhảy bậc; (b) Biên dốc; (c) Biên dạng xung vuông; (d) Biên dạng

hình nón.

2.4.1.3 Ý nghĩa của bài toán phát hiện biên

 Đường biên là một loại đặc trưng cục bộ tiêu biểu trong phân tích, nhậndạng ảnh

 Đường biên giúp phân đoạn các vùng trong ảnh (xám, màu)

Hình 8: Sử dụng các vùng ảnh để tìm đường biên

Ngày đăng: 24/12/2021, 19:38

HÌNH ẢNH LIÊN QUAN

Hình  1: FGPA là gì? - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 1: FGPA là gì? (Trang 12)
Hình  2: Kiến trúc FPGA - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 2: Kiến trúc FPGA (Trang 14)
Hình  3: Cấu trúc chương trình Verilog - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 3: Cấu trúc chương trình Verilog (Trang 21)
Hình  6: Khôi phục ảnh bằng xử lý ảnh - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 6: Khôi phục ảnh bằng xử lý ảnh (Trang 24)
Hình  5: Xử Lý Ảnh - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 5: Xử Lý Ảnh (Trang 24)
Hình  7:Một số kiểu đường biên thông dụng - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 7:Một số kiểu đường biên thông dụng (Trang 27)
Hình nón. - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
Hình n ón (Trang 27)
Hình  9: Vivado - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 9: Vivado (Trang 30)
Hình  10:Download vivado - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 10:Download vivado (Trang 31)
Hình  11:Cài đặt vivado - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 11:Cài đặt vivado (Trang 32)
Hình  12:Cài đặt vivado - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 12:Cài đặt vivado (Trang 32)
Hình  13:Cài đặt vivado - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 13:Cài đặt vivado (Trang 33)
Hình  14:Cài đặt vivado - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 14:Cài đặt vivado (Trang 34)
Hình  15:Tạo dự án vivado - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 15:Tạo dự án vivado (Trang 34)
Hình  16:Tạo dự án vivado - nghiên cứu công nghệ vi mạch khả trình và ứng dụng thiết kế bộ lọc cho phát hiện cạch biêntrong xử lý ảnh sử dụng kit fpga
nh 16:Tạo dự án vivado (Trang 35)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w