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

[OCR] “Đào tạo” Tesseract OCR để nhận dạng Tiếng Việt với các font chữ khù khoằm

By Chủ tiệm Mì
August 28, 2019 5 Min Read
14

Helo xin chào cả nhà, chúng ta lại gặp nhau và cùng nhau ăn Mì AI nào với bài về đào tạo Tesseract OCR để nhận dạng Tiếng Việt . Hôm trước mình đã có bài guide các bạn cách nhận dạng Tiếng Việt bằng Tesseract OCR. Việc này có thể áp dụng để nhận dạng các tài liệu, bản scan bằng Tiếng Việt nhằm tiết kiệm thời gian nhập liệu, gõ văn bản và tự động hóa nhiều thứ.

Tuy nhiên một số bạn có comment nói là đang làm bài toán nhận diện Tiếng Việt nhưng font chữ hơi đặc biệt nên Tesseract OCR không nhận ra được. Ví dụ như ảnh dưới:

Tesseract OCR
Các font chữ khù khoằm 😀

Do đó, hôm nay mình sẽ cùng các bạn tìm hiểu cách train Tesseract OCR để nhận được các font chữ của riêng bạn nhé. Chúng ta sẽ cùng đi qua các phần sau:

  • Phần 1. Chuẩn bị nguyên vật liệu
  • Phần 2. Tạo dữ liệu train và train bằng công cụ jTessboxEditor
  • Phần 3. Tận hưởng thành quả nhận dạng

Bắt đầu luôn cho nóng nhé!

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

Nguyên vật liệu cần có gồm:

  • Đầu tiên các bạn tạo thư mục MiAI_Tess_Train để lưu các thứ của bài này nhé.
  • Thứ hai, bạn cần file font mà bạn dự kiến sử dụng để đào tạo cho Tesseract OCR (thường có đuôi là ttf – true font type). Mình ví dụ file font mình dùng ở đây là file Palatino đi. Các font này tùy vào các bạn sử dụng font gì thì search trên google tải về nhiều vô kể. Các bạn tạo thư mục fonts trong thư mục MiAI_Tess_Train và lưu font chữ (file ttf vào đó nhé)
Tesseract OCR
  • Thứ hai, các bạn hãy chuẩn bị 1 file văn bản, văn bản gì cũng được, như mình là một file lấy từ các báo online về cho nó phong phú. Ở đây mình ví dụ là file corpus.txt, được lưu trong thư mục MiAI_Tess_Train nhé. File này nên lớn lớn 1 chút, tầm 600KB-1MB để cho nó học được nhiều ký tự khác nhau.
  • Thứ ba, các bạn cần chuẩn bị công cụ để train Tesseract có tên là jTessboxEditor. Các bạn tải tại đây: https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/jTessBoxEditor-2.2.1.zip/download. Sau khi tải xong các bạn lưu vào thư mục MiAI_Tess_Train va giải nén ra, sẽ có thư mục jTessBoxEditor nhé.
  • Thứ tư, nếu máy bạn chưa có Java Runtime thì cũng cài luôn nhé. Các tải tại đây theo hướng dẫn và cài đặt nhé: https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

Rồi, công cuộc chuẩn bị đã xong, đi tiếp nào!

Phần 2. Tiến hành train Tesseract OCR

Các bạn thực hiện chuẩn từng bước sau nhé:

Bước 1. Khởi động jTessBox.

Bây giờ các bạn mở Command Promt và chuyển vào thư mục jTessBoxEdior vừa giải nén ra (bằng lệnh cd). Sau đó gõ lệnh

java -Xms128m -Xmx1024m -jar jTessBoxEditor.jar

Lệnh này để mở cửa sổ giao diện đồ họa jTessBox train cho nhanh gọn, phong cách Mì AI mà 😀

Các bạn đợi một chút để nó load vì là Java nên hơi chậm chút.

Tesseract OCR

Bước 2. Load font chữ và tạo dữ liệu train

Các bạn chọn vào Tab TIFF/Box Generator và màn hình bên dưới sẽ hiện ra:

Các bạn chọn Input, sau đó Browse đến file textdata.txt đã tạo ở bước trên để nội dung file text hiện ra trên màn hình:

Tesseract OCR

Tiếp theo, các bạn nhấn vào nút “3 chấm” […] để chọn đường dẫn lưu file kết quả. Các bạn hãy tạo một thư mục vie, trong thư mục jTessBoxEditor/samples và chọn thư mục vie này để lưu kết quả nhé.

Tiếp theo, các bạn chọn ô Font chữ, và chọn Font chữ mình cần train, chỉnh kích thước 12pt (đây được khuyến cáo là kích thước dễ train nhất).

Tesseract OCR

Rồi, sau đó các bạn chọn Tracking là 0.05 và Leading là 14 nhé, mình tách các chữ cái ra 1 chút để Tesseract dễ train hơn. Các tham số còn lại để nguyên không chỉnh sửa gì.

Bây giờ, nhấn nút Generate! Và một cửa sổ hiện ra như bên dưới là thành công rồi nhé.

Tesseract OCR

Bước 3. Train nào!

Các bạn chuyển sang tab Trainer, và màn hình hiện ra như bên dưới:

Các bạn thực hiện Chọn Training Data trỏ vào thư mục vie ở trên. Language để là vie.

Chọn tiếp là Train with Existing Box và nhấn Run!

Xong bây giờ ngồi đợi, nó sẽ qua nhiều bước bao giờ hiện chữ Training Completed thì là thành công nhé. Cũng hơi lâu lâu đó 😀

Tesseract OCR

Phần 3. Tận hưởng thành quả

Bây giờ các bạn hãy vào thư mục vie đã nói ở trên sẽ thấy 1 file vie.traineddata, các bạn hãy copy file này vào thư mục tessdata của Tesseract OCR (copy như vào các bạn thực hiện theo Phần 2 của bài này nhé https://miai.vn/2019/08/22/ocr-nhan-dang-van-ban-tieng-viet-voi-tesseract-ocr/). Chú ý: Nếu có hỏi ghi đè file vie.traineddata có sẵn trong folder ấy thì các bạn chọn Yes nhé!

Cuối cùng, các bạn hãy tận hưởng thành quả nhận dạng như Phần 3.Viết code và tận hưởng thành quả nhận dạng tại bài trước nhé (https://miai.vn/2019/08/22/ocr-nhan-dang-van-ban-tieng-viet-voi-tesseract-ocr/)

Done! Như vậy là mình đã hướng dẫn các bạn cách train Tesseract OCR để xử đẹp các font chữ đặc thù theo từng bài toán nhé. Mình xin kết thúc series về Tesseract OCR tại đây, sắp tới Mì AI sẽ có nhiều bài về OCR với các công nghệ xịn hơn tý như CTC-OCR, CNN + KVM…

Nếu có khó khăn vướng mắc trong quá trình cài đặt, các bạn comment tại group của Mì AI để cùng trao đổi nhé (link bên dưới).
Hẹn gặp lại các bạn!

#MìAI

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:

aicomputer visionmachinemachine learningmlOCRTesseractTesseract OCRtrain model
Author

Chủ tiệm Mì

Follow Me
Other Articles
Previous

[YOLO Series] Thử làm hệ thống chống khủng bố, phát hiện súng – cho ngân hàng, văn phòng

Next

[Chia sẻ] Dữ liệu 3000 súng ngắn đã gán nhãn sẵn để train nhận dạng súng bằng YOLO

14 Comments
  1. Trần Mạnh Đạt says:
    August 28, 2019 at 2:34 am

    bài viết bổ ích ạ,em cũng đã nghĩ tới nhưng chưa thì vì thấy dùng trực tiếp đã khá tốt rồi,cảm ơn anh 😀

    Reply
    1. Nguyễn Chiến Thắng says:
      August 28, 2019 at 2:36 am

      Thanks em. Nếu dùng các font thông thường thì khá ổn rồi em ah. Có 1 số bạn dùng để nhận diện hóa đơn in ra từ các hệ thống bán hàng. Nó dùng font riêng nên không nhận được em ah. Thanks em ủng hộ nhé!

      #MìAI
      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

      Reply
  2. DuongHB says:
    August 28, 2019 at 6:32 am

    Em có training trên Tesseract 4.0 sử dụng lstm bằng command line nhưng xong vẫn chưa tối ưu và chưa hoàn toàn nắm được hết nó. :(. Chưa hiểu về cách nó OCR, rồi cách lấy Confidence của nó….. a có câu trả lời thì thông não giúp e nhé 😀

    Reply
    1. Nguyễn Chiến Thắng says:
      August 28, 2019 at 6:40 am

      Lên group nhé em. Trên đó dễ tương tác hơn 😀
      #MìAI
      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

      Reply
  3. huuthieu says:
    September 8, 2019 at 11:32 pm

    Anh ơi cho em hỏi anh train trong bao lâu ạ, em train trong 10h mà vẫn không xong (không hiện gì lên luôn).

    Reply
    1. Nguyễn Chiến Thắng says:
      September 8, 2019 at 11:43 pm

      Em chụp màn hình up lên group a xem nhé!

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

      Reply
  4. Trần Thọ says:
    October 16, 2019 at 8:58 am

    Chào anh,
    Em theo dõi rất kỹ từng bài của anh, đặc biệt là 2 bài về nhận diện tiếng Việt qua OCR. Em có thể hỏi anh một chút không ạ, hiện tại em đang bí về ý tưởng xử lý.
    Em đang phải đọc thông tin từ thẻ ngân hàng: Số thẻ, hạn dùng, họ tên. Nếu mới đọc qua thì bài toán này giống hệt bài toán đọc thông tin ở CMND, nhưng ở đây có 1 cái rất là khó đó là màu phông nền của thẻ giống hệt màu chữ (kiểu dập nổi) nên em không có cách nào để bóc tách phông và chữ.
    Em đã tính đến phương án là sẽ tạo gần 40 classs tương ứng với (A-Z; 0 – 9) rồi chạy detection nhưng chưa thực hiện vì thấy nó nhiều class quá.
    Anh có thể tư vấn cho em hướng xử lý với được không, bế tắc quá!
    Em cảm ơn anh!

    Reply
    1. Nguyễn Chiến Thắng says:
      October 18, 2019 at 1:47 am

      Anh đã trả lời bài của em trên Group rồi. Em lêm xem nhé. Chúc em thành công!

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

      Reply
  5. Bảo says:
    May 14, 2020 at 11:00 am

    Với Tesseratc v5.0 thì có thể dùng jTessboxEditor để train không vậy anh Thắng. Em cảm ơn ạ.

    Reply
    1. Nguyễn Chiến Thắng says:
      May 15, 2020 at 3:11 am

      Anh cũng chưa thử với Tess5. Em thử hỏi trên group xem
      Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup

      Reply
  6. Huyen Tran says:
    March 18, 2021 at 9:22 am

    Anh cho em hỏi em khi dùng jTessboxEditor để train nhưng không load được font mình cần dùng thì phải làm sao ạ?
    Em cảm ơn!

    Reply
    1. Nguyễn Chiến Thắng says:
      March 19, 2021 at 1:42 am

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

      Reply
  7. Đại says:
    May 5, 2021 at 8:31 pm

    a ơi cho e hỏi sao cái bước 3 e không ra được như a ạ??

    Reply
    1. Nguyễn Chiến Thắng says:
      May 6, 2021 at 9:20 am

      Em post lên Group: https://www.facebook.com/groups/miaigroup nhé. Trao đổi cho tiện!

      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!