Algoritmo de reconocimiento de números en la imagen con baja probabilidad del segundo tipo de error

imagen

Existen varios casos en la industria que requieren el
reconocimiento del número de escena. A menudo, la condición requerida para el algoritmo de reconocimiento es un valor bajo del segundo tipo de error, a saber, los casos en que se reconoce un número no válido. Un ejemplo de tales tareas es:


  1. Reconocimiento de números en descuentos, tarjetas bancarias, Figura 1.
  2. Reconocimiento del número de automóvil, Figura 2.

imagen

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.


imagen

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», .

imagen

4 –
: h, w — ; n — .



, , 5.


imagen

5  –  

, : .


.


CRNN , 6.


imagen

  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.


imagen

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, , .


Además de este enfoque, traté de cortar predicciones falsas con una probabilidad menor que cierto umbral, sin embargo, en este caso, la precisión de la predicción cayó a 0.3, lo cual era inaceptable.


Lista de fuentes


  1. Artículo original de CRNN;
  2. Red de análisis de escenas piramidales
  3. Cree un sistema de reconocimiento de texto escrito a mano con TensorFlow;
  4. Una explicación intuitiva de la clasificación temporal conexionista;
  5. Red neuronal convolucional en python
  6. LSTM - Redes para memoria a corto plazo a largo plazo

All Articles