Zahlenerkennungsalgorithmus auf dem Bild mit einer geringen Wahrscheinlichkeit der zweiten Art von Fehler

Bild

In der Branche gibt es eine Reihe von Fällen, in denen die
Erkennung von Szenennummern erforderlich ist. Oft ist die erforderliche Bedingung für den Erkennungsalgorithmus ein niedriger Wert der zweiten Art von Fehler, nämlich Fälle, in denen eine ungültige Zahl erkannt wird. Ein Beispiel für solche Aufgaben ist:


  1. Nummernerkennung bei Rabatt, Bankkarten, Abbildung 1.
  2. Autonummernerkennung, Abbildung 2.

Bild

1 –
2 – ,


, , :


  • ;
  • ( );
  • , , ..


(scene number recognition) : 0.03.


false positive (FP) — , . , "177", "777", .



, CRNN (Convolutional Reccurent Neural Network)[1].


github.


Python3, PyTorch.


PSPNet[2]. , github PSPNet Pytorch.



CRNN,
medium [3], [4].


CRNN 3.


Bild

3 – CRNN


. , : CNN [5], LSTM [6].


:


  1. CNN. . , , , , . , . , , 4;
  2. LSTM. LSTM (time step). LSTM . LSTM many to many, . , Bidirectional LSTM, ;
  3. . . — ;
  4. . n Yn: kn = max(Yn). , , . , , : «3200-544». "-" , . , «00» «44», .

Bild

4 –
: h, w — ; n — .



, , 5.


Bild

5  –  

, : .


.


CRNN , 6.


Bild

  6 – . : , , . CRNN 1, CRNN 2 —


, , . - .


.

, "5" , . , , . , :


x=s+v,v>x
: s — , v — , x — .


. , :


y=f(x),yU
: f — , x — , y — .


10 pf = 0.9.


:


pf = i=1,j=110P(y=yj|yi=yj)
: pf — , yi— i- , yj— j- .


10 , pf = 0.1, pf = 0.9 .
, ps = 0.97, : pk = 0.97*0.97 = 0.94.


: .
, , . , S = (280, 64), S2 = (320, 64).


, . S = (280, 64), 1.


Bild

1 – .
: BS — ; AS — ; k, s, p — , , , : max_pooling



. , . PSPNet.


400 , — 100 , , , 5-10 % , , 5.



2 – . inter_bad — , inter_good — ; good_1, good_2 — , ; amount_cards — , percent_good_1, percent_good_2 — , ; percent_good — ; percent_bad —

, , 1, 0.8816, 0.1184. , - .


, 0.0177, 0.863813, 0.0954 0.0230. , .






, —

, ,




:


  • . , . , , ;
  • . , ;
  • . .


, CRNN scene text recognition, .
CRNN, , .


Zusätzlich zu diesem Ansatz habe ich versucht, falsche Vorhersagen mit einer Wahrscheinlichkeit unter einem bestimmten Schwellenwert abzuschneiden. In diesem Fall fiel die Genauigkeit der Vorhersage jedoch auf 0,3, was nicht akzeptabel war.


Liste der Quellen


  1. Original CRNN Artikel;
  2. Parsenetzwerk für Pyramidenszenen
  3. Erstellen Sie mit TensorFlow ein handgeschriebenes Texterkennungssystem.
  4. Eine intuitive Erklärung der verbindungsorientierten zeitlichen Klassifikation;
  5. Faltungs-Neuronales Netzwerk in Python
  6. LSTM - Netzwerke für das Langzeit-Kurzzeitgedächtnis

All Articles