本文档提供了有关如何从源代码构建 Tesseract OCR 并将其部署到不同平台的全面指南。它涵盖了 Tesseract 支持的各种构建系统、必需的依赖项、特定于平台的注意事项以及如何构建主库和训练工具。
有关训练 Tesseract OCR 模型的信息,请参阅 训练。有关 API 用法信息,请参阅 API 参考。
Tesseract OCR 支持三种不同的构建系统,每种系统在不同环境中都有其独特的优势。
来源: CMakeLists.txt1-46 configure.ac1-87 Makefile.am1-12 sw.cpp1-25
| 构建系统 | 优点 | 缺点 | 最佳用途 |
|---|---|---|---|
| Autotools | 对 Unix 的原生支持,成熟 | 在 Windows 上很复杂,需要额外的工具 | Unix/Linux, macOS |
| CMake | 跨平台,良好的 IDE 支持 | 需要 CMake 知识 | 所有平台,尤其是 Windows |
| SW | 简化的 Windows 构建 | 不太成熟,平台支持有限 | Windows 开发 |
来源: CMakeLists.txt384-467 configure.ac497-550
来源: CMakeLists.txt126-137 configure.ac390-417
| 选项 | 描述 |
|---|---|
--prefix=/path | 安装目录前缀 |
--disable-graphics | 禁用 ScrollView 调试 |
--disable-legacy | 禁用旧版 OCR 引擎 |
--disable-float32 | 使用双精度而不是单精度进行 LSTM |
--with-extra-includes=/path | 其他包含目录 |
--with-extra-libraries=/path | 其他库目录 |
构建训练工具
| 选项 | 默认 | 描述 |
|---|---|---|
BUILD_TRAINING_TOOLS | ON | 构建训练工具 |
BUILD_TESTS | OFF | 构建测试 |
OPENMP_BUILD | OFF | 使用 OpenMP 支持构建 |
GRAPHICS_DISABLED | OFF | 禁用 ScrollView 调试 |
DISABLED_LEGACY_ENGINE | OFF | 禁用旧版 OCR 引擎 |
ENABLE_LTO | OFF | 启用链接时优化 |
USE_SYSTEM_ICU | OFF | 使用系统 ICU |
DISABLE_TIFF | OFF | 禁用 TIFF 支持 |
DISABLE_CURL | OFF | 禁用 libcurl |
DISABLE_ARCHIVE | OFF | 禁用 libarchive |
在 Windows 上使用 Visual Studio
SW 构建系统对于 Windows 平台特别有用,它简化了构建过程。
来源: sw.cpp1-201
来源: CMakeLists.txt81-85 CMakeLists.txt168-275 CMakeLists.txt868-880 configure.ac89-117 src/arch/simddetect.cpp26-42
ws2_32.lib,MSVC 的 UTF-8 标志)来源: CMakeLists.txt868-880 src/arch/simddetect.cpp226-240
Tesseract 会在可用时检测并利用硬件加速功能。
来源:src/arch/simddetect.cpp150-293 src/arch/dotproduct.h1-45 src/arch/dotproductneon.cpp1-72 src/arch/intsimdmatrixrvv.cpp1-89
如果您计划训练新的语言模型或微调现有模型,则需要训练工具。
使用 Autotools
使用 CMake
来源:src/training/CMakeLists.txt1-435
来源:src/training/CMakeLists.txt118-270
Tesseract 使用 GitHub Actions 进行持续集成,在多个平台和配置上测试构建。
来源:README.md3-5 .gitignore96-118
| 问题 | 可能解决方案 |
|---|---|
| 缺少依赖项 | 通过系统的包管理器安装所需的软件包 |
| 关于 C++ 标准的编译器错误 | 确保您的编译器支持 C++17 或更高版本 |
| SIMD 相关错误 | 使用构建选项禁用特定优化 |
| 构建期间的内存错误 | 使用 -j 标志减少并行作业或增加交换空间 |
| 训练工具构建失败 | 确保所有必需的依赖项(ICU、Pango、Cairo)都已安装 |
| ScrollView 错误 | 使用 --disable-graphics 或 -DGRAPHICS_DISABLED=ON 进行禁用 |
使用默认选项安装时,Tesseract 会将文件放在这些标准位置
| 组件 | Linux/Unix/macOS 位置 | Windows 位置 |
|---|---|---|
| 可执行文件 | /usr/local/bin/tesseract | C:\Program Files\tesseract-ocr\tesseract.exe |
| 库 | /usr/local/lib/libtesseract.so.* | C:\Program Files\tesseract-ocr\tesseract*.dll |
| 头 | /usr/local/include/tesseract/ | C:\Program Files\tesseract-ocr\include\ |
| 数据文件 | /usr/local/share/tessdata/ | C:\Program Files\tesseract-ocr\tessdata\ |
| 配置文件 | /usr/local/share/tessdata/configs/ | C:\Program Files\tesseract-ocr\tessdata\configs\ |
| 文档 | /usr/local/share/man/ | C:\Program Files\tesseract-ocr\doc\ |