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, co oznacza Joint Photographic Experts Group, to powszechnie stosowana metoda kompresji stratnej dla obrazów cyfrowych, szczególnie tych wytwarzanych przez fotografię cyfrową. Stopień kompresji można regulować, co pozwala na wybór kompromisu między rozmiarem pamięci masowej a jakością obrazu. JPEG zwykle osiąga kompresję 10:1 przy niewielkiej zauważalnej utracie jakości obrazu. Algorytm kompresji JPEG stanowi podstawę formatu pliku JPEG, który jest formalnie znany jako JPEG Interchange Format (JIF). Jednak termin „JPEG” jest często używany w odniesieniu do formatu pliku, który jest faktycznie znormalizowany jako JPEG File Interchange Format (JFIF).
Format JPEG obsługuje różne przestrzenie kolorów, ale najczęstszą używaną w fotografii cyfrowej i grafice internetowej jest kolor 24-bitowy, który zawiera po 8 bitów dla składowych czerwonej, zielonej i niebieskiej (RGB). Pozwala to na ponad 16 milionów różnych kolorów, zapewniając bogatą i żywą jakość obrazu odpowiednią do szerokiego zakresu zastosowań. Pliki JPEG mogą również obsługiwać obrazy w skali szarości i przestrzenie kolorów, takie jak YCbCr, która jest często używana w kompresji wideo.
Algorytm kompresji JPEG opiera się na dyskretnej transformacie kosinusowej (DCT), która jest rodzajem transformacji Fouriera. DCT jest stosowana do małych bloków obrazu, zwykle 8x8 pikseli, przekształcając dane domeny przestrzennej w dane domeny częstotliwości. Proces ten jest korzystny, ponieważ ma tendencję do koncentrowania energii obrazu w kilku składowych niskiej częstotliwości, które są ważniejsze dla ogólnego wyglądu obrazu, podczas gdy składowe wysokiej częstotliwości, które przyczyniają się do drobnych szczegółów i mogą być odrzucane z mniejszym wpływem na postrzeganą jakość, są redukowane.
Po zastosowaniu DCT, wynikowe współczynniki są kwantyzowane. Kwantyzacja to proces mapowania dużego zestawu wartości wejściowych na mniejszy zestaw, skutecznie zmniejszając precyzję współczynników DCT. To tutaj wkracza stratny aspekt JPEG. Stopień kwantyzacji jest określany przez tabelę kwantyzacji, którą można dostosować, aby zrównoważyć jakość obrazu i współczynnik kompresji. Wyższy poziom kwantyzacji skutkuje wyższą kompresją i niższą jakością obrazu, podczas gdy niższy poziom kwantyzacji skutkuje niższą kompresją i wyższą jakością obrazu.
Po skwantyzowaniu współczynników są one następnie serializowane w kolejności zygzakowatej, zaczynając od lewego górnego rogu i podążając wzorem zygzakowatym przez blok 8x8. Ten krok ma na celu umieszczenie współczynników niskiej częstotliwości na początku bloku, a współczynników wysokiej częstotliwości pod koniec. Ponieważ wiele współczynników wysokiej częstotliwości prawdopodobnie będzie zerowych lub bliskich zeru po kwantyzacji, takie uporządkowanie pomaga w dalszej kompresji danych poprzez grupowanie podobnych wartości razem.
Następnym krokiem w procesie kompresji JPEG jest kodowanie entropii, które jest metodą kompresji bezstratnej. Najczęstszą formą kodowania entropii stosowaną w JPEG jest kodowanie Huffmana, chociaż kodowanie arytmetyczne jest również opcją. Kodowanie Huffmana działa poprzez przypisywanie krótszych kodów do częstszych wartości i dłuższych kodów do rzadszych wartości. Ponieważ skwantyzowane współczynniki DCT są uporządkowane w sposób, który grupuje zera i wartości niskiej częstotliwości, kodowanie Huffmana może skutecznie zmniejszyć rozmiar danych.
Format pliku JPEG umożliwia również przechowywanie metadanych w pliku, takich jak dane Exif, które zawierają informacje o ustawieniach aparatu, dacie i godzinie wykonania zdjęcia oraz inne istotne szczegóły. Te metadane są przechowywane w segmentach specyficznych dla aplikacji pliku JPEG, które mogą być odczytywane przez różne oprogramowanie w celu wyświetlania lub przetwarzania informacji o obrazie.
Jedną z kluczowych cech formatu JPEG jest jego obsługa kodowania progresywnego. W progresywnym JPEG obraz jest kodowany w wielu przejściach o coraz większej szczegółowości. Oznacza to, że nawet jeśli obraz nie został całkowicie pobrany, można wyświetlić wersję roboczą całego obrazu, która stopniowo poprawia się wraz z odbieraniem większej ilości danych. Jest to szczególnie przydatne w przypadku obrazów internetowych, ponieważ pozwala użytkownikom uzyskać wyobrażenie o zawartości obrazu bez konieczności czekania na pobranie całego pliku.
Pomimo powszechnego stosowania i wielu zalet, format JPEG ma pewne ograniczenia. Jednym z najważniejszych jest kwestia artefaktów, czyli zniekształceń lub anomalii wizualnych, które mogą wystąpić w wyniku kompresji stratnej. Artefakty te mogą obejmować rozmycie, blokowanie i „dzwonienie” wokół krawędzi. Widoczność artefaktów zależy od poziomu kompresji i zawartości obrazu. Obrazy z płynnymi gradientami lub subtelnymi zmianami kolorów są bardziej podatne na pojawianie się artefaktów kompresji.
Kolejnym ograniczeniem JPEG jest to, że nie obsługuje przezroczystości ani kanałów alfa. Oznacza to, że obrazy JPEG nie mogą mieć przezroczystych tła, co może być wadą w przypadku niektórych zastosowań, takich jak projektowanie stron internetowych, gdzie nakładanie obrazów na różne tła jest powszechne. W takich celach często używa się zamiast tego formatów takich jak PNG lub GIF, które obsługują przezroczystość.
JPEG również nie obsługuje warstw ani animacji. W przeciwieństwie do formatów takich jak TIFF dla warstw lub GIF dla animacji, JPEG jest ściśle formatem jednoobrazkowym. To sprawia, że nie nadaje się do obrazów, które wymagają edycji w warstwach lub do tworzenia animowanych obrazów. Użytkownicy, którzy muszą pracować z warstwami lub animacjami, muszą używać innych formatów podczas procesu edycji, a następnie mogą przekonwertować do JPEG w celu dystrybucji, jeśli jest to konieczne.
Pomimo tych ograniczeń, JPEG pozostaje jednym z najpopularniejszych formatów obrazów ze względu na jego wydajną kompresję i kompatybilność z praktycznie wszystkimi programami do przeglądania i edycji obrazów. Jest szczególnie dobrze przystosowany do fotografii i złożonych obrazów o ciągłych tonach i kolorach. W przypadku użycia w Internecie obrazy JPEG można zoptymalizować, aby zrównoważyć jakość i rozmiar pliku, dzięki czemu są idealne do szybkiego ładowania, jednocześnie zapewniając wizualnie przyjemne rezultaty.
Format JPEG również ewoluował w czasie wraz z rozwojem wariantów, takich jak JPEG 2000 i JPEG XR. JPEG 2000 oferuje lepszą wydajność kompresji, lepsze radzenie sobie z artefaktami obrazu i możliwość obsługi przezroczystości. JPEG XR z kolei zapewnia lepszą kompresję przy wyższych poziomach jakości i obsługuje szerszy zakres głębi kolorów i przestrzeni kolorów. Jednak te nowsze formaty nie osiągnęły jeszcze takiego samego poziomu powszechności jak oryginalny format JPEG.
Podsumowując, format obrazu JPEG jest wszechstronnym i szeroko obsługiwanym formatem, który zapewnia równowagę między jakością obrazu a rozmiarem pliku. Jego wykorzystanie DCT i kwantyzacji pozwala na znaczną redukcję rozmiaru pliku przy konfigurowalnym wpływie na jakość obrazu. Chociaż ma pewne ograniczenia, takie jak brak obsługi przezroczystości, warstw i animacji, jego zalety pod względem kompatybilności i wydajności sprawiają, że jest podstawą w przetwarzaniu obrazu cyfrowego. W miarę postępu technologii nowsze formaty mogą oferować ulepszenia, ale dziedzictwo JPEG i powszechna adopcja zapewniają, że pozostanie on podstawową częścią przetwarzania obrazu cyfrowego w przewidywalnej przyszłości.
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.