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.
**Định dạng Portable Pixmap (PPM)**
Định dạng Portable Pixmap (PPM) là định dạng đồ họa raster đơn giản nhưng mạnh mẽ nhất xuất hiện như một phần của dự án Netpbm. Định dạng PPM, vốn đơn giản trong thiết kế, cung cấp phương tiện để biểu diễn hình ảnh màu theo cách cơ bản giúp con người và máy tính có thể đọc và ghi một cách dễ dàng. Nó được phân loại theo định dạng Netpbm, cùng với Portable Bit Map (PBM) cho hình ảnh đen trắng và Portable Gray Map (PGM) cho hình ảnh thang độ xám. Mỗi định dạng này được thiết kế để đóng gói hình ảnh với các mức độ sâu màu và độ phức tạp khác nhau, trong đó PPM là định dạng tinh vi nhất về biểu diễn màu.
Định dạng PPM định nghĩa hình ảnh dưới dạng tệp văn bản ASCII đơn giản (mặc dù biểu diễn nhị phân cũng phổ biến) chỉ định thông tin màu pixel theo cách đơn giản. Nó bắt đầu bằng một 'số ma thuật' cho biết tệp ở định dạng ASCII (P3) hay nhị phân (P6), theo sau là khoảng trắng, kích thước của hình ảnh (chiều rộng và chiều cao), giá trị màu tối đa, sau đó là dữ liệu pixel thực tế. Dữ liệu pixel trong tệp PPM bao gồm các giá trị màu RGB với mỗi thành phần nằm trong khoảng từ 0 đến giá trị tối đa đã chỉ định, thường là 255, cho phép có hơn 16 triệu kết hợp màu có thể có cho mỗi pixel.
Một trong những lợi thế cốt lõi của định dạng PPM là tính đơn giản của nó. Cấu trúc của tệp PPM rất đơn giản đến mức có thể dễ dàng tạo hoặc sửa đổi bằng các công cụ chỉnh sửa văn bản cơ bản khi ở chế độ ASCII. Tính đơn giản này cũng mở rộng đến quá trình xử lý của nó; việc viết phần mềm để phân tích cú pháp hoặc tạo hình ảnh PPM đòi hỏi ít nỗ lực hơn so với các định dạng phức tạp hơn như JPEG hoặc PNG. Tính dễ tiếp cận này đã khiến PPM trở thành lựa chọn ưa thích cho các tác vụ hình ảnh cơ bản trong các bối cảnh học thuật hoặc trong số những người đam mê, và là bước đệm cho những người đang tìm hiểu về xử lý hình ảnh hoặc lập trình đồ họa máy tính.
Mặc dù có những lợi ích, định dạng PPM vẫn có những hạn chế đáng kể bắt nguồn từ tính đơn giản của nó. Đáng kể nhất trong số đó là thiếu bất kỳ cơ chế nén nào, dẫn đến các tệp lớn hơn đáng kể so với các tệp tương đương ở các định dạng tinh vi hơn như JPEG hoặc PNG. Điều này khiến PPM ít phù hợp hơn để sử dụng trên web hoặc bất kỳ ứng dụng nào mà không gian lưu trữ và băng thông là mối quan tâm. Ngoài ra, định dạng PPM không hỗ trợ bất kỳ hình thức trong suốt, lớp hoặc siêu dữ liệu nào (chẳng hạn như cấu hình màu hoặc dữ liệu EXIF), điều này có thể hạn chế tiện ích của nó trong các quy trình thiết kế đồ họa hoặc nhiếp ảnh phức tạp hơn.
Để tạo hoặc xem tệp PPM, người ta có thể sử dụng nhiều công cụ có sẵn trong gói Netpbm hoặc thông qua nhiều công cụ phần mềm đồ họa khác hỗ trợ định dạng này. Các nhà phát triển phần mềm và nhà nghiên cứu đánh giá cao định dạng PPM vì tính dễ triển khai của nó. Việc phân tích cú pháp các tệp PPM, đặc biệt là ở chế độ ASCII, rất đơn giản, vì nó liên quan đến việc đọc các dòng văn bản và diễn giải chúng theo các thông số kỹ thuật tối thiểu của định dạng. Viết phần mềm xuất hình ảnh PPM có thể đơn giản như vậy, khiến nó trở thành lựa chọn tuyệt vời cho các dự án ban đầu trong các khóa học lập trình đồ họa hoặc để tạo mẫu nhanh.
Trên thực tế, làm việc với các tệp PPM liên quan đến việc hiểu sâu về cấu trúc của nó. Một tệp bắt đầu bằng một số ma thuật ('P3' cho ASCII hoặc 'P6' cho nhị phân), theo sau là các ký tự khoảng trắng. Sau số ma thuật, kích thước của hình ảnh được cung cấp dưới dạng hai số nguyên biểu diễn lần lượt chiều rộng và chiều cao của hình ảnh. Chúng cũng được phân tách bằng khoảng trắng. Theo sau các kích thước, giá trị màu tối đa được chỉ định, giá trị này quyết định phạm vi giá trị RGB mà mỗi giá trị có thể có. Trong hầu hết các trường hợp, giá trị này là 255, nghĩa là mỗi thành phần màu (Đỏ, Xanh lục và Xanh lam) có thể nằm trong khoảng từ 0 đến 255.
Sau phần đầu, các giá trị RGB cho từng pixel theo sau. Ở chế độ ASCII (P3), các giá trị này được viết dưới dạng văn bản thuần túy là các số riêng biệt, với mỗi bộ ba RGB biểu diễn một pixel. Các pixel được sắp xếp thành các hàng từ trái sang phải và từ trên xuống dưới. Ở chế độ nhị phân (P6), các giá trị màu được biểu diễn ở định dạng nhị phân nhỏ gọn hơn, mặc dù ít dễ đọc hơn đối với con người, nhưng máy tính có thể phân tích cú pháp hiệu quả hơn. Mỗi thành phần của bộ ba RGB thường là một byte duy nhất, dẫn đến một tệp được sắp xếp hợp lý hơn, mặc dù không có khả năng nén, nhưng nhanh hơn để đọc và ghi so với đối tác ASCII của nó.
Mặc dù có sự chuyển dịch sang các định dạng hình ảnh tiên tiến và phức tạp hơn cung cấp khả năng nén và các tính năng bổ sung, định dạng PPM vẫn giữ được sự liên quan của nó trong nhiều bối cảnh thích hợp. Khả năng phục vụ như một mẫu số chung trong nghiên cứu xử lý hình ảnh, nơi trọng tâm tập trung nhiều hơn vào các thuật toán hơn là các chi tiết cụ thể của định dạng tệp, không thể không đề cập đến. Ngoài ra, tính đơn giản và thiếu khả năng nén của định dạng khiến nó trở thành lựa chọn lý tưởng cho các tình huống mà độ trung thực của thao tác hình ảnh là tối quan trọng, vì không có mất chất lượng hình ảnh do các hiện tượng nén.
Để giải quyết vấn đề về kích thước tệp, một nhược điểm đáng kể của định dạng PPM, người ta có thể xem xét các công cụ nén bên ngoài như một giải pháp thay thế. Mặc dù điều này không tích hợp khả năng nén trong chính định dạng tệp, các công cụ như gzip có thể giảm đáng kể không gian lưu trữ cần thiết cho các tệp PPM, giúp chúng dễ quản lý hơn cho mục đích truyền hoặc lưu trữ. Tuy nhiên, cách tiếp cận này thêm một bước bổ sung vào quy trình làm việc, vì các tệp cần được nén và giải nén riêng biệt khỏi quá trình xem hoặc chỉnh sửa hình ảnh.
Các kỹ thuật hình ảnh tiên tiến và nhu cầu về hiệu quả cao hơn đã dẫn đến sự phát triển và ưu tiên các định dạng như JPEG và PNG trong nhiều ứng dụng. Tuy nhiên, giá trị giáo dục của định dạng PPM trong việc giảng dạy các nguyên tắc cơ bản về hình ảnh kỹ thuật số và lập trình không thể bỏ qua. Bằng cách tách bỏ tính phức tạp thành các thành phần cốt lõi của tệp hình ảnh, người học có thể tập trung vào các thuật toán ảnh hưởng đến chuyển đổi, tăng cường và tạo hình ảnh mà không bị sa lầy vào sự phức tạp của các thuật toán phân tích cú pháp và nén định dạng.
Hơn nữa, định dạng PPM đóng vai trò như một cầu nối đến các tác vụ và định dạng hình ảnh phức tạp hơn. Việc hiểu và làm việc với mô hình màu RGB ở cấp độ pixel thô cung cấp kiến thức nền tảng có thể áp dụng trong hầu hết mọi lĩnh vực của đồ họa máy tính và xử lý hình ảnh. Kinh nghiệm thu được từ việc thao tác hình ảnh ở định dạng PPM đặt nền tảng để giải quyết các định dạng tinh vi hơn và những thách thức mà chúng đặt ra, chẳng hạn như xử lý không gian màu, kỹ thuật nén và siêu dữ liệu hình ảnh.
Tóm lại, định dạng Portable Pixmap (PPM), với sự đơn giản và dễ sử dụng, nổi bật như một công cụ học tập có giá trị trong lĩnh vực đồ họa máy tính và xử lý hình ảnh. Mặc dù nó có thể thiếu các tính năng và hiệu quả của các định dạng hiện đại hơn, nhưng sự đơn giản của nó mang lại cơ hội vô song cho người mới bắt đầu tìm hiểu sâu về các nguyên tắc cơ bản về biểu diễn và thao tác hình ảnh. Đối với các nhà nghiên cứu, nhà giáo dục và những người đam mê, định dạng PPM cung cấp một khuôn khổ rõ ràng và dễ tiếp cận để khám phá các nguyên tắc cơ bản của hình ảnh kỹ thuật số, đóng vai trò vừa là công cụ thực tế vừa là nguồn tài nguyên giáo dục.
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.