OCR trên các hệ thống Linux [đã đóng]


14

Tôi luôn thấy công nghệ OCR bị tụt hậu trên các hệ thống nguồn mở. Tôi cũng đã xem dự án Ocropus từ khi còn nhỏ. Tôi đã thử những gì tôi đã nghe là công cụ OCR tốt nhất có sẵn cho Linux, Tesseract và đã thấy nó thiếu tài liệu kinh doanh. Có bất kỳ triển khai OCR hứa hẹn nào khác không? Điều gì về mục tiêu thậm chí còn hy vọng hơn để giải thích chữ viết tay? Điều gì có thể trên các hệ thống * nix trong lĩnh vực này?


1
Điều này có nên được di chuyển đến softwarerecs?
Jeff Schaller

@Jeff có lẽ là không, vì nó đã gần bảy tuổi. Có nhiều chuyện xảy ra kể từ đó. Một số trong OCR ... ;-)
roaima

Câu trả lời:


4

Tesseract

Kể từ năm 2018, phần mềm OCR mã nguồn mở tốt nhất là Tesseract 4 (beta) với mô hình OCR mạng thần kinh LSTM mới của nó . Hiệu suất OCR của nó tốt hơn nhiều so với mô hình OCR trước đây được sử dụng trong phiên bản 3.

Ví dụ (tạo tệp PDF output.pdfcó lớp văn bản cho tài liệu tiếng Đức được quét):

$ echo page-*.png > input.list
$ tesseract --oem 1 -l deu input.list output pdf

In văn bản được công nhận lên thiết bị xuất chuẩn:

$ tesseract --oem 1 -l deu page page-0001.png stdout

Liệt kê các ngôn ngữ đã cài đặt:

$ tesseract --list-langs

Hỗ trợ cho khá nhiều ngôn ngữ / tập lệnh có sẵn ở dạng tập dữ liệu được đào tạo có thể tải xuống , ví dụ: thậm chí còn có tập dữ liệu cho Fraktur.

Với mô hình LSTM mới, Tesseract lấy một số cảm hứng từ dự án nghiên cứu OCRopus .

Tesseract phiên bản 3 hoạt động tương đối tệ ngay cả trên các hình ảnh đầu vào có chất lượng tốt, tức là nó thường phát hiện sai các ký tự đơn trong các pixel bụi (bên ngoài bất kỳ bối cảnh văn bản nào) và dễ dàng đưa ra các lỗi ký tự đơn trong các từ nổi tiếng.

Hình nêm

Hiệu suất OCR của Cuneiform không tệ, nhưng nó không được duy trì tích cực (phiên bản cuối năm 2011, phiên bản 1.1) và dễ dàng gặp sự cố và có một số vấn đề khác:

  • Lỗi phân đoạn với các góibản phát hành khác nhau
  • thuật toán bố trí của nó đơn giản là bị hỏng, tức là trong các đoạn văn bản một cột thường được xáo trộn ngẫu nhiên xung quanh
  • nó không lỗi ở các tùy chọn không xác định

Bạn có thể vô hiệu hóa thuật toán bố trí như thế này:

$ cuneiform --singlecolumn -l ger -f text -o foo.txt image-0001

( -lchỉ định ngôn ngữ của tài liệu nguồn)

ocrad

$ ocrad -F utf8 image-0001

Văn bản được in theo mặc định đến thiết bị xuất chuẩn.

Trong một tài liệu kinh doanh, nó đã bỏ lỡ một từ được gạch chân, trong đó chữ hình nêm / tesseract / goc không có.

chuyên chế

$ gocr image-0001

Văn bản được in theo mặc định đến thiết bị xuất chuẩn.

Phần cứng

Sane hỗ trợ rất tốt cho rất nhiều máy quét tài liệu tự động (ADF), ví dụ như cho AvisionFujitsu .

Kèm theo Sane là scanimagechương trình dòng lệnh mà bạn có thể sử dụng để xây dựng các đường ống quét theo kịch bản (ví dụ: adf2pdf.pytập lệnh của tôi ).


Tôi đã thử Cuneiform. Nó hoạt động tốt nếu bạn cần nhận dạng hình ảnh được quét (không phải ảnh). Tôi đã sử dụng Yagf như một GUI.
Sergei

3

Tôi đã tìm thấy một câu hỏi tương tự trên StackOverflowAsident OCR SDK , một trong những sản phẩm thương mại được liên kết , tự hào có phiên bản Linux.


Mặc dù liên kết này có thể trả lời câu hỏi, tốt hơn là bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi. - Từ đánh giá
Thomas

1
@Thomas liên kết là câu trả lời duy nhất có thể vì liên kết trỏ đến một công cụ cụ thể theo yêu cầu của OP. Không phải tất cả các câu trả lời chỉ liên kết là xấu. Điều này cho biết tên của một phần mềm cụ thể và một liên kết đến trang web của nó. Ngay cả khi liên kết bị hỏng, bạn vẫn có thể tìm thấy nó từ tên.
terdon

1

Có một số công cụ dòng lệnh OCR phổ biến:

  • Tesseract ( ReadMe , FAQ ) (Python)

    Cũng có sẵn cho: Tesseract .NET , Tesseract iOS

    Công cụ OCR được phát triển tại Phòng thí nghiệm HP từ năm 1985 đến năm 1995 ... và hiện tại Google. Tesseract có lẽ là công cụ OCR mã nguồn mở chính xác nhất hiện có.

    Sử dụng:

    tesseract [inputFile] [outputFile] [-l optionalLanguageFile] [PathTohOCRConfigFile]
    

    Ví dụ: Làm cho PDF có thể tìm kiếm (OCR) hiện có thông qua dòng lệnh / tập lệnh

  • GOCR

    Nhận dạng ký tự nguồn mở. Nó chuyển đổi hình ảnh được quét của văn bản trở lại tập tin văn bản. GOCR có thể được sử dụng với các giao diện người dùng khác nhau, điều này giúp dễ dàng chuyển sang các hệ điều hành và kiến ​​trúc khác nhau. Nó có thể mở nhiều định dạng hình ảnh khác nhau và chất lượng của nó đã được cải thiện hàng ngày.

  • OCRopus ™ ( FAQ ) (được viết bằng Python, NumPy và SciPy)

    Hệ thống OCR tập trung vào việc sử dụng máy học quy mô lớn để giải quyết các vấn đề trong phân tích tài liệu, bao gồm phân tích bố cục có thể cắm, nhận dạng ký tự có thể cắm, mô hình ngôn ngữ tự nhiên thống kê và khả năng đa ngôn ngữ.

    Công cụ OCRopus dựa trên hai dự án nghiên cứu: bộ nhận dạng chữ viết hiệu suất cao được phát triển vào giữa những năm 90 và được triển khai bởi Cục điều tra dân số Hoa Kỳ và các phương pháp phân tích bố cục hiệu suất cao mới lạ.

    OCRopus là sự phát triển được tài trợ bởi Google và ban đầu được dành cho các nỗ lực chuyển đổi tài liệu với khối lượng lớn, thông lượng cao. Chúng tôi hy vọng rằng nó cũng sẽ là một hệ thống OCR tuyệt vời cho nhiều ứng dụng khác.

  • Tessnet2 (Nguồn mở, OCR, Tesseract, .NET, DOTNET, C #, VB.NET, C ++ / CLI)

    Tesseract là một công cụ OCR mã nguồn mở C ++. Tessnet2 là hội đồng .NET trưng bày các phương thức rất đơn giản để thực hiện OCR. Tessnet2 theo giấy phép Apache 2 (như tesseract), có nghĩa là bạn có thể sử dụng nó như bạn muốn, được bao gồm trong các sản phẩm thương mại.

Khác đã được đề xuất: ABBYY CLI OCR cho Linux , OCR Asident .

Đọc thêm:

Để biết danh sách đầy đủ hơn, hãy kiểm tra: Danh sách phần mềm nhận dạng ký tự quang học tại Wikipedia.


0

... OCR không chỉ là "nhận dạng ký tự". Xử lý hình ảnh, tiền xử lý - phân tích trang / bố cục để tìm các văn bản, hình ảnh, bảng hoặc mã vạch. Để nhận biết, bạn phải đối phó với các phông chữ, kích cỡ và ngôn ngữ khác nhau. Điều này rất quan trọng vì để có kết quả tốt, bạn phải sử dụng từ điển và định nghĩa ngôn ngữ. Cuối cùng, mọi người mong đợi nhiều tùy chọn xuất hơn văn bản (ví dụ: XML, RTF hoặc PDF có thể tìm kiếm). Có một số tùy chọn thương mại cho SDK, nhưng chúng không rẻ và miễn phí.

Gần đây tôi đã tìm thấy CLI OCR cho Linux từ ABBYY . Có bản dùng thử miễn phí 100 trang.


0

Nếu bạn có ngân sách, tôi thực sự khuyên dùng ABBYY FineReader Engine CLI cho Linux . Công ty chúng tôi đã sử dụng nó trong ứng dụng web của chúng tôi trong một năm và chúng tôi dự định gia hạn giấy phép. Chất lượng nhận dạng rất tốt, giao diện dòng lệnh, nhận dạng bằng nhiều ngôn ngữ.


2
Sản phẩm này đã được đề cập trong một câu trả lời trước đó . Xin đừng trùng lặp câu trả lời!
David Foerster
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.