You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中设置Tesseract的页面分割方法(PSM)参数

R语言tesseract包设置PSM参数优化表格识别的方法

R环境下的tesseract包支持直接通过options参数传递PSM配置,不需要额外适配,具体使用方式如下:

核心配置方法

PSM参数可以在创建tesseract识别引擎时指定,也可以在调用识别函数时临时传递,两种方式效果一致:

  • 创建自定义识别引擎(适合多次调用同配置的场景):通过tesseract()函数的options参数传入命名列表,键为psm,值为对应的参数数值
  • 临时指定参数(适合单次识别场景):直接在ocr()/ocr_data()函数的options参数中传入PSM配置即可

表格场景推荐PSM值

针对表格类文档,可优先测试以下PSM值,根据自己的文档排版选择效果最优的:

  • psm = 6:假设当前页面为单个统一的文本块,适合排版规整、单元格间隔小的单栏表格
  • psm = 11:稀疏文本模式,不预设文本排版顺序,适合单元格分散、留白多的表格
  • psm = 12:带页面方向检测的稀疏文本模式,适合扫描时存在轻微倾斜的表格文档

完整使用示例

# 加载所需依赖包
library(tesseract)
library(pdftools)

# 1. 先将扫描版PDF转为高分辨率图片,dpi建议设置300及以上
pdf_convert("目标扫描文档.pdf", dpi = 300, format = "png", output_prefix = "temp_pdf_page")

# 2. 创建适配表格的识别引擎,指定PSM参数
table_ocr_engine <- tesseract(
  options = list(
    psm = 11,
    # 若识别中文文档可添加下方配置,需提前安装中文语言包
    # lang = "chi_sim"
  )
)

# 3. 执行识别
# 纯文本识别结果
text_result <- ocr("temp_pdf_page_1.png", engine = table_ocr_engine)
# 带坐标、置信度的结构化识别结果,方便后续提取表格内容
structured_result <- ocr_data("temp_pdf_page_1.png", engine = table_ocr_engine)

优化提示

如果调整PSM后识别效果仍不理想,可先对扫描图片做预处理:比如二值化、去除噪点、修正倾斜角度,再进行OCR识别,能进一步提升表格内容的识别准确率。

内容的提问来源于stack exchange,提问作者RKF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 02:45:04