码迷,mamicode.com
首页 > 其他好文 > 详细

关于PGM在OCR方面的应用

时间:2015-09-20 23:56:09      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:

本文仅仅是一个简单的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

 

如果有朋友发现不足的地方欢迎指正!

关于PGM在OCR方面的应用

标签:

原文地址:http://www.cnblogs.com/NeighborhoodGuo/p/4824618.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!