Cùng với sự phát triển khoa học kỹ thuật và nhu cầu đi lại ngày càng tăng số lượng phương tiện giao thông trên đường ngày càng xuất hiện nhiều. Với số lượng phương tiện giao thông lớn và không ngừng gia tăng như vậy đã làm nảy sinh nhiều vấn đề trong việc kiểm soát cũng như quản lý các phương tiện. Để giải quyết vấn đề này, nhu cầu đặt ra là áp dụng các hệ thống tự động để kiểm soát và quản lý hiệu quả hơn. Một trong những hệ thống như vậy là hệ thống tự động nhận dạng biển số xe, đây là một hệ thống có khả năng thu nhận hình ảnh cũng như là “đọc” và “hiểu” các biển số xe một cách tự động. Một hệ thống như vậy có thể được sử dụng trong rất nhiều các ứng dụng, chẳng hạn như: trạm cân và rửa xe tự động hoàn toàn, bãi giữ xe tự động, kiểm soát lưu lượng giao thông hay trong các ứng dụng về an ninh như tìm kiếm xe mất cắp… Như mọi hệ thống tự động khác, hệ thống như vậy cũng sẽ yêu cầu có cả phần cứng và phần mềm. Phần cứng có phần chính là một camera có tác dụng thu nhận hình ảnh còn phần mềm sẽ có tác dụng xử lý hình ảnh đó. Với sự phát triển của kỹ thuật điện tử, các camera sẽ dễ dàng thu nhận được các hình ảnh, do vậy vấn đề quan trọng nhất mang tính quyết định hiệu quả của hệ thống xử lý ảnh là phần mềm xử lý ảnh. Yêu cầu của bài toán là áp dụng các thuật toán thích hợp tìm vùng chứa biển số, trích vùng biển số, cách li các ký tự trên biển số, từ đó máy tính sẽ xử lý và nhận dạng
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN VẬT LÝ KỸ THUẬT o0o BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI: XÂY DỰNG PHẦN MỀM NHẬN DIỆN BIỂN SỐ XE Ô TÔ Ở VIỆT NAM Sinh viên thực : NGUYỄN VĂN ĐỊNH MSSV : 20130925 Lớp/Khóa : VẬT LÝ KỸ THUẬT K58 Giáo viên hướng dẫn : TS.NGUYỄN HOÀNG THOAN Giáo viên phản biện : TS.Bùi Việt Khoa Hà nội, tháng năm 2019 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên sinh viên: Nguyễn Văn Định Lớp: Vật lý kỹ thuật - K58 Tên đề tài: “Xây dựng phần mềm nhận diện biển số xe ô tô Việt Nam” Tính chất đề tài: I NỘI DUNG NHẬN XÉT: Tiến trình thực khóa luận: Nội dung khóa luận: - Cơ sở lý thuyết: - Các số liệu, tài liệu thực tế - Phương pháp mức độ giải vấn đề: Hình thức khóa luận: - Hình thức trình bày: - Kết cấu khóa luận : Những nhận xét khác: ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… II ĐÁNH GIÁ VÀ CHO ĐIỂM - Tiến trình làm khóa luận : - Nội dung khóa luận : - Hình thức khóa luận : Tổng cộng / 20 / 60 / 20 ……/100 (Điểm : ………) Ngày……tháng……năm 2018 GIÁO VIÊN HƯỚNG DẪN (Ký ghi rõ họ tên) NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên sinh viên: Nguyễn Văn Định Lớp: Vật lý kỹ thuật - K58 Tên đề tài: “Xây dựng phần mềm nhận diện biển số xe ô tô Việt Nam” I.NỘI DUNG NHẬN XÉT 1.Nội dung khóa luận: 2.Hình thức khóa luận: ………… …………………… 3.Những nhận xét khác: ……… II.ĐÁNH GIÁ VÀ CHO ĐIỂM - Nội dung khóa luận: - Hình thức khóa luận: / 80 / 20 Tổng cộng / 100 ( Điểm : ) Ngày……tháng……năm 2018 CÁN BỘ PHẢN BIỆN (Ký ghi rõ họ tên) LỜI CẢM ƠN Trước hết xin chân thành cảm ơn thầy cô giáo trường ĐH Bách khoa Hà Nội nói chung, thầy Viện Vật lý kỹ thuật nói riêng dạy cho tơi kiến thức môn đại cương môn chun ngành, giúp tơi có sở lý thuyết vững vàng tạo điều kiện giúp đỡ suốt q trình học tập Đặc biệt tơi xin gửi lời cảm ơn sâu sắc tới TS.Nguyễn Hoàng Thoan, người không quản vất vả hướng dẫn tư khoa học đạo tận tình, giúp đỡ đưa ý kiến quý giá suốt thời gian làm việc việc sửa chữa thảo cách chi tiết để tơi hồn thành đồ án tốt nghiệp Cuối cùng, tơi xin chân thành cảm ơn gia đình bạn bè, tạo điều kiện, quan tâm, giúp đỡ, động viên tơi suốt q trình học tập trường Đại học Bách khoa Hà Nội Nhờ đồ án mà bổ sung thêm nhiều kiến thức quý giá, nhiều kinh nghiệm thực tế Tuy nhiên, kiến thức hạn hẹp, kinh nghiệm chưa nhiều nên chắn khơng tránh khỏi thiếu sót Rất mong nhận đóng góp q thầy độc giả đồ án hoàn chỉnh Xin chân thành cảm ơn Hà Nội, tháng 1, năm 2019 Sinh viên thực Nguyễn Văn Định MỤC LỤC Danh mục hình ảnh MỞ ĐẦU CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Biển số xe ô tô Việt Nam 1.2 Tổng quan chương trình nhận diện biển số xe .7 1.2.1 Cấu trúc chương trình nhận diện biển số xe .7 1.2.2 Các bước xử lý liệu 1.3 Đặc trưng LBP .9 1.3.1 Lý thuyết LBP .9 1.3.2 Ví dụ trích rút đặc trưng LBP ảnh số 15 1.4 Xác định biển số nhờ giải thuật Cascade of Classifiers OpenCV 17 1.5 Tesseract OCR .18 1.5.1 Sơ lược Tesseract .18 1.5.2 Cấu trúc Tesseract 19 1.6 Các phần mềm sử dụng đề tài .20 1.6.1 Visual Studio 2015 20 1.6.2 EmguCV .20 1.6.3 Aforge NET 21 CHƯƠNG XÂY DỰNG GIẢI THUẬT NHẬN DIỆN BIỂN SỐ 23 2.1 Nhận diện vùng chứa biển số xe 23 2.1.1 Thu thập liệu huấn luyện 23 2.1.2 Tag ảnh 23 2.1.3 Cắt ảnh 24 2.1.4 Tập huấn nhận diện vùng biển số 25 2.2 Nhận diện vùng chứa ký tự 30 2.3 Nhận diện ký tự 32 2.5 Xây dựng giao diện phần mềm 32 2.5.1 Tầm quan trọng .32 2.5.2 Xây dựng giao diện .34 CHƯƠNG KẾT QUẢ VÀ THẢO LUẬN 35 3.1 Nhận diện vùng biển số 35 3.2 Nhận diện vùng chứa ký tự nhận diện ký tự 37 3.3 Xây dựng phần mềm nhận diện biển số .40 3.3.1 Xây dựng giao diện 40 3.3.2 Hướng dẫn sử dụng chương trình 41 KẾT LUẬN 45 Kết luận 45 Kiến nghị .46 Tài liệu tham khảo 47 Danh mục hình ảnh Hình Kích thước biển xe tơ Việt Nam Hình Cấu trúc chương trình nhận diện biển số xe Hình Các bước xử lý liệu .8 Hình Ví dụ LBP độ tương phản cục C 10 Hình Tập hợp điểm xung quanh Ptt .10 Hình Đặc trưng LBP 12 Hình Một số biến thể LBP- LBP đồng dạng .12 Hình Bảng thống kê mẫu LBP đồng dạng 13 Hình Minh họa trường hợp LBP quay với góc 15 độ 14 Hình 10 Ví dụ q trình tính tốn đặc trưng 17 Hình 11 Cấu trức Tesseract 19 Hình 12 Hình ảnh sau tag .24 Hình 13 Quá trình crop ảnh 25 Hình 14 Ảnh sau crop .25 Hình 15 Tập ảnh dương chưa biển số 26 Hình 16 Tập ảnh ấm không chứa biển số .26 Hình 17 Minh họa tham số x, y, w, h .27 Hình 18 Minh họa bên file negative.txt 28 Hình 19 Quá trình huấn luyện định vị biển số .30 Hình 20 Nhị phân hóa ảnh biển số .31 Hình 21 Khoanh vùng ký tự 32 Hình 22 Phần mềm kiểm tra nhận diện vùng biển số 35 Hình 23 Nhận diện với biển hai dòng 36 Hình 24 Nhận diện với biển dịng 36 Hình 25 Nhận diện khơng thành cơng 37 Hình 26 Chương trình demo đọc biển số .38 Hình 27 Đọc biển hai dịng 39 Hình 28 Đọc biển dịng 39 Hình 29 Đọc khơng thành cơng 40 Hình 30 Giao diện chương trình 41 Hình 31 Ví dụ hướng dẫn .42 Hình 32 Kết sau ấn "Nhận dạng + Ghi thẻ" 42 Hình 33 Ví dụ nhận diện sai 43 Hình 34 CHức sửa lỗi 44 Hình 35 Sửa lỗi nhận diện sai 45 MỞ ĐẦU Cùng với phát triển khoa học kỹ thuật nhu cầu lại ngày tăng số lượng phương tiện giao thông đường ngày xuất nhiều Với số lượng phương tiện giao thông lớn không ngừng gia tăng làm nảy sinh nhiều vấn đề việc kiểm soát quản lý phương tiện Để giải vấn đề này, nhu cầu đặt áp dụng hệ thống tự động để kiểm soát quản lý hiệu Một hệ thống hệ thống tự động nhận dạng biển số xe, hệ thống có khả thu nhận hình ảnh “đọc” “hiểu” biển số xe cách tự động Một hệ thống sử dụng nhiều ứng dụng, chẳng hạn như: trạm cân rửa xe tự động hồn tồn, bãi giữ xe tự động, kiểm sốt lưu lượng giao thông hay ứng dụng an ninh tìm kiếm xe cắp… Như hệ thống tự động khác, hệ thống yêu cầu có phần cứng phần mềm Phần cứng có phần camera có tác dụng thu nhận hình ảnh cịn phần mềm có tác dụng xử lý hình ảnh Với phát triển kỹ thuật điện tử, camera dễ dàng thu nhận hình ảnh, vấn đề quan trọng mang tính định hiệu hệ thống xử lý ảnh phần mềm xử lý ảnh Yêu cầu toán áp dụng thuật tốn thích hợp tìm vùng chứa biển số, trích vùng biển số, cách li ký tự biển số, từ máy tính xử lý nhận dạng Từ lý trên, hướng dẫn TS.Nguyễn Hoàng Thoan, em định lựa chọn đề tài “Xây dựng phần mềm nhận diện biển số xe ô tô Việt Nam” CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Biển số xe ô tô Việt Nam Ở quốc gia khác nhau, kích thước biển số khác nhau, vào kích thước để ta tính tỉ lệ xác định vùng chứa biển Ở Việt Nam, cần để ý đến số quy định sau: - Ký hiệu, kích thước chữ số biển số đăng ký loại xe thực theo quy định Phụ lục số 02, 03 04 ban hành kèm theo Thông tư 36/2010/TT-BCA - Biển số tơ có biển, biển gắn phía trước biển gắn phía sau xe phù hợp với vị trí nơi thiết kế lắp biển số xe; Biển số 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 Hình Kích thước biển xe tơ Việt Nam Cách bố trí chữ số biển số: - Hai số đầu ký hiệu địa phương đăng ký xe sê ri đăng ký quy định Điều 27 Thơng tư số 36/2010/TT-BCA - Nhóm số thứ hai thứ tự xe đăng ký gồm 05 chữ số tự nhiên, từ 000.01 đến 999.99 Ví dụ: Biển số hình thể hiện: 30 ký hiệu địa phương đăng ký; V sê ri biển số đăng ký; 246.56 thứ tự đăng ký Đối với biển số ngắn: Ký hiệu địa phương nơi đăng ký sê ri biển số đăng ký đặt hàng phần biển số Nhóm số hàng thứ tự đăng ký xếp cân xứng với nhóm số chữ hàng biển số Về kích thước chữ số: - Chiều cao chữ số: 80 mm - Chiều rộng chữ số: 40 mm - Nét đậm chữ số: 10 mm - Thống nhất: hệ thống nên hiển thị mức thống thích hợp Ví dụ: câu lệnh menu nên có định dạng … - Tối thiểu hoá bất ngờ: yêu cầu xử lý theo cách biết trước người sử dụng dự đốn thao tác yêu cầu tương tư - Khả phục hồi: hệ thống nên cung cấp số khả phục hồi từ lỗi người sử dụng cho phép người sử dụng khôi phục lại từ chỗ bị lỗi Khả bao gồm cho phép làm lại, hỏi lại hành động xoá, huỷ … - Hướng dẫn người sử dụng: hệ thống trợ giúp, hướng dẫn trực tuyến … - Tính đa dạng: hỗ trợ nhiều loại tương tác cho nhiều loại người sử dung khác Ví dụ: Nên hiển thị phông chữ lớn với người cận thị Chúng ta thường sử dụng màu thiết kế giao diện Màu bổ sung thêm chiều cho giao diện giúp cho người sử dụng hiểu cấu trúc thơng tin phức tạp Màu sử dụng để đánh dấu kiện ngoại lệ Tuy nhiên, sử dụng màu để thiết kế giao diện gây phản tác dụng Do đó, cần quan tâm tới số hướng dẫn sau: - Giới hạn số lượng màu sử dụng không nên lạm dụng việc sử dụng màu - Thay đổi màu thay đổi trạng thái hệ thống - Sử dụng màu để hỗ trợ cho nhiệm vụ mà người sử dụng cố gắng thực - Sử dụng màu cách thống cẩn thận - Cẩn thận sử dụng cặp màu Khi người sử dụng tương tác với hệ thống, xảy lỗi hệ thống phải thông báo cho người sử dụng biết lỗi xảy có chuyện xảy với hệ thống Do đó, thiết kế thơng báo lỗi vơ quan trọng 2.5.2 Xây dựng giao diện Trong Visual Studio 2015 Community có cơng cụ để thiết kế giao diện dễ dàng nhanh chóng Nhờ tính tiện ích, dễ code, giao diện kéo thả đơn giản, … đồ án này, em sử dụng Window Forms để thiết kế giao diện 34 CHƯƠNG KẾT QUẢ VÀ THẢO LUẬN 3.1 Nhận diện vùng biển số Kết trình train file casade.xml sở liệu để nhận diện vùng biển số Ta có liệu: biển số ô hai dòng biển số dòng Dùng chương trình demo để kiểm tra nhận diện vùng biển số: Hình 22 Phần mềm kiểm tra nhận diện vùng biển số Khi nhấn button “Brown…” chương trình cửa sổ sau ta chọn ảnh có chứa biển số cần nhận diện Ảnh gốc ô bên phải, ô bên trái chứa ảnh khoanh vùng biển số, cịn biển số chứa ảnh biển số cắt Chuẩn bị khoảng 130 ảnh loại để kiểm tra khả nhận diện vùng chứa biển số Nhận thấy khả nhận diện biển số tốt: loại dòng 96 % (125/130 ảnh), loại dòn 93% (121/130 ảnh) Ta thấy ảnh nhận diện vùng biển số có đặc điểm như: góc nhìn trực diện, chất lượng ảnh tương đối tốt, không bị che dán phần biển 35 Hình 23 Nhận diện với biển hai dịng Hình 24 Nhận diện với biển dịng 36 Bên cạnh cịn có ảnh ta khơng nhận diện Hình 25 Nhận diện khơng thành cơng Nguyên nhân: ánh sáng làm lóa góc vùng biển số ( ảnh bên trên), ảnh đầu vào có góc chụp chéo (ảnh dưới), sai số điều kiện bên tác động lên vùng chứa biển số, góc camera góc chụp khơng tốt dẫn tới ảnh bị chéo 3.2 Nhận diện vùng chứa ký tự nhận diện ký tự Sau nhận diệnvùng biển số ta cắt lấy ảnh biển số qua bước tiếp theo: nhận diện vùng chứa ký tự nhận diện ký tự Em viết chương trình để đọc biển số 37 Hình 26 Chương trình demo đọc biển số Khi nhấn button “Load Image” chương trình cửa sổ sau ta chọn ảnh có chứa biển số cần đọc Sau ấn button “Read Plate ( line )” ảnh biển dòng, ấn button “Read Plate ( line )” ảnh biển dòng, ký tự biển số nhận diện xong hiển thị dạng text “Biển số” 38 Hình 27 Đọc biển hai dịng Hình 28 Đọc biển dịng 39 Hình 29 Đọc khơng thành cơng Ngun nhân đọc sai: Do chất lượng ảnh biển số thấp làm độ tương phản dẫn tới tìm sai thiếu contour Do nhiều nhiễu bụi bẩn, biển số bị mờ… Do phần nhận diện vùng biển số không sát biển dẫn tới cắt vùng biển số lớn không sát biển số Biện pháp khắc phục: tăng chất lượng ảnh, tang chất lượng camera, xử lý tối ưu thuật tốn để tăng hiệu tìm contour, cần tăng nhiều ảnh để training để cắt sát biển số 3.3 Xây dựng phần mềm nhận diện biển số 3.3.1 Xây dựng giao diện Dùng Winform Visual Studio 2015 ta xây dựng giao diện chương trình: 40 Hình 30 Giao diện chương trình Trong giao diện có button: tải ảnh, Chụp, Nhận dạng + Ghi thẻ, TÍnh tiền, Sửa lỗi Các ảnh: Camera để hiển thị video lấy từ camera, XE VÀO, XE RA, mục Thông tin xe chứa: số thẻ, biển số, vào, thông tin thuê bao (nếu khách vãng lai) 3.3.2 Hướng dẫn sử dụng chương trình Khi chọn button “ Tải ảnh ” chương trình mở cửa sổ chọn tập tin ảnh có chứa biển số để nhận diện, chọn button “ Chụp ” chương trình lấy ảnh từ camera để nhận diện 41 Hình 31 Ví dụ hướng dẫn Sau đó, nhấn button “Nhận dạng + Ghi thẻ” chương trình thực nhận diện biển số xe đồng thời hậu xử lý sau định vị hiển thị kết lên sau: Hình 32 Kết sau ấn "Nhận dạng + Ghi thẻ" Nếu chương trình nhận diện sai, ví dụ: 42 Hình 33 Ví dụ nhận diện sai Khi đó, ta ấn button “Sửa lỗi”, có cửa sổ : 43 Hình 34 CHức sửa lỗi Ta nhập biển số xác vào “ Biển số ”, ấn button “ Sửa lỗi + ghi thẻ” biển số xác lưu lại 44 Hình 35 Sửa lỗi nhận diện sai Lưu ý: chương trình thử nghiệm, button “Tính tiền”, “Không” “Đồng Ý” mở vào chưa sử dụng Để sử dụng button áp dụng vào thực tế bãi trông giữ xe, ta phải kết hợp thêm vào chương trình sở liệu, đầu đọc thẻ từ, điều khiển phần cứng (đóng mở barie) KẾT LUẬN Kết luận - Kết nhận diện vùng biển số có độ xác cao, nhận diện biển ô tô hai dòng - Đã đạt nhận diện vùng biển số theo thời gian thực - Quá trình nhận dạng kí tự cần phải nghiên cứu thêm để nhận dạng kí tự ứng dụng nhận dạng biển số Việt Nam - Báo cáo nghiên cứu thuật tốn trích chọn đặc trưng ảnh phục vụ việc phát hiện, nhận dạng biển số sử dụng LBP nhận dạng ký tự biển số TesseractOCR - Xây dựng giao diện phần mềm nhận diện biển số ô tơ 45 - Trong q trình thực hiện, việc tiền xử lý ảnh lựa chọn kỹ thuật xử lý ảnh phù hợp đóng vai trị quan trọng việc nâng cao độ xác việc phát nhận dạng Kiến nghị - Việc thực xử lý ảnh đầu vào để tiến hành huấn luyện trích rút đặc trưng LBP theo định điều cần thiết Để nâng cao tính xác, việc học lại cần thiết sau thu nhận mẫu trình nhận dạng - Do chưa có điều kiện thời gian để kiểm chứng phương pháp LBPNeuronNetwork (tức nhận dạng vùng biển số LBP nhận dạng ký tự kỹ thuật mạng nơron) nên chưa thể đưa kết luận xác - Kết hợp thêm vào chương trình hệ sở liệu điều khiển phần cứng để ứng dụng vào thực tế 46 [1] [2] Tài liệu tham khảo ThS Nguyễn Quế Hương, Nhận diện biển số xe sử dụng đặc trưng LBP, 2015 Nguyễn Văn Long, Ứng dụng xử lý ảnh thực tế với thư viện OpenCV C/C++ [3] Võ Hùng Vĩ, Luận văn tốt nghiệp Đại học: Xây dựng hệ thống hỗ trợ giữ xe thông [4] [5] minh, 2014 Bùi Văn Thoảng, Luận văn thạc sĩ công nghệ thông tin: Nhận dạng trích biển số xe P Coscia, F Castaldo, F Palmieri, A Alahi, S Savarese, and L Ballan, Image and Vision Computing, vol in press, 2018 [6] https://thigiacmaytinh.com/nha-dien-bien-so-xe-hoi, truy cập lần cuối ngày [7] 22/12/2018 https://www.tinhocsoctrang.com/2017/02/tong-quan-ve-opencv.html, truy cập [8] cuối ngày 25/12/2018 http: //www.emgu.com/wiki/index.php/Documentation, truy cập lần cuối ngày 25/12/2018 [9] http: //docs.opencv.org/index.html, truy cập lần cuối ngày 25/12/2018 [10] http://www.aforgenet.com/framework/documentation.html, truy cập lần cuối ngày 25/12/2018 [11] http://docs.microsoft.com/vi-vn/visualstudio/install/install-visual-studio2015?view=vs-2015, truy cập lần cuối ngày 25/12/2018 [12] http://www.rroij.com/open-access/texture-classification-with-local-binarypatternbased-on-continues-wavelettransformation.php?aid=42179, truy cập cuối ngày 25/12/2018 [13] https://github.com/openalpr/train-detector, truy cập cuối ngày 25/12/2018 47 48 ... CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Biển số xe ô tô Việt Nam 1 .2 Tổng quan chương trình nhận diện biển số xe .7 1 .2. 1 Cấu trúc chương trình nhận diện biển số xe .7 1 .2. 2 Các bước... nhận diện vùng biển số 25 2. 2 Nhận diện vùng chứa ký tự 30 2. 3 Nhận diện ký tự 32 2.5 Xây dựng giao diện phần mềm 32 2.5.1 Tầm quan trọng . 32 2.5 .2. .. THUẬT NHẬN DIỆN BIỂN SỐ 23 2. 1 Nhận diện vùng chứa biển số xe 23 2. 1.1 Thu thập liệu huấn luyện 23 2. 1 .2 Tag ảnh 23 2. 1.3 Cắt ảnh 24 2. 1.4 Tập huấn nhận