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.
Format pliku JP2 lub JPEG 2000 część 1 to system kodowania obrazu, który został stworzony jako następca oryginalnego standardu JPEG przez Joint Photographic Experts Group. Został wprowadzony w roku 2000 i jest formalnie znany jako ISO/IEC 15444-1. W przeciwieństwie do swojego poprzednika, JPEG 2000 został zaprojektowany w celu zapewnienia bardziej wydajnej i elastycznej techniki kompresji obrazu, która mogłaby rozwiązać niektóre ograniczenia oryginalnego formatu JPEG. JPEG 2000 wykorzystuje kompresję opartą na falkach, która umożliwia zarówno kompresję bezstratną, jak i stratną w tym samym pliku, zapewniając wyższy stopień skalowalności i wierności obrazu.
Jedną z kluczowych cech formatu JPEG 2000 jest wykorzystanie dyskretnej transformacji falkowej (DWT) w przeciwieństwie do dyskretnej transformacji kosinusowej (DCT) stosowanej w oryginalnym formacie JPEG. DWT oferuje kilka zalet w porównaniu z DCT, w tym lepszą wydajność kompresji, szczególnie w przypadku obrazów o wyższej rozdzielczości, oraz zmniejszone artefakty blokowania. Wynika to z faktu, że transformacja falkowa jest w stanie przedstawić obraz z różnym poziomem szczegółowości, który można dostosować do konkretnych potrzeb aplikacji lub preferencji użytkownika.
Format JP2 obsługuje szeroką gamę przestrzeni kolorów, w tym skala szarości, RGB, YCbCr i inne, a także różne głębie bitowe, od obrazów binarnych do 16 bitów na kanał. Ta elastyczność sprawia, że nadaje się do różnych zastosowań, od fotografii cyfrowej po obrazowanie medyczne i teledetekcję. Ponadto JPEG 2000 obsługuje przezroczystość poprzez wykorzystanie kanału alfa, co nie jest możliwe w standardowym formacie JPEG.
Kolejną znaczącą zaletą JPEG 2000 jest obsługa progresywnego dekodowania. Oznacza to, że obraz można dekodować i wyświetlać w niższych rozdzielczościach i poziomach jakości przed pobraniem całego pliku, co jest szczególnie przydatne w przypadku aplikacji internetowych. W miarę dostępności większej ilości danych jakość obrazu może być stopniowo poprawiana. Ta funkcja, znana jako „warstwy jakości”, umożliwia wydajne wykorzystanie przepustowości i zapewnia lepsze wrażenia użytkownika w środowiskach o ograniczonej przepustowości.
JPEG 2000 wprowadza również koncepcję „obszarów zainteresowania” (ROI). Dzięki ROI niektóre części obrazu można kodować w wyższej jakości niż reszta obrazu. Jest to szczególnie przydatne, gdy konieczne jest zwrócenie uwagi na określone obszary obrazu, takie jak w nadzorze lub diagnostyce medycznej, gdzie nacisk może być położony na konkretną anomalię lub cechę obrazu.
Format JP2 obejmuje solidne możliwości obsługi metadanych. Może przechowywać szeroki zakres informacji o metadanych, takich jak metadane International Press Telecommunications Council (IPTC), dane Exif, dane XML, a nawet informacje o własności intelektualnej. To kompleksowe wsparcie metadanych ułatwia lepsze katalogowanie i archiwizowanie obrazów oraz zapewnia, że ważne informacje o obrazie są zachowywane i łatwo dostępne.
Odporność na błędy to kolejna cecha JPEG 2000, która sprawia, że nadaje się do użytku w sieciach, w których może wystąpić utrata danych, takich jak komunikacja bezprzewodowa lub satelitarna. Format zawiera mechanizmy wykrywania i korekcji błędów, które mogą pomóc w zapewnieniu prawidłowego dekodowania obrazów, nawet gdy niektóre dane zostały uszkodzone podczas transmisji.
Pliki JPEG 2000 są zwykle większe niż pliki JPEG, gdy są kodowane przy podobnych poziomach jakości, co było jedną z barier dla ich powszechnego przyjęcia. Jednak w przypadku aplikacji, w których jakość obrazu jest najważniejsza, a zwiększony rozmiar pliku nie stanowi istotnego problemu, JPEG 2000 oferuje wyraźne zalety. Warto również zauważyć, że wyższa wydajność kompresji formatu może skutkować mniejszymi rozmiarami plików przy wyższych poziomach jakości w porównaniu z JPEG, szczególnie w przypadku obrazów o wysokiej rozdzielczości.
Format JP2 jest rozszerzalny i został zaprojektowany jako część większego zestawu standardów znanych jako JPEG 2000. Ten zestaw zawiera różne części, które rozszerzają możliwości podstawowego formatu, takie jak obsługa obrazów ruchomych (JPEG 2000 część 2), bezpieczna transmisja obrazu (JPEG 2000 część 8) i interaktywne protokoły (JPEG 2000 część 9). Ta rozszerzalność zapewnia, że format może ewoluować, aby sprostać potrzebom przyszłych aplikacji multimedialnych.
Pod względem struktury pliku plik JP2 składa się z sekwencji boksów, z których każdy zawiera określony typ danych. Boksy obejmują boks sygnatury pliku, który identyfikuje plik jako strumień kodowy JPEG 2000, boks typu pliku, który określa typ nośnika i zgodność, oraz boks nagłówka, który zawiera właściwości obrazu, takie jak szerokość, wysokość, przestrzeń kolorów i głębia bitowa. Dodatkowe boksy mogą zawierać dane specyfikacji kolorów, dane palety dla indeksowanych obrazów kolorowych, informacje o rozdzielczości i dane dotyczące praw własności intelektualnej.
Rzeczywiste dane obrazu w pliku JP2 znajdują się w boksie „ciągłego strumienia kodowego”, który zawiera skompresowane dane obrazu i wszelkie informacje o stylu kodowania. Strumień kodowy jest podzielony na „kafelki”, które są niezależnie kodowanymi segmentami obrazu. Ta funkcja kafelkowania umożliwia wydajny dostęp losowy do części obrazu bez konieczności dekodowania całego obrazu, co jest korzystne w przypadku dużych obrazów lub gdy wymagana jest tylko część obrazu.
Proces kompresji w JPEG 2000 obejmuje kilka kroków. Najpierw obraz jest opcjonalnie wstępnie przetwarzany, co może obejmować kafelkowanie, transformację kolorów i próbkowanie w dół. Następnie DWT jest stosowana do przekształcenia danych obrazu w hierarchiczny zestaw współczynników, które reprezentują obraz w różnych rozdzielczościach i poziomach jakości. Te współczynniki są następnie kwantyzowane, co można wykonać bezstratnie lub stratnie, a skwantyzowane wartości są kodowane entropią przy użyciu technik takich jak kodowanie arytmetyczne lub kodowanie drzewa binarnego.
Jednym z wyzwań w przyjęciu JPEG 2000 była złożoność obliczeniowa procesów kodowania i dekodowania, które są bardziej zasobożerne niż w przypadku oryginalnego standardu JPEG. Ograniczyło to jego zastosowanie w niektórych aplikacjach czasu rzeczywistego lub o niskim poborze mocy. Jednak postęp w mocy obliczeniowej i rozwój zoptymalizowanych algorytmów i akceleratorów sprzętowych uczyniły JPEG 2000 bardziej dostępnym dla szerszej gamy aplikacji.
Pomimo swoich zalet JPEG 2000 nie zastąpił oryginalnego formatu JPEG w większości popularnych aplikacji. Prostota JPEG, szerokie wsparcie i bezwładność istniejącej infrastruktury przyczyniły się do jego ciągłej dominacji. Jednak JPEG 2000 znalazł niszę w dziedzinach profesjonalnych, w których jego zaawansowane funkcje, takie jak wyższy zakres dynamiki, kompresja bezstratna i doskonała jakość obrazu, mają kluczowe znaczenie. Jest powszechnie stosowany w obrazowaniu medycznym, kinie cyfrowym, obrazowaniu geoprzestrzennym i archiwizacji, gdzie zalety formatu przewyższają wady większych rozmiarów plików i zwiększonych wymagań obliczeniowych.
Podsumowując, format obrazu JPEG 2000 stanowi znaczący postęp w technologii kompresji obrazu, oferując szereg funkcji, które poprawiają ograniczenia oryginalnego standardu JPEG. Jego wykorzystanie kompresji opartej na falkach pozwala na uzyskanie obrazów wysokiej jakości ze skalowalną rozdzielczością i jakością, a jego obsługa progresywnego dekodowania, obszarów zainteresowania i solidnych metadanych czyni go wszechstronnym wyborem dla wielu profesjonalnych aplikacji. Chociaż nie stał się uniwersalnym standardem kompresji obrazu, JPEG 2000 nadal jest ważnym narzędziem dla branż, w których jakość i wierność obrazu mają najwyższe znaczenie.
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.