宜信OCR技术探索与实践|完整视频回放
分享实录html
传统图像,冈萨雷斯的图像处理。算法
身份证卡证类相对容易些,可是要作到复杂场景的,也不是那么容易。网络
发票、业务单据相对复杂,除了识别,更重要的是版面分析。并发
最近表格识别比较火,各家都在努力实现,微软的开放tablebank数据集ide
知足业务是第一须要,不一样于大厂,对外服务API,要求大并发那么强,多样性品类完备,咱们更强调单品要作到尽可能达到业务要求,更强调定制化,能够分布走,业务上能够给反馈不断改进。函数
你们必定要本身弄细节,读代码、甚至本身动手撸,本身训练,调参,排错,才能有真正的体会和理解,只讲我认为每一个算法里面不太好理解,重点,以及容易忽略的点,跟同行一块儿交流,沟通。工具
一个模型,要全面深刻了解,须要:设计
目标、目的、意义是啥?3d
网络结构啥样?code
loss是啥?
样本咋作?
文字检测:把文字框住,缩小到最小范围内,从而下降识别难度。
文字识别:检测出文字后,就能够经过识别工具(算法)来识别出文字,如中间图。
表中从下往上的检测算法排序按照效果:愈来愈好
CTPN:找框的一个算法。
预测最终结果是:10个anchor的y坐标偏移,和高度的调整值,还有它是否是前景的几率。输出是先后景几率[N,10,2],y、w调整值[N,10,2]。它只适合横向,或者纵向,不能同时。
一个模型主要从如下几个方面理解
亮点和核心思路是:预测框和文本线构造算法
loss是啥(损失函数):anchor先后景几率、y、w调整
label怎么作:大框,弄成小框,而后正负样本均衡
算法被命名为EAST(Efficient and Accuracy Scene Text),由于它是一个高效和准确的场景文本检测pipeline。
首先,将图像送到FCN网络结构中而且生成单通道像素级的文本分数特征图和多通道几何图形特征图。文本区域采用了两种几何形状:旋转框(RBOX)和水平(QUAD),并为每一个几何形状设计了不一样的损失函数;而后,将阈值应用于每一个预测区域,其中评分超过预约阈值的几何形状被认为是有效的,而且保存以用于随后的非极大抑制。NMS以后的结果被认为是pipeline的最终结果。
最后预测:scoremap,textbox,textrotation
标注是:一个蒙版mask,一个4张图,上下左右的距离,还有个角度:一共3个。
PSENet是一种新的实例分割网络,它有两方面的优点。首先,psenet做为一种基于分割的方法,可以对任意形状的文本进行定位.其次,该模型提出了一种渐进的尺度扩展算法,该算法能够成功地识别相邻文本实例。
FPN,左面用resnet50。为什么是resnet50,缘由是效果不错,参数适中。
论文里是6个尺度,一个不行么?我理解是完全分开不一样行,逐渐扩大,渐进尺度能够防止彼此交叉哈
网络输出
thresholdmap,每一个像素点的阈值
label制做
probabilitymap, 按照pse的方式制做便可,收缩比例设置为0.4
很是经典的算法,主要的核心是CTC算法:Connectionist Temporal Classification (CTC)适合那种不知道输入输出是否对齐的状况使用的算法,因此CTC适合语音识别和手写字符识别的任务。
缺点:不能精确地联系特征向量与输入图像中对应的目标区域,这种现象称为attention drift。
Muturaltraining:
咱们知道什么?什么字符,第几个?这个信息!
哪一个字符?找到那个字符,第几个?而后和样本里的顺序比
第几个是啥字符?和对应位置的字符比
非单据:宽高比,白像素比例等
旋转角整:前面讲过了,经过旋转模型,以及投影分布
多单据:多张单据在一块儿,经过投影,阈值超参配置
表格识别:采用mask-rcnn的方法,来找出大表边缘
初版:
VGG作backbone,全链接,四分类
样本:人工标注、加强
第二版:
作切割,256x256
使用MSER找备选
训练小图
众数选出最可能方向
微调
每旋转1°作纵向投影
把crnn论文论文中的自定义cnn网络,换成resnet,可是resnet是缩小32倍,因此要拉长一些,到512。
首先是:样本集是1000万 (50万张,置信度单字95%+)100万真实 +100万经常使用字(造) + 200万数字时间英文(造)+ 600万其余汉字(造)大概须要3-4天
过程当中须要对greedy算法进行改进:
=>beam_search/merge_repeated=True 单独测是有问题,可是在置信度很高的状况下,二者差距很小,可是获得了极大的速度改进,28秒=>10秒,batch=128,size是512x32
由于有crnn的prob,因此纠错就有的放矢,把怀疑的字,替换成某个字,
Prob有个细节,若是是挨着的字,“ 我 我 ”,就取最大的prob,
一、 开发经验
二、生产经验
Tensorflow容器
模型部署使用官方推荐的tensorflowserving,容器方式
没有开启Batching,本身控制batch
服务容器:
本身定义了Web容器基础镜像
本文做者:宜信技术学院 刘创