位置: 首页 >资讯 > > 正文
今日观点!CnSTD V1.2.1 发布,支持数学公式检测和版面分析

2023-02-01 22:53:55     来源:哔哩哔哩

CnSTD (https://github.com/breezedeus/cnstd)之前的版本,定位都是做文字检测,新版 V1.2.1加入了数学公式检测Mathematical Formula Detection,简称MFD)和 版面分析Layout Analysis)模型,并提供预训练好的模型可直接使用。这两个模型底层架构用的都是YOLOv7的tiny模型,速度还是挺快的,但效果上并不算出众。


(资料图片)

CnSTD V1.2.1其实是为了我另一个开源工具 Pix2Text (P2T, https://github.com/breezedeus/pix2text)的新版定制的。旧的P2T只能识别要么是文字,要么是数学公式的图片。依托于 CnSTD V1.2.1,新版的P2T能够识别既包含文字又包含数学公式的混合图片,比如这个图片:

P2T可以识别为:

这样就有 

$$ {\cal L}_{t}=\mathbb{E}_{x_{0},\epsilon}\biggl[{\frac{(1-\alpha_{t})^{2}}{2\alpha_{t}(1-\tilde{\alpha}_{t})|\mathbf{E}_\theta||_{2}^{2}}}||\epsilon_{t}-\epsilon_{\theta}({\sqrt{\tilde{\alpha}_{t}}}\mathbf{x}_{0}+{\sqrt{1-\tilde{\alpha}_{t}}}\epsilon_{t},t)|^{2}\biggr] $$ 

Noise Prediction $\mathbb{C}_{\theta}$ 的输入和输出长度都与 $\mathbf{x}_{t}$ 大小一致(即图片的size),比较大,所以可以对∈。使用U-Net架构,降低计算量。

我们会争取尽快把P2T新版开源出来。P2T是个Python包,对于不熟悉Python的朋友还是太不友好,我们近期也会提供P2T的网页版,直接把图片丢进网页就能输出P2T的解析结果。

网页版会提供一些免费名额供有需要的朋友使用,优先在校的学生(MathPix 每月要5美元,对在校生来说还是蛮贵的)。

有兴趣的朋友也可以留言说明,以便我们更好地预估网页版使用人数,提前准备好服务器。

也欢迎 扫码加入微信交流群(https://github.com/breezedeus/CnSTD),了解P2T、CnSTD、CnOCR等工具的最新进展。

接下来介绍 CnSTD V1.2.1 的新功能,更详细的说明请转到项目主页 CnSTD 。

示例

数学公式检测(MFD)

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

版面分析(Layout Analysis)

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

正文标题图片图片标题表格表格标题页眉页脚注释公式TextTitleFigureFigure captionTableTable captionHeaderFooterReferenceEquation

使用方法

数学公式检测(MFD)与 版面分析(Layout Analysis)

数学公式检测(MFD)与 版面分析(Layout Analysis)都是检测图片中感兴趣的元素,它们使用的都是基于YOLOv7的检测架构,在CnSTD都来源于相同的类 LayoutAnalyzer,差别只是训练模型使用的数据不同。

这两个模型的训练代码在 yolov7 中(Forked from WongKinYiu/yolov7,感谢原作者。)

类 LayoutAnalyzer的初始化函数如下:

其中的参数含义如下:

model_name: 字符串类型,表示模型类型。可选值:’mfd’ 表示数学公式检测;’layout’ 表示版面分析。默认值:’mfd’

model_type: 字符串类型,表示模型类型。当前仅支持 ‘yolov7_tiny’;默认值:’yolov7_tiny’

model_backend: 字符串类型,表示backend。当前仅支持: ‘pytorch’;默认值:’pytorch’

model_fp: 字符串类型,表示模型文件的路径。默认值:None,表示使用默认的文件路径

root: 字符串或Path类型,表示模型文件所在的根目录。

Linux/Mac下默认值为 ~/.cnstd,表示模型文件所处文件夹类似 ~/.cnstd/1.2/analysis

Windows下默认值为 C:/Users/<username>/AppData/Roaming/cnstd

device: 字符串类型,表示运行模型的设备,可选值:’cpu’ 或 ‘gpu’;默认值:’cpu’

**kwargs: 额外的参数。

函数输出结果为一个list,其中每个元素表示识别出的版面中的一个元素,包含以下信息:

type: 版面元素对应的类型;可选值来自:self.categories;

box: 版面元素对应的矩形框;np.ndarray, shape: (4, 2),对应 box 4个点的坐标值 (x, y);

score: 得分,越高表示越可信 。

类函数LayoutAnalyzer.analyze()

对指定图片(列表)进行版面分析。

函数说明

函数输入参数包括:

img_list(str or list): 待识别图片或图片列表;如果是 np.ndarray,则应该是shape为 [H, W, 3]的 RGB 格式数组

resized_shape(int or tuple): (H, W); 把图片resize到此大小再做分析;默认值为 700

box_margin(int): 对识别出的内容框往外扩展的像素大小;默认值为 2

conf_threshold(float): 分数阈值;默认值为 0.25

iou_threshold(float): IOU阈值;默认值为 0.45

**kwargs: 额外的参数。

调用示例

脚本使用

cnstd包含了几个命令行工具,安装 cnstd后即可使用。

MFD or Layout Analysis 预测单个文件

使用命令 cnstd analyze获得单个文件的 MFD 或者 Layout Analysis 结果,以下是使用说明:

例如可以使用以下命令对图片 examples/mfd/zh.jpg进行 MFD,并把检测结果存放在文件 out-zh.jpg中:

(venv)➜  cnstd analyze -m mfd --conf-thresh 0.25 --resized-shape 800 -i examples/mfd/zh.jpg -o out-zh.jpg

具体使用也可参考文件 https://github.com/breezedeus/CnSTD/blob/master/Makefile 。

官方代码库:https://github.com/breezedeus/cnstd

标签: 数学公式 字符串类型 检测结果

上一篇:环球消息!越拍越高_关于越拍越高的基本详情介绍
下一篇:环球消息!越拍越高_关于越拍越高的基本详情介绍
相关内容

美容

护肤

prev next