具有第二种错误可能性的图像上的数字识别算法

图片

行业中有许多情况需要
场景编号识别。通常,识别算法所需的条件是第二种错误的低值,即识别到无效数字的情况。这样的任务的一个示例是:


  1. 折扣,银行卡上的数字识别,图1。
  2. 车号识别,图2。

图片

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.


图片

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

图片

4 –
: h, w — ; n — .



, , 5.


图片

5  –  

, : .


.


CRNN , 6.


图片

  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.


图片

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


除了这种方法之外,我还尝试以低于特定阈值的概率来切断错误的预测,但是,在这种情况下,预测的准确性下降到0.3,这是不可接受的。


来源清单


  1. CRNN原始文章;
  2. 金字塔场景解析网络
  3. 使用TensorFlow构建手写文本识别系统;
  4. 对连接主义的时间分类的直观解释;
  5. Python中的卷积神经网络
  6. LSTM-长期短期记忆网络

All Articles