Shiny 网页应用分享:调用百度表格识别接口从 pdf 或者图片文件中提取表格数据

之前给大家讲解过使用 R 语言对扫描文档进行 OCR 并提取表格数据:

使用 R 语言对扫描文档进行 OCR 并提取表格数据:https://rstata.duanshu.com/#/course/901d3f5adacb46c08be568e134289a79

不过会需要一定的代码基础,最近我基于这个课程里面的代码编写了一个 shiny 网页应用,可以免代码使用了:

该网页应用考虑了三种常见的表格 OCR 需求:

  1. 单个 png 文件;
  2. 单个 pdf 文件;
  3. 多个 pdf 文件。

附件中分别准备了这三种示例文件:

  1. test.png;
  2. 一般预算1-4.pdf;
  3. pdf 文件夹,里面包含 pdf_1.pdf,pdf_2.pdf,pdf_3.pdf,pdf_4.pdf 四个文件。

使用百度大脑的 OCR 接口,即使是这种很粗糙的年鉴表格也可以识别,非常推荐使用。每个月还有 1000 页的免费额度。

获取 API Key 和 Secret Key

使用该网页应用的第一步就是申请自己的 API Key 和 Secret Key,在百度智能云的控制台创建一个应用即可:https://console.bce.baidu.com/ai-engine/ocr/app/list

然后就可以看到 API Key 和 Secret Key 了:

这里我的:

  • API Key = FHY4vgRdoVpW3VEU5Eb8619n
  • Secret Key = 8Pv8EhRUQWLq1tG7BNOFBut8to9nGpGU

大家需要自行申请,不能使用我的。毕竟每个帐号每个月只有 1000 页的免费额度。

启动 shiny 应用

shiny 应用可以在 RStudio 中启动,不过在此之前需要按照所需的 R 包:

install.packages("shiny")
install.packages("shinyjs")
install.packages("httr")
install.packages("jsonlite")
install.packages("pdftools")
install.packages("base64enc")
install.packages("zip")

# shinybulma 需要从附件中的离线文件安装(路径要替换成自己电脑上的)
devtools::install_local("~/Desktop/Shiny 网页应用分享:调用百度表格识别接口从 pdf 或者图片文件中提取表格数据/shinybulma.zip")

都安装成功后就可以启动这个网页应用了:

# 路径需要替换成自己电脑上的
shiny::runApp("~/Desktop/Shiny 网页应用分享:调用百度表格识别接口从 pdf 或者图片文件中提取表格数据/table-ocr-app")

然后就看到的了这个页面:

输入 API Key 和 Secret Key 验证是否有效:

如果有效的话就可以继续了。

该网页应用考虑了三种常见的表格 OCR 需求:

  1. 单个 png 文件;
  2. 单个 pdf 文件;
  3. 多个 pdf 文件。

首先我们尝试下单个 png 文件,上传文件、开始解析、点击下载 xlsx 文件:

即可得到:

readxl::read_xlsx("test.xlsx")

后续还需要自行手动处理下改进结果。

上传含多个表格的 pdf 文件:

会逐页解析。

如果是上传文件夹需要先勾选 以文件夹方式上传,这个时候会循环解析里面的每个文件:

对于解析失败的还会汇报错误原因。非常智能。

最后,如果使用中遇到问题,可以及时联系李老师解决。

仅限会员本人使用,非会员请勿打扰。

点击这里跳转到 RStata 短书平台获取附件:Shiny 网页应用分享:调用百度表格识别接口从 pdf 或者图片文件中提取表格数据

评论