Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh

Một phần của tài liệu Nghiên cứu xây dựng chương trình nhận dạng biển số xe trên android smartphone (Trang 26 - 30)

5 Kết luận và hướng phát triển

3.5Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh

3.1.3 Hệ thống xác định vùng chứa biển số xeẢnh gốc Integral Ảnh gốc Integral Image Điều chỉnh thông số AdaBoost Quyết định kết quả Các hàm Haar cơ bản Các hàm Haar cơ bản Các hàm Haar cơ bản Số lượng lớn các đặc trưng Một tập nhỏ các đặc trưng Cấu trúc phân tầng Chọn đặc trưng Tính các đặc trưng nhanh từ nhiều tỉ lệ Ước lượng các đặc trưng Hình 3.6: Hệ thống xác định vùng chứa biển số xe

Chương 3. Hệ thống nhận dạng biển số

Như trong hình 3.6, từ ảnh gốc ban đầu, tính Integral Image, là mảng 2 chiều với phần tử

(x, y)sẽ được tính bằng tổng của các phần tử(x0, y0)vớix0 < xvà y0 < y, mục đích là để tính nhanh tổng của các giá trị mức xám của một vùng hình chữ nhật bất kỳ trên ảnh gốc. Các vùng ảnh con này sẽ được đưa qua các hàm Haar cơ bản để ước lượng đặc trưng, kết quả ước lượng sẽ được đưa qua bộ điều chỉnh AdaBoost để loại bỏ nhanh các đặc trưng không có khả năng là đặc trưng của biển số xe. Chỉ có một tập nhỏ các đặc trưng mà bộ điều chỉnh AdaBoost cho là có khả năng là đặc trưng của biển số xe mới được chuyển sang cho bộ quyết định kết quả (là tập các bộ phân loại yếu có cấu trúc như trong hình3.4). Bộ quyết định sẽ tổng hợp kết quả là biển số xe nếu kết quả của các bộ phân loại yếu trả về là biển số xe.

Mỗi bộ phân loại yếu sẽ quyết định kết quả cho một đặc trưng Haar-like, được xác định ngưỡng đủ nhỏ sao cho có thể vượt được tất cả các bộ dữ liệu mẫu trong tập dữ liệu huấn luyện (số lượng ảnh biển số xe trong tập huấn luyện là rất lớn). Trong quá trình xác định vùng chứa biển số xe, mỗi vùng ảnh con sẽ được kiểm tra với các đặc trưng trong chuỗi các đặc trưng Haar-like, nếu có một đặc trưng Haar-like nào cho ra kết quả là biển số xe thì các đặc trưng khác không cần xét nữa. Thứ tự xét các đặc trưng trong chuỗi các đặc trưng Haar-like sẽ được dựa vào trọng số (weight) của đặc trưng đó do AdaBoost quyết định dựa vào số lần và thứ tự xuất hiện của các đặc trưng Haar-like.

3.1.4 Huấn luyện bộ phân loại

Để có thể nhận dạng biển số xe theo phương pháp tiếp cận dựa trên diện mạo đã trình bày tại phần trên, trước hết cần thực hiện huấn luyện bộ phân loại dùng cho quá trình nhận dạng. Nhiệm vụ huấn luyện bộ phân loại thực sự là một thử thách bởi như đã đề cập tại phần trước quá trình này yêu cầu một tập dữ liệu mẫu rất lớn, nên tiêu tốn rất nhiều thời gian và công sức. Có thể chia quá trình huấn luyện bộ phân loại làm 2 bước chính:

• Chuẩn bị mẫu

• Huấn luyện

Chuẩn bị mẫu

Quá trình huấn luyện yêu cầu hai tập dữ liệu mẫu (sample) đó là: positive và negative. Mẫu negative là tập những bức ảnh không chứa đối tượng cần nhận dạng, ngược lại mẫu positive là tập những bức ảnh chứa đối tượng cần nhận dạng.

Mẫu negative được lấy từ những bức ảnh tùy ý không chứa đối tượng cần nhận dạng. Tất cả những bức ảnh này được liệt kê trong một file miêu tả dưới dạng plain-text, ứng với mỗi dòng

trong file miêu tả này sẽ là một bức ảnh.

Khóa luận sử dụng 3000 file ảnh trích từ bộ phim Step Up Revolution làm tập mẫu Negative.

Mẫu positive là tập những bức ảnh chứa đối tượng cần nhận dạng, một bức ảnh có thể chứa một hoặc nhiều đối tượng. File miêu tả của tập mẫu positive cũng là một file plain-text, mỗi dòng sẽ chứa tương ứng với một file ảnh, tiếp sau đó là số lượng đối tượng cần nhận dạng có trong bức ảnh, tiếp sau đó là tọa độ x, y tương ứng của mỗi đối tượng đó.

Khóa luận sử dụng 2000 bức ảnh chứa biển số làm tập mẫu positive. Những bức ảnh này được được thu thập (quay và chụp) trong vòng 4 ngày tại nhiều địa điểm của thành phố Hồ Chí Minh, với những điều kiện, thời gian khác nhau.

Bước tiếp theo sau khi đã có được file miêu tả của tập mẫu negative và positive là phải tạo bộ mẫu input cho quá trình huấn luyện. Để thực hiện điều này, ta sử dụng tiện ích

opencv_createsamplesđược cung cấp sẵn trong thư viện nguồn mở OpenCV.

Các tùy chọn của tiện íchopencv_createsamples: ./opencv_createsamples -info <description_file_name> -img <image_file_name> -vec <vec_file_name> -bg <background_file_name> -num <number_of_samples = 1000> -bgcolor <background_color = 0>

-inv -randinv -bgthresh <background_color_threshold = 80> -maxidev <max_intensity_deviation = 40> -maxxangle <max_x_rotation_angle = 1.100000> -maxyangle <max_y_rotation_angle = 1.100000> -maxzangle <max_z_rotation_angle = 0.500000> -show <scale = 4.000000> -w <sample_width = 24> -h <sample_height = 24>

Chương 3. Hệ thống nhận dạng biển số

opencv_createsamples.exe -info positive/ positive.txt -vec data/vector.vec -num 2000 -w 55 -h 40

-info positive/ positive.txt: đường dẫn file miêu tả của tập mẫu positive

-vec data/vector.vec: đường dẫn file output sẽ được tạo ra sau quá trình tạo mẫu -num 2000: số lượng mẫu là 2000 như đã đề cập

-w 55 -h 40: kích thước của mỗi mẫu sẽ được tạo ra, theo đúng với tỷ lệ của biển số xe (140x190)

Sau khi tạo ra file mẫu dưới dạng vector, mọi thứ đã sẵn sàng để chuyển qua bước kế tiếp đó là huấn luyện.

Huấn luyện

Đây là bước cuối cùng của quá trình huấn luyện nhưng cũng là bước yêu cầu nhiều thời gian nhất. Mất 6 ngày chạy liên tục để hoàn thành bước này trên một máy tính tương đối mạnh (core I7, 16Gb ram, window 7). Trong suốt quá trình thực thi, 8 nhân của CPU được tận dụng tối đa, luôn trong tình trạng 100% đang sử dụng.

Tiện íchopencv_traincascadeđược sử dụng trong bước này để hoàn tất quá trình huấn luyện. Cú pháp sử dụng:

opencv_traincascade.exe -data data/cascade -vec data/vector.vec -bg negative/infofile.txt - numPos 2000 -numNeg 2999 -numStages 20 -mode ALL -w 55 -h 40

-data data/cascade: đường dẫn để lưu kết quả của quá trình huấn luyện (adsbygoogle = window.adsbygoogle || []).push({});

-vec data/vector.vec: đường dẫn file vector được tạo ra trong bước chuẩn bị mẫu từ tập mẫu positive

-bg negative/infofile.txt: đường dẫn file miêu tả của tập mẫu negative -numPos 2000: số lượng file ảnh của tập mẫu positive

-numNeg 2999: số lượng file ảnh của tập mẫu negative -numStages 20: số stage mong muốn

-mode ALL: chế độ ALL sẽ sử dụng tất cả các dạng (kể cả mở rộng) của đặc trưng Haar-like -w 55 -h 40: kích thước của tập mẫu

Một phần của tài liệu Nghiên cứu xây dựng chương trình nhận dạng biển số xe trên android smartphone (Trang 26 - 30)