Nhận dạng ký tự quang học (OCR) biến hình ảnh văn bản—bản quét, ảnh chụp từ điện thoại thông minh, PDF—thành các chuỗi máy có thể đọc được và, ngày càng nhiều, dữ liệu có cấu trúc. OCR hiện đại là một quy trình làm sạch hình ảnh, tìm văn bản, đọc nó và xuất siêu dữ liệu phong phú để các hệ thống hạ nguồn có thể tìm kiếm, lập chỉ mục hoặc trích xuất các trường. Hai tiêu chuẩn đầu ra được sử dụng rộng rãi là hOCR, một định dạng vi mô HTML cho văn bản và bố cục, và ALTO XML, một lược đồ hướng thư viện/lưu trữ; cả hai đều bảo toàn vị trí, thứ tự đọc và các tín hiệu bố cục khác và được hỗ trợ bởi các công cụ phổ biến như Tesseract.
Tiền xử lý. Chất lượng OCR bắt đầu bằng việc dọn dẹp hình ảnh: chuyển đổi thang độ xám, khử nhiễu, ngưỡng (nhị phân hóa), và chỉnh lệch. Các hướng dẫn OpenCV kinh điển bao gồm toàn cục, thích ứng và Otsu ngưỡng—những yếu tố chính cho các tài liệu có ánh sáng không đồng đều hoặc biểu đồ hai mode. Khi độ sáng thay đổi trong một trang (hãy nghĩ đến ảnh chụp bằng điện thoại), các phương pháp thích ứng thường hoạt động tốt hơn một ngưỡng toàn cục duy nhất; Otsu tự động chọn một ngưỡng bằng cách phân tích biểu đồ. Chỉnh sửa độ nghiêng cũng quan trọng không kém: chỉnh lệch dựa trên Hough (Biến đổi dòng Hough) kết hợp với nhị phân hóa Otsu là một công thức phổ biến và hiệu quả trong các quy trình tiền xử lý sản xuất.
Phát hiện và nhận dạng. OCR thường được chia thành phát hiện văn bản (văn bản ở đâu ?) và nhận dạng văn bản (nó nói gì?). Trong các cảnh tự nhiên và nhiều bản quét, các bộ phát hiện tích chập hoàn toàn như EAST dự đoán hiệu quả các tứ giác ở cấp độ từ hoặc dòng mà không cần các giai đoạn đề xuất nặng nề và được triển khai trong các bộ công cụ phổ biến (ví dụ: hướng dẫn phát hiện văn bản của OpenCV). Trên các trang phức tạp (báo, biểu mẫu, sách), việc phân đoạn các dòng/vùng và suy luận thứ tự đọc rất quan trọng:Kraken triển khai phân đoạn vùng/dòng truyền thống và phân đoạn đường cơ sở thần kinh, với sự hỗ trợ rõ ràng cho các tập lệnh và hướng khác nhau (LTR/RTL/dọc).
Mô hình nhận dạng. Công cụ mã nguồn mở cổ điển Tesseract (do Google mở nguồn, có nguồn gốc từ HP) đã phát triển từ một bộ phân loại ký tự thành một bộ nhận dạng chuỗi dựa trên LSTM và có thể phát hành các tệp PDF có thể tìm kiếm, đầu ra thân thiện với hOCR/ALTO, và nhiều hơn nữa từ CLI. Các bộ nhận dạng hiện đại dựa vào mô hình hóa chuỗi mà không cần các ký tự được phân đoạn trước. Phân loại thời gian kết nối (CTC) vẫn là nền tảng, học các sự sắp xếp giữa các chuỗi đặc trưng đầu vào và chuỗi nhãn đầu ra; nó được sử dụng rộng rãi trong các quy trình xử lý chữ viết tay và văn bản cảnh.
Trong vài năm qua, Transformers đã định hình lại OCR. TrOCR sử dụng một bộ mã hóa Vision Transformer cộng với một bộ giải mã Text Transformer, được đào tạo trên các kho ngữ liệu tổng hợp lớn sau đó được tinh chỉnh trên dữ liệu thực, với hiệu suất mạnh mẽ trên các tiêu chuẩn văn bản in, viết tay và cảnh (xem thêm tài liệu Hugging Face). Song song đó, một số hệ thống bỏ qua OCR để hiểu biết hạ nguồn: Donut (Document Understanding Transformer) là một bộ mã hóa-giải mã không có OCR, trực tiếp xuất ra các câu trả lời có cấu trúc (như JSON khóa-giá trị) từ tài liệu hình ảnh (repo, thẻ mô hình), tránh tích lũy lỗi khi một bước OCR riêng biệt cung cấp cho một hệ thống IE.
Nếu bạn muốn đọc văn bản có sẵn trên nhiều tập lệnh, EasyOCR cung cấp một API đơn giản với hơn 80 mô hình ngôn ngữ, trả về các hộp, văn bản và độ tin cậy—tiện dụng cho các nguyên mẫu và các tập lệnh không phải tiếng Latinh. Đối với các tài liệu lịch sử, Kraken tỏa sáng với phân đoạn đường cơ sở và thứ tự đọc nhận biết tập lệnh; để đào tạo cấp dòng linh hoạt, Calamari xây dựng trên dòng dõi Ocropy (Ocropy) với các bộ nhận dạng (đa)LSTM+CTC và một CLI để tinh chỉnh các mô hình tùy chỉnh.
Sự khái quát hóa phụ thuộc vào dữ liệu. Đối với chữ viết tay, Cơ sở dữ liệu chữ viết tay IAM cung cấp các câu tiếng Anh đa dạng về người viết để đào tạo và đánh giá; đó là một bộ tham chiếu lâu đời cho nhận dạng dòng và từ. Đối với văn bản cảnh, COCO-Text đã xếp lớp các chú thích mở rộng trên MS-COCO, với các nhãn cho văn bản in/viết tay, dễ đọc/khó đọc, tập lệnh và bản ghi đầy đủ (xem thêm trang dự án ban đầu). Lĩnh vực này cũng phụ thuộc nhiều vào việc đào tạo trước tổng hợp: SynthText in the Wild kết xuất văn bản thành các bức ảnh với hình học và ánh sáng thực tế, cung cấp khối lượng dữ liệu khổng lồ để đào tạo trước các bộ phát hiện và nhận dạng (tham khảo mã và dữ liệu).
Các cuộc thi dưới chiếc ô Đọc mạnh mẽ của ICDAR giữ cho việc đánh giá có cơ sở. Các nhiệm vụ gần đây nhấn mạnh việc phát hiện/đọc từ đầu đến cuối và bao gồm việc liên kết các từ thành các cụm từ, với mã chính thức báo cáo độ chính xác/độ thu hồi/F-score, giao nhau trên hợp nhất (IoU), và các số liệu khoảng cách chỉnh sửa cấp ký tự—phản ánh những gì các nhà thực hành nên theo dõi.
OCR hiếm khi kết thúc ở văn bản thuần túy. Các kho lưu trữ và thư viện số thích ALTO XML vì nó mã hóa bố cục vật lý (các khối/dòng/từ có tọa độ) cùng với nội dung, và nó kết hợp tốt với bao bì METS. hOCR định dạng vi mô, ngược lại, nhúng cùng một ý tưởng vào HTML/CSS bằng cách sử dụng các lớp như ocr_line và ocrx_word, giúp dễ dàng hiển thị, chỉnh sửa và chuyển đổi bằng các công cụ web. Tesseract phơi bày cả hai—ví dụ: tạo hOCR hoặc PDF có thể tìm kiếm trực tiếp từ CLI (hướng dẫn xuất PDF); Các trình bao bọc Python như pytesseract thêm sự tiện lợi. Các bộ chuyển đổi tồn tại để dịch giữa hOCR và ALTO khi các kho lưu trữ có các tiêu chuẩn nhập liệu cố định —xem danh sách được tuyển chọn này của công cụ định dạng tệp OCR.
Xu hướng mạnh mẽ nhất là sự hội tụ: phát hiện, nhận dạng, mô hình hóa ngôn ngữ và thậm chí cả giải mã cho tác vụ cụ thể đang hợp nhất thành các ngăn xếp Transformer thống nhất. Đào tạo trước trên các kho ngữ liệu tổng hợp lớn vẫn là một hệ số nhân. Các mô hình không có OCR sẽ cạnh tranh quyết liệt ở bất cứ đâu mục tiêu là các đầu ra có cấu trúc thay vì các bản ghi nguyên văn. Cũng mong đợi các triển khai kết hợp: một bộ phát hiện nhẹ cộng với một bộ nhận dạng kiểu TrOCR cho văn bản dạng dài, và một mô hình kiểu Donut cho các biểu mẫu và biên lai.
Tesseract (GitHub) · Tài liệu Tesseract · Thông số kỹ thuật hOCR · Nền tảng ALTO · Bộ phát hiện EAST · Phát hiện văn bản OpenCV · TrOCR · Donut · COCO-Text · SynthText · Kraken · Calamari OCR · ICDAR RRC · pytesseract · Chữ viết tay IAM · Công cụ định dạng tệp OCR · EasyOCR
Optical Character Recognition (OCR) là một công nghệ được sử dụng để chuyển đổi các loại tài liệu khác nhau, như tài liệu giấy đã quét, tệp PDF hoặc hình ảnh được chụp bằng máy ảnh số, thành dữ liệu có thể chỉnh sửa và tìm kiếm.
OCR hoạt động bằng cách quét hình ảnh hoặc tài liệu đầu vào, phân đoạn hình ảnh thành các ký tự riêng lẻ, và so sánh từng ký tự với cơ sở dữ liệu hình dạng ký tự bằng cách sử dụng nhận dạng mô hình hoặc nhận dạng đặc trưng.
OCR được sử dụng trong nhiều lĩnh vực và ứng dụng, bao gồm số hóa tài liệu in, kích hoạt các dịch vụ văn bản thành giọng nói, tự động hóa quá trình nhập dữ liệu, và hỗ trợ người dùng khiếm thị tương tác tốt hơn với văn bản.
Mặc dù đã có những tiến bộ vượt bậc trong công nghệ OCR, nhưng nó không phải lúc nào cũng hoàn hảo. Độ chính xác có thể thay đổi tùy thuộc vào chất lượng của tài liệu gốc và chi tiết của phần mềm OCR đang được sử dụng.
Mặc dù OCR chủ yếu được thiết kế cho văn bản in, một số hệ thống OCR tiên tiến cũng có thể nhận dạng được chữ viết tay rõ ràng, nhất quán. Tuy nhiên, nhận dạng chữ viết tay thường kém chính xác hơn do sự biến đổi lớn trong các kiểu viết của mỗi người.
Có, nhiều hệ thống phần mềm OCR có thể nhận dạng được nhiều ngôn ngữ. Tuy nhiên, điều quan trọng là phải đảm bảo rằng ngôn ngữ cụ thể đó được hỗ trợ bởi phần mềm bạn đang sử dụng.
OCR là viết tắt của Optical Character Recognition và được sử dụng để nhận dạng văn bản in, trong khi ICR, hoặc Intelligent Character Recognition, tiên tiến hơn và được sử dụng để nhận dạng văn bản viết tay.
OCR hoạt động tốt nhất với các phông chữ rõ ràng, dễ đọc và kích cỡ văn bản chuẩn. Mặc dù nó có thể hoạt động với các phông chữ và kích cỡ khác nhau, độ chính xác thường giảm khi đối phó với phông chữ không thông thường hoặc kích cỡ văn bản rất nhỏ.
OCR có thể gặp khó khăn với các tài liệu độ phân giải thấp, phông chữ phức tạp, văn bản in kém, chữ viết tay, và các tài liệu có nền gây ra sự can thiệp với văn bản. Ngoài ra, mặc dù nó có thể hoạt động với nhiều ngôn ngữ, nó có thể không bao phủ hoàn hảo mọi ngôn ngữ.
Có, OCR có thể quét văn bản màu và nền màu, mặc dù nó thường hiệu quả hơn với các sự kết hợp màu đối lập cao, như văn bản đen trên nền trắng. Độ chính xác có thể giảm khi màu văn bản và màu nền không có đủ độ tương phản.
PCX ảnh định dạng, đứng cho 'Trao đổi hình ảnh,' là một raster đồ họa tập tin định dạng đó là chủ yếu sử dụng trên DOS và Windows dựa trên máy tính trong cuối 1980s và 1990s. Phát triển bởi ZSoft Corporation, nó là một trong những đầu tiên rộng rãi chấp nhận định dạng cho màu hình ảnh trên IBM PC tương thích máy tính. Các PCX định dạng được biết đến với sự đơn giản và dễ dàng thực hiện, mà đóng góp để rộng rãi của nó áp dụng trong những ngày đầu của cá nhân máy tính. Nó là đặc biệt phổ biến cho của nó sử dụng trong phần mềm chẳng hạn như Microsoft Paintbrush, mà sau này trở thành Microsoft Sơn, và cũng được sử dụng cho màn hình chụp, máy quét đầu ra, và máy tính để bàn hình nền.
Các PCX tập tin định dạng được thiết kế để đại diện quét hình ảnh và khác các loại của hình ảnh dữ liệu. Nó hỗ trợ khác nhau màu độ sâu, bao gồm đơn sắc, 2-màu sắc, 4-màu sắc, 16-màu sắc, 256-màu sắc, và 24-bit đúng màu hình ảnh. Các định dạng cho phép cho một phạm vi của độ phân giải và khía cạnh tỷ lệ, làm cho nó linh hoạt cho khác nhau hiển thị thiết bị và in ấn yêu cầu. Mặc dù của nó linh hoạt, các PCX định dạng có đã phần lớn thay thế bởi hiện đại hơn hình ảnh định dạng chẳng hạn như JPEG, PNG, và GIF, mà cung cấp tốt hơn nén và màu sắc hỗ trợ. Tuy nhiên, hiểu các PCX định dạng là vẫn có liên quan cho những người đối phó với di sản hệ thống hoặc kỹ thuật số lưu trữ mà chứa PCX tập tin.
Một PCX tập tin bao gồm một tiêu đề, hình ảnh dữ liệu, và một tùy chọn 256-màu sắc bảng màu. Các tiêu đề là 128 byte dài và chứa quan trọng thông tin về hình ảnh, chẳng hạn như các phiên bản của các PCX định dạng sử dụng, các hình ảnh kích thước, các số của màu sắc máy bay, các số của bit mỗi pixel mỗi màu sắc máy bay, và các mã hóa phương pháp. Các mã hóa phương pháp sử dụng trong PCX tập tin là chạy-chiều dài mã hóa (RLE), mà là một đơn giản hình thức của lossless dữ liệu nén mà làm giảm các tập tin kích thước mà không hy sinh hình ảnh chất lượng. RLE làm việc bởi nén trình tự của giống hệt byte vào một duy nhất byte theo sau bởi một đếm byte, mà chỉ ra các số của lần các byte nên được lặp lại.
Các hình ảnh dữ liệu trong một PCX tập tin là tổ chức vào máy bay, với mỗi máy bay đại diện cho một khác nhau màu sắc thành phần. Ví dụ, một 24-bit màu sắc hình ảnh sẽ có ba máy bay, một mỗi cho màu đỏ, màu xanh lá cây, và màu xanh thành phần. Các dữ liệu trong mỗi máy bay là mã hóa sử dụng RLE và là lưu trữ trong hàng, với mỗi hàng đại diện cho một ngang hàng của pixel. Các hàng là lưu trữ từ trên xuống dưới, và trong mỗi hàng, các pixel là lưu trữ từ trái sang phải. Cho hình ảnh với một màu sắc độ sâu của ít hơn 24 bit, một bổ sung bảng màu phần có thể có mặt tại các kết thúc của các tập tin, mà định nghĩa các màu sắc sử dụng trong hình ảnh.
Các tùy chọn 256-màu sắc bảng màu là một chìa khóa tính năng của các PCX định dạng cho hình ảnh với 8 bit mỗi pixel hoặc ít hơn. Này bảng màu là thường nằm ở các kết thúc của các tập tin, sau các hình ảnh dữ liệu, và bao gồm một loạt của 3-byte mục, với mỗi mục đại diện cho màu đỏ, màu xanh lá cây, và màu xanh thành phần của một duy nhất màu sắc. Các bảng màu cho phép cho một phạm vi rộng của màu sắc để được đại diện trong hình ảnh, ngay cả mặc dù mỗi pixel chỉ tham chiếu một màu sắc chỉ số chứ không phải lưu trữ các đầy đủ màu sắc giá trị. Này lập chỉ mục màu sắc tiếp cận là hiệu quả trong điều khoản của tập tin kích thước, nhưng nó giới hạn các màu sắc trung thực so với đúng màu sắc hình ảnh.
Một trong những lợi thế của các PCX định dạng là của nó đơn giản, mà làm cho nó dễ dàng cho các nhà phát triển để thực hiện trong của họ phần mềm. Các định dạng của tiêu đề là cố định trong kích thước và bố trí, mà cho phép cho thẳng về phía trước phân tích cú pháp và chế biến của các hình ảnh dữ liệu. Ngoài ra, các RLE nén sử dụng trong PCX tập tin là tương đối đơn giản so với phức tạp hơn nén thuật toán sử dụng trong khác định dạng. Này đơn giản có nghĩa là PCX tập tin có thể được dễ dàng tạo ra và thao tác trên các giới hạn phần cứng của thời gian, mà không cần cho rộng rãi chế biến quyền lực hoặc bộ nhớ.
Mặc dù của nó đơn giản, các PCX định dạng không có một số hạn chế. Một trong những chính nhược điểm là của nó thiếu hỗ trợ cho minh bạch hoặc alpha kênh, mà là cần thiết cho hiện đại đồ họa làm việc chẳng hạn như biểu tượng thiết kế hoặc video trò chơi đồ họa. Ngoài ra, các RLE nén, trong khi hiệu quả cho nhất định các loại của hình ảnh, là không như hiệu quả như các nén thuật toán sử dụng trong định dạng như JPEG hoặc PNG. Này có thể kết quả trong lớn hơn tập tin kích thước cho PCX tập tin, đặc biệt là khi đối phó với cao-độ phân giải hoặc đúng màu sắc hình ảnh.
Một khác hạn chế của các PCX định dạng là của nó thiếu hỗ trợ cho siêu dữ liệu. Không giống như định dạng chẳng hạn như TIFF hoặc JPEG, mà có thể bao gồm một phạm vi rộng của siêu dữ liệu về hình ảnh, chẳng hạn như các máy ảnh cài đặt sử dụng để chụp một bức ảnh hoặc các ngày và thời gian các hình ảnh đã được tạo ra, PCX tập tin ch ỉ chứa các hầu hết cơ bản thông tin cần thiết để hiển thị các hình ảnh. Này làm cho các định dạng ít phù hợp cho chuyên nghiệp nhiếp ảnh hoặc bất kỳ ứng dụng nơi giữ lại chẳng hạn thông tin là quan trọng.
Mặc dù những hạn chế này, các PCX định dạng đã được rộng rãi sử dụng trong quá khứ và là vẫn công nhận bởi nhiều hình ảnh chỉnh sửa và xem chương trình ngày hôm nay. Của nó di sản là hiển nhiên trong các tiếp tục hỗ trợ cho các định dạng trong phần mềm chẳng hạn như Adobe Photoshop, GIMP, và CorelDRAW. Cho người dùng làm việc với cũ hơn hệ thống hoặc cần thiết để truy cập lịch sử kỹ thuật số nội dung, các khả năng để xử lý PCX tập tin vẫn có liên quan. Ngoài ra, các định dạng của đơn giản làm cho nó một hữu ích trường hợp nghiên cứu cho những người học về hình ảnh tập tin định dạng và dữ liệu nén kỹ thuật.
Các PCX định dạng cũng đóng một vai trò trong những ngày đầu của máy tính để bàn xuất bản và đồ họa thiết kế. Của nó hỗ trợ cho nhiều độ phân giải và màu sắc độ sâu làm cho nó một linh hoạt lựa chọn cho tạo ra và trao đổi đồ họa giữa khác nhau phần mềm và phần cứng nền tảng. Tại một thời gian khi độc quyền định dạng có thể tạo ra rào cản để hợp tác, các PCX định dạng phục vụ như một chung mẫu số mà tạo điều kiện cho các chia sẻ của hình ảnh trên khác nhau hệ thống.
Trong điều khoản của kỹ thuật thực hiện, tạo ra một PCX tập tin liên quan đến viết các 128-byte tiêu đề với các chính xác giá trị cho các hình ảnh của thuộc tính, theo sau bởi các RLE-nén hình ảnh dữ liệu cho mỗi màu sắc máy bay. Nếu các hình ảnh sử dụng một bảng màu, các bảng màu dữ liệu là thêm vào các kết thúc của các tập tin. Khi đọc một PCX tập tin, các quá trình là đảo ngược: các tiêu đề là đọc để xác định các hình ảnh thuộc tính, các RLE dữ liệu là giải nén để tái tạo các hình ảnh, và nếu có mặt, các bảng màu là đọc để bản đồ các màu sắc chỉ số để của họ tương ứng RGB giá trị.
Các PCX tiêu đề chứa một số lĩnh vực mà là quan trọng cho diễn giải các hình ảnh dữ liệu. Những bao gồm các nhà sản xuất (luôn luôn thiết lập để 10 cho ZSoft), các phiên bản (chỉ ra các phiên bản của các PCX định dạng), các mã hóa (luôn luôn thiết lập để 1 cho RLE nén), các bit mỗi pixel (chỉ ra các màu sắc độ sâu), các hình ảnh kích thước (được đưa ra bởi các Xmin, Ymin, Xmax, và Ymax lĩnh vực), các ngang và dọc độ phân giải, các số của màu sắc máy bay, các byte mỗi dòng (chỉ ra các số của byte trong mỗi hàng của một màu sắc máy bay), và một cờ cho thang độ xám hình ảnh, trong số những người khác.
Các PCX định dạng của RLE nén được thiết kế để được hiệu quả cho hình ảnh với lớn khu vực của đồng phục màu sắc, mà là phổ biến trong các máy tính đồ họa của thời gian. Ví dụ, một hình ảnh với một
Bộ chuy ển đổi này chạy hoàn toàn trong trình duyệt của bạn. Khi bạn chọn một tệp, nó sẽ được đọc vào bộ nhớ và chuyển đổi sang định dạng đã chọn. Sau đó, bạn có thể tải xuống tệp đã chuyển đổi.
Việc chuyển đổi bắt đầu ngay lập tức và hầu hết các tệp được chuyển đổi trong vòng chưa đầy một giây. Các tệp lớn hơn có thể mất nhiều thời gian hơn.
Các tệp của bạn không bao giờ được tải lên máy chủ của chúng tôi. Chúng được chuyển đổi trong trình duyệt của bạn và sau đó tệp đã chuyển đổi sẽ được tải xuống. Chúng tôi không bao giờ thấy các tệp của bạn.
Chúng tôi hỗ trợ chuyển đổi giữa tất cả các định dạng hình ảnh, bao gồm JPEG, PNG, GIF, WebP, SVG, BMP, TIFF, v.v.
Bộ chuyển đổi này hoàn toàn miễn phí và sẽ luôn miễn phí. Bởi vì nó chạy trong trình duyệt của bạn, chúng tôi không phải trả tiền cho máy chủ, vì vậy chúng tôi không cần tính phí bạn.
Đúng! Bạn có thể chuyển đổi bao nhiêu tệp tùy thích cùng một lúc. Chỉ cần chọn nhiều tệp khi bạn thêm chúng.