Project Icon

CnSTD

多语言场景文字与数学公式检测工具包

CnSTD是一个Python 3场景文字检测和数学公式检测工具包,支持多语言文字检测,提供多个预训练模型。最新版本新增数学公式检测功能,可识别行内和独立行公式。CnSTD基于PyTorch实现,采用DBNet等算法,检测速度和精度显著提升。可与CnOCR工具包结合,实现端到端文字识别。

 

Downloads Visitors license PyPI version forks stars last-releast last-commit Twitter

English | 中文

CnSTD

Update 2024.06.16:发布 V1.2.4

主要变更:

  • 支持基于 Ultralytics 的 YOLO Detector。

Update 2023.06.30:发布 V1.2.3

主要变更:

了解更多:RELEASE.md


CnSTDPython 3 下的场景文字检测Scene Text Detection,简称STD)工具包,支持中文英文等语言的文字检测,自带了多个训练好的检测模型,安装后即可直接使用。CnSTDV1.2.1 版本开始,加入了数学公式检测Mathematical Formula Detection,简称MFD)模型,并提供训练好的模型可直接用于检测图片中包含的数学公式(行内公式 embedding独立行公式 isolated )。

欢迎扫码加入微信交流群:

微信群二维码

作者也维护 知识星球 CnOCR/CnSTD/P2T私享群,欢迎加入。知识星球私享群会陆续发布一些CnOCR/CnSTD/P2T相关的私有资料,包括更详细的训练教程未公开的模型,使用过程中遇到的难题解答等。本群也会发布OCR/STD相关的最新研究资料。

V1.0.0 版本开始,CnSTD 从之前基于 MXNet 实现转为基于 PyTorch 实现。新模型的训练合并了 ICPR MTWI 2018ICDAR RCTW-17ICDAR2019-LSVT 三个数据集,包括了 46447 个训练样本,和 1534 个测试样本。

相较于之前版本, 新版本的变化主要包括:

  • 加入了对 PaddleOCR 检测模型的支持;
  • 部分调整了检测结果中 box 的表达方式,统一为 4 个点的坐标值;
  • 修复了已知bugs。

如需要识别文本框中的文字,可以结合 OCR 工具包 cnocr 一起使用。

示例

场景文字检测(STD)

STD效果

数学公式检测(MFD)

MFD 模型检测图片中包含的数学公式,其中行内的公式检测为 embedding 类别,独立行的公式检测为 isolated。模型训练使用了英文 IBEM 和中文 CnMFD_Dataset 两个数据集。

中文MFD效果
中文MFD效果
英文MFD效果

版面分析(Layout Analysis)

版面分析模型识别图片中的不同排版元素。模型训练使用的是 CDLA 数据集。可识别以下10中版面元素:

正文标题图片图片标题表格表格标题页眉页脚注释公式
TextTitleFigureFigure captionTableTable captionHeaderFooterReferenceEquation
版面分析效果

安装

嗯,顺利的话很简单(bless)。

pip install cnstd

如果需要使用 ONNX 模型(model_backend=onnx),请使用以下命令安装:

  • CPU环境使用 ONNX 模型:
    pip install cnstd[ort-cpu]
    
  • GPU环境使用 ONNX 模型:
    pip install cnstd[ort-gpu]
    
    • 注意:如果当前环境已经安装了 onnxruntime 包,请先手动卸载(pip uninstall onnxruntime)后再运行上面的命令。

安装速度慢的话,可以指定国内的安装源,如使用豆瓣源:

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

【注意】:

  • 请使用 Python3 (3.6以及之后版本应该都行),没测过Python2下是否ok。
  • 依赖 opencv,所以可能需要额外安装opencv。

已有STD模型

CnSTD 从 V1.2 开始,可直接使用的模型包含两类:1)CnSTD 自己训练的模型,通常会包含 PyTorch 和 ONNX 版本;2)从其他ocr引擎搬运过来的训练好的外部模型,ONNX化后用于 CnSTD 中。

直接使用的模型都放在 cnstd-cnocr-models 项目中,可免费下载使用。

1. CnSTD 自己训练的模型

当前版本(Since V1.1.0)的文字检测模型使用的是 DBNet,相较于 V0.1 使用的 PSENet 模型, DBNet 的检测耗时几乎下降了一个量级,同时检测精度也得到了极大的提升。

目前包含以下已训练好的模型:

模型名称参数规模模型文件大小测试集精度(IoU)平均推断耗时
(秒/张)
下载方式
db_resnet3422.5 M86 M0.73223.11自动
db_resnet1812.3 M47 M0.72941.93自动
db_mobilenet_v34.2 M16 M0.72691.76自动
db_mobilenet_v3_small2.0 M7.9 M0.70541.24自动
db_shufflenet_v24.7 M18 M0.72381.73自动
db_shufflenet_v2_small3.0 M12 M0.71901.29自动
db_shufflenet_v2_tiny1.9 M7.5 M0.71721.14下载链接

上表耗时基于本地 Mac 获得,绝对值无太大参考价值,相对值可供参考。IoU的计算方式经过调整,仅相对值可供参考。

相对于两个基于 ResNet 的模型,基于 MobileNetShuffleNet 的模型体积更小,速度更快,建议在轻量级场景使用。

2. 外部模型

以下模型是 PaddleOCR 中模型的 ONNX 版本,所以不会依赖 PaddlePaddle 相关工具包,故而也不支持基于这些模型在自己的领域数据上继续精调模型。这些模型支持检测竖排文字

model_namePyTorch 版本ONNX 版本支持检测的语言模型文件大小
ch_PP-OCRv3_detX简体中问、英文、数字2.3 M
ch_PP-OCRv2_detX简体中问、英文、数字2.2 M
en_PP-OCRv3_detX英文、数字2.3 M

更多模型可参考 PaddleOCR/models_list.md 。如有其他外语(如日、韩等)检测需求,可在 知识星球 CnOCR/CnSTD私享群 中向作者提出建议。

使用方法

首次使用 CnSTD 时,系统会自动下载zip格式的模型压缩文件,并存放于 ~/.cnstd目录(Windows下默认路径为 C:\Users\<username>\AppData\Roaming\cnstd)。下载速度超快。下载后的zip文件代码会自动对其解压,然后把解压后的模型相关目录放于~/.cnstd/1.2目录中。

如果系统无法自动成功下载zip文件,则需要手动从 百度云盘(提取码为 nstd)下载对应的zip文件并把它存放于 ~/.cnstd/1.2(Windows下为 C:\Users\<username>\AppData\Roaming\cnstd\1.2)目录中。模型也可从 cnstd-cnocr-models 中下载。放置好zip文件后,后面的事代码就会自动执行了。

场景文字检测(STD)

使用类 CnStd 进行场景文字的检测。类 CnStd 的初始化函数如下:

class CnStd(object):
    """
    场景文字检测器(Scene Text Detection)。虽然名字中有个"Cn"(Chinese),但其实也可以轻松识别英文的。
    """

    def __init__(
        self,
        model_name: str = 'ch_PP-OCRv3_det',
        *,
        auto_rotate_whole_image: bool = False,
        rotated_bbox: bool = True,
        context: str = 'cpu',
        model_fp: Optional[str] = None,
        model_backend: str = 'onnx',  # ['pytorch', 'onnx']
        root: Union[str, Path] = data_dir(),
        use_angle_clf: bool = False,
        angle_clf_configs: Optional[dict] = None,
        **kwargs,
    ):

其中的几个参数含义如下:

  • model_name: 模型名称,即前面模型表格第一列中的值。默认为 ch_PP-OCRv3_det

  • auto_rotate_whole_image:

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号