光学字符识别OCR-8 综合评估
尽管在测试环境下模型工作良好,但是实践是检验真理的唯一标准。在本节中,我们通过自己的模型,与京东的测试数据进行比较验证。
衡量OCR系统的好坏有两部分内容:(1)是否成功地圈出了文字;(2)对于圈出来的文字,有没有成功识别。我们采用评分的方法,对每一张图片的识别效果进行评分。
评分规则: 如果圈出的文字区域能够跟京东提供的检测样本的box文件中匹配,那么加1分,如果正确识别出文字来,另外加1分,最后每张图片的分数是前面总分除以文字总数。
按照这个规则,每张图片的评分最多是2分,最少是0分。如果评分超过1,说明识别效果比较好了。经过京东的测试数据比较,我们的模型平均评分大约是0.84,效果差强人意。
在本文中,我们的目标是建立一个完整的OCR系统,经过一系列的工作,我们也基本完成了这一目标。
在设计算法时,我们紧密地结合基本假设,从模拟人肉眼的识别思路出发,希望能够以最少的步骤来实现目标,这种想法在特征提取和文字定位这两部分得到充分体现。同样地,由于崇尚简洁和模拟人工,在光学字符识别方面,我们选择了卷积神经网络模型,得到了较高的正确率;最后结合语言模型,通过动态规划用较简单的思路提升了效果。
经过测试,我们的系统对印刷文字的识别有着不错的效果,可以作为电商、微信等平台的图片文字识别工具。其中明显的特点是,我们的系统可以将整张文字图片输入,并且在分辨率不高的情况下能够获得较好的效果。
在本文所涉及到的算法中,一个很大的不足之处就是有很多的“经验参数”,比如聚类时h参数的选择、低密度区定义中密度的阈值、卷积神经网络中的卷积核数据、隐藏层节点数目等。由于并没有足够多的标签样本进行研究,因此,这些参数都只能是凭借着经验和少量的样本推算得出。我们期待会有更多的标签数据来得到这些参数的最优值。
还有,在识别文字区域方面,还有很多值得改进的地方。虽然我们仅仅是经过几个步骤就去掉了大部分的文字区域,但是这些步骤还是欠直观,亟待简化。我们认为,一个良好的模型应该是基于简单的假设和步骤就能得到不错的效果,因此,值得努力的工作之一就是简化假设,缩减流程。
此外,在文本切割方面,事实上不存在一种能够应对任何情况的自动切割算法,因此这一步还有很大的提升空间。据相关文献,可以通过CNN+LSTM模型,直接对单行文本进行识别,但这需要大量的训练样本和高性能的训练机器,估计只有大型企业才能做到这一点。
显然,还有很多工作都需要更深入地研究。
光学字符识别OCR-8 综合评估的更多相关文章
- 光学字符识别OCR
1.功能: 光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程 2.典型应用: 名片扫描 3 ...
- 6 个优秀的开源 OCR 光学字符识别工具
转自:http://sigvc.org/bbs/thread-870-1-1.html 纸张在许多地方已日益失宠,无纸化办公谈论40多年,办公环境正限制纸山的生成.而过去几年,无纸化办公的概念发生了显 ...
- 开源OCR光学字符识别
纸张在 许多地方已日益失宠,无纸化办公谈论40多年,办公环境正限制纸山的生成.而过去几年,无纸化办公的概念发生了显着的转变.在计算机软件的帮助 下,包含大量重要管理数据和资讯的文档可以更方便的以电子形 ...
- 字符识别OCR研究一(模板匹配&BP神经网络训练)
摘 要 在MATLAB环境下利用USB摄像头採集字符图像.读取一帧保存为图像.然后对读取保存的字符图像,灰度化.二值化,在此基础上做倾斜矫正.对矫正的图像进行滤波平滑处理,然后对字符区域进行提取切割出 ...
- OCR技术浅探: 语言模型和综合评估(4)
语言模型 由于图像质量等原因,性能再好的识别模型,都会有识别错误的可能性,为了减少识别错误率,可以将识别问题跟统计语言模型结合起来,通过动态规划的方法给出最优的识别结果.这是改进OCR识别效果的重要方 ...
- 【OCR技术系列一】光学字符识别技术介绍
注:此篇内容主要是综合整理了光学字符识别 和OCR技术系列之一]字符识别技术总览,详情见文末参考文献 什么是 OCR? OCR(Optical Character Recognition,光学字符识别 ...
- Ocrad.js – JS 实现 OCR 光学字符识别
Ocrad.js 相当于是 Ocrad 项目的纯 JavaScript 版本,使用 Emscripten 自动转换.这是一个简单的 OCR (光学字符识别)程序,可以扫描图像中的文字回文本. 不像 G ...
- IT行业新名词--透明手机/OCR(光学字符识别)/夹背电池
透明手机 机身设计的一大关键部分是可替换玻璃的使用,利用导电技术,在看不到线路的环境下,让LED发光. 这样的玻璃内含液晶分子,对于内容的显示则是通过电流对分子的刺激来实现.当手机断电后,分子位置会随 ...
- 非黑即白--谷歌OCR光学字符识别
# coding=utf-8 #非黑即白--谷歌OCR光学字符识别 # 颜色的世界里,非黑即白.computer表示深信不疑. # 今天研究一下OCR光学识别庞大领域中的众多分支里的一个开源项目的一个 ...
随机推荐
- C# 操作 sqlite
1.下载sqlite:http://system.data.sqlite.org/downloads/1.0.94.0/sqlite-netFx20-setup-bundle-x86-2005-1.0 ...
- 3.Freshman阶段学习内容的确定
我刷知乎.在知乎上答题的程序员,不是很牛逼就是更牛逼,说起各种系统.各种系统的各种版本.各种语言.数据库.算法.IT届的各种圣战都有板有眼.信手拈来.头头是道,不得不服.这导致了一些非常严重的问题:我 ...
- PHP变量、数据类型、字符串、运算符、条件语句、循环语句、数组、函数
PHP 简介: php :是一门动态交互的计算机语言 静态交互 html css js 但凡是动态交互的 都需要服务器. php都是以.php结尾的文件 Html文件里不能写php代码,但是ph ...
- css3的过渡、动画、2D、3D效果
浏览器的内核: 谷歌的内核是:webkit 火狐的内核是:gecko Ie的内核是:trident 欧鹏的内核是:presto 国内浏览器的内核:webkit css3针对同一样式在不同的浏览器的兼容 ...
- 零基础逆向工程12_C语言06_switch语句反汇编
12_C语言06_switch语句反汇编 switch语句反汇编 测试环境:VC++6.0 分支少于4的时候没有意义,编译器会生成类似if...else之类的反汇编,不超过三个分支,不会生成索引表. ...
- BaseAdapter获取View之三重境界
在BaseAdapter获取View之前,BaseAdapter需要与数据源相关联. 可以使用构造方法: private List<ItemBean> baseListItems; pri ...
- JFinal-美女图爬虫-一个不正经的爬虫代码
去年我做了一个项目,大量使用爬虫抓取数据,使用JFinal+JSoup组合,抓取数据,数据清洗筛选,最终保存到数据库里,结构化. 今天,我发布一个不正经的爬虫项目,如果你对JSoup做爬虫感兴趣,可以 ...
- Spark Job具体的物理执行
即使采用pipeline的方式,函数f对依赖的RDD中的数据集合的操作也会有两种方式: 1.f(record),f作用于集合的每一条记录,每次只作用于一条记录 2.f(records),f一次性作用于 ...
- FMDB的使用方法(附Demo)
http://www.jianshu.com/p/54e74ce87404 最近在项目中需要在多个页面对同样的数据进行相关操作,于是便用到了FMDB数据库操作,以下便是FMDB的一些简单的使用方法.附 ...
- CPP-STL:vector中的size和capacity
在vector中与size()和capacity() 相对应的有两个函数: resize(size_type)和reserve(size_type). Size指目前容器中实际有多少元素,对应的res ...