【Rust日报】2024-01-03 一个用 Rust 编写的现代 OCR 引擎

2024-01-12 15:42:36 浏览数 (2)

ocrs -- 一个用 Rust 编写的现代 OCR 引擎(从图像中提取文本)

ocrs 是一个 Rust 库和 CLI 工具,用于从图像中提取文本,也称为 OCR(光学字符识别)。 ocrs 目标是创建一个现代 OCR 引擎:

  • 与 Tesseract 等早期引擎相比,可以很好地处理各种图像(扫描文档、包含文本的照片、屏幕截图等),预处理工作量为零或少得多。这是通过在管道中更广泛地使用机器学习来实现的。
  • 易于在各种平台上编译和运行,包括 WebAssembly
  • 接受过开放且自由许可的数据集的培训
  • 拥有易于理解和修改的代码库

在底层,该库使用在 PyTorch中训练的神经网络模型,然后将其导出到ONNX并使用RTen引擎执行。有关更多详细信息,请参阅模型部分。

命令行安装

要安装 CLI 工具,您首先需要安装 Rust 和 Cargo。然后运行:

代码语言:javascript复制
$ cargo install ocrs-cli
CLI 用法

要从图像中提取文本,请运行:

代码语言:javascript复制
$ ocrs image.png

当该工具第一次运行时,它会自动下载所需的模型并将其存储在~/.cache/ocrs.

其他示例

从图像中提取文本并写入content.txt:

代码语言:javascript复制
$ ocrs image.png -o content.txt

从 JSON 格式的图像中提取文本和布局信息:

代码语言:javascript复制
$ ocrs image.png --json -o content.json

注释图像以显示检测到的单词和线条的位置:

代码语言:javascript复制
$ ocrs image.png --png -o annotated.png
模型和数据集

ocrs 使用用 PyTorch 编写的神经网络模型。有关模型和数据集以及用于训练自定义模型的工具的更多详细信息,请参阅 ocrs-models存储库。这些模型还提供 ONNX 格式,可与其他机器学习运行时一起使用。

  • https://github.com/robertknight/ocrs

0 人点赞