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

Nhận diện ký tự bằng OpenCV trên de10 standard

30 169 3
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

Định dạng
Số trang 30
Dung lượng 1,6 MB

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

Nội dung

ĐỒ ÁN MÔN HỌC NHẬN DẠNG KÝ TỰ BẰNG OPENCV TRÊN DE10STANDARD GVHD: Trịnh Vũ Đăng Nguyên TP. HỒ CHÍ MINH, THÁNG 1 NĂM 2021   LỜI CẢM ƠN Lời đầu tiên, em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với quý thầy cô của Trường Đại Học Bách Khoa TP. Hồ Chí Minh nói chung và Khoa Điện – Điện tử nói riêng đã tận tình dạy dỗ, vun đấp kiến thức trong những năm qua và tạo điều kiện cho em thực hiện đề tài này. Đặc biệt em xin bày tỏ lòng biết ơn và lời cảm ơn sâu sắc đến thầy Trịnh Vũ Đăng Nguyên. Trong quá trình thực hiện đồ án em đã nhận được sử quan tâm giúp đỡ, hướng dẫn tận tình tâm huyết của thầy. Thầy đã giúp em tích lũy thêm nhiều kiến thức để có cái nhìn sâu sắc và hoàn thiện hơn về đề tài của mình. Từ những kiến thức thầy truyền tải em đã có thể hoàn thành một phần trong đề tài của mình. Kiến thức là vô hạn mà sự tiếp nhận kiến thức của bản thân mỗi người luôn tồn tại những hạn chế nhất định. Do đó trong quá trình hoàn thành đề tài, chắc chắn không tránh khỏi những thiếu sót. Em rất mong sự góp ý đến từ các thầy, cô để đề tài của em được hoàn thiện hơn. Kính chúc quý thầy cô sức khỏe, hạnh phúc và thành công trong cuộc sống cũng như trên con đường giảng dạy. Tp. Hồ Chí Minh, ngày 25 tháng 1 năm 2021 . Sinh viên   TÓM TẮT ĐỒ ÁN Dự án sử dụng camera để hiển thị nguồn cấp tín hiệu video trực tiếp đến màn hình VGA từ FPGA. Một trong các khung hình từ nguồn cấp dữ liệu video sẽ được chụp lại và lưu trữ trên HPS. HPS sử dụng OpenCV để xác định kí tự có trong hình ảnh, một loa được sử dụng để đọc kí tự được phát hiện. Âm thanh được phát bằng cách mở một tệp mẫu tương ứng với chữ cái   MỤC LỤC 1. GIỚI THIỆU 1 1.1 Tổng quan 1 1.2 Nhiệm vụ đề tài 1 2. LÝ THUYẾT 1 2.1 DE10Standard 1 2.2 OpenCV 2 2.3 Đối sánh mẫu 3 3. THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 3 3.1 Hệ thống tổng quát 3 3.2 Camera→FPGA→VGA 6 3.3 File âm thanh→FPGA→Loa 11 4. THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 11 5. KẾT QUẢ THỰC HIỆN 16 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 21 6.1 Kết luận 21 6.2 Hướng phát triển 21 7. TÀI LIỆU THAM KHẢO 22 8. PHỤ LỤC 22   DANH SÁCH HÌNH MINH HỌA Hình 2 1 De10Standard development board 2. Hình 3 1.1 Camera 4. Hình 3 1.2 Thẻ nhớ 16GB 4. Hình 3 1.3 Kit De10 Standard 5. Hình 3 1.4 Loa 5. Hình 3 1.5 Màn hình VGA 5. Hình 32.1 VideoIn Decoder Qsys 6. Hình 32.2 Chrama Resampler Qsys 7. Hình 32.3 Colour Space Converter Qsys 7. Hình 32.4 Clipper Qsys 8. Hình 32.5 Scaler Qsys 8. Hình 32.6 RGB Resampler Qsys 9. Hình 32.7 DMA Controller Qsys 9. Hình 32.8 Pixel Buffer DMA Controller Qsys 10. Hình 32.9 DualClock FIFO Qsys 10. Hình 32.10 VGA Controller Qsys 11. Hình 51 Quartus Prime 18.1 16. Hình 5 2 Visual Studio 2019 16. Hình 5 3 Tool De10Standard 17. Hình 5 4 Tạo file .qsys 17. Hình 5 5 Tích hợp OpenCV 18. Hình 5 6 Nguồn ảnh chữ H 18. Hình 5 7 Kết quả nhận diện H 19. Hình 5 8 Kết quả đối sánh mẫu 19. Hình 5 9 Nguồn chữ A 20. Hình 5 10 Kết quả nhận diện chứ A 20. Hình 5 11 Kết quả đối sánh mẫu 21.

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ

Trang 2

LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với quý thầy cô của Trường Đại Học Bách Khoa TP Hồ Chí Minh nói chung và Khoa Điện – Điện tử nói riêng đã tận tình dạy dỗ, vun đấp kiến thức trong những năm qua và tạo điều kiện cho em thực hiện đề tài này.

Đặc biệt em xin bày tỏ lòng biết ơn và lời cảm ơn sâu sắc đến thầy Trịnh Vũ Đăng Nguyên Trong quá trình thực hiện đồ án em đã nhận được sử quan tâm giúp

đỡ, hướng dẫn tận tình tâm huyết của thầy Thầy đã giúp em tích lũy thêm nhiều kiến thức để có cái nhìn sâu sắc và hoàn thiện hơn về đề tài của mình Từ những kiến thức thầy truyền tải em đã có thể hoàn thành một phần trong đề tài của mình.

Kiến thức là vô hạn mà sự tiếp nhận kiến thức của bản thân mỗi người luôn tồn tại những hạn chế nhất định Do đó trong quá trình hoàn thành đề tài, chắc chắn không tránh khỏi những thiếu sót Em rất mong sự góp ý đến từ các thầy, cô

để đề tài của em được hoàn thiện hơn.

Kính chúc quý thầy cô sức khỏe, hạnh phúc và thành công trong cuộc sống cũng như trên con đường giảng dạy.

Tp Hồ Chí Minh, ngày 25 tháng 1 năm 2021

Trang 4

MỤC LỤC

1 GIỚI THIỆU 1

1.1 Tổng quan 1

1.2 Nhiệm vụ đề tài 1

2 LÝ THUYẾT 1

2.1 DE10-Standard 1

2.2 OpenCV 2

2.3 Đối sánh mẫu 3

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

3.1 Hệ thống tổng quát 3

3.2 Camera→FPGA→VGA 6

3.3 File âm thanh→FPGA→Loa 11

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

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

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

6.1 Kết luận 21

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

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

8 PHỤ LỤC 22

Trang 5

DANH SÁCH HÌNH MINH HỌA

Hình 2-1 De10-Standard development board 2.

Hình 3-1.1 Camera 4.

Hình 3-1.2 Thẻ nhớ 16GB 4.

Hình 3-1.3 Kit De10- Standard 5.

Hình 3-1.4 Loa 5.

Hình 3-1.5 Màn hình VGA 5.

Hình 3-2.1 Video-In Decoder Qsys 6.

Hình 3-2.2 Chrama Resampler Qsys 7.

Hình 3-2.3 Colour- Space Converter Qsys 7.

Hình 3-2.4 Clipper Qsys 8.

Hình 3-2.5 Scaler Qsys 8.

Hình 3-2.6 RGB Resampler Qsys 9.

Hình 3-2.7 DMA Controller Qsys 9.

Hình 3-2.8 Pixel Buffer DMA Controller Qsys 10.

Hình 3-2.9 Dual-Clock FIFO Qsys 10.

Hình 3-2.10 VGA Controller Qsys 11.

Hình 5-1 Quartus Prime 18.1 16.

Hình 5-2 Visual Studio 2019 16.

Hình 5-3 Tool De10-Standard 17.

Hình 5-4 Tạo file qsys 17.

Trang 6

Hình 5-6 Nguồn ảnh chữ H 18.

Hình 5-7 Kết quả nhận diện H 19.

Hình 5-8 Kết quả đối sánh mẫu 19.

Hình 5-9 Nguồn chữ A 20.

Hình 5-10 Kết quả nhận diện chứ A 20

Hình 5-11 Kết quả đối sánh mẫu 21.

Trang 7

1.2 Nhiệm vụ đề tài

Nội dung 1: Tìm hiểu nguyên lý, lý thuyết về FPGA, Tìm hiểu và sử dụng phần mềm Quartus

Nội dung 2: Tìm hiểu lý thuyết thư viện OpenCV, nhúng OpenCV vào HPS

Nội dung 3: Build chương trình đầu tiên sử dụng bộ vi xử lý nios ii trên FBGA hiển thị Hello world

Nội dung 4: Xử lý video trực tiếp được nhận từ camera xuất ra VGA

Nội dung 5: Viết giải thuật phần mền và code nhận diện ký tự bằng OpenCV trên HPS, mô phỏng bằng Visual Studio 2019

Nội dung 6: Xử lý file âm thanh từ HPS xuất ra loa

2 LÝ THUYẾT

2.1 DE10-Standard

DE10-Standard trình bày một nền tản thiết kế phần cứng mạnh mẽ được xây dựng dựa trên Intel System-on-Chip (SoC) FPGA, kết hợp các lõi nhúng Cortex-A9 với lập trình logic hàng đầu trong ngành để mang lại sự linh hoạt trong thiết kế Intel’sSoC tích hợp hệ thống xử lý cứng dựa trên ARM (HPS) bao gồm bộ xử lý, thiết bị ngoại vi và giao diện bộ nhớ được kết nối liền mạch với cấu hình FPGA bằng cách sử

Trang 8

dụng đượng trục kết nối băng thông cao Được trang bị bộ nhớ DDR3 tốc độ cao, khả năng video và âm thanh, kết nội mạng Ethernet

Hình 2-1: De10-Standard development board 2.2 OpenCV

OpenCV viết tăt cho Open Source Computer Vision Library là thư viện nguồn

mở hàng đầu cho Computer Vision và Machine Learning, và hiện có thêm tính năng tăng tốc GPU cho các hoạt động theo real-time.Nó có trên các giao diện C++, C, Python và Java và hỗ trợ Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để hỗ trợ hiệu quả về tính toán và chuyên dùng cho các ứng dụng real-time (thời gian thực) Nếu được viết trên C/C++ tối ưu, thư viện này có thể tận dụng được

bộ xử lý đa lõi (multi-core processing)

Theo tính năng và ứng dụng của OpenCV, có thể chia thư viện này thánh các nhóm tính năng và module tương ứng như sau:

Xử lý và hiển thị Hình ảnh/ Video/ I/O (core, imgproc, highgui)

 Phát hiện các vật thể (objdetect, features2d, nonfree)

Geometry-based monocular hoặc stereo computer vision (calib3d, stitching,

videostab)

Computational photography (photo, video, superres)

Machine learning & clustering (ml, flann)

Trang 9

góc nghiêng

VGAgóc nghiêng

Trang 10

Hình 3-1.1 Camera

o SD Card: lưu trữ file âm thanh và hình ảnh mẫu

Hình 3-1.2 Thẻ nhớ 16GB

o Khối HPS: Xử lý hình ảnh được chụp từ video, sử dụng OpenCV để nhận

diện kí tự, và xuất file âm thanh phù hợp

o FPGA: Xử lý video từ camera xuất ra VGA, xử lý file âm thanh từ HPS

xuất ra loa

Trang 11

Hình 3-1.3: Kit De10- Standard

o Loa: Phát âm thanh

Hình 3.1.4 Loa

o VGA: Tín hiệu từ cổng VGA được hiển thị lên màn hình

Hình 3-1.5: Màn hình VGA

3.2 Camera →FPGA →VGA

Sơ đồ khối thực hiện phần cứng

Tính toán và vẽ sơ đồ mạch chi tiết

Scaler1

RGB Resampler1

DMA Controller SDRAM

Dual Clock Fifo

RGB Resampler2 Scaler2

Pixel Buffer

DMA

Controller

VGA Controller

Trang 12

- Khối Video-In Decoder: Đọc tín hiệu video vào nguồn là On-Board VideoIn

Tín hiệu video ở dạng YUV 4:2:2 (720x244 pixel)

Hình 3-2.1 Video-In Decoder Qsys

- Khối Chroma Resample: Chuyển tín hiệu video từ YCrCb 4:2:2 về YCrCb

4:4:4 (720x240 pixel)

Hình 3-2.2 Chrama Resampler Qsys

- Khối Colour-Space Converter: Chuyển tín hiệu video từ YCrCb 4:4:4 về 24bit- RGB (720x244 pixel)

Trang 13

Hình 3-2.3 Colour- Space Converter Qsys

- Khối Clipper: Thay đổi độ phân giải của tín hiệu video (720x244 pixel) →

(640x240 pixel)

Hình 3-2.4 Clipper Qsys

- Khối Scaler1: 24bit- RGB (680x240 pixel)→ 24bit- RGB (320x240 pixel)

Trang 15

Hình 3-2.7 DMA Controller Qsys

- Khối SDRAM: Bộ nhớ lưu trữ khung hình video

- Khối Pixel Buffer DMA: Đọc các khung hình video từ bộ nhớ

Hình 3-2.8 Pixel Buffer DMA Controller Qsys

- Khối Scaler2: 16bit- RGB (320x240 pixel)→ 16bit- RGB (640x480 pixel)

- Khối RGB Resample2: 16bit- RGB (640x480 pixel)→ 30bit- RGB (640x480

Trang 16

- Khối Dual Clock Fifo: Giúp truyền 1 luồng giữa 2 miền clock (system clock

và VGA clock), dữ liệu được đọc ra fifo ở tần số xung nhiệp đầu ra

Hình 3-2.9 Dual-Clock FIFO Qsys

- Khối VGA Controller: Tín hiệu video cuối cùng qua VGA là tín hiệu

30bit-RGB (640x480 pixel)

Hình 3-2.10 VGA Controller Qsys

3.3 File âm thanh →FPGA→Loa

(Chưa tìm hiểu)

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

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

Trang 17

Nhận diện và xác định chữ cái có trong khung hình

Phân tích

Lấy các hình ảnh mẫu hiện có so sánh với hình ảnh gốc hiện có để xác định mức độ phù hợp của hình mẫu với từng vùng của hình ảnh, tất cả các mẫu được di chuyển trêntoàn ảnh tính toán hệ số tương quan tại mỗi vị trí Hệ số tương quan lớn nhất của mỗi mẫu được ghi lại, so sánh các giá trị lớn nhất đó ta tìm được mẫu phù hợp nhất

Trang 18

Lưu đồ giải thuật tổng quát

Dùng hàm imreal() để đọc ảnh

nguồn và ma trận mẫu

Đối sánh mẫu chọn hệ số tương

quan lớn nhất của từng mẫu

So sánh các hệ số tương quan với

Trang 20

 const char * image_window = "Kq Nhan Dien" ;

 const char * result_window = "MatchTemplate" ;

 double GT;

 int k;

Matchtemplate() minMaxLoc() Xuất các ảnh ra màn hình

GT<=maxVal

End

GT=maxVal

Diem=maxLoc

Trang 21

 //Khai báo ct con

 void ThucThi( int , void *);

 Nguon = imread( "NguonH.png" , 1);

 Mau[0] = imread( "MauA.png" , 1);

 Mau[1] = imread( "MauB.png" , 1);

 Mau[2] = imread( "MauC.png" , 1);

 Mau[3] = imread( "MauD.png" , 1);

 Mau[4] = imread( "MauE.png" , 1);

 Mau[5] = imread( "MauG.png" , 1);

 Mau[6] = imread( "MauH.png" , 1);

 Mau[7] = imread( "MauI.png" , 1);

 Mau[8] = imread( "MauK.png" , 1);

 Mau[9] = imread( "MauL.png" , 1);

 // Khởi tạo 2 cữa sổ ảnh

 //Khai váo biến cho hàm minMaxloc

 double minVal; double maxVal; Point minLoc; Point maxLoc;

 Point Diem1;

 for ( int i = 0; i < 10; i++)

 // Tạo ma trận kết quả

Trang 22

 int Kq_rows = Nguon.rows - Mau[i].rows;

 Ketqua.create(Kq_rows, Kq_cols, CV_32FC1 );

 //So sánh các mẫu với nguồn dùng hàm matchTemplate

 matchTemplate(Nguon, Mau[i], Ketqua, 5); //5 chọn loại TM_CCOEFF_NORMED

 minMaxLoc(Ketqua, &minVal, &maxVal, &minLoc, &maxLoc, Mat ());

 int Kq_cols = Nguon.cols - Mau[k].cols +1;

 int Kq_rows = Nguon.rows - Mau[k].rows +1;

 Ketqua.create(Kq_rows, Kq_cols, CV_32FC1 );

 matchTemplate(Nguon, Mau[k], Ketqua, 5);

 //normalize(Ketqua, Ketqua, 0, 1, NORM_MINMAX, -1, Mat());

 rectangle(Ketqua, Diem1, Point (Diem1.x + Mau[k].cols, Diem1.y + Mau[k].rows), Scalar ::all(1),

 Trình bày cách thức đo đạc, thử nghiệm

o Các phần mền sử dụng trong quá trình thực thi: Quartus Prime 18.1, Visual Studio 2019

Trang 23

Hình 5-1 Quartus Prime 18.1

Hình 5-2 Visual Studio 2019

o Các bước tiến hành thử nghiệm phần cứng

- Dùng tool De10-Standard V1.0.1 khởi tạo phần cứng

Trang 24

Hình 5-3 Tool De10-Standard

- Tạo file qsys

Hình 5-4 Tạo file qsys

- Gáng chân

- Compiler tạo file sof

- Download file sof lên kit

Trang 25

o Các bước tiến hành thử nghiệm phần mềm

- Tích hợp OpenCV vào Visual Studio 2019

Hình 5-5 Tích hợp OpenCV

- Code đọc xuất ảnh kiểm tra xem OpenCV có hoạt động không

- Kiểm tra các hàm xem các hàm cần dùng cho dự án hoạt động như thế nào

- Code chương trình nhận diện kí tự dùng OpenCV

Kết quả thu được

Trang 26

Hình 5-6 Nguồn ảnh chữ H

Hình 5-7 Kết quả nhận diện H

Trang 27

Hình 5-8 Kết quả đối sánh mẫu

Hình 5-9 Nguồn chữ A

Trang 29

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

6.2 Hướng phát triển

Động lực cho dự án này đến từ những người có vấn đề về thị lực không thể điều chỉnh

và vì vậy có thể gặp khó khăn khi đọc văn bản trên biển báo học nhãn

Đề tài có thể mở rộng hơn với việc nhận diện nhiều ký tự rồi ghép chúng lại thành từ,hay xa hơn là nhận diện và đọc văn bản

Từ đề tài này chúng ta có thể phát triển thành một thiết bị có thể giúp người khiếm thị

có thể đọc được các biển báo, thông báo, văn bản bằng hình ảnh

7 TÀI LIỆU THAM KHẢO

[1] Tống Văn On, “Thiết kế mạch số với VHDL & Verilog”, Nhà xuất bản Lao động Xã Hội,2007

[2] Altera Corp., “Video IP Cores for Altera DE-Series Boards”, www.altera.com

[3] “DE10-Standard use mamual” www.terasic.com

Trang 30

FPGA (field programmable gate array) là một IC bán dẫn mà phần mà phần lớn chức năng điện bên trong thiết bị có thể được thay đổi, thay đổi bởi kỹ sư thiết kế, thay đổi trong quá trình lắp ráp PCB, hoặc thậm chí thay đổi sau khi thiết bị đã được chuyển đến khách hàng tại hiện trường (field)

Ngày đăng: 04/09/2021, 13:42

TỪ KHÓA LIÊN QUAN

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

w