Mục đích chính của thí nghiệm này nhằm tìm ra tham số mạng neural (số lớp ẩn, tốc độc học, ngưỡng lỗi, …) thích hợp cho phương pháp trích đặc trưng đường chéo (Diagonal). Sở dĩ chọn phương pháp trích đặc trưng này vì theo nghiên cứu của J.Pradeep, 2011 [6], tỉ lệ nhận dạng ký tự với phương pháp đường chéo có độ chính xác cao, thời gian học cũng như nhận dạng nhanh do sử dụng ít đặc trưng hơn.
a) Thực nghiệm chọn số lớp ẩn
Chọn số lần lặp nhất định, đặt tốc độ học nhỏ, thay đổi số lớp ẩn và training để đánh giá số lớp ẩn bao nhiêu là cho kết quả nhận dạng với tỉ lệ lỗi thấp nhất. Thực nghiệm chọn lặp 100 lần học và tốc độ học đặt 0.1.
Bảng 3.2. Mức lỗi và thời gian học theo số lớp ẩn
Số lớp ẩn 50 100 150 200 250 300
Mức lỗi 0.0011 0.0005 0.00048 0.00048 0.00047 0.00044 Thời gian 5m21s 6m33s 7m28s 11m04s 12m 15s 13m11s
Hình 3.20. Đồ thị biến thiên mức lỗi theo số lớp ẩn
Nhìn vào đồ thị Hình 3.20, trong khoảng từ 100-300 số lớp ẩn, mức lỗi biến thiên không đáng kể, vì vậy ta chọn số lớp ẩn trong khoảng (100,150) là thích hợp.
b) Thực nghiệm xác định tốc độ học
Sau khi có được số lớp ẩn tối ưu trong thí nghiệm chọn số lớp ẩn, ta thay đổi lần lượt tốc độ học từ 0.1 đến 1.5 để tìm ra tốc độ học cho mức lỗi nhỏ nhất với mô hình mạng có 100 lớp ẩn. Số lần học sẽ dừng để ghi nhận kết quả sau 100 lần.
Bảng 3.3. Mức lỗi và thời gian học theo tốc độ học
Tốc độ
học 0.1 0.3 0.5 0.7 0.9 1.1 1.3 1.5 Mức lỗi 0.00063 0.00019 0.000094 0.000063 0.00006 0.000057 0.0002 0.0033
Hình 3.21. Đồ thị biến thiên mức mỗi theo tốc độ học.
Trong khoảng từ 0.5 đến 1.1, tốc đọc học cho mức lỗi biến thiên không lớn, do đó, chọn tốc độ học trong khoảng (0.5, 1.1).
c) Thực nghiệm tìm ngưỡng lỗi
Sau khi đã có số lớp ẩn và tốc độ học tối ưu ở 2 thí nghiệm trên, ta tìm ngưỡng lỗi để dừng vòng lặp học sao cho với mức lỗi đó, tỉ lệ nhận dạng ký tự đạt kết quả cao. Thay đổi lần lượt mức lỗi và cho training qua mạng neural, ghi nhận kết quả nhận dạng.
Bảng 3.4. Tỉ lệ nhận dạng ký tự theo mức lỗi
Mức
lỗi 0.01 0.005 0.001 0.0005 0.0001 0.00005 0.00001 5e-6 1e-6 Close test 16.3% 32.4% 44.9% 86% 95.7% 97.1% 98.5% 97.8% 98.1% Open test 11.7% 28.1% 37.6% 83.4% 91.6% 96.3% 97.2% 96.9% 97.4% Thời gian 4m28s 8m32s 13m55s 18m22s 21m42s 28m30s 36m11s 43m7s 55m57s Mức lỗi từ 0.0001 đến 0.00005 cho tỉ lệ nhận dạng cao trên 90%.
d) Thực nghiệm lựa chọn số đặc trưng
Thay đổi số lượng đặc trưng, cho training qua mạng neural với tham số mạng là 100 lớp ẩn, tốc độ học 0.9, ngưỡng lỗi 0.00005, ghi lại kết quả nhận dạng ký tự của mạng với từng số lượng đặc trưng.
Bảng 3.5. Tỉ lệ nhận dạng ký tự theo số lượng đặc trưng
Số đặc trưng Cỡ ảnh Close test Open test Thời gian
24 40x60 95.80% 93% 34m15s
40 50x80 96.70% 94.40% 28m33s
54 60x90 97.30% 96.80% 27m16s
70 70x100 98.50% 97.10% 25m18s 88 80x110 97.60% 96.60% 26m29s
Hình 3.22. Đồ thị tỉ lệ nhận dạng theo số lượng đặc trưng
Với số đặc trưng 40, 54, 70, 88, kết quả test cho tỉ lệ nhận dang cao. Tuy nghiên để giảm dung lượng bộ nhớ lưu trữ, nên sử dụng số đặc trưng 40 hoặc 54.
e) Kết quả nhận dạng ký tự
Kết quả nhận dạng ký tự với tham số mạng gồm 100 nút ẩn, 54 nút vào, 8
nút ra, tốc độ học 0.9, ngưỡng lỗi 0.00005, phương pháp trích chọn đặc trưng Diagonal cho tỉ lệ nhận dạng 97%, thời gian train 28 phút. Hình 3.23. Bộ dữ liệu ký tự để train
Một số nguyên nhân ký tự nhận dạng sai: nhầm lẫn và hình dáng giữa B và 8 khi nét thẳng của chữ B có dáng cong, 0 và 8 hay D và 8 khi số 0 và chữ D bị nhiễu đốm ở giữa bụng. Cách khắc phục và tăng số mẫu học nhiễu để mạng có thể nhận dạng tốt hơn.
CHƯƠNG 4. CÀI ĐẶT THỬ NGHIỆM ỨNG DỤNG NHẬN DẠNG BIẾN SỐ XE
Ứng dụng nhận dạng biển số xe được cài đặt để nhận dạng ảnh biển số tĩnh, phát hiện biển số, sau đó tách ký tự và tiến hành nhận dạng. Để có thể phát hiện biển số xe, chương trình thu nhận ảnh vào, qua các bước tiền xử lý như lọc nhiễu, nhị phân, biến đối hình thái học, tìm biển,….rồi sau đó tìm Contour bằng thuật toán FindContour được cài đặt trong EmguCV. Khi đã có tập các contour, để lọc ra đúng biển số, ta đưa tập này qua các hàm lọc (Lọc theo kích thước, Scanning Line, lọc số lượng chữ số) để loại ra các contour không chứa biển số. Khi đã tìm được đúng vùng contour, công việc tiếp theo là cắt ảnh biển số, tách ký tự và đưa vào mạng neural để nhận dạng (tham số mạng đã được học).