关于PGM在OCR方面的应用
2015-09-20 22:55
92 查看
本文仅仅是一个简单的PGM在OCR方面的应用的实践。
仅此记录下来实现的思路。
OCR(Optical Character Recognition)即是将手写的文字用计算机自动的识别出来,然后输送到计算机里。
OCR目前仍然没有完全成功的产品。但是不论OCR再进行优化,他的基本思路都是相同的。
在此,我仅仅使用到了两个比较通用的OCR方面的优化方法进行说明。
首先最基本的,就是直接通过采集到的手写体问题图片进行识别,我们假定前后的letters之间没有任何的关联。
使用softmax,DL或者任何一种你认为可行的分类算法都可以,这个分类算法的目的就是根据拿到的图片信息给单词表中的
每一个备选letters进行打分(score),可能性高的letter的分高,反之则分低。
当然我们的假设是错误的,因为不论是在英文单词里还是在这世界上的任何一种语言,letters之间肯定是相关的,而且有些letters
本来外形就十分的相似,如果仅仅是建立letters之间不相关的模型进行OCR恐怕识别率不会很高。
鉴于此,对模型进行了优化,建立了一个markov network,这里假定了相邻的letters之间是有关联的,然后我们建立一个表,
列出各种letters同时出现的概率的大小。
由于仅仅相邻两个letters的约束不够强,于是再多加一个联系,引入三个letters同时出现的score
有了基本思路和模型就可以来实现啦!
在实现的时候用到了python的一个开源库:pgmpy http://pgmpy.org/
具体安装和使用文档在他们的官网上都有,真的挺好用。
下面附上我实现的repo地址:
https://gitcafe.com/NeighborhoodGuo/OCR_based_on_PGM
如果有朋友发现不足的地方欢迎指正!
仅此记录下来实现的思路。
OCR(Optical Character Recognition)即是将手写的文字用计算机自动的识别出来,然后输送到计算机里。
OCR目前仍然没有完全成功的产品。但是不论OCR再进行优化,他的基本思路都是相同的。
在此,我仅仅使用到了两个比较通用的OCR方面的优化方法进行说明。
首先最基本的,就是直接通过采集到的手写体问题图片进行识别,我们假定前后的letters之间没有任何的关联。
使用softmax,DL或者任何一种你认为可行的分类算法都可以,这个分类算法的目的就是根据拿到的图片信息给单词表中的
每一个备选letters进行打分(score),可能性高的letter的分高,反之则分低。
当然我们的假设是错误的,因为不论是在英文单词里还是在这世界上的任何一种语言,letters之间肯定是相关的,而且有些letters
本来外形就十分的相似,如果仅仅是建立letters之间不相关的模型进行OCR恐怕识别率不会很高。
鉴于此,对模型进行了优化,建立了一个markov network,这里假定了相邻的letters之间是有关联的,然后我们建立一个表,
列出各种letters同时出现的概率的大小。
由于仅仅相邻两个letters的约束不够强,于是再多加一个联系,引入三个letters同时出现的score
有了基本思路和模型就可以来实现啦!
在实现的时候用到了python的一个开源库:pgmpy http://pgmpy.org/
具体安装和使用文档在他们的官网上都有,真的挺好用。
下面附上我实现的repo地址:
https://gitcafe.com/NeighborhoodGuo/OCR_based_on_PGM
如果有朋友发现不足的地方欢迎指正!
相关文章推荐
- Caused by: org.jbpm.api.JbpmException: resource jbpm.cfg.xml does not exist
- CSS3特殊伪类::selection改变页面选中文字的样式
- 搭建SS
- java中synchronized用法
- 在一个字符串中找出第一次重复出现的字符
- 数据库设计三大范式
- Oracle 数据库1046事件
- Android 深入浅出之 Binder机制
- 小明的困惑:RelatvieLayout 设置 layout_height="wrap_content" 失效
- 真私有
- 2015第38周日
- 在Vs2012 中使用SQL Server 2012 Express LocalDB打开Sqlserver2012数据库
- 自定义旋转的加载框
- lintcode-跳跃游戏II-117
- 使用SYS_CONTEXT
- nyoj-11 奇偶数分离
- Maven权威指南-----3、一个简单的Maven项目
- 在ROS中使用usb网络摄像头(usb_cam,Arch linux,ROS JADE)
- drools规则语法-API与FACT(三)
- 访问修饰符