33、符号识别技术:从手写数字到印刷乐谱

符号识别技术:从手写数字到印刷乐谱

1. 手写数字识别的反向传播网络

在手写字符识别领域,反向传播是一种常用的方法。为了实现手写数字的识别,我们提出了一个三层反向传播网络(BPN)。

输入层有 48 个节点,对应于 8 行×6 列图像中的每个像素。首先,将光栅输入的数字图像缩放至这个大小,并且使用每个字符的边界框而非图像大小进行缩放,以确保所有数据图像的缩放效果一致。输出层有 10 个节点,每个节点对应一个数字。隐藏层则包含 96 个节点。

初始时,网络的权重是未知的。训练网络时,将已知的数字图像像素作为 48 个输入值。经过训练后,对应正确数字的输出处理单元(PE)将输出 1,其余输出 PE 为 0。

训练过程如下:
1. 将已知字形的像素应用到网络的输入层。
2. 每个输入节点将其值发送到所有隐藏节点。隐藏节点的输出是所有输入值的加权和,计算公式为:
- (H_i = \sum_{j = 0}^{48} W_{ij} I_j)
其中,(H_i) 是隐藏节点 (i) 的值,(I_j) 是输入节点 (j) 的值,(W_{ij}) 是输入节点 (j) 和隐藏节点 (i) 之间链接的权重。隐藏节点的输出可以是 (H_i) 本身,或者在需要二进制输出时,使用逻辑函数 (f(H_i) = (1 + e^{-H_i})^{-1})。
3. 输出节点的值是所有隐藏节点输出的加权和,计算公式为:
- (O_k = \sum_{i = 0}^{96} f(H_i) X_{ki})
其中,(O_k) 是输出节点 (k) 的值,(f(H_i)) 是隐藏节点 (i) 的输出,(X_{ki}) 是隐藏节点 (i) 和输出节点 (k) 之间的权重。输出节点的二进制输出是 (f(O_k))。

在网络能够正确分类数字之前,需要进行训练。训练的目的是确定能够导致正确分类的权重 (W_{ij}) 和 (X_{ki})。初始时,这些权重被设置为 -0.5 到 +0.5 之间的随机值,这会导致随机分类。通过将已知数据应用到输入层进行训练,计算所有输出节点的输出值,并将结果与正确结果进行比较。每个输出节点 (k) 的误差可以表示为:
- (\delta_k = (D_k - O_k))
其中,(D_k) 是输出节点 (k) 的正确输出值,(O_k) 是计算得到的输出值。

为了最小化误差 (E),大多数 BPN 系统使用最速下降法。最速下降法的步骤如下:
1. 在 (N) 空间中选择一个起始点,即向量 (x_0)。
2. 计算参数向量 (x_i) 的梯度 (\nabla F(x_i)),初始时 (i = 0),每次迭代递增。
3. 选择一个合适的步长 (ds)。
4. 通过以下公式计算下一组参数:
- (x_{i + 1} = x_i - ds\nabla F(x_i))
5. 重复步骤 2 直到误差 (F(x_i) - \nabla F(x_i) < \epsilon),其中 (\epsilon) 是预定的值。

反向传播学习算法使用此方案来最小化误差。在将已知字形应用到输入节点后,首先调整输出节点的权重,然后是隐藏节点,最后是输入节点。输出节点和隐藏节点的权重更新公式如下:
- (X’ {ki} = X {ki} + \eta\delta_kf’(O_k)f(H_i))
- (W’ {ij} = W {ij} + \eta\delta^h_i I_j)
其中,隐藏节点 (i) 的误差项为:
- (\delta^h_i = f’(H_i) \sum_{k} \delta_kX_{ki})
(\eta) 是学习率参数,控制收敛速度,通常取值接近 0.25,但会根据具体问题而变化。

该三层网络使用 1000 个数字(每个类别 100 个)进行训练,交替呈现输入。训练后,使用来自 100 个不同书写者的 1000 个数字进行测试。初始结果不太理想,尤其是数字 9 的识别率较低。当使用第二组数据训练网络并识别第一组数据时,结果有所改善。这可能是因为第二组数字不够多样化,需要更多的训练数据。一种解决方法是在训练数据中引入噪声,例如将黑色训练像素以 0.2 的概率变为白色,数字 9 的识别率可提高到 88%。

以下是训练和识别过程的 mermaid 流程图:

graph TD;
    A[输入已知数字图像] --> B[计算隐藏节点输出];
    B --> C[计算输出节点输出];
    C --> D[计算误差];
    D --> E[调整权重];
    E --> F{误差是否足够小};
    F -- 是 --> G[训练完成];
    F -- 否 --> A;
    G --> H[输入待识别数字图像];
    H --> I[计算隐藏节点输出];
    I --> J[计算输出节点输出];
    J --> K[确定识别结果];
2. 手写数字识别的多分类器系统

手写字符识别有多种方法,每种方法都有其优缺点。多分类器系统通过将多种方法应用于同一识别任务,并合并结果,可以在更广泛的输入范围内取得成功。

多分类器系统中有四个分类器:字符轮廓特征、凸缺陷、向量模板和神经网络。当应用于一组样本数字图像时,简单多数投票(SMV)的结果如下:
| 分类结果 | 数量 |
| ---- | ---- |
| 正确 | 994 |
| 错误 | 2 |
| 拒绝 | 4 |

尽管神经网络分类器对数字 9 的识别率较低(76%),但多分类器系统能够 100% 识别数字 9。为了确定每个分类器对整体结果的贡献,可以使用任意三个分类器运行多分类器,并将结果与四个分类器的情况进行比较。如果省略某个分类器不改善结果,则可以将其排除;如果省略某个分类器改善结果,则不应使用该分类器。

加权多数投票、异议加权多数投票、Borda 规则、Black 规则和 Copeland 规则等方法也被用于合并分类结果。不同方法的可接受性如下表所示:
| 规则 | 数据类别 | 可接受性 |
| ---- | ---- | ---- |
| SMV | 1 | 0.994 |
| Black | 2 | 0.998 |
| Average | 3 | 0.994 |

从表中可以看出,使用 Black 方案合并排序响应的分类器效果最佳。

3. 印刷乐谱识别

印刷乐谱识别是符号识别的另一个例子。光学音乐识别(OMR)是一个尚未得到满意解决的问题,由于乐谱中的大多数符号相互连接,尤其是五线谱与大多数符号相连,使得识别变得困难。

OMR 系统的第一步是定位并移除五线谱,同时不严重影响乐谱的其余部分。以下是几种定位五线谱的方法:
1. 水平投影法 :过去曾使用水平投影来定位五线谱,但即使较小的倾斜角度也会导致问题。对于大尺寸的扫描乐谱图像,尝试大量角度来寻找最佳角度会非常耗时。
2. Hough 变换法 :Hough 变换可以用于识别印刷文本的倾斜角度,也适用于乐谱。可以通过收集像素形成短水平线段并变换线段中心的坐标来加速处理。但如果五线谱有曲率,这种方法可能失败。另一种改进方法是将五线谱水平分割成足够小的部分,忽略整体曲率,但这种方法处理每页需要约 90 秒,且实现复杂。
3. 垂直样本法 :利用五线谱等间距的特点,查看像素列,寻找五个等间距且大小相同的黑色像素运行段。收集足够多的五线谱样本后,将其分组,计算每组内样本之间的角度,丢弃与中值角度差异过大的样本。找到角度后,快速计算 Hough 变换以找到 (\rho)。这种方法每页约需 15 秒,比基于 Hough 的最佳替代方法快四倍。

定位五线谱后,可以沿着每条线删除黑色像素,但当垂直运行长度(厚度)超过指定阈值时保留像素,以防止删除与音符头、升号、降号等符号相连的像素。

移除五线谱后,下一步是识别符号。对于机器印刷的乐谱,符号足够统一,可以使用模板匹配方案进行分类,减少剩余符号的可能性。最后,利用上下文信息检测错误并解决歧义,类似于使用拼写检查器确保 OCR 系统提取的单词正确。最终系统将与一些商业可用程序进行比较。

以下是印刷乐谱识别的主要步骤列表:
1. 定位并移除五线谱。
2. 识别符号。
3. 利用上下文信息检测错误并解决歧义。

通过以上方法和技术,可以提高手写数字和印刷乐谱的识别准确率。在实际应用中,可以根据具体需求选择合适的方法,并不断优化和改进。

符号识别技术:从手写数字到印刷乐谱(续)

4. 多分类器系统结果分析

在多分类器系统中,我们采用可接受性指标来评估不同的合并方法。我们关注每一组中的最佳方法,即最佳多类型 1 分类器、最佳类型 2 分类器和最佳类型 3 分类器。以下是各最佳方法的可接受性情况:

规则 数据类别 可接受性
SMV 1 0.994
Black 2 0.998
Average 3 0.994

从表格中可以清晰地看出,使用 Black 方案合并排序响应的分类器表现最为出色。这表明在多分类器系统中,Black 分类器在综合考虑各种因素后,能够更准确地对数据进行分类。

为了更深入地了解各个分类器的作用,我们还对每个分类器的贡献进行了分析。具体操作步骤如下:
1. 首先,使用四个分类器(字符轮廓特征、凸缺陷、向量模板和神经网络)运行多分类器系统,记录结果。
2. 然后,依次省略一个分类器,使用剩下的三个分类器运行多分类器系统,并记录每次的结果。
3. 将省略某个分类器后的结果与使用四个分类器的结果进行比较。
- 如果省略某个分类器后结果没有改善,那么可以考虑将该分类器从系统中移除。
- 如果省略某个分类器后结果得到改善,那么该分类器不应该被使用。

通过这种方式,我们可以优化多分类器系统,提高其整体性能。

5. 印刷乐谱识别的深入探讨

在印刷乐谱识别中,定位和移除五线谱是关键的第一步。我们已经介绍了几种定位五线谱的方法,下面通过 mermaid 流程图来展示垂直样本法的具体流程:

graph TD;
    A[输入扫描乐谱图像] --> B[查看像素列,寻找等间距黑色像素段];
    B --> C[收集五线谱样本];
    C --> D[将样本分组];
    D --> E[计算组内样本角度];
    E --> F[丢弃与中值角度差异大的样本];
    F --> G[计算 Hough 变换找到 ρ];
    G --> H[定位五线谱];
    H --> I[移除五线谱];

移除五线谱后,识别符号是接下来的重要任务。对于机器印刷的乐谱,由于符号具有一定的统一性,我们可以使用模板匹配方案进行符号识别。具体操作步骤如下:
1. 准备一组已知符号的模板,这些模板可以是常见的音符、休止符、升降号等。
2. 将移除五线谱后的乐谱图像进行分割,得到单个符号的图像。
3. 对于每个分割后的符号图像,将其与模板进行匹配。可以使用相关系数、欧氏距离等方法来衡量匹配程度。
4. 根据匹配程度,选择最匹配的模板作为该符号的识别结果。

最后,利用上下文信息检测错误并解决歧义是提高识别准确率的重要手段。例如,在乐谱中,音符的组合和顺序遵循一定的音乐规则。如果某个符号的识别结果与周围符号的组合不符合音乐规则,那么可以认为该识别结果可能存在错误。此时,可以根据上下文信息重新进行识别或调整识别结果。

6. 总结与展望

通过对手写数字识别和印刷乐谱识别的研究,我们可以看到符号识别技术在不同领域都有重要的应用。在手写数字识别中,反向传播网络和多分类器系统的结合可以提高识别准确率。在印刷乐谱识别中,定位和移除五线谱、符号识别以及上下文信息的利用是关键步骤。

未来,符号识别技术还有很大的发展空间。例如,可以进一步优化多分类器系统,探索更多的分类方法和合并策略,以提高识别的准确性和鲁棒性。在印刷乐谱识别方面,可以研究更高效的五线谱定位方法和符号识别算法,同时加强对上下文信息的利用,使识别结果更加符合音乐规则。

总之,符号识别技术是一个充满挑战和机遇的领域,随着技术的不断发展和创新,我们有望在更多的应用场景中实现更准确、更高效的符号识别。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值