Zdjęcie na tekst
w przeglądarce
Upuść zrzut ekranu, zdjęcie z telefonu, skan albo jednostronicowy PDF i skopiuj tekst w kilka sekund. Polski, angielski i 23 inne języki. Silnik rozpoznawania uruchamia się w Twojej przeglądarce — plik nie trafia na nasz serwer.
Sprawdź sam: otwórz DevTools, w zakładce Network upuść plik — zobaczysz zero żądań wysyłających Twój obraz.
Trzy kroki.
Upuść obraz
JPG, PNG, WebP, HEIC z iPhone'a albo jednostronicowy PDF. Plik otwiera się w przeglądarce i tam zostaje. Przy pierwszym użyciu silnik OCR (około 10 MB) pobiera się do przeglądarki i ląduje w cache — każde kolejne uruchomienie startuje natychmiast i działa offline.
Poczekaj kilka sekund, silnik czyta
Tesseract.js — port silnika OCR Tesseract do WebAssembly, utrzymywany przez Google — pracuje w całości w Twojej przeglądarce. Czysty skan A4 kończy się w 3–8 sekund na nowoczesnym laptopie; zdjęcie paragonu albo szyldu z telefonu zazwyczaj poniżej 4 sekund. Pasek postępu pokazuje zarówno rozgrzewkę silnika, jak i rozpoznawanie strony.
Skopiuj tekst albo pobierz .txt
Wynik trafia do pola tekstowego z oceną pewności. Skopiuj do schowka albo pobierz jako .txt w UTF-8. Wszystko, co się wykonało — rdzeń WASM, model języka, samo rozpoznawanie — zdarzyło się na Twoim urządzeniu. Żaden plik, żaden rozpoznany tekst ani żadne metadane nie dotarły na nasz serwer.
Co właściwie robi OCR
OCR (Optical Character Recognition, rozpoznawanie znaków) zamienia piksele wyglądające jak litery w tekst, który komputer rozumie. Zdjęcie paragonu albo zeskanowana strona umowy są dla komputera tylko zbiorem kolorowych kropek, dopóki model nauczony na milionach drukowanych znaków nie zmapuje każdego wzoru z powrotem na a, b, 9, =. Silnik użyty tutaj to Tesseract — ten sam, który wykorzystuje Internet Archive do digitalizacji książek, większość czytników PDF z otwartym źródłem oraz ABBYY w darmowej wersji — tylko że tu skompilowany do WebAssembly i uruchamiany w Twojej przeglądarce zamiast na cudzym serwerze.
Co można upuścić
JPG, PNG, WebP, HEIC (z iPhone'a) i jednostronicowy PDF. HEIC jest dekodowany wewnątrz przeglądarki — bez osobnego kroku konwersji. Wielostronicowy PDF: rozpoznawana jest tylko pierwsza strona; jeśli potrzebujesz każdej, najpierw podziel PDF za pomocą split-pdf i uruchom każdą osobno. Zdjęcia prosto z telefonu działają; tak samo zrzuty ekranu, skany ze skanera płaskiego i screenshoty. Praktyczny limit to 25 MB na plik — powyżej tego przeglądarka zaczyna mieć problem z utrzymaniem w pamięci jednocześnie obszaru roboczego canvas i sterty WASM.
Jak wygląda dobre źródło
Jakość OCR zależy przede wszystkim od obrazu, nie od silnika. Skan ze skanera płaskiego w 300 DPI maszynopisanej strony osiąga 98–99% dokładności bez żadnego dostrajania. Ostre zdjęcie paragonu w przyzwoitym świetle: 95%+. Rozmyte zdjęcie umowy zrobione pod kątem w słabym świetle: 60–80%, i wynik będzie wymagał korekty. Trzy rzeczy mają największy wpływ na dokładność: ostrość (zogniskuj aparat zanim klikniesz), kontrast (paragon ze sklepu z białym tekstem na czarnym tle jest trudniejszy niż czarny tekst na białym) i orientacja (silnik radzi sobie z lekkim przekrzywieniem, ale obraz obrócony o 90 stopni trzeba najpierw wyprostować). Jeśli skanujesz dowód osobisty, paszport, umowę albo wyciąg z konta i dokładność ma znaczenie, najpierw użyj aplikacji typu skaner — iPhone Notatki, Google Drive albo Adobe Scan poprawiają perspektywę i kontrast przed zapisem.
Języki
Wersja v1 dostaje 25 języków — po jednym na locale Vastiko plus chiński uproszczony dla użytkowników kontynentalnych. Łaciński: angielski, niemiecki, francuski, hiszpański, włoski, portugalski (obsługuje też brazylijski), polski, niderlandzki, duński, szwedzki, rumuński, węgierski, czeski, turecki, indonezyjski, wietnamski. Cyrylica: rosyjski, ukraiński. Grecki. Arabski (zapis od prawej do lewej). Tajski. CJK: japoński, koreański, chiński uproszczony (kontynent), chiński tradycyjny (Tajwan / Hongkong).
Narzędzie próbuje odgadnąć Twój język na podstawie locale przeglądarki przy pierwszym uruchomieniu — przeglądarka po polsku otwiera się z polskim wstępnie wybranym, japońska z japońskim i tak dalej. Możesz zmienić język w każdej chwili w górnym pasku; Twój ostatni wybór zostaje zachowany między sesjami. Każdy pakiet językowy pobiera się tylko przy pierwszym użyciu (1–6 MB w zależności od alfabetu — alfabety łacińskie kompresują się lepiej niż CJK) i ląduje w cache przeglądarki. Zmiana języka to jednorazowe pobranie na język; kolejne użycia są natychmiastowe.
Polskie dokumenty w realnych warunkach rzadko są w 100% po polsku. Umowa wspomina Excel, PDF i WhatsApp. Wyciąg z konta zawiera SWIFT, IBAN i nazwy banków po angielsku. Faktura w PDF od zagranicznego klienta wymienia VAT i NIP obok angielskich nazw firm. Dlatego wybranie dowolnego języka innego niż angielski jako podstawowego automatycznie ładuje angielski jako wtórny alfabet w tym samym przebiegu rozpoznawania — silnik bierze pod uwagę oba alfabety i wybiera odczyt z wyższą pewnością dla każdego słowa. Koszt: około 2× pamięci i ~30% wolniej niż pojedynczy język, warte tego, bo alternatywa to nazwy marek po angielsku wychodzące jako bełkot w środku polskiego tekstu.
Czego to narzędzie nie zrobi dobrze
Pisma odręcznego. Tesseract jest trenowany na tekście drukowanym. Pismo łączone, recepty lekarza, notatki z zeszytu — te mylą model (Microsoft Read API i Google Cloud Vision radzą sobie znacząco lepiej, ale oba wymagają wysyłki obrazu). Złożonych tabel. PDF z arkuszem kalkulacyjnym wychodzi jako płaski tekst ze sklejonymi kolumnami; to narzędzie zachowuje porządek czytania, nie strukturę tabeli. Dla tabel, które muszą zostać tabelami z danymi, użyj pdf-to-excel. Czcionek dekoracyjnych albo stylizowanych. Logo, czcionka nagłówka wyświetlająca, efekty renderowanego tekstu — często zawodzą albo wracają jako bełkot, ponieważ model oczekuje kształtów tekstu ciągłego. Bardzo niskiej rozdzielczości. Zrzut ekranu o szerokości 320 pikseli: zgaduje. Szerokość 1500 pikseli: czyta.
Dlaczego trzymamy to w Twojej przeglądarce
Ludzie robią OCR dokumentów osobistych: skan dowodu osobistego, żeby wypełnić wniosek wizowy, rachunek z prywatnej kliniki, wyciąg z konta dla wniosku kredytowego, umowa, którą ktoś przysłał jako JPG zamiast Worda. Najkrótsza droga od tych zdjęć do czytelnego tekstu w schowku zwykle prowadzi przez czyjąś darmową stronę OCR, która cicho przechowuje upload „w celu poprawy jakości”. Przetestowaliśmy popularne strony pod kątem prywatności w naszym privacy audit edytorów PDF i wzorzec się powtarza w OCR: upload na serwer, polityka retencji mówiąca „kilka godzin”, ale sięgająca do tego samego dysku miesiące później, analityka trzecich stron dostająca hash kształtu pliku. Wykonaliśmy pracę, żeby OCR działał w całości na urządzeniu, ponieważ typ pliku, który tutaj wskazujesz, to dokładnie ten typ, którego wolisz nie oddawać na czyjś serwer.
Co się dzieje z Twoim plikiem
Otwórz DevTools, przejdź na zakładkę Network i upuść plik. Zobaczysz jednorazowe pobranie rdzenia WASM i polskiego modelu językowego (razem około 10 MB) przy pierwszym uruchomieniu, a potem absolutnie zero żądań wychodzących z jakąkolwiek częścią Twojego pliku. Przy kolejnych uruchomieniach żądań nie ma w ogóle — silnik jest w cache, strona działa offline. Rozpoznany tekst żyje w polu tekstowym przeglądarki, z którego możesz kopiować albo pobrać jako .txt. Nic z tego nigdy nie dotyka żadnego naszego loga.
Kiedy OCR po stronie serwera ma większy sens
Jeśli przetwarzasz 10 000 faktur na noc, narzędzie w przeglądarce ma zły kształt — potrzebujesz kolejki i floty workerów z GPU. Jeśli potrzebujesz OCR pisma odręcznego z wysoką dokładnością, chmurowe API są wciąż lepsze niż open-source. Jeśli Twoje dokumenty są publiczne — archiwa historyczne, umowy z domeny publicznej, zrzuty ekranu z Twojego własnego bloga — nie ma żadnej korzyści z prywatności, a serwer może być szybszy. Nie chodzi o to, że lokalny OCR wygrywa w każdym scenariuszu; chodzi o to, że dla zdjęć, które leżą w rolce aparatu jednej osoby, kalkulacja się odwraca i nie powinno to wymagać aktu wiary w politykę retencji.
Jeśli masz już PDF z warstwą tekstową — większość PDF-ów tworzonych cyfrowo ją ma — użyj zamiast tego pdf-to-txt: jest szybszy i bezstratny, bo czyta wbudowany tekst zamiast uruchamiać OCR na wyrenderowanej stronie.
Częste pytania
Czy mój obraz trafia na Wasz serwer?
Nie. Obraz otwiera się w Twojej przeglądarce i tam jest przetwarzany. Silnik rozpoznawania — Tesseract.js — pobiera się raz (~10 MB), ląduje w cache przeglądarki i działa lokalnie. Sprawdź sam: otwórz DevTools, przejdź na zakładkę Network i upuść plik — nie zobaczysz żadnego żądania wychodzącego z Twoim obrazem.
Jakie typy plików są obsługiwane?
JPG, PNG, WebP, HEIC (iPhone) i jednostronicowy PDF. HEIC jest dekodowany w przeglądarce — bez osobnej konwersji. Wielostronicowe PDF: rozpoznawana jest tylko pierwsza strona; najpierw podziel PDF za pomocą split-pdf, jeśli potrzebujesz każdej.
Jakie języki są rozpoznawane?
25 języków: angielski, niemiecki, francuski, hiszpański, włoski, portugalski (obsługuje też brazylijski), polski, niderlandzki, duński, szwedzki, rumuński, węgierski, czeski, turecki, indonezyjski, wietnamski, rosyjski, ukraiński, grecki, arabski, tajski, japoński, koreański, chiński uproszczony i chiński tradycyjny. Selektor znajduje się w górnym pasku; domyślny język jest wykrywany na podstawie locale przeglądarki i zostaje zapamiętany między sesjami.
Jaka jest dokładność rozpoznawania?
Na czystym skanie w 300 DPI maszynopisanego tekstu: 98–99%. Na ostrym zdjęciu drukowanej strony albo paragonu: 95%+. Na rozmytym, słabo oświetlonym albo przekrzywionym obrazie: 60–80% — wynik będzie wymagał korekty. Każdy rezultat pokazuje ocenę pewności, więc wiesz, w którą stronę tego zakresu trafiłeś.
Co z dokumentami mieszającymi polski i angielski?
Obsługiwane automatycznie. Wybierz polski jako podstawowy, a silnik załaduje angielski jako wtórny alfabet w tym samym przebiegu rozpoznawania — dzięki temu nazwy marek (Excel, WhatsApp, PDF), adresy URL i angielskie terminy techniczne wychodzą czysto obok polskiego tekstu. Mała plakietka + EN obok selektora pokazuje, kiedy ten tryb mieszany jest aktywny. Koszt to ~30% wolniejsze rozpoznawanie i ~2× pamięci; włączamy domyślnie, ponieważ alternatywa — pojedynczy przebieg języka na dokumencie mieszanym — to dokładnie to, co powoduje zniekształcone nazwy marek.
Czy działa z pismem odręcznym?
Słabo. Tesseract jest trenowany na tekście drukowanym — pismo łączone, recepty i notatki ręczne go mylą. Dla pisma odręcznego Microsoft Read API i Google Cloud Vision radzą sobie znacząco lepiej, ale oba wymagają uploadu obrazu.
Dlaczego pierwsze uruchomienie jest wolne?
Ponieważ silnik rozpoznawania — około 10 MB WebAssembly plus model językowy — pobiera się do Twojej przeglądarki przy pierwszym użyciu. Potem silnik zostaje w cache i rozpoznawanie startuje natychmiast. Strona działa offline po pierwszym załadowaniu.
Czy można używać na telefonie?
Tak. Strona to zwykła strona internetowa działająca w każdej nowoczesnej przeglądarce mobilnej. Na starszych telefonach pierwsze uruchomienie trwa dłużej z powodu pobierania silnika; kolejne są szybkie.
A tabele, układy wielokolumnowe albo złożone dokumenty?
Tekst wychodzi w porządku czytania jako płaski strumień akapitów — struktura tabeli nie jest zachowana. Dla PDF-ów, gdzie potrzebujesz wierszy i kolumn jako danych, użyj pdf-to-excel. Dla PDF, który ma już warstwę tekstową (większość PDF-ów tworzonych cyfrowo ją ma), użyj pdf-to-txt — jest szybszy, bezstratny i nie potrzebuje OCR.
Czy jest bezpłatne? Są limity?
Tak — bez konta, bez znaku wodnego, bez limitu na eksport. Przetwarzanie działa na Twoim urządzeniu, więc nie ma kosztu serwera do odzyskania. Praktyczny limit rozmiaru pliku: 25 MB na obraz, żeby przeglądarka nie wyczerpała pamięci.