TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN KHO DỮ LIỆU VÀ CÁC PHƯƠNG PHÁP KHAI PHÁ ĐỀ TÀI ỨNG DỤNG GIẢI THUẬT K NN CHO BÀI TOÀN NHẬN DIỆN BIỂN SỐ XE MÁY Giáo vi.
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN KHO DỮ LIỆU VÀ CÁC PHƯƠNG PHÁP KHAI PHÁ ĐỀ TÀI: ỨNG DỤNG GIẢI THUẬT K-NN CHO BÀI TOÀN NHẬN DIỆN BIỂN SỐ XE MÁY Giáo viên hướng dẫn: Ts Nguyễn Mạnh Cường Nhóm: Sinh viên thực hiện: Bùi Thanh Sơn - 2018603582 Hoàng Bảo Lộc - 2017602950 Đào Xuân Tùng - 2018600226 Hà Nội, năm 2022 MỤC LỤC LỜI CẢM ƠN Lời cho phép chúng em gửi lời cảm ơn sâu sắc tới thầy cô khoa Công nghệ thông tin - Trường Đại học Cơng Nghiệp Hà Nội, người truyền đạt dẫn cho chúng em kiến thức, học quý báu bổ ích Đặc biệt chúng em xin bày tỏ tri ân xin chân thành cảm ơn giảng viên Ts Nguyễn Mạnh Cường, người trực tiếp hướng dẫn, bảo chúng em suốt q trình học tập, nghiên cứu hồn thành tập lớn Nhận dạng biển số xe vấn đề quan trọng việc kiểm soát phương tiện giới kiểm soát an ninh tồn cầu Nhiệm vụ tốn nhận dạng chữ số biển số xe hình ảnh video Đây tốn thường gặp thực tế có nhiều mơ hình đưa để giải như: K-NN (K-NearestNeighbor) SVM (Support Vector Machine) Mỗi mơ hình cho kết tốt cho toán này, nhiên mơ hình nhận dạng biển số xe mơ hình K-NN sử dụng phổ biến dễ dàng cài đặt Chính chúng em lựa chọn đề tài: “ Ứng dụng giải thuật K-NN cho toán nhận dạng biển số xe máy “ làm đề tài kết thúc mơn học Trong q trình nghiên cứu làm đề tài, lực, kiến thức, trình độ thân chúng em cịn hạn hẹp nên khơng tránh khỏi thiếu sót chúng em mong mỏi nhận thơng cảm góp ý từ quý thầy cô bạn lớp Chúng em xin chân thành cảm ơn! MỞ ĐẦU Ngày giới bên cạnh việc tăng trưởng kinh tế phát triển ngành khoa học kỹ thuật nói chung, mà ngành công nghiệp sản xuất phương tiện giao thông lại ngành có tốc độ phát triển cực nhanh Sự phát triển ấy, thể rõ ràng thơng qua hình ảnh phương tiện giao thông giới ngày tăng cao đa dạng Tuy nhiên, điều lại gây áp lực người quan cấp quản lý, làm cho công tác quản lý giám sát khó khăn Và vấn nạn Việt Nam Công tác quản lý phương tiện giao thơng nói chung quản lý ôtô, xe máy vô phức tạp công tác phát hiện, xử phạt hành vi vi phạm giao thông, chống trộm tốn nhiều thời gian công sức Để làm giảm lượng nhân lực việc cơng tác quản lý, kiểm sốt phương tiện giao thơng, giới nhanh chóng xây dựng hệ thống giám sát tự động phương tiện giao thông Và hệ thống giám sát lấy biển số xe mục tiêu giám sát Hệ thống sử dụng rộng rãi nhiên Việt Nam lĩnh vực mẻ Do em chọn làm đề tài “Tìm hiểu hệ thống nhận dạng biển số xe” với mục đích để tìm hiểu nhằm trợ giúp cho cơng tác giám sát, quản lý phương tiện giao thông cách hiệu quả, dễ dàng nhanh chóng CHƯƠNG BÀI TOÁN NHẬN DIỆN BIỂN SỐ XE 1.1Khái niệm biển số xe Ở Việt Nam, biển kiểm soát xe giới (hay gọi tắt biển kiểm soát, biển số xe) biển gắn xe giới, quan công an cấp (đối với xe quân Bộ Quốc phòng cấp) mua xe chuyển nhượng xe Biển số xe làm hợp kim nhơm sắt, có dạng hình chữ nhật vng, có in số chữ (biển xe dân không dùng chữ I, J, O, Q, W Chữ R dùng cho xe rơ-moóc, sơ-mi rơ-moóc) cho biết: Vùng địa phương quản lý, số cụ thể tra máy tính cịn cho biết danh tính người chủ hay đơn vị mua nó, thời gian mua phục vụ cho công tác an ninh, đặc biệt cịn có hình Quốc huy Việt Nam dập Tiêu chuẩn kích thước: Ở nước thường có tiêu chuẩn kích thước định, cịn riêng Việt Nam tỉ lệ kích thước biển số gần giống Biển số xe có loại, kích thước sau: Loại biển số dài có chiều cao 110 mm, chiều dài 470 mm; loại biển số ngắn có chiều cao 200 mm, chiều dài 280 mm nên ta giới hạn tỉ lệ cao /rộng 3.5 ≤ cao/rộng ≤ 6.5 (biển hàng) 0.8 ≤ cao/rộng ≤ 1.5 (biển hai hàng) Số lượng kí tự biển số xe nằm khoảng [7,9] Chiều cao chữ số: 80mm, chiều rộng chữ số: 40mm Từ đặc điểm ta thiết lập thông số, điều khiển để lọc chọn đối tương phù hợp mà ta cần 1.2Xử lý ảnh Open CV Xử lý ảnh phân ngành xử lý số tín hiệu với tín hiệu xử lý ảnh Đây phân ngành khoa học phát triển năm gần Xử lý ảnh gồm lĩnh vực chính: xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh truy vấn ảnh Sự phát triển xử lý ảnh đem lại nhiều lợi ích cho sống người Ngày xử lý ảnh áp dụng rộng rãi đời sống như: photoshop, nén ảnh, nén video, nhận dạng biển số xe, nhận dạng khuôn mặt, nhận dạng chữ viết, xử lý ảnh thiên văn, ảnh y tế, OpenCV (Open Computer Vision) thư viện mã nguồn mở hàng đầu cho xử lý thị giác máy tính, machine learning, xử lý ảnh OpenCV đươc viết C/C++, có tốc độ tính tốn nhanh, sử dụng với ứng dụng liên quan đến thời gian thực Opencv có interface cho C/C++, Python Java hỗ trợ cho Window, Linux, MacOs lẫn Android, iOS OpenCV có cộng đồng 47 nghìn người dùng số lượng download vượt triệu lần Opencv có nhiều ứng dụng như: • Nhận dạng ảnh • Xử lý hình ảnh • Phục hồi hình ảnh/video • Thực tế ảo • Các ứng dụng khác 1.3Hướng giải Hiện giới có nhiều cách tiếp cận khác với việc nhận dạng biển số xe, nhiên phạm vi tập lớn em giải vấn đề theo bước chính: Phát vị trí tách biển số xe từ hình ảnh có sẵn từ đầu vào camera Phân đoạn kí tự có biển số xe Nhận diện kí tự đưa mã ASCII Hình 1.1 - Các bước nhận dạng biển số xe CHƯƠNG MỘT SỐ KỸ THUẬT HIỆN CÓ 2.1 Support Vector Machine (SVM) 2.1.1 SVM gì? SVM thuật tốn giám sát, sử dụng cho việc phân loại đệ quy Tuy nhiên sử dụng chủ yếu cho việc phân loại Trong thuật toán này, vẽ đồi thị liệu điểm n chiều ( n số lượng tính bạn có) với giá trị tính phần liên kết Sau thực tìm "đường bay" (hyper-plane) phân chia lớp Hyper-plane hiểu đơn giản đường thẳng phân chia lớp thành hai phần riêng biệt 2.1.2 SVM làm việc nào? Ở trên, thấy việc chia hyper-plane Bấy làm xác định "Làm để vẽ-xác định hyper-plane" Chúng ta theo tiêu chí sau: • Identify the right hyper-plane (Scenario-1): Ở đây, có đường hyper-lane (A,B and C) Bây đường hyper- lane cho nhóm ngơi hình trịn Quy tắc số để chọn hyper-lane, chọn hyper-plane để phân chia hai lớp tốt Trong ví dụ đường B • Identify the right hyper-plane (Scenario-2): Ở có đường hyper-plane (A,B C), theo quy tắc số 1, chúng thỏa mãn Quy tắc thứ hai xác định khoảng cách lớn từ điểu gần lớp đến đường hyper-plane Khoảng cách gọi "Margin", Hãy nhìn hình bên dưới, nhìn thấy khoảng cách margin lớn đường C Cần nhớ chọn lầm hyper-lane có margin thấp sau liệu tăng lên sinh nguy cao việc xác định nhầm lớp cho liệu • Identify the right hyper-plane (Scenario-3): Sử dụng nguyên tắc nêu để chọn hyper-plane cho trường hợp sau: Học có giám sát Là thuật tốn dự đốn đầu (outcome) liệu (new input) dựa cặp (input, outcome) biết từ trước Cặp liệu gọi (data, label), tức (dữ liệu, nhãn) Ví dụ thuật tốn dị khuôn mặt ảnh phát triển từ lâu Thời gian đầu, Facebook sử dụng thuật tốn để khn mặt ảnh yêu cầu người dùng tag friends - tức gán nhãn cho khuôn mặt Số lượng cặp liệu (khn mặt, tên người) lớn, độ xác lần tự động tag lớn Thuật tốn học có giám sát lại tiếp tục chia hai phần nhỏ gồm toán phân loại (Classification) nhãn liệu đầu vào chia thành hữu hạn nhóm tốn hổi quy (Regression) nhãn không chia thành nhóm mà giá trị thực cụ thể Ví dụ: cô gái x tuổi, cao y m, thu nhập hàng tháng z triệu đồng kết nào? Học khơng giám sát Trong thuật tốn này, đầu hay nhãn mà có liệu đầu vào Thuật tốn học khơng giám sát dựa vào cấu trúc liệu để thực cơng việc đó, ví dụ phân nhóm (clustering) giảm số chiều liệu (dimension reduction) để thuận tiện việc lưu trữ tính tốn Bao gồm hai loại chính: Phân nhóm (clustering) tồn liệu đầu vào thành nhóm nhỏ dựa liên quan liệu nhóm ví dự chia nhóm khách hàng dựa hành vi mua hàng, độ tuổi, giới tính họ Cịn lại tốn kết hợp (Association) dùng ta muốn khám phá quy luật dựa tập liệu cho trước khách hàng mua laptop thường có xu hướng mua thêm chuột hay chó thường trung thành với chủ mèo 3.3.1.3 Thuật toán KNN (K - Nearest Neighbor) KNN thuật tốn học có giám sát đơn giản Machine Learning, sử dụng cho toán phân loại hồi quy Về ý tưởng gán kết với liệu training gần giống với mẫu Ví dụ câu cá, ta cá câu lên cá rô hay cá chép, so sánh đặc điểm mắt, mang, vây, từ cá rơ, cá chép thấy cuối định xem cá câu thuộc nhóm cá KNN hoạt động theo quy trình gồm bước chính: Xác định tham số K (số láng giềng gần nhất) Tính khoảng cách từ điểm xét đến tất điểm tập liệu cho trước Sắp xếp khoảng cách theo thứ tự tăng dần Xét tập K điểm gần với điểm xét, số lượng điểm loại cao coi điểm xét thuộc loại Hình 5.1 - Ví dụ KNN Việc điểm xét thuộc loại phụ thuộc vào hệ số K hay trọng số khoảng cách mà người dùng đặt cho phù hợp với tốn xét Chẳng hạn hình ta xét K = điểm xét thuộc loại B, ngược lại K = thuộc loại A Ngồi người ta để trọng số cao cho điểm gần hay sử dụng K = để đảm bảo kết đầu tối ưu Thông thường việc tính khoảng cách đến điểm theo cơng thức Euclid: Khi thực so sánh bỏ qua dấu bậc Ngoài khoảng cách biến lớn biến x lớn xấp xỉ 1000000 lần ta cần chuẩn hóa lại liệu theo công thức: Để dễ hiểu em xin lấy ví dụ cơng ty muốn đưa dịng xe tơ vào thị trường muốn biết xe bán chạy hay ế Họ tổng hợp liệu dung tích xi lanh, giá tiền, màu sơn, diện tích xe dòng xe xuất thị trường Đặt Z khả tiêu thụ cụ dòng xe Z = nghĩa xe ế, Z = nghĩa xe bán chạy Hình 5.1 - Xét khả tiêu thụ xe Sau ta chuẩn hóa liệu: Hình 5.1 - Dữ liệu sau chuẩn hóa Sau ta tính khoảng cách điểm xét đến liệu cho trước Lưu ý biến có giá trị định tính khác khoảng cách 1, giống Ví dụ ta tính khoảng dịng xe 1: Hình 5.1 - Sau tính khoảng cách xếp hạng Nhìn hình chọn K=1 kết Z=1, K=3 Z=0, K=5 Z=0 Tuy nhiên phương pháp có số ưu nhược điểm sau: Ưu điểm: Dễ sử dụng cài đặt Độ phức tạp tính tốn nhỏ Việc dự đoán kết đơn giản Nhược điểm: Với K nhỏ, gặp nhiễu dễ đưa kết khơng xác Cần nhiều thời gian lưu trainning set test tăng lên tốn nhiều thời gian 3.3.2 Hướng giải Ở giai đoạn cuối thực theo bước sau: Tạo tập liệu để huấn luyện Huấn luyện mơ hình KNN Đưa hình ảnh từ bước “Phân đoạn kí tự” vào mơ hình KNN tạo để đưa kết In kết biển số Bước ta tạo mơ hình KNN riêng biệt với code Để cần nhận diện kí tự ta không cần phải làm lại bước từ đầu Đầu tiên em tạo tập liệu (tập hình ảnh chữ số kí tự) để train từ phần mềm paint Trong phần mềm Paint ta viết chữ số kí tự (trừ kí tự O, I, J) với phơng chữ “Biển số xe Việt Nam”, xoay kí tự với góc Kết có dạng sau: Hình 5.2 - Tập liệu huấn luyện Tiếp theo ta lấy ngưỡng, vẽ contour cắt kí tự Vì kí tự có kích thước khác xử lý phức tạp nên cần chuẩn hóa hình ảnh lại với kích thước cao:rộng 30:20 pixels Thay kí tự đưa vào mơ hình để máy nhận diện kí tự ta gắn nhãn phím bấm máy tính Sau gắn nhãn hết kí tự ta lưu hai file txt classifications.txt flattened_images.txt File classifications.txt có nhiệm vụ lưu mã ASCII kí tự file flattened_images.txt lưu giá trị điểm ảnh có hình ảnh kí tự (hình 20x30 pixel có tổng cộng 600 điểm ảnh có giá trị 255) Bước Ta thực đưa ảnh xét vào tính khoảng cách đến tất điểm mẫu, kết mã ASCII đại điện cho hình ảnh Cuối ta in biển số xe hình Tuy nhiên Việt Nam có hai loại biển số biển hàng biển hai hàng Về ý tưởng chung để phân biệt hai hàng ta dựa vào vị trí hình ảnh kí tự, vị trí nằm thấp 1/3 chiều cao biển số kí tự xếp vào hàng Ngược lại xếp vào hàng hai Hình 5.2 - Biển số trước nhận diện Hình 5.2 - Biển số sau nhận diện Hình 5.2 - Biển số xe in hình gốc CHƯƠNG 4: KẾT QUẢ THỰC HIỆN 4.1 Cách thức đo đạc, thử nghiệm Clip đầu vào quay camera từ điện thoại Samsung J7 Prime có thơng số: Kích thước clip: FHD 1920x1080 Camera: 9.6 MP ảnh/s Sau clip chương trình xử lý cắt frame ảnh để nhận diện in biển số Chương trình xử lý viết giao diện ứng dụng Visual Studio 2017 ngôn ngữ Python (3.7), bao gồm thư viện OpenCV, Numpy, Math Em tạo hai clip test dành riêng cho biển số hàng hai hàng quay với đủ góc độ nghiêng trái, phải, dưới, xa gần, mơi trường có phơng nền, ánh sáng khác Với clip test có độ dài X frame ảnh, frame ảnh có chứa Y biển số, ta được: Tổng biển số = (Y = với biển hàng, Y = với biển hàng) Tỉ lệ tìm thấy biển số xe = 100 (%) Ta tìm tỉ lệ biển sai n kí tự tổng số biển bắt clip Lưu ý sai nghĩa kí tự bị nhận diện sai, không khoanh vùng khoanh vùng kí tự sai vị trí Tỉ lệ nhận diện = 100 (%) 4.2 Kết giải thích Loại biển Biển hàng Biển hàng Tổng biển số Số biển tìm thấy Tỉ lệ tìm thấy biển số xe (%) 370 182 49,2% 2349 924 39,3% Bảng 6.1 - Tỉ lệ tìm thấy biển số xe hình Ở biển số hàng có tỉ lệ nhận diện cao tập mẫu cịn frame ảnh có biển, dẫn đến biển số thường nằm vị trí trung tâm nên dễ nhận diện Ngược lại, với biển hàng có tập mẫu lớn, số biển số frame nhiều Chưa kể, biển số tính vùng hình bình hành có tối thiểu kí tự tính biển số, dẫn đến có nhiều biển số cắt khơng tính vào Tuy nhiên cách làm lại giúp loại bỏ đáng kể chi tiết, biển số sai lệch từ môi trường ngồi Hình 6.2 - Khơng tìm thấy kí tự Hình 6.2 - Ảnh gốc Hình 6.2 - Tìm thấy kí tự Hình 6.2 - Tìm thấy kí tự Ở hình 6.2 - ta thấy chương trình xử lý tìm vùng cho biển số, nhiên số kí tự tìm hình 6.2 - 6.2 - không đủ nên bị loại dẫn đến ảnh cịn lại biển số hình 6.2 - Khi ta quay theo nhiều góc độ, nhiều vị trí dẫn đến tính tốn diện tích, tỉ lệ cao/rộng biển số khơng cịn thỏa điều kiện đặt nên bị loại Biển số bị ảnh hưởng chi tiết nên xấp xỉ contour khơng hình tứ giác, dẫn đến gây biển số Lỗi đặc biệt xảy xe tơ tơ thường có xung quanh biển số vật liệu phản chiếu ánh sáng mạnh, gây ảnh hưởng lớn đến trình xác định vùng biển số Hình 6.2 - Lấy ngưỡng cao/rộng 1.5 Hình 6.2 - Lấy ngưỡng cao/rộng 1.4 Hình 6.2 - Lỗi xấp xỉ Contour Ở hình 6.2 - đường contour màu hồng có bao quanh biển số, nhiên sau xấp xỉ cịn lại hình 2, cạnh, để khắc phục lỗi tỉ lệ, xấp xỉ contour ta cần điều chỉnh mức ngưỡng cho tối ưu Trong trình xử lý, việc xử lý nhị phân đóng vai trị quan trọng, hình 6.2 - ta thấy ảnh bị nhiễu thân biển số bị tối, dính nhiều bụi dẫn đến xử lý nhị phân bị đứt đoạn vẻ contour bị sai, để khắc phục cần sử dụng phép tốn hình thái học phép nở, phép đóng để làm liền đường màu trắng ảnh nhị phân Hình 6.2 - Ảnh nhị phân bị đứt Hình 6.2 - Đường contour bị đứt đoạn Dưới ta xét khả khoanh vùng nhận diện kí tự tương ứng với giai đoạn “Phân đoạn kí tự” “Nhận diện kí tự” đặt đầu tốn Loại biển Số biển tìm thấy Khơng sai Sai kí tự Sai kí tự Sai kí tự trở lên Biển hàn g 182 61 88 19 14 33,5 48,4 10, 7,7 Tỉ lệ (%) Bảng 6.1 - Tỉ lệ nhận diện sai kí tự biển hàng Loại biển Số biển tìm thấy Biển 924 hàn g Tỉ lệ nhận diện (%) Khơng sai Sai kí tự Sai kí tự Sai kí tự trở lên 286 273 175 190 31 29,5 18, 20,6 Bảng 6.1 - Tỉ lệ nhận diện sai kí tự biển hàng Nhìn chung mơ hình nhận diện KNN tốt, có kí tự dù bị mờ, bị nghiêng nhận diện Điều phần nhờ vào chương trình xoay biển số lại cho để tăng khả nhận diện, cho dù nghiêng kí tự nghiêng từ đến Tuy nhiên cịn nhầm lẫn nhiều kí tự số với số Chữ G, chữ D, số với số Chữ B với số Hình 6.2 - 10 Ảnh gốc nhận diện biển số Hình 6.2 - 11 Biển số Hình 6.2 - 12 Biển số Hình 6.2 - 13 Biển số Theo hình gốc 6.2 - 10 ta nhận diện hết biển số Còn biển số bị sai chữ B số Hình 6.2 - 14 Khơng khoanh vùng kí tự Ở ảnh 6.2 - 14 chỗ số bị dính ốc dẫn đến khoanh vùng được, Tuy nhiên chữ F dính ốc ảnh cắt để nhận diện, mơ hình KNN cho đáp án Kết thực nghiệm đạt được: Hồn thành khảo sát phân tích thiết kế hệ thống, thiết kế sở liệu, thiết kế giao diện Hệ thống xây dựng chức theo yêu cầu ban đầu: tìm kiếm, xem chi tiết sản phẩm, đăng nhập, đăng ký, đặt hàng toán, quản lý sản phẩm, quản lý khách hàng, quản lý mã giảm giá, quản lý đơn hàng, v.v Hệ thống thiết kế tương đối rõ ràng chi tiết ca sử dụng chức giới thiệu, mơ tả chi tiết dễ hình dung Mặc dù việc áp dụng giải pháp công nghệ thuật tốn vào xây dựng hệ thống cịn thiếu sót em cố gắng hồn thành phát triển thêm thời gian tới 4.4 Hạn chế: Chưa áp dụng tính phí vận chuyển theo vị trí giao nhận hàng Chưa tối ưu tốc độ load trang 4.5 Hướng phát triển: - Tiếp tục tìm hiểu để hồn thiện chức cịn thiếu sót nêu mục - Kết hợp truyền thông online website để tăng tương tác bán hàng dựa vào trang mạng xã hội Facebook, Twitter, Youtube, v.v TÀI LIỆU THAM KHẢO ... có nhiều điểm liệu CHƯƠNG NHẬN DIỆN BIỂN SỐ XE BẰNG GIẢI THUẬT KNN VÀ OPENCV 3.1 PHÁT HIỆN VỊ TRÍ VÀ TÁCH BIỂN SỐ XE 3.1.1 Hướng giải Sơ đồ tóm gọn bước để xác định tách biển số xe từ clip: Hình... CHƯƠNG BÀI TỐN NHẬN DIỆN BIỂN SỐ XE 1.1Khái niệm biển số xe Ở Việt Nam, biển kiểm sốt xe giới (hay cịn gọi tắt biển kiểm soát, biển số xe) biển gắn xe giới, quan công an cấp (đối với xe quân Bộ Quốc... biển số xe hình Ở biển số hàng có tỉ lệ nhận diện cao tập mẫu cịn frame ảnh có biển, dẫn đến biển số thường nằm vị trí trung tâm nên dễ nhận diện Ngược lại, với biển hàng có tập mẫu lớn, số biển