Share source code nhận diện ký tự miễn phí LightOn OCR trên Windows

Mục lục

  1. Giới thiệu
  2. Yêu cầu hệ thống
  3. Chuẩn bị môi trường
  4. Build solution
  5. Link GitHub
  6. Tổng kết

1. Giới thiệu

LightOn OCR là một ứng dụng nhận dạng ký tự quang học (OCR) hiện đại, sử dụng mô hình AI đa phương thức với quy mô lớn (~1 tỷ tham số). Khác với các công cụ OCR truyền thống, hệ thống không chỉ trích xuất văn bản mà còn hiểu cấu trúc tài liệu, trả về kết quả dưới dạng Markdown có định dạng, kèm theo tọa độ vùng chữ (bounding box).

Bài viết này chia sẻ source code LightOn OCR viết bằng C++ và C# để bạn tự build ứng dụng trên Windows. Với khả năng chạy offline và đầy đủ source code, bạn hoàn toàn an tâm về vấn đề bảo mật dữ liệu khi sử dụng.

Việc build ứng dụng cũng không khó vì ứng dụng build với Visual Studio, rất quen thuộc đối với bất kỳ lập trình viên nào. Đây là 1 giải pháp toàn vẹn, đáp ứng được nhiều tiêu chí: miễn phí, an toàn, nhanh chóng và chính xác.

Ứng dụng hỗ trợ xử lý:

  • Ảnh: PNG, JPG, BMP, WEBP
  • File PDF

Kết quả đầu ra có thể xuất ra:

  • Microsoft Word (.docx)
  • Markdown (.md)
  • File .zip nếu bạn upload nhiều file input

2. Yêu cầu hệ thống

2.1. Phần mềm

  • Windows 10 x64, không nên sử dụng Windows 11
  • CUDA 12.8cuDNN 9.18
  • Visual Studio 2022
    • Desktop development with C++
    • .NET Desktop Development
    • .NET 8.0 SDK
    • C++ Toolset v143 (C++20)

2.2. Phần cứng

  • CPU: AMD Ryzen 5 2600 trở lên
  • RAM: 16GB trở lên
  • SSD: trống ít nhất 3GB
  • GPU: NVIDIA 3060 trở lên

Lưu ý: Do sử dụng mô hình AI lớn bắt buộc bạn phải có GPU NVIDIA hỗ trợ CUDA

3. Chuẩn bị môi trường

3.1. Download model

Download model tại link: https://huggingface.co/noctrex/LightOnOCR-2-1B-bbox-GGUF

Sau khi download, đưa các file vào folder: bin/model/

  • LightOnOCR-2-1B-bbox-BF16.gguf: 1.12 GB
  • mmproj-F32.gguf: 1.53 GB

3.2 Copy các file cần thiết

Sau khi tải mã nguồn, thực hiện sao chép các thư viện cần thiết:

copy lib/llama.cpp/lib/*.dll ➡ bin/
copy pandoc.exe ➡ bin/

4. Build solution

4.1. Cấu trúc source code

Source code gồm ba Project chính:

Thành phần Ngôn ngữ Vai trò
LightOnOCRcpp C++ Xử lý nhận diện ký tự (OCR) dựa trên llama.cpp
LightOnOCR C++/CLI Project trung gian kết nối C++ và .NET
LightOnOCR_UI C# (WPF) Project thiết kế giao diện người dùng

Cách tiếp cận này giúp tận dụng hiệu năng của C++ trong xử lý AI, đồng thời sử dụng C# để xây dựng giao diện thân thiện.

2 solution đều build ra folder bin

4.2. LightOnOCRcpp.sln

Đây là solution console, giúp việc debug nhanh chóng, build xong bạn được file LightOnOCRcpp.exe

Cách sử dụng:
LightOnOCRcpp.exe [prompt]

4.3. LightOnOCR_UI.sln

Đây là solution có UI, là phiên bản hoàn chỉnh để triển khai tới người dùng, build xong bạn được file LightOnOCR_UI.exe

Đây là ứng dụng đầy đủ chức năng để bạn sử dụng.

https://github.com/thigiacmaytinh/LightOnOCR_Cpp

Tổng kết

Trong trường hợp bạn muốn sử dụng online có thể truy cập link: https://huggingface.co/spaces/lightonai/LightOnOCR-2-1B-Demo

Leave a Reply