文字检测识别引擎罗塞塔(Roseta)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_14845119/article/details/82718451

论文:Large Scale System for Text Detection and Recognition in Images

 

Facebook的OCR引擎。OCR部分包括检测和识别2部分。是分别进行检测和识别的框架。检测和识别分开训练。检测模型基于caffe2训练,识别模型基于pytorch训练,最终都部署为caffe2。

 

检测框架:

检测框架采用faster RCNN中的RPN结构。区别在于基础卷积网络使用的是ShufeNet。

 

识别框架:

论文中提出了2种结构,

一种为具有多个全连接层的传统识别方法。缺点为,

  1. 识别的文本的长度受限制,不能识别文本中单词太多的文本图片,例如URL。
  2. 由于最后接了好多全连接层,导致参数较大。

另一种为基于全卷积+CTC的结构,基础结构为ResNet18,注意这里没有使用lstm或者gru或者attention等类似这样的结构。优点为,

  1. 网络具有更少的参数
  2. 可以预测任意长度的文本

在测试中发现,先将图片按照长宽比缩放为高度固定为32像素,再将宽度进行1.2倍的缩放,可以获得更好的识别效果。

训练过程中采用了warm up的策略。学习率经过了从最小到最大,再到最小的过程。图片的宽度也随着训练逐渐递增,单词长度也随着训练逐渐递增,体验了由易到难的训练思路。

 

整体结构:

整体框架采用异步的处理流程。最开始接入了类似rabbitMQ或者rocketMQ的中间件作为处理队列。然后消费者从队列中收取图片进行检测+识别的处理。处理结果存储在了TAO数据库(facebook的分布式数据库)中,当然也可以根据业务需要存储在redis或者fdfs中。最后前面服务端再定时从数据库中获取识别结果。

 

总结:

整体感觉论文不管是算法方面的检测+识别,还是业务逻辑层面的部署,都是正常的逻辑,没有说提出特别有亮点的东西。

猜你喜欢

转载自blog.csdn.net/qq_14845119/article/details/82718451
今日推荐