FastCDM / README-CN.md
BinyangQiu
Update README
3ba6a9d
|
Raw
History Blame Contribute Delete
4 kB
metadata
title: FastCDM
emoji: ⚡️
colorFrom: blue
colorTo: indigo
sdk: docker
pinned: false
short_description: High-performance LaTeX formula evaluation tool using KaTeX.
tags:
  - latex
  - formula-recognition
  - evaluation
  - katex

🚀 简介

CDM 通过将预测和真实的LaTeX公式渲染为图像,然后使用视觉特征提取和定位技术进行精确的字符级匹配,结合空间位置信息,确保了评估的客观性和准确性。

FastCDM 旨在解决性能问题。作为原版 CDM 的高性能优化版本,FastCDM采用浏览器的Katex渲染引擎,而非传统的Latex编译,速度得到了极大的提升。

🎯 项目目标

FastCDM的核心目标是在训练过程中提供便捷的使用体验,帮助推动公式识别任务的进步。我们致力于:

  • 提供简单易用的API接口,方便在训练循环中集成评估
  • 支持实时评估和批量评估两种模式
  • 提供训练过程中的评估指标可视化工具

为什么选择 FastCDM?

  1. 极速性能:基于KaTeX的渲染引擎,相比传统LaTeX编译流程快数十倍
  2. 简化部署:无需安装复杂的LaTeX环境(ImageMagick、texlive-full等)
  3. 准确评估:采用字符检测匹配方法,避免传统文本指标的不公平性问题
  4. 持续优化:对CDM符号支持进行补充完善,并持续迭代改进
  5. 易于集成:提供统一的API接口,方便集成到各种训练框架中,未来将集成PyTorch、Transformers等多个主流训练框架

⚠️ 注意

虽然 KaTeX 跑得比八卦记者还快,但它毕竟是为了 Web 优化的轻量级选手,无法做到对所有 LaTeX 诡异语法的 100% 支持。

对于绝大部分的常规公式,它完美胜任。这是一个合理且能走得长远的技术选型。

可以在这里查阅 KaTeX 的支持范围:🔗 KaTeX Support Table


使用方法

安装

需要提前安装node.jschromedriver

  • node.js的安装可以参考这里
  • chromedriver的安装可以参考这里
pip install fastcdm

快速开始

from fastcdm import FastCDM

chromedriver_path = "driver/chromedriver"

# 初始化 FastCDM 评估器
evaluator = FastCDM(chromedriver_path=chromedriver_path)

# 评估
cdm_score, recall, precision = evaluator.compute(gt="E = mc^2", pred="E + 1 = mc^2", visualize=False)

# 评估,并可视化
cdm_score, recall, precision, vis_img = evaluator.compute(gt="E = mc^2", pred="E + 1 = mc^2", visualize=True)

交互Demo

我们提供了一个Gradio开发的可视化Demo,您可以在HuggingFace Spaces中尝试使用。也可以本地启动:

python3 scripts/app.py

贡献与反馈

我们欢迎所有形式的贡献,包括但不限于:

  • 提交问题报告
  • 建议改进
  • 提交代码变更(请先开issue讨论)

请通过项目的issues与我们联系。


协议

本项目基于 Apache 2.0 协议开源。您可以在遵守协议条款的前提下自由使用、修改和分发本项目的代码。