Skip to content
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Computer Vision

[Nhận diện biển số xe] Chương 4 – Nhận diện biển số xe bằng WPOD và Tesseract OCR

By Chủ tiệm Mì
November 30, 2019 3 Min Read
14

Hello và nice weekend nhé anh em Mì AI. Hôm nay chúng ta sẽ cùng nhau tìm hiểu cách nhận diện biển số xe bằng WPOD-NET và Tesseract OCR nhé.

Trong 03 chương trước mình đã guide anh em 03 cách phát hiện biển số trong ảnh, đó là:

  • Phát hiện bằng YOLO, xem tại đây
  • Phát hiện bằng WPOD-NET, xem tại đây
  • Phát hiện bằng OpenCV thuần, xem tại đây.

Bạn nào chưa xem các bài trước thì xem lại nhé. Còn hôm nay mình sẽ sử dụng WPOD-NET để phát hiện biển số. Sau đó qua một vài bước xử lý mình sẽ dùng tiếp Tesseract OCR để nhận diện chữ số trên biển nhé. Mình cũng nói luôn là có nhiều cách để nhận diện ký tự trên biển, mình sẽ lần lượt ra các bài tiếp theo nhé.

Okie vòng vo tam quốc đủ rồi, bắt đầu nào!

Phần 1 – Chuẩn bị nguyên vật liệu

Các bạn tạo thư mục MiAI_LP_Recognition_1 để chứa nội dung bài này nhé. Sau đó các bạn gõ lệnh sau để lấy source về:

git clone https://github.com/thangnch/MiAI_LP_Recognition .

Sau khi đợi trong giây lát, các bạn sẽ thấy source ùa về hối hả. Bây giờ cài đặt các thư viện cần thiết bằng lệnh

pip install -r setup.txt

Okie rồi, các món cài đặt cho python đã xong. Bây giờ sang bước 2.

Phần 2 – Cài đặt thư viện Tesseract OCR

Riêng món này thì cài đặt khá là khác nhau đối với từng hệ điều hành (Window, Linux,Mac…). Các bạn làm theo chính xác các bước cài đặt trong Phần 1 của bài về Tesseract tại link này: https://miai.vn/2019/08/22/ocr-nhan-dang-van-ban-tieng-viet-voi-tesseract-ocr/ nhé. Mình nhấn mạnh là chỉ cần làm Phần 1 thôi.

Tesseract OCR
Nguồn: https://miro.medium.com

Phần 3 – Các bước tiến hành của bài toán

Vâng như thường lệ để các bạn hiểu code nhanh chóng thì mình sẽ guide qua về pipeline của bài này:

  • Bước 1. Chúng ta sẽ load ảnh từ file ảnh png hoặc jpg tùy ý.
  • Bước 2. Sử dụng pretrain WPOD để tách biển số ra khỏi ảnh gốc vì chúng ta sẽ tập trung xử lý cái ảnh biển số này.
  • Bước 3. Chúng ta sẽ tiền xử lý ảnh biển số trước khi đưa cho Tesseract nhận diện gồm 2 thao tác: chuyển về ảnh xám và tách biệt nền và chữ bằng threshold.
  • Bước 4. Đưa vào Tesseract nhận diện với tham số về language (ngôn ngữ) và phương thức xử lý (psm) cho phù hợp. Ở đây mình chọn psm = 7 là xử lý tìm 1 dòng text.

Tại bước 3 mình có 1 lưu ý, hiện tại mình chỉ viết code xử lý biển dài, nếu bạn gặp biển vuông thì bạn tách thành 2 phần trên và dưới sau đó cũng đưa vào Tesseract như bình thường nhé (đây là hướng mình để cho các bạn thực hành luôn).

Phần 4 – Code chương trình nhận diện biển số

Well, cũng tàm tạm rồi, các bạn mở source đi và tìm đến file read_plate.py. Source file này cũng khá là quen thuộc nếu bạn đã đọc các bài trước. Tuy nhiên mình đã thêm vào vài đoạn code và cũng đã comment khá đầy đủ. Các bạn đọc Phần 3 bên trên và dò code sẽ thấy rất đơn giản.

nhận diện biển số

Phần 5 – Chạy thử chương trình

Bây giờ các bạn hãy chạy thử chương trình bằng lệnh

python read_plate.py

Nếu mọi thứ được cài đặt đúng và đủ, các bạn sẽ thấy các bước xử lý của chương trình hiện ra đầy đủ. Kết quả là biển số sẽ được viết lên trên ảnh luôn.

nhận diện biển số

OK, như vậy qua bài này bước đầu các bạn đã biết cách phát hiện và nhận diện một biển số đơn giản. Còn nhiều cách khác để giải bài toán này, mình sẽ lần lượt giới thiệu và chia sẻ cùng các bạn trong các bài sau. Hẹn gặp lại các bạn nhé.

Hãy join cùng cộng đồng Mì AI nhé!

Fanpage: http://facebook.com/miaiblog
Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup
Website: https://miai.vn/
Youtube: http://bit.ly/miaiyoutube

Tags:

aidarknetdeep learninglicense plate detectlicense plate recognitionLP detectLP recognizemachine learningnhận diện biển sốobject detectionpythonTesseracttrain
Author

Chủ tiệm Mì

Follow Me
Other Articles
Previous

[Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần

Next

[Nhận diện biển số xe] Chương 5 – Nhận diện biển số xe bằng WPOD và SVM

14 Comments
  1. Tuyết says:
    December 4, 2019 at 4:47 am

    Anh ơi em đã làm theo hướng dẫn mà gặp lỗi ạ
    Traceback (most recent call last):
    File “C:/Users/Le Thi Tuyet/Desktop/an toan giao thong/MiAI_LP_Recognition-master/read_plate.py”, line 38, in
    _ , LpImg, lp_type = detect_lp(wpod_net, im2single(Ivehicle), bound_dim, lp_threshold=0.5)
    File “C:\Users\Le Thi Tuyet\Desktop\an toan giao thong\MiAI_LP_Recognition-master\lib_detection.py”, line 228, in detect_lp
    L, TLp, lp_type = reconstruct(I, Iresized, Yr, lp_threshold)
    File “C:\Users\Le Thi Tuyet\Desktop\an toan giao thong\MiAI_LP_Recognition-master\lib_detection.py”, line 187, in reconstruct
    out_size, lp_type = (two_lines, 2) if ((final_labels_frontal[0].wh()[0] / final_labels_frontal[0].wh()[1]) < 1.7) else (one_line, 1)
    IndexError: list index out of range

    Reply
    1. Nguyễn Chiến Thắng says:
      December 4, 2019 at 10:58 am

      Em post lên group chụp hình cho tiện nhé

      Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup

      Reply
  2. [Nhận diện biển số xe] Chương 5 – Nhận diện biển số xe bằng WPOD và SVM - Mì AI says:
    December 5, 2019 at 4:00 am

    […] trước mình có guide các bạn cách nhận diện biển số bằng WPOD và Tesseract OCR tại đây. Cách đó thì đơn giản nhưng sẽ bị phụ thuộc vào Tess nhiều, và nhiều bạn […]

    Reply
  3. Anh says:
    March 2, 2020 at 4:10 pm

    Cái này biển xe máy có nhận diện được không anh nhỉ

    Reply
    1. Nguyễn Chiến Thắng says:
      March 2, 2020 at 4:11 pm

      Ngon em ơi!

      Reply
      1. Huấn says:
        January 29, 2021 at 9:00 am

        Bạn cho mình hỏi 2 câu nhé:
        1. khi nhận diện biển số xe máy thì chỉ hiện lên ảnh biển số, không hiện dãy chữ đỏ (đã nhận dạng thành text).
        2. Code này có nhận dạng được biển số trên video, camera không ạ?

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

        Reply
        1. Nguyễn Chiến Thắng says:
          January 31, 2021 at 7:12 am

          Bạn post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup cho tiện trả lời nhé!

          Reply
  4. Anh says:
    March 3, 2020 at 3:17 pm

    A cho e hỏi cách build code tensorflow ạ. Cần cài thêm những gì cho máy(bản cpu). Em cảm ơn

    Reply
  5. Bao Nguyen says:
    January 24, 2021 at 8:41 am

    Cho em hỏi là ứng dụng này chạy trên phần mềm nào vậy ạ

    Reply
    1. Nguyễn Chiến Thắng says:
      January 27, 2021 at 3:33 am

      Pycharm đó em. Em post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup trao đổi cho dễ nhé. Trên này khó vì ko up hình được.

      Reply
  6. Thien says:
    July 6, 2021 at 5:44 pm

    Anh cho em hỏi làm sao để nhận dạng biển số dọc ạ

    Reply
    1. Nguyễn Chiến Thắng says:
      July 13, 2021 at 2:21 pm

      Em post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup trao đổi cho tiện nhé!

      Reply
  7. Nguyen Quoc Huy says:
    November 28, 2021 at 11:09 am

    Em chạy trên VScode thì nó báo lỗi
    No such file or directory: ‘wpod-net_update1.json’
    mà trong thư mục đã có wpod-net_update1.json rồi thì lỗi như vậy phải giải quyết thế nào ạ

    Reply
    1. Nguyễn Chiến Thắng says:
      December 3, 2021 at 8:54 pm

      Em post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup trao đổi cho dễ nha!

      Reply
Show Comments

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Tìm hiểu và cài đặt OpenClaw – trợ lý ảo 24/7 thông minh đa chức năng – Mì Ai
  • Dùng thử Pika – robot học Tiếng Anh cho trẻ cực đỉnh – Mì AI
  • TopView.AI 4.0 – nền tảng tạo AI video cộng tác bá đạo – Mì AI
  • Storm MCP – giải pháp nhanh gọn nhẹ để có MCP Server trong 5 phút – Mì AI
  • VoxCPM thử voice cloning với checkpoint finetune Tiếng Việt – Mì AI

Recent Comments

  1. Chủ tiệm Mì on Thử xây dựng hệ thống Agentic AI với LangGraph – Mì AI
  2. Nguyễn Chiến Thắng on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  3. Trần Sơn Dương on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  4. Salomon on [CV] Thử làm model cảnh báo ngủ gật cho tài xế oto bằng Dlib và Resnet
  5. khang on Xây dựng hệ thống nhận diện thủ ngữ – ngôn ngữ ký hiệu tay – để giao tiếp với người khuyết tật

Categories

  • Basic
  • Computer Vision
  • Data Science – Data Analysis
  • Generative AI
  • MÌ ÚP
  • Natural Language Processing
  • RNN-LSTM-GRU
  • Share Data

Là người đi trước, hãy biết đưa tay lại phía sau.

Nguyễn Chiến Thắng
Cảm ơn các bạn đã ủng hộ Mì AI!