2011-01-05 32 views
1

嗨 我正在学习机器学习,并且我想用python和opencv编写一个简单的手写识别软件。关于手写识别的几个问题

为了简单起见,我现在只会识别大小相同的大写单词。 我认为识别字母的一个好方法是使用期望最大化算法来学习高斯混合模型的参数,使用一个训练集并将新的高斯混合信号与训练后的信号进行比较。但我不明白如何选择混合物中有多少高斯。

第二个问题是如何理解页面中有多少单词以及单词中有多少个字母。我不认为em算法或类似(例如k-means)可能是解决方案,但肯定有一些分割问题

一些建议?

回答

1

首先你需要对齐字母。如果你认为它挺直,那么很好。之后,您可以使用具有2个群集的kmeans分段来聚集来自背景的文字(假设背景很简单)。一旦你完成了它,你基本上会得到一个1的二进制图像作为前景,零点作为背景。之后,您可以执行连接组件分析来分割每个字母。

我在想,您可以使用神经网络来分类字母,而不是GMM。就像你可以对字母图像进行归一化处理,并将像素发送到26个输出的26个字母的神经网络。

这是解决问题的一种方法。如果您需要更多的信息或材料来实施或参考文件,您可以索取。

谢谢, 克里希纳

+0

非常感谢你的好答案。是的,你可以给我一些实施材料吗? – nkint 2011-04-16 12:34:14