Bug*_*ler 6 ocr classification hidden-markov-models
我已提取的特征从分离的字符(如梯度许多图像,相邻像素的重量和几何性质.如何使用的HMM作为训练该数据分类?所有文献我读到HMM是指状态和状态转换但是我"t将其连接到的功能和一流的标签.这个例子上JAHMM的主页没有涉及到我的问题.我需要使用HMM不是因为它会比其他方法对这个问题好,但因为项目课题的约束.
这个问题有一个在线识别的答案,但我想要离线和更详细的相同
编辑:我将每个字符分区为具有固定数量的正方形的网格.现在我计划在每个网格块上执行特征提取,从而通过从左到右和从上到下移动来获得每个样本的一系列特征.
这是否代表HMM的足够"序列",即HMM是否能够猜测数据的时间变化,即使角色不是从左到右,从上到下绘制的?如果不建议替代方式.
我应该提供很多功能还是从一些功能开始?我怎么知道HMM是否表现不佳或者功能是否不好?我正在使用JAHMM.
提取笔划特征很困难,并且逻辑上不能与网格特征相结合?(因为HMM需要一些随机过程生成的序列)
我经常看到用于此类识别任务的神经网络,即这里、这里 这里和这里。由于简单的谷歌搜索会在 OCR 中找到如此多的神经网络命中率,我假设您已设置使用 HMM(项目限制,对吗?)无论如何,这些链接可以提供一些有关网格化图像和获取图像特征的见解。
您将网格转变为一系列观察结果的方法是合理的。在这种情况下,请确保不要混淆观察结果和状态。从一个块中提取的特征应该收集到一个观察中,即特征向量。(与语音识别相比,您的块的特征向量类似于与语音音素关联的特征向量。)您实际上没有太多关于底层状态的信息。这是 HMM 的隐藏方面,训练过程应该告知模型一个特征向量跟随另一个字符的可能性有多大(即转移概率)。
由于这是一个离线过程,因此不必关心角色实际绘制方式的时间方面。为了完成您的任务,您使用从左到右、从上到下的块序列对观察序列施加了时间顺序。这应该可以正常工作。
至于HMM性能:选择合理的显着特征向量。在语音识别中,特征向量的维度可能很高(>10)。(这也是引用的文献可以提供帮助的地方。)留出一定比例的训练数据,以便您可以正确测试模型。首先,训练模型,然后在训练数据集上评估模型。你对角色的分类效果如何?如果表现不佳,请重新评估特征向量。如果在测试数据上表现良好,则通过在保留的测试数据上运行分类器来测试分类器的通用性。
至于状态的数量,我将从启发式得出的数字开始。假设你的角色图像被缩放和标准化,也许大约 40%(?)的块被占用?这是我的粗略猜测,因为没有提供源图像。对于 8x8 网格,这意味着 25 个块被占用。然后我们可以从 25 个状态开始 - 但这可能很天真:空块可以传达信息(意味着状态数量可能会增加),但可以在类似的状态中观察到一些特征集(意味着状态数量可能会减少)。如果是我的话,我可能会选择 20 个州之类的。话虽如此:请小心不要混淆功能和状态。您的特征向量是在特定状态下观察到的事物的表示。如果上述测试显示您的模型表现不佳,请向上或向下调整状态数,然后重试。
祝你好运。