KHOA CÔNG NGHỆ THÔNG TIN Học phần TRÍ TUỆ NHÂN TẠO Đề tài Nhận dạng biển số xe Giảng viên hướng dẫn Lớp Nhóm Sinh viên thực hiện Hà Nội, tháng năm 2021 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT KHOA CÔNG NGHỆ THÔ.
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT KHOA CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ THÔNG TIN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT KHOA CƠNG NGHỆ THƠNG TIN Học phần: TRÍ TUỆ NHÂN TẠO Đề tài: Học phần: Nhận dạng biển số GIAO THÔNG THÔNG MINH xe Đề tài: Giảng viên hướng dẫn: Hệ thống quản lý bãi xe – Bãi xe thơng minh Lớp: Nhóm Sinh viên thực hiện: Giảng viên hướng dẫn: Giảng viên hướng dẫn: Đoàn Thị Thanh Hằng Lớp: Nhóm Sinh viên thực hiện: 70DCTT22 Lớp: Nhóm gồm thành viên: 70DCTT22 Lê Văn Quyết Trịnh Hữu Hải Hà Nội, tháng nămVăn 2021Huy Hoàng Hà Nội, tháng năm 2021 Nguyễn Hữu Hoàng Hà Nội, tháng năm 2021 Mục Lục Phần 1: MẠNG NEURAL VÀ MẠNG NEURAL TÍCH CHẬP Mạng neural mạng neural lan truyền ngược 1.1.1 Giới thiệu mạng Neural Định nghĩa: Mạng nơron nhân tạo, Artificial Neural Network (ANN) mơ hình xử lý thơng tin theo cách thức xử lý thông tin hệ nơron sinh học Nó tạo nên từ số lượng lớn phần tử (nơron) kết nối với thông qua liên kết (trọng số liên kết) làm việc thể thống để giải vấn đề cụ thể Cấu trúc neural nhân tạo: Hình 1.1 Cấu tạo Neural Các thành phần nơron nhân tạo bao gồm: • Tập đầu vào: Là tín hiệu vào (input signals) nơron, tín hiệu thường đưa vào dạng vector N chiều • Tập liên kết: Mỗi liên kết thể trọng số liên kết – Synaptic weight • Bộ tổng (Summing function): Thường dùng để tính tổng tích đầu vào với trọng số liên kết • Ngưỡng (còn gọi độ lệch - bias): Ngưỡng thường đưa vào thành phần hàm truyền • Hàm truyền (Transfer function): Hàm dùng để giới hạn phạm vi đầu nơron Nó nhận đầu vào kết hàm tổng ngưỡng • Đầu ra: Là tín hiệu đầu nơron, với nơron có tối đa đầu Xét mặt toán học, cấu trúc nơron k, mô tả cặp biểu thức sau: Trong đó: x1, x2, , xp: tín hiệu vào; (wk1, wk2, , wkp) trọng số liên kết nơron thứ k; uk hàm tổng; bk ngưỡng; f hàm truyền yk tín hiệu đầu nơron 1.1.2 Một số kiểu mạng Neural ♦ Tự kết hợp (autoassociative ♦ Kết hợp khác kiểu (heteroassociative) ♦ Kiến trúc truyền thẳng (feedforward architechture) Hình 1.4 Mạng truyền thẳng 1.1.3 Mạng Neural lan truyền ngƣợc MLP a Kiến trúc mạng MLP Hình 1.6 Mạng neural lan truyền ngược MLP Kiến trúc mạng MLP tổng quát mơ tả sau: ♦ Đầu vào vector (x1, x2, , xp) không gian p chiều, đầu vector (y1, y2, , yq) không gian q chiều Mỗi nơron thuộc tầng sau liên kết với tất nơron thuộc tầng liền trước Đầu nơron tầng trước đầu vào nơron thuộc tầng liền sau b Huấn luyện mạng MLP: + Các phương pháp học: ♦ Học có giám sát ♦ Học khơng giám sát ♦ Học tăng cƣờng c Học có giám sát mạng nơron d Mạng lan truyền ngược Mô hình mạng: Mạng neural lan truyền ngược có mơ sau 1 p q m L n Mạng có lớp: - Lớp vào (Input Layer) – số node vào số thuộc tính đối tượng cần phân lớp - Lớp (Output Layer) – Số node số đặc điểm cần hướng tới đối tượng (giá trị cần hướng đến – học có giám sát) - Lớp ẩn (Hidden Layer) – Số node ẩn thường khơng xác định trước, thường kinh nghiệm người thiết kế mạng, số node ẩn nhiều mạng cồng kềnh, trình học chậm, cịn số node ẩn q làm mạng học khơng xác 1.2 Mạng neural tích chập 1.2.1 Định nghĩa mạng neural tích chập Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) mơ hình Deep Learning tiên tiến giúp cho xây dựng hệ thống thông minh với độ xác cao Trong luận văn này, trình bày Convolution (tích chập) ý tưởng mơ hình CNNs phân lớp chữ viết áp dụng toán nhận dạng biển số xe (Image Classification) 1.2.2 Convolution (tích chập) Tích chập sử dụng xử lý tín hiệu số (Signal processing) Nhờ vào nguyên lý biến đổi thông tin, nhà khoa học áp dụng kĩ thuật vào xử lý ảnh video số Để dễ hình dung, ta xem tích chập cửa sổ trượt (sliding window) áp đặt lên ma trận Bạn theo dõi chế tích chập qua hình minh họa bên Hình 1.8 Minh họa tích chập Ma trận bên trái ảnh đen trắng Mỗi giá trị ma trận tương đương với điểm ảnh (pixel), màu đen, màu trắng (nếu ảnh grayscale giá trị biến thiên từ đến 255) 1.2.3 Mô hình mạng neural tích chập Trong mơ hình CNNs ngược lại Các layer liên kết với thông qua chế convolution Layer kết convolution từ layer trước đó, nhờ mà ta có kết nối cục Nghĩa nơ-ron layer sinh từ filter áp đặt lên vùng ảnh cục nơ-ron layer trước Hình 1.11 Mơ hình mạng neural tích chập CNNs có tính bất biến tính kết hợp cục (Location Invariance and Compositionality) Với đối tượng, đối tượng chiếu theo gốc độ khác (translation, rotation, scaling) độ xác thuật toán bị ảnh hưởng đáng kể Pooling layer cho bạn tính bất biến phép dịch chuyển (translation), phép quay (rotation) phép co giãn (scaling) 1.2.4 Xây dựng mạng neural tích chập Mạng tích chập sử dụng ý tưởng bản: trường tiếp nhận cục (local receptive field), trọng số chia sẻ (shared weights) tổng hợp (pooling) Chúng ta xem xét ý tưởng Trường tiếp nhận cục (Local receptive fields): Trong tầng kết nối đầy đủ trước đây, đầu vào mô tả đường thẳng đứng chứa nơron Trong mạng tích chập, ta thay đầu vào 28 × 28 nơron, giá trị tương ứng với 28 x28 cường độ điểm ảnh mà sử dụng: 10 Theo đo đạc biển số thực tế, ký tự thường có tỷ lệ kích thước chiều rộng, chiều cao tương ứng với chiều dài rộng biển số xe Ví dụ, chiều cao ký tự nhỏ 85% chiều cao biển số xe lớn 60% chiều cao biến xe biển số xe có hàng, với biển số xe có hai hàng chiều cao kí tự khơng q 50% chiều cao 20 biển số xe Chiều rộng ký tự thường không lớn 20% chiều cao ký tự Mỗi ký tự biển số xe xem vùng liên thông hay contour (bao đóng) Do đó, đếm số contours thỏa mãn tính chất ký tự Ở nước ta có số ký tự biển số xe nằm khoảng đến ký tự Từ phân tích trên, tóm tắt phương pháp thực chương trình nhận dạng sau: Bước 1: Ảnh đầu vào ảnh màu BGR, tiền xử lý thuật toán xử lý ảnh Bước 2: Tìm contour ảnh xe (Mỗi contour vùng bao kín, vùng biển số vùng bao kín nên tương ứng với contour) Bước 3: Lọc contour theo tiêu chí kích thước, góc, tỉ lệ, số kí tự, … Bước 4: Xử lý kết đầu để lấy vùng biển số Bước 5: Tách ký tự vùng biển số tìm Bước 6: Đưa tập ký tự tách vào mạng Neural để nhận dạng Bước 7: Hiển thị kết lên giao diện chương trình Phần 3: ÁP DỤNG MẠNG NEURAL TÍCH CHẬP TRONG NHẬN DẠNG KÝ TỰ Xây dựng mơ hình mạng Mơ hình mạng neural tích chập xây dựng để nhận dạng ký tự sau: 21 Hình 3.1 Mơ hình mạng neural tích chập nhận dạng ký tự viết tay Ảnh đầu vào ảnh thơ kích thước 32x32 pixel Chúng ta sử dụng ma trận chập kích thước 5x5 cho ma trận ảnh đặc trưng sau chập lần ma trận ánh xạ đặc trưng tầng chập C1, ma trận ánh xạ đặc trưng có kích thước 28x28 Tức ảnh gốc ban đầu phân tích theo chiều đặc trưng khác với ma trận chập 5x5 Do kích thước ảnh đặc trưng tầng chập C1 có kích thước 28x28 cịn lớn, bước thực phép giảm số chiều ma trận đặc trưng (down Sampling – hay Pooling – hay subsampling) với hệ số tỷ lệ sử dụng hàm max: Ví dụ ô cạnh ma trận đặc trưng có giá trị 3,5 tạo thành ô ma trận đặc trưng subsamling : max(3,5)=5 Như với ma trận đặc trưng kích thước 28x28 tầng chập C1 ta tạo ma trận kích thước 14x14 tầng subsampling (S2) Tiếp tục sử dụng 16 ma trận chập kích thước 5x5 chập với ma trận tầng S2 ta 16 ma trận ánh xạ đặc trưng kích thước 10x10 tầng chập C3 Do kích thước ảnh đặc trưng tầng chập C3 có kích thước 14x14 cịn lớn, bước thực phép giảm số chiều ma trận đặc trưng (down Sampling – hay Pooling – hay subsampling) với hệ số tỷ lệ sử dụng hàm max Kết với 16 ma trận đặc trưng kích thước 10x10 tầng chập C3 ta tạo 16 ma trận kích thước 5x5 tầng subsampling (S4) 22 Tiếp tục sử dụng 120 ma trận chập kích thước 5x5 chập với ma trận tầng S4 ta 120 ma trận ánh xạ đặc trưng kích thước 1x1 tầng chập C5 Do đặc trưng tầng chập C5 điểm đặc trưng 1x1, ta khơng thực phép tốn subsampling Tiếp theo ta sử dụng phép toán max để giảm kích thước tầng chập C5 tầng C5 có tới 120 node đặc trưng, ta dùng hàm max giảm xuống 84 node tầng F6 Lưu ý khối tầng từ đầu tới F6 ta sử dụng hàm kích hoạt Sigmoid dạng : f (x)= y=1/(1+e-x) để tính tốn giá trị node mạng, tức y’ = f(A*I) A ảnh chập, I ma trận chập, y’ giá trị node ma trận ánh xạ đặc trưng Với 84 node tầng F6, sử dụng mơ hình mạng neural truyền thẳng với kết nối Fully Connection, với 10 outputs thiết kế sau: Hình 3.2 Minh họa Fully Connection Với giá trị tính cơng thức 23 Ta hình dung mơ hình nhận dạng chữ viết thực sau: Hình 3.3 Minh họa bước tích chập Kết nhận dạng ký tự viết tay Ta xây dựng phần mềm nhận dạng biển số xe dựa mạng neural tích chập, với phần nhận dạng ký tự trình bày trên, ta có kết thực nghiệm nhận dạng chữ viết tay với phần mềm mạng neural tích chập: Hình 3.4 Kết thực nghiệm CNN 24 Quá trình thử nghiệm với 1000 chữ viết tay với phần mềm ta thấy kết xác với 99.6%, số kết sai viết phân biệt , ví dụ với chữ viết sau: Hình 3.6 Một số mẫu chữ lỗi Với phần mềm nhận dạng chữ viết tay kết thu gần có độ xác tuyệt đối, ta áp dụng nhận dạng chữ viết tay việc nhận dạng biển số xe Kết thực nghiệm nhận dạng biển số xe với mạng Neural tích chập Chạy ứng dụng nhận dạng biển số, đưa 376 ảnh liệu xe để kiểm tra kết phát biển số, tách ký tự nhận dạng ký tự chương trình, ghi nhận kết Tỉ lệ biển nhận dạng vùng biển số: 372/376 ~ 98% Tỉ lệ biển tách đầy đủ ký tự: 330/335 ~ 98% Hình 3.3 Một số biển khơng tách ký tự Chữ số bị dính với vật bên đinh ốc, ký tự bị mờ nét, nét, loang lổ, Kết nhận dạng chung ứng dụng từ khâu phát biển số, đến tách ký tự nhận dạng ký tự đạt xấp xỉ 65% với liệu có nhiều ảnh khơng đạt tiêu chuẩn bị bóng mờ, q dơ, nhịe,… Với ảnh biển số sẽ, rõ ràng, không phụ kiện gắn biển, tỉ lệ nhận dạng đạt tới hớn 70% Kết luận Ưu điểm: thuật tốn cài đặt nhanh, tìm vùng biển số cách ly ký tự với tỉ lệ thành công cao (ở biển số thơng thường), tìm ảnh tự nhiên, vùng biển số bị nghiêng Bên cạnh đó, cịn tồn số điểm hạn chế chưa giải như: • Tỉ lệ vào điều kiện ánh sáng, phản chiếu che bóng nhận dạng cịn phụ thuộc nhiều • Với biển số có đường viền phức tạp mức độ nhận dạng khơng cao Chỉ giới hạn ảnh chụp góc 40 độ để nhận dạng tốt, góc lớn khả nhận dạng giảm • Ảnh xe bóng tối hay ban đêm khơng có đèn flash khả nhận dạng thấp thiếu sáng - Nghiên cứu theo hướng ứng dụng cụ thể : giám sát phương tiện giao thông, xử lý vi phạm giao thông, quản lý xe bãi giữ xe, kho vật tư… DANH MỤC TÀI LIỆU THAM KHẢO http://neuralnetworksanddeeplearning.com/chap6.html http://neuralnetworksanddeeplearning.com/chap2.html [3].Y LeCun and Y Bengio.“Convolutional networks for images, speech, and timeseries.” In M A Arbib, editor, The Handbook of Brain Theory and Neural Networks MIT Press, 1995 [4].Fabien Lauer, ChingY Suen, Gérard Bloch,”A trainable feature extractor for handwritten digit recognition“,Elsevier, october 2006 [5].Patrice Y Simard, Dave Steinkraus, John Platt, "Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis," International Conference on Document Analysis and Recognition (ICDAR), IEEE Chirag N Paunwala & Suprava Patnaik “A Novel Multiple License Plate Extraction Techniquefor Complex Background in Indian Traffic Conditions”, Sarvajanik College of Engineering and Technology, 2010 Choo Kar Soon, Kueh Chiung Lin, Chung Ying Jeng and Shahrel A Suandi , “Malaysian Car Number Plate Detection and Recognition System”, 2012 Tran Duc Duan, Duong Anh Duc, Tran Le Hong Du, “Combining Hough Transform and Contour Algorithm for detecting Vehicles LicensePlates”, University of Natural Sciences, 2004 Nobuyuki Otsu, "A threshold selection method from gray-level histograms”, 1979 10 Suman K Mitra “Recognition of Car License Plate using Morphology”, hirubhai Ambani Institute of Information and Communication Technology, Gandhinagar, Gujarat, India 11 Các tài liệu EmguCV www.emgucv.com OPenCV www.opencv.com ... Phần 2: TỔNG QUAN VỀ NHẬN DẠNG BIỂN SỐ XE Khái niệm hệ thống nhận dạng biển số xe 2. 1.1 Khái niệm Hệ thống nhận dạng biển số xe hệ thống có khả phân tích hình ảnh xác định vùng chứa biển số xe, ... dụng nhận dạng chữ viết tay việc nhận dạng biển số xe Kết thực nghiệm nhận dạng biển số xe với mạng Neural tích chập Chạy ứng dụng nhận dạng biển số, đưa 376 ảnh liệu xe để kiểm tra kết phát biển. .. rộng biển số xe Ví dụ, chiều cao ký tự nhỏ 85% chiều cao biển số xe lớn 60% chiều cao biến xe biển số xe có hàng, với biển số xe có hai hàng chiều cao kí tự khơng q 50% chiều cao 20 biển số xe