摘要:本文主要介绍文字检测和文字识别作为计算机视觉一部分的重要性,基本知识,面临的挑战,以及部分最新的成果。

人类在认识了解世界的信息中91%来自视觉,同样计算机视觉是机器认知世界的基础,也是人工智能研究的热点,文字识别也是人工智能的重要研究方向。在我们生活当中,文字是无处不在的,我们的衣食住行都是离不开它的。

文字的价值

首先,文字并非自然产生,而是人类特有的造物,是高层语义信息的载体。文字从整个文化的角度来讲也是非常重要的,人类的文明离不开文字,文字是我们学习知识、传播信息、记录思想很重要的载体,没有文字人类的文明无从谈起。比如说王羲之的“兰亭序”,不只是文化作品,也是人类历史上璀璨的明珠之一;再比如诗经,通过诗经我们既可以学习它朗朗上口的文学特性,也可以通过它了解两千年前历史的故事和先人的思想。

在上图的右侧的两幅图里面,可以看到是有建筑、有场景、有树木等。如果仅仅看到这两幅图,相信大家并不知道图片表达的意思。但是结合了文字之后,就可以一目了然的看到要讲的内容。所以说文字是计算机视觉的重要线索,与其他视觉信息有着重要的互补作用,可以和对话、NLP等,合成多模态语义分析。

光学字符识别,英文为OCR,是指把图片、PDF中的文字转换成可编辑的文字,也就是通常所说的文字识别。如果只提光学字符识别,估计很多人不知道是什么意思,所以大家通常把光学字符识别说成为文字识别。实际光学字符识别是一般包括检测和识别等多个过程。文字检测,是指判断是否存在文字实例,并给出具体位置的过程。而文字识别是指把文字区域转化成计算机可读和编辑的符号。

文字识别方法也是有很多的,有一种方法是基于手工设计的特征。这个在2014年前是主流的方法,比如MSER,SIFT等。在2014年之后,大家主要用的方法是深度学习方法。

左边这两张图分别是把发票和文档转化成文字

在文字识别技术领域,华为云也有着深入的研究。华为云的OCR处理流程,融合了多种图像处理技术,具有高精度,鲁棒性和自适应性等特点。处理结果中,文字识别精度特别高,支持错行、盖章、文字叠加等复杂场景。同时还支持多种类型单据、及自适应不同质量图片。整个流程包括图像预处理、表格提取(有没有表格进一步处理)、文字定位,整个流程中可能还会有文字矫正、文字识别、文字后处理等内容,最后返回给客户的是结构化的json数据。

文字和检测和识别的难点也是非常多。从下面图片可以看得出,它的背景非常的复杂,字体不一、颜色多种多样、字体多种朝向、大小各不相同、语言不统一、模板不固定等应用场景,这些都是日常生活中所看到的。

在日常生活的指示栏、窗户、砖块、图标、花草、栅栏、树木、机电等都与文字有一定的相似性,给检测和识别带来很大的干扰。

图像本身和成像也会存在的问题,比如分比率、曝光、反光、局部遮挡、干扰等,给检测和识别带来很大的挑战。

深度学习时代的文字和检测和识别,主要是基于深度学习。其中文字检测和目标检测类似,主要是基于物体检测和基于分割。比如说我们左上边看到的textbox是基于SSD目标检测网络,主要改了anchor的设置。在左下图的pixellink,则是基于分割。其中基于目标检测,更多是侧重比较规整的、可以用四点表示,而分割更多倾向于各种不规则形状的文字。

文字识别,最常用的思想是把文字分成一个个字符,然后直接分类,这是以前传统方法最常用的技术之一。中间一个也是基于分类,但是基于单词,对整句话非常难以处理好。最后,是基于序列的特征,提取基本特征,比如说CTC,是参考语音识别,比如说Attention,比如说基于sequence2sequence。最后就是端到端的识别,是在一个网络里同时做到文字检测和识别,检测和识别可以相辅相成,提高性能。

华中科技大学许老师提出一个TextField的概念,就是文字方向场的概念,传统基于分割的文字检测方法有一个很大的局限性就是对密集文本无法有效区分开。他们提出一个文字方向场,基于像素做回归,然后通过后处理组合成一个文字条,对于弯曲特别离谱的文字都可以检测出来。

在文字识别当中非常有代表性的一个方法是就是华中科技大学白老师团队提出的CRNN模型(后正式发表在IEEE TPAMI2016上),称之为 CRNN,其底层用 CNN 提取特征,中层用 LSTM 进行序列建模,上层用 CTC loss 对目标进行优化。它是一个端到端可训练的文字识别结构,但并未使用 Attention。目前,CRNN 已成长为该领域的一个标准方法。

attention 文字识别算法_一文带你了解文字识别相关推荐

  1. 人脸识别算法_格灵深瞳在人脸识别算法测试(FRVT)中斩获全球第一

    1月6日,美国国家标准与技术研究院(NIST)公布了最新的人脸识别算法测试(FRVT)成果,格灵深瞳再次刷新纪录:在7项测试子任务中,获得2项第一.3项第二,综合排名世界第一的成绩. 过去几个月,很多 ...

  2. attention 文字识别算法_支持40种语言的图片文字识别(OCR)项目

    Hi!大家好呀!我是你们努力的喵哥! OCR(光学字符识别)是我们日常很常用的人工智能技术.我们总会有从图片中提取文字的需求.你是不是有需要从图片复制文字的经历?手打是最低效的选择.我们可以使用 OC ...

  3. python50种算法_一文洞悉Python必备50种算法

    本文是一些机器人算法(特别是自动导航算法)的Python代码合集. 其主要特点有以下三点:选择了在实践中广泛应用的算法:依赖最少:容易阅读,容易理解每个算法的基本思想.希望阅读本文后能对你有所帮助. ...

  4. pyecharts对于经纬度_一文带你掌握Pyecharts地理数据可视化的方法

    本文主要介绍了Pyecharts地理数据可视化,分享给大家,具体如下: 一.Pyecharts简介和安装 1. 简介 Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计, ...

  5. 最佳 开源 人脸识别算法_开源项目的最佳社会结构是什么?

    最佳 开源 人脸识别算法 代码审查是一种实践,可促进开源项目中的快速协作,知识共享和最高质量. 代码审查的社会结构是项目的定义特征. 开源项目的最佳社会结构是什么? 在本文中,我们通过分析三个常见模型 ...

  6. 车牌识别算法_易泊车牌识别算法助力智慧城市交通

    引 言 随着科学技术的进步,智慧化的出现让现在生活越来越美,智慧城市.智慧交通等,今天我们的PC端车牌识别,也成为了智慧城市,智慧交通的一份子. 江西山水光电,他们在做智慧城市,目前他们做的一款巡逻车 ...

  7. java byte char io流_一文带你看懂JAVA IO流,史上最全面的IO教学

    原标题:一文带你看懂JAVA IO流,史上最全面的IO教学 一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符 ...

  8. java io流详解_一文带你看懂JAVA IO流,史上最全面的IO教学啦

    一.IO流是什么 惯例引用百科的回答流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作 ...

  9. javaio流_一文带你看懂JAVA IO流,史上最全面的IO教学啦

    一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...

  10. lambda表达式java项目常用_一文带你彻底搞懂Lambda表达式

    1. 为什么使用Lambda表达式 Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递).可以写出更简洁.更灵活的代码.作为一种更紧凑的代码风 ...

最新文章

  1. 2019/5/12 查漏补缺
  2. 混合编码种群来进化的最大化目标的单目标优化问题
  3. VS 工具-选项对话框 调试选项相关学习总结
  4. zTree菜单的排序
  5. java1到100的数组_用java定义一个数组,长度为3: 1)循环输入数组元素值(元素值在1到100之间)...
  6. WPF入门教程系列四——Dispatcher介绍
  7. c/c++ 阻塞和非阻塞,fcntl应用
  8. canvas html 动态,canvas.html
  9. php pacs,DICOM医学图像处理:WEB PACS初谈四,PHP DICOM Class – 只要踏出一步,路就在前方——zssure – CSDN博客...
  10. linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法
  11. Git笔记(3) 安装配置
  12. 计算机网络中的语法 语义 时序的概念,网络iso协议及语义语法时序详解
  13. [framework] multi learner
  14. 使用 GO-CQHttp或mirai框架 搭建QQ的机器人
  15. RxJava:concat(连接)、 concatDelayError、 concatEager的使用
  16. mysql拼接两列数据_Mysql合并两列数据
  17. 计算机笔记--【Java设计模式】
  18. 网页保存mhtml格式
  19. python教程 -- 廖雪峰
  20. 加权黑猩猩优化算法(WChOA)附Matlab代码

热门文章

  1. 蓝桥杯试题c语言蛇形填数,2020十月份蓝桥杯B组省赛题解大全(害!附题面文件和部分代码~)...
  2. CSS绘制三角形—border法
  3. smartprinter 这个绝对程序猿的福音啊
  4. 卡巴斯基半年激活码免费申请
  5. 探索另类圆环图的做法
  6. 北京功略----玩水篇
  7. SpringBoot+Vue项目网上家电商城
  8. Android 计算视频的fps
  9. Java最新手机号正则验证
  10. v6使用手册 天正电气t20_电气工程设计软件-T20天正电气软件下载 v6.0官方版--pc6下载站...