Ứng dụng vào bài toán nhận diện biển báo giao thông

Một phần của tài liệu NHẬN DIỆN BIỂN BÁO GIAO THÔNG DÙNG KỸ THUẬT XỬ LÝ ẢNH TRÊN NỀN VI ĐIỀU KHIỂN (Trang 68)

3.7.2.1. Huấn luyện mẫu

Mạng nơron được huấn luyện theo các bước sau:

Bước 1: Chọn mẫu để huấn luyện

Các mẫu là các hình biển báo giao thông thực tế. Ở luận văn này, tác giả chọn nhận diện 3 loại biển báo: biển cấm đi ngược chiều, biển cấm rẽ trái, biển giao nhau với đường ưu tiên. Ý tưởng của thuật toán nhận diện là đưa vào một hình ảnh, kết quả nhận về là việc phân loại biển này thuộc một trong 3 loại kia hay thuộc loại thứ 4, không phải biển báo nêu trên. Do đó, các mẫu được chọn phải thuộc 4 tập hợp sau: 3 tập hợp chứa 3 loại biển báo, với các góc nhìn, độ sáng, độ tương phản khác nhau, tập hợp còn lại chứa các loại biển báo khác hoặc các hình ảnh không phải là biển báo giao thông, các hình ảnh gây nhiễu.

51

Bước 2: Số hóa các mẫu

Một mẫu sau khi được chọn sẽ được crop sát các mép, sau đó từ RGB chuyển thành ảnh xám, cuối cùng ở dạng ảnh trắng đen. Ảnh này được thu nhỏ về mức 10x10 pixel là chuyển thành ma trận cột 100x1, có 149 mẫu, nên kết quả cuối cùng, thư viện mẫu là một ma trận 100x149.

Bước 3: Chọn các thông số cho việc huấn luyện mạng Các thông số mạng bao gồm:

Hằng số học 𝜂 = 0.05

Sai số bình phương cực tiểu 𝑀𝑆𝐸 = 10−6

Số chu kì huấn luyện tối đa 𝑒𝑝𝑜𝑐ℎ𝑠 = ⁡ 105

Hàm kích hoạt ở lớp ẩn: 𝑙𝑜𝑔𝑠𝑖𝑔(𝑥) = 1 1+𝑒−𝑥 Hàm kích hoạt ở lớp ra: 𝑙𝑜𝑔𝑠𝑖𝑔(𝑥) = 1 1+𝑒−𝑥 Số nút mạng đầu vào: 100 Số nút mạng lớp ẩn: 5 Số nút mạng đầu ra: 4

Bước 4: Khởi tạo các giá trị ban đầu của các trọng số:

Các giá trị trọng số được khởi tạo ngẫu nhiên, 500 hệ số từ lớp vào tới lớp ẩn, 20 hệ số từ lớp ẩn tới lớp ra.

Bước 5: Huấn luyện theo thuật toán

Thuật toán được huấn luyện theo nguyên tắc, nếu đạt được sai số mong muốn thì dừng lại khi số vòng lặp chưa tới 100 000, và ngược lại, chương trình cũng sẽ dừng ngay khi số vòng lặp đạt 100 000, thay vì thực hiện liên tục để đạt sai số yêu

52

cầu. Điều này giúp cho chương trình tránh bị treo. Việc huấn luyện này mất khoảng 10-15 phút

Bước 6: Lấy bộ trọng số cuối cùng sau khi huấn luyện.

Kết quả trả về sau khi chương trình kết thúc là giá trị các trọng số sẽ được cập nhật, các giá trị này tương đối hợp lý cho việc nhận diện.

3.7.2.2. Kết quả thực nghiệm

Kiểm tra hệ thống:

Sau khi cập nhật bộ trọng số cuối cùng, ta dùng nó cho thủ tục nhận diện bằng cách tính lan truyền thẳng các mẫu cần nhận diện và đánh giá kết quả dựa vào đầu ra và sai số mse. Kiểm tra 50 mẫu, ta có các kết quả sau:

Sai số của quá trình huấn luyện: 𝑀𝑆𝐸 = 3.14𝑥10−6

Độ chính xác: 88%

Khi thay đổi một trong các thông số của quá trình huấn luyện, kết quả mse và độ chính xác có sự thay đổi như sau:

Trường hợp 1: Thay đổi tốc độ học, giữ nguyên các thông số khác.

Bảng 3.2 Kết quả nhận diện khi thay đổi hằng số học, epochs = 10000

Hằng số học 𝜂 Sai số mse Độ chính xác

0.05 1.59𝑥10−5 92%

0.10 1.71𝑥10−5 92% (adsbygoogle = window.adsbygoogle || []).push({});

0.15 6.19𝑥10−5 92%

53

Bảng 3.3 Kết quả nhận diện khi thay đổi số chu kì huấn luyện

Số chu kì epochs Sai số mse Độ chính xác

1000 1.50𝑥10−3 90%

10 000 1.71𝑥10−5 92%

5 000 000 3.14𝑥10−6 88%

Trường hợp 3: Thay đổi số nơron ở lớp ẩn

Bảng 3.4 Kết quả nhận diện khi thay đổi số nơron lớp ẩn, epochs = 10000

Số nút Sai số mse Độ chính xác

5 1.71𝑥10−5 92%

10 8.00𝑥10−5 92%

3.7.2.3. Nhận xét Về huấn luyện mạng nơron:

Các nhân tố ảnh hưởng đến việc huấn luyện mạng nơron: giá trị của các trọng số khởi tạo ban đầu, hằng số học, số nút mạng nơron ở lớp ẩn, hàm kích hoạt,…

Các trọng số khởi tạo ban đầu có ảnh hưởng lớn đến kết quả cuối cùng. Nó thường là các số có giá trị nhỏ (để các hàm sigmoid không bị bão hòa ngay từ đầu) và không nên bằng nhau vì sẽ khó huấn luyện.

Hằng số học: Nhìn chung, không có một hằng số học nào phù hợp cho mọt trường hợp huấn luyện mạng khác nhau, giá trị của nó thường lựa chọn theo kinh nghiệm, thông thường hằng số học nằm trong khoảng [0.001 10]. Theo bảng so sánh (3.2), việc thay đổi hằng số học chưa dẫn đến sự thay đổi đáng kể của kết quả.

54

Số nơron ở lớp ẩn: là một vấn đề luôn luôn được đặt ra trong bài toán ứng dụng mạng truyền thẳng nhiều lớp, yêu cầu đặt ra là tìm được số lượng nơron nhỏ nhất nhưng vẫn đảm bảo chất lượng để giảm độ phức tạp của mạng, đồng thời tăng khả năng xử lý nhanh của hệ thống. Việc tăng số nơron ở lớp ẩn từ 5 lên 10 trong bảng (3.4), làm việc tính toán chậm chạp hơn nhưng chưa có sự thay đổi đáng kể về mse và độ chính xác, một phần lý do vì mạng chưa hội tụ thật sự và số lần huấn luyện chưa đủ cao.

Về việc nhận diện ba loại biển báo:

Kết quả nhận diện có độ chính xác xấp xỉ 90%, các trường hợp nhận diện sai do có vài đối tượng có các đặc điểm tương tự như biển báo giao thông (thuộc nhóm các biển báo đang xét) hoặc có những trường hợp không nhận diện được do quá trình tiền xử lý và tiền nhận dạng đã loại bỏ đi thông tin.

55

CHƯƠNG 4: TỔNG QUAN VỀ PHẦN CỨNG VÀ LẬP TRÌNH TRÊN VI ĐIỀU KHIỂN

Một phần của tài liệu NHẬN DIỆN BIỂN BÁO GIAO THÔNG DÙNG KỸ THUẬT XỬ LÝ ẢNH TRÊN NỀN VI ĐIỀU KHIỂN (Trang 68)