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
2,97 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ LÊ THỊ THU HẰNG NGHIÊN CỨU VỀ MẠNG NƠRON TÍCH CHẬP VÀ ỨNG DỤNG CHO BÀI TỐN NHẬN DẠNG BIỂN SỐ XE LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN HÀ NỘI, 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ LÊ THỊ THU HẰNG NGHIÊN CỨU VỀ MẠNG NƠRON TÍCH CHẬP VÀ ỨNG DỤNG CHO BÀI TOÁN NHẬN DẠNG BIỂN SỐ XE Ngành Chuyên ngành Mã số : Công nghệ thông tin : Kĩ thuật phần mềm : 60480103 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Người hướng dẫn khoa học: TS.Nguyễn Văn Vinh HÀ NỘI, 2016 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi dƣới hƣớng dẫn Tiến sĩ Nguyễn Văn Vinh Các kết đạt đƣợc luận văn sản phẩm riêng cá nhân, không chép ngƣời khác Nội dung luận văn có tham khảo sử dụng số thông tin, tài liệu từ nguồn sách, tạp chí đƣợc liệt kê danh mục tài liệu tham khảo Tác giả luận văn Lê Thị Thu Hằng LỜI CẢM ƠN Em xin chân thành cảm ơn thầy, cô khoa Công nghệ Thông tinTrƣờng Đại học Công nghệ - Đại học quốc gia Hà Nội tận tình dạy dỗ, truyền đạt cho em nhiều kiến thức quý báu Em xin tỏ lòng biết ơn sâu sắc đến thầy Ts Nguyễn Văn Vinh, ngƣời tận tình giúp đỡ truyền đạt nhiều kinh nghiệm để đề tài đƣợc thực hoàn thành Xin chân thành cảm ơn bạn khoa Công Nghệ Thông Tin, Trƣờng ĐH Công nghệ giúp đỡ, động viên nhiều trình thực đề tài Em xin chân thành cảm ơn ! Hà nội, tháng năm 2016 Học viên Lê Thị Thu Hằng MỤC LỤC LỜI MỞ ĐẦU 10 CHƢƠNG 1: MẠNG NƠRON 12 VÀ MẠNG NƠRON TÍCH CHẬP 12 1.1 Mạng nơron mạng nơron lan truyền ngƣợc 12 1.1.1 Giới thiệu mạng Nơron .12 1.1.2 Kiến trúc mạng truyền thẳng 14 1.1.3 Mạng nơron truyền thẳng thuật toán lan truyền ngƣợc 15 1.2 Mạng nơron tích chập 23 1.2.1 Định nghĩa mạng nơron tích chập [1] .23 1.2.2 Tích chập (convolution) 23 1.2.3 Mơ hình mạng nơron tích chập 25 1.2.4 Xây dựng mạng nơron tích chập 26 CHƢƠNG 2: TỔNG QUAN VỀ NHẬN DẠNG BIỂN SỐ XE 37 2.1 Khái niệm hệ thống nhận dạng biển số xe 37 2.1.1 Khái niệm 37 2.1.2 Lịch sử phát triển 37 2.1.3 Cách thức hoạt động hệ thống nhận dạng biển số xe 38 2.1.4 Phân loại ứng dụng nhận dạng biển số xe 38 2.1.5 Ứng dụng thực tiễn Việt Nam 39 2.1.6 Phân loại biển số xe 40 2.2 Phƣơng pháp phát biển số xe từ ảnh chụp camera .41 2.2.1 Phƣơng pháp chuyển đổi Hough .42 2.2.2 Phƣơng pháp hình thái học .42 2.3 Quy trình nhận dạng biển số xe 43 CHƢƠNG 3: ÁP DỤNG MẠNG NƠRON TÍCH CHẬP 45 TRONG NHẬN DẠNG KÝ TỰ 45 3.1 Xây dựng mơ hình mạng 45 3.2 Cấu hình thử nghiệm 47 3.3 Thiết kế mạng cho toán: 48 3.4 Kết thực nghiệm nhận dạng biển số xe với mạng nơron tích chập 48 KẾT LUẬN 55 TÀI LIỆU THAM KHẢO 56 DANH MỤC BẢNG Bảng 1.1 Một số hàm truyền thông dụng 14 Bảng 2.1 Quy định biển số cho quân đội 40 DANH MỤC HÌNH Hình 1.1 Cấu tạo Nơron .12 Hình 1.2 Mạng truyền thẳng 15 Hình 1.3 Mạng nơron truyền thẳng nhiều tầng .16 Hình 1.4 Ảnh hƣởng kích thƣớc mẫu .21 Hình 1.5 Minh họa tích chập .24 Hình 1.6 Ảnh mờ sau chập 24 Hình 1.7 Ảnh đƣợc phát biên sau chập .25 Hình 1.8 Mơ hình mạng nơron tích chập 26 Hình 1.9 Mơ hình mạng perceptron nhiều tầng 27 Hình 2.1 Ảnh xám lƣợc đồ xám ảnh 43 Hình 3.1 Mơ hình mạng nơron tích chập nhận dạng ký tự số .45 Hình 3.2 Minh họa mạng liên kết đầy đủ (full connection) 47 Hình 3.3 Mơ hình nhận dạng kí tự số .47 Hình 3.4 Mơ hình mạng cho tốn 48 Hình 3.5 Một số biển không tách ký tự 49 DANH MỤC TỪ VIẾT TẮT Từ viết tắt CNNs Conv ANN Artifi MLP Multi CONV Conv ALPR Auto MNIST Mixe Stand Techn OCR Optic GPU Graph LỜI MỞ ĐẦU Mạng Nơron Nhân Tạo -Artificial Neural Network (ANN) mạng có khả mơ học hiệu ANN mơ gần nhƣ hàm mục tiêu với số biến nhập xuất tuỳ ý, điểm có lẽ chƣa có phƣơng pháp trƣớc đạt đƣợc ANN cịn có ƣu điểm tuyệt vời khác, khả học Một ANN gần giống nhƣ đối tƣợng tƣ Mỗi có kiến thức (Data mới) ta lại đƣa cho ANN học Khả mạng nơron nhân tạo cần thiết cho vấn đề có liệu thay đổi, cập nhật nhƣ tốn nhận dạng mà tơi nghiên cứu Học sâu – deep learning (hay cịn gọi học có cấu trúc sâu – deep structured learning, học nhiều lớp – hierarchical học máy sâu – deep machine learning) nhánh học máy dựa tập giải thuật cố gắng trừu tƣợng hóa liệu nhiều tầng với cấu trúc phức tạp nhiều biến đổi phi tuyến Học sâu nhánh lớn phƣơng pháp học máy dựa việc học cách biểu diễn liệu Ví dụ ảnh biểu diễn theo nhiều cách nhƣ véc tơ giá trị mức xám điểm ảnh theo cách trừu tƣợng tập biên, vùng hình khối cụ thể,… Nhiều kiến trúc học sâu nhƣ mạng nơron sâu (deep neural networks), mạng nơron tích chập mạng hồi quy đƣợc áp dụng lĩnh vực nhƣ thị giác máy, tự động nhận dạng tiếng nói, xử lí ngơn ngữ tự nhiên, nhận dạng âm tin sinh học thu đƣợc kết tiến Hiện nhiều toán nhận dạng sử dụng học sâu để giải học sâu giải tốn với kích thƣớc đầu vào lớn với hiệu nhƣ độ xác vƣợt trội so với phƣơng pháp phân lớp truyền thống Những năm gần đây, ta chứng kiến đƣợc nhiều thành tựu vƣợt bậc ngành Thị giác máy tính (Computer Vision) Các hệ thống xử lý ảnh lớn nhƣ Facebook, Google hay Amazon đƣa vào sản phẩm chức thơng minh nhƣ nhận diện khuôn mặt ngƣời dùng, phát triển xe tự lái, Mạng nơron tích chập (Convolutional Neural Networks- CNNs) mơ hình học sâu tiên tiến giúp cho xây dựng đƣợc hệ thống thơng minh với độ xác cao nhƣ Mạng nơron tích chập kiểu 10 Biển ô tô - Chiều cao: 110 mm Chiều rộng: 470 mm (biển dài) - Chiều cao: 200 mm Chiều rộng: 280 mm (biển vuông) Biển xe máy: - Chiều cao: 140 mm Chiều rộng: 190 mm Nhƣ vậy, tỉ lệ Chiều cao / Chiều rộng là: 0.18 < Chiều cao/Chiều rộng < 0.3 (biển số có hàng) 0.6 < Chiều cao/Chiều rộng < 0.85 (biển số xe có hàng) Từ đặc điểm này, ta xác định đƣợc vùng có khả biển số theo ràng buộc kích thƣớc b) Tiêu chuẩn ký tự 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 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 đƣợc xem nhƣ 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 nhƣ sau: Bước 1: Ảnh đầu vào ảnh màu RGB, 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í nhƣ 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 đƣợc Bước 6: Đƣa tập ký tự tách vào mạng nơron để nhận dạng Bước 7: Đánh giá kết nhận dạng biển số xe 44 CHƢƠNG 3: ÁP DỤNG MẠNG NƠRON TÍCH CHẬP TRONG NHẬN DẠNG KÝ TỰ 3.1 Xây dựng mơ hình mạng Sau tách đƣợc ký tự dƣới dạng ảnh từ biển số xe, bƣớc cần nhận dạng ký tự Để nhận dạng đƣợc ký tự có nhiều phƣơng pháp nhận dạng, KNN, SVM, mạng nơron truyền thống, Ở sử dụng mạng nơron tích chập nhận dạng ký tự số mạng nơron tích chập có độ xác cao, hiệu tốc độ xử lý tính tốn nhanh mạng trƣớc Mơ hình mạng nơron tích chập đƣợc dựa mạng Lenet-5 giáo sƣ LeCun nghành khoa học máy tính viện nghiên cứu đại học New York, luận văn ta xây dựng để nhận dạng ký tự nhƣ sau: Hình 3.1 Mơ hình mạng nơron tích chập nhận dạng ký tự số 45 Ả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 đƣợc 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 đƣợc 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 đƣợc 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 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 đƣợc 16 ma trận kích thƣớc 5x5 tầng subsampling (S4) 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 đƣợc 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 toán subsampling Tiếp theo ta sử dụng phép tốn max để giảm kích thƣớc tầng chập C5 tầng C5 có tới 120 nút đặc trƣng, ta dùng hàm max giảm xuống 84 nút 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ị nút mạng, tức y‟ = f(A*I) A ảnh chập, I ma trận chập, y‟ giá trị nút ma trận ánh xạ đặc trƣng Với 84 nút tầng F6, sử dụng mô hình mạng nơron truyền thẳng với kết nối đầy đủ, với 10 đầu đƣợc thiết kế nhƣ sau: 46 Hình 3.2 Minh họa mạng liên kết đầy đủ (full connection) Với giá trị đƣợc tính nhƣ cơng thức Ta hình dung mơ hình nhận dạng kí tự số đƣợc thực nhƣ sau: Hình 3.3 Mơ hình nhận dạng kí tự số 3.2 Cấu hình thử nghiệm Máy tính: - Chip: Intel Core i3 3220 - 3.3GHz, 3MB L3 cache, Socket 1155 - RAM: 4GB - HDD: 500GB - OS: MS Windows Dữ liệu: 376 liệu: Dữ liệu từ nguồn Internet biển số xe - Huấn luyện: 300 ảnh dùng để huấn luyện tìm trọng số Wij Test: 76 ảnh để kiểm tra nhận dạng đánh giá kết Công cụ: 47 - openCV [12]: Dùng hàm thƣ viện xử lý ảnh để bóc biển số xe OpenCV (Open Source Computer Vision) thƣ viện mã nguồn mở thị giác máy với 500 hàm 2500 thuật toán đƣợc tối ƣu xử lý ảnh, vấn đề liên quan tới thị giác máy OpenCV đƣợc thiết kế cách tối ƣu, sử dụng tối đa sức mạnh dịng chip đa lõi… để thực phép tính toán thời gian thực, nghĩa l t ốc độ đáp ứng đủ nhanh cho ứng dụng thông thƣờng OpenCV thƣ viện đƣợc thiết kế để chạy nhiều tảng khác (cross-patform), nghĩa chạy hệ điều hành Window, Linux, Mac, iOS … Theano[13]: Theano thƣ viện mạng nơron (bao gồm: mạng truyền thẳng, mạng tích chập, mạng hồi quy…) viết ngơn ngữ Python cho phép ta định nghĩa, tối ƣu hóa, đánh giá biểu thức toán học liên quan đến mảng nhiều chiều mạng nơron cách hiệu 3.3 Thiết kế mạng cho tốn: Hình 3.4 Mơ hình mạng cho toán - Ảnh vào: ảnh nhị phân kích thƣớc 32x32 - Sử dụng 20 ma trận chập 5x5 tạo kết 20 ma trận chập đặc trƣng kích thƣớc 28x28 - Giảm chiều ảnh sử dụng hàm softmax kết tầng pooling có 20 ma trận kích thƣớc 14x14 - Sử dụng hàm sigmoid (softmax) cho 100 nơron – ảnh tầng pooling 14x14 chọn nơron có đặc trƣng cao (softmax) sau cho qua hàm sigmoid đƣợc 100 nơron sigmoid - Kết nối đầy đủ 100 nơron với 10 đầu - Lan truyền ngƣợc nhƣ mạng ANN ta thu đƣợc trọng số học Wij cho đầu 3.4 Kết thực nghiệm nhận dạng biển số xe với mạng nơron tích chập 48 Ta xây dựng chƣơng trình thử nghiệm nhận dạng biển số xe dựa mạng nơron tích chập, với phần nhận dạng ký tự đƣợc trình bày trên, ta có kết thực nghiệm nhận dạng biển số xe với mạng nơron tích chập Chạy ứng dụng nhận dạng biển số, đƣa lần lƣợt 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 Ả Bảng 3.1 Kết thực nghiệm nhận dạng biển số xe Nhƣ ảnh nhiễu ta dùng mạng ANN nhƣ CNNs, kết thực nghiệm nhận dạng biển số xe cho độ xác gần nhƣ Cịn ảnh nhiễu nhiều, ảnh chụp phƣơng tiện chuyển động, lúc ảnh bị nhịe, nhiễu lớn kết thực nghiệm thấy độ xác nhận dạng phƣơng pháp CNNs cao hẳn ANN Vì CNNs thích hợp ANN việc nhận dạng đối tƣợng bị nhiễu lớn hay ta sử dụng ƣu điểm CNNs việc nhận dạng phƣơng tiện di chuyển nhƣ phạt nguội phƣơng tiện đƣờng giao thông Sau số ảnh nhiễu gây khó khăn cho nhận dạng: Hình 3.5 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ổ, 49 Các bƣớc thực chƣơng trình: Bước Tải ảnh Bước Nổi biên ảnh Bước Xác định vùng biển số xe 50 Bước Khoanh vùng có khả biển số xe Bước Lấy ảnh biển số 51 Bước Tách kí tự biển số Bước Nhấn lưu ảnh, tạo liệu huấn luyện 52 Bước Khởi tạo mạng Bước Huấn luyện lưu huấn luyện 53 Bước 10 Nhận dạng biển số 54 KẾT LUẬN Qua luận văn tốt nghiệp cao học đề tài “NGHIÊN CỨU VỀ MẠNG NƠRON TÍCH CHẬP VÀ ỨNG DỤNG CHO BÀI TOÁN NHẬN DẠNG BIỂN SỐ XE”, thực hiện: Nghiên cứu tổng quan nhận dạng biển số xe nhƣ tìm hiểu đƣợc số giải thuật rút trích biển số, tách ký tự, Tìm hiểu đƣợc mạng nơron mạng nơron tích chập (CNNs), ƣu nhƣợc điểm mạng Áp dụng CNNs cho toán nhận dạng biển số xe, cho kết khả quan Hƣớng phát triển toán: Nâng cao hiệu chƣơng trình, tách ly kí tự biển số trƣờng hợp biển số bị nhiều nhiễu, mát thông tin nhiễu từ điều kiện mơi trƣờng, tìm vùng biển số ảnh có độ tƣơng phản biển số thấp Đặc biệt biển xe có màu đỏ chữ trắng - Nghiên cứu theo hƣớng ứng dụng cụ thể nhƣ : 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ƣ… Nghiên cứu phát triển phần mềm theo hƣớng tự động nhận dạng biển số xe chuyển động (Live) áp dụng phạt nguội phƣơng tiện giao thông di chuyển, nghiên cứu kết hợp CNNs với GPU để tăng tốc độ xử lý tăng độ xác nhận dạng 55 TÀI LIỆU THAM KHẢO Tiếng Việt [1] https://ongxuanhong.wordpress.com/2015/12/29/convolutional-neuralnetworks-la-gi/ Tiếng Anh [2] http://neuralnetworksanddeeplearning.com/chap6.html [3] http://neuralnetworksanddeeplearning.com/chap2.html [4] Y LeCun and Y Bengio.“Convolutional networks for images, speech, and time-series.” In M A Arbib, editor, The Handbook of Brain Theory and Neural Networks MIT Press, 1995 [5] Fabien Lauer, ChingY Suen, Gérard Bloch,”A trainable feature extractor for handwritten digit recognition“,Elsevier, october 2006 [6] 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 [7] 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 [8] Choo Kar Soon, Kueh Chiung Lin, Chung Ying Jeng and Shahrel A Suandi, “Malaysian Car Number Plate Detection and Recognition System”, 2012 [9] Tran Duc Duan, Duong Anh Duc, Tran Le Hong Du, “Combining Hough Transform and Contour Algorithm for detecting Vehicles License-Plates”, University of Natural Sciences, 2004 [10] Nobuyuki Otsu, "A threshold selection method from gray-level histograms”, 1979 [11] Suman K Mitra “Recognition of Car License Plate using Morphology”, hirubhai Ambani Institute of Information and Communication Technology, Gandhinagar, Gujarat, India Các tài liệu EmguCV www.emgucv.com OPenCV www.opencv.com [12] [13] www.Deeplearning.net/software/theano/ 56 [14] Quoc V Le, A Tutorial on Deep Learning - Part 2: Autoencoders, Convolutional Neural Networks and Recurrent Neural Networks, qvl@google.com, Google Brain, Google Inc,1600 Amphitheatre Pkwy, Mountain View, CA 94043, October 20, 2015 57 ... 1: Mạng nơron mạng nơron tích chập Chƣơng 2: Tổng quan nhận dạng biển số xe Chƣơng 3: Áp dụng mạng nơron tích chập nhận dạng ký tự 11 CHƢƠNG 1: MẠNG NƠRON VÀ MẠNG NƠRON TÍCH CHẬP 1.1 Mạng nơron. .. có dạng tƣơng tự nhƣ biển số xe ngoại cảnh Sự khác cấu trúc biển số xe nƣớc 2.1.4 Phân loại ứng dụng nhận dạng biển số xe Có nhiều cách thức khác để phân loại ứng dụng nhận dạng biển số xe. .. nhận dạng biển số xe 38 2.1.4 Phân loại ứng dụng nhận dạng biển số xe 38 2.1.5 Ứng dụng thực tiễn Việt Nam 39 2.1.6 Phân loại biển số xe 40 2.2 Phƣơng pháp phát biển số xe