Produkty
Artykuły
Avicon

Zaawansowane algorytmy OCR/OCV muszą być odporne na występowanie różnych rodzajów czcionek. Jeszcze trudniejszym zdaniem jest rozpoznawanie ludzkiego pisma, które w przeciwieństwie do pisma maszynowego nie jest ustandaryzowane.

OCR to ogólna nazwa metod konwersji obrazów rastrowych tekstu maszynowego, ręcznego lub drukowanego na informację elektroniczną. Jest to dynamicznie rozwijająca się gałąź optycznej analizy obrazów. Obecnie powstaje coraz więcej nowych bibliotek a także gotowego oprogramowania, charakteryzujących się ogromną funkcjonalnością. Oprogramowanie OCR nie ma problemu z rozpoznawaniem skanów tekstów drukowanych czy zdjęć robionych za pomocą kamery. Algorytmy nie mają także problemu z rozpoznawaniem znaków, występujących tylko w niektórych jeżykach. Obecnie największym wzywaniem, które także udaje się pokonywać jest rozpoznawanie pisma ręcznego. W przeciwieństwie do pisma maszynowego, gdzie konkretne czcionki są odpowiednio ustandaryzowane, pismo ręczne każdego człowieka różni się, przez co algorytmy muszą być przygotowane na wiele zmiennych.

Technologie OCR i OCV różnią się jednym słowem. Ta druga to „optyczna weryfikacja znaków”. Tak jak oprogramowanie OCR służy do odczytywania ciągu tekstowego, a nawet zniekształconych i uszkodzonych obrazów, OCV będzie sprawdzało poprawność informacji oraz jakość i czytelność tekstu. Metoda ta jest najczęściej używana w celu potwierdzenia, czy nadrukowane kody, daty, serie są wystarczająco wyraźne i będą czytelne dla użytkownika.

Już samo rozpoznawanie zeskanowanych dokumentów czy plików pdf nie należy do łatwych wyzwań, a przecież system OCR są bardzo często używane do rozpoznawania obrazów zbieranych przez kamerę. Taki stan rzeczy wymaga od algorytmów wielu usprawnień, uodparniających je na defekty powstałe podczas akwizycji. Obrazy z kamer często charakteryzują się nierównomiernym oświetleniem (np. ciemniejsze narożniki), obarczone są dystorsją lub są zaszumione ze względu na nieodpowiednie oświetlenie. Dlatego też oprogramowanie musi poza samym rozpoznaniem znaków, wcześniej wyeliminować efekty powstałe w wyniku takiej akwizycji.

Przemysłowe systemy OCR

Przemysłowe systemy rozpoznawania znaków są wykorzystywane głównie do interpretowania i lokalizowania różnego rodzaju numerów seryjnych na opakowaniach, sprawdzania czytelności nadruku dat, porównywaniu odczytanych ciągów znaków z oczekiwanymi a także do obliczania statystyk. Systemy wizyjne OCR, po przeprowadzeniu niewielkich modyfikacji mogą być także używane do odczytywania np. tablic rejestracyjnych pojazdów. Chociaż istnieje wiele metod, które stosuje się do rozpoznawania znaków, nie wszystkie z nich można wykorzystywać w przemyśle. Wynika to z faktu, że dziedzina ta wyjątkowo wymaga niezawodności i umiejętności rozróżniania znaków, a także innych obiektów, czego nie można zapewnić przy pomocy wszystkich dostępnych rozwiązań.

 

Schemat systemu wizyjnego realizującego optyczne rozpoznawanie znaków.

Przemysłowe rozpoznawanie znaków można podzielić na 5 głównych etapów:

·        Akwizycja obrazu –  to ważny etap w wizyjnym przetwarzaniu tekstów, ponieważ od jakości w jakiej zostanie zapisany obraz zależy jak dużo pracy będą musiały wykonać algorytmy. Wszelkie ewentualne zniekształcone i defekty powstałe na tym etapie muszą być później kompensowane poprzez oprogramowanie. Jeśli tak się nie stanie w skrajnym przypadku, tekst może zostać odczytany z błędami lub w ogóle operacja ta nie będzie możliwa. Akwizycja obrazu najczęściej odbywa się za pomocą kamery monochromatycznej, ponieważ bardzo rzadko wartościowe informacje są niesione przez barwę, a i tylko niektóre algorytmy potrafią odtworzyć kolorowy tekst. Ważne jest też, żeby obraz cechował się odpowiednią ilością pikseli przypadającą na jeden znak. Z drugiej strony, jeśli obraz będzie miał bardzo wysoką rozdzielczość to może to wpłynąć na czas obliczeń, ponieważ wymagać on będzie dodatkowo przeskalowania.

·        Pre-processing – wszelkiego rodzaju operacje mające na celu wyostrzenie, przefiltrowanie i normalizację obrazu. Na etapie wstępnego przetwarzania można poradzić sobie z niedoświetlonym czy zaszumionym obrazem. Także tutaj przeprowadzana jest binaryzacja obrazu. Po zakończeniu powyższych operacji oczekiwany jest wyraźny tekst na jednolitym, białym tle.   

·        Segmentacja znaków – algorytmy rozpoznają każdy znak pojedynczo, tak więc aby było to możliwe należy podzielić obraz wejściowy na segmenty, zawierające po jednym elemencie. Najpierw następuje podział na tekst, tabele, grafiki itd., następnie tekst jest dzielony na akapity i ciągi znaków, aż na koniec na pojedyncze znaki. Ważne jest, aby do każdego fragmentu obrazu była przypisana informacja o jego lokalizacji w całej strukturze. Umożliwi to późniejsze złożenie tekstu w całość.

·        Rozpoznawanie znaków – najważniejszy etap całego procesu. W zależności od producenta oprogramowania, używane algorytmy mogą się różnić. Klasyfikuje się dwie zasadnicze metody:

o   Rozpoznawanie wzorców – algorytm porównuje każdy pojedynczy znak to wzorców znajdujących się w pamięci i na podstawie podobieństwa podejmuje decyzję

o   Rozpoznawanie cech – wyszukiwane są charakterystyczne struktury w obrębie znaków, a także w zależności od algorytmu, znaki mogą być rozkładane na pojedyncze elementy i na podstawie ich analizy przeprowadzane jest rozpoznawanie.

·        Post-processing – złożenie pojedynczych znaków w cały tekst. Tutaj też algorytmy sprawdzają, czy praca została wykonana prawidłowo. Cechami, na podstawie których określa się poprawność mogą być np. ortografia, znaki jakie znajdują się na początku oraz na końcu, czy wszystkie znaki zostały rozpoznane. Jeśli występują jakieś nieprawidłowości algorytm zgłasza błąd. Najbardziej niepożądaną sytuacją jest potraktowanie błędnych danych jako poprawne.

Sieci neuronowe w służbie OCR

Algorytmy wykorzystujące sieci neuronowe przebojem wdarły się do świata technologii. Główną ich zaletą jest dynamiczne uczenie się, bez potrzeby programistycznej ingerencji, co znacznie ułatwia całą operację. Takie podejście pozwoliło już na uczynienie wielu rozwiązań bardziej elastycznymi, a przede wszystkim bardziej niezawodnymi. O ten mechanizm swoją zasadę działania opiera także duża część algorytmów OCR/OCV. Dzięki temu oprogramowanie może cały czas „uczyć się” na podstawie obserwowanych obrazów i dzięki temu zwiększać swoją efektywność.

Zastosowania

OCR/OCV to bardzo częste zadania stawiane przed systemami wizyjnymi, zarówno w przemyśle jak i w innych dziedzinach. Wykorzystanie oprogramowania OCR, znane szerokiej grupie ludzi, to wszelkiego rodzaju programy komputerowe do konwersji PDF-ów, jak i zeskanowanych dokumentów na edytowalny tekst. W takich aplikacjach algorytm OCR musi po prostu rozpoznać wejściowy obraz, cokolwiek by na nim nie było. Sprawia to, że oprogramowanie musi być gotowe na każdą sytuację: małe i duże litery, różne czcionki, tabele itd. Innym typem zastosowań są wspomniane już wcześniej aplikacje przemysłowe. Tutaj najczęściej dany system wizyjny nastawiony jest na konkretne działanie. Przykładowe rozwiązania, takie jak odczytywanie dat z opakowań, sprawdzanie poprawności nadrukowanych napisów, czy digitalizacja adresów przesyłek, z powodzeniem sprawdzają się w farmaceutyce, przemyśle motoryzacyjnym i elektronicznym, spożywczym, oraz w wielu innych. Zastosowania przemysłowe zazwyczaj wymagają konkretnej operacji, w przeciwieństwie do oprogramowani używanego do rozpoznawania PDF-ów i zeskanowanych tekstów. Dzięki temu pozwalają na lepszą optymalizację i niezawodność.

Wizja maszynowa, wykorzystująca OCR jest używana także w do digitalizacji zbiorów w bibliotekach, jak również wprowadzania dokumentów biznesowych, wizytówek. Inną, ciekawą aplikacją jest automatyczna identyfikacja tablic rejestracyjnych. Operacja ta może być wykorzystywana przy przetwarzaniu zdjęć z fotoradarów. Kamera fotoradaru robi zdjęcie pojazdowi, które to następnie przesyłane jest do centrali, gdzie algorytm OCR rozpoznaje tablicę rejestracyjną, na podstawie czego znajdowany jest właściciel samochodu. System ten jest świetnym przykładem rozproszonego systemu widzenia maszynowego.

Technologie OCR/OCV to kolejne z wielu przykładów wykorzystania wizji maszynowej. Jest to potwierdzenie tezy o nieskończonych możliwościach wykorzystania, zdawać by się mogło, prostego zestawu, złożonego z kamery, komputera i oprogramowania. Firma Avicon, jako integrator i dystrybutor systemów wizyjnych, podejmuje się zadań z dziedziny optycznego rozpoznawania znaków, a także optycznej weryfikacji. Nasze rozwiązania widzenia maszynowego znajdują się wielu fabrykach i laboratoriach w Polsce jak również za granicą.