自然场景文本识别

我之前是做自然语言的,但公司有个ocr的项目必须要做,因此开始学习ocr相关知识,边学边做两个多月,还有很多不太明白的地方,只能大概讲一讲经验教训。

自然场景文本分类包括两个步骤,1、文本检测:识别出文本框,2、文本识别:识别出字或者字符。

1、 文本检测:

文本检测和目标检测类似但又有不同,目标检测的物体形状一般是不固定的,而文本框一般是矩形,另外文本检测是二分类,而目标检测是多分类。成熟的文本检测算法有很多,我尝试了ctpn,east以及yolo3(包括yolo3-tiny)等三种文本检测算法。(目前只考虑水平文本,有很多其他算法可以检测非水平文本,包括east)

2、 文本识别

文本识别尝试了crnn和densenet,总体来看性能差不多。

由于对qps有要求,因此尝试使用tensorrt对模型进行推理优化,keras转trt模型较好的路径还是keras→onnx→trt,而不是keras→uff→trt,因为有很多操作uff都不支持。使用tensorrt后时延从120ms降到了90ms,可以说达到了目的。但是tensorrt只支持定长,只能将图片压缩到固定值(例如608*608),会损失一定精度,tensorrt6以后应该是支持变长的,后面有时间会研究一下这个问题。

因为要综合考虑性能和效率,最终使用yolo3+densenet作为解决方案(从时延和性能上看yolo3都是远远好于ctpn和east(只考虑水平文本),这和我看到的一些信息不符,ctpn和east都是工业界运用比较多的算法了,但这里我没看到任何优势,如果有大神了解欢迎指正)。

使用tensorrt进行推理优化,平均时延大约90ms左右。程序是由python实现,改成c++,时延应该会更低一些。使用了10000条数据进行测试,使用hmean和编辑距离作为评价指标(https://github.com/liuheng92/OCR_EVALUATION.git),最好模型(yolo3-608-densenet)结果为:

"recall": 0.7576752977446645,

"precision": 0.7358534281487819,

"hmean": 0.7466049438527332

"distance": 28.814918508149184,

附代码地址:https://github.com/zhaogangthu/keras-yolo3-ocr-tensorrt.git

另外我对推理加速问题很感兴趣,如果有大神有过研究,欢迎指教。有其他问题也可一起讨论。

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

2020年9月25日更新

tensorrt已经支持动态输入,请查看:

赵刚:tensorRT动态输入(python)​zhuanlan.zhihu.com

keras优化算法_自然场景文本识别(OCR),keras-yolo3-densenet-ocr相关推荐

  1. Opencv多语言自然场景文本识别系统(源码&教程)

    1. 研究背景 人类在自然场景中可以快速定位并识别看到的文字信息,但是想要计算机做到和人类一样是比较困难的.开发人员一直想要让机器也能识别图像中的文字信息.当然,对于自然场景来说,图像中的信息复杂甚至 ...

  2. 基于注意力模型和卷积循环神经网络的中文自然场景文本识别

    最近,在进行相关中文文本识别的工作,查阅了许多论文.最终决定参考谷歌的基于注意力机制的街景文本识别的论文:"Attention-based Extraction of Structured ...

  3. keras优化算法_目标检测算法 - CenterNet - 代码分析

    代码出处 吃水不忘打井人,分析github上的基于keras的实现: xuannianz/keras-CenterNet​github.com 代码主体结构 模型训练的主函数流程如下所示,该流程也是使 ...

  4. 【文本检测与识别白皮书-3.2】第一节:基于分割的场景文本识别方法

    3.2技术背景--文本识别方法 3.2.1 基于分割的场景文本识别方法 基于分割的识别算法是自然场景文本识别算法的一个重要分支(Wang 等,2012;Bissacco 等,2013;Jaderber ...

  5. 自然场景文本检测识别技术集合(转)

    本文及其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造,自2019年1月出版以来已重印3次. 书的购买链接 书的勘 ...

  6. 自然场景文本检测识别技术综述【转】

    转载自https://blog.csdn.net/SIGAI_CSDN/article/details/80858565 番外青蛇: 姐, 图像文本检测和识别领域现在的研究热点是什么? 白蛇: 白纸黑 ...

  7. 自然场景文本检测识别技术综述

    其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 番外青蛇 ...

  8. 论文翻译:自然场景文本检测与识别综述

    论文翻译:自然场景文本检测与识别综述 引言 介绍 文章回顾 文本检测 文本识别 实验结果 总结和未来工作展望 引言 自然图片的检测和识别是计算机视觉领域的两个主要的问题,在运动视频分析,自动驾驶,工业 ...

  9. 怎样快速识别 英文地址中包含非英文字符_[论文笔记]端到端的场景文本识别算法--CRNN 论文笔记...

    本文大约 4000 字,阅读大约需要 10 分钟 论文地址:https://arxiv.org/abs/1507.05717 开源代码:https://github.com/bgshih/crnn 1 ...

最新文章

  1. htaccess文件用法收集整理
  2. 图解《个人信息保护法》及55条改动对比
  3. JS验证图片格式和大小并预览
  4. day36 fullstack gevent模块 IO阻塞和非阻塞 IO多路复用 异步IO介绍 其他的补充
  5. .net mvc 获取url中controller和action
  6. atk-hc05 蓝牙
  7. 解决create-react-app 集成ts 报error :because it would overwrite input file. TS5055 问题
  8. Android Framework启动流程
  9. 对啊英语音标---四、双元音常见的字母发音组合有哪些
  10. Linux中的rm指令
  11. mysql 1677_【MySQL】Error Code:1677处理过程小记
  12. 阿里云发布全新开源操作系统『龙蜥』,支持 X86 64 和 ARM 64 架构及鲲鹏、飞腾等芯片...
  13. Android系统分区备份与还原
  14. 使用gluLookAt发生无法解析符号的错误
  15. 数据网站 免费数据网站
  16. SQL的语法与分类,语法示例+图片,贼吉尔详细!!!
  17. 计算机网络课程设计(一)网络聊天程序的设计与实现
  18. 3D打印机开源、免费分层软件介绍
  19. js中的面向对象、继承、函数重写
  20. 人脸识别——脸部属性辅助(得分层)

热门文章

  1. 2019-03-06-算法-进化(最接近的三数之和)
  2. 2019-02-23-算法-进化
  3. Codeforces Round #675 (Div. 2) F. Boring Queries 区间lcm + 主席树
  4. HDU - 7072 Boring data structure problem 双端队列 + 思维
  5. P6348 [PA2011]Journeys 线段树优化建图 区间连区间
  6. CF1415E New Game Plus(贪心)
  7. 玉米田(加加强版)【插头dp】
  8. jzoj4739-[雅礼联考GDOI2017模拟9.2]Ztxz16学图论【LCT,树状数组】
  9. P1337-[JSOI2004]平衡点/吊打XXX【模拟退火】
  10. 【2018.3.24】模拟赛之三-ssl2547 圆环【数论】