【基础介绍】【OCR】

注:若有冒犯,请问候留言,会尽快删除。

文章目录

      • 注:若有冒犯,请问候留言,会尽快删除。
      • 背景介绍
      • OCR基本概念介绍
      • 基础实现算法
      • 深度学习方法
        • 1. CNN(卷积神经网络)
        • 2. RNN(循环神经网络) & LSTM(长短期记忆网络)
        • 3. Attention机制
      • 顶尖算法组合拳:CRNN + CTC
      • 未来发展:Transformer登场(Vision Transformer,ViT)
      • 总结
      • END

背景介绍

  • 知乎上看到一篇写的不错的文章,介绍了OCR 的基本概念和历史实现思路。
  • 在此进行笔记摘录,笔记性质,无意冒犯。
  • 原文链接:https://www.zhihu.com/question/366685668/answer/3608456631

OCR基本概念介绍

  • OCR(Optical Character Recognition),光学字符识别。
  • 目的:用计算机看图识字。
    • 这活儿听上去不难,小时候上课抄作业咱不也靠眼睛一扫一抄吗?不过计算机就得靠算法来做这个活儿。(原作者描述的很形象,哈哈)

基础实现算法

  • 最早的OCR算法基本都是基于图像处理的。(预处理+模板匹配)
    • 边缘检测、灰度处理。
    • 然后配上模式识别算法,比如模板匹配、特征提取啥的。
      • 你可以理解成就是把字形切成一块一块的,然后跟它数据库里存的样本对比,看看哪个像,哪个不像。
  • 这些传统的算法好处是速度快,资源占用少。
  • 但缺点也明显:一碰到字歪了、字模糊了、或者字形不规则了,它就开始抓瞎,结果基本上就是“一看就是字,但就是不认识”。所以这玩意儿在应付像咱们手机拍的这种歪歪扭扭的图像时,基本等于玩儿完。

深度学习方法

1. CNN(卷积神经网络)
  • CNN算是深度学习里的一员猛将了,大家都用它来做图像处理,OCR当然也不例外。CNN能干的活就是搞图像特征提取,它能自动从图像里找出那些有用的信息,比如边缘、线条、曲线啥的,再经过几层卷积,把这些信息逐层抽象,最后变成对字符的理解。
  • 就像你拍一张图,CNN能从图像的不同部分提取到不同的特征,然后把这些特征汇总,搞出个“这玩意儿是个字”的结论来。
2. RNN(循环神经网络) & LSTM(长短期记忆网络)
  • 光提取特征还不够,因为OCR不只是识别单个字符,还得考虑字符的顺序,这时候RNN就上场了。RNN擅长处理序列数据,比如文字、语音啥的,它能记住前面的信息,用来影响后面的识别。这就像你在看一段文字时,前后的字有关系嘛。
  • LSTM是RNN的加强版,主要解决RNN容易忘事儿的问题。用了LSTM后,网络就能记住更长的上下文信息,识别结果更准了。
3. Attention机制
  • 最后,还有个神器叫Attention机制,这玩意儿能让模型自动关注图像里那些重要的部分,比如一张图里哪儿有字,它就盯着哪儿看,不重要的地方一笔带过。这就像你在开会时,重点内容多看两眼,废话直接略过。
  • Attention机制的加入让OCR模型在处理复杂图像时,识别效率和准确度都有了质的飞跃。

顶尖算法组合拳:CRNN + CTC

  • 现在说说最顶尖的OCR算法,那肯定少不了CRNN(卷积循环神经网络)+ CTC(连接时序分类)。这套组合拳可是当前OCR领域的标杆,很多大厂的OCR引擎背后都是它。
  • CRNN结合了CNN和RNN的优点,前面用CNN提取图像特征,后面用RNN处理字符序列,简直就是天作之合。而CTC呢,专门处理序列对齐的问题,因为有时候识别结果跟输入长度对不上,这时候CTC就能帮助网络在不需要手工对齐的情况下,搞定文字识别。
    你用 OCR时,哪怕图片模糊不清或者字儿东倒西歪,这套算法组合依然能搞出个准儿来。

未来发展:Transformer登场(Vision Transformer,ViT)

  • 不过话说回来,科技是不断进步的。现在Transformer架构
  • (对,你没看错,就是那个火遍NLP的Transformer)也开始在OCR领域展露头角。比如Vision Transformer(ViT)就是用来处理图像的Transformer变种,这玩意儿比传统的CNN + RNN组合更牛,可以更好地处理复杂图像和长序列。
  • 未来几年,估计Transformer架构会成为OCR的新宠,反正现在大厂都在疯狂搞这套东西,谁家搞得快,搞得好,谁就能在OCR领域继续称王。

总结

  • 现在最顶尖的OCR算法,一定是深度学习的天下,像CRNN + CTC这种组合是目前的主流,但未来Transformer架构肯定会慢慢抢占市场。

END

上一篇:manim边学边做--无向图


下一篇:redis遍历hash key