OCR

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

OCR (ang. Optical Character Recognition) – zestaw technik lub oprogramowanie służące do rozpoznawania znaków i całych tekstów w pliku graficznym o postaci rastrowej. Zadaniem OCR jest zwykle rozpoznanie tekstu w zeskanowanym dokumencie (np. papierowym formularzu lub stronie książki).

Niegdyś termin oznaczał samo rozpoznawanie ciągów znaków, głównie drukowanych, które są łatwiejsze do rozpoznania, dziś również pisma odręcznego oraz cech formatowania, jak krój pisma, stopień pisma, interlinia (techniki służące do tego typu zaawansowanego rozpoznawania nazywane są terminem ICR), a nawet układów tabelarycznych, np. formularzy.

Techniki OCR wykorzystywane są m.in. przy digitalizacji zasobów bibliotek, a także jako ułatwienie przy odczytywaniu danych z formularzy wypełnianych pismem odręcznym. W obu przypadkach oprogramowanie OCR nie jest tak skuteczne jak człowiek, zatem w przypadkach wątpliwych (trudności z odczytaniem fragmentu) oraz w celu uniknięcia błędów nieodzowna jest weryfikacja wyniku OCR przez człowieka.

Nowoczesną metodą współpracy oprogramowania OCR z ludźmi jest technika reCAPTCHA[1]. Nie wymaga ona zatrudniania osób specjalnie do weryfikacji OCR, lecz wykorzystuje rozproszoną aktywność milionów użytkowników Internetu, którzy wchodząc na strony internetowe zabezpieczone przez CAPTCHA rozpoznają fragmenty tekstu wymagające weryfikacji.

Postęp w oprogramowaniu OCR jest bardzo widoczny - drogie komercyjne oprogramowanie z lat 90 XX wieku wymagało dobrego skanu, najlepiej w językach zachodnioeuropejskich. Obecne (2013) produkty potrafią rozpoznawać mało dokładne skany, wykonane telefonami komórkowymi z szumami na obrazkach, z tekstem napisanym pod nienaturalnymi kątami w 120-186 językach[2].

Zasada działania[edytuj | edytuj kod]

Rozpoznawanie pisma jest możliwe dzięki zastosowaniu metod z dziedziny rozpoznawania wzorców zaliczanej do sztucznej inteligencji. Oprogramowanie OCR wykorzystuje różne metody segmentacji obrazu, np. progowanie, aby wyodrębnić poszczególne znaki z obrazu, które następnie są najczęściej osobno klasyfikowane jako poszczególne litery. Zwykle w tym procesie wykorzystywane są sieci neuronowe. Zazwyczaj, by wyeliminować pomyłki, program sprawdza całość rozpoznanego tekstu lub poszczególne wyrazy pod kątem poprawności ortograficznej i gramatycznej danego języka.

Wikimedia Commons

Przypisy