ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Tesseract OCR 编译部署完整指南:从源码到能认出字的 90 分钟

Tesseract OCR 编译部署完整指南:从源码到能认出字的 90 分钟 Tesseract OCR 编译部署完整指南从源码到能认出字的 90 分钟【免费下载链接】tesseractTesseract Open Source OCR Engine (main repository)项目地址: https://gitcode.com/GitHub_Trending/te/tesseractTesseract 是开源 OCROptical Character Recognition光学文字识别即从图片里把文字读出来引擎的主力仓库提供命令行工具、C/C API 和多语言识别能力。本教程带你走完 Tesseract 编译部署全流程源码安装、语言包配置、中英文识别验证全部命令可直接复制。走完一遍你手里就是一个能直接用于生产的文字识别环境以后遇到同类报错也知道往哪里查。先看清终局部署成功长什么样这一节给你两个验收锚点后面每做完一步都可以回来对照。锚点一终端里敲tesseract --version能看到版本和它链接的底层库当前仓库版本号为 5.5.0见 VERSION 文件tesseract 5.5.0 leptonica-1.82.0 libgif 5.2.2 : libjpeg 9e : libpng 1.6.39 : libtiff 4.5.1 : zlib 1.3 : libwebp 1.3.1 : libopenjp2 2.5.0锚点二对一张图片做一次真实识别。假设当前目录有一张英文图test.pngtesseract test.png out cat out.txt输出就是你期望的文字例如The quick brown fox jumps over the lazy dog。下面开始操作。编译前检查系统与依赖装对不踩坑 这一节解决编译失败 90% 是因为依赖没装齐的问题。依赖清单及版本出处如下依赖项最低版本版本出处leptonica负责图像预处理的底层库1.74.2INSTALL.GIT.md 明确写明leptonicaCMake 构建路线1.74CMakeLists.txt 中MINIMUM_LEPTONICA_VERSIONC 编译器支持 C17INSTALL.GIT.md 训练工具依赖列表automake / autoconf / libtool任意新版INSTALL.GIT.md 依赖列表pkg-config任意新版INSTALL.GIT.md 依赖列表libpng / libjpeg / libtiff / zlib系统默认即可图像格式读写库pango / cairo / icu 开发包任意新版训练工具依赖仅编译训练工具时需要白话说一句leptonica 相当于 Tesseract 的眼睛负责把图片切成它认识的形态版本低于 1.74.2 时Tesseract 5.x 的接口对不上编译必挂所以这是第一优先要确认的东西。Ubuntu/Debian 系一条命令装齐sudo apt-get install automake autoconf libtool pkg-config \ libpng-dev libjpeg-dev libtiff-dev zlib1g-dev \ libleptonica-dev libicu-dev libpango1.0-dev libcairo2-dev这一条命令把上表所有依赖的开发包一次装好省得编译到一半才缺库。拿到源码避开版本冲突这一节解决装到一半报奇怪错误的问题多半是旧版本没清干净。git clone https://gitcode.com/GitHub_Trending/te/tesseract cd tesseract克隆完成后你拥有的就是本文后续所有命令的工作目录。官方提醒原样引用自 INSTALL.GIT.md如果你系统里已经装了 tesseract 4.0x 版本请先卸载再编译新版本。原因很直白新旧两个版本的动态库和tessdata目录会互相覆盖轻则语言包找错版本重则make install后命令行跑的还是旧二进制。卸载旧版只要一条sudo apt-get remove tesseract-ocr按你当初的安装方式对应处理。两条编译路线先选对路再敲命令 这一节解决Autotools 和 CMake 我该用哪个的问题。先看对比路线适合场景配置方式训练工具Autotools传统 Linux 发行版习惯、跟官方文档一致./configure参数默认构建另跑make trainingCMakeLinux想要更少的玄学问题、需要精细开关-D变量BUILD_TRAINING_TOOLS选项默认 ONCMakeWindowsWindows 下官方推荐的唯一姿势指定 VS 生成器同上三条路线的选项几乎等价--enable-debug对应-DCMAKE_BUILD_TYPEDebug不编训练工具分别对应--disable-training-tools和-DBUILD_TRAINING_TOOLSOFF。路线 AAutotoolsLinux./autogen.sh这一步从源码生成configure脚本clone 下来的仓库没有现成的必须先生成。./configure --prefix/usr/local这一步做配置检测编译器、leptonica 版本、各图像库是否达标不达标会在这里就报错而不是等到编译。make -j$(nproc)编译-j$(nproc)表示用满所有 CPU 核心加速。sudo make install sudo ldconfig安装到/usr/local然后ldconfig刷新动态库缓存——少了这步运行时可能报libtesseract.so 找不到。路线 BCMakeLinuxmkdir build cd build cmake .. -DBUILD_TRAINING_TOOLSON注意不能在源码目录里直接跑cmake .——CMakeLists.txt 开头就写了 in-source build 禁止会在 build 目录里完成配置。BUILD_TRAINING_TOOLS默认就是 ON这里写出来只是让你知道这个开关存在。make -j$(nproc) sudo make install sudo ldconfig编译并安装结尾同样刷新一次库缓存。路线 CWindowsmkdir build cd build cmake .. -G Visual Studio 16 2019 -A x64 cmake --build . --config Release cmake --install . --prefix C:\Program Files\tesseract第一条命令生成 Visual Studio 工程第二条构建 Release 版第三条安装。Windows 上装完建议把安装目录加进PATH再新开一个终端验证。装上语言语言包与配置文件一次配好这一节解决编译成功但一识别就报错的问题——Tesseract 引擎本身不带任何语言知识语言知识全在语言包里。语言包目录就是tessdataeng.traineddata英文包必须装其他语言按需添加sudo mkdir -p /usr/local/share/tessdata sudo wget https://github.com/tesseract-ocr/tessdata/raw/main/eng.traineddata \ -O /usr/local/share/tessdata/eng.traineddata sudo wget https://github.com/tesseract-ocr/tessdata/raw/main/chi_sim.traineddata \ -O /usr/local/share/tessdata/chi_sim.traineddata前一条创建目录后两条分别下载英文包和简体中文包来自官方 tessdata 语言数据仓库。然后告诉 Tesseract 去哪里找语言包。运行时的查找逻辑在 src/ccmain/tessedit.cpp 里TESSDATA_PREFIX环境变量是它找包的第一依据export TESSDATA_PREFIX/usr/local/share/tessdata echo export TESSDATA_PREFIX/usr/local/share/tessdata ~/.bashrc第一条让当前终端立即生效第二条写进.bashrc让以后每次开终端都自动生效。再来看配置文件。tessdata/configs/目录编译安装时会一并装到语言包目录下放着一批识别行为预设用tesseract 图 输出 配置名的方式启用tessdata/configs/hocr输出 HOCR 富文本带每个字的位置坐标tessdata/configs/pdf直接产出可复制文字的 PDFtessdata/configs/digits字符集锁定为纯数字适合读表、读数想自己看某个配置里写了什么可以直接打开 tessdata/configs/ 目录下的同名文件内容就是若干行tessedit_char_whitelist这类参数。三连验证version、英文、中文这一节解决到底装没装对的问题。三道关按顺序过全部通过才算部署完成。第一关版本检查。tesseract --version预期输出形如开头终局一节的版本号 leptonica 一行能打印出来就说明二进制和动态库都找对了。第二关英文识别。用text2image或直接拿一张现成英文图test.pngtesseract test.png out cat out.txt预期out.txt里出现与图片一致的文字无乱码、无大量错词。第三关中文识别并输出 PDF。先造一张中文测试图convert是 ImageMagick 命令再识别成 PDFconvert -size 400x100 -font cjk-l Song_SIM \ -pointsize 40 Tesseract编译部署测试 zh.png tesseract zh.png zh pdf pdftotext zh.pdf - | cat第一组命令用系统中文字体渲染一张中文图片第二组识别并输出zh.pdf第三组从 PDF 里抽出文字。预期能完整读回Tesseract 编译部署测试即说明中文语言包和 PDF 渲染链路全部打通。报错急救箱三段式速查 这一节解决翻车了去哪查的问题。只给最小解法。现象一编译报 Leptonica not found现象configure或cmake阶段提示找不到 leptonica。原因只装了 leptonica 运行库没装开发包头文件和.so链接桩。解决sudo apt-get install libleptonica-dev现象二运行报 Error opening data file现象tesseract 图 输出时报错原文就是Error opening data file …并提示检查TESSDATA_PREFIX报错源码在 src/ccmain/tessedit.cpp。原因语言包目录没设置或目录里没有对应的.traineddata文件。解决echo $TESSDATA_PREFIX # 应为空说明没设置 ls $TESSDATA_PREFIX # 确认里面有 eng.traineddata按上一节的办法重新export即可。现象三中文识别结果乱码或缺字现象默认语言下识别中文输出是空格或乱码。原因没指定语言Tesseract 默认只用英文模型eng。解决tesseract 图 输出 -l chi_simeng-l后跟语言组合号表示中英文混合识别。下一步清单部署完成只是起点按这个顺序继续走API 集成把命令行包一层或用 C/Python APIbaseapi.h即include/tesseract/baseapi.h在程序里直接调用引擎。自定义训练数据用仓库自带的lstmtraining等训练工具针对你的业务字体和数据重新训练语言包提升垂直场景准确率。OpenCV 图像预处理识别前做去噪、倾斜矫正、二值化往往比换模型更能立竿见影。【免费下载链接】tesseractTesseract Open Source OCR Engine (main repository)项目地址: https://gitcode.com/GitHub_Trending/te/tesseract创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表