正文
])
doc.to_markdown(
'output-md'
)
# 导出的 Markdown 信息保存在 output-md 目录中
也可以使用命令行完成一样的功能,如下面命令使用了付费版模型(MFD + MFR + CnOCR 三个付费模型)进行识别:
p2t predict -l en,ch_sim --mfd-config '{"model_type": "yolov7", "model_fp": "/Users/king/.cnstd/1.2/analysis/mfd-yolov7-epoch224-20230613.pt"}' --formula-ocr-config '{"model_name":"mfr-pro","model_backend":"onnx"}' --text-ocr-config '{"rec_model_name": "doc-densenet_lite_666-gru_large"}' --rec-kwargs '{"page_numbers": [0, 1]}' --resized-shape 768 --file-type pdf -i docs/examples/test-doc.pdf -o output-md --save-debug-res output-debug
识别结果见
output-md/output.md
[25]
。
📌 如果期望导出 Markdown 之外的其他格式,如 Word、HTML、PDF 等,推荐使用工具
Pandoc
[26]
对 Markdown 结果进行转换即可。
识别带有复杂排版的图片
可以使用函数
.recognize_page()
识别图片中的文字和数学公式。如针对以下图片 (
examples/page2.png
[27]
):
调用方式如下:
from pix2text import Pix2Text
img_fp = './examples/test-doc.pdf'
p2t = Pix2Text.from_config()
page = p2t.recognize_page(img_fp)
page.to_markdown('output-page') # 导出的 Markdown 信息保存在 output-page 目录中
也可以使用命令行完成一样的功能,如下面命令使用了付费版模型(MFD + MFR + CnOCR 三个付费模型)进行识别:
p2t predict -l en,ch_sim --mfd-config '{"model_type": "yolov7", "model_fp": "/Users/king/.cnstd/1.2/analysis/mfd-yolov7-epoch224-20230613.pt"}' --formula-ocr-config '{"model_name":"mfr-pro","model_backend":"onnx"}' --text-ocr-config '{"rec_model_name": "doc-densenet_lite_666-gru_large"}' --resized-shape 768 --file-type page -i docs/examples/page2.png -o output-page --save-debug-res output-debug-page
识别结果和
output-md/output.md
[28]
类似。
识别既有公式又有文本的段落图片
对于既有公式又有文本的段落图片,识别时不需要使用版面分析模型。可以使用函数
.recognize_text_formula()
识别图片中的文字和数学公式。如针对以下图片 (
examples/en1.jpg
[29]
):
调用方式如下:
from pix2text import Pix2Text, merge_line_texts
img_fp = './examples/en1.jpg'
p2t = Pix2Text.from_config()
outs = p2t.recognize_text_formula(img_fp, resized_shape=768, return_text=True)
print(outs)
返回结果
outs
是个
dict
,其中 key
position
表示Box位置信息,
type
表示类别信息,而
text
表示识别的结果。具体说明见
接口说明
[30]
。
也可以使用命令行完成一样的功能,如下面命令使用了付费版模型(MFD + MFR + CnOCR 三个付费模型)进行识别: