Skip to content

Pix2Text

Pix2Text (P2T)

Discord Downloads Visitors license PyPI version forks stars last-release last-commit Twitter

📖 使用 | 🛠️ 安装 | 🧳 模型 | 🛀🏻 在线Demo | 💬 交流群

English | 中文

Pix2Text (P2T) 期望成为 Mathpix免费开源 Python 替代工具,目前已经可以完成 Mathpix 的核心功能。 Pix2Text (P2T) 可以识别图片中的版面、表格、图片、文字、数学公式等内容,并整合所有内容后以 Markdown 格式输出。P2T 也可以把一整个 PDF 文件(PDF 的内容可以是扫描图片或者其他任何格式)转换为 Markdown 格式。

Pix2Text (P2T) 整合了以下模型:

其中多个模型来自其他开源作者, 非常感谢他们的贡献。

具体说明请参考 可用模型

P2T 作为Python3工具包,对于不熟悉Python的朋友不太友好,所以我们也发布了可免费使用P2T网页版,直接把图片丢进网页就能输出P2T的解析结果。网页版会使用最新的模型,效果会比开源模型更好。

感兴趣的朋友欢迎扫码加小助手为好友,备注 p2t,小助手会定期统一邀请大家入群。群内会发布P2T相关工具的最新进展:

微信群二维码

作者也维护 知识星球 P2T/CnOCR/CnSTD私享群 ,这里面的提问会较快得到作者的回复,欢迎加入。知识星球私享群也会陆续发布一些P2T/CnOCR/CnSTD相关的私有资料,包括部分未公开的模型购买付费模型享优惠不同应用场景的调用代码,使用过程中遇到的难题解答等。星球也会发布P2T/OCR/STD相关的最新研究资料。

更多说明可见 交流群

支持的语言列表

Pix2Text 的文字识别引擎支持 80+ 种语言,如英文、简体中文、繁体中文、越南语等。其中,英文简体中文识别使用的是开源 OCR 工具 CnOCR ,其他语言的识别使用的是开源 OCR 工具 EasyOCR ,感谢相关的作者们。

支持的语言列表语言代码如下:

↓↓↓ Click to show details ↓↓↓ | Language | Code Name | | ------------------- | ----------- | | Abaza | abq | | Adyghe | ady | | Afrikaans | af | | Angika | ang | | Arabic | ar | | Assamese | as | | Avar | ava | | Azerbaijani | az | | Belarusian | be | | Bulgarian | bg | | Bihari | bh | | Bhojpuri | bho | | Bengali | bn | | Bosnian | bs | | Simplified Chinese | ch_sim | | Traditional Chinese | ch_tra | | Chechen | che | | Czech | cs | | Welsh | cy | | Danish | da | | Dargwa | dar | | German | de | | English | en | | Spanish | es | | Estonian | et | | Persian (Farsi) | fa | | French | fr | | Irish | ga | | Goan Konkani | gom | | Hindi | hi | | Croatian | hr | | Hungarian | hu | | Indonesian | id | | Ingush | inh | | Icelandic | is | | Italian | it | | Japanese | ja | | Kabardian | kbd | | Kannada | kn | | Korean | ko | | Kurdish | ku | | Latin | la | | Lak | lbe | | Lezghian | lez | | Lithuanian | lt | | Latvian | lv | | Magahi | mah | | Maithili | mai | | Maori | mi | | Mongolian | mn | | Marathi | mr | | Malay | ms | | Maltese | mt | | Nepali | ne | | Newari | new | | Dutch | nl | | Norwegian | no | | Occitan | oc | | Pali | pi | | Polish | pl | | Portuguese | pt | | Romanian | ro | | Russian | ru | | Serbian (cyrillic) | rs_cyrillic | | Serbian (latin) | rs_latin | | Nagpuri | sck | | Slovak | sk | | Slovenian | sl | | Albanian | sq | | Swedish | sv | | Swahili | sw | | Tamil | ta | | Tabassaran | tab | | Telugu | te | | Thai | th | | Tajik | tjk | | Tagalog | tl | | Turkish | tr | | Uyghur | ug | | Ukranian | uk | | Urdu | ur | | Uzbek | uz | | Vietnamese | vi | > Ref: [Supported Languages](https://www.jaided.ai/easyocr/) .

P2T 网页版

所有人都可以免费使用 P2T网页版,每人每天可以免费识别 10000 个字符,正常使用应该够用了。请不要批量调用接口,机器资源有限,批量调用会导致其他人无法使用服务。

受限于机器资源,网页版当前只支持简体中文和英文,要尝试其他语言上的效果,请使用以下的在线 Demo

在线 Demo 🤗

也可以使用 在线 Demo(无法科学上网可以使用 在线 Demo) 尝试 P2T 在不同语言上的效果。但在线 Demo 使用的硬件配置较低,速度会较慢。如果是简体中文或者英文图片,建议使用 P2T网页版

安装

嗯,顺利的话一行命令即可。

pip install pix2text

如果需要识别英文简体中文之外的文字,请使用以下命令安装额外的包:

pip install pix2text[multilingual]

安装速度慢的话,可以指定国内的安装源,如使用阿里云的安装源:

pip install pix2text -i https://mirrors.aliyun.com/pypi/simple

如果是初次使用OpenCV,那估计安装都不会很顺利,bless。

Pix2Text 主要依赖 CnSTD>=1.2.1CnOCR>=2.2.2.1 ,以及 transformers>=4.37.0 。如果安装过程遇到问题,也可参考它们的安装说明文档。

Warning

如果电脑中从未安装过 PyTorchOpenCV python包,初次安装可能会遇到不少问题,但一般都是常见问题,可以自行百度/Google解决。

更多说明参考 安装说明

使用说明

参见:使用说明

示例

参见:示例

模型下载

参见:模型

命令行工具

参见:命令行工具

HTTP 服务

使用命令 p2t serve 开启一个 HTTP 服务,用于接收图片(当前不支持 PDF)并返回识别结果。

p2t serve -l en,ch_sim -H 0.0.0.0 -p 8503

之后可以使用 curl 调用服务:

curl -X POST \
  -F "file_type=page" \
  -F "resized_shape=768" \
  -F "embed_sep= $,$ " \
  -F "isolated_sep=$$\n, \n$$" \
  -F "image=@docs/examples/page2.png;type=image/jpeg" \
  http://0.0.0.0:8503/pix2text

更多说明参考 命令说明/开启服务

Mac 桌面客户端

请参考 Pix2Text-Mac 安装 Pix2Text 的 MacOS 桌面客户端。

Pix2Text Mac 客户端

给作者来杯咖啡

开源不易,如果此项目对您有帮助,可以考虑 给作者加点油🥤,鼓鼓气💪🏻


官方代码库:

Pix2Text (P2T) 更多信息:https://www.breezedeus.com/article/pix2text_cn