ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Python深度学习算法改进——基于组稀疏密集网络和计数感知网络的手写数学表达式识别算法

Python深度学习算法改进——基于组稀疏密集网络和计数感知网络的手写数学表达式识别算法

1 方法简介

本算法由组稀疏密集网、多尺度注意力计数模块及注意力解码器模块组成。组稀疏密集网作为主干网络负责特征提取,生成的特征图同时输入多尺度注意力计数模块和注意力解码器模块。多尺度计数模块对各类符号数量进行预测,并输出一维计数向量作为计数结果。随后,特征图与计数向量共同进入注意力解码器模块,以获得最终预测输出。

(1)组稀疏密集网络

组稀疏网络(GSDN,Grouped Sparse Dense Network)结合了稀疏连接、组卷积、密集连接和通道压缩四大策略:

  • 稀疏连接(Sparse Connection)并非每个卷积通道都与上一层所有通道相连,而是采用稀疏的分组连接策略。这样既能保持信息流通,又能显著降低参数数量和计算成本。

  • 组卷积(Grouped Convolution)将输入通道划分为若干组,在组内独立卷积。例如,将32个输入通道分为4组,每组8通道独立卷积生成输出,再拼接得到最终结果。相比普通卷积,计算量降低了数倍。

  • 密集连接(Dense Connection)沿用了DenseNet的思想,每个卷积块的输出与输入进行拼接(concatenate),保证梯度顺畅流动并充分复用低层特征,从而提高特征表达能力。

  • 通道压缩(Transition Layer)在若干DenseBlock后,通过1×1卷积压缩通道数,并配合平均池化减少空间尺寸,实现网络轻量化。

(2)多尺度注意力计数模块

多尺度注意力计数模块(Multi-Scale Counting Module, MSCM)模块由多尺度特征提取、通道注意力机制求和池化操作组成。传统公式识别模型通常只关注“识别顺序”,而忽略了“符号数量”这一重要先验信息。例如:x+x+y,如果模型提前知道:x出现2次,y出现1次。则能够有效减少漏识别和重复识别问题。因此,引入多尺度注意力计数模块:

  • 多尺度特征提取

    在若干DenseBlock后,通过1×1卷积压缩通道数,并配合平均池化减少空间尺寸,实现网络轻量化。在代码实现中,模型使用了两个不同卷积核大小的Counting Decoder.小卷积核(3×3)更关注:局部细节边缘笔画小型符号大卷积核(5×5)更关注:大范围结构上下文关系复杂公式区域最终两路结果进行融合,从而提高计数稳定性。

  • 通道注意力机制

    在计数模块内部,引入了通道注意力机制(Channel Attention)。其核心思想是:自动学习“哪些通道更重要”。模块首先通过全局平均池化获得每个通道的全局响应,随后通过两层全连接网络学习通道权重,最后利用Sigmoid生成注意力系数,对原特征进行重新加权。这样能够强化关键符号特征、抑制背景噪声、提升计数精度

  • 求和池化

    计数模块最终输出的是每类符号的出现次数。在实现中模型会对二维特征图进行空间求和。最终得到[2,1,0,3,...]形式的一维计数向量。该向量表示各类数学符号在公式中的预测数量。

(3)注意力解码模块

注意力解码器用于将CNN提取的二维特征图转换为LaTeX字符序列。其核心思想是:模型在生成每个字符时,自动关注当前最相关的图像区域。

  • GRU序列建模

    解码器采用GRU(门控循环单元)实现序列建模。每一步生成当前字符后,再将该字符Embedding作为下一时刻输入。从而逐步生成完整公式。

  • 二维注意力机制

    在生成字符时,模型会计算当前隐藏状态与图像特征之间的相关性。

    得到二维Attention Heatmap:例如生成“+”时,注意力集中于加号区域;生成“x”时:注意力转移到变量区域。这种动态注意力机制能够有效提升复杂公式的解析能力。

  • Coverage Attention机制

    传统Attention容易出现重复关注、漏关注问题。因此引入Coverage机制。模型会累计历史注意力权重,记录哪些区域已经被关注过,随后在下一步Attention计算时将历史注意力信息再次输入网络。从而避免同一区域被重复解码、部分符号遗漏,提高长公式识别稳定性。

  • 计数信息融合

    将计数向量引入解码阶段。在代码中计数向量首先经过线性映射,随后与当前隐藏状态、字符Embedding、Attention上下文向量共同融合,实现跨模块信息交互。这种机制相当于在“读公式”之前,先“数公式”,从而显著提高长公式识别准确率、重复符号识别能力、复杂结构表达能力。

2 数据集介绍

(1)下载地址

CROHME数据集:

http://www.iapr-tc11.org/mediawiki/index.php/Datasets

3 运行结果

数据

CROHME2014

CROHME2016

CROHME2029

ExpRate

58.00

57.01

55.84

5 完整代码获取

代码结构明了清晰,注释完整详细!!!

下载链接:Python深度学习算法改进——基于组稀疏密集网络和计数感知网络的手写数学表达式识别算法

小英熊学长会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!有任何matlab和python相关的问题都可以在后台滴滴小英熊学长欧~

返回列表