一、背景

随着智能手机的广泛普及和移动互联网的迅速发展,通过手机等移动终端的摄像头获取、检索和分享资讯已经逐步成为一种生活方式。基于摄像头的(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.字符检测

字符识别主要是判断某个图像块(p_w_picpath 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.

By Errui Ding

php 点对点,浅析点对点(End-to-End)的场景文字识别相关推荐

  1. 点对点文件服务器,点对点文件同步工具(Syncthing)

    Dropbox 这类的文件同步服务很多了,不过我们都需要先将文件上传到它们的服务器中再同步,而点对点的文件同步方式也有 BitTorrent Sync,不过操作起来就不比 Dropbox 之类的方便. ...

  2. 计算机网络点对点模式,点对点模式——进一步分析

    点对点模式(加深理解) 1.特定的环境 用户之间为了能够更好的共享资源和分享自身的信息,取消中心服务器,减少数据传输的节点,避免数据传输时文件遗失情况. 2.点对点传输结构 所谓点对点传输也就是存储转 ...

  3. java socket 点对点_javaSocket点对点实现文件传输

    伟哥是学C++的,昨天做java老师布置的大作业,让他们做一个文件传输的程序,多线程实现,伟哥很是无语啊,然而他并没有学过太多java,虽然伟哥在我心中是个大神(计算机大神啊,面过了tecent,啧啧 ...

  4. 计算机3d影视的应用,浅析CG技术在3D电影场景设计中的应用

    [摘要] 3D电影的场景设计在造型手法.空间表现上和传统电影有着相当大的区别,这得益于计算机CG技术,能够创造出完全由计算机虚拟而传统手法无法获取的形象和镜头运动,实现了科学技术和艺术的完美结合.计算 ...

  5. 【机器学习】浅析机器学习各大算法的适用场景

    最近在参加一个分类算法竞赛,也正好整理各个分类机器学习算法的简单介绍,应用场景和优缺点.资源来自网上和自己个人理解. 一.逻辑回归模型 1.理解逻辑回归模型(LR) 逻辑回归是一种分类算法,其原理是将 ...

  6. 浅析AI智能分析网关的车辆/车牌识别技术的研发及应用场景

    车牌识别技术是计算机视频图像识别技术在车辆牌照识别中的一种应用,它融合了ORC识别.云计算等多种技术,可将运动中的汽车牌照从复杂的背景中提取并识别出来,通过车牌提取.图像预处理.特征提取.车牌字符识别 ...

  7. 浅析TSINGSEE智能视频分析网关的AI识别技术及应用场景

    一.行业背景 1)AI技术在安防领域大量落地应用 随着近几年人工智能的快速发展,深度学习方法及性能日益提升,计算机视觉.图像处理.视频结构化和大数据分析等技术也不断完善,使得安防产品逐步走向智能化.在 ...

  8. ThreadLocal在多线程中的作用和原理浅析(模拟学生入学报到场景)

    声明:本人菜鸟,发布这个帖子旨在抛砖引玉,不当之处肯定不少,请多指教. 无意中看到ThreadLocal这个类,学习一番以后发现用它解决一些多线程问题真是一个很好的思路和方法. 首先模拟一个场景: 学 ...

  9. 浅析流媒体相关技术与实际场景应用

    随着互联网的不断发展,流媒体应用已经成为了人们生活中不可或缺的一部分.从在线音乐.视频到直播和游戏,流媒体技术的应用已经渗透到了人类的日常生活中.TSINGSEE青犀视频垂直深耕音视频流媒体技术.AI ...

最新文章

  1. 18岁辍学,22岁进谷歌和Jeff Dean谈笑风生,这样的我究竟需不需要本科文凭?
  2. 使用crypto模块实现md5加密功能(解决中文加密前后端不一致的问题)
  3. 神经网络版的GTA5火了,网友:好像AI的梦境
  4. hibernate的native sql查询
  5. vscode更改编码_装上后这 10个扩展后,VSCode 真的是无敌的存在
  6. php透明颜色的代码,PHP 透明水印生成代码参考
  7. 通过IDEA查看jar包中的依赖关系
  8. Linux驱动修炼之道-SPI驱动框架源码分析(中)
  9. c#计算长方形的周长和面积公式_Java面向对象练习题之计算圆的面积和周长
  10. es聚合查询与多维度数据统计
  11. 主题:Hibernate/Spring/Struts架构使用OpenSessionInView的问题
  12. c语言二叉树_linux学习第20节,二叉树的特性和插入、查询、删除等基本操作
  13. Flutter基础—布局模型之层叠定位
  14. 机器学习必知的 10 个 Python 库
  15. theadClasses设置Bootstrap Table表头样式
  16. 基于单片机的空气质量监测
  17. PR如何对裁剪之后的视频进行resize,指定到期望大小?
  18. CORS手机测试软件,司南导航RTK手簿软件测量大师连接千寻cors账号进行测量的方法教程...
  19. 欧洲机器人实验室盘点
  20. 信号完整性之Cadence Sigrity TDR仿真操作流程

热门文章

  1. Dapr 正式发布 1.0
  2. 使用ImpromptuInterface反射方便的创建自定义DfaGraphWriter
  3. gRPC真要取代WebApi了,你还学得过来吗?
  4. C#9.0 终于来了,带你一起解读 nint 和 Pattern matching 两大新特性玩法
  5. 程序员过关斩将--作为一个架构师,我是不是应该有很多职责?
  6. EntityFramework Core动态加载模型,我们要知道些什么呢?
  7. .NET ORM FreeSql 第一个正式版本发布 v1.0.0
  8. 技术管理者怎样跳出“泥潭”
  9. 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图...
  10. SignalR 中丰富多彩的消息推送方式