Pisząc skrypty, aplikacje automatyzujące pewne procesy na stronach internetowych (rejestracja formularzy, dodanie stron do katalogów,
automatyczne dodawanie treści do precli) często stajemy przed problemem stosowania zabezpieczeń opartych na tokenach obrazkowych.

Dla prób obejścia tego problemu powstał projekt służący do testowania modułu nauki, testowania oraz łamania tokenów graficznych przy użyciu uniwersalnego modułu ocer’a napisanego w php wraz z modułem obróbki plików graficznych.

Skrypt używa dwóch metod rozpoznawania znaków:

  • Częstotliwościową – opartą na odcisku ala histogram danego znaku. Wyznaczanie zgodności znaków polega na wyszukiwanie ja najbardziej zgodnego wzorca.
  • Pikselową – we wzorcu zapamiętywany jest odcisk punktów. Poszukiwanie docelowego znaku polega na obliczaniu procentowej zgodności pikseli.

W jaki sposób skrypt sobie radzi z rozpoznawaniem znaków? Algorytm 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 zakłócenia obrazu (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ć, poprzez wygenerowania wzorcowych plików graficznych gdzie w nazwie będzie zawarty rozpoznany ciąg znaków.