type
status
date
slug
summary
tags
category
icon
password
URL
Rating
[中文] | [English]
Pix2Text (P2T) 识别图片中文字和数学公式,输出对应的文本和 Latex 表达式;其目标是成为 Mathpix 的免费开源 Python 替代工具。Pix2Text V1.1 整合了版面分析和表格识别模型,可以识别图片中的版面、表格、图片、文字、数学公式等内容,并整合所有内容后以 Markdown 格式输出。P2T 也可以把一整个 PDF 文件(PDF 的内容可以是扫描图片或者其他任何格式)转换为 Markdown 格式。
Pix2Text V1.0 于 2024 年 2月发布,带来了精度更高的全新公式识别模型(MFR)。
V1.0 具体说明:Pix2Text V1.0 新版发布,带来了最好的开源数学公式识别模型 。
而 Pix2Text V1.1 则带来了完整的版面恢复能力,它可以把扫描件的 PDF 直接转换成 Markdown 格式,利用外部工具(如 Pandoc)还可以把 Markdown 格式转换成 Word、Html 等其他格式。
V1.1 整合了以下模型:
- 版面分析模型:breezedeus/pix2text-layout (国内地址)。
- 表格识别模型:breezedeus/pix2text-table-rec (国内地址)。
- 文字识别引擎:支持
80+
种语言,如英文、简体中文、繁体中文、越南语等。其中,英文和简体中文识别使用的是开源 OCR 工具 CnOCR ,其他语言的识别使用的是开源 OCR 工具 EasyOCR 。
- 数学公式检测模型(MFD):来自 CnSTD 的数学公式检测模型(MFD)。
- 数学公式识别模型(MFR):breezedeus/pix2text-mfr (国内地址)。
其中多个模型来自其他开源作者, 非常感谢他们的贡献。
具体说明请参考 可用模型。
V1.1 的主要变更:
- 加入了版面分析和表格识别模型,支持把复杂排版的图片转换为 Markdown 格式,示例见:Pix2Text 在线文档/Examples。
- 支持把整个 PDF 文件转换为 Markdown 格式,示例见:Pix2Text 在线文档/Examples。
- 加入了更丰富的接口,已有接口的参数也有所调整,具体说明见:Pix2Text 在线文档/Usage。
- 上线了 Pix2Text 在线文档。
<ins/>
效果示例
识别 PDF 文件,返回其 Markdown 格式
对于 PDF 文件,可以使用函数
.recognize_pdf()
对整个文件或者指定页进行识别,并把结果输出为 Markdown 文件。如针对 PDF 文件 (examples/test-doc.pdf),调用方式如下:
也可以使用命令行完成一样的功能,如下面命令使用了付费版模型(MFD + MFR + CnOCR 三个付费模型)进行识别:
识别结果见 output-md/output.md。
如果期望导出 Markdown 之外的其他格式,如 Word、HTML、PDF 等,推荐使用工具 Pandoc 对 Markdown 结果进行转换即可。
识别带有复杂排版的图片
可以使用函数
.recognize_page()
识别图片中的文字和数学公式。如针对以下图片 (examples/page2.png):调用方式如下:
也可以使用命令行完成一样的功能,如下面命令使用了付费版模型(MFD + MFR + CnOCR 三个付费模型)进行识别:
识别结果和 output-md/output.md 类似。
识别既有公式又有文本的段落图片
对于既有公式又有文本的段落图片,识别时不需要使用版面分析模型。 可以使用函数
.recognize_text_formula()
识别图片中的文字和数学公式。如针对以下图片 (examples/en1.jpg):调用方式如下:
也可以使用命令行完成一样的功能,如下面命令使用了付费版模型(MFD + MFR + CnOCR 三个付费模型)进行识别:
或者使用免费开源模型进行识别:
识别纯公式图片
对于只包含数学公式的图片,使用函数
.recognize_formula()
可以把数学公式识别为 LaTeX 表达式。如针对以下图片 (examples/math-formula-42.png):调用方式如下:
返回结果为字符串,即对应的 LaTeX 表达式。具体说明见说明。
也可以使用命令行完成一样的功能,如下面命令使用了付费版模型(MFR 一个付费模型)进行识别:
或者使用免费开源模型进行识别:
识别纯文字图片
对于只包含文字不包含数学公式的图片,使用函数
.recognize_text()
可以识别出图片中的文字。此时 Pix2Text 相当于一般的文字 OCR 引擎。如针对以下图片 (examples/general.jpg):调用方式如下:
返回结果为字符串,即对应的文字序列。具体说明见接口说明。
也可以使用命令行完成一样的功能,如下面命令使用了付费版模型(CnOCR 一个付费模型)进行识别:
或者使用免费开源模型进行识别:
<ins/>
P2T 在线文档
P2T 网页版
所有人都可以免费使用 P2T网页版,每人每天可以免费识别 10000 个字符,正常使用应该够用了。请不要批量调用接口,机器资源有限,批量调用会导致其他人无法使用服务。
受限于机器资源,网页版当前只支持简体中文和英文,要尝试其他语言上的效果,请使用以下的在线 Demo。
在线 Demo
可以使用此 在线 Demo 尝试 P2T 在不同语言上的效果。但在线 Demo 使用的硬件配置较低,速度会较慢。如果是简体中文或者英文图片,建议使用 P2T网页版。
如果无法科学上网,可以访问此地址:https://hf.qhduan.com/spaces/breezedeus/Pix2Text-Demo。
付费版模型购买
V1.1 兼容 V1.0 中的所有模型,如 MFD、MFR、CnOCR等。
购买链接和具体说明见:P2T详细资料 | Breezedeus.com 。
使用说明
通过模型购买商店购买企业 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
对应的配置去掉即可。<ins/>
- 作者:Breezedeus
- 链接:https://www.breezedeus.com/article/p2t-v1.1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章