Optyczne rozpoznawanie znaków (OCR) zamienia obrazy tekstu — skany, zdjęcia ze smartfonów, pliki PDF — na ciągi znaków czytelne dla maszyn, a coraz częściej na dane strukturalne. Nowoczesne OCR to potok, który czyści obraz, znajduje tekst, odczytuje go i eksportuje bogate metadane, dzięki czemu systemy podrzędne mogą wyszukiwać, indeksować lub wyodrębniać pola. Dwa szeroko stosowane standardy wyjściowe to hOCR, mikroformat HTML dla tekstu i układu, oraz ALTO XML, schemat zorientowany na biblioteki/archiwa; oba zachowują pozycje, kolejność czytania i inne wskazówki dotyczące układu i są obsługiwane przez popularne silniki, takie jak Tesseract.
Przetwarzanie wstępne. Jakość OCR zaczyna się od czyszczenia obrazu: konwersji do skali szarości, odszumiania, progowania (binaryzacji) i prostowania. Kanoniczne samouczki OpenCV obejmują globalne, adaptacyjne i Otsu progowanie — podstawowe elementy dla dokumentów o nierównomiernym oświetleniu lub bimodalnych histogramach. Gdy oświetlenie zmienia się na stronie (pomyśl o zdjęciach z telefonu), metody adaptacyjne często przewyższają pojedynczy globalny próg; Otsu automatycznie wybiera próg, analizując histogram. Równie ważna jest korekcja nachylenia: prostowanie oparte na transformacji Hougha (Transformacja Hougha) w połączeniu z binaryzacją Otsu to powszechny i skuteczny przepis w produkcyjnych potokach przetwarzania wstępnego.
Wykrywanie a rozpoznawanie. OCR jest zazwyczaj podzielone na wykrywanie tekstu (gdzie jest tekst?) i rozpoznawanie tekstu (co on mówi?). W scenach naturalnych i wielu skanach w pełni konwolucyjne detektory, takie jak EAST skutecznie przewidują czworokąty na poziomie słów lub linii bez ciężkich etapów propozycji i są zaimplementowane w popularnych zestawach narzędzi (np. samouczek wykrywania tekstu OpenCV). Na złożonych stronach (gazety, formularze, książki) ważna jest segmentacja linii/regionów i wnioskowanie o kolejności czytania:Kraken implementuje tradycyjną segmentację stref/linii i neuronową segmentację linii bazowej, z wyraźnym wsparciem dla różnych pism i kierunków (LTR/RTL/pionowo).
Modele rozpoznawania. Klasyczny koń roboczy open-source Tesseract (udostępniony jako open-source przez Google, z korzeniami w HP) ewoluował z klasyfikatora znaków w sekwencyjny rozpoznawacz oparty na LSTM i może emitować przeszukiwalne pliki PDF, wyjścia przyjazne dla hOCR/ALTOi więcej z CLI. Nowoczesne rozpoznawacze opierają się na modelowaniu sekwencji bez wstępnie posegmentowanych znaków. Connectionist Temporal Classification (CTC) pozostaje fundamentalne, ucząc się dopasowań między sekwencjami cech wejściowych a sekwencjami etykiet wyjściowych; jest szeroko stosowane w potokach rozpoznawania pisma ręcznego i tekstu w scenach.
W ostatnich latach Transformery przekształciły OCR. TrOCR używa kodera Vision Transformer oraz dekodera Text Transformer, trenowanego na dużych korpusach syntetycznych, a następnie dostrajanego na rzeczywistych danych, z dużą wydajnością w testach porównawczych tekstu drukowanego, pisanego odręcznie i w scenach (zobacz także dokumentację Hugging Face). Równolegle niektóre systemy omijają OCR na rzecz zrozumienia na dalszym etapie: Donut (Document Understanding Transformer) to koder-dekoder bez OCR, który bezpośrednio generuje ustrukturyzowane odpowiedzi (takie jak JSON klucz-wartość) z obrazów dokumentów (repo, karta modelu), unikając kumulacji błędów, gdy oddzielny krok OCR zasila system IE.
Jeśli chcesz gotowe do użycia rozwiązanie do odczytu tekstu w wielu pismach, EasyOCR oferuje proste API z ponad 80 modelami językowymi, zwracając ramki, tekst i pewność — przydatne do prototypów i pism nielacińskich. W przypadku dokumentów historycznych Kraken wyróżnia się segmentacją linii bazowej i świadomą pisma kolejnością czytania; do elastycznego trenowania na poziomie linii, Calamari opiera się na dziedzictwie Ocropy (Ocropy) z rozpoznawaczami (multi-)LSTM+CTC i CLI do dostrajania niestandardowych modeli.
Generalizacja zależy od danych. W przypadku pisma ręcznego Baza danych pisma ręcznego IAM dostarcza zróżnicowane pod względem pisarzy zdania w języku angielskim do trenowania i oceny; jest to długoletni zestaw referencyjny do rozpoznawania linii i słów. W przypadku tekstu w scenach COCO-Text nałożył obszerne adnotacje na MS-COCO, z etykietami dla tekstu drukowanego/pisanego odręcznie, czytelnego/nieczytelnego, pisma i pełnych transkrypcji (zobacz także oryginalną stronę projektu). Dziedzina ta w dużym stopniu opiera się również na syntetycznym wstępnym trenowaniu: SynthText in the Wild renderuje tekst na fotografiach z realistyczną geometrią i oświetleniem, dostarczając ogromne ilości danych do wstępnego trenowania detektorów i rozpoznawaczy (odniesienie kod i dane).
Konkursy pod parasolem Robust Reading ICDAR utrzymują ocenę w ryzach. Ostatnie zadania kładą nacisk na wykrywanie/odczyt od końca do końca i obejmują łączenie słów w frazy, z oficjalnym kodem raportującym precyzję/odwołanie/F-score, przecięcie nad sumą (IoU) i metryki odległości edycji na poziomie znaków — odzwierciedlając to, co praktycy powinni śledzić.
OCR rzadko kończy się na czystym tekście. Archiwa i biblioteki cyfrowe preferują ALTO XML , ponieważ koduje on fizyczny układ (bloki/linie/słowa ze współrzędnymi) obok treści i dobrze współgra z opakowaniem METS. hOCR mikroformat, w przeciwieństwie do tego, osadza ten sam pomysł w HTML/CSS, używając klas takich jak ocr_line i ocrx_word, co ułatwia wyświetlanie, edycję i transformację za pomocą narzędzi internetowych. Tesseract udostępnia oba — np. generowanie hOCR lub przeszukiwalnych plików PDF bezpośrednio z CLI (przewodnik po wyjściu PDF); opakowania Pythona, takie jak pytesseract dodają wygody. Istnieją konwertery do tłumaczenia między hOCR a ALTO, gdy repozytoria mają stałe standardy przyjmowania — zobacz tę wyselekcjonowaną listę narzędzi formatu plików OCR.
Najsilniejszym trendem jest konwergencja: wykrywanie, rozpoznawanie, modelowanie języka, a nawet dekodowanie specyficzne dla zadania łączą się w zunifikowane stosy Transformerów. Wstępne trenowanie na dużych korpusach syntetycznych pozostaje mnożnikiem siły. Modele bez OCR będą agresywnie konkurować wszędzie tam, gdzie celem są ustrukturyzowane wyniki, a nie dosłowne transkrypcje. Spodziewaj się również wdrożeń hybrydowych: lekkiego detektora plus rozpoznawacza w stylu TrOCR dla długiego tekstu i modelu w stylu Donut dla formularzy i paragonów.
Tesseract (GitHub) · Dokumentacja Tesseract · Specyfikacja hOCR · Tło ALTO · Detektor EAST · Wykrywanie tekstu OpenCV · TrOCR · Donut · COCO-Text · SynthText · Kraken · Calamari OCR · ICDAR RRC · pytesseract · Pismo ręczne IAM · Narzędzia formatu plików OCR · EasyOCR
Optical Character Recognition (OCR) to technologia używana do konwersji różnych rodzajów dokumentów, takich jak zeskanowane dokumenty papierowe, pliki PDF lub obrazy zrobione cyfrowym aparatem fotograficznym, na edytowalne i przeszukiwalne dane.
OCR działa poprzez skanowanie obrazu wejściowego lub dokumentu, segmentację obrazu na indywidualne znaki, a następnie porównanie każdego znaku z bazą danych kształtów znaków za pomocą rozpoznawania wzorców lub rozpoznawania cech.
OCR jest używany w różnych sektorach i aplikacjach, w tym do digitalizacji wydrukowanych dokumentów, włączania usług tekst-na-mowę, automatyzacji procesów wprowadzania danych i pomocy osobom niewidomym w lepszej interakcji z tekstem.
Pomimo wielkiego postępu w technologii OCR, nie jest ona nieomylna. Dokładność może różnić się w zależności od jakości oryginalnego dokumentu i specyfiki używanego oprogramowania OCR.
Chociaż OCR jest głównie przeznaczony dla tekstu drukowanego, niektóre zaawansowane systemy OCR są także w stanie rozpoznać jasne, konsekwentne pismo odręczne. Jednak zazwyczaj rozpoznawanie pisma odręcznego jest mniej dokładne ze względu na dużą różnorodność indywidualnych stylów pisania.
Tak, wiele systemów oprogramowania OCR potrafi rozpoznawać wiele języków. Ważne jest jednak, aby upewnić się, że konkretny język jest obsługiwany przez oprogramowanie, którego używasz.
OCR to skrót od Optical Character Recognition i służy do rozpoznawania tekstu drukowanego, natomiast ICR, czyli Intelligent Character Recognition, jest bardziej zaawansowany i służy do rozpoznawania tekstu pisanego odręcznie.
OCR najlepiej radzi sobie z czytelnymi, łatwymi do odczytania fontami i standardowymi rozmiarami tekstu. Chociaż może pracować z różnymi fontami i rozmiarami, dokładność zwykle maleje przy niecodziennych fontach lub bardzo małych rozmiarach tekstu.
OCR może mieć problemy z dokumentami o niskiej rozdzielczości, złożonymi czcionkami, źle wydrukowanymi tekstami, pismem odręcznym oraz dokumentami z tłem, które przeszkadza w tekście. Ponadto, mimo że może obsługiwać wiele języków, nie jest w stanie idealnie pokryć wszystkich języków.
Tak, OCR potrafi skanować kolorowy tekst i tło, choć zazwyczaj jest skuteczniejszy w przypadku wysokokontrastowych kombinacji kolorów, takich jak czarny tekst na białym tle. Dokładność może spadać, gdy kolor tekstu i tła nie tworzą wystarczającego kontrastu.
JPEG 2000, powszechnie znany jako J2K, to standard kompresji obrazu i system kodowania stworzony przez komitet Joint Photographic Experts Group w 2000 roku z zamiarem zastąpienia oryginalnego standardu JPEG. Został opracowany w celu rozwiązania niektórych ograniczeń oryginalnego standardu JPEG i zapewnienia nowego zestawu funkcji, które były coraz bardziej wymagane w różnych zastosowaniach. JPEG 2000 to nie tylko pojedynczy standard, ale zestaw standardów objętych rodziną JPEG 2000 (ISO/IEC 15444).
Jedną z głównych zalet JPEG 2000 w porównaniu z oryginalnym formatem JPEG jest wykorzystanie transformacji falkowej zamiast dyskretnej transformacji kosinusowej (DCT). Transformacja falkowa umożliwia uzyskanie wyższych współczynników kompresji bez takiego samego stopnia widocznych artefaktów, które mogą występować w obrazach JPEG. Jest to szczególnie korzystne w przypadku zastosowań obrazów o wysokiej rozdzielczości i wysokiej jakości, takich jak zdjęcia satelitarne, obrazowanie medyczne, kino cyfrowe i przechowywanie archiwalne, gdzie jakość obrazu ma najwyższe znaczenie.
JPEG 2000 obsługuje zarówno kompresję bezstratną, jak i stratną w ramach jednej architektury kompresji. Kompresja bezstratna jest osiągana poprzez zastosowanie odwracalnej transformacji falkowej, która zapewnia, że oryginalne dane obrazu mogą być idealnie zrekonstruowane z obrazu skompresowanego. Kompresja stratna natomiast wykorzystuje nieodwracalną transformację falkową w celu uzyskania wyższych współczynników kompresji poprzez odrzucenie mniej ważnych informacji w obrazie.
Kolejną istotną cechą JPEG 2000 jest obsługa progresywnej transmisji obrazu, znanej również jako progresywne dekodowanie. Oznacza to, że obraz może być dekodowany i wyświetlany w niższych rozdzielczościach i stopniowo zwiększany do pełnej rozdzielczości w miarę dostępności większej ilości danych. Jest to szczególnie przydatne w przypadku aplikacji o ograniczonej przepustowości, takich jak przeglądanie stron internetowych lub aplikacje mobilne, gdzie korzystne jest szybkie wyświetlanie obrazu o niższej jakości i poprawa jakości w miarę otrzymywania większej ilości danych.
JPEG 2000 wprowadza również koncepcję obszarów zainteresowania (ROI). Pozwala to na kompresję różnych części obrazu z różnymi poziomami jakości. Na przykład w scenariuszu obrazowania medycznego obszar zawierający cechę diagnostyczną może być kompresowany bezstratnie lub z wyższą jakością niż otaczające obszary. Ta selektywna kontrola jakości może być bardzo ważna w dziedzinach, w których niektóre części obrazu są ważniejsze od innych.
Format pliku dla obrazów JPEG 2000 to JP2, który jest standaryzowanym i rozszerzalnym formatem zawierającym zarówno dane obrazu, jak i metadane. Format JP2 wykorzystuje rozszerzenie pliku .jp2 i może zawierać szeroki zakres informacji, w tym informacje o przestrzeni kolorów, poziomach rozdzielczości i informacje o własności intelektualnej. Ponadto JPEG 2000 obsługuje format JPM (dla obrazów złożonych, takich jak dokumenty zawierające zarówno tekst, jak i obrazy) oraz format MJ2 dla sekwencji ruchomych, podobnie jak plik wideo.
JPEG 2000 wykorzystuje wyrafinowany schemat kodowania znany jako EBCOT (Embedded Block Coding with Optimal Truncation). EBCOT zapewnia kilka zalet, w tym zwiększoną odporność na błędy i możliwość dostrojenia kompresji w celu osiągnięcia pożądanej równowagi między jakością obrazu a rozmiarem pliku. Algorytm EBCOT dzieli obraz na małe bloki, zwane blokami kodowymi, i koduje każdy z nich niezależnie. Pozwala to na lokalne ograniczenie błędów w przypadku uszkodzenia danych i ułatwia progresywną transmisję obrazów.
Obsługa przestrzeni kolorów w JPEG 2000 jest bardziej elastyczna niż w oryginalnym standardzie JPEG. JPEG 2000 obsługuje szeroką gamę przestrzeni kolorów, w tym skale szarości, RGB, YCbCr i inne, a także różne głębie bitowe, od obrazów binarnych do 16 bitów na składnik lub więcej. Ta elastyczność sprawia, że JPEG 2000 nadaje się do różnych zastosowań i zapewnia, że może sprostać wymaganiom różnych technologii obrazowania.
JPEG 2000 zawiera również solidne funkcje bezpieczeństwa, takie jak możliwość uwzględnienia szyfrowania i cyfrowego znaku wodnego w pliku. Jest to szczególnie ważne w przypadku aplikacji, w których ochrona praw autorskich lub uwierzytelnianie treści jest problemem. Część JPSEC (JPEG 2000 Security) standardu opisuje te funkcje bezpieczeństwa, zapewniając ramy dla bezpiecznej dystrybucji obrazów.
Jednym z wyzwań związanych z JPEG 2000 jest to, że jest on obliczeniowo bardziej intensywny niż oryginalny standard JPEG. Złożoność transformacji falkowej i schematu kodowania EBCOT oznacza, że kodowanie i dekodowanie obrazów JPEG 2000 wymaga większej mocy obliczeniowej. Historycznie ograniczało to jego adopcję w elektronice użytkowej i aplikacjach internetowych, gdzie narzut obliczeniowy mógł być istotnym czynnikiem. Jednak w miarę wzrostu mocy obliczeniowej i upowszechnienia się specjalistycznego wsparcia sprzętowego, ograniczenie to stało się mniej problematyczne.
Pomimo swoich zalet, JPEG 2000 nie zyskał powszechnego zastosowania w porównaniu z oryginalnym formatem JPEG. Wynika to częściowo z powszechności formatu JPEG i ogromnego ekosystemu oprogramowania i sprzętu, który go obsługuje. Ponadto kwestie licencjonowania i patentów związane z JPEG 2000 również utrudniały jego przyjęcie. Niektóre technologie używane w JPEG 2000 były opatentowane, a konieczność zarządzania licencjami na te patenty sprawiała, że był on mniej atrakcyjny dla niektórych programistów i firm.
Pod względem rozmiaru pliku pliki JPEG 2000 są zwykle mniejsze niż pliki JPEG o równoważnej jakości. Wynika to z bardziej wydajnych algorytmów kompresji stosowanych w JPEG 2000, które mogą skuteczniej redukować redundancję i nieistotność w danych obrazu. Jednak różnica w rozmiarze pliku może się różnić w zależności od zawartości obrazu i ustawień użytych do kompresji. W przypadku obrazów z dużą ilością drobnych szczegółów lub wysokim poziomem szumów, lepsza kompresja JPEG 2000 może skutkować znacznie mniejszymi plikami.
JPEG 2000 obsługuje również kafelkowanie, które dzieli obraz na mniejsze, niezależnie kodowane kafelki. Może to być przydatne w przypadku bardzo dużych obrazów, takich jak te używane w obrazowaniu satelitarnym lub aplikacjach mapowych, ponieważ umożliwia bardziej wydajne kodowanie, dekodowanie i obsługę obrazu. Użytkownicy mogą uzyskiwać dostęp i dekodować poszczególne kafelki bez konieczności przetwarzania całego obrazu, co może zaoszczędzić pamięć i wymagania przetwarzania.
Standaryzacja JPEG 2000 obejmuje również przepisy dotyczące obsługi metadanych, co jest ważnym aspektem dla systemów archiwizacji i wyszukiwania. Format JPX, rozszerzenie JP2, umożliwia uwzględnienie rozbudowanych metadanych, w tym pól XML i UUID, które mogą przechowywać dowolny typ informacji o metadanych. Dzięki temu JPEG 2000 jest dobrym wyborem dla aplikacji, w których zachowanie metadanych jest ważne, takich jak biblioteki cyfrowe i muzea.
Podsumowując, JPEG 2000 to wyrafinowany standard kompresji obrazu, który oferuje liczne zalety w porównaniu z oryginalnym formatem JPEG, w tym wyższe współczynniki kompresji, progresywne dekodowanie, obszary zainteresowania i solidne funkcje bezpieczeństwa. Jego elastyczność pod względem przestrzeni kolorów i głębi bitowych, a także obsługa metadanych sprawiają, że nadaje się do szerokiej gamy profesjonalnych zastosowań. Jednak jego złożoność obliczeniowa i początkowe problemy patentowe ograniczyły jego powszechne przyjęcie. Mimo to JPEG 2000 nadal jest formatem z wyboru w branżach, w których jakość obrazu i zestaw funkcji są ważniejsze niż wydajność obliczeniowa lub szeroka kompatybilność.
Ten konwerter działa w całości w Twojej przeglądarce. Po wybraniu pliku jest on wczytywany do pamięci i konwertowany do wybranego formatu. Następnie możesz pobrać przekonwertowany plik.
Konwersje rozpoczynają się natychmiast, a większość plików jest konwertowana w mniej niż sekundę. Większe pliki mogą zająć więcej czasu.
Twoje pliki nigdy nie są przesyłane na nasze serwery. Są one konwertowane w Twojej przeglądarce, a następnie pobierany jest przekonwertowany plik. Nigdy nie widzimy Twoich plików.
Obsługujemy konwersję między wszystkimi formatami obrazów, w tym JPEG, PNG, GIF, WebP, SVG, BMP, TIFF i innymi.
Ten konwerter jest całkowicie darmowy i zawsze będzie darmowy. Ponieważ działa w Twojej przeglądarce, nie musimy płacić za serwery, więc nie musimy pobierać od Ciebie opłat.
Tak! Możesz konwertować dowolną liczbę plików jednocześnie. Wystarczy wybrać wiele plików podczas ich dodawania.