
Surya OCR: darmowe rozpoznawanie tekstu w 90 językach
Datalab, firma znana z projektu Marker, udostępniła Surya OCR – narzędzie open-source obsługujące ponad 90 języków. Projekt oferuje analizę układu strony, rozpoznawanie tabel oraz konwersję wzorów matematycznych do formatu LaTeX. Kod źródłowy jest dostępny na licencji GPL-3.0, co pozwala na swobodne wykorzystanie w projektach komercyjnych pod odpowiednimi warunkami.
TL;DR: Surya OCR to darmowe narzędzie open-source od Datalab, które oferuje wielojęzyczne rozpoznawanie tekstu, analizę układu strony, detekcję tabel oraz konwersję do LaTeX. Projekt obsługuje ponad 90 języków i jest dostępny na licencji GPL-3.0 na GitHubie. To alternatywa dla komercyjnych rozwiązań typu Tesseract, oferująca modułową architekturę opartą na modelach głębokiego uczenia.
Jak działa wielojęzyczny OCR w Surya?
Surya OCR wykorzystuje architekturę transformera do rozpoznawania tekstu w ponad 90 językach, w tym językach z alfabetami łacińskimi, cyrylickimi, arabskimi oraz azjatyckimi. Zgodnie z dokumentacją na GitHubie, model został wytrenowany na zbiorach danych obejmujących zróżnicowane kroje pisma, dokumenty historyczne i skany niskiej jakości. To rozwiązanie sprawdza się w zadaniach wymagających dużej precyzji. W przeciwieństwie do Tesseracta, Surya generuje wyniki z przypisanym poziomem ufności dla każdego rozpoznanego słowa.
Surya korzysta z modelu detekcji linii tekstowych, który najpierw lokalizuje obszary do przetworzenia, a następnie uruchamia moduł OCR właściwy. Dzięki temu podejściu system radzi sobie z dokumentami o skomplikowanym układzie wielokolumnowym, gdzie tradycyjne algorytmy często zawodzą. Model zwraca współrzędne bounding boxów wraz z rozpoznanym tekstem, co ułatwia dalsze przetwarzanie programistyczne.
Co więcej, narzędzie radzi sobie z tekstami pisanymi ręcznie, choć w takich przypadkach dokładność jest niższa. Warto sprawdzić to rozwiązanie przy digitalizacji archiwów, gdzie zróżnicowanie jakości skanów stanowi główne wyzwanie.
Czym jest analiza układu strony w tym narzędziu?
Analiza układu strony (layout analysis) to moduł, który klasyfikuje regiony dokumentu na kategorie: tekst, nagłówek, obraz, tabela, podpis, stopka, numer strony. Zgodnie z informacjami w repozytorium, model osiąga wysoką dokładność klasyfikacji na standardowych zestawach testowych typu PublayNet. Wynik działania to struktura JSON zawierająca współrzędne każdego elementu wraz z przypisaną etykietą.
Moduł ten jest przydatny przy przetwarzaniu dokumentów naukowych, faktur czy umów, gdzie poprawna identyfikacja sekcji jest niezbędna do dalszej automatyzacji. Na przykład system może odróżnić nagłówek od akapitu, co pozwala na zachowanie hierarchii tekstu podczas konwersji do formatów strukturalnych.
Ponadto, layout analysis działa niezależnie od modułu OCR, co oznacza, że można używać jej do samej klasyfikacji dokumentów bez rozpoznawania tekstu. To podejście jest wydajniejsze obliczeniowo. Rekomenduję przetestowanie tego modułu osobno, jeśli potrzebujesz szybkiej kategoryzacji zbiorów dokumentów.
Jak Surya radzi sobie z rozpoznawaniem tabel?
Rozpoznawanie tabel to jedno z trudniejszych zadań w przetwarzaniu dokumentów. Surya oferuje dedykowany moduł, który identyfikuje komórki, wiersze i kolumny, a następnie zwraca ich współrzędne w ustrukturyzowanym formacie.
Wynik działania modułu można przekonwertować do formatu CSV, HTML lub pandas DataFrame, co ułatwia integrację z narzędziami analitycznymi. Poniżej zestawienie głównych formatów wyjściowych:
- Współrzędne bounding boxów każdej komórki w pikselach
- Struktura JSON z informacją o scalonych komórkach
- Eksport do HTML z zachowaniem układu wizualnego
- Konwersja do pandas DataFrame do analizy danych
Trzeba jednak pamiętać, że jakość detekcji zależy od czytelności skanu. Przy dokumentach o niskiej rozdzielczości dokładność spada, zwłaszcza przy cienkich obramowaniach komórek.
Czy narzędzie obsługuje konwersję wzorów matematycznych do LaTeX?
Tak, Surya OCR zawiera moduł do rozpoznawania wzorów matematycznych i konwersji ich do formatu LaTeX. Funkcja ta jest szczególnie przydatna przy digitalizacji publikacji naukowych, podręczników czy prac dyplomowych. Model rozpoznaje ułamki, całki, sumy, macierze oraz greckie litery, a wynikowy kod LaTeX jest gotowy do renderowania w edytorach typu Overleaf.
Zgodnie z repozytorium, moduł LaTeX działa na podobnej architekturze transformerowej co główny OCR, ale został douczany na zbiorach danych zawierających oznaczone wzory matematyczne. To rozwiązanie jest jednym z niewielu dostępnych w ekosystemie open-source, obok projektów takich jak Pix2Tex.
Mimo to, przy skomplikowanych wyrażeniach z wielopoziomowymi ułamkami lub zagnieżdżonymi nawiasami, dokładność konwersji bywa niższa. Warto weryfikować wyniki ręcznie przy dokumentach o znaczeniu publikacyjnym.
Jakie są wymagania sprzętowe i ograniczenia?
Surya OCR wymaga środowiska Python 3.8+ oraz biblioteki PyTorch. Do uruchomienia pełnego pipeline’u zalecane jest GPU z minimum 6 GB VRAM, choć podstawowe funkcje OCR działają również na CPU – znacznie wolniej. Instalacja przebiega przez standardowy menedżer pakietów pip, a wszystkie modele są pobierane automatycznie przy pierwszym uruchomieniu.
Główne ograniczenia narzędzia obejmują:
- Wolne działanie na CPU przy dużych dokumentach
- Konieczność posiadania GPU do wydajnego przetwarzania batchowego
- Ograniczona dokładność przy tekście ręcznym
- Brak wbudowanego interfejsu graficznego – tylko API i CLI
- Licencja GPL-3.0 wymagająca kompatybilności przy użyciu komercyjnym
| Komponent | Wymaganie | Zalecane |
|---|---|---|
| Python | 3.8+ | 3.10+ |
| RAM | 8 GB | 16+ GB |
| GPU VRAM | 4 GB | 8+ GB |
| PyTorch | 1.13+ | 2.0+ |
Szczegółowe instrukcje instalacji i przykłady użycia są dostępne w oficjalnym repozytorium Surya OCR na GitHubie. Projekt jest aktywnie rozwijany, z regularnymi aktualizacjami modeli.
Więcej o przetwarzaniu dokumentów i narzędziach open-source można przeczytać w artykule o Microsoft udostępnia jako open-source najwcześniejszy kod źródłowy systemu DOS. Z kolei temat analizy danych tekstowych poruszono w publikacji Pretext: TypeScript library for multiline text measurement and layout.
Jak zainstalować i uruchomić Surya OCR?
Instalacja Surya OCR wymaga środowiska Python w wersji 3.8 lub nowszej oraz zainstalowanej biblioteki PyTorch. Cały proces opiera się na standardowym menedżerze pakietów pip, a wszystkie modele wagowe są pobierane automatycznie podczas pierwszego uruchomienia skryptu. Podstawowa konfiguracja zajmuje kilka minut na maszynie z systemem Linux lub macOS.
Zgodnie z instrukcją w oficjalnym repozytorium Surya OCR na GitHubie, instalacja sprowadza się do wykonania jednej komendy w terminalu:
pip install surya-ocr
Narzędzie nie posiada wbudowanego interfejsu graficznego, dlatego cała interakcja odbywa się przez API lub wiersz poleceń (CLI). To podejście daje dużą elastyczność przy budowaniu własnych pipeline’ów przetwarzania dokumentów.
Ponadto, do sprawnego działania pełnego modułu analizy layoutu potrzebne jest GPU. Przetwarzanie na procesorze CPU jest możliwe, jednakże czas działania wydłuża się znacząco przy wielostronicowych plikach PDF. Pełną dokumentację techniczną instalacji można znaleźć bezpośrednio na stronie projektu VikParuchuri na GitHubie.
Jak wygląda porównanie Surya OCR z Tesseractem?
Tesseract to najpopularniejszy silnik OCR open-source, jednak Surya OCR oferuje nowocześniejszą architekturę opartą na modelach transformerowych. To ułatwia budowę systemów o podwyższonej niezawodności.
Z testów opublikowanych przez twórcę w repozytorium wynika, że Surya osiąga wyższą dokładność przy dokumentach wielojęzycznych oraz skanach o niskiej jakości. Tesseract potrafi radzić sobie z prostymi układami tekstu, ale ma problem z analizą skomplikowanych wielokolumnowych stron. Surya z kolei oferuje dedykowany moduł layout analysis, który najpierw klasyfikuje regiony, a dopiero potem uruchamia rozpoznawanie znaków.
Co więcej, Tesseract nie posiada wbudowanego modułu do konwersji wzorów matematycznych do formatu LaTeX. Surya wypełnia tę lukę, oferując dedykowany model douczony na oznaczonych wyrażeniach matematycznych. Zestawienie obu narzędzi pokazuje przewagę nowszej architektury przy skomplikowanych zadaniach. Więcej o narzędziach open-source przeczytasz w tekście o tym, jak Microsoft udostępnia jako open-source najwcześniejszy kod źródłowy systemu DOS.
Jakie są przypadki użycia Surya OCR w biznesie?
Surya OCR sprawdza się przy digitalizacji dużych archiwów dokumentów, automatyzacji przetwarzania faktur oraz konwersji publikacji naukowych do formatów tekstowych. Moduł rozpoznawania tabel umożliwia ekstrakcję danych finansowych bezpośrednio do formatu pandas DataFrame, co przyspiesza analizę danych. To konkretne zastosowanie dla działów księgowości.
Ponadto, narzędzie jest używane przy budowie systemów RAG (Retrieval-Augmented Generation), gdzie poprawna strukturyzacja dokumentów PDF jest kluczowa dla jakości odpowiedzi modelu językowego. Moduł layout analysis pozwala na oddzielenie tekstu głównego od nagłówków, przypisów i stopek, co poprawia precyzję wyszukiwania semantycznego.
Z kolei przy digitalizacji materiałów edukacyjnych moduł LaTeX umożliwia automatyczną konwersję wzorów z podręczników do edytowalnego kodu. Działanie to oszczędza czas przy tworzeniu materiałów dydaktycznych. Podobnie jak w przypadku artykułu o tym, jak Pencil.dev – narzędzie AI do projektowania interfejsów zmienia workflow projektantów, odpowiednie narzędzia potrafią przyspieszyć żmudne procesy.
Główne obszary zastosowań obejmują:
- Digitalizacja archiwów historycznych z obsługą ponad 90 języków
- Automatyczna ekstrakcja danych z faktur i dokumentów księgowych
- Konwersja publikacji naukowych z wzorami matematycznymi do LaTeX
- Budowa pipeline’ów RAG z analizą struktury dokumentu
- Przetwarzanie skanów tabel do formatów CSV, HTML i pandas DataFrame
- Kategoryzacja zbiorów dokumentów z wykorzystaniem layout analysis
- Rozpoznawanie tekstu z dokumentów wielokolumnowych
- Wstępna obróbka danych do systemów analitycznych
Jakie są koszty i licencja projektu?
Projekt Surya OCR jest dostępny na licencji GPL-3.0, co oznacza, że kod źródłowy można modyfikować i redystrybuować pod warunkiem zachowania tej samej licencji. Użytkownicy komercyjni muszą uwzględnić wymóg udostępnienia własnych modyfikacji, co może być ograniczeniem dla firm budujących zastrzeżone rozwiązania. Model biznesowy opiera się na darmowym oprogramowaniu.
Zgodnie z informacjami na stronie projektu, Datalab oferuje również płatne API dla użytkowników, którzy nie chcą hostować modeli na własnej infrastrukturze. Koszt korzystania z API zależy od wolumenu przetwarzanych stron. To rozwiązanie jest adresowane do firm bez własnego GPU.
Wobec tego, dla większości programistów i badaczy wersja open-source jest w pełni wystarczająca. Należy jednak pamiętać o wymaganiach sprzętowych – wydajne przetwarzanie wymaga GPU z minimum 6 GB VRAM. Temat modeli biznesowych wokół otwartego oprogramowania poruszono w artykule o tym, czy Zaświadczenie sprzętowe jest narzędziem budowania monopolu.
Często zadawane pytania
Ile języków obsługuje Surya OCR?
Surya OCR obsługuje ponad 90 języków, w tym języki z alfabetami łacińskimi, cyrylickimi, arabskimi oraz azjatyckimi, zgodnie z dokumentacją w oficjalnym repozytorium na GitHubie. Pełna lista języków jest dostępna w pliku konfiguracyjnym projektu.
Czy Surya OCR działa bez karty graficznej?
Tak, narzędzie działa na CPU, jednakże czas przetwarzania jest znacząco dłuższy. Zgodnie z wymaganiami w repozytorium Surya, do wydajnego przetwarzania batchowego zalecane jest GPU z minimum 6 GB VRAM.
Jaka jest różnica między Surya a Marker od Datalab?
Marker to narzędzie do konwersji PDF do Markdown, które korzysta z modeli Surya OCR jako backendu do rozpoznawania tekstu i analizy układu strony. Surya jest biblioteką niższego poziomu, oferującą bezpośredni dostęp do modułów OCR i detekcji layoutu.
Jakie formaty wyjściowe obsługuje moduł tabel?
Moduł rozpoznawania tabel zwraca wyniki jako współrzędne bounding boxów w formacie JSON, a także umożliwia eksport do HTML z zachowaniem układu wizualnego oraz konwersję do pandas DataFrame. Szczegółowe przykłady kodu znajdują się w dokumentacji na GitHubie.
Podsumowanie
Surya OCR to przemyślane narzędzie open-source, które wypełnia lukę między prostymi silnikami OCR a komercyjnymi rozwiązaniami do analizy dokumentów. Modułowa architektura pozwala na używanie poszczególnych funkcji niezależnie – od samej detekcji layoutu po pełny pipeline z rozpoznawaniem tabel i wzorów matematycznych.
Główne wnioski z analizy projektu:
- Obsługa ponad 90 języków z architekturą transformerową zapewnia wysoką dokładność przy skomplikowanych dokumentach
- Dedykowane moduły do analizy layoutu, tabel i konwersji LaTeX oferują funkcje niedostępne w starszych narzędziach
- Licencja GPL-3.0 umożliwia swobodne używanie i modyfikację kodu w projektach badawczych
- Wymagania sprzętowe (GPU 6+ GB VRAM) mogą być barierą dla mniejszych zespołów
- Brak interfejsu graficznego sprawia, że narzędzie jest adresowane głównie do programistów
Zainteresowanych oprogramowaniem open-source zapraszam do lektury artykułu o modelu SANA-WM, 2,6-miliardowym modelu świata open-source do generowania wideo 720p.