Kiedy OCR naprawdę oszczędza czas
Po optyczne rozpoznawanie znaków warto sięgnąć zawsze wtedy, gdy masz przepisywać coś, co już widzisz na ekranie. Typowe sytuacje:
- Zrzut ekranu z komunikatem błędu, fragmentem konfiguracji lub rozmową z czatu, który trzeba wkleić do zgłoszenia albo do wyszukiwarki.
- Zdjęcie wydrukowanego paragonu, numeru faktury, tabliczki znamionowej z numerem seryjnym albo karteczki z hasłem do Wi-Fi.
- Zeskanowana strona książki lub umowy, z której potrzebujesz dwóch akapitów, a nie całego dokumentu.
- Szyld, menu lub ogłoszenie w obcym języku, które chcesz przepuścić przez tłumacza.
Przy wielostronicowym skanie lepiej dodać warstwę tekstową do zeskanowanego PDF: układ strony zostaje zachowany, a pod spodem pojawia się ukryty, przeszukiwalny tekst.
Co się dzieje po przeciągnięciu obrazu
Narzędzie korzysta z Tesseracta, otwartoźródłowego silnika OCR stworzonego pierwotnie w HP, a później rozwijanego przez Google. Jest skompilowany do WebAssembly, więc działa w karcie przeglądarki. Używa trybu sieci neuronowej LSTM, który odczytuje całe wiersze, zamiast dopasowywać pojedyncze litery.
W praktyce wygląda to tak:
- Wczytywany jest silnik i wytrenowane dane dla wybranego języka. Przeglądarka zapisuje je w pamięci podręcznej, więc czekać trzeba tylko przy pierwszym uruchomieniu.
- Tesseract analizuje układ strony, wyszukuje bloki i wiersze tekstu, a wiersze dzieli na słowa.
- Każdy wiersz trafia do sieci neuronowej, która zwraca najbardziej prawdopodobne znaki. Pasek postępu pokazuje właśnie ten etap.
- Z wyniku usuwane są puste znaki na początku i na końcu, po czym tekst pojawia się w polu, gotowy do skopiowania lub zapisania jako plik
.txto nazwie obrazu.
Jeśli wybierzesz język inny niż angielski, angielski zostanie automatycznie wczytany razem z nim. Zrzuty interfejsów, nazwy produktów, adresy URL i kod są zwykle zapisane alfabetem łacińskim nawet w tekście rosyjskim czy wietnamskim, a drugi model chroni je przed zniekształceniem. Gdy po rozpoznaniu zmienisz język, ten sam obraz zostanie przetworzony ponownie z nowym ustawieniem — nie trzeba go wgrywać od nowa.
Narzędzie przetwarza jeden obraz naraz. Obsługiwane formaty to JPG, PNG, WebP i BMP, do 30 MB.
Jak przygotować obraz, żeby tekst wyszedł czysto
Dokładność OCR zależy znacznie bardziej od materiału wejściowego niż od samego silnika.
Najważniejsza jest wielkość liter
Tesseract był trenowany na tekście, w którym wielkie litery mają mniej więcej od 20 do 40 pikseli wysokości. Odpowiada to stronie zeskanowanej w rozdzielczości około 300 DPI. Poniżej tego progu litery zlewają się, a silnik zaczyna zgadywać.
- Cała strona A4 sfotografowana telefonem 12 MP (około 4000×3000 px) daje tekst główny o dobrej wysokości. Ta sama strona w klatce wideo 1280×720 — już nie.
- Zrzut ekranu z telefonu w natywnej rozdzielczości zwykle się sprawdza. Zrzut pomniejszony przez komunikator często nie; poproś o oryginalny plik.
- Jeśli tekst zajmuje niewielką część dużego zdjęcia, przytnij obraz do tego fragmentu. Mniej tła to mniej fałszywych wykryć.
Prosto, płasko i równomiernie oświetlone
- Wiersze tekstu powinny być poziome. Pochylenie o kilka stopni jest tolerowane; od 10 stopni wzwyż błędów wyraźnie przybywa, a tekst obrócony na bok lub do góry nogami w większości się nie rozpozna.
- Fotografuj strony na płasko. Wygięty grzbiet książki zakrzywia wiersze przy oprawie, więc tam należy spodziewać się błędów.
- Unikaj odblasków od błyszczącego papieru i cienia telefonu; boczne światło dzienne sprawdza się lepiej niż lampa błyskowa.
- Pomaga wysoki kontrast: idealny jest ciemny tekst na jasnym tle. Najtrudniejszy przypadek to jasnoszary tekst na białym albo tekst na tle zdjęcia.
Krytyczne czytanie wyniku
Zanim wkleisz tekst w ważne miejsce, przeczytaj go uważnie. Najczęstsze pomyłki:
0iO,1,liI,rnim,5iS. W numerach seryjnych, kodach i hasłach sprawdzaj je znak po znaku.- Tabele wychodzą jako wiersze słów rozdzielonych spacjami, bez podziału na kolumny. W razie potrzeby wklej je do arkusza kalkulacyjnego i podziel według spacji.
- W układach wielokolumnowych wiersze z sąsiednich kolumn mogą się przeplatać; przycinaj po jednej kolumnie.
- Pismo odręczne wykracza poza to, na czym trenowano Tesseracta. Staranne drukowane wielkie litery czasem się udają, pismo pochyłe zazwyczaj nie.
Pusty wynik oznacza najczęściej, że silnik nie znalazł niczego, co uznałby za tekst: litery są zbyt małe, zbyt rozmyte albo wybrano język o niewłaściwym alfabecie, na przykład łaciński, gdy na obrazie jest cyrylica.
Prywatność
Rozpoznawanie odbywa się na Twoim urządzeniu, więc obraz nigdy nie trafia na serwer. Dzięki temu narzędzie nadaje się do dokumentów, których nie powinno się wysyłać osobom trzecim: dowodów osobistych, wyciągów bankowych, wewnętrznych zrzutów ekranu. Szybkość zależy wyłącznie od Twojego sprzętu: typowy zrzut ekranu na laptopie zajmuje kilka sekund.