Quá trình huấn luyện nhận dạng biển báo sử dụng 2 thuật toán PCA và SVM. Bộ ảnh dùng cho huấn luyện nhận dạng được nhóm tận dụng lại một phần ảnh đã sử dụng cho bước huấn luyện phát hiện biển báo ở trên đồng thời bổ sung thêm một số ảnh cho đa dạng. Ảnh dùng trong quá trình này cần có độ đa dạng về điều kiện môi trường, góc chụp, ánh sáng khác nhau nhằm giúp cho việc nhận dạng sau này được tốt hơn.
File
“TrafficSignThaiTam.xml”
File
“vector.vec” Trình “CreateSample.exe” với tham số file “info.txt”
File “info.txt” Ảnh Positive trong thư mục
“haarkit\temp\positive\rawdata”
Trình “ObjectMaker” lấy
mẫu đối tượng Ảnh Negative trong thư mục
“haarkit\temp\negative” File “inforfile.txt” chứa tên tất
cả các file ảnh Negative
Trình “haartraining.exe” với tham số file
“vector.vec”
Các phân lớp đặc trưng
Trình “haarconv.exe”
Formatted: Normal, Centered, Space Before: 0
pt, After: 0 pt, Add space between paragraphs of the same style, Line spacing: single
Formatted: Font: Bold Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Bộ ảnh huấn luyện nhận dạng gồm 500 ảnh, với mỗi loại biển báo cần nhận dạng có số lượng tối thiểu là 50 ảnh được lưu vào từng thư mục riêng và được đặt tên theo thứ tự.
Hình 3. 15. Một số mẫu huấn luyện nhận dạng.
Bước đầu là chuẩn bị cho dữ liệu học, nhóm sử dụng hàm TaoCSDLHoc nhằm lấy được biển báo ra khỏi ảnh, loại bỏ những thông tin thừa, đưa ảnh về kích thước 50x50 pixels và chuyển sang ảnh xám.
Tiếp theo sử dụng hàm HuanLuyenNhanDang để tạo ra các tập tin dữ liệu cần thiết cho việc nhận dạng.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt Bƣớc 1: Hàm tạo ra ma trận gamma gồm K dòng và M cột với K = 50x50 và M là
tổng số lượng biển báo huấn luyện. Ma trận “gamma” chứa thông tin của tất cả các biển báo huấn luyện, mỗi biển báo là một cột.
Bƣớc 2: Tính giá trị trung bình lưu vào ma trận “psi” gồm K dòng và 1 cột. Bƣớc 3: Lấy ảnh trong ma trận “gamma” trừ đi ảnh trung bình trong ma trận “psi”. Bƣớc 4: Nhân ma trận “gamma” với ma trận chuyển vị của nó tạo thành ma trận “L”
gồm M dòng M cột.
Bƣớc 5: Sử dụng hàm cvEigenVV(L,evects,evals) của bộ thư viện OpenCV để tính
giá trị riêng lưu vào ma trận “evals” và vector riêng lưu vào ma trận “evects”.
Bƣớc 6: Xây dựng ma trận covariance “eigenTT” gồm K dòng, M1 cột, với M1 =
M/2.
Bƣớc 7: Tạo ma trận “omega” gồm M dòng, M1 cột dùng làm dữ liệu cho huấn luyện
SVM.
Bƣớc 8: Sử dụng hàm KhoiTaoSVMOpenCV(CvSVM* svm, CvMat* trainData) để
tạo file huấn luyện SVM.
Bƣớc 9: Ghi dữ liệu đã học ra file để sử dụng lại trong chương trình.
Sau khi hoàn thành giai đoạn huấn luyện nhận dạng, nhóm thu được các tập tin dữ liệu cần thiết để có thể lập trình chương trình nhận dạng biển báo. Các tập tin được tạo ra bao gồm “eigenTT.txt”, “psiTT.txt”, “svmtrained.xml”.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 3. 17. Một phần nội dung file “psiTT.txt”.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Quá trình huấn luyện nhận dạng biển báo được thể hiện trong sơ đồ 3.2 như sau:
Lấy ảnh trong “gamma” trừ đi ảnh trung bình Xây dựng ma trận covariance “eigenTT” Tạo ma trận “omega” làm tham số cho SVM Hàm “KhoiTaoSVMOpenCV” Hàm “HuanLuyenNhanDang” Chuyển các ảnh xám thành ma trận vector “gamma” Tính ảnh trung bình “psi” Dữ liệu huấn luyện Hàm “TaoCSDL” Ảnh xám, 50x50, bỏ thông tin thừa
File “eigenTT.txt” File “psiTT.txt”
File “svmtrained.xml”
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Sơ đồ 3. 2. Sơ đồ huấn luyện nhận dạng biển báo 3.2.4, Chƣơng trình nhận dạng.
3.2.4.1, Sơ đồ hoạt động của chƣơng trình
Lấy ảnh trong “gamma” trừ đi ảnh trung bình Xây dựng ma trận covariance “eigenTT” Tạo ma trận “omega” làm tham số cho SVM Hàm “KhoiTaoSVMOpenCV” Hàm “HuanLuyenNhanDang” Chuyển các ảnh xám thành ma trận vector “gamma” Tính ảnh trung bình “psi” Dữ liệu huấn luyện Hàm “TaoCSDL” Ảnh xám, 50x50, bỏ thông tin thừa
File “eigenTT.txt” File “psiTT.txt”
File “svmtrained.xml”
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Sơ đồ 3. 3. Sơ đồ hoạt động chương trình.
Bắt đầu Load các dữ liệu cần thiết Nhập ảnh đầu vào Có biển báo KN CY Tách biển báo và chuyển thành ảnh xám Xử lý nhận dạng Hiển thị kết quả Kết thúc Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt 3.2.4.2, Giao diện và cách sử dụng
Giao diện chính của chương trình có 7 nút chức năng
Hình 3. 19.Giao diện chính của chương trình
Nút Start : dùng khởi động chương trình và tải các dữ liệu cần thiết.
Nút Detect from IMAGE: sử dụng khi muốn nhận dạng trên ảnh tĩnh.
Nút Detect from AVI: sử dụng khi muốn nhận dạng trên video định dạng AVI.
Nút Detect from CAM: sử dụng khi lắp đặt chương trình với camera bên ngoài.
Nút Help: Giới thiệu và hướng dẫn sử dụng.
Nút Power: Đóng chương trình.
Nút Learn: Gồm 2 chức năng là tạo cơ sở dữ liệu cho việc học nhận dạng và huấn luyện nhận dạng bằng PCA và SVM.
Sử dụng chương trình:
Khởi động chương trình bằng cách chạy file “NCKHThaiTam.exe”.
Bấm nút Start để tải các dữ liệu cần thiết cho chương trình hoạt động.
Lựa chọn hình thức muốn dùng:
o Detect from IMAGE: chọn một ảnh tĩnh có chứa biển báo cần nhận dạng.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 3.19. Giao diện chọn ảnh.
o Detect from AVI: chọn một file video định dạng AVI.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
o Detect from CAM: chương trình sẽ tự động dò tìm và sử dụng camera tích hợp.
3.3. Tiểu kết
Chương này nhóm trình bày chi tiết về quy trình xây dựng và cách sử dụng toolkit hỗ trợ cho chương trình phát hiện và nhận dạng biển báo giao thông của nhóm.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt CHƢƠNG 4: ĐÁNH GIÁ KẾT QUẢ CHƢƠNG TRÌNH
4.1Đánh giá kết quả.
4.2Ƣu và nhƣợc điểm của chƣơng trình.
4.3Tiểu kết.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt 4.1. Đánh giá kết quả.
4.1.1, Các môi trƣờng thử nghiệm đánh giá.
Sau khi xây dựng chương trình, nhóm thử nghiệm đánh giá chương trình ở các môi trường khác nhau trên ảnh tĩnh và video clip có kích thước 640x480 pixels, mỗi clip có độ dài từ 5 đến 10 giây. Các môi trường được nhóm thử nghiệm đánh giá là:
Môi trường ánh sáng ban ngày từ 7 giờ đến 17 giờ trong điều kiện thời tiết tốt, không mưa, không bị ngược sáng, biển báo rõ ràng không bị che khuất, tốc độ xe đạt từ 35 đến 45 Km/h, đường bằng phẳng. Trong môi trường này nhóm đã sử dụng một tập dữ liệu thử gồm 700 ảnh tĩnh và 300 video clip để đánh giá thì kết quả thử nghiệm cho thấy tỉ lệ phát hiện được biển báo là 98,62%, tỉ lệ nhận dạng chính xác là 95,44%. Đây là môi trường được nhóm nghiên cứu đánh giá là môi trường lý tưởng để chương trình có thể phát hiện và nhận dạng với tỉ lệ chính xác cao nhất (Xem hình 4.1).
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Môi trường ban đêm có hệ thống chiếu sáng công cộng. Với môi trường này vì bị phụ thuộc vào khá nhiều yếu tố về thiết bị thu hình chất lượng thấp, ánh sáng môi trường yếu, và bị lẫn quá nhiều ánh sáng từ các đèn xe chạy ngược chiều, ánh sáng từ các bảng hiệu 2 bên đường (Xem hình 4.2). Tuy nhiên nhóm cũng thử nghiệm với số lượng 60 video clip. Thì chương trình cũng cho được kết quả là 80,18% tỉ lệ phát hiện biển báo, và 68,28% tỉ lệ nhận dạng chính xác. Tuy nhiên những khó khăn này hoàn toàn có thể khắc phục được bằng cách sử dụng thiết bị camera chuyên dụng để thu được hình ảnh chất lượng tốt hơn.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Môi trường mưa, nhiều mây, ánh sáng yếu (Xem hình 4.3). Với môi trường nhóm nghiên cứu khảo sát trên 300 ảnh tĩnh và 150 video clip. Chương trình cho kết quả là 95,67% tỉ lệ phát hiện biển báo, và 89,50% tỉ lệ nhận dạng chính xác.
Hình 4. 3. Một số kết quả thử nghiệm trong môi trường nhiều mây, yếu ánh sáng và có
mưa nhỏ
Biển báo bị che khuất, đường dằn xóc (Xem hình 4.4). Trong điều kiện này chương trình nhận dạng chính xác với các biển báo bị che khuất từ 10-15% trên tổng diện tích của biển báo. Với các đoạn đường gồ ghề khi camera vẫn thu được hình ảnh của biển báo thì thông tin biển báo vẫn được phát hiện và nhận dạng chính xác. Điều
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
đó cho thấy thuật toán được nhóm nghiên cứu áp dụng không bị ảnh hưởng bởi yếu tố đường dằn xóc, gồ ghề.
Hình 4. 4. Kết quả thử nghiệm biển bị che khuất bởi cây
Biển báo bị phai mờ bong tróc, bị bẩn bởi sơn, bụi, hoặc bị các tờ quảng cáo dán lên.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 4. 6. Kết quả thử nghiệm với biển bị bẩn bởi sơn.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 4. 8. Kết quả thử nghiệm với ảnh bị các tờ quảng cáo dán lên.
Biển báo bị nghiêng. Với các biển báo bị nghiêng, có thể nghiêng do camera thu ảnh về hoặc do trụ biển báo nghiêng thì chương trình có thể phát hiện và nhận dạng chính xác với độ nghiêng là ≤ 200.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 4. 10. Kết quả thử nghiệm với biển báo bị nghiêng bên trái trên ảnh tĩnh.
Với tốc độ di chuyển khoảng 45km/h thì khoảng cách từ lúc chương trình đưa ra thông báo cách biển báo giao thông nhóm thực nghiệm đo được là khoảng 15m (Xem hình 4.11). Điều này đủ đảm bảo để người tài xế có thể xử lý kịp các tình huống.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt 4.1.2, Đánh giá các sai số
Từ các môi trường thử nghiệm ở 4.1.1 nhóm tiến hành đánh giá việc sai số giữa các biển báo giao thông được thể hiện ở bảng 4.1. Tập thử nghiệm gồm hơn 1500 ảnh tĩnh và 750 video clip.
Bảng 4. 1. Kết quả nhận dạng biển báo giao thông Biển
báo 201a 201b 202 205e 207a 207b 207c 209 210 225
201a 98,50 0,50 1,00 201b 1,30 97,30 1,40 202 99,40 0,40 0,20 205e 90,50 9,50 207a 5,67 84,65 4,71 4,97 207b 8,54 83,35 8,11 207c 8,24 6,01 85,75 209 1,50 96,50 2,00 210 97,50 2,50 225 0,75 3,00 96,25 Độ chính xác trung bình: 92, 97%
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Căn cứ theo bảng 4.1 của nhóm cho thấy tỉ lệ nhận dạng chính xác trung bình là 92,97%. Trong đó với nhóm các biển báo 201a, 201b, 202, 209, 210, 225 luôn cho tỉ lệ chính xác là ≥ 96% bởi vì tính đặc trưng của các biển báo này là riêng biệt khó có thể nhầm lẫn sang các biển khác. Đối với nhóm các biển báo 207a, 207b, 207c có tỉ lệ nhận dạng chính xác là ≥ 83%, giữa các biển báo này dễ bị nhận dạng nhầm sang biển khác, vì thông tin đặc trưng riêng biệt giữa các biển là khá giống nhau. Sự sai lệch này bị ảnh hưởng bởi nhiều yếu tố như : hình ảnh thu về có chất lượng kém, bị nhòe, hoặc do biển báo bị phai mờ, bị mất nét, nét vẽ quá 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 về bị sai lệch.
4.2. Ƣu và nhƣợc điểm của chƣơng trình 4.2.1, Ƣu điểm
Với trang thiết bị thu hình [Xem phụ lục 23] không phải chuyên dụng như các hệ thống của các trung tâm nghiên cứu ở nước ngoài tuy nhiên chương trình vẫn có thể phát hiện và nhận dạng chính xác thông tin biển báo giao thông với tỉ lệ cao.
Chương trình hoạt động được trên nhiều môi trường với độ phức tạp như đã trình bày ở mục 4.1.1.
Có thể đáp ứng được yêu cầu về thời gian thực.
Chương trình thử nghiệm chưa phát hiện lỗi nhận dạng nhầm một đối tượng không phải là biển báo mà vẫn thông báo là biển báo.
4.2.2, Nhƣợc điểm
Số lượng biển báo nhóm đưa vào nghiên cứu và thử nghiệm là còn quá ít so với thực trạng thực tế.
Số lượng mẫu ảnh, và mẫu video clip để đánh giá vẫn còn hạn chế, chưa phong phú và đang dạng.
Tỉ lệ nhận dạng nhầm giữa các biển báo là còn cao.
Chương trình chỉ có thể phát hiện và nhận dạng được khi tốc độ của phương tiện lưu thông không vượt quá 45km/h.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt 4.3. Tiểu kết
Chương trình giải quyết được mục tiêu của đề tài, và đã được nhóm nghiên cứu thử nghiệm, đánh giá trong nhiều điều kiện môi trường khác nhau, số lượng tập dữ liệu thử nghiệm đủ lớn để có thể tin cậy độ chính xác của phương pháp nghiên cứu. Đồng thời nhóm cũng đánh giá và nhận xét được các yếu tố đặc trưng dẫn đến việc nhận dạng nhầm giữa các biển báo giao thông. Những kết quả trên đây tạo tiền đề cho việc xây dựng một hệ thống nhận dạng biển báo giao thông hoàn chỉnh và phù hợp với hệ thống biển báo giao thông tại Việt Nam.
Formatted: Font: Check spelling and grammar Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt PHẦN KẾT LUẬN
Kết luận
Đề tài nghiên cứu những thuật toán trong nhận dạng và xử lý ảnh và áp dụng vào việc nhận dạng các biển báo giao thông đường bộ nguy hiểm tại Việt Nam. Hệ thống đáp ứng được yêu cầu về việc phát hiện và nhận dạng chính xác biển báo để đưa ra thông báo hỗ trợ cho tài xế có thể xử lý các tình huống nguy hiểm kịp thời. Đây là hướng nghiên cứu còn mới trên thế giới và cả ở Việt Nam. Trên thế giới các hệ thống với mục đích tương tự hiện vẫn đang được nghiên cứu và thử nghiệm, đặc biệt với các trung tâm nghiên cứu của các hãng chế tạo ô tô như Toyota, Ford thì hệ thống vẫn chưa đưa ra thương mại hóa.Với các hệ thống biển báo giữa các quốc gia vẫn có nhiều điểm khác nhau, bên cạnh đó số lượng đề tài nghiên cứu về vấn đề này tại Việt Nam vẫn chưa nhiều. Dựa theo các bài báo khoa học được công bố trình bày về vấn đề này thì nhóm nghiên cứu có những nét riêng trong quá trình phát hiện và nhận dạng biển báo giao thông.
Tuy nhiên, với thời gian nghiên cứu cho phép và lượng kiến thức của nhóm giới hạn, nên đề tài dừng lại ở việc nghiên cứu và còn nhiều vấn đề cần phải giải quyết, tiêu