浅析点对点(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文字识别技术来识别手写文字,在评估过程中体验了百度的文字识别和腾讯的文字识别.查找官方开发文档,发现它们都有印刷体和手写体两种符合项目需求的识别模式,但是腾讯的手写 ...
随机推荐
- 用ATL写简单的ActiveX控件 .
我正在做的项目需要用读卡器来读数据,由于系统是B/S架构的所以只能把读卡器的驱动封装成一个无界面的ActiveX控件,这样web页面中的js代码才能访问读卡器其实做起来也挺简单的,我用的环境是VS20 ...
- [HDU 1358]Period[kmp求周期]
题意: 每一个power前缀的周期数(>1). 思路: kmp的next. 每一个前缀都询问一遍. #include <cstring> #include <cstdio> ...
- 手游接入Facebook的那些坑
之前工作须要在手游中接入了facebook,并以此写了<手游接入Facebook功能>的博文.当时facebook sdk的版本号还是3.x.代码集成度比較低.集成起来也比較麻烦.文中仅仅 ...
- js入门——Dom基础
DOM=DocumentObject Model,文档对象模型. Dom有三个不同的部分. 1.核心DOM 也是最基础的文档结构的标准模型 2.XMLDOM 针对XML文档的标准模型 3.HTML D ...
- zepto.js介绍(持续更新)
前言: zepto是一个简化版的jQuery,主要针对移动端开发. 简化了jQuery里很多的浏览器兼容性代码,jQuery的很多方法都被拿掉了(eg:slideUp). WP设备兼容性很差. 官方链 ...
- EF的两种延迟加载
EF的两种延迟加载 EF的延迟加载一: 在一次查询以后得到temp,然后在temp上直接进行查询得到temp2,我们调用temp2的时候,是直接为temp生成sql脚本的,没有生成temp的脚本,也就 ...
- 读取中兴3G告警log告警文件到集合
1.文件格式 ALARM_ID=102305_404205 EVENT_TIME=-- :: NOTIFICATION_TYPE= MANAGED_OBJECT_INSTANCE=NodeId=,Bs ...
- Oracle数据库top10物理段
select owner, name, type, mega, tbs from (select owner, case when ...
- linux c: core dump
1. core dump文件系统设置 http://www.cnblogs.com/no7dw/archive/2013/02/18/2915819.html 编译时需要输入-g才会生成coredum ...
- 改变Emacs下的注释代码方式以支持当前行(未选中情况下)的注释/反注释
Emacs下支持多行代码的注释/反注释,命令是comment-or-uncomment-region. 我喜欢把它绑定在快捷键C-c C-/上,如下: (global-set-key [?\C-c ? ...