喜 我正在学习机器学习,我想用python和opencv编写一个简单的手写识别软件。
为简单起见,我现在只能识别相同大小的大写单词。 我认为识别字母的一种好方法是使用期望最大化算法来学习高斯混合模型的参数,使用训练集并将新字母高斯混合与训练的字母进行比较。但我不明白如何选择混合物中有多少高斯。第二个问题是如何理解页面中有多少单词以及单词中有多少个单词。我不认为em-algorithm或类似的(例如k-means)可能是解决方案,但确实存在一些分段问题
一些建议?
答案 0 :(得分:1)
首先你需要对齐字母。如果你认为它直立然后很好。之后,您可以使用带有2个聚类的kmeans分段来聚合背景中的文字(假设背景是普通的)。一旦你完成它,你基本上得到一个二进制图像1作为前景,零作为背景。之后,您可以进行连通分量分析以对每个字母进行分段。
我在考虑使用神经网络对字母进行分类而不是GMM。就像您可以标准化字母图像并将像素发送到具有26个字母的26个输出的神经网络。
这是解决问题的一种方法。如果您想要更多信息或材料来实施或参考论文,您可以要求它。
谢谢, 克里希纳