公司动态

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

📅 2026/8/9 6:00:22
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)模块由多尺度特征提取、通道注意力机制和求和池化操作组成。传统公式识别模型通常只关注“识别顺序”而忽略了“符号数量”这一重要先验信息。例如xxy如果模型提前知道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/Datasets3 运行结果数据CROHME2014CROHME2016CROHME2029ExpRate58.0057.0155.845 完整代码获取代码结构明了清晰注释完整详细下载链接Python深度学习算法改进——基于组稀疏密集网络和计数感知网络的手写数学表达式识别算法小英熊学长会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesignergui设计、simulink仿真......希望能帮到你有任何matlab和python相关的问题都可以在后台滴滴小英熊学长欧~