XÂY DỰNG CHƢƠNG TRÌNH PHÁT HIỆN VÀ NHẬN DẠNG MỘT SỐ BIỂN BÁO GIAO THÔNG ĐƢỜNG BỘ NGUY HIỂM TẠI VIỆT NAM Lê Chân Thiện Tâm, Phạm Hồng Thái Trần Tiến Đức Khoa Công Nghệ Thông Tin, Khoa Công Nghệ Thông Tin, Đại học Lạc Hồng Đại học Sư Phạm Kỹ Thuật TP HCM {thientamlhu,hongthaipro}@gmail.com trantienduc@gmail.com Tóm tắt: Trong báo này, chúng tơi trình bày phương pháp phát nhận dạng biển báo giao thông Nhận dạng biển báo giao thơng vấn đề quan trọng hỗ trợ người tài xế ý thức chủ động việc xử lý tình nguy hiểm tiềm ẩn điều khiển phương tiện lưu thông Biển báo giao thông phát phương pháp rút đặc trưng Haar kết hợp với huấn luyện tăng tốc Adaboost Sau rút đặc trưng phương pháp Principle Components Analysis nhận dạng thuật toán Support Vector Machine Hơn 1800 biển báo giao thông 10 loại biển chụp điều kiện khác môi trường ánh nắng gắt, thời tiết mát, thời tiết âm u nhiều mây, biển báo bị che khuất bóng râm, bị hư hại phần, quang cảnh đường nông thôn, đường thành phố đông xe Trên 500 ảnh thử dùng, kết nhận dạng có độ xác trung bình 92,97% cho phép kết luận hướng nghiên cứu thích hợp I GIỚI THIỆU Giao thông Việt Nam vấn đề nóng xã hội Theo số liệu từ Ủy ban An tồn giao thơng quốc gia, tháng đầu năm 2012, Việt Nam có 7000 vụ tai nạn giao thơng [10], dân số 6000 người Từ tình hình thực tế giao thông Việt Nam, nguyên nhân phần lớn vụ tai nạn giao thông đường tài xế lái xe không làm chủ tốc độ, không quan sát không kịp nhận loại biển báo tín hiệu giao thơng Đây nguy hiểm cảnh báo trước tai nạn thường xun xảy Chúng tơi mong muốn góp phần hạn chế tai nạn giao thông giảm thiểu hóa hậu sau tai nạn, hỗ trợ người tài xế ý thức chủ động việc xử lý tình nguy hiểm tiềm ẩn điều khiển phương tiện lưu thông II ĐẶT VẤN ĐỀ Cho đến vấn đề nhiều nghiên cứu giới quan tâm [1],[2],[4] Nhưng biển báo giao thông nghiên cứu dùng cho giao thơng đường Việt Nam Trong tình hình nghiên cứu biển báo giao thơng Việt Nam nhiều hạn chế [3], [5] chưa đầy đủ III NỘI DUNG NGHIÊN CỨU Trích đặc trƣng Haar-like Một kĩ thuật quan trọng sử dụng phổ biến việc nhận dạng đối tượng kĩ thuật dựa đặc trưng Haar-like công bố Viola Jones [8] Đặc trưng Haar-like gồm đặc trưng để xác định đối tượng ảnh Những khối đặc trưng thể liên hệ tương quan phận ảnh mà thân giá trị pixel diễn đạt Hình Bốn đặc trưng Haar-like Để tính tốn giá trị đặc trưng Haar-like cần phải tính tốn tổng vùng pixel ảnh Do để đáp ứng yêu cầu xử lý thời gian thực Viola Jones trình bày khái niệm “Intergral Image” để giải toán “Intergral Image” vị trí x, y tính theo cơng thức (1) ( ) ∑ ( ) (1) Hình Cách tính Integral Image ảnh Kết có sau tính Integral Image, việc tính tổng giá trị pixel vùng cần tính thực sau: Gọi vùng cần tính tổng giá trị pixel vùng “A4” P1 (x1,y1 ) = A1; P2 (x2,y2 ) = A1+A2; P3 (x3,y3 ) = A1+A3; P4 (x4,y4 ) = A1+A2+A3+A4; A4 = P4 + P1 – P2 –P3; (2) Hình Cách tính tổng giá trị pixel vùng cần tính Adaboost AdaBoost (Adaptive Boost) phân loại phi tuyến mạnh cải tiến từ thuật toán Boosting, giúp đẩy nhanh việc tạo phân loại mạnh (strong classifier) cách chọn đặc trưng tốt Haar-Like phân loại yếu (weak classifier) kết hợp chúng lại tuyến tính để hình thành phân loại mạnh (strong classifier) cách sử dụng trọng số (Weight) để đánh dấu mẫu khó nhận dạng Cho trước vài thuật toán học yếu, người ta áp dụng kỹ thuật tăng cường để tạo thuật toán học mạnh Adaboost thuật toán cho phép ta làm điều Gồm có giai đoạn sau [9]: Giai đoạn 1: Tạo giả định yếu (weak hypotheses) từ thuật toán học yếu Giai đoạn 2: Tạo thuật toán học mạnh từ giả định yếu Với tập liệu huấn luyện, giả định yếu khởi tạo sau: Đầu vào(Input): Cho tập liệu huấn luyện, N cặp (xi, yi), xi vector đặc trưng Haar, yi giá trị đầu mong muốn luôn mang giá trị +1 -1 (trong +1 đối tượng (object), -1 khơng phải đối tượng( background)), số lượng vòng lặp T Đầu ra(Output): Tồn hàm ( ) sử dụng để phân lớp đặc trưng vector x Nếu ( ) x phân lớp -1 Nếu ( ) x phân lớp +1 Khởi tạo(Initialization): Cho trọng số tính giả định (hypothesis) Lặp(Iterate): Bước 1: Chọn ngẫu nhiên tập tập liệu huấn luyện Trong trường hợp Bước 2: Tính tốn giả định cách sử dụng phân lớp yếu cho Bước 3: Tính tốn sai số trọng số huấn luyện Bước 3.1: Nếu Bước 4: Tính tốn trọng số tốt : Bước 5: Cập nhật lại trọng số ( ) ( ) ( Và Trong : ∑ ( ) khơng phải phân lớp yếu Khi nên tăng thêm số lượng mẫu huấn luyện { quay lại bước lặp Bước 3.2: Nếu Với , đồng theo bước sau: thời cập nhật lại trọng số trọng số , trọng số tốt (goodness) ) : thừa số chuẩn hóa cho ∑ Kết thúc (Termination): ( ) ∑ ( ) Tính chất quan trọng thuật tốn Adaboost có tốt Để đánh giả hiệu thuật toán ta định nghịa hàm sai số sau: ( ) Khi tổng sai số { N mẫu là: ∑ ( ) Phƣơng pháp phân tích thành phần (PCA-Priciple Component Analysis) Thuật tốn PCA trình bày theo bước [7]: Bƣớc 1: Chuyển đổi ảnh Biểu diễn M ảnh khơng gian 2D thành 1D Tạo vector có kích thước N (số hàng ảnh xám x số cột ảnh xám) mô tả sau: (3) Với: giá trị pixel ảnh T chuyển vị ma trận Si Kết chuyển cho M ảnh đưa vào ma trận sau: Mỗi ảnh ma trận cột, ghép M ma trận cột ứng với M ảnh thành ma trận có kích thước NxM (4) ( ) Chỉ số đầu thành phần vector, số sau thứ tự ảnh Bƣớc 2: Tính ảnh trung bình (5) Chi tiết cơng thức trên: ⃗⃗⃗⃗ (6) ( ) ( ) Bƣớc 3: Trừ ảnh cho ảnh trung bình Nhằm mục đích tạo co giãn tương đối giá trị pixel ảnh ⃗⃗⃗⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗⃗⃗ ( ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ ) ( ) (7) ( ) Xây dựng ma trận từ ⃗⃗⃗⃗⃗⃗⃗⃗ vừa tìm (⃗⃗⃗⃗⃗⃗⃗⃗ Đặt: ⃗⃗⃗⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ ) ma trận kích thước NxM Bƣớc 4: Xây dựng ma trận Covariance Nhằm mục đích thể tương quan vector vector lại khơng gian cov = AxAT (8) Tính trị riêng (eigenvalue: ) vector riêng (eigenvector: ) ma trận Covariance Đó thành phần đặc trưng thành phần thiết yếu ảnh Trong thực tế, giả sử tồn ảnh có kích thước 200x230 (độ rộng độ cao ảnh) kích thước ma trận cov 46000x46000 (N2) Kích thước lớn khơng thể tính trực tiếp trị riêng vector riêng theo cách Vì áp dụng lý thuyết đại số tuyến tính: , tính cách giải trị riêng, vector riêng ma trận ATA (kích thước MxM nhỏ nhiều so với NxN) Đặt trị riêng vector riêng ma trận ATA Kết sau: (9) Nhân vế (9) cho A được: ( ) ( ) với X= Điều cho thấy: M vector riêng M trị riêng tích ( A với vector riêng ) (10) tương ứng Các vector riêng khơng gian đặc trưng biển báo sở liệu ảnh ban đầu Các vector riêng xếp theo thứ tự từ cao đến thấp theo trị riêng tương ứng Vector riêng có trị riêng cao mang nhiều đặc trưng thiết yếu không gian biển báo Ở với M hướng đặc trưng mang giá trị riêng lớn không gian NxN không gian đặc trưng Bƣớc 5: Phép chiếu Chiếu ảnh sở liệu đến không gian đặc trưng M, để sinh biển báo đặc trưng không gian ⃗⃗⃗⃗⃗⃗ Với , ⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ ma trận đặc trưng biển báo rút trích (gọi eigensignal) ⃗⃗⃗⃗⃗⃗ vector ảnh thứ i trừ ảnh trung bình Bƣớc 6: Ảnh cần nhận dạng (11) Chuyển đổi ảnh cần nhận dạng thành vector chiều: (12) ( ) Tính sai số ảnh cần nhận dạng với ảnh trung bình ảnh sở liệu Được vector sai số sau: (13) ( ) Chiếu sai số lên không gian đặc trưng biển báo ⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ ⃗⃗⃗⃗ (14) Bƣớc 7: Nhận dạng biển báo Như đặc trưng ảnh cần nhận dạng đặc trưng biển báo sở liệu xây dựng Phân loại biển báo cách đơn giản dùng khoảng cách Euclide ‖ ‖ (15) Thuật toán phân lớp Support Vector Machine (SVM) 4.1 Phân lớp tuyến tính (Linear classifier) Ý tưởng thuật tốn SVM xây dựng mơ hình để phân loại đối tượng có thuộc hay khơng thuộc vào nhóm đối tượng cần quan tâm Thuật toán SVM biểu diễn điểm không gian xác định ranh giới hai nhóm đối tượng cho khoảng cách tập liệu huấn luyện tới ranh giới xa Tiến hành xét toán đơn giản tách hai lớp với tập liệu mẫu huấn luyện Và sau ta mở rộng phương pháp cho nhiều trường hợp tổng qt mà liệu chí khơng thể tách phân lớp Với xi, i = 1, , , N tập vector đặc trưng huấn luyện X Và thuộc hai lớp w1,w2 giả sử tập liệu phân lớp tuyến tính Với mục tiêu xây dựng mặt siêu phẳng (hyperplane) để tách xác phân lớp mẫu huấn luyện cho phương trình sau: g(x) = wTx + w0 =0 (16) Trong w vector trọng số, w0 độ dịch Với phương trình (16) ta xác định mặt siêu phẳng Mặt siêu phẳng giúp dễ dàng tách hai phân lớp w1,w2 Tuy nhiên thực tế có nhiều mặt siêu phẳng Trong trường hợp thuật toán SVM xác định mặt siêu phẳng dùng để tách phân lớp dựa theo khoảng cách cực đại hai mẫu liệu huấn luyện Và khoảng cách cực đại gọi lề (margin), mặt siêu phẳng gọi mặt siêu phẳng lề tối đa Độ lớn lề (margin) cho sau: ‖ ‖ ‖ ‖ (17) ‖ ‖ Từ phương trình (16) thay đổi w w0 hướng khoảng cách từ gốc tọa độ tới mặt siêu phẳng Bộ phân loại SVM định nghĩa sau: f(x) = sign(wTx + w0 ) (18) Nếu f(x) = +1 x thuộc phân lớp cần quan tâm, ngược lại f(x) = -1 x thuộc lớp khác Phương pháp máy học SVM tập mặt siêu phẳng phụ thuộc vào tham số w w0 Mục tiêu phương pháp SVM ước lượng hai giá trị để cực đại hóa lề (margin) Với giá trị lề lớn mặt siêu phẳng phân lớp tốt Nếu tập liệu huấn luyện khả tách tuyến tính ta có ràng buộc sau: wTxi + w0 ≥ +1 yi = +1 (19) wTxi + w0 ≤ -1 yi = -1 (20) Hai mặt siêu phẳng có phương trình wTxi + w0 = ± gọi mặt siêu phẳng hỗ trợ Phương pháp tìm giá trị w w0 để xây dựng mặt siêu phẳng lề tối ưu phải giải tốn tối ưu tồn phương (Quadratic Programming) Cực đại hóa: ∑ ∑ ∑ (21) Với ràng buộc sau: (22) ∑ (23) Trong hệ số Lagrange biến số cần phải tối ưu hóa Vector w tính từ nghiệm tốn toàn phương sau: ∑ (24) Để xác định độ dịch w0, ta chọn xi cho (KKT) sau: Với ( , sau sử dụng điều kiện Karush-Kuhn-Tucker ) (25) mẫu nằm gần mặt siêu phẳng gọi vector hỗ trợ (Support Vector) Theo hình mẫu gọi Support Vector mẫu xanh đỏ khoanh tròn nằm mặt siêu phẳng hỗ trợ (do dấu bất đẳng thức +1 mẫu cần quan tâm -1 với mẫu lại) Hình Minh họa mẫu gọi Support Vector 4.2 Phân lớp phi tuyến (Nonlinear classifier) Thực tế trường hợp tổng quát, mặt phân hoạch mặt phi tuyến Và ta cần ánh xạ vector liệu vào không gian đặc trưng có số chiều cao nhiều Giả sử mẫu xi thuộc không gian Rn, không gian gọi không gian giả thiết (hypothesis space) Để tìm mặt phi tuyến khơng gian này, ta ánh xạ vector mẫu xi từ Rn vào không gian Rd có số chiều lớn (d > n, d ∞) Rd gọi khơng gian đặc trưng (feature space) Sau áp dụng phương pháp SVM tuyến tính để tìm siêu phẳng phân hoạch không gian đặc trưng Rd Siêu phẳng ứng với mặt phi tuyến không gian Rd [6] Trong không gian đặc trưng (feature space) này, điểm liệu trở thành khả tách tuyến tính, phân tích với lỗi so với trường hợp sử dụng không gian ban đầu Khi đó, tốn quy hoạch tồn phương ban đầu trở thành sau: Cực đại hóa: ∑ ∑ ∑ ( ) (26) với ràng buộc sau: (27) ∑ (28) Trong k hàm nhân (kernel function) thỏa mãn: ( ( ) ) ( ) (29) Với việc sử dùng hàm nhân (kernel function), ta khơng cần quan tâm ánh xạ Bằng cách chọn hàm nhân phù hợp, ta xây dựng nhiều phân loại khác Ví dụ, chọn nhân đa thức ( ( IV ) ( ‖ ) ( ) dẫn đến phân loại đa thức, nhân Gaussian ‖ ) dẫn đến phân loại RBF (Radial Basis Functions)[6] KẾT QUẢ THỬ NGHIỆM Bảng Kết nhận dạng biển báo giao thông Từ môi trường thử nghiệm ban ngày, ban đêm, trời có mây, mưa nhỏ, biển báo bị che khuất từ 10-15% diện tích, biển báo cũ, bong tróc sơn, bụi bẩn, biển báo bị nghiêng góc 200, tốc độ di chuyển phương tiện lưu thơng từ 30-40km/h nhóm tiến hành đánh giá việc sai số biển báo giao thông thể bảng Tập thử nghiệm gồm 1500 ảnh tĩnh 750 video clip Căn theo bảng 1, nhận thấy tỉ lệ nhận dạng xác trung bình 92,97% Trong với nhóm biển báo 201a, 201b, 202, 209, 210, 225 ln cho tỉ lệ xác ≥ 96% tính đặc trưng biển báo riêng biệt khó nhầm lẫn sang biển khác Đối với nhóm biển báo 207a, 207b, 207c có tỉ lệ nhận dạng xác ≥ 83%, biển báo dễ bị nhận dạng nhầm sang biển khác, thơng tin đặc trưng riêng biệt biển giống Sự sai lệch bị ảnh hưởng nhiều yếu tố như: hình ảnh thu có chất lượng kém, bị nhòe, biển báo bị phai mờ, bị nét, nét vẽ q mảnh khơng rõ, biển báo bị dính sơn, bụi bẩn, bị che khuất làm thông tin biển báo thu bị sai lệch V KẾT LUẬN Trong báo này, tiến hành thực nghiệm phương pháp chọn sử dụng Chương trình có khả phát nhận dạng xác thơng tin loại biển báo nguy hiểm học với tỉ lệ trung bình 92,97%, hoạt động nhiều loại mơi trường phức tạp trình bày trên, đáp ứng đươc nhu cầu xử lý thời gian thực TÀI LIỆU THAM KHẢO [1] C Bahlmann, Y Zhu, V Ramesh, M Pellkofer, T Koehler, “A System for Traffic Sign Detectiona, Tracking, and Recognition Using Color, Shape, and Motion Information”, Proceedings IEEE Intelligent Vehicles Symposium, 2005 [2] C Y Yang, C S Fuh, S W Chen, P S Yen, “A Road Sign Recognition System Based on Dynamic Visual Model”, CVPR’03 Proceedings of the 2003 IEEE computer society conference on Computer vision and pattern recognition, Pages 750-755, 2003 [3] Lê Thanh Tâm, Trần Thái Sơn, Seichii Mita, “Phát phân loại biển báo giao thông dựa SVM thời gian thực”, Tuyển tập Cơng trình Nghiên cứu Công nghệ Thông tin Truyền thông, 2009 [4] Luis David Lopez and Olac Fuentes, “Color-Based Road Sign Detection and Tracking”, International Conference on Image Analysis and Recognition (ICIAR), Montreal, CA, August 2007 [5] Nguyễn Duy Khánh, Lê Đình Duy, Dương Anh Đức, “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 [6] Nguyễn Linh Giang, Nguyễn Mạnh Hiển, “Phân loại văn tiếng Việt với phân loại vectơ hỗ trợ SVM”, Tạp chí CNTT&TT, Tháng 06 năm 2006 [7] Phan Sau Ra, Đặng Thị Kim Yến, “Face Regconition Using PCA And Neural Network”, Đồ án tốt nghiệp, Đại Học Sư Phạm Kĩ Thuật TP.HCM, 2012 [8] Viola and Jones, “Rapid object detection using a boosted cascade of simple feature”, Computer Vision and Pattern Recognition, 2001 [9] “Adaptive Boosting – Adaboosting”, http://www.csie.ntu.edu.tw/~b92109/course/Machine%20Learning/ [10] “Đánh giá tình hình trật tự An tồn giao thơng”, http://www.mt.gov.vn/Default.aspx?tabid=26&catid=204&articleid=12826 ... biển báo ⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ ⃗⃗⃗⃗ (14) Bƣớc 7: Nhận dạng biển báo Như đặc trưng ảnh cần nhận dạng đặc trưng biển báo sở liệu xây dựng Phân loại biển báo cách đơn giản dùng khoảng cách Euclide ‖... Bảng Kết nhận dạng biển báo giao thông Từ mơi trường thử nghiệm ban ngày, ban đêm, trời có mây, mưa nhỏ, biển báo bị che khuất từ 10-15% diện tích, biển báo cũ, bong tróc sơn, bụi bẩn, biển báo bị... 96% tính đặc trưng biển báo riêng biệt khó nhầm lẫn sang biển khác Đối với nhóm biển báo 207a, 207b, 207c có tỉ lệ nhận dạng xác ≥ 83%, biển báo dễ bị nhận dạng nhầm sang biển khác, thơng tin