简介
Tesseract 是一个开源的 文本识别 (OCR) 引擎,根据 Apache 2.0 许可证 提供。它可以直接使用,或者(对于程序员)使用 API 从图像中提取打印的文本。它支持多种语言。
Tesseract 没有内置的 GUI,但从 3rdParty 页面有几个可用。
安装
安装有两部分,引擎本身和语言的训练数据。
Tesseract 可从许多 Linux 发行版直接获得。该软件包通常称为 ‘tesseract’ 或 ‘tesseract-ocr’ - 搜索您发行版的存储库以找到它。
超过 130 种语言和超过 35 种文字的软件包也可从 Linux 发行版直接获得。语言训练数据软件包称为 ‘tesseract-ocr-langcode’ 和 ‘tesseract-ocr-script-scriptcode’,其中 langcode
是三个字母的语言代码,scriptcode
是四个字母的文字代码。
示例:tesseract-ocr-eng (英语)、tesseract-ocr-ara (阿拉伯语)、tesseract-ocr-chi-sim (简体中文)、tesseract-ocr-script-latn (拉丁文字)、tesseract-ocr-script-deva (天城文) 等。
**仅供专家使用。**
如果您正在尝试 OCR 引擎模式,则需要手动安装除 Linux 发行版中提供的语言训练数据之外的数据。
各种类型的训练数据 可在 GitHub 上找到。解压缩并将 .traineddata 文件复制到 ‘tessdata’ 目录中。确切的目录将取决于训练数据的类型和您的 Linux 发行版。可能性是 /usr/share/tesseract-ocr/tessdata
或 /usr/share/tessdata
或 /usr/share/tesseract-ocr/4.00/tessdata
。
过时 Tesseract 版本的训练数据 =< 3.02 位于另一个位置。
平台
如果 Tesseract 不适用于您的发行版,或者您想使用比他们提供的更新的版本,您可以 自己编译。
Ubuntu
您只需运行以下命令,即可在 Ubuntu 上安装 Tesseract 及其开发人员工具
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
适用于 Ubuntu 用户的说明:如果 apt
无法找到该软件包,请尝试在 sources.list
文件中添加 universe
条目,如下所示。
sudo vi /etc/apt/sources.list
Copy the first line "deb http://archive.ubuntu.com/ubuntu bionic main" and paste it as shown below on the next line.
If you are using a different release of ubuntu, then replace bionic with the respective release name.
deb http://archive.ubuntu.com/ubuntu bionic universe
Debian 软件包
Raspbian 软件包
Ubuntu 软件包
Ubuntu ppa
RHEL/CentOS/Scientific Linux、Fedora、openSUSE 软件包
有关详细说明,请参见 在 OpenSuse 上安装 页面。
AppImage
说明
- 从 releases 页面下载 AppImage
- 打开您的终端应用程序(如果尚未打开)。
- 浏览到 AppImage 的位置
- 使 AppImage 可执行
$ chmod a+x tesseract*.AppImage
- 运行它
./tesseract*.AppImage -l eng page.tif page.txt
AppImage 兼容性
- Debian:≥ 10
- Fedora:≥ 29
- Ubuntu:≥ 18.04
- CentOS ≥ 8
- openSUSE Tumbleweed
包含的训练数据文件
- deu - 德语
- eng - 英语
- fin - 芬兰语
- fra - 法语
- osd - 文字和方向
- por - 葡萄牙语
- rus - 俄语
- spa - 西班牙语
snap
对于 snapd 支持的发行版,您也可以运行以下命令来安装 tesseract
构建的二进制文件(没有安装 snapd?)
sudo snap install --channel=edge tesseract
训练数据目前不随 snap 软件包一起提供,必须手动放置到 ~/snap/tesseract/current
中。
macOS
您可以使用 MacPorts 或 Homebrew 安装 Tesseract。
Tesseract API 的 macOS 包装器也提供在 Tesseract macOS。
MacPorts
要安装 Tesseract,请运行此命令
sudo port install tesseract
要安装任何语言数据,请运行
sudo port install tesseract-<langcode>
可在 MacPorts tesseract 页面 上找到可用 langcode 的列表。
Homebrew
要安装 Tesseract,请运行此命令
brew install tesseract
然后可以使用 brew info tesseract
找到 tesseract 目录,例如 /usr/local/Cellar/tesseract/3.05.02/share/tessdata/
。
Windows
适用于 Tesseract 3.05、Tesseract 4 和 Tesseract 5 的 Windows 安装程序可在 Tesseract at UB Mannheim 获取。这些包括训练工具。有 32 位和 64 位安装程序可用。
从我们的 下载 页面可以获取适用于 Windows 的 旧版 3.02 的安装程序。这包括英语训练数据。如果您想使用另一种语言,请 下载相应的训练数据,使用 7-zip 解压缩它,并将 .traineddata 文件复制到 ‘tessdata’ 目录中,可能是 C:\Program Files\Tesseract-OCR\tessdata
。
要从任何位置访问 tesseract-OCR,您可能需要将 tesseract-OCR 二进制文件所在的目录添加到 Path 变量中,可能是 C:\Program Files\Tesseract-OCR
。
专家还可以从 Appveyor 持续集成 的构建工件中获得使用 Visual Studio 构建的二进制文件。
Cygwin
tesseract-ocr 的发布版本 >= 3.02 是 Cygwin 的一部分。
最新版本是 4.1.0。请参见 公告。
MSYS2
安装 tesseract-OCR
pacman -S mingw-w64-{i686,x86_64}-tesseract-ocr
以及数据文件
pacman -S mingw-w64-{i686,x86_64}-tesseract-data-eng
在上面的命令中,可以使用支持语言的 ISO 639 三字母语言代码 替换 “eng”。要查看可用语言包的列表,请使用
pacman -Ss tesseract-data
其他平台
Tesseract 也可能在更多奇特的平台上运行。您可以尝试 自己编译,或者查看 使用 Tesseract 的其他项目 的列表。
运行 Tesseract
Tesseract 是一个命令行程序,因此首先打开一个终端或命令提示符。命令的使用方式如下
tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
因此,对名为 ‘myscan.png’ 的图像进行 OCR 并将结果保存到 ‘out.txt’ 的基本用法将是
tesseract myscan.png out
或者使用德语执行相同的操作
tesseract myscan.png out -l deu
它甚至可以同时使用多种语言的训练数据,例如英语和德语
tesseract myscan.png out -l eng+deu
Tesseract 还包括一个 hOCR 模式,它生成一个包含每个单词坐标的特殊 HTML 文件。可以使用 Hocr2PDF 等工具使用它来创建可搜索的 pdf。要使用它,请使用 ‘hocr’ 配置选项,如下所示
tesseract myscan.png out hocr
您还可以直接从 tesseract 创建可搜索的 pdf(版本 >= 3.03)
tesseract myscan.png out pdf
有关各种选项的更多信息,请参见 Tesseract 手册页。
其他语言
Tesseract 已针对 多种语言 进行训练,请在 Tessdata 存储库 中检查您的语言。
它还可以进行训练以支持其他语言和文字;有关更多详细信息,请参见 TrainingTesseract。
开发
Tesseract 也可以在您自己的项目中使用,根据 Apache 许可证 2.0 的条款。它具有功能齐全的 API,并且可以针对包括 Android 和 iPhone 在内的各种目标进行编译。有关使用它的示例,请参见 3rdParty 页面。请注意,到目前为止,为 Mac 开发的 3rdParty Tesseract OCR 项目 很少(唯一的一个是 Tesseract macOS.md),尽管有一些在线 OCR 服务可以在 Mac 上使用,这些服务可能使用 Tesseract 作为其 OCR 引擎。
此外,它是自由软件,因此如果您想参与并提供帮助,请务必这样做!如果您发现错误并自行修复,最好的做法是将补丁附加到您在 问题列表 中的错误报告中。
支持
首先阅读 文档,特别是 常见问题解答,查看您的问题是否已在那里解决。如果没有,请搜索 Tesseract 用户论坛 或 Tesseract 开发人员论坛,如果您仍然找不到所需的信息,请在那里询问我们。