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 Progressive JPEG (PJPEG) là một phần mở rộng của định dạng hình ảnh JPEG thông thường, được biết đến với hiệu quả trong việc nén hình ảnh và ảnh kỹ thuật số. Không giống như JPEG tiêu chuẩn tải hình ảnh từ trên xuống dưới trong một lần duy nhất, PJPEG tải hình ảnh trong nhiều lần, tăng dần chất lượng. Kỹ thuật này mang lại lợi thế đáng kể trong thiết kế web và trình bày hình ảnh trực tuyến, nơi tốc độ tải hình ảnh và sự tương tác của người xem là rất quan trọng. Hiểu được những phức tạp về mặt kỹ thuật của PJPEG có thể có lợi cho việc tối ưu hóa hiệu suất web và nâng cao trải nghiệm người dùng.
PJPEG sử dụng kỹ thuật Biến đổi Cosin rời rạc (DCT), tương tự như JPEG tiêu chuẩn. DCT hoạt động bằng cách chia nhỏ hình ảnh thành các phần có tần số khác nhau, sau đó lượng tử hóa các tần số này để giảm kích thước tệp. Điểm khác biệt giữa PJPEG và JPEG tiêu chuẩn trong quá trình này là cách tổ chức và sử dụng các hệ số DCT này. PJPEG lưu trữ các hệ số này theo cách cho phép tăng dần chất lượng hình ảnh. Ban đầu, nó hiển thị bản xem trước thô của toàn bộ hình ảnh chỉ bằng cách sử dụng các hệ số quan trọng nhất, với các lần quét tiếp theo sẽ thêm các chi tiết tinh tế hơn.
Một khía cạnh quan trọng của định dạng PJPEG là quá trình nén của nó, được chia thành hai giai đoạn chính: mất dữ liệu và không mất dữ liệu. Giai đoạn mất dữ liệu liên quan đến việc lượng tử hóa các hệ số DCT, làm giảm độ chính xác của các chi tiết hình ảnh nhưng giảm đáng kể kích thước tệp. Trong giai đoạn này, các hệ số được sắp xếp lại để ưu tiên thông tin quan trọng nhất về mặt trực quan. Giai đoạn không mất dữ liệu đòi hỏi một quá trình mã hóa Huffman, nén thêm hình ảnh mà không làm mất thêm chất lượng. Nén hai giai đoạn này cho phép hình ảnh PJPEG tải dần mà không làm giảm chất lượng hình ảnh cuối cùng.
Quá trình mã hóa hình ảnh thành định dạng PJPEG bao gồm việc tạo nhiều lần quét hình ảnh, mỗi lần quét có độ chi tiết tăng dần. Lần quét đầu tiên giới thiệu một phác thảo cơ bản, hiển thị các màu sắc và hình dạng chính. Các lần quét tiếp theo thêm các lớp chi tiết, cho phép người xem nắm bắt nhanh bản chất của hình ảnh ngay cả trước khi nó được tải đầy đủ. Khía cạnh này của PJPEG đặc biệt có lợi cho hình ảnh được xem qua kết nối internet chậm, nơi việc truyền tải nội dung hiệu quả mà không ảnh hưởng đến chất lượng hình ảnh là rất cần thiết.
Để xem hình ảnh được mã hóa ở định dạng PJPEG, cần có trình duyệt web hoặc trình xem hình ảnh tương thích hỗ trợ kết xuất dần dần. Khi dữ liệu hình ảnh được tải xuống, phần mềm sẽ giải thích các lần quét theo trình tự, cập nhật màn hình hiển thị với các bản thể hiện độ trung thực cao hơn của hình ảnh khi có nhiều dữ liệu hơn. Điều này tạo ra trải nghiệm người dùng mà hình ảnh có vẻ tải nhanh hơn vì các phiên bản chất lượng thấp hơn trước đó của hình ảnh xuất hiện trước, sau đó là các cải tiến dần dần về độ chi tiết và độ rõ nét.
Một lợi thế khác của PJPEG so với JPEG tiêu chuẩn là kích thước tệp. Mặc dù có vẻ như việc lưu trữ nhiều lần quét cùng một hình ảnh sẽ dẫn đến các tệp lớn hơn, nhưng các kỹ thuật nén hiệu quả được sử dụng trong PJPEG thường tạo ra các tệp có kích thước nhỏ hơn cho cùng chất lượng hình ảnh. Điều này là do các lần quét ban đầu yêu cầu tương đối ít hệ số DCT để biểu diễn hình ảnh và các chi tiết bổ sung được thêm vào theo cách được tối ưu hóa cao. Hiệu quả này làm cho PJPEG trở thành một lựa chọn hấp dẫn để tối ưu hóa thời gian tải trang web và cải thiện hiệu suất web tổng thể.
Về nhược điểm, một thách thức đối với PJPEG là cần có phần mềm hoặc hỗ trợ trình duyệt cụ thể để tận dụng đầy đủ tính năng tải dần của nó. Mặc dù hầu hết các trình duyệt web hiện đại đều hỗ trợ PJPEG, nhưng một số phần mềm chỉnh sửa hình ảnh có thể không xử lý đúng định dạng này, dẫn đến khó khăn trong việc chỉnh sửa các tệp PJPEG. Ngoài ra, tính năng tải dần có thể ít đáng chú ý hơn trên các kết nối rất nhanh, nơi hình ảnh có thể tải gần như ngay lập tức, phủ nhận sự cải tiến dần dần.
Theo quan điểm của nhà phát triển, việc triển khai PJPEG trên các trang web đòi hỏi phải cân nhắc cẩn thận các cài đặt chất lượng hình ảnh trong quá trình mã hóa. Sự cân bằng giữa kích thước tệp và chất lượng hình ảnh là rất quan trọng, vì hình ảnh được nén quá mức có thể tải nhanh nhưng làm người dùng thất vọng vì chất lượng kém. Ngược lại, nén quá ít có thể dẫn đến thời gian tải lâu hơn, có khả năng gây hại cho sự tương tác của người dùng. Các nhà phát triển cũng phải nhận thức được khả năng hỗ trợ và kết xuất của các trình duyệt và thiết bị mà đối tượng của họ đang sử dụng để đảm bảo trải nghiệm nhất quán.
Các khía cạnh kỹ thuật của việc tạo tệp PJPEG liên quan đến các công cụ phần mềm chuyên dụng có khả năng xử lý mã hóa JPEG với các cài đặt tùy chọn dần dần. Ví dụ, Adobe Photoshop cung cấp các tùy chọn để lưu hình ảnh ở định dạng PJPEG, cho phép người dùng điều chỉnh số lần quét và mức độ nén. Đối với phát triển web, có nhiều công cụ và thư viện trực tuyến giúp đơn giản hóa quá trình chuyển đổi hình ảnh JPEG tiêu chuẩn thành PJPEG, cho phép các nhà phát triển tối ưu hóa tài sản web của họ hiệu quả hơn.
Theo quan điểm lịch sử, định dạng JPEG, bao gồm cả biến thể dần dần của nó, được Nhóm chuyên gia nhiếp ảnh chung phát triển vào đầu những năm 1990 như một phần của các tiêu chuẩn hình ảnh và truyền thông kỹ thuật số trong y học (DICOM). Với sự bùng nổ của internet và nhiếp ảnh kỹ thuật số, JPEG đã trở thành một trong những định dạng hình ảnh được sử dụng rộng rãi nhất do khả năng nén hiệu quả giúp việc chia sẻ và hiển thị hình ảnh trực tuyến trở nên khả thi. Việc giới thiệu PJPEG nhằm nâng cao trải nghiệm người dùng bằng cách giải quyết các hạn chế về băng thông và tốc độ kết nối phổ biến tại thời điểm đó.
Việc sử dụng PJPEG không giới hạn ở hình ảnh web. Nó cũng tìm thấy ứng dụng trong các lĩnh vực khác, nơi tải hình ảnh hiệu quả và hiển thị dần dần có thể nâng cao trải nghiệm người dùng. Ví dụ, trong trò chơi trực tuyến, PJPEG có thể được sử dụng để tải kết cấu trò chơi để cung cấp cho người chơi trải nghiệm liền mạch ngay cả khi bị hạn chế băng thông. Tương tự như vậy, trong thương mại điện tử, hình ảnh dần dần có thể giúp người dùng tương tác trong khi duyệt các thư viện sản phẩm, cải thiện khả năng chuyển đổi.
Hơn nữa, sự phổ biến của màn hình độ phân giải cao và thiết bị di động đã ảnh hưởng đến ứng dụng của PJPEG. Trên màn hình độ phân giải cao, việc tải hình ảnh chất lượng cao có thể tốn nhiều băng thông. PJPEG cho phép thỏa hiệp bằng cách cho phép hiển thị hình ảnh ở chất lượng thấp hơn ban đầu, sau đó tăng dần, giảm thời gian tải được nhận thức. Phương pháp này đặc biệt có lợi trong môi trường di động, nơi sử dụng dữ liệu và tốc độ có thể là các yếu tố hạn chế.
Các cân nhắc về môi trường cũng đóng một vai trò trong việc áp dụng PJPEG. Bằng cách giảm kích thước tệp và tối ưu hóa thời gian tải, các trang web có thể giảm khối lượng truyền dữ liệu của mình, có khả năng dẫn đến mức tiêu thụ năng lượng thấp hơn ở các trung tâm dữ liệu và cơ sở hạ tầng mạng. Khía cạnh này phù hợp với các mục tiêu rộng hơn của điện toán xanh, nhấn mạnh tầm quan trọng của hiệu quả năng lượng trong các công nghệ kỹ thuật số. Mặc dù tác động của việc lựa chọn định dạng hình ảnh đối với môi trường có vẻ nhỏ, nhưng khi xem xét ở quy mô internet, nó góp phần vào hiệu quả năng lượng tổng thể của truyền thông kỹ thuật số.
Tóm lại, định dạng Progressive JPEG đại diện cho một cách tiếp cận tinh vi đối với việc nén và hiển thị hình ảnh, mang lại nhiều lợi ích cho việc phân phối nội dung trực tuyến. Với tính năng tải dần, PJPEG có thể cải thiện sự tương tác của người dùng bằng cách tối ưu hóa thời gian tải hình ảnh mà không làm giảm chất lượng. Bất chấp một số thách thức trong việc triển khai và khả năng tương thích, những lợi thế của PJPEG khiến nó trở thành một công cụ có giá trị cho các nhà phát triển web, nhà thiết kế đồ họa và người tạo nội dung nhằm mục đích nâng cao trải nghiệm hình ảnh của các sản phẩm kỹ thuật số của họ. Khi các công nghệ internet tiếp tục phát triển, việc hiểu và tận dụng các định dạng như PJPEG sẽ vẫn rất quan trọng để phân phối nội dung hiệu quả và bền vững.
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.