Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
3,78 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO TIỂU LUẬN Đề tài: “XÂY DỰNG CHƯƠNG TRÌNH NHẬN DIỆN BIỂN SỐ XE SỬ DỤNG KNN VÀ THƯ VIỆN OPENCV” Nhóm sinh viên thực hiện : Nguyễn Hoàng Hà Hoàng Văn Hùng Lớp : Nguyễn Thị Phương Thảo Nguyễn Hoàng Khánh Duy Giảng viên hướng dẫn : ATTT K18A TS Trần Quang Quý Thái Nguyên, tháng 9 năm 2023 MỤC LỤC DANH SÁCH HÌNH MINH HỌA 1 DANH SÁCH BẢNG SỐ LIỆU 4 LỜI MỞ ĐẦU 5 CHƯƠNG 1 GIỚI THIỆU .6 1.1 Tổng quan .6 1.2 Nhiệm vụ đề tài 6 CHƯƠNG 2 TỔNG QUAN VỀ AI, KNN VÀ OPENCV .7 2.1 Tổng quan về AI .7 2.1.1 Khái niệm AI (Artificial Intelligent) 7 2.1.2 Machine Learning 7 2.1.3 Deep Learning 9 2.2 Thuật toán KNN (K - Nearest Neighbor) .11 2.3 Xử lý ảnh và Open CV 14 CHƯƠNG 3 TỔNG QUAN BÀI TOÁN NHẬN DIỆN BIỂN SỐ XE 16 3.1 Biển số xe .16 3.1.1 Khái niệm biển số xe .16 3.1.2 Hướng giải quyết 16 3.2 Phát hiện vị trí và tách biển số xe 17 3.2.1 Hướng giải quyết 17 3.2.2 Chuyển ảnh xám 18 3.2.3 Tăng độ tương phản .18 3.2.4 Giảm nhiễu bằng bộ lọc Gauss 22 3.2.5 Nhị phân hóa với ngưỡng động (Adaptive Threshold) 23 3.2.6 Phát hiện cạnh Canny (Canny Edge Detection) 24 3.2.7 Lọc biển số với contour 27 3.3 Phân đoạn kí tự .31 3.3.1 Hướng giải quyết 31 3.3.2 Xoay biển số 31 3.3.3 Tìm vùng đối tượng .33 3.3.4 Tìm và tách kí tự 34 3.4 Nhận diện kí tự .34 CHƯƠNG 4 KẾT QUẢ THỰC HIỆN 37 4.1 Cách thức đo đạc, thử nghiệm 37 4.2 Kết quả và giải thích .37 KẾT LUẬN 43 HƯỚNG PHÁT TRIỂN 44 PHỤ LỤC CODE .45 TÀI LIỆU THAM KHẢO .55 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 57 DANH SÁCH HÌNH MINH HỌA Hình 1: Các lớp trong AI .7 Hình 2: Phân loại Machine Learning 8 Hình 3: Mô tả mô hình nhận diện động vật bằng mạng nơ-ron tích chập 9 Hình 4: Ví dụ về KNN .12 Hình 5: Xét khả năng tiêu thụ của xe 13 Hình 6: Dữ liệu sau chuẩn hóa 13 Hình 7: Sau khi tính khoảng cách và xếp hạng 14 Hình 8: Các bước chính trong nhận dạng biển số xe 17 Hình 9: Xác định và tách biển số xe 17 Hình 10: Ví dụ về phần tử cấu trúc 19 Hình 11: Phép co .19 Hình 12: Phép giãn nở .20 Hình 13: Phép mở 20 Hình 14: Phép đóng 21 Hình 15: Phép Top Hat 21 Hình 16: Phép Black Hat 21 Hình 17: Ảnh sau khi tăng độ tương phản 22 Hình 18: Nhiễu 22 Hình 19: Ma trận lọc Gauss .23 Hình 20: Kết quả sử dụng bộ lọc Gauss .23 Hình 21: Nhị phân hóa ảnh ngưỡng động 24 Hình 22: Loại bỏ những điểm không phải cực đại .26 Hình 23: Lọc ngưỡng 26 Hình 24: Ảnh sau khi phát hiện biên Canny 27 Hình 25: Thuật toán Square Tracing 28 1 Hình 26: Thuật toán Square Tracing chạy đúng .28 Hình 27: Thuật toán Square Tracing chạy sai 28 Hình 28: Thuật toán Moore - Neighbor .29 Hình 29: Vẽ Contour với OpenCV 30 Hình 30: Contour chưa xấp xỉ đa giác 31 Hình 31: Contour đã xấp xỉ đa giác 31 Hình 32: Các bước chính trong phân đoạn kí tự 31 Hình 33: Ảnh biển số chưa xoay 32 Hình 34: Ảnh biển số đã xoay 33 Hình 35: Ảnh nhị phân .33 Hình 36: Tìm vùng đối tượng 34 Hình 37: Ảnh kí tự sau khi cắt 34 Hình 38: Tập dữ liệu huấn luyện 35 Hình 39: Biển số trước khi nhận diện 36 Hình 40: Biển số sau khi nhận diện 36 Hình 41: Biển số xe được in ra trên hình gốc .36 Hình 42: Không tìm thấy kí tự 38 Hình 43: Ảnh gốc .38 Hình 44: Tìm thấy 5 kí tự 38 Hình 45: Tìm thấy 9 kí tự 38 Hình 46: Lấy ngưỡng cao/rộng 1.5 39 Hình 47: Lấy ngưỡng cao/rộng 1.4 39 Hình 48: Lỗi xấp xỉ Contour 39 Hình 49: Ảnh nhị phân bị đứt 40 Hình 50: Đường contour bị đứt đoạn 40 Hình 51: Ảnh gốc nhận diện 3 biển số .41 2 Hình 52: Biển số 1 .41 Hình 53: Biển số 2 .41 Hình 54: Biển số 3 .41 Hình 55: Không khoanh được vùng kí tự 42 3 DANH SÁCH BẢNG SỐ LIỆU Bảng 1: Tỉ lệ tìm thấy biển số xe trong hình 37 Bảng 2: Tỉ lệ nhận diện sai kí tự ở biển 1 hàng 40 Bảng 3: Tỉ lệ nhận diện sai kí tự ở biển 2 hàng 40 4 LỜI MỞ ĐẦU Hiện nay, số lượng xe cộ tham gia giao thông trên đường là rất lớn dẫn đến tiêu tốn rất nhiều nhân lực và vật lực cho việc quản lý phương tiện cá nhân trong bãi gửi xe Nếu không có một công cụ thuận tiện thì việc quản lý phương tiện cá nhân rất mất thời gian, dễ gây nhầm lẫn, thiệt hay cho người sử dụng dịch vụ tại các bãi đỗ xe Để giảm tải cho các công việc như thu tiền, bảo hiểm xe, tìm xe cộ trong bãi đỗ xe, trên thế giới đã phát triển công nghệ giám sát tự động đối với các phương tiện giao thông, chính nhờ tính cá nhân của biển số xe mà nó đã trở thành đối tượng chính được sử dụng để nghiên cứu, phát triển trong công nghệ này Do đó chúng em muốn chọn đề tài này như bước căn bản trong việc tìm hiểu các công cụ giám sát mạnh hơn như kiểm soát xe lưu thông trên đường hay nhận dạng khuôn mặt, đang được thế giới rất chú trọng lúc này 5 CHƯƠNG 1 GIỚI THIỆU 1.1 Tổng quan Nội dung: - Tìm hiểu về biển số xe và hệ thống nhận dạng biển số xe - Phát biểu bài toán và hướng giải quyết - Nghiên cứu một số thuật toán xử lý ảnh và nhận dạng kí tự ứng dụng trong việc nhận dạng biển số xe 1.2 Nhiệm vụ đề tài Từ nội dung nêu trên, đề tài của chúng em sẽ bao gồm các nhiệm vụ sau: - Tìm hiểu khái quát về xử lý ảnh và bài toán nhận dạng biển số xe - Tìm hiểu thông tin về biển số xe và phân loại biển số xe của Việt Nam - Tìm hiểu các công đoạn chính của bài toán nhận dạng biển số xe gồm 3 khâu chính: Phát hiện vị trí và tách biển số xe Phân đoạn kí tự trong biển số xe Nhận dạng kí tự - Cài đặt thử nghiệm 6 CHƯƠNG 2 TỔNG QUAN VỀ AI, KNN VÀ OPENCV 2.1 Tổng quan về AI 2 2.1.1 Khái niệm AI (Artificial Intelligent) Trí tuệ nhân tạo là dạng trí tuệ được biểu hiện ở máy móc, không giống như những dạng trí tuệ tự nhiên ở con người hay động vật Thông thường cụm từ “trí tuệ nhân tạo” sẽ được hiểu như máy móc có khả năng bắt chước hành vi và nhận thức của con người như việc học tập hay xử lý vấn đề Trong vài năm trở lại đây, AI thật sự bùng nổ, đặc biệt là từ năm 2015 Phần lớn trong số đó liên quan đến những tiện ích sẵn có của GPU khiến cho việc xử lý song song nhanh, rẻ và mạnh mẽ hơn Bên trong AI bao gồm hai khối nhỏ là Máy học (Machine learning) và Học sâu (Deep learning) Hình 1: Các lớp trong AI 2.1.1 2.1.2 Machine Learning Machine learning là một lĩnh vực sử dụng các thuật toán cho phép máy tính có thể học từ dữ liệu để thực hiện các công việc thay vì được lập trình một cách rõ ràng Một số ứng dụng có thể kể đến như xử lý hình ảnh (gắn thẻ, nhận diện kí tự, ô tô tự lái), phân tích văn bản (lọc mail spam, phân tích ngữ nghĩa và khai thác thông tin), 7