ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

处理超大扫描件:OCRmyPDF 的 Tesseract 大图像降采样 --tesseract-downsample-large-images 配置

处理超大扫描件:OCRmyPDF 的 Tesseract 大图像降采样 --tesseract-downsample-large-images 配置 处理超大扫描件OCRmyPDF 的 Tesseract 大图像降采样 --tesseract-downsample-large-images 配置【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF当扫描件来自超大介质——比如边长超过 110 cm43 英寸的大幅地图、蓝图且扫描 DPI 较高时——页面图像的像素尺寸会超出 Tesseract 的内部限制任一方向 32767 像素。此时若不处理Tesseract 会直接报错该页不会产生任何 OCR 文字即使图像未超限超大图像也可能因处理时间过长而触发超时。OCRmyPDF 用--tesseract-downsample-large-images默认启用在送 OCR 前把图像降采样到 Tesseract 可处理的范围内并用--tesseract-downsample-above允许你进一步收紧降采样阈值以加快 OCR。以下配置项自 v14.1.0 起可用--tesseract-downsample-large-images--tesseract-downsample-above自 v14.2.0 起可用见 版本说明。准备条件按 安装指南 装好 OCRmyPDF 与 Tesseract例如 Debian/Ubuntu 上apt install ocrmypdfFedora 上dnf install ocrmypdf tesseract-osd或brew install ocrmypdf。输入文件为包含超大图像页面的 PDF下文命令中的bigfile.pdf为文档示例文件名替换为你自己的输入与输出文件即可。默认行为--tesseract-downsample-large-images 已启用按 docs/advanced.md 的说明--tesseract-downsample-large-images默认就是开启的只要页面图像超过 Tesseract 的内部限制OCRmyPDF 会自动降采样后再送 OCR使这类超大图像可以被处理。需要注意的边界只有送 OCR 的那份图像会被降采样PDF 中的原始图像保持不变可以用--no-tesseract-downsample-large-images关闭此功能但关闭后超限图像会让 Tesseract 报错、该页无 OCR 输出一般不要关闭文档示例中仍显式写出该参数是为了让命令意图清晰# 允许 OCR 运行 600 秒处理超大图像 ocrmypdf --tesseract-timeout 600 \ --tesseract-downsample-large-images \ bigfile.pdf output.pdf降低降采样阈值--tesseract-downsample-above默认情况下只有超过 Tesseract 内部限制任一方向 32767 像素的图像才会被降采样。如果你希望更早触发降采样来换取速度可以用--tesseract-downsample-above Npixels把阈值调到 10032767 之间的像素值超过该值的图像会被缩放到这个尺寸。文档示例是把最长边超过 5000 像素的图像降到 5000 像素# 将最长边超过 5000 像素的图像降采样到 5000 像素 ocrmypdf --tesseract-timeout 120 \ --tesseract-downsample-large-images \ --tesseract-downsample-above 5000 \ bigfile.pdf output_downsampled_ocr.pdf两条适用说明来自文档与参数帮助文本调低阈值可以加快 OCR但可能牺牲识别精度v14.2.0 发布说明不过在超大图像上最有价值的文字往往字号较大参数帮助文本也指出这一点--tesseract-downsample-above只有在--tesseract-downsample-large-images同时给出时才生效。若你显式关闭了降采样又设置了该阈值OCRmyPDF 会打印告警The --tesseract-downsample-above argument will have no effect unless --tesseract-downsample-large-images is also given.见 tesseract_ocr.py 与 _validation_coordinator.py。必须同步调高超时降采样后图像变小了但文档明确要求处理超大图像时要把--tesseract-timeout设得足够大给处理留出时间。OCRmyPDF 默认每页允许 Tesseract 运行 180 秒对超大图像通常不够。上例中的 600 秒与 120 秒都是文档给出的配置值不是固定预期可按实际硬件与图像大小自行调整。如果不想 OCR 这些大图像而是直接跳过docs/advanced.md 与 docs/performance.md 给出的替代路径是--skip-big自动跳过超过指定兆像素的图像页参考值300 DPI 的 8.5×11 英寸页面约 8.4 兆像素。# 允许 OCR 300 秒跳过任何大于 50 兆像素的页面 ocrmypdf --tesseract-timeout 300 --skip-big 50 bigfile.pdf output.pdf这条路径与降采样是二选一的关系前者牺牲这些页面的 OCR 文字换取整体完成后者保留 OCR 但耗时更长。验证结果文档没有给出固定的成功日志但描述了三种失败形态可据此核对超时页面被跳过按原样若请求了预处理则插入预处理后的图像层插入输出没有 OCR 文字未降采样且超限Tesseract 报错该页无 OCR 输出参数组合错误如前所述设置--tesseract-downsample-above但关闭了--tesseract-downsample-large-images时会打印告警此时阈值不生效。因此成功的判断是处理正常结束原本超限或超时的页面在输出 PDF 中有可选择的文字层且原始图像分辨率未被改动只有送 OCR 的副本被降采样。若发现大页面仍无文字先检查运行日志中是否出现第 2、3 类信息再决定是否进一步调高--tesseract-timeout或改用--skip-big。限制降采样可能降低 OCR 质量这是文档明确声明的代价--tesseract-downsample-above取值范围为 10032767默认 32767超大图像即使降采样后仍可能处理很久v14.1.0 发布说明超时风险依然存在--tesseract-timeout必须留足余量。完整参数说明可参阅 docs/advanced.md 的 OCR for huge images 与 Time and image size limits 小节。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表