type
status
date
slug
summary
tags
category
icon
password
URL
Rating
 
[中文] | [English]
 
 
Pix2Text (P2T) 识别图片中文字和数学公式,输出对应的文本和 Latex 表达式;其目标是成为 Mathpix 的免费开源 Python 替代工具。Pix2Text 是 2023 年 2 月份发布的初版,距离现在差不多刚一年,GitHub stars 也刚突破 1000,这是个典型的缓慢积累的项目。
过去的一年中,大模型(LLM 或 LMM)发展迅速,很自然也有人尝试利用大模型来解决版面分析或数学公式识别问题。其中最受关注的当属 Meta 开源的模型 Nougat。之后又出了号称精度更高的 Texify。这两个项目对应的模型文件大小在 1G 左右。后来旷视又出了更大的 7B 模型 Vary,以及后续的 2B 模型 Vary-toy。这些模型对标准排版的图片,尤其对英文文字背景下的标准排版图片,其识别精度还是很高的。但是对于非标准排版的图片,比如中学试题,PPT,或者来自 Word 的各种奇葩排版,识别精度还是挺差的。这些大模型的另一个缺点是识别速度慢,它们基本都要求在 GPU 上才能批量运行。
如我之前所说,Pix2Text 是坚持走 小模型+开源 的路线,模型大小得保证在一般的 CPU 机器上能跑得动,代码和基础模型都开源,同时也提供精度更高的付费模型供购买后个人或商业使用。Pix2Text 首先利用数学公式检测(MFD)模型检测出图片中公式所在的位置,然后由数学公式识别(MFR)模型识别出公式部分的 LaTeX 表示,再利用文字识别引擎识别图片其他部分的文字内容。所有识别结果融合后获得最终的图片识别结果。具体原理说明见 Pix2Text (P2T)
过去的半年中 Pix2Text 的进步还是蛮大的。我在 2023 年 6 月份先是训练了新的公式检测(MFD)模型,然后接着在 2023 年 7 月份训练了新的公式识别(MFR)模型,免费使用的 P2T网页版 也一直在缓慢进步中。在 2024 年 1 月份发布的 V0.3 中,Pix2Text 的文字识别引擎支持 80+ 种语言,如英文、简体中文、繁体中文、越南语、法语等。
 
这次新发布的 Pix2Text V1.0,最大变化是 MFR 使用了新的模型架构,精度得到极大提升。之前的模型架构来自于 Latex-OCR ,可惜这个项目基本不更新了,其代码质量也很一般,各种依赖包也很陈旧,维护成本太高。所以 Pix2Text V1.0 移除了对 Latex-OCR 这个项目的依赖,新的 MFR 模型架构使用了微软的 TrOCR Pix2Text V1.0 开源的 MFR 模型,其识别数学公式图片的精度已经远超我所知的各种开源模型,如 Latex-OCR,Texify,和 Pix2Text 之前版本的所有 MFR 模型(包括付费模型),已经可以与 Mathpix 以外的其他商用模型掰掰手腕了。具体说明如下。
<ins/>

不同 MFR 模型精度对比

测试数据对应的原始图片来源于 Pix2Text 网页版 用户上传的真实数据。首先选取一段时间内用户的真实数据,然后利用 Pix2Text 中数学公式检测模型(MFD)检测出这些图片中的数学公式并截取出对应的部分,再从中随机选取部分公式图片进行人工标注。就获得了用于测试的测试数据集了。下图是测试数据集中的部分样例图片。从中可以看出测试数据集中的图片比较多样,包括了各种不同长度和复杂度的数学公式,有单个字母的图片,也有公式组甚至矩阵图片。本测试数据集包括了 485 张图片。
notion image
 
以下是各个模型在此测试数据集上的 CER(字错误率,越小越好)。其中对真实标注结果,以及每个模型的输出都首先进行了标准化,以保证不会因为空格等无关因素影响测试结果。对 Texify 的识别结果会首先去掉公式的首尾符号$$$
notion image
由上图可见,Pix2Text V1.0 MFR 开源免费版模型已经大大优于之前版本的付费模型。而相比 V1.0 MFR 开源免费模型,Pix2Text V1.0 MFR 付费模型精度得到了进一步的提升
📌
如前所述,Texify 更适用于识别标准排版的图片,它对包含单字母的图片识别较差。这也是 Texify 在此测试数据集上效果比 Latex-OCR 还差的主要原因。
 

效果示例

接下来展示一些示例,可以看看新版 Pix2Text V1.0 MFR (Paid) 对公式的识别效果。
下图展示了模型在一些印刷体公式图片上的效果。其中左侧为原图(原图见 Pix2Text Github 仓库),右侧为MFR 识别后渲染后的效果图。
notion image
 
下图展示了模型在一些手写体公式图片上的效果。其中左侧为原图(原图见 Pix2Text Github 仓库),右侧为MFR 识别后渲染后的效果图。
notion image
 

P2T 网页版

 
所有人都可以免费使用 P2T网页版,每人每天可以免费识别 10000 个字符,正常使用应该够用了。请不要批量调用接口,机器资源有限,批量调用会导致其他人无法使用服务。
 
受限于机器资源,网页版当前只支持简体中文和英文,要尝试其他语言上的效果,请使用以下的在线 Demo
<ins/>

在线 Demo

 
可以使用此 在线 Demo 尝试 P2T 在不同语言上的效果。但在线 Demo 使用的硬件配置较低,速度会较慢。如果是简体中文或者英文图片,建议使用 P2T网页版
📌
如果无法科学上网,可以访问此地址:https://hf-mirror.com/spaces/breezedeus/Pix2Text-Demo

付费版模型购买

购买链接

V1.0 MFR个人版】购买链接:bilibili 工房。此链接购买后的模型仅限个人使用,不可商用,不可开发票。此商品仅包含模型的 ONNX 版本,不包含 PyTorch 版本。企业商用或开发票请见以下说明。MFD【个人版】购买链接:bilibili 工房
 
Pix2Text V1.0 包含两种企业版。它们的权益差异见下图。企业 Basic 版是一次性购买,之后有新模型需要重新购买。企业 Basic 版只允许企业内部使用或者对外提供免费的服务(如教育机构),不允许对外提供付费服务。企业 Pro 订阅版是按年订阅,订阅期内可以免费获取所有的新模型。企业 Pro 订阅版也提供模型的 PyTorch 版本,企业可以基于此模型利用自己的数据进行模型精调。企业 Pro 订阅版允许企业对外提供付费服务。
更详细说明请见 模型购买商店(进入商品的详情页有具体说明)。
notion image
 
购买链接见:模型购买商店(进入商品的详情页有具体说明)。
 

使用说明

首先,请确保你用开源的模型跑通了 Pix2Text,否则你下载完付费模型也跑不起来。详细安装和使用说明看 Pix2Text 项目文档就行。遇到问题可以在这里评论,或者加入群聊与我沟通,但请注意帮你跑通代码不在星主的服务范围之内(参考 星球说明)。
 
通过模型购买商店购买企业 Basic 版后,可以下载模型对应的 2 个压缩文件,其中以 p2t-mfd- 开头的文件为 MFD(数学公式检测)模型,以p2t-mfr- 开头的文件为 MFR(数学公式识别)模型。MFD 模型压缩文件解压后会看到一个名为 yolov7-model 的文件夹,里面的文件即为模型文件,比如叫 mfd-yolov7-20230613.pt 。假定文件 p2t-mfr-20230702.pth 的路径为 abc/def/yolov7-model/p2t-mfr-20230702.pth。MFR 模型压缩文件解压后会看到一个名为 mfr-pro-onnx 的文件夹,其中包含模型文件以及相关的配置文件。假定文件夹 mfr-pro-onnx 的路径为 abc/def/mfr-pro-onnx
 
那在初始化 Pix2Text 时应该如下传入参数。初始化后的使用方式和开源模型完全一样,检测和识别结果的结构也是一样的。
 
如果购买的是企业 Pro 订阅版,可以下载的模型文件会更多(当前是 5 个),除了包含 MFR 的 PyTorch 版本外,也会包含 CnOCR(文本 OCR)中的最新付费模型(ONNX 和 PyTorch 版本),它对中英文文本的识别效果比免费模型更好。可以使用如下方式传入对应的模型。
📌
注意:CnOCR 的文本模型只支持英文简体中文,如果要识别其他语言的文本,请勿使用 CnOCR 模型。只需把上面代码中的 text_config 去掉即可。
 

分享视频

Youtube
Video preview
Bilibili
 
Pix2Text V1.0 新模型已部署到 P2T网页版,欢迎免费使用。有问题可以在这里评论,或者加入群聊与我沟通,谢谢。
 
LLaMA 3 又来掀桌子了CnOCR V2.3 新版发布:模型更好、更多、更大
Loading...