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