Hi, I am

Ngô Tôn

I am a programmer.

Home / AI/ML/DL/DS / Tự xây dựng OCR server đơn giản

Tự xây dựng OCR server đơn giản

Chào các bạn, tiếp tục chủ đề Tự học và phát triển ứng dụng thực tế AI, ML, DL, DS mình xin giới thiệu bài viết Tự xây dựng OCR server đơn giản bằng Python sử dụng Tesseract và Flask.

OCR là gì?

OCR là thuật ngữ được viết tắt bởi cụm từ Optical Character Recognition (nhận dạng ký tự quang học). Đây là ứng dụng công nghệ chuyên dùng để đọc văn bản từ file ảnh. Được sử dụng để nhận dạng các ký tự, chữ viết tay, hay chữ đánh máy, công nghệ này cũng được dùng để truyền tải, nhập liệu dữ liệu.

Một số ứng dụng của OCR:

–  Ứng dụng bóc tách thông tin văn bản
–  Ứng dụng bóc tách thông tin tờ trình, hợp đồng
–  Ứng dụng vào bóc tách biểu mẫu ngân hàng, bảo hiểm, viễn thông, nghiên cứu thị trường
–  Ứng dụng bóc tách chứng minh thư
–  Ứng dụng bóc tách thông tin sổ đỏ
–  Ứng dụng bóc tách thông tin giản đồ
–  Ứng dụng phân tích và tìm kiếm theo ảnh

Bắt đầu xây dựng OCR server đơn giản

Chúng ta sẽ bắt đầu bằng cách phát triển back-end của Flask để phục vụ các kết quả của công cụ OCR. Từ đây, chúng ta chỉ cần đưa ra end-point và cung cấp kết quả cho người dùng cuối.

Dependencies

Chúng ta cần tải về Tesseract và tất cả các dependencies của nó, bao gồm Leptonica, cũng như một số gói khác.

Chúng ta cũng cần ImageMagick nếu chúng ta muốn chỉnh sửa các hình ảnh trước khi đưa chúng vào chương trình.

Xây dựng Leptonica và Tesseract

Biến môi trường

Chúng ta cần thiết lập một biến môi trường để tạo nguồn dữ liệu Tesseract:

Tesseract Packages

Cuối cùng, hãy lấy các gói ngôn ngữ tiếng Anh Tesseract có liên quan:

Cài đặt Web server

Các bạn có thể tải về từ nguồn này đã có phần cài đặt server Flask

Bây giờ đến phần OCR

Chúng ta cần tạo một lớp bằng cách sử dụng pytesseract để lấy và đọc hình ảnh. Tạo một file mới có tên ocr.py trong thư mục “flask_server” và thêm mã sau:

Phương thức process_image(), chúng ta dùng để làm sắc nét hình ảnh để làm rõ nét văn bản.

Mở rộng, Tạo CLI sau khi thực hiện quá nhiều cấu hình. Vì vậy, chúng ta hãy bắt tay vào làm một cái. Tạo một file mới trong “flask_server” được gọi là cli.py và sau đó thêm mã sau:

Bây giờ chúng ta đã có một OCR engine, chúng ta cần phải có một số output! Thêm hàm xử lý và route handler sau vào app.py:

Như bạn có thể thấy, chúng ta chỉ thêm response là JSON của phương thức process_image() của Engine, pass nó vào 1 image object bằng Image from PIL . Hiện tại tính năng này chỉ hoạt động với hình ảnh .jpg.

Đừng quên thêm version của api

Vậy là xong, chúng ta kiểm tra xem code có hoạt động không nào!

Chúc các bạn thành công!

About ngoton

Ngô Tôn is a programmer with passion for tailored software solutions. Comes with 7+ years of IT experience, to execute beautiful front-end experiences with secure and robust back-end solutions.

Check Also

Tự động tạo code HTML & CSS từ hình ảnh với Deep Learning

Mục lục Xây dựng mạng nơ-ronPhiên bản đơn giảnPhiên bản nâng caoPhiên bản cuối cùng …

Leave a Reply

avatar
  Subscribe  
Notify of