Pisząc aplikacje do automatyzacji pewnych procesów na stronach www (dodawarka, spamiarki, autologowanie) często stajezmy z problemem zabezpieczań opartych na tokenach obrazkowych. Polegają one ze jest wygenerowany obrazek  z losowym tekstem który należy przepisać do formularza.

Generalnie moim zdaniem tokeny obrazkowe to tylko przeszkadzają w oglądaniu stron, bo ludzie  niedowidzący często nie są w stanie rozpoznać co jest napisane na obrazkach, a automaty potrafią sobie poradzić z nimi. W lepszym lub gorszym rezultatem, ale oprogramowanie ma zawsze czas i może wykonać trochę prób aż mu się uda.

Jak oprogramowanie sobie z tym radzi? Schemat działania programu możemy podzielić na parę kroków:

  1. Pobranie obrazka i jego obróbka w ten sposób aby uzyskać postać czarną białą. Na tym etapie usuwane są śmieci i inne przeszkadzajki (usuwanie szumów, zakłócających linii, itd)
  2. Podział obrazka tak aby uzyskać pojedyncze znaki
  3. Główny proces analizy, do tego celu można użyć parę algorytmów:
    – analizę opartą na zliczaniu ilości pixeli i porównaniu ich z zapamiętanym wzorcem,
    – generowanie dla znaków odcisku (suma pixeli w osi X i Y) i porównanie ich z wzorcem
    – użycie sieci neuronowych, na tym etapie trzeba obrazek przeskalować do macierzy i polach odpowiadających ilością neuronów wejściowych (stosuje się macież 3×5 pixeli lub większe)
    – użycie zewnętrznych bibliotek do OCRa
  4. Ważnym etapem jest proces nauczenia rozpoznawania danych tokenów, możemy ten proces bardzo łatwo zautomatyzować.

Tutaj przykład mojego skryptu: rozpoznawanie captcha.