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 (JP2) to standard kompresji obrazu i system kodowania, który został stworzony przez komitet Joint Photographic Experts Group (JPEG) w 2000 roku z zamiarem zastąpienia oryginalnego standardu JPEG. JPEG 2000 jest również znany z rozszerzenia nazwy pliku .jp2. Został opracowany od podstaw, aby rozwiązać niektóre ograniczenia oryginalnego formatu JPEG, zapewniając jednocześnie lepszą jakość obrazu i elastyczność. Ważne jest, aby zauważyć, że JPC jest często używany jako termin odnoszący się do strumienia kodu JPEG 2000, który jest rzeczywistym strumieniem bajtów reprezentującym skompresowane dane obrazu, zwykle znajdującym się w plikach JP2 lub innych formatach kontenerów, takich jak MJ2 dla sekwencji JPEG 2000.
JPEG 2000 wykorzystuje kompresję opartą na faletkach, w przeciwieństwie do dyskretnej transformacji kosinusowej (DCT) używanej w oryginalnym formacie JPEG. Kompresja faletkowa zapewnia kilka zalet, w tym lepszą wydajność kompresji, szczególnie w przypadku obrazów o wyższej rozdzielczości, oraz lepszą jakość obrazu przy wyższych współczynnikach kompresji. Wynika to z faktu, że faletki nie cierpią na „blokowe” artefakty, które mogą być wprowadzane przez DCT, gdy obrazy są mocno skompresowane. Zamiast tego kompresja faletkowa może prowadzić do bardziej naturalnej degradacji jakości obrazu, która jest często mniej zauważalna dla ludzkiego oka.
Jedną z kluczowych cech JPEG 2000 jest obsługa zarówno kompresji bezstratnej, jak i stratnej w tym samym formacie pliku. Oznacza to, że użytkownicy mogą wybrać kompresję obrazu bez utraty jakości lub zdecydować się na kompresję stratną, aby uzyskać mniejsze rozmiary plików. Tryb bezstratny JPEG 2000 jest szczególnie przydatny w zastosowaniach, w których integralność obrazu jest krytyczna, takich jak obrazowanie medyczne, archiwa cyfrowe i fotografia profesjonalna.
Kolejną ważną cechą JPEG 2000 jest obsługa progresywnego dekodowania. Pozwala to na dekodowanie i wyświetlanie obrazu stopniowo w miarę odbierania danych, co może być bardzo przydatne w przypadku aplikacji internetowych lub sytuacji, gdy przepustowość jest ograniczona. Dzięki progresywnemu dekodowaniu najpierw można wyświetlić wersję niskiej jakości całego obrazu, a następnie kolejne udoskonalenia, które poprawiają jakość obrazu w miarę dostępności większej ilości danych. Jest to w przeciwieństwie do oryginalnego formatu JPEG, który zwykle ładuje obraz od góry do dołu.
JPEG 2000 oferuje również bogaty zestaw dodatkowych funkcji, w tym kodowanie regionu zainteresowania (ROI), które pozwala na kompresję różnych części obrazu przy różnych poziomach jakości. Jest to szczególnie przydatne, gdy niektóre obszary obrazu są ważniejsze niż inne i muszą być zachowane z większą dokładnością. Na przykład na obrazie satelitarnym obszar zainteresowania może być skompresowany bezstratnie, podczas gdy otaczające obszary są kompresowane stratnie, aby zaoszczędzić miejsce.
Standard JPEG 2000 obsługuje również szeroką gamę przestrzeni kolorów, w tym skale szarości, RGB, YCbCr i inne, a także głębię kolorów od 1 bita (binarnego) do 16 bitów na składnik zarówno w trybach bezstratnym, jak i stratnym. Ta elastyczność sprawia, że jest odpowiedni do różnych zastosowań obrazowania, od prostych grafik internetowych po złożone obrazy medyczne wymagające wysokiego zakresu dynamiki i precyzyjnego odwzorowania kolorów.
Pod względem struktury pliku plik JPEG 2000 składa się z serii pudełek, które zawierają różne informacje o pliku. Głównym pudełkiem jest pudełko nagłówka JP2, które zawiera właściwości takie jak typ pliku, rozmiar obrazu, głębia bitowa i przestrzeń kolorów. Po nagłówku znajdują się dodatkowe pola, które mogą zawierać metadane, informacje o profilu kolorów i rzeczywiste skompresowane dane obrazu (strumień kodowy).
Sam strumień kodowy składa się z serii znaczników i segmentów, które definiują sposób kompresji danych obrazu i sposób ich dekodowania. Strumień kodowy zaczyna się od znacznika SOC (Start of Codestream) i kończy znacznikiem EOC (End of Codestream). Pomiędzy tymi znacznikami znajduje się kilka ważnych segmentów, w tym segment SIZ (Image and tile size), który definiuje wymiary obrazu i kafelków, oraz segment COD (Coding style default), który określa transformację faletkową i parametry kwantyzacji używane do kompresji.
Odporność na błędy JPEG 2000 to kolejna cecha, która odróżnia go od poprzednika. Strumień kodowy może zawierać informacje o korekcji błędów, które umożliwiają dekoderom wykrywanie i korygowanie błędów, które mogły wystąpić podczas transmisji. Dzięki temu JPEG 2000 jest dobrym wyborem do przesyłania obrazów przez kanały z zakłóceniami lub przechowywania obrazów w sposób minimalizujący ryzyko uszkodzenia danych.
Pomimo wielu zalet, JPEG 2000 nie zyskał tak szerokiego zastosowania w porównaniu z oryginalnym formatem JPEG. Wynika to częściowo z większej złożoności obliczeniowej kompresji i dekompresji opartej na faletkach, która może wymagać większej mocy obliczeniowej i może być wolniejsza niż metody oparte na DCT. Ponadto oryginalny format JPEG jest głęboko zakorzeniony w branży obrazowania i ma szerokie wsparcie w oprogramowaniu i sprzęcie, co czyni go domyślnym wyborem dla wielu aplikacji.
Jednak JPEG 2000 znalazł niszę w niektórych dziedzinach, w których jego zaawansowane funkcje są szczególnie korzystne. Na przykład jest używany w kinie cyfrowym do dystrybucji filmów, gdzie ważna jest jego wysokiej jakości reprezentacja obrazu i obsługa różnych współczynników proporcji i szybkości klatek. Jest również używany w systemach informacji geograficznej (GIS) i teledetekcji, gdzie jego zdolność do obsługi bardzo dużych obrazów i obsługa kodowania ROI są cenne.
Dla programistów i inżynierów oprogramowania pracujących z JPEG 2000 dostępnych jest kilka bibliotek i narzędzi, które zapewniają obsługę kodowania i dekodowania plików JP2. Jedną z najbardziej znanych jest biblioteka OpenJPEG, która jest kodekiem JPEG 2000 typu open source napisanym w języku C. Inne komercyjne pakiety oprogramowania również oferują obsługę JPEG 2000, często z zoptymalizowaną wydajnością i dodatkowymi funkcjami.
Podsumowując, format obrazu JPEG 2000 oferuje szereg funkcji i ulepszeń w stosunku do oryginalnego standardu JPEG, w tym lepszą wydajność kompresji, obsługę zarówno kompresji bezstratnej, jak i stratnej, progresywne dekodowanie i zaawansowaną odporność na błędy. Chociaż nie zastąpił JPEG w większości głównych aplikacji, służy jako cenne narzędzie w branżach wymagających wysokiej jakości przechowywania i przesyłania obrazów. W miarę postępu technologii i rosnącego zapotrzebowania na bardziej wyrafinowane rozwiązania obrazowania, JPEG 2000 może zyskać większą adopcję na nowych i istniejących rynkach.
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.