最近接触OCR,先收集一些资料,包括成熟软件、SDK、流行算法。

1. 一个对现有OCR软件及SDK的总结,比较全面,包括支持平台、编程语言、支持字体语言、输出格式、相关链接等

http://en.wikipedia.org/wiki/List_of_optical_character_recognition_software

以此为索引,比较、选择你想要的OCR SDK。

2. 另外一个OCR SDK 网站链接,商用,号称high performance,未深入了解,链接如下:

http://asprise.com/home/

3. 一个大学UCI 给出的handwriting数字的 training及testing数据:

http://archive.ics.uci.edu/ml/datasets/Optical+Recognition+of+Handwritten+Digits

其每个数字近550个样本,出自43个人,30个人的用于training,13个人的用testing。其网站上有详细介绍。

4. 一个哥们对开源的OCR 库的总结:

http://blog.csdn.net/yzm888/article/details/5352423

5. 网上有很多OCR的online service,这里给出一个:

http://www.free-ocr.com/

是以tesseract为OCR引擎。

----------------------------------------------------------------------------------------------------

OCR常用算法:

OCR重要的是识别率,专家说达到90%以上才有意义。

OCR重要的两点:特征提取与匹配能力。

特征提取与图像处理算法的好坏密切相关。

匹配算法:

1. 模板匹配

包括多模板匹配、关键点模板匹配

2. 人工神经网络训练

3. 结构化分析、特征统计

---------------------------------------------------------------------------------------------------

tesseract是google开源的OCR,很流行。

这里记录下其应用方法及原理。

单个字符tesseract 测试:

命令行: tesseract  input.jpg out  -psm  10

输入图像应该遵守一定的规则,这样才能提高识别率:

其结果是M,错的结果。

而对

其结果是H,正确。

两个图片的区别就在于宽度不同,一个大小是(29,55),另外一个是(55,55),原以为图片是需要归一化,或宽高相等。后查看tesseract FAQ,提到改善结果的要素:

  1. please check DPI of your image and size of text
  2. try to set different segmentation mode (-psm option for command line) if you try to OCR small part of text (line, text)
  3. try to add border (see issue 398)
  4. try to pre-process image (increase DPI, resize, blur/sharpen image) before OCR (see issue 191)
  5. try to remove noise dewarp (so there are straight text lines) image and binarize image

这里是第三点add border,使结果改善。

经批量测试,确是如此。

其他,设置识别白名单,如只识别数字,或大写字母,可以大大提高识别率

将tessedit_char_whitelist 0123456789 放在config/digits中,数字可被替换。

测试200多个单个字符(200张图片),识别率达到90%,字符为黑体印刷体。

目前测试中增加字体宽度,对识别率,无明显影响。

为进一步提高识别率,对错误识别的字符再次进行训练学习

OCR学习及tesseract的一些测试的更多相关文章

  1. C++ primer学习记录(个人猜想未测试版本)

    学习版本:第五版. 本博文主要记录个人曾经并不知晓知识细节. 因为linux下的编译环境还未进行学习.所以实际代码测试将在今后完成. 红色:需确认. 蓝色:重点. 1)const对象设定为仅在文件内有 ...

  2. 学习使用TestNG进行数据驱动测试

    转自: https://mp.weixin.qq.com/s/8Bd8LEhiC2pu2VMcyNMGlQ 学习使用TestNG进行数据驱动测试 赵吃饭 51Testing软件测试网 前天   学习使 ...

  3. Tessnet2 a .NET 2.0 Open Source OCR assembly using Tesseract engine

    http://www.pixel-technology.com/freeware/tessnet2/ Tessnet2 a .NET 2.0 Open Source OCR assembly usin ...

  4. 转 Python3 错误和异常/ Python学习之错误调试和测试

    ########sample 0 https://www.cnblogs.com/Simon-xm/p/4073028.html except: #捕获所有异常 except: <异常名> ...

  5. Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建;学习Python语言,利用Python语言来写测试用例。加油!!!

    Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建:学习Python语言,利用Python语言来写测试用例.加油!!!

  6. 学习使用Jmeter做压力测试(一)--压力测试基本概念

    学习使用Jmeter做压力测试(一)--压力测试基本概念 一.性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测 ...

  7. 【转】OCR识别引擎tesseract使用方法——安装leptonica和libtiff

    原文来自:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c4224 ...

  8. 开源OCR识别库-Tesseract介绍

    最近在github上面看到一个开源的ocr文字识别库,感觉效果还可以,所以在这里介绍一下,这个项目的原地址在:https://github.com/tesseract-ocr/tesseract. t ...

  9. [机器学习] 深度学习之caffe1——软件配置与测试

    caffe的编译配置真的是很让人头疼啊,不知道试过多少次了~~~ 重装系统了七八次,搞得linux的一些常用命令倒是很熟悉了~~~ 我有洁癖~~~某一个点上出了错,我一定要把它搞好了,再重新来一次,我 ...

随机推荐

  1. 【大数据系列】MapReduce示例一年之内的最高气温

    一.项目采用maven构建,如下为pom.xml中引入的jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xml ...

  2. word2010没有“标题2、标题3”样式的解决办法

    word2010没有“标题2.标题3”样式的解决办法 很多人用word的时候都喜欢用“标题1”“标题2”等样式来定义他们的文档标题,被这样定义的标题会出现在导航窗格中,使浏览起来非常方便.但是最近我发 ...

  3. Android studio Unable to start the daemon process

    Unable to start the daemon process.This problem might be caused by incorrect configuration of the da ...

  4. 邮件MIME格式分析

    http://www.cnblogs.com/crystalray/articles/3302427.html 邮件mime格式 参考: rfc4021,Registration of Mail an ...

  5. 怎么使用jstack精确找到异常代码

    1.代码demo //一个CPU密集型线程的demo: package chapter1; public class FindJavaThreadInTaskManager { public stat ...

  6. 题目1461:Tempter of the bone(深度优先遍历DFS)

    题目链接:http://ac.jobdu.com/problem.php?pid=1461 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  7. sencha touch 压缩js,css遇到的问题

    在使用工具压缩css和jss时,我遇到了以下问题 1. showBtn: { tap: function (t, value) { this.redirectTo(t.config.goto); } ...

  8. 2015.7.10js-07(简单时间)

    今天学习了一个小程序,将本地时间显示在页面上,用了图片的形式. 1.执行原理是,先用6张全0的图片,然后通过循环img各自根据时间来更换相对应的时间图片. 2.使用Date()函数获取本地时间,然后转 ...

  9. Ubuntu 16.04系统下软件中心Software闪退解决办法

    按住Ctrl+Alt+T打开终端输入: sudo apt-get update //更新 sudo apt-get dist-upgrade //升级 sudo apt-get install --r ...

  10. 计蒜客 31453 - Hard to prepare - [递归][2018ICPC徐州网络预赛A题]

    题目链接:https://nanti.jisuanke.com/t/31453 After Incident, a feast is usually held in Hakurei Shrine. T ...