浅析点对点(End-to-End)的场景文字识别(图片文字)
一、背景
随着智能手机的广泛普及和移动互联网的迅速发展,通过手机等移动终端的摄像头获取、检索和分享资讯已经逐步成为一种生活方式。基于摄像头的 (Camera-based)的应用更加强调对拍摄场景的理解。通常,在文字和其他物体并存的场景,用户往往首先更关注场景中的文字信息,因而如何能够正 确识别场景中的文字,对用户拍摄意图会有更深入的理解。一般意义上,基于图像的文字识别包括基于扫描文字的光学字符识别(Optical Character Recognition, OCR) 和广泛用于网站注册验证的CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart,全自动区分计算机和人类的图灵测试)。相比较而言,基于扫描仪的OCR最简单,CAPTCHA最难,场景文字识别则介于这两者之间,如图1所示[1]。
图1基于图像的文字识别
场景文字与扫描文字的最大区别在于其背景往往比较复杂,而且对设备(如移动设备或计算机)来说,文字位置是不确定的。其次,光照对文字的影响也是非常大的。最后相比传统OCR处理的情况,很多场景文字更加多样化,具有较大的内类变化。
二、两种识别方案
一种自然而然的想法,是首先检测并定位到文字区域(文字检测),然后再将检测到的文字块送到现有的OCR中进行识别(文字识别),但是上述场景文字存在的难题均对这种方案形成了挑战。从本质上讲,这种方案将文字检测和识别完全割裂开,严重依赖文字检测和分割性能。
近年来,一种截然不同的点对点文字定位和识别系统逐渐开始引起学术界和工业界的关注。该系统从物体识别角度出发,同时进行文字检测和识别,在场景文字识别中取得了较好的效果。本文就以英文识别为例,简要介绍一下点对点的文字检测与识别系统。
三、点对点场景文字识别系统
通常点对点系统通常包括:a)字符检测;b)同时单词检测和识别。
1.字符检测
字符识别主要是判断某个图像块(image patch)是否是字符。图像块的选取既可以用滑动窗口(Sliding Window)进行多尺度扫描,也可以通过连通域分析(Connected Component Analysis, CCA)得到。基于滑动窗口的方法,最经典的应用来自于人脸检测,但其最大的问题在于:一方面会产生很多的候选区域,另一方面容易产生字符间和字符内的混 淆。如图2所示[2]。在两个O之间的滑动窗口容易被误认成为X,而框了一半的B容易被误认为E.
图2字符间和字符内混淆
而基于CCA的方法虽然复杂度较低,但很容易受到背景的干扰,且对模糊图像无能为力。如文献[3]就采用基于极性区域的连通域来形成文字候选区。
通常对图像块的特征描述往往采用的Histograms of Oriented Gradients (HOG) ,分类器可以使用支持向量机(Support Vector Machine, SVM),近邻(Nearest Neighbor, NN), Adaboost等。
2.单词同时检测和识别
由于字符检测一般利用的是bottom-up的信息,故而检测得到字符候选区域包含一定的false positive。为此,单词同时检测和识别模块,往往需要借助top-down信息(如词典信息)[2,3,4]。
在文献[2],针对字符检测结果,采用了条件随机场(Conditional Random Field, CRF)来模拟字符识别的置信度,字符间的关系(位置和语义上)。CRF的能量函数定义如下式所示。
其中第一项表达了单个候选区的置信度,而第二项则描述了两个候选区之间的关系,包括了几何位置上的重叠关系和在词典(Lexicon)中两个字母出现的概率情况。
图3 单词同时检测和识别
通过CRF,图3中的单词就可以准确地被识别成door,而非doxr。除了CRF,Wang等[4]还借用了Pictorial Structures等来完成单词的检测和识别。
四、方案效果对比
为了对比第二节中两种方案,表1给出了上述提及的三种点对点系统和传统OCR系统(商用软件ABBYY, www.abbyy.com)识别效果对比。使用的两个数据集为街景文字文字数据库(Street View Text)[1]和ICDAR数据库(http://algoval.essex.ac.uk/icdar/RobustWord.html),如图4所示。
图4 SVT(左)和ICDAR(右)数据库样例
显然,点对点的系统均优于传统OCR的识别。
五、一点思考
目前点对点的系统大部分还是针对英文的识别,主要是因为英文的类别相对来说还是比较小的(62类,26个大小写英文字母和10个数字),而对于类别数目较大的中文一直是我们思考的问题。
参考文献
[1]. K. Wang and S. Belongie. Word spotting in the wild. In Proc. ECCV, 2010.
[2]. A. Mishra and K. Alahari. Top-Down and Bottom-Up Cues for Scene Text Recognition. In Proc. CVPR, 2012.
[3]. L. Neumann and J. Matas. Real-Time Scene Location and Recognition. In Proc. CVPR, 2012.
[4]. K. Wang, B. Babenko, and S. Belongie. End-to-end scene text recognition. In Proc. ICCV, 2011.
浅析点对点(End-to-End)的场景文字识别(图片文字)的更多相关文章
- OCR场景文本识别:文字检测+文字识别
一. 应用背景 OCR(Optical Character Recognition)文字识别技术的应用领域主要包括:证件识别.车牌识别.智慧医疗.pdf文档转换为Word.拍照识别.截图识别.网络图片 ...
- python识别图片文字
因为学校要求要刷一门叫<包装世界>的网课,而课程里有200多道选择题,而且只能在手机完成,网页版无法做题,而看视频是不可能看视频的,这辈子都不可能看...所以写了几行代码来进行百度搜答案. ...
- python3 识别图片文字
1.下载相关组件 安装:pip install Pillow 或下载:https://pypi.org/project/Pillow/5.2.0/ ,https://pypi.org/project ...
- python 识别图片文字
今天群里有兄弟问如何把图片的文字给识别出来 对于python来说这不是小菜一碟吗,于是乎让pupilheart狠狠的吹了一波(哈哈,竟然没懂),下面将整个实现过程给大家实现下: 方法一:自己搞定ORC ...
- C#调用OCR组件识别图片文字
图片识别的技术到几天已经很成熟了,只是相关的资料很少,为了方便在此汇总一下(C#实现),方便需要的朋友查阅,也给自己做个记号. 图片识别的用途:很多人用它去破解网站的验证码,用于达到自动刷票或者是批量 ...
- OCR文字识别笔记总结
OCR的全称是Optical Character Recognition,光学字符识别技术.目前应用于各个领域方向,甚至这些应用就在我们的身边,比如身份证的识别,交通路牌的识别,车牌的自动识别等等.本 ...
- C# 10分钟完成百度图片提取文字(文字识别)——入门篇
现在图片文字识别已经很成熟了,比如qq长按图片,点击图片识别就可以识别图片的文字,将不认识的.文字数量大的.或者不能赋值的值进行二次可复制功能. 我们现在就基于百度Ai开放平台进行个人文字识别,dem ...
- 图片文字识别aip的一个小Demo
目前接触到了一个新的内容,识别图片上的文字,以下是这个Demo 首先需要在需要在百度云-管理中心创建应用 地址:http://console.bce.baidu.com/ai/#/ai/ocr/app ...
- 百度Ocr文字识别
简述 最近开发一个项目需要用到Ocr文字识别技术来识别手写文字,在评估过程中体验了百度的文字识别和腾讯的文字识别.查找官方开发文档,发现它们都有印刷体和手写体两种符合项目需求的识别模式,但是腾讯的手写 ...
随机推荐
- 修改VISUAL STUDIO EXPRESS 2012新建C++文件编码
本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供markdown格式源码,欢迎使 ...
- 枚举+搜索 hdu-4431-Mahjong
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4431 题目大意: 给一副牌,求出所有能糊的牌. 解题思路: 枚举每一张牌,看能不能糊. 因为一共只有 ...
- PE文件简单介绍
PE(Portable Execute)文件是WIN32下可运行文件遵循的数据格式,也是反汇编调试不可缺少的文件,常见的pe文件有.exe和.dll文件.本文主要介绍pe文件的结构和虚拟内存地址转换到 ...
- javascript笔记整理(对象的继承顺序、分类)
Object.prototype.say=function(){ alert("我是顶层的方法"); } children.prototype=new parent(); pare ...
- 高级特性(2)- XML
2.1 概述2.2 解析XML文档2.3 验证XML文档 2.3.1 文档类型定义 2.3.2 XML Schema 2.3.3 实用示例2.4 使用XPath来定位信息2.5 使用命名空间2.6 流 ...
- 无限层级且乱序的树形结构数据的整理,利用HashMap降低遍历次数
我们在展示一个机构树的时候,经常会遇到这种一个问题,查询数据的时候,是从下往上查的,但展示数据的时候,又要从下往上展示. 这时候就要把查询到的数据进行整理从而得到我们想要的结构. 举个样例. ID P ...
- HTML5 Canvas自定义圆角矩形与虚线(Rounded Rectangle and Dash Line)
HTML5 Canvas自定义圆角矩形与虚线(RoundedRectangle and Dash Line) 实现向HTML Canvas 2d context绘制对象中添加自定义的函数功能演示,如何 ...
- QString与char*的相互转换
原地址:http://blog.sina.com.cn/s/blog_5c70dfc80100r0nh.html 一.QString转char* QString str; int num=0; s ...
- 基于visual Studio2013解决C语言竞赛题之1067间隔排序
题目 解决代码及点评 /* 功能:间隔元素排序.用随机函数产生25个[25,75]之间的整数, 把它送到一维数组M中. 要求对M[I],M[I+J],M[I+2*J],-这些元 ...
- .atitit.web 推送实现解决方式集合(3)----dwr3 Reverse Ajax
.atitit.web 推送实现解决方式集合(3)----dwr3 Reverse Ajax 1. 原理实现 1 2. Page 添加配置.添加回调函数dwr.engine.setActiveRev ...