Porównanie silników OCR: Tesseract, Surya i pdfplumber w jednym obrazie Docker
Weź jedną fakturę i przetestuj ją na 4 OCRach.
Pierwszy czyta tylko tekst, który już jest wpisany w PDF, w mniej niż sekundę. Drugi wpatruje się w piksele i mówi, jak bardzo jest pewny każdego słowa. Trzeci rozumie stronę jak człowiek: gdzie zaczyna się tabela, co jest pierwsze, co jest nagłówkiem. Czwarty mieszka w chmurze i nie spieszy się.
Dostajesz cztery różne teksty. Który jest poprawny?
Zadawałam sobie to pytanie w projekt po projekcie. Dlatego wszystkich czterech OCR-ów umieściłam w jednym pudełku.
ocrHub to darmowy obraz Docker z otwartym kodem, który uruchamia kilka silników OCR (Tesseract, pdfplumber, Surya, Datalab) na tym samym dokumencie, żeby można było porównać ich wyniki obok siebie. Jego celem jest porównanie, a szybkość jest na drugim miejscu.

Jedna strona testowa, cztery silniki, widok obok siebie. pdfplumber potrzebował 0,3 s, Tesseract 3,8 s, a Datalab 10,9 s. pdfplumber i Surya odtwarzają tabelę sprzedaży jako siatkę, a Tesseract zwraca ją jako zwykłe linie tekstu.
Dlaczego nie ma jednego najlepszego silnika OCR?
Pod hasłem „OCR" kryją się bardzo różne zadania. PDF utworzony cyfrowo, zdjęcie paragonu i gęsta strona gazety wymagają różnych silników. Jedyny pewny sposób wyboru to test na własnych plikach. Do tego służy ocrHub.
Czym różnią się Tesseract, Surya, pdfplumber i Datalab?
| Silnik | Najlepszy do | Co dostajesz | Typowa szybkość (CPU, moje testy) |
|---|---|---|---|
| pdfplumber | PDF utworzonych cyfrowo | Warstwa tekstowa, czcionki, tabele | Poniżej 1 sekundy |
| Tesseract | Czyste skany i obrazy | Tekst, pewność dla każdego słowa, ramki linii | 2-20 s na stronę |
| Surya | Złożone układy stron | Regiony układu, kolejność czytania, tabele | Około 3 min dla 2-stronicowego PDF; potrzebuje około 6 GB RAM |
| Datalab (chmura) | Układ i tabele bez obciążania komputera | Bloki układu, tabele HTML | 10 s do 2,5 min; płatny, z darmowym limitem miesięcznym |
Czasy pochodzą z moich testów na starszym MacBooku Pro z Docker Desktop (limit pamięci 8 GB), więc traktuj je orientacyjnie. Na nowszym sprzęcie będzie szybciej.
Który silnik OCR wybrać?
- PDF utworzony cyfrowo (tekst można zaznaczyć): pdfplumber. Czyta warstwę tekstową bezpośrednio, więc jest szybki i dokładny.
- Czysty skan lub zdjęcie: Tesseract. Jest lekki, a pewność dla każdego słowa pokazuje, co sprawdzić ręcznie.
- Złożony układ, tabele lub kolejność czytania: Surya lokalnie albo Datalab, jeśli usługa w chmurze jest akceptowalna.
Nadal nie wiesz? Przepuść własny plik przez wszystkie silniki i porównaj różnice.
Jak uruchomić porównanie OCR w Dockerze?
Jedno polecenie, bez budowania:
docker run -p 8000:8000 -v "$PWD/data:/home/ocrhub/data" ghcr.io/misky8/ocrhub:latest
Otwórz localhost:8000, wgraj obraz lub PDF, zaznacz silniki i oglądaj wyniki obok siebie albo jako nakładkę. Ten obraz zawiera Tesseract i pdfplumber (około 640 MB). Aby dodać Surya i Datalab, zbuduj obraz ze źródeł z ENGINES=surya,datalab. Pełna instrukcja jest w README na GitHubie.
Czy agent AI może używać OCR przez MCP lub API?
Tak. Te same silniki są dostępne przez API HTTP (POST /ocr) i przez serwer MCP, więc agent taki jak Claude Code może wywołać OCR bezpośrednio:
claude mcp add --transport http ocrhub http://localhost:8000/mcp/
Czy to darmowe i działa na własnym serwerze?
Tak. ocrHub ma licencję MIT i działa na CPU w jednym kontenerze, a Twoje pliki zostają na Twoim komputerze. Jedynym silnikiem w chmurze jest Datalab, i tylko wtedy, gdy go włączysz.
Wypróbuj, daj gwiazdkę albo napisz, co nie działa: github.com/MiSky8/ocrHUB
Potrzebujesz OCR wpiętego w pipeline dokumentów w swojej firmie? W Nexi8 faktury, umowy i skany zamieniają się w uporządkowane dane dla bazy wiedzy, raportów i wewnętrznych agentów AI.
Który dokument przetestujesz najpierw: zeskanowany paragon czy ten, który spędza Ci sen z powiek?