ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

给扫描 PDF 补上可搜索文字层:OCRmyPDF 多语言 OCR 配置(3 条命令快速上手)

给扫描 PDF 补上可搜索文字层:OCRmyPDF 多语言 OCR 配置(3 条命令快速上手) 给扫描 PDF 补上可搜索文字层OCRmyPDF 多语言 OCR 配置3 条命令快速上手【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDFOCRmyPDF 基于 Tesseract 给扫描版 PDF 添加可搜索文字层但默认只识别英语中文、日文、韩文要先装语言包。财务丢来一批扫描发票CtrlF 搜合计没反应——就是缺文字层。下面 3 条命令跑通 OCRmyPDF 多语言 OCR之后按症状调参。 先跑通从装语言包到第一次识别查 Tesseract 版本与语言包先在终端确认两件事Tesseract 版本、已装哪些语言。tesseract --version tesseract --list-langsOCRmyPDF 要求 Tesseract ≥ 4.1.1且明确不支持 5.4.0该版本有回归问题会直接拒绝运行。--list-langs的输出就是已装语言包全新安装通常只有eng和osd。语言包是.traineddata模型文件除了英语其他语言都得单独装。按系统安装语言包各平台装法不同Debian/Ubuntu 一条 apt 命令就够其余见表apt-cache search tesseract-ocr # 列出可安装的语言包 apt-get install tesseract-ocr-chi-sim # 装中文简体系统安装中文简体的做法Debian/Ubuntuapt-get install tesseract-ocr-chi-simFedora/RHELdnf install tesseract-langpack-chi_simmacOSbrew install tesseract --all-languages一次性装全语言包Windows下载chi_sim.traineddata放进C:\Program Files\Tesseract-OCR\tessdata\Docker基于官方镜像扩展见下方Docker 用户写一个派生镜像就行FROM jbarlow83/ocrmypdf RUN apt-get update apt-get install -y tesseract-ocr-chi-sim装完再跑一次tesseract --list-langs列表里出现chi_sim就算到位。跑第一条中文 OCR 命令用 CtrlF 验证对一张扫描发票执行中文识别ocrmypdf -l chi_sim invoice.pdf invoice_ocr.pdf打开输出文件CtrlF 搜合计能高亮命中就成了。个别字识别偏差不用慌属于正常水平下一节讲怎么压下去。语言代码怎么读ISO 639-2 对照Tesseract 用 ISO 639-2 Alpha-3 三字母代码标识语言-l参数填的就是它。语言代码说明英语eng默认启用中文简体chi_sim别写 zh 或 cn中文繁体chi_tra繁体文档用这个日文横排jpn常规讲义、手册日文竖排jpn_vert竖排版面专用韩文kor混排文档用拼多个代码如-l chi_simjpneng。不指定-l时默认英语一旦指定了其他语言记得把eng也带上否则英文部分会漏。部分语言还有特殊变体包jpn_vert就是一个遇到旧字体或特殊版式时留意有没有对应包。 识别不准按症状 → 参数调优别一次全开参数先对症状再动一个。四个常用方向如下tesseract_ocr.py 源码 里能找到每个参数的完整定义。症状参数一行命令分块错乱、段落被截--tesseract-pagesegmode 3默认/6/11ocrmypdf -l chi_sim --tesseract-pagesegmode 6 a.pdf b.pdf中文识别率低--tesseract-oem 1LSTM 引擎ocrmypdf -l chi_sim --tesseract-oem 1 a.pdf b.pdf背景不均、有灰斑--tesseract-thresholding adaptive-otsuocrmypdf -l chi_sim --tesseract-thresholding adaptive-otsu a.pdf b.pdf整体对比度低、字发灰--tesseract-thresholding sauvolaocrmypdf -l chi_sim --tesseract-thresholding sauvola a.pdf b.pdf大图卡住、超时无文字层--tesseract-downsample-large-imagesocrmypdf -l chi_sim --tesseract-downsample-large-images a.pdf b.pdf版面切分PSM3 是全自动常规多段落文档直接用6 假设整页是一个统一文本块适合单栏扫描件11 保留原文位置适合插图多的讲义。识别引擎OEMTesseract 4 带 LSTM 神经网络引擎1 为纯 LSTM日常中文文档优先选它0 是旧引擎2 混合3 自动。阈值处理仅 Tesseract 5.0 生效。默认 otsu传统 Otsu 二值化够用的就别动背景深浅不均换 adaptive-otsu整体对比度低用 sauvola基于局部标准差。大图处理Tesseract 单边上限 32767 像素。OCRmyPDF 默认会先下采样再送识别特别大的页面若仍超时显式加这个参数并配合更大的--tesseract-timeout。踩坑排查报错与修复现象报Language zh not found一类语言不可用。原因语言代码写错zh、cn都不是有效代码Tesseract 只认 ISO 639-2 三字母码。修复以语言列表为准中文简体是chi_simtesseract --list-langs现象竖排日文整页乱序、字符错位。原因拿横排包jpn处理竖排版面PSM 也没匹配。修复ocrmypdf -l jpn_vert --tesseract-pagesegmode 5 lecture.pdf out.pdf现象启动即报Tesseract 5.4.0 is not supported。原因5.4.0 存在回归问题OCRmyPDF 拒绝该版本。修复升级到更新的 5.x或换受支持的旧版再用tesseract --version确认。现象超大扫描页长时间无输出最终没有文字层。原因图像单边超过 32767 像素或识别耗时超出 timeout默认 180 秒。修复ocrmypdf -l chi_sim --tesseract-downsample-large-images --tesseract-timeout 600 a.pdf b.pdf进阶用户词典与自定义模型专有名词老被认错的加一份用户词典UTF-8 纯文本、每行一个词用--user-words指过去。echo 增值税专用发票 words.txt ocrmypdf -l chi_sim --user-words words.txt a.pdf b.pdf极端情况罕见语言、特殊字体才考虑自训模型jTessBoxEditor 框样本 →tesstrain.sh训练出.traineddata→ 放进 tessdata 目录 → 用-l customlang调用。四步走完模型即插即用。速查表按场景抄作业场景直接复制的参数组合常规中文文档-l chi_sim --tesseract-oem 1中日混排讲义-l chi_simjpneng --tesseract-pagesegmode 3竖排日文-l jpn_vert --tesseract-pagesegmode 5韩文手册含英文-l koreng --tesseract-oem 1低质量扫描件背景不均、图大--tesseract-thresholding adaptive-otsu --tesseract-downsample-large-images --tesseract-timeout 600先照速查表跑哪个症状没消再回来对参数调。更多语言包与平台细节见 docs/languages.md。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表