Biển báo giao thông là một phần của công trình tín hiệu đường bộ tuy nhiên việc phát hiện và nhận biết biển báo giao thông gặp rất nhiều khó khăn do trong quá trình lái xe còn nhiều vấn đề an toàn khác chi phối Mục đích của đề tài này là nghiên cứu và tìm ra phương pháp tối ưu nhất để xây dựng thuật toán phát hiện và nhận dạng biển báo giao thông Chương trình có đầu vào là một file ảnh hoặc video và đầu ra là biển báo có trong dữ liệu đầu vào Chương trình áp dụng thuật toán Viola Jones để phát hiện biển báo trong ảnh Sau đó sử dụng kỹ thuật phân tích thành phần chính PCA để xác định biển báo trong ảnh Báo cáo sẽ tập trung vào việc trình bày các thuật toán Viola Jones và kỹ thuật PCA
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA BÙI THANH PHONG ÁP DỤNG HỌC MÁY TRONG NHẬN DẠNG BIỂN BÁO GIAO THÔNG Chuyên ngành : Khoa học máy tính Mã số : 60.48.01.01 LUẬN VĂN THẠC SĨ KHOA HỌC Người hướng dẫn khoa học: TS PHẠM MINH TUẤN Đà Nẵng - Năm 2018 LỜI CẢM ƠN Tôi xin chân thành cảm ơn thầy, cô khoa Công nghệ thông tin thầy cô giảng dạy trường Đại học Đà Nẵng truyền đạt kiến thức quý báu cho năm nghiên cứu học tập trường Đặc biệt, xin chân thành cảm ơn thầy Phạm Minh Tuấn, khoa Công nghệ thông tin, trường Đại học Bách khoa tận tình hướng dẫn, động viên giúp đỡ tơi suốt thời gian nghiên cứu thực đề tài Và để có kết ngày hơm nay, tơi biết ơn gia đình động viên, khích lệ, tạo điều kiện thuận lợi suốt trình nghiên cứu, học tập trình thực đề tài tốt nghiệp Một lần xin chân thành cám ơn! Đà Nẵng, tháng năm 2018 Tác giả Bùi Thanh Phong LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu - Những nội dung luận văn thực hướng dẫn trực tiếp TS Phạm Minh Tuấn - Mọi tham khảo dùng luận văn trích dẫn rõ ràng trung thực tên tác giả, tên cơng trình, thời gian, địa điểm công bố - Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tơi xin chịu hồn tồn trách nhiệm Tác giả Bùi Thanh Phong MỤC LỤC LỜI CAM ĐOAN MỤC LỤC DANH MỤC CÁC CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH TĨM TẮT LUẬN VĂN MỞ ĐẦU 1 Lý chọn đề tài Mục tiêu nghiên cứu Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Ý nghĩa khoa học thực tiễn Bố cục Luận văn CHƯƠNG TỔNG QUAN NGHIÊN CỨU 1.1 Tổng quan xử lý ảnh 1.1.1 Tổng quan xử lý ảnh .4 1.1.2 Các trình xử lý ảnh 1.1.3 Ảnh biểu diễn ảnh 1.1.4 Phạm vi ứng dụng xử lý ảnh 1.2 Học máy 1.2.1 Tổng quan học máy 1.2.2 Các phương pháp học máy 1.2.2.1 Học không giám sát 1.2.2.2 Học có giám sát .9 1.2.2.3 Học bán giám sát 10 1.2.2.4 Học tăng cường .10 1.2.2.5 Các ứng dụng học máy 11 1.3 Các phương pháp nhận dạng đối tượng 11 1.3.1 Phương pháp Neural Networks (NN) 11 1.3.2 Phương pháp Support Vector Machine (SVM) .12 1.3.3 Phương pháp Linear Discriminant Analysis 12 1.3.4 Phương pháp Naive Bayes (NB) 12 1.3.5 Phương pháp Principal Component Analysis (PCA) 12 1.4 Kết chương .13 CHƯƠNG MƠ HÌNH ĐỀ XUẤT TRONG PHÁT HIỆN VÀ NHẬN DẠNG BIỂN BÁO GIAO THÔNG 14 2.1 Mô tả toán 14 2.2 Mơ hình tổng quát 14 2.3 Phương pháp đề xuất 15 2.3.1 Mơ hình phát Biển Báo Giao Thông .15 2.3.1.1 Mô hình phát 15 2.3.1.2 Đặc trưng Haar-like 16 2.3.1.3 Integral Image .17 2.3.1.4 Thuật toán Adaboost 18 2.3.1.5 Cascade 23 2.3.2 2.3.3 2.3.4 2.3.5 Mơ tả thuật tốn nhận diện biển báo 28 Principal component analysis (PCA) 29 Khoảng cách mahalanobis 31 Chuyển đổi không gian vector 31 2.3.6 Các bước giảm chiều liệu: 32 2.3.7 Tiến trình nhận dạng biển báo 35 2.4 Kết chương .35 CHƯƠNG THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 36 3.1 Tổ chức liệu .36 3.2 Thu thập liệu 36 3.3 Cài đặt thực nghiệm chương trình .36 3.3.1 Dữ liệu đầu vào .36 3.3.2 Xử lý liệu 36 3.3.2.1 Cấu trúc chương trình 37 3.3.2.2 Huấn luyện 37 3.3.2.3 Phát biển báo .37 3.3.2.4 Nhận dạng biển báo .38 3.3.3 Giao diện chương trình 40 3.4 Một số hình ảnh thực chương trình Demo 43 3.4.1 Phát biển báo 43 3.4.2 Huấn luyện kiểm tra 46 3.5 Đánh giá kết .50 3.5.1 Về lý thuyết 50 3.5.2 Về Cài đặt 51 3.5.3 Về thực nghiệm 51 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 52 TÀI LIỆU THAM KHẢO 53 QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (bản sao) TÓM TẮT LUẬN VĂN ÁP DỤNG HỌC MÁY TRONG NHẬN DẠNG BIỂN BÁO GIAO THÔNG Bùi Thanh Phong, học viên cao học khóa 33 Quảng Ngãi, chuyên ngành Khoa học máy tính Tóm tắt: Biển báo giao thơng phần cơng trình tín hiệu đường bộ, nhiên việc phát nhận biết biển báo giao thông gặp nhiều khó khăn q trình lái xe cịn nhiều vấn đề an tồn khác chi phối Mục đích đề tài nghiên cứu tìm phương pháp tối ưu để xây dựng thuật toán phát nhận dạng biển báo giao thơng Chương trình có đầu vào file ảnh video đầu biển báo có liệu đầu vào Chương trình áp dụng thuật tốn Viola-Jones để phát biển báo ảnh Sau sử dụng kỹ thuật phân tích thành phần (PCA) để xác định biển báo ảnh Báo cáo tập trung vào việc trình bày thuật tốn ViolaJones kỹ thuật PCA Từ khóa: biển báo giao thơng, Viola-Jones, PCA Abstract: Traffic signs are a part of road signaling works, however, the detection and identification of traffic signs are difficult due to many other safety issues in driving The purpose of this research is to research and find the best method to build traffic detection and identification algorithm The program has an input image or video file and the output is the signage contained in the input data The program uses the ViolaJones algorithm to detect signage in photos Then use the component analysis technique to identify the sign in the image The report will focus on presenting ViolaJones algorithms and PCA techniques Keyword: traffic signs, Viola-Jones, PCA DANH MỤC CÁC TỪ VIẾT TẮT Từ đầy đủ Từ viết tắt DP Dynamic Programming DT Decision Tree EM Expectation Maximization HAC Hierarchial Agglomerative Clustering KNN K Nearest Neighbours LDA Linear Discriminant Analysis LLSF Linear Least Square Fit NB Naive Bayes NN Neural Networks Nnet Neural Network PCA Principal Components Analysis SVM Support Vector Machine SVM pháp Support Vector Machine TD TSVM XLA Temporal Difference Transductive Support Vector Machine Xử lý ảnh DANH MỤC CÁC HÌNH VẼ Số hiệu Tên hình Trang hình 1.1: Các bước q trình xử lí ảnh 1.2: Các giai đoạn xử lý ảnh 1.3: Quan hệ vùng lân cận điểm ảnh 2.1: Mô hình tổng qt 14 2.2: Mơ hình phát 15 2.3: đặt trưng Haar-like 16 2.4: Các đặc trưng mở rộng đặc trưng Haar-like sở 16 2.7: Vòng 19 2.9: Vòng 20 2.10: Vịng 21 2.11: Hồn thành boosting 21 2.12: Chọn p = tăng trọng số mẫu phân loại sai 23 2.13: Trong bước chọn p = -1 23 2.14: Mơ hình hoạt động Cascade 24 2.15: Mơ hình phân tầng 24 2.16: Biểu đồ thống kê số phân loại yếu phân loại mạnh 25 biển báo nguy hiểm 2.17: Biểu đồ thống kê số phân loại yếu phân loại mạnh biển báo Cấm 25 2.18: Tỷ lệ false positive strong classifier tập test ( biển nguy hiểm) 26 2.19: Tỷ lệ false positive strong classifier tập test ( biển báo 26 cấm) 2.20: Tỷ lệ false positive strong classifier tập train (biển nguy hiểm) 27 2.21: Tỷ lệ false positive strong classifier tập train ( biển báo cấm) 27 2.22: Xem biển báo điểm không gian 28 2.23: Khoảng cách điểm 28 2.24: Chuyển vector x ban đầu có N chiều thành vector y K chiều 29 2.25: Tập huấn luyện biển báo 30 2.26: Vector riêng có giá trị riêng lớn 32 2.27: Ma trận hiệp phương sai 33 2.28: Biểu đồ eigenvalues 34 3.1: Cấu trúc chương trình 37 3.2: Phát biển báo 37 3.3: Nhận dạng biển báo 38 3.4: Dữ liệu loại biển báo khác huấn luyện 39 3.5: Dữ liệu biển báo đường hẹp bên trái lưu vào thư mục 39 3.6: Khởi chạy chương trình 40 3.7: Giao diện chương trình 40 3.8: Dữ liệu biển báo huấn luyện 41 3.9: Giao diện chương trình chức Recognize 42 3.10: Giao diện chương trình chức Camera 42 3.11: Phát biển báo cấm hình ảnh chuẩn 43 3.12: Phát biển báo nguy hiểm hình ảnh chuẩn 43 3.13: Phát biển báo giao có vùng bị phát sai 44 3.14: Phát biển báo giới hạn tốc độ 40 Km/h 45 3.15: Phát biển báo giới hạn tốc độc biển báo đường hẹp bên 45 3.16: Phát sai nhiều vùng bị nhận biển báo 46 3.17: Huấn luyện biển báo Cấm ô tô xe máy 46 3.18: Kiểm tra nhận dạng biển báo Cấm ô tô xe máy 47 3.19: Huấn luyện biển báo Cấm mô tô 47 3.20: Kiểm tra nhận dạng biển báo Cấm mô tô 48 3.21: Huấn luyện biển báo tín hiệu đèn giao thơng 48 3.22: Kiểm tra nhận dạng biển báo tín hiệu đèn giao thơng 49 3.23: Huấn luyện biển báo vịng xoay phía trước 49 3.24: Kiểm tra biển báo vịng xoay phía trước bị cho kết sai 50 49 Hình 3.22: Kiểm tra nhận dạng biển báo tín hiệu đèn giao thơng Hình 3.23: Huấn luyện biển báo vịng xoay phía trước 50 Hình 3.24: Kiểm tra biển báo vịng xoay phía trước bị cho kết sai Nguyên nhân tập liệu biển báo vòng xoay phía trước cịn 3.5 Đánh giá kết Kết chương trình Demo thực nghiệm bước đầu cho kết tương đối xác với tập liệu mơ phỏng, tức phát hình ảnh đối tượng biển báo khung ảnh lớn Tuy nhiên, kết phát biển báo chương trình chưa sát với khung biển báo tạo nên môi trường nhiễu xung quanh biển báo làm giảm tỷ lệ nhận dạng Để khắc phục vấn đề này, thực xây dựng lại ảnh huấn luyện để phát xác đối tượng nâng cao tỷ lệ phát hiện, từ nâng cao tỷ lệ nhận dạng Kết thể tốt việc nhận dạng đối tượng biển báo phương pháp trích chọn đặc trưng 3.5.1.Về lý thuyết Đã trình bày đầy đủ học máy kỹ thuật để xây dựng mơ hình học máy Khái quát hóa đầy đủ hệ thống nhận dạng đối tượng Tìm hiểu chi tiết thuật tốn hỗ trợ việc phát nhận dạng biển báo bao gồm: Trích chọn đặc trưng Haar-like, tăng tốc Adaboost, phân tích thành phần PCA 51 3.5.2 Về Cài đặt Sử dụng thành thạo ngơn ngữ lập trình java xây dựng hệ thống sử dụng code (java) Vận dụng lý thuyết tảng kỹ thuật trích chọn đặc trưng Haar-like, tăng tốc Adaboost, phân tích thành phần PCA để xây dựng mơ hình nhận dạng đối tượng dựa việc rút trích lựa chọn đặc trưng cho đối tượng 3.5.3 Về thực nghiệm Kết nhận dạng phương pháp đề xuất có tỷ lệ phát biển báo cao, nhiên kết nhận dạng xác định phụ thuộc nhiều vào sở liệu học nên tỷ lệ nhận dạng thấp, nhận dạng môi trường chuẩn lý tưởng Kết thử nghiệm phát biển báo môi trường thời tiết khác Phát xác Nhận dạng xác Trong điều kiện tốt 90.25% 71.42% Mưa, nhiều mây, ánh sáng yếu 86.7% 62.5% Ban đêm 61.9% 51.14% Biển báo bị phai mờ, bị bẩn, bong tróc sơn 78.26% 58.69% Hệ thống cho phép phát biển báo góc độ nhỏ so với bề mặt biển báo khác với tỷ lệ xác ngày cải thiện, nhờ vào phương pháp học tăng cường, điều có nghĩa liệu tập huấn luyện ngày bổ sung, nên kết nhận dạng cải thiện rõ ràng sau nhiều lần huấn luyện tập huấn luyện nhiều đầy đủ Những hạn chế chương trình Demo: - Cịn phụ thuộc vào điều kiện ánh sáng khác - Phụ thuộc vào góc chụp hình ảnh biển báo (quá lớn hẹp Ví dụ biển báo bị nghiêng lớn bị ngã ) - Trạng thái biển báo (bị hỏng phần, bị móp méo, bị che khuất ) - Tốc độ phát nhận dạng chậm 52 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Đã làm Bước đầu xây dựng mơ hình huấn luyện để phát nhận dạng đối tượng biển báo cách sử dụng thuật toán hỗ trợ việc phát nhận dạng biển báo bao gồm: Trích chọn đặc trưng Haar-like, tăng tốc Adaboost, phân tích thành phần PCA Sử dụng cơng cụ hỗ trợ OpenCV để tiến hành cài đặt thực nghiệm Xây dựng chương trình Demo Nhận diện biển báo giao thơng có khả phát nhận dạng biển báo giao thơng hình ảnh Kết trình phụ thuộc nhiều vào trình thu thập liệu huấn luyện phát hiện, nhận dạng Sau thời gian ngắn nghiên cứu xử lý ảnh, học máy tìm hiểu số sở lý thuyết áp dụng vào nhận dạng biển báo giao thông đường Việt Nam Tuy nhiên đề tài khó, nước chưa có cơng trình nghiên cứu khẳng định vượt trội hiệu quả, thời gian thực ngắn nên đề tài dừng lại mức độ nghiên cứu, nhiều vấn đề cần giải Hướng phát triển - Cải tiến chất lượng huấn luyện phát ảnh biển báo - Mở rộng sở liệu biển báo giao thông - Mở rộng nhận dạng nhóm biển báo nghiên cứu - Nâng cấp hoàn thiện khả hệ thống trở thành hệ thống nhận dạng đưa cảnh báo tức thời cho người tham gia giao thơng chương trình hồn chỉnh 53 TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] Huỳnh Hữu Hưng, Nguyễn Trọng Ngun, Võ Đức Hồng (2015), Giáo trình xử lý ảnh số, Thông tin truyền thông [2] Huỳnh Hữu Hưng, Nguyễn Thanh Trung (2013) , Phát Hiện Biển Báo Giao Thông Dùng Support Vector Machine [3] Nguyễn Duy Khánh, Lê Đình Duy, Dương Anh Đức (2011), "Phát biển báo giao thông dùng đặc trưng cục (local features)", Hội thảo FAIR (Fundamental And Applied IT Research) lần V, Tháng 08-2011 Tài liệu tiếng Anh [4] De Maesschalck, R.; D Jouan-Rimbaud, D.L Massart (2000), The Mahalanobis distance [5] Jolliffe, I.T (2002), Principal Component Analysis, second edition (Springer) [6] Mannila, Heikki (1996), Data mining: machine learning, statistics, and databases Int'l Conf Scientific and Statistical Database Management [7] Viola and Jones (2001), “Rapid object detection using a boosted cascade of simple feature”, Computer Vision and Pattern Recognition, 2001 [8] Y Freund and R Schapire (1997) A decision-theroetic generalization of on-line learning and an application to boosting Journal of Computer anf System Sciences, 1997 [9] Williams, Ronald J (1987), "A class of gradient-estimating algorithms for reinforcement learning in neural networks", Proceedings of the IEEE First International Conference on Neural Networks ... QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (bản sao) TÓM TẮT LUẬN VĂN ÁP DỤNG HỌC MÁY TRONG NHẬN DẠNG BIỂN BÁO GIAO THÔNG Bùi Thanh Phong, học viên cao học khóa 33 Quảng Ngãi, chun ngành Khoa học máy tính... luyện biển báo Cấm ô tô xe máy 46 3.18: Kiểm tra nhận dạng biển báo Cấm ô tô xe máy 47 3.19: Huấn luyện biển báo Cấm mô tô 47 3.20: Kiểm tra nhận dạng biển báo Cấm mô tô 48 3.21: Huấn luyện biển báo. .. Nghiên cứu, tìm hiểu phương pháp nhận dạng, áp dụng vào nhận diện biển báo giao thông, xây dựng chương trình, cài đặt thực nghiệm chương trình phát nhận dạng biển báo giao thông đường từ hình ảnh tĩnh