ĐỒ Á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.
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ -o0o - ĐỒ ÁN MÔN HỌC NHẬN DẠNG KÝ TỰ BẰNG OPENCV TRÊN DE10-STANDARD GVHD: Trịnh Vũ Đăng Nguyên TP HỒ CHÍ MINH, THÁNG NĂM 2021 Lời cảm ơn GVHD: Trịnh Vũ Đăng Nguyên LỜI CẢM ƠN Lời đầu tiên, em xin gửi lời cảm ơn chân thành tri ân sâu sắc quý thầy cô Trường Đại Học Bách Khoa TP Hồ Chí Minh nói chung Khoa Điện – Điện tử nói riêng tận tình dạy dỗ, vun đấp kiến thức năm qua tạo điều kiện cho em thực đề tài Đặc biệt em xin bày tỏ lòng biết ơn lời cảm ơn sâu sắc đến thầy Trịnh Vũ Đăng Nguyên Trong trình thực đồ án em nhận sử quan tâm giúp đỡ, hướng dẫn tận tình tâm huyết thầy Thầy giúp em tích lũy thêm nhiều kiến thức để có nhìn sâu sắc hồn thiện đề tài Từ kiến thức thầy truyền tải em hồn thành phần đề tài Kiến thức vô hạn mà tiếp nhận kiến thức thân người tồn hạn chế định Do q trình hồn thành đề tài, chắn khơng tránh khỏi thiếu sót Em mong góp ý đến từ thầy, để đề tài em hồn thiện Kính chúc quý thầy cô sức khỏe, hạnh phúc thành công sống đường giảng dạy Tp Hồ Chí Minh, ngày 25 tháng năm 2021 Sinh viên Nhận diện ký tự OpenCV De10-Standard GVHD: Trịnh Vũ Đăng Nguyê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 hình VGA từ FPGA Một khung hình từ nguồn cấp liệu video chụp lại lưu trữ HPS HPS sử dụng OpenCV để xác định kí tự có hình ảnh, loa sử dụng để đọc kí tự phát Âm phát cách mở tệp mẫu tương ứng với chữ Nhận diện ký tự OpenCV De10-Standard GVHD: Trịnh Vũ Đăng Nguyên MỤC LỤC GIỚI THIỆU .1 1.1 Tổng quan 1.2 Nhiệm vụ đề tài LÝ THUYẾT 2.1 DE10-Standard 2.2 OpenCV .2 2.3 Đối sánh mẫu THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 3.1 Hệ thống tổng quát 3.2 Camera→FPGA→VGA 3.3 File âm thanh→FPGA→Loa 11 THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 11 KẾT QUẢ THỰC HIỆN 16 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 TÀI LIỆU THAM KHẢO 22 PHỤ LỤC 22 Nhận diện ký tự OpenCV De10-Standard GVHD: Trịnh Vũ Đăng Nguyên DANH SÁCH HÌNH MINH HỌA Hình 2-1 De10-Standard development board Hình 3-1.1 Camera Hình 3-1.2 Thẻ nhớ 16GB Hình 3-1.3 Kit De10- Standard .5 Hình 3-1.4 Loa Hình 3-1.5 Màn hình VGA .5 Hình 3-2.1 Video-In Decoder Qsys Hình 3-2.2 Chrama Resampler Qsys Hình 3-2.3 Colour- Space Converter Qsys .7 Hình 3-2.4 Clipper Qsys Hình 3-2.5 Scaler Qsys Hình 3-2.6 RGB Resampler Qsys Hình 3-2.7 DMA Controller Qsys 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 Hình 5-5 Tích hợp OpenCV 18 Nhận diện ký tự OpenCV De10-Standard GVHD: Trịnh Vũ Đăng Nguyên Hình 5-6 Nguồn ảnh chữ H 18 Hình 5-7 Kết nhận diện H 19 Hình 5-8 Kết đối sánh mẫu 19 Hình 5-9 Nguồn chữ A 20 Hình 5-10 Kết nhận diện A 20 Hình 5-11 Kết đối sánh mẫu 21 Nhận diện ký tự OpenCV De10-Standard GVHD: Trịnh Vũ Đăng Nguyên GIỚI THIỆU 1.1 Tổng quan Hệ thống xây dựng dự án sử dụng DE10-Standard có khả nhận dạng chữ sau nói chúng giọng mẫu thu âm từ trước Dự án sử dụng: Loa, hình VGA camera Dự án gồm phần chính: hiển thị video trực tiếp hình VGA, ghi âm mẫu phát loa, nhận dạng ký tự OpenCV 1.2 Nhiệm vụ đề tài Nội dung 1: Tìm hiểu nguyên lý, lý thuyết FPGA, Tìm hiểu 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 sử dụng vi xử lý nios ii FBGA hiển thị Hello world Nội dung 4: Xử lý video trực tiếp nhận từ camera xuất VGA Nội dung 5: Viết giải thuật phần mền code nhận diện ký tự OpenCV HPS, mô Visual Studio 2019 Nội dung 6: Xử lý file âm từ HPS xuất loa LÝ THUYẾT 2.1 DE10-Standard DE10-Standard trình bày tản thiết kế phần cứng mạnh mẽ xây dựng dựa Intel System-on-Chip (SoC) FPGA, kết hợp lõi nhúng Cortex-A9 với lập trình logic hàng đầu ngành để mang lại linh hoạt thiết kế Intel’s SoC tích hợp hệ thống xử lý cứng dựa ARM (HPS) bao gồm xử lý, thiết bị ngoại vi giao diện nhớ kết nối liền mạch với cấu hình FPGA cách sử Nhận diện ký tự OpenCV De10-Standard GVHD: Trịnh Vũ Đăng Nguyên dụng đượng trục kết nối băng thông cao Được trang bị nhớ DDR3 tốc độ cao, khả video â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 thư viện nguồn mở hàng đầu cho Computer Vision Machine Learning, có thêm tính tăng tốc GPU cho hoạt động theo real-time Nó có giao diện C++, C, Python Java hỗ trợ Windows, Linux, Mac OS, iOS Android OpenCV thiết kế để hỗ trợ hiệu tính tốn chun dùng cho ứng dụng real-time (thời gian thực) Nếu viết C/C++ tối ưu, thư viện tận dụng xử lý đa lõi (multi-core processing) Theo tính ứng dụng OpenCV, chia thư viện thánh nhóm tính module tương ứng sau: Xử lý hiển thị Hình ảnh/ Video/ I/O (core, imgproc, highgui) Phát vật thể (objdetect, features2d, nonfree) Geometry-based monocular stereo computer vision (calib3d, stitching, videostab) Computational photography (photo, video, superres) Machine learning & clustering (ml, flann) Nhận diện ký tự OpenCV De10-Standard GVHD: Trịnh Vũ Đăng Nguyên 2.3 Đối Sánh Mẫu Sử dụng hàm OpenCV matchTemplate() để tìm kiếm kết phù hợp mẫu hình ảnh hình ảnh đầu vào Sử dụng hàm OpenCV minMaxLoc () để tìm giá trị lớn nhỏ (cũng vị trí chúng) mảng định Đối sánh mẫu gì? Đối sánh mẫu kỹ thuật để tìm vùng hình ảnh khớp (tương tự) với hình ảnh mẫu (bản vá) Mặc dù vá phải hình chữ nhật khơng phải tất hình chữ nhật phù hợp Trong trường hợp vậy, mặt nạ sử dụng để lập phần miếng vá sử dụng để tìm trùng khớp THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 3.1 Hệ thống tổng quát Sơ đồ khối tổng quát hệ thống Camera góc nghiêng Loa SD Card HPS góc nghiêng FPGA góc nghiêng VGA góc nghiêng Phân tích thiết kế o Khối Camera: đọc tín hiệu từ nguồn video trực tiếp qua cổng videoin đến FPGA để xử lý Nhận diện ký tự OpenCV De10-Standard GVHD: Trịnh Vũ Đăng Nguyên Hình 3-1.1 Camera o SD Card: lưu trữ file âm hình ảnh mẫu Hình 3-1.2 Thẻ nhớ 16GB o Khối HPS: Xử lý hình ảnh chụp từ video, sử dụng OpenCV để nhận diện kí tự, xuất file âm phù hợp o FPGA: Xử lý video từ camera xuất VGA, xử lý file âm từ HPS xuất loa Nhận diện ký tự OpenCV De10-Standard - GVHD: Trịnh Vũ Đăng Nguyên Khối Dual Clock Fifo: Giúp truyền luồng miền clock (system clock VGA clock), liệu đọc fifo tần số xung nhiệp đầu Hình 3-2.9 Dual-Clock FIFO Qsys - Khối VGA Controller: Tín hiệu video cuối qua VGA tín hiệu 30bitRGB (640x480 pixel) Hình 3-2.10 VGA Controller Qsys 3.3 File âm →FPGA→Loa (Chưa tìm hiểu) THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM Yêu cầu đặt cho phần mềm 10 Nhận diện ký tự OpenCV De10-Standard GVHD: Trịnh Vũ Đăng Nguyên Nhận diện xác định chữ có khung hình Phân tích Lấy hình ảnh mẫu có so sánh với hình ảnh gốc có để xác định mức độ phù hợp hình mẫu với vùng hình ảnh, tất mẫu di chuyển tồn ảnh tính tốn hệ số tương quan vị trí Hệ số tương quan lớn mẫu ghi lại, so sánh giá trị lớn ta tìm mẫu phù hợp 11 Nhận diện ký tự OpenCV De10-Standard GVHD: Trịnh Vũ Đăng Nguyên Lưu đồ giải thuật tổng quát Bắt đầu Dùng hàm imreal() để đọc ảnh Đọc ảnh nguồn mẫu nguồn ma trận mẫu Đối sánh mẫu chọn hệ số tương Đối sánh nguồn với mẫu quan lớn mẫu So sánh chọn mẫu So sánh hệ số tương quan với nhau, hệ số lớn mẫu 12 Nhận diện ký tự OpenCV De10-Standard GVHD: Trịnh Vũ Đăng Nguyên Dùng hàm imshow() xuất ảnh Xuất ảnh nguồn, kết quả, đối sánh nguồn, kết đối sánh mẫu đúng, kết qủa nhận diện Kết thúc Lưu đồ giải thuật chi tiết Bắt đầu Đọc ảnh nguồn mẫu Tạo thêm cửa sổ ảnh maxVal, maxLoc GT I