1:样本获取
*算法论文: * * syntheticdatafortextlocalisationinnaturalimagesgithub :3359 github.com/an Kush-me/synth text
**词典: * * https://pan.Baidu.com/s/10a nmu英语词汇经处理后获得约500.6万亿短语
**字体:** ubntu系统支持中文的字体选择了约10种字体
*背景图库: * * http://Zeus.robots.ox.AC.uk/text spot/static/db/BG _ img.tar.gz中有大约一万张分割图像
**算法的大致过程:**随机从背景图像库中选取一幅图像,随机从词典中选取几个短语,与背景图像进行分割
的块,选择字体、颜色、大小、转换等信息,将短语写入背景块。
取背景块的矩形框作为样本。
**样品相似*
2:网络设计:
网络:
输入1(input )字符块,将其归一化并缩放为32 ) w或height,然后按高度比例缩放宽度。 当然,也可以像128那样缩放到自己希望的宽度) )测试时一律缩放为[32,128 ],训练时作为批处理训练,缩放为[ 32,Wmax]。
按32*128(w,h )分析
2:conv3层的情况下,数据大小为256*8*32,为2个pooling层的宽度和高度分别除以4后的值
3 )3:pooling2阶段时,步长为(2,1 ) dilation ) 1,1 )
因此,此时的输出为256*4*33
4 ) bn层不改变输出大小(就是进行归一化,加速训练的收敛。 就我个人而言,对于同一个p3层,输出为512*2*34,因为w 1,所以对于轮询3层,输出为512*2*34
5 :对于5:conv7层,kernel为2*2,stride (1,1 ) padding (0,0 ) )。
wew=(2*padw-kernel )/strideW 1=1
Hnew=33
因此,conv7层输出为512*1*33
6:后面跟着两个双向Lstm,隐藏节点都是256
Blstm1输出33*1*256
Blstm2输出33*1*5530 5530=字符数非字符=5529 1
最终的输出结果直观地将128分为33部分,认为分别与5530个类别对应的概率
3:实验结果
几乎自动生成150万个样品,测试组1500张左右,测试组全对率在62%左右。 由于硬件的限制,样品少,样品数量应该要几千万到上亿,我觉得模型很稳定。 150万个样本训练也没有收敛,还有2.5左右的cost。
4:CTPN+CRNN整合场景文字检测识别结果
由于没有进行布局分析,所以不能按顺序输出识别结果
其中标点符号训练集很少,往往是错误的。 总体识别率还可以,但是增加几千万、几亿个训练样本,模式应该会比较稳定,识别也会比较好。