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 JNG (JPEG Network Graphics) to format pliku obrazu, który został zaprojektowany jako podformat bardziej znanego formatu MNG (Multiple-image Network Graphics). Został opracowany przede wszystkim w celu zapewnienia rozwiązania dla kompresji stratnej i bezstratnej w ramach jednego formatu obrazu, co nie było możliwe w przypadku innych popularnych formatów, takich jak JPEG czy PNG w momencie jego powstania. Pliki JNG są zwykle używane w przypadku obrazów, które wymagają zarówno wysokiej jakości, fotograficznej reprezentacji, jak i opcjonalnego kanału alfa dla przezroczystości, który nie jest obsługiwany przez standardowe obrazy JPEG.
JNG nie jest samodzielnym formatem, ale jest częścią pakietu formatów plików MNG, który został zaprojektowany jako animowana wersja PNG. Pakiet MNG obejmuje zarówno formaty MNG, jak i JNG, przy czym MNG obsługuje animacje, a JNG jest formatem obrazu pojedynczego. Format JNG został stworzony przez ten sam zespół, który opracował format PNG, i miał on uzupełniać PNG, dodając skompresowane kolorem dane JPEG, jednocześnie zachowując możliwość oddzielnego kanału alfa, który jest funkcją obsługiwaną przez PNG, ale nie przez JPEG.
Struktura pliku JNG jest podobna do struktury pliku MNG, ale jest prostsza, ponieważ jest przeznaczona tylko dla pojedynczych obrazów. Plik JNG składa się z serii bloków, z których każdy zawiera określony typ danych. Najważniejszymi blokami w pliku JNG są blok JHDR, który zawiera informacje nagłówka; blok JDAT, który zawiera skompresowane obrazem dane JPEG; blok JSEP, który może być obecny, aby wskazać koniec strumienia danych JPEG; oraz bloki kanału alfa, które są opcjonalne i mogą być albo blokami IDAT (zawierającymi skompresowane dane alfa PNG), albo blokami JDAA (zawierającymi skompresowane dane alfa JPEG).
Blok JHDR jest pierwszym blokiem w pliku JNG i ma kluczowe znaczenie, ponieważ definiuje właściwości obrazu. Zawiera informacje takie jak szerokość i wysokość obrazu, głębia kolorów, czy obecny jest kanał alfa, używana przestrzeń kolorów i metoda kompresji dla kanału alfa. Ten blok pozwala dekoderom zrozumieć, jak przetwarzać kolejne dane w pliku.
Blok JDAT zawiera rzeczywiste dane obrazu, które są kompresowane przy użyciu standardowych technik kompresji JPEG. Ta kompresja umożliwia wydajne przechowywanie obrazów fotograficznych, które często zawierają złożone gradienty kolorów i subtelne różnice w tonie. Kompresja JPEG w JNG jest identyczna z tą używaną w samodzielnych plikach JPEG, co umożliwia standardowym dekoderom JPEG odczytywanie danych obrazu z pliku JNG bez konieczności rozumienia całego formatu JNG.
Jeśli w obrazie JNG obecny jest kanał alfa, jest on przechowywany w blokach IDAT lub JDAA. Bloki IDAT są takie same jak te używane w plikach PNG i zawierają skompresowane dane alfa PNG. Umożliwia to bezstratną kompresję kanału alfa, zapewniając zachowanie informacji o przezroczystości bez utraty jakości. Z drugiej strony bloki JDAA zawierają skompresowane dane alfa JPEG, co pozwala na mniejsze rozmiary plików kosztem potencjalnych stratnych artefaktów kompresji w kanale alfa.
Blok JSEP jest opcjonalnym blokiem, który sygnalizuje koniec strumienia danych JPEG. Jest przydatny w przypadkach, gdy plik JNG jest przesyłany strumieniowo przez sieć, a dekoder musi wiedzieć, kiedy przestać odczytywać dane JPEG i zacząć szukać danych kanału alfa. Ten blok nie jest wymagany, jeśli plik jest odczytywany z lokalnego nośnika pamięci, gdzie koniec danych JPEG można określić na podstawie samej struktury pliku.
JNG obsługuje również korekcję kolorów poprzez dołączenie bloku ICCP, który zawiera osadzony profil kolorów ICC. Ten profil umożliwia dokładne odwzorowanie kolorów na różnych urządzeniach i jest szczególnie ważny w przypadku obrazów, które będą wyświetlane na różnych ekranach lub drukowane. Włączenie możliwości zarządzania kolorami jest znaczącą zaletą formatu JNG w porównaniu z samodzielnymi plikami JPEG, które z natury nie obsługują osadzonych profili kolorów.
Pomimo swoich możliwości format JNG nie zyskał szerokiego zastosowania. Wynika to częściowo z dominacji formatu JPEG w przypadku obrazów fotograficznych i formatu PNG w przypadku obrazów wymagających przezroczystości. Ponadto pojawienie się formatów takich jak WebP i HEIF, które również obsługują zarówno kompresję stratną, jak i bezstratną, a także przezroczystość, jeszcze bardziej zmniejszyło potrzebę stosowania oddzielnego formatu, takiego jak JNG. Jednak JNG pozostaje realną opcją w przypadku określonych przypadków użycia, w których wymagana jest jego unikalna kombinacja funkcji.
Jednym z powodów braku powszechnego przyjęcia JNG jest złożoność pakietu formatów plików MNG. Chociaż sam JNG jest stosunkowo prosty, jest częścią większego i bardziej złożonego zestawu specyfikacji, które nie zostały szeroko wdrożone. Wielu deweloperów oprogramowania zdecydowało się zamiast tego obsługiwać prostsze i bardziej popularne formaty JPEG i PNG, które spełniały potrzeby większości użytkowników bez dodatkowej złożoności MNG i JNG.
Kolejnym czynnikiem, który ograniczył przyjęcie JNG, jest brak obsługi w popularnym oprogramowaniu do edycji i przeglądania obrazów. Chociaż niektóre specjalistyczne oprogramowanie może obsługiwać JNG, wiele najczęściej używanych programów tego nie robi. Ten brak obsługi oznacza, że użytkownicy i deweloperzy rzadziej spotykają się z plikami JNG lub ich używają, co jeszcze bardziej zmniejsza ich obecność na rynku.
Pomimo tych wyzwań JNG ma swoich zwolenników, szczególnie wśród tych, którzy doceniają jego możliwości techniczne. Na przykład JNG może być przydatny w aplikacjach, w których pojedynczy plik musi zawierać zarówno wysokiej jakości obraz fotograficzny, jak i oddzielny kanał alfa dla przezroczystości. Może to być ważne w projektowaniu graficznym, tworzeniu gier i innych dziedzinach, w których obrazy muszą być kompozytowane na różnych tłach.
Techniczny projekt JNG umożliwia również potencjalne optymalizacje rozmiaru i jakości pliku. Na przykład poprzez oddzielenie danych o kolorze i alfa można zastosować różne poziomy kompresji do każdego z nich, optymalizując najlepszą równowagę między rozmiarem pliku a jakością obrazu. Może to skutkować mniejszymi plikami niż w przypadku zastosowania jednej metody kompresji do całego obrazu, jak ma to miejsce w przypadku formatów takich jak PNG.
Podsumowując, format obrazu JNG to wyspecjalizowany format pliku, który oferuje unikalną kombinację funkcji, w tym obsługę zarówno kompresji stratnej, jak i bezstratnej, opcjonalny kanał alfa dla przezroczystości i możliwości zarządzania kolorami. Chociaż nie zyskał powszechnego zastosowania, pozostaje technicznie sprawnym formatem, który może być odpowiedni do określonych zastosowań. Jego przyszłe znaczenie prawdopodobnie będzie zależeć od tego, czy pojawi się odnowione zainteresowanie jego możliwościami i czy rozszerzy się obsługa oprogramowania dla tego formatu. Na razie JNG jest świadectwem ciągłej ewolucji formatów obrazów i poszukiwania idealnej równowagi między kompresją, jakością i funkcjonalnością.
Ten konwerter działa całkowicie w Twojej przeglądarce. Kiedy wybierasz plik, jest on wczytywany do pamięci i konwertowany na wybrany format. Następnie możesz pobrać skonwertowany plik.
Konwersje zaczynają się natychmiast, a większość plików jest konwertowana w mniej niż sekundę. Większe pliki mogą wymagać więcej czasu.
Twoje pliki nigdy nie są przesyłane na nasze serwery. Są konwertowane w Twojej przeglądarce, a następnie pobierany jest skonwertowany 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 więcej.
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 Cię obciążać opłatami.
Tak! Możesz konwertować tyle plików, ile chcesz na raz. Wystarczy wybrać wiele plików podczas ich dodawania.