OCR识别的开源分析

OCR软件主要是由下面几个部分组成。

  1. 图像输入、预处理:
  2. 图像输入:对于不同的图像格式,有着不同的存储格式,不同的压缩方式。预处理:主要包括二值化,噪声去除,倾斜较正等
  3. 二值化:
  对摄像头拍摄的图片,大多数是彩色图像,彩色图像所含信息量巨大,对于图片的内容,我们可以简单的分为前景与背景,为了让计算机更快的,更好的识别文字,我们需要先对彩色图进行处理,使图片只前景信息与背景信息,可以简单的定义前景信息为黑色,背景信息为白色,这就是二值化图了。
  4. 噪声去除:
  对于不同的文档,我们对燥声的定义可以不同,根据燥声的特征进行去燥,就叫做噪声去除
  5. 倾斜较正:
  由于一般用户,在拍照文档时,都比较随意,因此拍照出来的图片不可避免的产生倾斜,这就需要文字识别软件进行较正。
  6. 版面分析:
  将文档图片分段落,分行的过程就叫做版面分析,由于实际文档的多样性,复杂性,因此,目前还没有一个固定的,最优的切割模型。
  7. 字符切割:
  由于拍照条件的限制,经常造成字符粘连,断笔,因此极大限制了识别系统的性能,这就需要文字识别软件有字符切割功能。
  8. 字符识别:
  这一研究,已经是很早的事情了,比较早有模板匹配,后来以特征提取为主,由于文字的位移,笔画的粗细,断笔,粘连,旋转等因素的影响,极大影响特征的提取的难度。
  9. 版面恢复:
  人们希望识别后的文字,仍然像原文档图片那样排列着,段落不变,位置不变,顺序不变,的输出到word文档,pdf文档等,这一过程就叫做版面恢复。
  10. 后处理、校对:
  根据特定的语言上下文的关系,对识别结果进行较正,就是后处理。

开源引擎

Cuneiform for Linux —— 本来是个Windows软件,这是Linux的移植,2011年4月已经停止维护。
GNU Ocrad —— 命令行工具。有JS移植,可用于前端。
GOCR —— 命令行工具。有JS移植,可用于前端。
Tesseract —— 开源OCR引擎,也有命令行工具。HP开发Google接手。3.0之后支持训练。Golang绑定。入门教程。
OCRopy —— 基于训练的OCR引擎,训练后可以达到比Tesseract更高的准确度,项目比Tesseract更年轻。包含一个叫做OCRopus的布局分析器。in Python。
Microsoft OCR Library —— Windows8.1之后的版本内置OCR引擎,可用于桌面和WindowsPhone。
Abbyy —— 收费软件,有SDK,有Cloud版本。

预处理代码
OpenCV —— 图像处理老大哥。OpenCV3中有Scene Text Detection值得一用。
Libccv —— 现代图像处理库,被很多人推荐。实现了精选的若干个图像处理算法,干净容易移植。其中Stroke Width Transfor尤其有用。
lswms —— 分行检测。
OCRopus —— 基于神经学习网络算法的布局分析库。教程。
TiRG —— 文字区域检测库,效果演示。
unpaper —— 检测文字和旋转,用的是Hough transform算法。

Scene Text Detection(opencv)
API,
例子1,
例子2,
Paper,
高层包装应用。

高层项目
node-dv —— in Node.js,整合了OpenCV、Tesseract和一些其他项目。
node-fv —— node-dv的更高层,用于证件识别。
OpenOCR —— 包装了SWT、Tesseract、Docker、RabbitMQ,提供队列和HTTP访问服务。in Golang。
openalpr —— 包装了Tesseract和OpenCV,支持多系统build,支持Docker,有Python和Node.js绑定。

android移动端
tess-two,Tesseract的安卓移植,教程。
microblink,免费的移动OCR-SDK。

新方法:机器学习
如果有够多的样本和验证能力,机器学习可以很好的处理OCR的问题。
http://www.danvk.org/2015/01/09/extracting-text-from-an-image-using-ocropus.html
http://www.danvk.org/2015/01/11/training-an-ocropus-ocr-model.html
https://en.wikipedia.org/wiki/Long_short_term_memory
https://github.com/nypl/map-vectorizer

一个快速深度学习的框架,和基于它构建的OCR项目。
https://github.com/BVLC/caffe/
https://github.com/pannous/caffe-ocr

JS构建的神经学习网络
https://github.com/mateogianolio/mlp-character-recognition

参考:
[1] http://blog.yikuyiku.com/

OCR识别的开源分析相关推荐

  1. 基于iOS平台的OCR识别技术的分析与研究

    最近老大要求是通过使用Tesseract OCR iOS来 对货柜的货柜号进行识别,然后去深入研究了下这方面的东西. 以下引自百度百科: OCR (Optical Character Recognit ...

  2. 2022-2028年中国金融业OCR识别行业市场调查研究及前瞻分析报告

    [报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了金融业OCR识别行业相关概述.中国金融业OCR识别行业运行环境.分析 ...

  3. 将电子版照片信息或者扫描件快速识别导出 OCR识别技术

    OCR作为最早实用化的人工智能技术之一,已在产业中得到广泛应用.中安未来OCR技术经过多年的市场应用和技术积累,已推出文档识别.证照识别.票据识别.名片识别等全方位文字识别产品与服务,广泛服务于各行业 ...

  4. OCR识别开源项目对比

    OCR技术路线图总体上可分为五步: 图像预处理.切割字符.识别字符.恢复版面.后处理文字. OCR识别常见的八大开源工具-51CTO.COM https://www.toutiao.com/artic ...

  5. 身份证ocr识别开源方案_多因素身份验证的开源替代方案:privacyIDEA

    身份证ocr识别开源方案 两因素身份验证或多因素身份验证不再只是书呆子的主题. 互联网上有许多服务可以提供它,许多最终用户都需要它. 尽管普通的最终用户可能只会意识到,他偏爱的网站提供了MFA或没有提 ...

  6. 【华为云技术分享】传统OCR识别综述

    1      引言 1.1      什么是OCR 计算机文字识别,俗称光学字符识别,英文全称是Optical Charater Recognition(简称OCR),它是利用光学技术和计算机技术把印 ...

  7. 使用Tensorflow Object Detection API进行集装箱识别并对集装箱号进行OCR识别

    使用Tensorflow Object Detection API进行集装箱识别并对集装箱号进行OCR识别 两年多之前我在"ex公司"的时候,有一个明确的项目需求是集装箱识别并计数 ...

  8. 使用Tensorflow Object Detection API对集装箱号进行OCR识别

    玄念 两年多之前我在"ex公司"的时候,有一个明确的项目需求是集装箱识别并计数,然后通过OCR识别出之前计数的每一个集装箱号,与其余业务系统的数据进行交换,以实现特定的整体需求.当 ...

  9. github优秀项目分享:基于yolov3的轻量级人脸检测、增值税发票OCR识别 等8大项目...

    点击上方"机器学习与生成对抗网络",关注"星标" 获取有趣.好玩的前沿干货! 文章来源:七月在线实验室 01  yolo-face-with-landmark ...

最新文章

  1. 敏捷个人:激励   2011-11-26期
  2. maven项目下tomcat直接启动不了(LifecycleException)。报错如下截图
  3. 为PHP开发C语言扩展
  4. IP域名DNS网站登录过程
  5. poj 2057 树形DP,数学期望
  6. jpa获取session_JPA 2 | 获取联接以及我们是否应该使用它们
  7. 动物行为检测计算机视觉_基于红外热成像和计算机视觉的动物行为研究系统便是其中一例...
  8. ipv4和计算机地址是什么意思,什么是ipv4 ipv6 ipv9 区别是什么(一) -电脑资料
  9. DropDownList如何绑定DataTable,如何绑定DataSet
  10. java 删除n天前的文件_linux自动删除n天前备份
  11. Oracle队列锁enq:TS,Temporary Segment (also TableSpace)
  12. TCP/IP-----协议号、端口号、ARP、icmp
  13. Docker学习总结
  14. 数据库事务的四大特性
  15. Envoy架构理解--理解xDS/Listener/Cluster/Router/Filter
  16. go程序cpu过高问题排查方法
  17. 说话人识别(speaker Recognition/Verification)简介
  18. 连物联网数据都理不清楚还怎么搞大数据分析?
  19. android刷机知识大全,安卓主流机型刷机基础科普 教你刷机不求人
  20. UWB定位技术芯片有什么用

热门文章

  1. Eclipse的web项目放到服务器上跑
  2. 陨算计算机技术有限公司,基于准实时数据的智能配电网理论线损计算.docx
  3. 条件判断遍历循环v-model
  4. 苹果CMSV10本地化DPLAYER增加记忆+P2P播放+自动下一集方法
  5. AFL源码分析之afl-fuzz(学习笔记)(一)
  6. try_files $uri $uri vue-router的history模式,nginx配置 try_files 含义
  7. Java 骚操作花式写法了解一下?
  8. 逻辑运算符 || 和位运算符 | 的区别
  9. 工作证明与股权证明_社会证明原则
  10. 【数据分析案例】某瓣读书数据分析