首页 > 编程知识 正文

基于深度学习的ocr图片文字识别,图片识别ocr准确率

时间:2023-05-04 18:10:07 阅读:159036 作者:381

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整合场景文字检测识别结果

由于没有进行布局分析,所以不能按顺序输出识别结果

其中标点符号训练集很少,往往是错误的。 总体识别率还可以,但是增加几千万、几亿个训练样本,模式应该会比较稳定,识别也会比较好。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。