Bài này là bước 3 của công việc nhận diện biển số xe hơi.
Phần 1: Nhận diện biển số xe hơi – Phần 1/3 tìm biển số
Phần 2: Nhận diện biển số xe hơi – Phần 2/3 tìm ký tự
Trong phần 1 đã crop biển số từ ảnh input, phần 2 crop các ký tự bằng cách dùng contours. Phần 3 sẽ nhận diện ký tự và đưa ra kết quả
Để có thể hiểu về nhận diện ký tự bạn cần có kiến thức về Machine Learning. Phải hiểu lý thuyết về phân lớp (classify) vì bên dưới chỉ giải thích cách xử lý hình ảnh để nhận diện.
Các bước thực hiện
– Load training data
– Biến đổi các ký tự theo chuẩn
– Phân lớp ký tự và sắp xếp kết quả
Load training data
Trong source code gốc có sẵn file OCR.xml. Đó là các hình ảnh dùng để training được lưu dưới dạng text trong file xml. Chúng ta chỉ cần load lên là dùng không cần làm gì thêm
Để có thể hình dung cách chuẩn bị tập dữ liệu training bạn có thể đọc bài Sử dụng SVM để nhận diện ký tự. Cũng tương đối giống về cách chuẩn bị data.
Các ký tự dùng để training có kích thước 15×15, biến đổi thành ma trận 1 dòng thành 225×1 pixels, cộng thêm histogram feature theo chiều dọc 20pixels và ngang 20pixels nữa là 265×1 pixels.
Bộ dữ liệu có 671 ký tự, vậy xếp 671 ký tự này thành 1 ảnh 2D ta được ảnh 265×671 pixels dùng để training như hình bên dưới.
Biến đổi các ký tự theo chuẩn
Như đã nói ở trên, mỗi ký tự được biến đổi thành dạng phù hợp thì ngoài giá trị pixels thì còn giá trị histogram nữa. Cụ thể hóa bằng cách vẽ thành histogram cho dễ hình dung.
Phân lớp ký tự và sắp xếp kết quả
Đến bước này chỉ cần dùng model KNN đã load để nhận diện ký tự. Kết quả sẽ trả về tương ứng, sau đó sắp xếp từ trái qua phải ta được kết quả
Download
Download source code đã chỉnh sửa phù hợp với biển số xe hơi Việt Nam, sử dụng Visual Studio 2015 community để build
Bạn nói chưa hiểu lắm về phần training data
bạn có thể vào group để đặt câu hỏi: https://www.facebook.com/groups/thigiacmaytinh/
anh ơi cho em hỏi cái file OCR.xml ở trên anh ghi ý ạ là để nhận diện ký tự ạ
đúng rồi bạn
Chào bạn, cảm ơn các bài viết của bạn, nó thật hữu ích đối với mình.
Cho mình xin ảnh chứa các kí tự để huấn luyện được ko ạ? Do mình lưu dữ liệu train dưới dạng khác nên cần. Cảm ơn bạn!
Mục số 5 bạn nhé:
https://thigiacmaytinh.com/tai-nguyen-xu-ly-anh/tong-hop-data-xu-ly-anh/
Bạn cho mình hỏi tại sao phần xác định vị trí biển số lại ko dùng phương pháp như phương pháp nhận diện biển số xe máy?
Nếu dùng như cách nhân diện biển xe máy thì có đc ko? Mình cảm ơn.
Đây chỉ là 1 cách tiếp cận mới, giới thiệu thêm cho mọi người biết, không nhất thiết phải sử dụng 1 cách duy nhất. Bạn có thể dùng cách của biển số xe máy vẫn ok
An unhandled exception of type ‘System.IO.FileNotFoundException’ occurred in IPSS.exe
Additional information: Could not load file or assembly ‘TGMTbike.dll’ or one of its dependencies. The specified module could not be found.
Khi chạy thử bị lỗi này, khắc phục sau vohungvi
Cái này là cài thiếu C++ redistributale 2015 x86, cài lại Visual Studio chọn mục bị thiếu là được