← Wszystkie notatki

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.

Panel ocrHub do porównania silników OCR: oryginalna strona obok wyników pdfplumber, Tesseract, Surya i Datalab, z ramkami narysowanymi na każdym wyniku

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?