Bỏ qua đến nội dung
LeedyBox
Ủng hộ

Cách trích xuất văn bản từ ảnh bằng OCR

OCR (nhận dạng ký tự quang học) biến chữ trong ảnh chụp, ảnh chụp màn hình hoặc bản quét thành văn bản mà bạn có thể sao chép và chỉnh sửa. Hướng dẫn này giải thích những yếu tố ảnh hưởng đến kết quả và cách thu được văn bản sạch hơn.

OCR hoạt động như thế nào

Trước tiên, engine OCR chuyển ảnh sang đen trắng để chữ nổi bật khỏi nền. Sau đó, nó phân tích bố cục, tìm các khối văn bản, dòng và từ. Cuối cùng, một mô hình nhận dạng ước đoán mỗi từ gồm những ký tự nào.

Công cụ của LeedyBox sử dụng Tesseract, một engine OCR mã nguồn mở, thông qua Tesseract.js. Mô hình nhận dạng của nó là một mạng nơ-ron được huấn luyện trên chữ in, với dữ liệu riêng cho từng ngôn ngữ. Engine cũng báo cáo độ tin cậy cho từng từ, và công cụ hiển thị giá trị trung bình cho mỗi ảnh.

Chọn ngôn ngữ

Thiết lập ngôn ngữ cho engine biết cần chờ đợi những ký tự và từ nào. Đọc văn bản tiếng Hàn, tiếng Nhật hoặc tiếng Nga bằng mô hình tiếng Anh sẽ cho ra một chuỗi vô nghĩa gồm các chữ cái Latinh trông na ná, còn với các ngôn ngữ dùng chung bảng chữ cái, mô hình đúng sẽ xử lý dấu và các từ thông dụng tốt hơn.

Nếu ảnh có lẫn hai ngôn ngữ, ví dụ tài liệu tiếng Hàn kèm tên sản phẩm tiếng Anh, hãy chọn cả hai. Chỉ thêm ngôn ngữ thứ hai khi văn bản cần đến: mỗi ngôn ngữ thêm vào làm việc nhận dạng chậm hơn và khiến engine có thêm nhiều ký tự dễ nhầm lẫn.

ẢnhNgôn ngữBố cục văn bản
Trang tài liệu hoặc bài viết bằng một ngôn ngữNgôn ngữ đóTự động
Thực đơn, trang trình chiếu hoặc nhãn có chữ bản địa lẫn từ tiếng AnhNgôn ngữ bản địa + tiếng AnhTự động
Đoạn văn đã cắt nhưng các dòng ra sai thứ tựNgôn ngữ đóMột khối văn bản
Một dòng, như tiêu đề, số sê-ri hoặc biển hiệuNgôn ngữ đóMột dòng văn bản

Mẹo về chất lượng ảnh

  • Độ phân giải: chữ nhỏ trong ảnh độ phân giải thấp là nguyên nhân gây lỗi phổ biến nhất. Phóng to ảnh giúp ích phần nào, vì thế công cụ của LeedyBox có thể đọc lại ảnh nhỏ ở kích thước gấp đôi, nhưng không thể khôi phục chi tiết mà ảnh không có. Chữ quá lớn cũng có thể bị đọc kém chính xác hơn.
  • Độ tương phản: chữ tối trên nền sáng trơn cho kết quả tốt nhất. Chữ in mờ, chữ màu xám, nền có màu và bóng đổ khiến việc tách chữ khó hơn. Tùy chọn thang độ xám và tăng tương phản có thể giúp ích với chữ mờ, nhưng hãy so sánh kết quả, vì nó cũng có thể làm kết quả với ảnh rõ nét kém đi.
  • Chữ thẳng hàng: chữ bị nghiêng, cong hoặc méo phối cảnh, chẳng hạn trang sách chụp xiên, dẫn đến các dòng bị dính vào nhau và ký tự bị sai. Hãy xoay hoặc chụp lại ảnh nếu chữ bị nghiêng rõ rệt.
  • Cắt ảnh: cắt ảnh chỉ giữ phần văn bản bạn cần. Logo, hình ảnh, đường viền và các cột bên cạnh có thể bị nhầm thành ký tự và làm rối thứ tự đọc.
  • Nén: nén JPG mạnh làm chữ bị nhòe vì lỗi nén. Hãy lưu ảnh chụp màn hình dưới dạng PNG khi có thể; xem JPG, PNG, WebP hay AVIF.

Ảnh chụp màn hình và ảnh chụp

Ảnh chụp màn hình sắc nét và thẳng nên thường cho kết quả tốt. Điểm yếu chính là kích thước: chữ trên giao diện thường chỉ cao vài pixel. Hãy phóng to trang hoặc ứng dụng trước khi chụp màn hình, và đừng thu nhỏ ảnh chụp màn hình sau đó. Bạn có thể dán ảnh chụp màn hình thẳng vào công cụ bằng Ctrl+V (⌘+V trên Mac).

Ảnh chụp có thêm các vấn đề như ánh sáng không đều, lóa, mờ, méo phối cảnh và trang giấy bị cong. Hãy giữ máy ảnh song song với trang giấy, để văn bản lấp đầy khung hình, dùng ánh sáng đều không bị lóa đèn flash và chạm để lấy nét. Hướng ảnh do máy ảnh ghi lại được áp dụng trước khi đọc, nên ảnh chụp khi cầm điện thoại nằm ngang vẫn được đọc đúng chiều.

Với tệp PDF, hãy dùng PDF sang văn bản thay vì chuyển các trang thành ảnh: công cụ này đọc lớp văn bản có sẵn và chỉ chạy OCR trên những trang không có lớp văn bản. Hướng dẫn Trích xuất văn bản từ PDF: lớp văn bản và OCR đề cập đến PDF quét.

Chữ viết tay và phông chữ cách điệu

Các mô hình dùng ở đây được huấn luyện trên chữ in, nên chữ viết tay thường được nhận dạng kém. Chữ in hoa viết rõ ràng, tách rời có khả năng thành công cao nhất; chữ viết liền nét và chữ ký hiếm khi cho kết quả dùng được. Phông chữ trang trí, phông chữ kiểu viết tay hoặc phông rất hẹp, chữ trên nền có hoa văn và chữ viết dọc cũng gây ra vấn đề tương tự.

Kiểm tra và sửa kết quả

Hãy xem kết quả OCR như một bản nháp. Các lỗi điển hình gồm nhầm 0 với O, nhầm giữa 1, l và I, hoặc “rn” với “m”; thiếu hoặc sai dấu thanh, dấu phụ và dấu câu; từ bị dính vào nhau hoặc bị tách ở cuối dòng; và các dòng từ những cột cạnh nhau bị trộn lẫn. Bảng và bố cục nhiều cột không được giữ nguyên: kết quả là văn bản thuần.

Hãy đối chiếu văn bản với ảnh, đặc biệt chú ý đến các con số, tên, ngày tháng, số tiền và địa chỉ, nơi chỉ một ký tự sai cũng gây ảnh hưởng. Độ tin cậy cao không chứng minh rằng văn bản là chính xác. Bạn có thể chỉnh sửa văn bản ngay trong công cụ trước khi sao chép hoặc tải về.

Quyền riêng tư: những gì ở lại trên thiết bị của bạn

Công cụ của LeedyBox chạy engine OCR trong trình duyệt của bạn: ảnh được đọc trên thiết bị của bạn và không được tải lên LeedyBox. Trình duyệt tải thư viện Tesseract.js, engine WebAssembly của nó và dữ liệu của từng ngôn ngữ bạn chọn trực tiếp từ leedybox.com. Đây là những lượt tải tệp thông thường và không kèm theo ảnh của bạn. Tesseract.js lưu dữ liệu ngôn ngữ trong bộ nhớ của trình duyệt (IndexedDB) để không phải tải lại; xóa dữ liệu trang web trong trình duyệt sẽ xóa dữ liệu này.

Câu hỏi thường gặp

Vì sao ảnh đầu tiên được xử lý chậm?

Lần đầu bạn dùng một ngôn ngữ, engine OCR và dữ liệu ngôn ngữ (vài megabyte) sẽ được tải về. Các ảnh sau dùng lại chúng, và dữ liệu ngôn ngữ được giữ trong bộ nhớ của trình duyệt cho những lần truy cập sau.

OCR có giữ được bố cục của tài liệu không?

Công cụ trích xuất văn bản thuần kèm ngắt dòng. Cột, bảng, phông chữ và định dạng phải được dựng lại thủ công trong trình soạn thảo của bạn.

Vì sao công cụ không tìm thấy chữ nào?

Thường là do chữ quá nhỏ hoặc quá mờ, hoặc chọn sai ngôn ngữ. Hãy cắt ảnh sát phần văn bản, kiểm tra ngôn ngữ hoặc thử một thiết lập bố cục văn bản khác.