跳到主要内容

Nougat-OCR + 沉浸式翻译

解决的问题:

沉浸式网页翻译配合 Nougat,完美解决沉浸式的 PDF 双语对照翻译工具无法正确处理表格和数学公式的场景

注意

markdown viewer 插件需要授权文件访问权限,以及勾选面板中 content 下 的 mathjax 选项

在线推理

由群友 @rae sr

需要登录Github账号,并且使用量大的后期需要付费,经过测试,转换一个32页的论文大概需要A40 GPU跑60秒,费用大概是0.25元人民币

本地推理(省流版)

由群友 @矢口口一 贡献

  • 自行安装 Python、NvidiaCUDA(可选)、NvidiaCUDNN(可选)、CUDA 版 Pytorch(可选)
  • 再用 Python 安装 Nougat-OCR。用 Nougat 识别 PDF 文件得到 .mmd 的 markdown 文件
  • 文件格式改成 .md,浏览器打开它之后用 markdown viewer 插件配合 沉浸式翻译
  • 最后尽情享受高质量的学术文档 PDF 翻译

本地推理(图文实践版)

由群友 @X1aoma 贡献

准备工作

Windows 电脑一台,10g 左右存储空间

CPU 运行查看 1-3,配合 N 卡 看 1-6

1. 安装 Python 并检查 pip 是否安装

(Pyhton 3.12.0 有兼容性问题不建议下载,建议下载 3.12.0 以下版本)

Python 官网下载

安装好检查 pip 是否安装

​ 打开 cmd 窗口输入

$ python -m pip

​ 已安装显示如下

image-20231027155345254

2. 安装 Nougat

来自 pip:
$ pip install nougat-ocr
来自版本库:
$ pip install git+https://github.com/facebookresearch/nougat

​ 正常安装完成显示

image-20231027160223127

3. 使用 Nougat 进行 PDF 转换

​ 基本使用命令

$ nougat path/to/file.pdf -o output_directory
# path/to/file.pdf 为你需要转换的PDF文件路径
# output_directory为你Nougat转换完生成的文件路径
# 第一次运行Nougat会下载对应的模型大约1g

eg/例如:
$ nougat C:/Users/user/Downloads/Documents/eg.pdf -o C:/Users/user/Downloads/Documents

image-20231027162208133

这是使用 CPU 来跑的模型,没有使用 CUDA 加速耗时比较久 image-20231027225742430 输出的 mmd 文件

image-20231027225757063

4. 前面提到了 CUDA 加速,就是利用 NVidia 显卡进行模型推理。

  • 首先确保你的电脑有独立的英伟达显卡
  • 查看显卡支持的最高 CUDA 的版本,以便下载对应的 CUDA 安装包

在显卡驱动被正确安装的前提下,在命令行里输入 nvidia-smi.exe,效果如图所示 可以看到显示 CUDA Version(版本)为 12.0,说明该显卡最高支持到 12.0,我这里就选择 12.0 的版本,你也可以选择更低的版本比如 11.7,11.5 更低的版本

image-20231028000437770

CUDA 工具包下载地址 CUDA Toolkit 12.3 Downloads | NVIDIA Developer

image-20231028003936856

选择对应的版本下载安装即可

image-20231028001832666

  1. 安装 Pytorch,CUDA 版本 Start Locally | PyTorch

以 Windows 为例我们选择 Windows 操作系统,对应的安装方式选择 pip,版本我的显卡是支持到 12.0 我们这里选择 CUDA 12.1 然后复制安装命令

$ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

image-20231028003041572

安装好了我们验证安装是否成功 image-20231028004225223

$ python            #cmd窗口打开运行pythhon

验证安装 pytorch 是否成功:

$ import torch
x = torch.rand(5, 3)
print(x)
#成功安装输出结果类似于
$ tensor([[0.3380, 0.3845, 0.3217],
[0.8337, 0.9050, 0.2650],
[0.2979, 0.7141, 0.9069],
[0.1449, 0.1132, 0.1375],
[0.4675, 0.3947, 0.1426]])

检查 GPU 驱动程序和 CUDA 是否已启用并可被 PyTorch 访问,请运行以下命令来返回 CUDA 驱动程序是否已启用:

$ import torch
torch.cuda.is_available()
# True为已启用

image-20231028004854975

5. 使用 CUDA 加速运行 Nougat 进行 OCR

!!速度快了千百倍

image-20231028005906104

翻译的文档为 Nougat 的论文 image-20231028010151329

6. 使用浏览器插件 markdown Viewer 配合沉浸式翻译阅读

Edge 商店和 Chrome 商店都能搜到 chrome 商店地址: markdown Viewer - Chrome 应用商店 (google.com)

勾选 markdown Viewer 和沉浸式翻译允许访问文件的权限

image-20231028010556798

将 Nougat 输出的文件格式修改为 .md(默认为.mmd),将文件拖拽至浏览器打开

- 呈现效果 -

image-20231028011122288

注意红色部分为 OCR 失败错误,请对照原文适当修改,默认情况下不会有太多红色报错部分

本文引用的文献地址 Neural Attentive Circuits | Research - AI at Meta

Nougat-OCR+沉浸式翻译

Nougat 项目网站: https://facebookresearch.github.io/nougat/

Nougat 项目程序: https://github.com/facebookresearch/nougat

沉浸式翻译网站: https://immersivetranslate.com/