API JavaScript nguồn mở để thêm và quản lý OCR vào ứng dụng web
Thư viện JavaScript miễn phí hàng đầu để thêm chức năng Nhận dạng ký tự quang học (OCR) vào Ứng dụng web JS và chuyển đổi hình ảnh văn bản in hoặc viết tay thành văn bản có thể đọc bằng máy miễn phí.
Tesseract.js là một thư viện JavaScript mã nguồn mở rất hữu ích cho phép các nhà phát triển phần mềm tích hợp chức năng nhận dạng ký tự quang học (OCR) bên trong các ứng dụng web của họ với nỗ lực và chi phí tối thiểu. OCR là quá trình chuyển đổi hình ảnh của văn bản in hoặc viết tay thành văn bản có thể đọc được bằng máy. Tesseract.js là một cổng của công cụ Tesseract OCR phổ biến, ban đầu được Hewlett-Packard phát triển vào những năm 1980 và sau đó được Google duy trì. Tesseract.js có thể nhận dạng hơn 100 ngôn ngữ, khiến nó trở thành một công cụ mạnh mẽ cho các nhà phát triển muốn thêm chức năng OCR vào các ứng dụng web của họ.
Tesseract.js rất dễ xử lý và có thể được sử dụng cho nhiều tác vụ khác nhau, chẳng hạn như trích xuất văn bản từ các tài liệu được quét, biên lai và danh thiếp, tự động hóa các tác vụ nhập dữ liệu cũng như tăng cường chức năng tìm kiếm trong các ứng dụng web. Một trong những lợi thế chính của Tesseract.js là khả năng nhận dạng văn bản ngay cả khi hình ảnh đầu vào có chất lượng hoặc độ phân giải kém. Thư viện sử dụng các thuật toán học máy để cải thiện độ chính xác của kết quả OCR. Nó cũng có thể thực hiện phân tích bố cục trang và phát hiện các vùng quan tâm trong một hình ảnh.
Tesseract.js đang trở nên phổ biến do dễ sử dụng cũng như khả năng OCR mạnh mẽ và có thể chạy trơn tru trên trình duyệt hoặc trên máy chủ với NodeJS. Nó cung cấp một API đơn giản cho phép các nhà phát triển phần mềm định cấu hình các tùy chọn OCR như ngôn ngữ, chế độ phân đoạn trang và ký tự danh sách trắng. Khả năng nhận dạng văn bản từ hình ảnh chất lượng kém và hỗ trợ nhiều ngôn ngữ khiến nó trở thành một công cụ có giá trị cho nhiều ứng dụng và là lựa chọn tuyệt vời cho các nhà phát triển muốn thêm OCR vào ứng dụng web của họ.
Bắt đầu với Tesseract.js
Cách được khuyến nghị để cài đặt Tesseract.js là sử dụng npm. Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ
Cài đặt Tesseract.js qua npm
npm install tesseract.js
Bạn cũng có thể cài đặt thủ công; tải xuống các tệp phát hành mới nhất trực tiếp từ kho lưu trữ GitHub.
Chuyển đổi hình ảnh thành văn bản thông qua API JavaScript
Thư viện JavaScript nguồn mở Tesseract.js giúp các nhà phát triển phần mềm dễ dàng làm việc với nhiều loại hình ảnh khác nhau như BMP, JPG, PNG, PBM, WebP và nhiều hơn nữa. Thư viện hỗ trợ trích xuất văn bản từ hình ảnh để tự động xử lý văn bản trên hình ảnh, PDF và tài liệu được quét. Ví dụ sau đây cho thấy cách tải hình ảnh và trích xuất văn bản từ hình ảnh đó chỉ bằng một vài dòng mã. Đối số ngôn ngữ được sử dụng để xác định dữ liệu ngôn ngữ đã được đào tạo sẽ được sử dụng trong quá trình xử lý hình ảnh. Các nhà phát triển phần mềm có thể sử dụng nhiều ngôn ngữ tại đây.
Làm thế nào để chuyển đổi hình ảnh thành văn bản bằng cách sử dụng JavaScript API?
Tesseract.recognize(
image,language,
{
logger: m => console.log(m)
}
)
.catch (err => {
console.error(err);
})
.then(result => {
console.log(result);
})
}
Đọc vùng hình ảnh & trích xuất văn bản qua API JS
Thư viện JavaScript nguồn mở đã bao gồm các tính năng rất hữu ích để đọc một vùng cụ thể bên trong hình ảnh và thu thập dữ liệu của vùng đó bên trong các ứng dụng JavaScript. API hỗ trợ thu thập vùng hình ảnh và cố gắng nhận dạng văn bản bên trong vùng này bằng công cụ OCR mạnh mẽ bên trong. Các ví dụ sau đây cho thấy cách các nhà phát triển phần mềm có thể cung cấp URL cho hình ảnh và API có thể dễ dàng phát hiện và nhận dạng văn bản trong vùng đã chọn.
Đọc và nhận dạng văn bản trong vùng được chọn của hình ảnh thông qua JS API
const { createWorker } = require('tesseract.js');
const worker = await createWorker();
const rectangle = { left: 0, top: 0, width: 500, height: 250 };
(async () => {
await worker.loadLanguage('eng');
await worker.initialize('eng');
const { data: { text } } = await worker.recognize('https://tesseract.projectnaptha.com/img/eng_bw.png', { rectangle });
console.log(text);
await worker.terminate();
})();