做OCR常用的深度学习方法

发布时间:2020-02-28  栏目:人工智能  评论:0 Comments

EAST和PAVNet

———————–

EAST:

  • 先拿EAST检测出文本区域,再使用识别网络比如CNN来检测具体的文字
  • 长文本EAST效果不好,可以使用advanced EAST来检测;
  • EAST的计算量由主体部分的backbone采用不同的网络不同而计算量不同

 

EAST的主体思路:Multi-channel FCN + thresholding & NMS

(1)输入:带文字的图片;

输出:(带旋转角度的)四边形(不一定是矩形)的四个顶点坐标[(x1, y1),(x2, y2), (x3, y3), (x4, y4)]

(2)主体结构:

  • Feature Merging: U shape的设计思路
  • 输出9个feature map,第一个为score map(代表框的权重),后面8个为shift m1, shift m2, shift m3, shift m4, shift m5, shift m6, shift m7, shift m8,分别代表4个顶点的x和y轴的坐标位移。

(3)局部感知NMS:

  • 直接NMS计算量太大,所以局部合并,来降低框的数目,最后再作NMS;
  • 融合方式采用加权融合的方式 (merge出一个新的框,比如新的x=score1*x1 + score2*x2),一般选择横向坐标来合并(因为横向文字偏多)
  • 文字有重叠的话,使用Soft NMS

(4)Loss function:

  • 总的loss为 score map loss和geometry map loss乘权重之后再相加
  • score map loss采用的类平衡交叉熵loss【负例样本比例*交叉熵的正例那一部分,正例样本比例*交叉熵的负例那一部分】
  • geometry map loss使用的每个点的误差求和,经过归一化(除以最小边)处理

(5)训练策略:两种loss的权重依次迭代??

(6)训练数据:由ground truth生成对应的9个feature map拿来做训练,根据坐标规则一个个根据标注计算出来,再拿来做训练【框一开始shrunk为原来的2/3, 目的是因为2/3的部分一般是文字的主体,边缘部分文字有可能不全,所以使用2/3的部分的数据训练更加容易收敛】

 

——————————————-

CRNN+CTC

参考:https://zhuanlan.zhihu.com/p/43534801

——————————————

ICDAR2015是由Google Glass采集的;

 

Comments are closed.

相册集

pix pix pix pix pix pix

关于自己

杨文龙,微软Principal Engineering Manager, 曾在各家公司担任影像技术资深总监、数据科学团队资深经理、ADAS算法总监、资深深度学习工程师等职位,热爱创新发明,专注于人工智能、深度学习、图像处理、机器学习、算法、自然语言处理及软件等领域,目前发明有国际专利19篇,中国专利28篇。

联系我

个人技术笔记

welonshen@gmail.com

2015 in Shanghai