Sử dụng Tesseract tạo server OCR với Spring boot

Tram Ho

Sử dụng Tesseract tạo server OCR với Spring boot

1. Tesseract là gì?

Tesseract là một OCR (Optical Character Recognition) engine hàng đầu hiện nay. Công cụ này được phân phối với bản quyền mã nguồn mở Apache 2.0. Nó hỗ trợ nhận diện kí tự trên các tập tin hình ảnh và xuất ra dưới dạng kí tự thuần, html, pdf, tsv, invisible-text-only pdf. Người dùng có thể sử dụng trực tiếp hoặc lập trình viên có thể sử dụng các chức năng thông qua API.

Tesseract được phát triển bởi Hewlett-Packard Laboratories Bristol tại Hewleett-Packard Co, Greeley Colorado từ 1985 đến 1994. Sau đó, nó được cập nhật một số thay đổi nhỏ và tạm ngưng phát triển từ sau 1998. Đến năm 2005, Tesseract được phân bố dưới dạng mã nguồn mở bởi HP và được phát triển bởi Google từ năm 2006.

Hiện tại, Tesseract đã phát triển đến version 3.0x và có thể hoạt động trên 3 hệ điều hành phổ biến là Window, Mac và Linux. Công cụ này hỗ trợ nhận diện kí tự của hơn 100 ngôn ngữ khác nhau, bao gồm cả tiếng Việt. Không những thế, chúng ta có thể huấn luyện chương trình dùng Tesseract để có thể nhận diện một ngôn ngữ nào đó.

2. Cài đặt và chuẩn bị cho project (trên môi trường Linux)

a> Maven Dependency

b> Tải dữ liệu tessdata từ Github

https://github.com/tesseract-ocr/tessdata

c> Cài đặt Tesseract cho Linux bằng câu lệnh:

sudo apt-get install tesseract-ocr

Kiểm tra version

tesseract -v

3. Tạo project

Bước 1: tạo project Spring Boot cơ bản

Bước 2: Đổi tên thư mục dữ liệu tessdata-master mà bạn download từ git về thành tessdata và copy vào trong project

Bước 3: Thêm Dependency vào trong project

Cấu trúc project

Class DemoOrcServerApplication

Class OcrController

Class OcrResult

Class OcrService

4. Kiểm tra kết quả

Input của chúng ta là tấm ảnh

Dùng postman để kiểm tra:

Như vậy chương trình của chúng ta đã hoạt động tốt.

Bài hướng dẫn của mình đến đây là kết thúc. Cám ơn các bạn đã xem!

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo