Phần mềm nhận diện biển số xe kèm Source C++

Nhận diện biển số xe đang được phát triển rất thịnh hành và phổ biến trong thời điểm hiện tại. Nắm được nhu cầu đó, hôm nay mình chia sẽ phần mềm và mã nguồn được sưu tầm từ thigiacmaytinh.com hỗ trợ nhận dạng biển số.

Đây là phần mềm nhận dạng biển số xe máy Việt Nam, tự động nhận dạng bằng webcam hoặc nhận dạng từ ảnh. Chủ yếu giới thiệu cho các bạn 1 thuật toán mới bên cạnh rất nhiều thuật toán khác trong lĩnh vực này.

1. Nguyên lý hoạt động với Camera thông thường

  1. Đầu tiên, bạn cần gọi API để chụp ra ảnh hiện tại của camera
  2. Phần mềm sẽ dựa vào ảnh đã chụp, để phân biệt ký tự và trả về kết quả biển số

Lưu ý:

  • Bạn có thể sử dụng Camera có ống kính đa tiêu cự như: KX-D2008PN, KX-CAi4205MN, … để hình ảnh rõ nhất.
  • Môi trường ánh sáng tốt, góc lắp đặt thích hợp nhìn rõ biển số.
  • Mã nguồn được viết bằng C++

2. Giải thuật

Các project chủ yếu build bằng Visual Studio, chúng tôi có ghi phiên bản Visual Studio recommended. Tuy nhiên sẽ cố gắng dành thời gian upgrade lên phiên bản mới nhất.

Các source code trong đó cơ bản hết sức có thể để tìm hiểu, các bạn cần phải code lại để phù hợp với nhu cầu. Các bạn cần phải sửa lại giao diện, huấn luyện lại để tăng độ chính xác.

Cần độ chính xác cao bạn có thể mua bản thương mại tại: https://viscomsolution.com/ipss-phan-mem-doc-bien-so-xe-may/

Bao gồm 4 bước như trên để phát hiện biển số

Bước 1: Định vị biển số hay còn gọi là phát hiện biển số: tìm khung chữ nhật gồm (x, y, width, height) bao lấy biển số trong ảnh. Nếu tìm thấy thì crop biển số ra để xử lý bước tiếp theo, kết quả của bước này là ảnh biển số đã crop. Bước này sử dụng thuật toán LBP cascade

Dùng Haar cascade học đặc trưng của 1 biển số, sau đó crop biển số. Tuy nhiên bước này lại chưa chính xác lắm

Bước 2: Định vị ký tự hay còn gọi là tìm vị trí của ký tự trên biển số đã crop. Kết quả của bước này là các ký tự màu đen, sau đó resize tất cả về cùng 1 kích thước. Bước này dùng thuật toán Floodfill

Cũng dùng Haar cascade để tìm ra các ký tự trong biển số đã được crop

Bước 3: Nhận dạng ký tự bằng thuật toán Machine Learning, trong trường hợp này là SVM để phân lớp các ký tự

Cuối cùng là dùng SVM để nhận dạng ký tự

Bước 4: Sắp xếp các kết quả nhận dạng và hiển thị ký tự theo định dạng biển số xe máy

3. Fix lỗi không build được

Khi gặp lỗi như hình bên dưới các bạn cần cài lại Visual Studio.

Hình bên dưới sử dụng Visual Studio 2019, các bạn check vào C++/CLI support… rồi cài đặt là được

4. Tải về mã nguồn

Tải về mã nguồn tại đây: https://mega.nz/file/KIx0gJpD#rzxCsfzBPwl3mbSSbQen7d5X0nj1_ki7pg_KBzWjGiE

Bài viết được tham khảo từ: https://thigiacmaytinh.com/