1

你好我正在学习机器学习,我想用python和opencv编写一个简单的手写识别软件。

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

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

一些忠告?

4

1 回答 1

1

首先你需要对齐字母。如果你假设它是直立的,那很好。之后,您可以使用带有 2 个集群的 kmeans 分割来对背景中的文字进行聚类(假设背景是普通的)。一旦你完成了它,你基本上会得到一个二进制图像 1 作为前景,零作为背景。之后,您可以进行连通分量分析以分割每个字母。

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

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

谢谢,克里希纳

于 2011-04-15T19:46:13.707 回答