Phần mềm nhận diện biển số có kèm source

Đâ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.

Trong repo https://github.com/thigiacmaytinh/IPSSedu có chứa nhiều project về nhận diện biển số. Gồm có cả xe máy lẫn xe hơi, với các ngôn ngữ lập trình khác nhau, giải thuật khác nhau,… Chủ yếu giới thiệu hướng tiếp cận giúp các bạn hình dung flow thuật toán.

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/

Giải thuật

nhận dạng biển số xe máy

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

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

Download

Source chạy bằng Visual studio 2015 Community (miễn phí)
https://github.com/thigiacmaytinh/IPSSedu

Phần mềm thương mại có phí, độ chính xác cao hơn bản miễn phí
https://github.com/viscomsolution/IPSS

Hình ảnh biển số dùng để test
Bike_back_ctu.zip (21MB)

38 thoughts on “Phần mềm nhận diện biển số có kèm source

  1. Chào bạn Vĩ, mình thấy chương trình bạn demo trên youtube rất hay, bạn có thể gửi cho mình mail mình liên lạc với bạn được không?

  2. bạn có thể cho mình xin code được không, mình đang làm đồ án nhận dạng biển số xe đơn giản sử dụng opencv với MS visual, mình tìm hoài trên mạng mà không thấy có đoạn code nào cả.

    1. Theo như bạn đã chat thì biển số xe của ăn trộm mờ quá thì chịu thua

  3. Chào anh. EM muốn hỏi làm thế nào để sử dụng Project C++ trong Project C# ạ. Em add Project Reference rồi, khi chạy thì báo lỗi: Could not load file or assembly ‘OpenCVDotNetd.dll’ or one of its dependencies. The specified module could not be found. Em cảm ơn ạ.

    1. Có vài bạn cũng bị lỗi này, vấn đề là do project OpenCVDotNet không load được, bạn ấn chuột phải vào project, chọn reload project xem thử có được không.

    1. Dạ cho em hỏi 1 câu nữa, các hình positive của mình chỉ bao gồm biển số thôi đúng không ạ, là mình phải cắt hết background đi? Em mới học nên chi rõ lắm.

  4. Có thể cho em xin code được không ạ, vì em đang làm đồ án về phần này, em cần code để tham khảo, thanks nhiều

  5. Hi bạn,

    Cho mình hỏi SVM trong project bạn có source không? Còn nếu dùng model đã train của bạn thì có dùng được với SVM trong OpenCV không ah?

    Cám ơn bạn nhiều!

    1. Trong repo github có nhiều project khác nhau, có project sử dụng SVM trong opencv

    2. Ah thx bạn! Mình hỏi về project:

      https://github.com/thigiacmaytinh/IPSSedu

      Trong đó có file SVM.dll, mình không biết bạn có thể cho mình source của file đó không ah? Còn nếu dùng những model đã được train (svmCharNum.model, svmNum.model) thì có thể sử dụng với OpenCV SVM được không bạn?

      Cám ơn bạn nhiều!

  6. Could not load file or assembly ‘OpenCVDotNet.dll’ or one of its dependencies. The specified module could not be found.
    Khi sử dụng chức năng đọc biển số bằng file thi chương trình báo lỗi này. Anh có thể giúp em được không ạ!

  7. Hi Bạn,
    Mình gặp lỗi đã chạy project và đang gặp lỗi này: ‘Could not load file or assembly ‘TGMTbike.dll’ or one of its dependencies. The specified module could not be found.’
    Mong bạn giải đáp

    1. Có 2 cách để save:
      – Cách 1: save model đã train. Nhược điểm là file dung lượng lớn, load lâu.
      – Cách 2: save tập ảnh thành file yaml, khi load chương trình thì tiến hành train. Ưu điểm là load nhanh hơn & dung lượng nhẹ hơn.

      Do đó mình save lại thành yaml, bạn có thể sửa code để save thành model tùy ý.

  8. Could not load file or assembly ‘OpenCVDotNet.dll’ or one of its dependencies. The specified module could not be found.
    Khi sử dụng chức năng đọc biển số bằng file thi chương trình báo lỗi này. Anh có thể giúp em được không ạ!

    1. mình đã cập nhật hướng dẫn cài đặt lại Visual Studio để fix rồi nhé

    1. Mình có kèm link source code ở cuối bài rồi, miễn phí không cần mua nhé

Leave a Reply