UniMERNet: A Universal Network for Real-World Mathematical Expression Recognition¶
会议: CVPR 2026
论文: CVF Open Access
领域: 数学表达式识别 / 文档 OCR
关键词: 公式识别, Raster-Scan Attention, 注意力分解, 百万级数据集, 视觉编码器
一句话总结¶
UniMERNet 把公式图像转 LaTeX 这件事重新做了一遍:它构造了百万级、覆盖四类真实场景的 UniMER-1M 数据集,并基于「解码器注意力天然呈光栅扫描(先横后纵)」这一观察,提出 Raster-Scan Attention 把二维注意力拆成水平、垂直两次一维计算,把复杂度从 \(O(NH^2W^2D)\) 降到 \(O(NHWD(H+W))\),在 313M 参数下推理省 ~10× 显存、快 5×,同时四个真实场景的 CDM 全面超过 Texify、GOT 乃至 72B/78B 的多模态大模型。
研究背景与动机¶
领域现状:数学表达式识别(MER)是把公式截图转成 LaTeX/Markdown 的任务,是科学文献解析、为大模型喂数学语料、多模态理解的关键前置环节。社区对一个好用的 MER 工具有三条硬要求:识别准、算得快、泛化强(尤其在真实世界各种字体/背景/长公式下要稳)。
现有痛点:开源专用模型(Pix2tex、Texify、CAN 等)大多只在简单手写公式或干净印刷体上训练,数据单一,碰到真实场景里的复杂长公式就崩;基于 Donut 的通用文档模型(Nougat、GOT)没有专门为公式优化,结构化解析吃力。另一边,GPT-4o、Qwen2.5-VL、InternVL2.5 这类多模态大模型靠海量参数泛化更好,但没专门适配公式识别,高精度和实时性都落后于专用模型,而且动辄要 8 卡分布式推理。
核心矛盾:现有注意力机制和公式这种「密集、严格二维布局、有阅读顺序」的数据天然不匹配。全局自注意力能建模长程依赖,但对高分辨率公式图代价是平方级的计算冗余;Swin 这类局部窗口注意力省算力却感受野受限,抓不到跨行的长程关系。准确率和效率被卡在 trade-off 上。
本文目标:做一个高精度、低成本、能覆盖真实场景的开源 MER 方案,需要同时解决两件事——训练数据不够多样、注意力机制不够契合公式结构。
切入角度:作者去观察一个已经训好的 mBART 解码器在预测公式时的跨模态注意力分布,发现一个很强的规律:模型的注意力总是精准落在「下一个要预测的字符」上,整体轨迹是从左到右、到行末再跳到下一行行首——一条标准的光栅扫描(raster-scan)路径,和人类阅读习惯完全一致。这说明模型其实已经自主学到了符号间的二维空间关系,那么强行用全局注意力让每个位置都看遍全图,大量计算就是浪费的。
核心 idea:既然公式信息流是「先横后纵」的顺序结构,那就把二维注意力沿这两个正交方向分解成两次一维注意力(行内 + 列间),用与阅读顺序对齐的归纳偏置换来线性复杂度,做到「算得像全局注意力一样准,但代价小一个量级」。
方法详解¶
整体框架¶
UniMERNet 是一个双流编码器–解码器结构:输入一张公式图,视觉编码器先把它压成层次化的视觉特征 token,解码器(mBART)再自回归地把这些 token 翻译成 LaTeX 字符序列。整个方法的灵魂在编码器——它由一系列「MER block」堆叠而成,每个 block 交替使用窗口注意力(抓局部细节)和本文提出的 Raster-Scan Attention(用先横后纵的一维分解抓全局长程依赖),并在注意力/MLP 前插入轻量卷积增强模块补足局部感知。配合百万级、覆盖四类真实场景的 UniMER-1M 训练数据,模型在精度和效率上同时拿到收益。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["公式图像 H×W"] --> B["细粒度 Embed<br/>两层 3×3 卷积 → H/4×W/4"]
B --> C["四阶段层次化 Backbone<br/>{2,2,14,2} 个 MER Block"]
subgraph G["MER Block 内部"]
direction TB
D["局部增强模块 ConvEnhance<br/>3×3 深度卷积 + GELU"] --> E["Window Attn ⇄ Raster-Scan Attention<br/>先行内后列间,线性复杂度"]
end
C --> G
G --> F["视觉 token 展平"]
F --> H["mBART 解码器 8 层<br/>自注意力 + 跨注意力,自回归"]
H --> I["LaTeX 字符序列"]
关键设计¶
1. Raster-Scan Attention:把二维注意力沿阅读顺序拆成横、纵两次一维计算
这是全文的核心,针对的就是「全局注意力平方级冗余、局部窗口又看不远」这个矛盾。作者基于解码器注意力呈光栅扫描的观察,把标准二维注意力分解成两个正交的一维 pass:先做行内注意力(Row-wise),再做列间注意力(Column-wise)。对特征图 \(X \in \mathbb{R}^{H\times W\times C}\),先线性投影出 \(Q,K,V\),转置成按行组织后在每一行内部算注意力:
这一步建模每一行内字符序列的横向依赖,复杂度 \(O(NHWDW)\)。然后把行内结果转置成按列组织,沿垂直方向再算一次:
这一步复杂度 \(O(NHWDH)\),负责跨行关系(多行公式必须靠它)。两步串起来,总复杂度从全局注意力的 \(O(NH^2W^2D)\) 降到 \(O(NHWD(H+W))\)——对图像尺寸从平方变成线性。它之所以有效有三层:(i) 横向优先的顺序和公式阅读流一致,提供了一个有用的归纳偏置;(ii) 「先字符序列、再结构关系」两步天然吻合公式的层次结构;(iii) 线性复杂度让模型能直接吃 \(384\times1344\) 这种高分辨率长公式输入而几乎不增成本。和 CCNet 的 criss-cross(同时收集行列)、Axial-DeepLab 的独立轴向分解相比,R-S Attention 的关键区别是顺序性——先横后纵的串行流,更贴合 MER 严格的阅读顺序约束;消融里把顺序反过来(V→H)在 CPE 上就掉点(0.948 vs 0.952 CDM),印证了这个阅读顺序偏置确实有用。
2. 带 MER Block 与卷积增强的层次化视觉编码器:在一个 block 里同时拿到局部细节和全局长程
光有 R-S Attention 还不够,公式识别既要看清单个符号的笔画细节(局部),又要建模跨行跨结构的关系(全局)。编码器借鉴 Donut/Nougat 的层次结构:先用两层 \(3\times3\) 卷积的细粒度 embedding 把 \(H\times W\) 图降到 \(H/4\times W/4\)、维度 \(C\);再经四阶段骨干网络(含 overlapping patch embedding)逐级下采样到 \(H/32\times W/32\)、维度 \(8C\),四个阶段分别放 \(\{2,2,14,2\}\) 个 MER block。每个 MER block 是标准 Transformer 结构,但交替使用 Window Attention 和 R-S Attention——窗口注意力管局部、R-S 管全局,两者轮流融合。此外在每个注意力/MLP 模块前加一个 ConvEnhance(\(3\times3\) 深度卷积 + GELU)补局部感知。消融显示加 ConvE 在所有子集上都稳定小幅提升,说明卷积的局部先验和注意力的全局建模是互补而非冗余。
3. UniMER-1M 数据集 + 分层采样:用「足够多样」的数据治泛化病
真实场景泛化差的根因之一是数据太单一——现有公式数据集要么印刷体太规整、要么手写公式很少超过 256 字符,长度和复杂度分布严重失衡。作者构造了 UniMER-1M(1,061,791 个 LaTeX–图像对),并配套 UniMER-Test(23,757 样本)覆盖四类真实场景:SPE(简单印刷)、CPE(复杂长印刷)、SCE(屏幕/文档截图,字体不一、有噪声形变)、HWE(手写)。关键不只是「量大」,而是用分层采样(stratified sampling)同时按公式长度和结构复杂度分层,从 arXiv、Wikipedia、StackExchange 等平台刻意纳入极短和极长的复杂样本,把长度分布拉平。消融(Table 4)很说明问题:只用 Pix2tex 训练,SPE 上 CDM 98.5% 但 CPE 只有 66.7%、HWE 33.6%(在简单数据上过拟合);换成 UniMER-1M,CPE 直接从 66.5% 跳到 95.5%。这条设计单独就贡献了真实场景上的巨大增益。
损失函数 / 训练策略¶
PyTorch 实现,最大序列长度 1536,8×A100(80GB),batch size 64,AdamW + 线性 warmup 余弦退火,初始学习率 \(1\times10^{-4}\)(warmup 起点 \(1\times10^{-5}\)、最小 \(1\times10^{-8}\)),weight decay 0.05,在 UniMER-1M 上训练 500K 次迭代。输入图按公式平均长宽比 1:3.5 设计,baseline 编码器输入 \(192\times672\),借 R-S Attention 的高效可扩到 \(384\times1344\)。数据增强含几何形变、高斯噪声等;分词用 Donut 的 BPE tokenizer 并加 LaTeX 专用 token(与 Texify 一致)。
实验关键数据¶
主实验¶
在 UniMER-Test 四个子集上用 CDM(渲染后按字符+空间匹配的视觉相似度,比 BLEU 更适合 MER)对比专用模型与多模态大模型:
| 类型 | 方法 | 参数 | FPS(bs=64) | SPE CDM | CPE CDM | SCE CDM | HWE CDM |
|---|---|---|---|---|---|---|---|
| 专用 | Pix2tex | 25M | - | 0.939 | 0.461 | 0.653 | 0.213 |
| 专用 | Texify | 312M | 8.05 | 0.985 | 0.706 | 0.799 | 0.534 |
| 专用 | GOT | 535M | 3.88 | 0.541 | 0.189 | 0.750 | 0.612 |
| 专用 | Mathpix(API) | - | - | 0.966 | 0.842 | 0.815 | 0.931 |
| 通用 | Qwen2.5-VL | 72B | - | 0.804 | 0.365 | 0.940 | 0.863 |
| 通用 | GPT-4o(API) | - | - | 0.962 | 0.783 | 0.920 | 0.836 |
| 本文 | UniMERNet | 313M | 10.48 | 0.991 | 0.955 | 0.939 | 0.941 |
| 本文 | UniMERNet† | 313M | 8.39 | 0.995 | 0.972 | 0.940 | 0.954 |
†为 \(384\times1344\)(2×)输入。与同样 Swin+mBART 架构的 Texify 相比,UniMERNet 在 SPE/CPE/SCE/HWE 上 CDM 分别 +1.0% / +26.6% / +14.1% / +42.0%;对参数量大两个数量级、要 8 卡推理的 72B/78B 大模型,UniMERNet 单卡 10.48 FPS、所有子集 CDM ≥94%,全面反超。
消融实验¶
注意力类型与 ConvE 模块的消融(编码器固定其余配置):
| 注意力类型 | FPS(bs=64) | 显存(Max GPU) | CPE CDM | HWE CDM | 说明 |
|---|---|---|---|---|---|
| Global Attn | OOM | 3.2GiB(bs=1) | 0.943 | 0.939 | 准但 bs=64 直接 OOM |
| Window Attn | 5.9GiB | 1.6GiB | 0.931 | 0.929 | 省算力但感受野有限 |
| Criss-Cross Attn | 5.6GiB | 1.2GiB | 0.938 | 0.934 | 同时收行列 |
| Axial Attn | 5.9GiB | 1.6GiB | 0.930 | 0.926 | 独立轴向分解 |
| R-S Attn (V→H) | 5.6GiB | 1.2GiB | 0.948 | 0.938 | 顺序反向,掉点 |
| R-S Attn (ours) | 5.6GiB | 1.2GiB | 0.952 | 0.939 | 先横后纵 |
| R-S Attn w/ ConvE | 5.6GiB | 1.2GiB | 0.955 | 0.941 | 完整模型 |
关键发现¶
- R-S Attention 是性价比之王:相比 Global Attention,仅需 37% 显存、推理快 5×,CPE 上还 +1.2% CDM;Global 在 bs=64 时直接 OOM,而 R-S 能稳跑。
- 阅读顺序偏置真实存在:把 H→V 反成 V→H,CPE 从 0.952 掉到 0.948,效率几乎不变——说明涨点来自顺序契合阅读习惯,不是单纯多算了一遍。
- 数据多样性比模型结构更能救泛化:Table 4 中换上 UniMER-1M 后 CPE 从 66.5%→95.5%,是单项最大增益来源;ConvE 则是稳定的小幅锦上添花。
- 手写场景额外验证:在 CROHME/HME100K 上对比 ICAL、SSAN 等专用手写模型,UniMERNet 即便不在对应训练集微调也能超过此前 SOTA,且多行手写越难领先越明显。
亮点与洞察¶
- 从「观察模型行为」反推架构设计:先可视化解码器跨注意力发现光栅扫描规律,再据此设计编码器注意力——这种「让数据/模型告诉你该怎么设计归纳偏置」的路子,比凭空堆模块更有说服力,也解释了为什么 V→H 一反就掉点。
- 二维注意力分解不是新词,但「带顺序」是关键:CCNet/Axial 早就做过行列分解,UniMERNet 的差异在于强调串行的「先横后纵」顺序,把 MER 特有的严格阅读顺序约束编码进注意力流,这个洞察可迁移到任何有强阅读顺序的密集 OCR 任务(如表格、乐谱、化学式)。
- 数据与架构双轮驱动、各管一摊:消融清楚地把「泛化靠数据(UniMER-1M)、效率靠架构(R-S Attention)」拆开,避免了「不知道涨点到底来自哪」的常见模糊,复现和迁移时知道动哪个旋钮。
- 小模型打大模型的实用样本:313M 单卡 10 FPS 全面压过 72B/78B 多模态大模型,说明在垂直任务上「专用结构 + 高质量数据」仍有巨大空间,不必盲目堆参数。
局限与展望¶
- R-S Attention 依赖公式的强二维阅读顺序,对版式极不规则、严重旋转或交错排布的公式,先横后纵的假设可能失效,论文未充分压测这类极端布局。
- CDM 为主、BLEU 为辅的评测取舍:作者认为同一公式有多种 LaTeX 写法使 BLEU 不可靠,主用 CDM/ExpRate;但 CDM 依赖渲染匹配,对渲染失败或罕见符号的鲁棒性如何,文中讨论不多。
- 数据与许可未在缓存中完全展开:UniMER-1M 含来自 arXiv/Wikipedia/Mathpix 标注的样本,规模化采集与版权/标注一致性的细节是潜在工程风险点。
- 改进方向:把「带顺序的轴向分解」推广到非笛卡尔阅读顺序(如从右到左语言、二维表格的混合顺序),或让顺序本身可学习/自适应,而非硬编码 H→V。
相关工作与启发¶
- vs Texify(同架构 baseline):两者都是 Swin 风格编码器 + mBART 解码器,区别在 UniMERNet 用 R-S Attention 替换注意力、并换上 UniMER-1M 训练,结果四子集 CDM 全面领先(CPE +26.6%、HWE +42.0%),干净地证明了「换注意力 + 换数据」的合力。
- vs Global / Window Attention:Global 准但平方复杂度、bs 一大就 OOM;Window 省但感受野受限抓不到跨行。R-S 用线性复杂度同时拿到全局视野,是对这对 trade-off 的直接破解。
- vs CCNet(criss-cross)/ Axial-DeepLab(轴向):都做行列分解,但它们是「同时收集」或「独立轴向」,缺少 MER 需要的严格阅读顺序;R-S 的串行先横后纵正是涨点关键(V→H 一反就掉)。
- vs GPT-4o / Qwen2.5-VL 等多模态大模型:大模型泛化强但未专门适配公式,高精度和实时性都不及专用模型;UniMERNet 用 1/200 的参数、单卡推理反超,提示垂直任务上专用化仍有巨大红利。
评分¶
- 新颖性: ⭐⭐⭐⭐ 「从解码器注意力光栅扫描反推编码器设计」的洞察很扎实,R-S 在轴向分解基础上引入阅读顺序串行性是有意义的增量。
- 实验充分度: ⭐⭐⭐⭐⭐ 四真实场景 + 注意力/顺序/ConvE/数据多维消融 + 手写 benchmark + 效率显存对比,证据链完整且自洽。
- 写作质量: ⭐⭐⭐⭐ 动机—观察—方法—验证逻辑清晰,复杂度推导和图表到位;部分符号转置细节略简。
- 价值: ⭐⭐⭐⭐⭐ 开源高精度低成本 MER 方案 + 百万级数据集 + 评测基准,对文档解析和喂大模型数学语料有直接落地价值。