3 预处理
2.2.2 (提高训练速度)2倍下采样
(为了提高训练的速度),我们遵循了原始论文的预处理,对图像进行了2倍下采样,
2.3 Label-Norm——基于语法树的标准化方法
基于Norm的预处理方法是由Image-to-Markup在论文中提出的,
在论文的GitHub-repo中,使用了python和js代码来完成预处理的功能,
我当时觉得很奇怪,为什么要用js的代码,后来想到,这是因为对于LaTeX的语法检查,
可能是基于js来实现的,所以会用到js代码,
这里我们跟随原始repo的实现来进行;
因为我们的OCR项目中的标注不会出现多义的现象,所以不需要进行标准化;
这里我们可以直接使用官方repo处理过的数据;
也可以follow原始repo的代码,进行预处理的复现;
2.3.1 下载原始论文预处理的数据
原始论文的数据地址:http://lstm.seas.harvard.edu/latex/data/
备注:data链接中的第三个链接“formula_images_processed.tar.gz”无法下载,所以用第七个链接(相同的文字)进行下载;
2.3.2 使用原始repo进行标准化(不推荐,比较复杂)
注意:原始repo是基于python-2.7的,所以需要基于python-2.7来运行;
1. 使用conda新建python-2.7的虚拟环境
(在运行的时候会发现没有PIL库,提示:
Traceback (most recent call last):
File "scripts/preprocessing/preprocess_filter.py", line 4, in <module>
import PIL
ImportError: No module named PIL
所以需要安装PIL库,但是PIL库似乎已经停止维护了,所以我们需要使用pillow库;
使用conda命令安装时会有问题,会把我们的python直接更新到最新的版本,所以不能使用conda命令进行安装,我们使用pip命令进行安装;
使用pip命令时,又提示:
Command 'pip' not found, but can be installed with:
sudo apt install python-pip
所以还需要先安装pip程序)
2. 安装pip程序:sudo apt install python-pip
3. 安装pillow库
4 评价指标——BLEU
论文中使用的评价指标是BLEU,需要注意的是,
原始论文的实现中,ngram = 4,
代码的截图如下: