Chuyển đến nội dung

OCR không bao giờ giữ lại ảnh của bạn

Sáu công cụ đọc chữ, mã QR và mã vạch từ hình ảnh. Gói ngôn ngữ được tải từ chính trang này, và ảnh của bạn không bao giờ bị lưu trữ.

6 công cụ, không cần đăng ký, không watermark

Phần lớn các công cụ này làm một việc cho một hình ảnh. Muốn chép chữ từ một bức ảnh, hãy bắt đầu với Chuyển ảnh sang văn bản; muốn lấy chữ mà bạn không bôi chọn được trên màn hình, dùng OCR ảnh chụp màn hình; muốn một bản scan tìm kiếm được mà không thay đổi diện mạo, dùng OCR PDF. Phần ghi chú bên dưới danh sách nói về những điều khiến mọi người bất ngờ — vì sao độ phân giải quan trọng hơn dung lượng file, và khi nào trình duyệt không phải công cụ phù hợp.

Mã QR & mã vạch

2 công cụ

Xem mã QR chứa gì trước khi mở, và lấy dãy số từ mã vạch với chữ số kiểm tra đã được xác minh.

OCR thực sự làm gì, và không làm được gì

OCR nhận dạng hình dạng và trả về ký tự. Nó không đọc hiểu. Không có sự hiểu nghĩa nào đằng sau, nên một chữ “1” bị nhầm thành “l” trông chắc chắn y hệt mọi ký tự đúng xung quanh nó. Đó là lý do các trang này hiển thị độ tin cậy của chính bộ đọc bên cạnh văn bản, thay vì đưa bạn một kết quả trông sạch sẽ rồi để bạn tự đi tìm lỗi. Với chữ in rõ ràng, chụp thẳng góc và đúng nét, tỷ lệ lỗi là vài ký tự trên một nghìn. Khi bị lóa, có bóng đổ hoặc kiểu chữ khác thường, kết quả có thể tệ hơn rất nhiều, và đầu ra trông chẳng khác gì.

Có hai bộ đọc đứng sau các trang này. Bộ thứ nhất tìm chữ ở bất cứ đâu trên trang mà không cần biết đó là hệ chữ viết nào, và đọc khoảng năm mươi ngôn ngữ từ một từ điển duy nhất. Bộ thứ hai, được huấn luyện riêng cho từng ngôn ngữ, đứng phía sau và bao quát hơn 120 ngôn ngữ. Để ngôn ngữ ở chế độ tự động sẽ cho bộ thứ nhất thử trước, điều này quan trọng vì chọn sai ngôn ngữ là cách kinh điển để không nhận được gì — một thực đơn tiếng Ba Lan bị nhận là chữ Kirin và đọc thành tiếng Nga sẽ trả về một trang trống, đầy tự tin. Tự chọn ngôn ngữ sẽ gắn công việc với bộ đọc của ngôn ngữ đó, đúng thứ bạn muốn khi biết chính xác mình đang có gì.

Độ phân giải mới quan trọng, không phải dung lượng file. Bộ đọc cần chữ có một chiều cao nhất định, và mọi thứ được co giãn để đạt chiều cao đó: các trang của PDF scan được dựng ở 300 DPI để đọc, còn một hình ảnh được đo từ chính nét mực thay vì từ kích thước ảnh, rồi phóng to hoặc thu nhỏ cho phù hợp. Chữ trên màn hình là trường hợp mọi người hay hiểu sai — ở cỡ bình thường một chữ cao khoảng mười pixel, chỉ bằng chừng một phần ba mức bộ đọc cần, nên ảnh chụp màn hình được phóng to trước khi đọc. Dưới khoảng tám pixel mỗi chữ thì không còn chi tiết nào để phóng to, và không cách xử lý nào tự tạo ra được. Ở chiều ngược lại, ảnh chụp thực đơn 48 megapixel không chính xác hơn một ảnh nhỏ mà sắc nét; quá một ngưỡng nào đó, thêm pixel chỉ tốn thời gian mà chẳng được gì.

Ảnh nghiêng và ánh sáng không đều gây hại nhiều hơn vẻ bề ngoài. Một trang giấy được chụp thường lệch một hai độ và được chiếu sáng từ một phía, nên Chuyển ảnh sang văn bản và Scan tài liệu đo góc lệch đó trên toàn trang rồi xoay thẳng lại, sau đó ước lượng độ sáng của phần giấy phía sau nét mực theo từng vùng và nâng lên thành một màu trắng đồng đều. Đó không phải chuyện thẩm mỹ. Đường kẻ thẳng là thứ giúp một bảng được nhận ra dưới dạng lưới, và độ tương phản đều là thứ ngăn bóng bàn tay bạn bị đọc thành nét mực. Ảnh chụp màn hình không được xử lý theo cả hai cách này, và đó là chủ ý: nó vốn đã thẳng và sáng đều, xử lý như ảnh chụp chỉ làm tăng lỗi.

Bảng và bố cục nhiều cột mới là trường hợp thực sự khó, và các con số đáng để biết. Khi đọc cả trang như văn xuôi, một biểu mẫu có kẻ đường làm chữ trong ô tràn sang cột bên cạnh và mất một phần ba số nhãn — mười lăm đến hai mươi phần trăm ký tự bị sai. Tìm đường kẻ trước rồi đọc riêng từng ô đã hạ con số đó xuống khoảng năm phần trăm. Vì vậy một bảng có đường kẻ rõ ràng được nhận ra dưới dạng lưới và trả về thành các hàng phân tách bằng tab, dán thẳng vào bảng tính được, còn các cột văn xuôi được đọc theo thứ tự đọc thay vì đọc ngang qua trang. Bảng chỉ được căn bằng khoảng trắng thì không có đường kẻ nào để tìm, và việc dán ra có giữ được bố cục hay không là nhờ may mắn chứ không phải do thiết kế.

PDF tìm kiếm được và văn bản trích xuất là hai thứ khác nhau. OCR PDF và Scan tài liệu giữ nguyên hình ảnh như cũ và đặt các từ đã nhận dạng ẩn lên trên: trang trông giống hệt, Ctrl+F bắt đầu tìm được chữ, và bạn có thể bôi chọn và sao chép. Không có gì bị vẽ lên trang — điều đó cũng có nghĩa là một chỗ đọc sai sẽ nằm ẩn trong một tài liệu trông hoàn hảo. Chuyển ảnh sang văn bản và OCR ảnh chụp màn hình làm ngược lại: bạn nhận được các ký tự và không gì khác, không kiểu chữ, không màu sắc, không chữ đậm và không có hình ảnh. Một lưu ý về lớp văn bản, vì rất dễ bỏ sót — nó chỉ chứa được những ký tự mà một phông chữ đi kèm viết được, nên các từ tiếng Trung, Nhật và Hàn được đếm cho bạn thay vì được ghi vào, cho đến khi có phông chữ cho các ngôn ngữ này.

Khi nào trình duyệt thực sự không phải công cụ phù hợp

Hình ảnh không bao giờ rời khỏi thiết bị của bạn là toàn bộ lý do để đọc nó ở đây, và cái giá là độ chính xác với tài liệu khó. Sự đánh đổi đó là có thật, và đáng được nói thẳng thay vì giấu đi.

Chữ viết tay liền nét không được nhận dạng — ở đây, hay ở bất kỳ công cụ OCR phổ thông nào. Đây là các bộ đọc chữ in: chúng nhận dạng hình dạng từng chữ cái, còn chữ viết liền không có hình dạng chữ cái tách rời để nhận dạng. Chữ viết tay dạng in tách rời thường cho kết quả đủ tốt để sửa lại thay vì gõ lại — chữ in hoa, biểu mẫu điền tay, một ghi chú viết cẩn thận — đó là lý do có Nhận dạng chữ viết tay và vì sao nó đặt con số độ tin cậy cạnh văn bản. Đọc chữ viết liền đúng cách cần một bộ đọc được huấn luyện riêng cho chữ viết tay, và những bộ tốt đều chạy trên máy chủ chứ không trong một tab trình duyệt.

OCR trên đám mây sẽ làm tốt hơn với tài liệu khó. Google, Amazon và Microsoft vận hành các bộ nhận dạng được huấn luyện trên lượng dữ liệu lớn hơn nhiều so với mức một tab trình duyệt chứa được, và với ảnh chụp kém, trang nhiều cột dày đặc, kiểu chữ khác thường hay biểu mẫu đã điền, chúng sẽ chính xác hơn thấy rõ. Một phần mềm trả phí trên máy tính như ABBYY FineReader cũng vậy. Nếu độ chính xác trên một tài liệu khó quan trọng hơn việc tài liệu nằm yên trên máy của bạn, hãy dùng một trong số đó — đó là sự so sánh trung thực, và là tiêu chí bạn nên dựa vào để lựa chọn.

Xử lý hàng loạt thuộc về dòng lệnh. Các công cụ này đọc một tài liệu mỗi khi có người nhấn nút. Hai nghìn bản scan theo lịch là việc của một công cụ OCR trên máy tính như OCRmyPDF, công cụ thêm lớp văn bản cho cả một thư mục PDF chỉ bằng một lệnh — miễn phí, cùng kiểu nhận dạng mà không cần bấm nút nào.

Có những việc đơn giản là không làm. Phối cảnh không được chỉnh: một trang chụp từ bên cạnh vẫn giữ hình thang và chỉ có góc xoay được sửa, nên chụp thẳng từ trên xuống đáng để bỏ thêm một giây. Nếp gấp nặng, hay chỗ cong gần gáy sách, vẫn giữ nguyên độ cong. Và ở đây không có camera — các công cụ đọc mã giải mã một hình ảnh bạn đã có, không phải hình ảnh trực tiếp.

Một cái giá thực tế của việc chạy ngay trên máy: bộ đọc và gói ngôn ngữ được tải từ trang này ở lần đầu bạn dùng một ngôn ngữ, khoảng vài megabyte, khiến lần chạy đầu chậm hơn các lần sau. Không có gì được tải từ CDN của bên nào khác, và không có gì được gửi ngược lại.

Chọn giữa những công cụ nghe na ná nhau

Chuyển ảnh sang văn bản và OCR ảnh chụp màn hình. Cùng một bộ đọc, xử lý ảnh khác nhau, và sự khác biệt không chỉ là bề ngoài. Ảnh chụp được xoay thẳng và cân lại ánh sáng; ảnh chụp màn hình được phóng to và giữ nguyên phần còn lại, vì nó không bị nghiêng hay sáng không đều, và xử lý như thể có sẽ làm kết quả tệ hơn. OCR ảnh chụp màn hình còn nhận ảnh dán vào — Ctrl+V, hoặc Cmd+V trên Mac, thẳng từ clipboard, không cần lưu ra ổ đĩa trước.

Chuyển ảnh sang văn bản và Scan tài liệu. Chuyển ảnh sang văn bản cho bạn các từ và bỏ hình ảnh đi. Scan tài liệu giữ lại hình ảnh, xoay thẳng, làm trắng phần giấy phía sau nét mực và cho bạn một file PDF trông như bản scan — có thể kèm lớp văn bản ẩn phía sau. Nếu bạn muốn dán chữ vào đâu đó, dùng công cụ thứ nhất. Nếu bạn muốn gửi tài liệu cho ai đó, dùng công cụ thứ hai.

Scan tài liệu và OCR PDF. Scan tài liệu bắt đầu từ ảnh chụp và tạo ra file PDF. OCR PDF bắt đầu từ một file PDF đã có và thêm lớp văn bản vào đó. Cả hai đều không thay đổi diện mạo các trang. Chụp ảnh một bản hợp đồng thì bạn cần công cụ thứ nhất; nhận bản scan qua email thì bạn cần công cụ thứ hai.

Nhận dạng chữ viết tay và Chuyển ảnh sang văn bản. Cùng một bộ đọc, với bộ tìm bảng được tắt đi và con số độ tin cậy được đặt ở vị trí nổi bật xứng đáng, vì với chữ viết tay, con số đó là phần hữu ích của kết quả. Nếu chữ viết liền nét thì cả hai trang đều không đọc được, và trang chữ viết tay sẽ nói rõ điều đó thay vì trả về một kết quả nghe hợp lý nhưng vô nghĩa.

Quét mã QR và Đọc mã vạch. Mã vuông và mã sọc, và đáng để biết mình đang cầm loại nào. Trang QR đọc QR, Micro QR, Data Matrix, Aztec và PDF417 — bao gồm cả thẻ lên máy bay và giấy phép lái xe, những loại mã có định dạng vuông ngay cả khi trông như một vệt chấm nhòe. Trang mã vạch đọc các định dạng sọc dùng trong bán lẻ và logistics — EAN, UPC, Code 128, Code 39, ITF — và kiểm tra chữ số kiểm tra, chữ số cuối cùng được tính từ các chữ số còn lại, thứ phân biệt một dãy số đáng tin với một dãy số chỉ trông có vẻ đúng. Cả hai đều không phải OCR: mã là một ký hiệu có hình học xác định, nên giải mã nó là phép tính chứ không phải phỏng đoán hình dạng chữ. Chúng cũng hỏng theo cách khác nhau. Mã vuông có sửa lỗi và vẫn đọc được khi bị xước hay có logo in đè ở giữa; mã sọc thì hoàn toàn không có, nên vệt lóa vắt ngang các sọc nghĩa là không đọc được chứ không phải ra một số sai.

Nền tảng của các công cụ này

Các engine mã nguồn mở thực hiện công việc, và các đặc tả kỹ thuật mà chúng tuân theo.

  • TesseractApache-2.0 — nhận dạng văn bản bằng hơn 120 ngôn ngữ, với các gói ngôn ngữ được cung cấp từ trang web này.
  • ZXingApache-2.0 — đọc mã QR và mã vạch.
  • QR code specification (Denso Wave)Specification — công bố các kích thước phiên bản và mức sửa lỗi, từ chính nhà phát minh ra định dạng.

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

Ảnh hay tài liệu của tôi có bị lưu trữ ở đâu không?

Không. Bộ đọc và gói ngôn ngữ được tải từ trang này ở lần đầu bạn dùng một ngôn ngữ, còn bản thân hình ảnh không bao giờ bị gửi đi đâu — nên sau lần tải đầu tiên đó, công cụ vẫn hoạt động dù tắt Wi-Fi, và không có gì bị lưu trữ ở đâu cả. Điều này quan trọng nhất ở các trang đọc mã, vì một mã QR có thể chứa mật khẩu Wi-Fi, yêu cầu thanh toán hoặc khóa bí mật xác thực hai lớp.

Độ chính xác đến đâu?

Với chữ in rõ ràng, chụp thẳng góc và đúng nét, sai vài ký tự trên một nghìn. Độ chính xác giảm khi ảnh bị mờ, lóa, độ tương phản thấp, kiểu chữ khác thường hoặc chữ in đè lên hình ảnh. Con số độ tin cậy được hiển thị cạnh văn bản thay vì để bạn tự đoán, và khi con số thấp thì gần như luôn là do hình ảnh: thêm ánh sáng, bớt góc nghiêng và để chữ lấp đầy khung hình sẽ khắc phục phần lớn.

Có đọc được chữ viết tay không?

Chữ viết tay dạng in tách rời thì thường được, chữ viết liền thì không. Đó không phải giới hạn của riêng trang này: các công cụ OCR phổ thông được huấn luyện trên chữ in và nhận dạng hình dạng từng chữ cái, còn chữ viết liền không có hình dạng chữ cái tách rời để nhận dạng. Nhận dạng chữ viết tay là trang nói thẳng điều đó và cho bạn xem những gì nó đọc được, hữu ích hơn một câu trả lời sai đầy tự tin.

Đọc được những ngôn ngữ nào?

Hơn 120 ngôn ngữ, gồm tiếng Anh, Bengal, Hindi, Urdu, Ả Rập, Tây Ban Nha, Pháp, Đức, Bồ Đào Nha, Nga, Trung, Nhật và Hàn. Hệ chữ viết được xác định từ chính hình ảnh; khi nhiều ngôn ngữ dùng chung một hệ chữ — Latinh, Kirin, Ả Rập, Devanagari — ngôn ngữ của trình duyệt sẽ quyết định, và bạn luôn có thể đổi lại.

Công cụ có dùng camera của tôi không?

Không, và không có quyền truy cập nào cần cấp. Mọi công cụ ở đây đọc một hình ảnh bạn đã có — ảnh trong thư viện ảnh, ảnh chụp màn hình, file ai đó gửi cho bạn. Nếu mã hoặc trang giấy đang ở trước mặt bạn, hãy chụp ảnh trước rồi thả ảnh vào.

Bảng có ra đúng dạng bảng không?

Nếu có đường kẻ rõ ràng thì có: lưới được tìm ra trước và từng ô được đọc riêng, nên nhãn không bị dính vào giá trị của nó, và kết quả là các hàng phân tách bằng tab, dán thẳng vào bảng tính được. Bảng chỉ căn bằng khoảng trắng, không có đường kẻ, được đọc thành các cột chữ theo thứ tự đọc, thường vẫn giữ được khi dán nhưng không đảm bảo.