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

NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II

97 1,5K 12
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Nhận Diện Biển Số Xe Bằng Kit De2 Dùng Nios II
Tác giả Dương Thiên Lý
Người hướng dẫn THS. Hồ Trung Mỹ
Trường học Đại Học Bách Khoa - Đại Học Quốc Gia TP.Hồ Chí Minh
Chuyên ngành Điện Tử - Viễn Thông
Thể loại Luận văn tốt nghiệp
Năm xuất bản 2013
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 97
Dung lượng 4,13 MB

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

Nội dung

Nhiệm vụ luận văn Nội dung 1: Tìm hiểu cách sử dụng phần mềm “Quartus” và “Nios II Software Build Tool for Eclipse” để thiết kế hệ thống SOPC trên vi xử lý NIOS Nội dung 2: Tìm hiểu các

Trang 1

BỘ MÔN ĐIỆN TỬ

-o0o -LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

NHẬN DIỆN BIỂN SỐ XE BẰNG KIT DE2

DÙNG NIOS II

GVHD: THS.HỒ TRUNG MỸ SVTH: DƯƠNG THIÊN LÝ MSSV: 40901520

TP HỒ CHÍ MINH, THÁNG 12 NĂM 2013

Trang 2

-✩ - -✩ -

Số: /BKĐT Khoa: Điện – Điện tử Bộ Môn: Điện Tử NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP

1 HỌ VÀ TÊN : MSSV: 2 NGÀNH: ĐIỆN TỬ - VIỄN THÔNG LỚP : 3 Đề tài: 4 Nhiệm vụ (Yêu cầu về nội dung và số liệu ban đầu):

5 Ngày giao nhiệm vụ luận văn:

6 Ngày hoàn thành nhiệm vụ:

7 Họ và tên người hướng dẫn: Phần hướng dẫn

Nội dung và yêu cầu LVTN đã được thông qua Bộ Môn Tp.HCM, ngày… tháng… năm 20 CHỦ NHIỆM BỘ MÔN NGƯỜI HƯỚNG DẪN CHÍNH PHẦN DÀNH CHO KHOA, BỘ MÔN: Người duyệt (chấm sơ bộ):

Đơn vị:

Ngày bảo vệ :

Điểm tổng kết:

Nơi lưu trữ luận văn:

Trang 3

Em xin gửi lời cám ơn tới gia đình – chỗ dựa vững chắc cho em trong những lúc khó khăn và tạo điều kiện tốt nhất để em học tập

Em đã tham khảo rất nhiều bài viết (được liệt kê trong danh mục tham khảo) trên mạng internet về đề tài này, cũng như các đề tài liên quan trong lĩnh vực xử lý ảnh Em xin chân thành cám ơn tác giả các bài viết đó Bài báo cáo này cũng xem như

là sự tổng hợp kinh nghiệm mà em tích lũy được trong quá trình đọc và thực hành các

giải thuật

Biên Hòa, ngày 24 tháng 12 năm 2013

Sinh viên

Trang 4

TÓM TẮT LUẬN VĂN

Luận văn này trình bày về đề tài:

“NHẬN DIỆN BIỂN SỐ XE BẰNG KIT DE2 DÙNG NIOS II”

Việc thực hiện luận văn bao gồm hai phần chính:

 Sử dụng các thư viện trong SOPC Builder để xây dựng phần cứng cho chương trình CPU xử lý sử dụng NIOS II

 Viết code C để thực hiện chương trình nhận diện biển số xe trên core NIOS II

Trang 5

MỤC LỤC

1 GIỚI THIỆU 1

1.1 Tổng quan 1

1.2 Tình hình nghiên cứu trong và ngoài nước 1

1.3 Nhiệm vụ luận văn 1

2 LÝ THUYẾT 2

2.1 Chương 1: SOPC Builder và Nios II Software Build tool for Eclipse 2

SOPC Builder: 2

Các bước thiết kế một hệ thống SOPC builder 7

Nios II Software Build Tools for Eclipse: 12

2.2 Chương 2: Các kỹ thuật xử lý ảnh 18

Mô hình ảnh màu RGB: 18

Ảnh xám (gray image): 19

Định dạng ảnh BMP: 20

Phát hiện cạnh: 22

Biến đổi Hough: 25

Xoay ảnh: 27

Resize ảnh: 30

Phương pháp SVM: 34

Bài toán nhận diện chữ quang học: 38

3 THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 47

3.1 Yêu cầu thiết kế 47

3.2 Sơ đồ khối tổng quát của hệ thống: 48

Giải thích sơ đồ: 48

Trang 6

3.3 Chi tiết thiết kế: 50

CPU: 50

Clock Signal 51

Character buffer for VGA display 51

Pixel Buffer 52

Pixel Buffer DMA Controller 52

RGB Resampler 53

Scaler 53

Alpha Blender 54

Dual Clock FIFO: 54

VGA Controller 55

Jtag Uart 56

SDRAM Controller 56

Giao tiếp bộ nhớ Flash: 57

Parallel Port 59

16x2 Character Display 60

3.4 Kết quả thiết kế hệ thống: 62

4 THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 63

4.1 Yêu cầu đặt ra cho phần mềm 63

4.2 Phân tích 63

Load ảnh 63

Tiền xử lý 69

Tách biển số: 69

Nhận dạng ký tự 72

Giao diện người dùng: 74

Trang 7

5 KẾT QUẢ THỰC HIỆN 78

5.1 Cách thức đo đạc, thử nghiệm 78

5.2 Giải thích và phân tích về kết quả thu được 78

Kết quả thu được: 78

Khuyết điểm của đề tài 79

6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 80

6.1 Kết luận 80

6.2 Hướng phát triển 80

7 TÀI LIỆU THAM KHẢO 81

8 PHỤ LỤC 83

Trang 8

DANH SÁCH HÌNH MINH HỌA

Hình 2-1 Ví dụ về một hệ thống Nios thực hiện trên kit DE2 bằng SOPC builder 3

Hình 2-2 Sơ đồ block diagram của core Nios II 4

Hình 2-3 Tổ chức bộ nhớ và I/O của Nios II 5

Hình 2-4 Các phiên bản của NIOS II 7

Hình 2-5 Các bước thiết kế hệ thống SOPC 7

Hình 2-6 Các bước thiết kế hệ thống SOPC 8

Hình 2-7 Các bước thiết kế hệ thống SOPC 9

Hình 2-8 Các bước thiết kế hệ thống SOPC 9

Hình 2-9 Các bước thiết kế hệ thống SOPC 10

Hình 2-10 Các bước thiết kế hệ thống SOPC 10

Hình 2-11 Các bước thiết kế hệ thống SOPC 11

Hình 2-12 Các bước thiết kế hệ thống SOPC 11

Hình 2-13 Các bước thiết kế hệ thống SOPC 12

Hình 2-14 Các bước thực hiện Nios II Software 13

Hình 2-15 Các bước thực hiện Nios II Software 14

Hình 2-16 Kết quả biên dịch chương trình Nios Demo 15

Hình 2-17 Đổ chương trình đã biên dịch từ Quartus xuống FPGA 16

Hình 2-18 Kết quả chạy chương trình Nios 17

Hình 2-19 Minh họa mô hình màu RGB 18

Hình 2-20 Ảnh xám 20

Hình 2-21 Ảnh trước và sau khi phát hiện cạnh 22

Hình 2-22 b) Sobel c)Prewitt d) Robert e)Laplacian f)LoG 25

Hình 2-23 Ma trận ảnh và ma trận Hough 26

Hình 2-24 Minh họa việc xoay ảnh một góc a 27

Hình 2-25 Xoay điểm N quanh gốc O một góc a sẽ được điểm M 28

Hình 2-26 Kết quả xoay ảnh của phương pháp Forward Mapping 29

Hình 2-27 Các bước đổi tọa độ ảnh [4] 30

Hình 2-28 Ảnh ban đầu 33

Hình 2-29 Ảnh resize theo phương pháp điểm lân cận gần nhất 33

Hình 2-30 Ảnh resize theo phương pháp bilinear 34

Hình 2-31 Ảnh resize theo phương pháp bicubic 34

Hình 2-32 Giả sử có hai nhóm dữ liệu huấn luyện cần phân lớp biết trước xi, yi 36

Hình 2-33 Câu hỏi đặt ra là siêu phẳng nào là tốt nhất? p1,p2 hay p3? 36

Hình 2-34 Xây dựng các siêu phẳng là lề của các lớp, các mẫu nằm trên lề là vector tựa (Support Vector) 37

Hình 2-35 Siêu phẳng phân lớp cách đều hai siêu phẳng lề 37

Hình 2-36 Hình chiếu ngang và chiếu dọc của một đoạn ký tự 43

Hình 2-37 a OVR b.OVO c.DAG 45

Hình 3-1 Sơ đồ khối hệ thống được thiết kế bằng SOPC 48

Hình 3-2: chế độ màu của VGA 49

Trang 9

Hình 3-3: Frame hình hiển thị lên VGA 49

Hình 3-4 Cách định địa chỉ cho pixel hiển thị 49

Hình 3-5 Thông số chọn CPU 50

Hình 3-6 Thông số cấu hình cho Clock Signals 51

Hình 3-7 Thông số cấu hình cho character buffer for VGA display 52

Hình 3-8 Thông số cấu hình cho SRAM Controller 52

Hình 3-9 Thông số cấu hình Pixel Buffer DMA Controller 53

Hình 3-10 Thông số cấu hình RGB Resampler 53

Hình 3-11 Thông số cấu hình Scaler 54

Hình 3-12 Thông số cấu hình Alpha Blender 54

Hình 3-13 Thông số cấu hình Dual Clock FIFO 55

Hình 3-14 Thông số cấu hình VGA Controller 55

Hình 3-15 Thông số cấu hình JTAG UART 56

Hình 3-16 Thông số cấu hình SDRAM Controller 57

Hình 3-17 Cấu hình khối Tristate Bridge 58

Hình 3-18 Cấu hình khối Flash Memory Interface 58

Hình 3-19 Thông số timing của CFI 59

Hình 3-20 Thông số cho Parallel Port kết nối với Slider Switches 59

Hình 3-21 Thông số cấu hình cho Parallel Port kết nối với Buttons 60

Hình 3-22 Thông số cấu hình cho khối giao tiếp LCD 61

Hình 3-23 Kết quả thiết kế SOPC của hệ thống 62

Hình 3-24 Địa chỉ các vùng nhớ của hệ thống 62

Hình 4-1 Các bước load ảnh vào bộ nhớ Flash 64

Hình 4-2 Quá trình phân đoạn ký tự 73

Hình 4-3 Cách định địa chỉ mảng một chiều 74

Hình 4-4 Cách định địa chỉ trong character buffer 75

Hình 4-5 Địa chỉ các thanh ghi của LCD 76

Hình 4-6 Cách định địa chỉ vị trí trên màn hình LCD 76

Hình 5-1 Ảnh đầu vào 78

Hình 5-2 Ảnh chụp màn hình VGA sau khi nhận dạng 79

Trang 10

DANH SÁCH BẢNG SỐ LIỆU

Bảng 2-1 Định dạng file ảnh BMP 22 Bảng 4-1 mã lệnh của LCD 76

Trang 11

1 GIỚI THIỆU

1.1 Tổng quan

Trong những năm gần đây kỹ thuật xử lý ảnh đang phát triển mạnh mẽ Ngày càng nhiều ứng dụng liên quan đến xử lý ảnh trong nhiều lĩnh vực của cuộc sống: công nghệ thông tin, hệ thống nhúng Các nghiên cứu về hệ thống SOPC thường được ứng dụng để thử nghiệm

hệ thống trước khi đi vào chế tạo thực tế

Luận văn sử dụng các giải thuật xử lý ảnh cơ bản để nhận diện biển số xe trên hệ thống SOPC của ALTERA

1.2 Tình hình nghiên cứu trong và ngoài nước

Đề tài: “ nhận diện biển số xe” là đề tài không mới Nó đã được nghiên cứu và hoàn thiện, đã được ứng dụng rộng rãi ở trong và ngoài nước Ứng dụng của đề tài:

o Quản lý xe ra vào ở bãi giữ xe

o Nhận diện biển số của xe vi phạm luật giao thông trên đường

o Đưa vào hệ thống chặn xe ở các trạm thu phí

o …

Tuy đề tài không mới nhưng việc nghiên cứu các đề tài này trên hệ thống SOPC chưa nhiều Việc nghiên cứu thiết kế hệ thống và lập trình vi xử lý từ cấp đơn giản nhất là tiền đề

để nghiên cứu các ứng dụng xử lý ảnh khác với tốc độ và sự phức tạp hơn nữa

1.3 Nhiệm vụ luận văn

Nội dung 1: Tìm hiểu cách sử dụng phần mềm “Quartus” và “Nios II Software Build Tool for Eclipse” để thiết kế hệ thống SOPC trên vi xử lý NIOS

Nội dung 2: Tìm hiểu các giải thuật xử lý ảnh căn bản

Nội dung 3: Xây dựng hệ thống SOPC cho đề tài

Nội dung 4: Thiết kế giải thuật cho quá trình nhận diện biển số xe

Nội dung 5: Xây dựng phần mềm hoàn chỉnh cho hệ thống

Trang 12

Thông thường khi sử dụng SOPC Builder người ta thường dùng vi xử lý NIOS II được xây dựng sẵn trong thư viện Nhưng SOPC Builder là công cụ để tạo hệ thống sử dụng hoặc không sử dụng vi xử lý Bạn cũng có thể sử dụng vi xử lý khác để lập trình phần mềm

SOPC Builder tự động thiết kế các thành phần(components) phần cứng cho hệ thống theo ý bạn Trong phương pháp thiêt kế truyền thống, bạn phải tự viết mã VHDL hoặc

Verilog để thiết kế các thành phần phần cứng hoặc nối dây cho các thành phần của hệ thống Với SOPC Builder bạn có thể dễ dàng đặc tả các thành phần với GUI của chương trình Và SOPC Builder sẽ tự động tạo ra mã HDL của thành phần đó và nối dây bên trong hệ thống Bạn chỉ cần viết file top-level HDL để nối dây bên ngoài hệ thống: nối các hệ thống với nhau, nối hệ thống với các linh kiện hoặc tín hiệu thực trên kit DE2

Các thành phần có sẵn trong thư viện SOPC:

 Vi xử lý Nios II

 Các ngoại vi của vi xử lý như: DMA controller và timer

 Giao diện truyền nối tiếp như: UART, SPI(serial peripheral interface)

 Các I/O thông thường

 Thiết bị liên lạc ngoại vi như 10/100/1000 Ethernet MAC

 Giao tiếp với thiết bị off-chip

Ngoài các thành phần có sẵn trong thư viện, người dùng có thể tự thiết kế thêm các thành phần mới bằng ngôn ngữ HDL rồi đưa vào hệ thống SOPC

Trang 13

Hình 2-1 Ví dụ về một hệ thống Nios thực hiện trên kit DE2 bằng SOPC builder

Các thành phần được thiết kế trên chip Cyclone II được gọi là on-chip

Các thành phần phần như SRAM, SDRAM, Flash được gọi là bộ nhớ off-chip

Giới thiệu về vi xử lý Nios II:

Nios II là một bộ xử lý nhúng được thiết kế đặc biệt cho chip FPGA của Altera Nios

II kết hợp nhiều cải tiến hơn so với kiến trúc Nios ban đầu để phù hợp hơn với sự đa dạng của các ứng dụng nhúng: từ DSP tới hệ thống điều khiển

Nios II có thể được sử dụng cho các cell ASIC tiêu chuẩn thông qua nhà cung cấp IP thứ ba, Synopsys Thông qua giấy phép (license), người thiết kế có thể xuất thiết kế Nios từ nền tảng FPGA sang sản xuất hàng loạt các thiết bị ASIC

Nios II là thế hệ tiếp theo bộ xử lý thế hệ đầu của Altera (cấu hình 16 bit) là Nios Nios II là một core xử lý thông thường dạng RISC với các đặc tính:

 Tập lệnh, data path, đường địa chỉ 32 bit

Trang 14

 Có 32 nguồn ngắt

 Có bộ điều khiển ngắt ngoài

 Lệnh đơn nhân và chia thực hiện trên 32 bit và kết quả tạo ra 32 bit

 Lệnh dành riêng cho kết quả nhân 64 bit và 128 bit

 Lệnh thực hiện các phép tính dấu chấm động với độ chính xác đơn

 Lệnh đơn cho phép toán dịch

 Truy cập các thiết bị ngoại vi on-chip, bộ nhớ off-chip và các ngoại vi khác nhau

Cung cấp môi trường phần mềm GNU (General Public License) dựa trên

C/C++ và Nios II Software Build Tools (SBT) for Eclipse

 Hiệu suất lên tới 250 DMIPS Cấu trúc core xử lý Nios II

Hình 2-2 Sơ đồ block diagram của core Nios II

Tổ chức bộ nhớ và I/O:

Tổ chức bộ nhớ và I/O do người dùng tùy chỉnh nên nó khác nhau ở các thiết kế khác nhau

Trang 15

Một core xử lý Nios II dùng một hay nhiều cách dưới đây để truy xuất bộ nhớ và I/O

 Instruction master port

 Instruction cache- bộ nhớ cache nhanh nằm bên trong core Nios

 Data master port

 Data cache-bộ nhớ cache nhanh nằm trong core Nios

 Tightly-coupled instruction or data memory port

Hình 2-3 Tổ chức bộ nhớ và I/O của Nios II

Instruction và Data Buses:

Nios II có kiến trúc theo kiểu Harvard cung cấp hai đường bus dữ liệu và bus chương trình riêng biệt Cả hai loại bus này đều theo chuẩn AVALON-MM Master port Data Master port kết nối với cả bộ nhớ dữ liệu và các thiết bị ngoại vi, còn Instruction Master port kết nối với các bộ nhớ lệnh

Instruction Master Port:

Trang 16

Bus chương trình của hệ thống theo chuẩn 32 bit Avalon –MM master port Master port chương trình thực hiện chức năng duy nhất là tìm nạp lệnh

Kiến trúc Nios cung cấp bộ nhớ Cache chương trình để quá trình tìm nạp lệnh diễn ra nhanh hơn

Data Master Port:

Nios II có Bus dữ liệu theo chuẩn 32 bit Avalon-MM master port Master port dữ liệu thực hiện hai chức năng:

 Đọc dữ liệu từ ngoại vi hoặc bộ nhớ khi bộ xử lý thực hiện lệnh load

 Ghi dữ liệu ra ngoại vi hoặc bộ nhớ khi bộ xử lý thực hiện lệnh write Kiến trúc Nios II cung cấp bộ nhớ cache dữ liệu để cải thiện tốc độ đọc và ghi dữ liệu

Các loại bộ nhớ của Nios II:

Bộ nhớ Cache:

Kiến trúc Nios cung cấp bộ nhớ cache cho cả master port chương trình và master port

dữ liệu Bộ nhớ Cache là on-chip và là một phần của core xử lý Nios II Bộ nhớ cache cải thiện thời gian truy xuất bộ nhớ cho các hệ thống sử dụng bộ nhớ off-chip như SDRAM

Bộ nhớ Cache là tùy chọn, một core xử lý có thể có một, hai hoặc không có bộ nhớ cache nào, kích thước của bộ nhớ cache cũng do người thiết kế quyết định Người thiết kế phải đánh đổi giữa kích thước core xử lý và dung lượng bộ nhớ cache

Bộ nhớ ghép (tighty couple memory)

Bộ nhớ được truy xuất qua hệ thống Bus Avalon, là một loại bộ nhớ on-chip, nhưng không nằm trong core xử lý Có thể có một hay nhiều bộ nhớ ghép Nếu hệ thống không có bộ nhớ Cache thì cần ít nhất một bộ nhớ ghép

Bộ nhớ off-chip:

Bộ nhớ off-chip là các bộ nhớ hoặc ngoại vi không nằm trên chip FPGA, nó gồm các loại như: SRAM, SDRAM, FLASH, Nó được truy xuất thông qua các thành phần trung gian đóng vai trò giao diện (interface) giữa core xử lý và bộ nhớ Tốc độ truy xuất của bộ nhớ off-chip nhỏ hơn bộ nhớ on-chip

Các phiên bản của core Nios II:

Nios II /f : là bộ xử lý “fast” được thiết kế cho các ứng dụng hiệu suất cao Có những tùy chọn cấu hình cao mà không có trong các phiên bản Nios II còn lại

Nios II/s: là bộ xử lý “standard” được thiết kế với kích thước nhỏ trong khi vẫn duy trì hiệu suất vừa phải

Trang 17

Nios II/e: là bộ xử lý “economic” được thiết kế với kích thước nhỏ nhất với hiệu suất

thích hợp

Hình 2-4 Các phiên bản của NIOS II

Các bước thiết kế một hệ thống SOPC builder

Thực hiện thiết kế hệ thống SOPC theo các bước sau [1]:

Tạo một project thông thường trên phần mềm Quartus, sử dụng chip Cylone II

EP2C35F672C6

Vào nhãn Tool>SOPC Builder, chương trình sẽ hiện ra cửa sổ như hình Đặt

tên cho hệ thống của mình, chọn ngôn ngữ HDL sử dụng rồi bấm OK

Hình 2-5 Các bước thiết kế hệ thống SOPC

Trang 18

Hình 2-6 Các bước thiết kế hệ thống SOPC

Cửa sổ như hình 2-6 được hiện ra

Tùy theo mục đích thiết kế mà người dùng chọn các thành phần trong thư viện

ở bên tay phải để add vào hệ thống

Ở đây em làm một ví dụ xây dựng hệ thống SOPC đơn giản nhất như sau:

Trong danh sách ở thư viện bên tay phải chọn mục Processors>Nios II

Processor , một cửa sổ mới hiện ra như hình 2-8

 Đây là cửa sổ để chọn các thông số cho vi xử lý Nios II, ở đây em chọn

phiên bản Nios đơn giản nhất là Nios II/e Sau đó chọn Finish (Các tab

ở phía sau có thể được điều chỉnh theo ý người dùng nếu cần)

Chọn bộ nhớ chương trình như hình 2-9 Rồi bấm Finish

Chọn thêm thành phần JTAG UART như hình 2-10 Sau đó bấm

Finish

Trở lại mục Nios II Processor để chỉnh lại Reset Vector và Exception

Vector như hình

Trang 19

Hình 2-7 Các bước thiết kế hệ thống SOPC

Hình 2-8 Các bước thiết kế hệ thống SOPC

Trang 20

Hình 2-9 Các bước thiết kế hệ thống SOPC

Hình 2-10 Các bước thiết kế hệ thống SOPC

Trang 21

Hình 2-11 Các bước thiết kế hệ thống SOPC

Cuối cùng Save rồi bấm Generate như hình dưới:

Hình 2-12 Các bước thiết kế hệ thống SOPC

Trang 22

Sau khi generate, ta vào file thienly.v ở thư mục chứa Project để xem các tín hiệu in/out của hệ thống Hoặc có thể coi trong file thienly Quartus II Block Symbol File cũng trong thư mục đó để xem sơ đồ chân

Hệ thống SOPC sau khi được tạo thành sẽ có sơ đồ chân như sau:

Hình 2-13 Các bước thiết kế hệ thống SOPC

Trong Project vidu đã tạo ở trên ta tạo một file Verilog như sau:

Trong đó thienly là tên hệ thống SOPC ta đã đặt ở bước đầu thiết kế SOPC

 Save file và biên dịch Project này

Nios II Software Build Tools for Eclipse:

Viết phần mềm cho core xử lý Nios II cũng tương tự như các bộ xử lý nhúng khác Nios II Software Build Tools for Eclipse hay còn gọi là Nios II SBT for Eclipse là một môi trường phát triển để viết mã, biên dịch, nạp và debug chương trình cho bộ xử lý đã xây dựng

ở bước trên

Các bước xây dựng phần mềm cho bộ xử lý:

Click vào biểu tượng của phần mềm đã cài đặt trên máy

Chọn đường dẫn đến thư mục bất kỳ mong muốn tạo project rồi bấm OK

Trang 23

Hình 2-14 Các bước thực hiện Nios II Software

Chọn File>New>NiosII Application and BSP from Template

Trang 24

Hình 2-15 Các bước thực hiện Nios II Software

Chọn đường dẫn của SOPC Information file name như hình

Đặt tên cho Project name

Ở khung Template thông thường chọn Blank Project để viết chương trình theo ý muốn của

người thiết kế

Chọn Finish

Tạo file source c đặt tên là main.c (tên do người viết đặt)

Trang 25

Viết code c vào file này rồi click chuột phải vào thư mục có tên soft (tên đã đặt cho project ở bước trên) ở cửa sổ sát tay trái, chọn Build Project

Kết quả biên dịch như dưới là đúng

Hình 2-16 Kết quả biên dịch chương trình Nios Demo

Trở lại cửa sổ của chương trình Quartus, chọn thẻ Programmer>Start

Nếu nạp chương trình trên Quartus thành công thì trở lại chương trình Nios Sau đó click

chuột phải vào thư mục soft rồi chọn Run As>Nios II Hardware

Trang 26

Hình 2-17 Đổ chương trình đã biên dịch từ Quartus xuống FPGA

Kết quả chạy như hình

Trang 27

Hình 2-18 Kết quả chạy chương trình Nios

Trang 28

Hình 2-19 Minh họa mô hình màu RGB

Cơ sở sinh học:

Các màu gốc có liên quan đến các khái niệm sinh học hơn là vật lý, nó dựa trên cơ sở phản ứng sinh lý học của mắt người đối với ánh sáng Mắt người có các tế bào cảm quang có hình nón nên còn được gọi là tế bào hình nón, các tế bào này thông thường có phản ứng cực đại với ánh sáng vàng - xanh lá cây (tế bào hình nón L), xanh lá cây (tế bào hình nón M) và xanh lam (tế bào hình nón S) tương ứng với các bước sóng khoảng 564 nm, 534 nm và

420 nm Ví dụ, màu vàng thấy được khi các tế bào cảm nhận màu xanh ánh vàng được kích thích nhiều hơn một chút so với tế bào cảm nhận màu xanh lá cây và màu đỏ cảm nhận được khi các tế bào cảm nhận màu vàng - xanh lá cây được kích thích nhiều hơn so với tế bào cảm nhận màu xanh lá cây

Mặc dù biên độ cực đại của các phản xạ của các tế bào cảm quang không diễn ra ở các bước sóng của màu "đỏ", "xanh lá cây" và "xanh lam", ba màu này được mô tả như là các màu gốc vì chúng có thể sử dụng một cách tương đối độc lập để kích thích ba loại tế bào cảm quang

Để sinh ra khoảng màu tối ưu cho các loài động vật khác, các màu gốc khác có thể được sử dụng Với các loài vật có bốn loại tế bào cảm quang, chẳng hạn như nhiều loại chim,

Trang 29

người ta có lẽ phải nói là cần tới bốn màu gốc; cho các loài vật chỉ có hai loại tế bào cảm quang, như phần lớn các loại động vật có vú, thì chỉ cần hai màu gốc

RGB và hiển thị:

Một trong những ứng dụng phổ biến nhất của mô hình màu RGB là việc hiển thị màu sắc trong các ống tia âm cực, màn hình tinh thể lỏng hay màn hình plasma, chẳng hạn như màn hình máy tính hay ti vi Mỗi điểm ảnh trên màn hình có thể được thể hiện trong bộ nhớ máy tính như là các giá trị độc lập của màu đỏ, xanh lá cây và xanh lam Các giá trị này được chuyển đổi thành các cường độ và gửi tới màn hình Bằng việc sử dụng các tổ hợp thích hợp của các cường độ ánh sáng đỏ, xanh lá cây và xanh lam, màn hình có thể tái tạo lại phần lớn các màu trong khoảng đen và trắng

Phần lớn các màn hình máy tính trên thế giới sử dụng RGB

Các định dạng pixel theo kiểu RGB thường gặp:

Trang 30

Hình 2-20 Ảnh xám

Chuyển đổi từ định dạng RGB sang Gray:

𝑌′= 0.299𝑅′+ 0.587𝐺′+ 0.114𝐵′

Với R’, G’, B’ là cường độ của pixel trong ảnh RGB

Y’ là cường độ pixel trong ảnh xám

Cấu trúc một file BMP gồm 4 phần sau:

Bitmap Header (14 byte): giúp nhận dạng một tập tin bitmap

Bitmap Information (40 bytes): lưu một số thông tin chi tiết giúp hiển thị ảnh Có

thể là DIB Header hoặc BITMAPINFOHEADER

Color Palette (4*x bytes), x là số màu của ảnh: định nghĩa các màu sẽ được sử dụng

trong ảnh

Bitmap Data: lưu dữ liệu ảnh

Có nhiều phiên bản được sử dụng để lưu trữ ảnh bmp khác nhau Nhưng tất cả đều có các trường chung sau đây

Bitmap Header

0000h 2 bytes Signature Dùng để nhận dạng cách lưu trữ:

Trang 31

BM – Windows 3.1x, 95, NT,

etc

BA – OS/2 struct Bitmap Array

CI – OS/2 struct Color Icon

CP – OS/2 const Color Pointer

IC – OS/2 struct Icon

PT – OS/2 Pointer

Thông thường là dùng BM 0002h 4 bytes FileSize Độ dài của toàn file BMP tính bằng

bytes 0006h 2 bytes Reserved Giá trị thực tế phụ thuộc vào ứng dụng

dùng để lưu ảnh 0008h 2 bytes Reserved Giá trị thực tế phụ thuộc vào ứng dụng

dùng để lưu ảnh 000Ah 4 bytes DataOffset Giá trị Offset bắt đầu lưu Data của ảnh

Bitmap Information

=40 12h 4 Width Chiều rộng của ảnh tính bằng pixel 16h 4 Height Chiều cao của ảnh tính bằng pixel

1Ch 2 BitCount Số bit để biểu diễn một pixel:

1: ảnh nhị phân Numcolors=2;

4: 4 bit xám Numcolors=16 8: 8 bit xám Numcolors=256 16: ảnh 16 bit RGB

Numcolors=65,536 24: ảnh 24 bit RGB Numcolors xấp xỉ 16,7 triệu màu

0: ảnh không nén RGB (thường là loại này)

1: RLE 8bit/1pixel 2: RLE 4bit/1pixel 3: Bit field hoặc Huffman 1D 4: JPEG RLE-24

5: PNG 6: Bit feild

26h 4 XpixelsPerM Độ phân giải theo phương ngang

Pixels/Meter

Trang 32

2Ah 4 YpixelsPerM Độ phân giải theo phương dọc

Pixels/Meter 2Eh 4 ColorsUsed Số màu trong Color Palette

32h 4 ColorsImportant Số màu quan trọng, 0 nếu tất cả đều

quan trọng

Color Palette có độ lớn là 4*NumColors, chỉ có ý nghĩa với ảnh 1,4,8bit

Bitmap Data: nơi lưu dữ liệu ảnh

Bảng 2-1 Định dạng file ảnh BMP

Phát hiện cạnh:

Phát hiện cạnh là một bước quan trọng trong nhiều bài toán xử lý ảnh Từ ảnh đầu vào

là ảnh đa mức xám, qua phương pháp phát hiện cạnh sẽ cho ảnh đầu ra là ảnh đa mức xám với các cạnh có cường độ cao hơn hẳn các điểm còn lại trong ảnh

Hình 2-21 Ảnh trước và sau khi phát hiện cạnh

Cơ sở toán học:

Trang 33

𝜕𝑦 )

2]

1 2

Trang 34

Vì mặt nạ Laplacian về cơ bản dựa trên đạo hàm bậc hai nên nó rất nhạy với nhiễu Vì vậy để kết quả ổn định, trước khi dùng mặt nạ Laplacian người ta thường dùng mặt nạ

Gaussian để lọc bớt nhiễu Để thuận tiện người ta có thể nhân chập hai loại mặt nạ trước khi cho trượt qua ảnh để tính Điều này mang đến cái lợi là giảm số lượng các bước tính toán, vì thể sẽ giảm thời gian xử lý

Laplacian of Gaussian

Ví dụ về một mặt nạ LoG với 𝜎 = 1.4

Trang 35

So sánh kết quả:

Hình 2-22 b) Sobel c)Prewitt d) Robert e)Laplacian

f)LoG

Nhận xét: nhìn chung các phương pháp ở trên đều cho kết quả tương đối giống nhau

Ưu điểm của chúng là đơn giản và dễ thực hiện Tuy nhiên trừ (LoG) các phương pháp còn lại

đều nhạy với nhiễu LoG có khuyết điểm là thường bị mất ở góc, mất cạnh đường cong

Các phương pháp phát hiện cạnh cao cấp hơn như kỹ thuật Canny sẽ đạt kết quả tốt

hơn, nhưng lại mất thời gian tính toán phức tạp hơn (sẽ không đề cập đến ở mục này)

Biến đổi Hough:

Trang 36

Hình 2-23 Ma trận ảnh và ma trận Hough

Phép biến đổi Hough biến đổi mỗi pixel có tọa độ (𝑥0, 𝑦0) trong mặt phẳng x-y thành

một đường cong có phương trình là

𝑝 = 𝑓(𝜃) = 𝑥0𝑐𝑜𝑠𝜃 + 𝑦0𝑠𝑖𝑛𝜃 trong mặt phẳng Hough Hàm trên là một hàm tuần hoàn với chu kỳ là 2𝜋

Trong mặt phẳng x-y ta ký hiệu 𝑝0 và 𝜃0 lần lượt là khoảng cách từ gốc tọa độ đến

đường thẳng t như hình vẽ Khi đó ta có với mọi (x, y) thuộc đường thẳng t thì:

𝑝0 = 𝑥𝑐𝑜𝑠𝜃0 + 𝑦𝑠𝑖𝑛𝜃0Như vậy mọi điểm (x, y) thuộc đường thẳng t khi biến đổi qua mặt phẳng Hough thì

đều đi qua điểm có tọa độ là (𝜃0, 𝑝0) Điều này suy ra rằng: nếu đường thẳng t trong mặt

phẳng ảnh x-y được biểu diễn bởi n pixel, thì trong mặt phẳng Hough điểm (𝜃0, 𝑝0) sẽ có n

đường cong đi qua Vì vậy hình thành khái niệm điểm tích lũy trên mặt phẳng Hough Theo

đó, cứ mỗi lần có một đường thẳng đi qua một điểm (𝜃, 𝑝) thì giá trị tích lũy của điểm đó sẽ

tang lên 1 đơn vị

Do ta xét mặt phẳng ảnh x-y chỉ nằm trên góc phần tư thứ nhất với 𝑥 ≥ 0 𝑣à 𝑦 ≥ 0

nên ta chỉ xét khoảng −90 ≤ 𝜃 ≤ 90 trên mặt phẳng Hough

Khoảng cách lớn nhất giữa đường thẳng trong mặt phẳng ảnh với gốc tọa độ bằng với

đường chéo của ảnh, ta đặt là pmax Khoảng của p phải xét trong mặt phẳng Hough là

−𝑝𝑚𝑎𝑥 ≤ 𝑝 ≤ 𝑝𝑚𝑎𝑥

Các bước của bài toán phát hiện đường thẳng bằng biến đổi Hough:

Biến đổi ảnh về ảnh nhị phân cạnh

Thực hiện biến đổi Hough cho những pixel trắng trên ảnh cạnh

Trang 37

Kiểm tra ma trận tích lũy trên mặt phẳng Hough Lọc ra các điểm (𝜃, 𝑝) có giá trị tích lũy lớn hơn một ngưỡng nào đó

Với mỗi 𝜃0 𝑣à 𝑝0 ta đã tìm ra một phương trình đường thẳng trên mặt phẳng ảnh x-y

𝑝0 = 𝑥𝑐𝑜𝑠𝜃0 + 𝑦𝑠𝑖𝑛𝜃0Lưu ý: độ chia của mặt phẳng Hough theo phương 𝜃 𝑣à 𝑝 không nên quá nhỏ, vì thời gian tính toán sẽ lớn Đối với biến đổi Hough thời gian tính là một yếu tố quan trọng vì nó sử dụng 3 vòng lặp lồng nhau Vì vậy với ảnh có độ phân giải lớn sử dụng biến đổi Hough rất tốn thời gian

Xoay ảnh:

Bài này xin trình bày cách xoay ảnh như hình minh họa dưới

Hình 2-24 Minh họa việc xoay ảnh một góc a

Thuật toán sử dụng là quay tất cả các điểm quanh điểm trên cùng bên trái của ảnh một góc alpha theo chiều dương qui ước Có hai cách để thực hiện việc xoay này là ánh xạ xuôi (forward mapping) và ánh xạ ngược (reverse mapping) Forward mapping sẽ làm cho ảnh có

lỗ Với reverse mapping, ảnh mượt hơn nhưng các mép vẫn không được mềm lắm [3]

Forward mapping

Trong forward mapping, từ mỗi điểm của ảnh gốc, xác định một điểm của ảnh kết quả

Do phải làm tròn số khi thực hiện phép xoay nên ở ảnh gốc, có những pixel không được "tô màu" làm cho trên ảnh xuất hiện những "lỗ" li ti Đối với ảnh đen trắng không cần chất lượng cao, sau khi tạo ra ảnh xoay với những lỗ trống chưa được gán trị, ta có thể tự gán trị cho lỗ trống đó bằng giá trị trung bình của các điểm ảnh xung quanh

Hình học giải tích cấp 3 và đại số tuyến tính đại học có trình bày về cách xoay điểm M(x, y) quanh gốc tọa độ góc a, thành N(x', y') như sau:

Forward mapping:

Trang 38

Hình 2-25 Xoay điểm N quanh gốc O một góc a sẽ được điểm M

| 𝑦′| = | 𝑥′ 𝑐𝑜𝑠𝑎 −𝑠𝑖𝑛𝑎 𝑠𝑖𝑛𝑎 𝑐𝑜𝑠𝑎 | | 𝑦| 𝑥Hay

có hiện tượng "lỗ" như ở trên

Ta tìm ma trận xoay ảnh trong trường hợp này như sau:

Trang 39

Hình 2-26 Kết quả xoay ảnh của phương pháp Forward Mapping

Xoay ảnh ở tâm:

Ở trên vừa trình bày cách xoay ảnh ở góc tọa độ ban đầu của ảnh, tức là góc trên cùng bên trái Tuy nhiên trong phần lớn các ứng dụng, người ta thường cần xoay ảnh ở tâm của bức ảnh Để làm được việc đó trước và sau khi xoay ảnh người lập trình tiến hành đổi hệ tọa độ quy chiếu bức ảnh như sau:

Trang 40

Hình 2-27 Các bước đổi tọa độ ảnh [4]

Resize ảnh:

Có nhiều phương pháp resize ảnh khác nhau Sau đây là các phương pháp thường dùng

Nội suy là phương pháp ước tính giá trị của các điểm dữ liệu chưa biết trong phạm vi

của một tập hợp rời rạc chứa một số điểm dữ liệu đã biết

Trong khoa học kỹ thuật, người ta thường có một số điểm dữ liệu đã biết giá trị bằng cách lấy mẫu thực nghiệm Những điểm này là giá trị đại diện của một hàm số của một biến

số độc lập có một lượng giới hạn các giá trị Thường chúng ta phải nội suy (hoặc ước tính) giá trị của hàm số này cho một giá trị trung gian của một biến độc lập Điều này có thể thực hiện bằng phương pháp đường cong phù hợp hoặc phân tích hồi quy

Phương pháp nội suy điểm lân cận gần nhất (Nearest-neighbor):

Ý tưởng của phương pháp này là ta xấp xỉ giá trị của điểm trên ảnh kết quả bằng với giá trị của điểm gần nhất trên ảnh gốc sau khi nhân với tỉ lệ chiều dọc và chiều ngang

Giả sử ta có ảnh ban đầu là I có kích thước 𝑤 × ℎ

Ta cần resize ảnh này thành ảnh I’ kích thước 𝑤′ × ℎ′

Ta tiến hành tính như sau:

Ngày đăng: 08/01/2014, 01:48

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] "Mô hình màu RGB," [Online]. Available: http://vi.wikipedia.org/wiki/M%C3%B4_h%C3%ACnh_m%C3%A0u_RGB Sách, tạp chí
Tiêu đề: Mô hình màu RGB
[3] Goccay, "[Xử lý ảnh] Xoay ảnh," 2012 4 13. [Online]. Available: http://goccay.vn/showthread.php?4601-Xu-ly-anh-Xoay-anh Sách, tạp chí
Tiêu đề: [Xử lý ảnh] Xoay ảnh
[4] G. Owen, "2D Rotation," 2 6 1999. [Online]. Available: http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/2drota.htm. [Accessed 2013] Sách, tạp chí
Tiêu đề: 2D Rotation
[5] "Support vector machine," Wikipedia, [Online]. Available: http://en.wikipedia.org/wiki/Support_vector_machine Sách, tạp chí
Tiêu đề: Support vector machine
[6] Altera, "Video IP Cores for Altera DE-Series Boards," Altera, 2012 Sách, tạp chí
Tiêu đề: Video IP Cores for Altera DE-Series Boards
[7] J. D. Bakos, Writer, Embedded Systems Video Out and Image Transformation. [Performance]. University of SouthCarolina Sách, tạp chí
Tiêu đề: Embedded Systems Video Out and Image Transformation
[8] "Cơ chế DMA," Wikipedia, [Online]. Available: http://vi.wikipedia.org/wiki/C%C6%A1_ch%E1%BA%BF_DMA Sách, tạp chí
Tiêu đề: Cơ chế DMA
[9] Altera, "Clock Signal for Altera DE-Series Boards," Altera, 2011 Sách, tạp chí
Tiêu đề: Clock Signal for Altera DE-Series Boards
[10] Altera, "Media Computer System for the Altera DE2 Board," Altera, 2010 Sách, tạp chí
Tiêu đề: Media Computer System for the Altera DE2 Board
[11] Altera, "Parallel Port for Altera DE-Series Boards," Altera, 2011 Sách, tạp chí
Tiêu đề: Parallel Port for Altera DE-Series Boards
[12] Altera, "16x2 Character Display for Altera DE2-Series Boards," Altera, 2011 Sách, tạp chí
Tiêu đề: 16x2 Character Display for Altera DE2-Series Boards
[14] P. A. Phương, “Một số phương pháp trích chọn đặc trưng hiệu quả cho bài toán nhận dạng chữ viết tay rời rạc,” Tạp chí khoa học Đại Học Huế, số 53, 2009 Sách, tạp chí
Tiêu đề: Một số phương pháp trích chọn đặc trưng hiệu quả cho bài toán nhận dạng chữ viết tay rời rạc,” "Tạp chí khoa học Đại Học Huế, số 53
[15] P. Breeuwsma, "Cubic interpolation," [Online]. Available: http://www.paulinternet.nl/?page=bicubic Sách, tạp chí
Tiêu đề: Cubic interpolation
[16] H. D. Hiệu, Đọc ảnh bitmap từ SD card hiển thị màn hình VGA trên kit DE2, Hồ Chí Minh: LVTN Kỹ sư, Đại học Bách Khoa TP.HCM, 2013 Sách, tạp chí
Tiêu đề: Đọc ảnh bitmap từ SD card hiển thị màn hình VGA trên kit DE2
[1] Altera, "Introduction to the Altera SOPC Builder Using Verilog Designs&#34 Khác

HÌNH ẢNH LIÊN QUAN

Hình 2-1 Ví dụ về một hệ thống Nios thực hiện trên kit DE2 bằng SOPC builder. - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 1 Ví dụ về một hệ thống Nios thực hiện trên kit DE2 bằng SOPC builder (Trang 13)
Hình 2-3 Tổ chức bộ nhớ và I/O của Nios II - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 3 Tổ chức bộ nhớ và I/O của Nios II (Trang 15)
Hình 2-7 Các bước thiết kế hệ thống SOPC - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 7 Các bước thiết kế hệ thống SOPC (Trang 19)
Hình 2-8 Các bước thiết kế hệ thống SOPC - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 8 Các bước thiết kế hệ thống SOPC (Trang 19)
Hình 2-11 Các bước thiết kế hệ thống SOPC - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 11 Các bước thiết kế hệ thống SOPC (Trang 21)
Hình 2-14 Các bước thực hiện Nios II Software - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 14 Các bước thực hiện Nios II Software (Trang 23)
Hình 2-15 Các bước thực hiện Nios II Software - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 15 Các bước thực hiện Nios II Software (Trang 24)
Hình 2-17 Đổ chương trình đã biên dịch từ Quartus xuống FPGA - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 17 Đổ chương trình đã biên dịch từ Quartus xuống FPGA (Trang 26)
Hình 2-21 Ảnh trước và sau khi phát hiện cạnh - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 21 Ảnh trước và sau khi phát hiện cạnh (Trang 32)
Hình 2-22   b) Sobel.  c)Prewitt.  d) Robert.  e)Laplacian. - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 22 b) Sobel. c)Prewitt. d) Robert. e)Laplacian (Trang 35)
Hình 2-26 Kết quả xoay ảnh của phương pháp Forward Mapping - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 26 Kết quả xoay ảnh của phương pháp Forward Mapping (Trang 39)
Hình 2-27 Các bước đổi tọa độ ảnh [4] - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 27 Các bước đổi tọa độ ảnh [4] (Trang 40)
Hình 2-35 Siêu phẳng phân lớp cách đều hai siêu phẳng lề. - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 2 35 Siêu phẳng phân lớp cách đều hai siêu phẳng lề (Trang 47)
Hình 3-1 Sơ đồ khối hệ thống được thiết kế bằng SOPC - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 3 1 Sơ đồ khối hệ thống được thiết kế bằng SOPC (Trang 58)
Hình 3-2: chế độ màu của VGA - NHẬN DIỆN BIỂN số XE BẰNG KIT DE2 DUNG NIOS II
Hình 3 2: chế độ màu của VGA (Trang 59)

TỪ KHÓA LIÊN QUAN

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

w