您的当前位置:首页 > 热点 > 告别「复制+粘贴」,基于深度学习的OCR,实现PDF转文本 正文
时间:2026-11-15 来源:网络整理 编辑:热点
谷歌快排【tg:seogoogle987】
传统的讲座通常伴随着一组 pdf 幻灯片。一般来说,想要对此类讲座做笔记,需要从 pdf 复制、粘贴很多内容。
最近,来自 K1 Digital 的高级机器学习工程师 Lucas Soares 一直在尝试通过使用 OCR(光学字符识别)自动转录 pdf 幻灯片,以便直接在 markdown 文件中操作它们的内容,从而避免手动复制和粘贴 pdf 内容,实现这一过程的自动化。
左为项目作者 Lucas Soares。
项目地址:https://github.com/EnkrateiaLucca/ocr_for_transcribing_pdf_slides
为什么不使用传统的 pdf 转文本工具呢?
Lucas Soares 发现传统工具往往会带来更多的问题,需要告别花时间解决。他曾经尝试使用传统的 Python 软件包,但是遇到了很多问题(例如必须使用复杂的正则表达式模式解析最终输出等),因此决定尝试使用目标检测和 OCR 来解决。
基本过程可分为以下步骤:
将 pdf 转换为图片; 检测和识别图像中的文本; 展示示例输出。
基于深度学习的 OCR 将 pdf 转录为文本
将 pdf 转换为图像
Soares 使用的 pdf 幻灯片来自于 David Silver 的增强学习(参见以下 pdf 幻灯片地址)。使用「pdf2image」包将每张幻灯片转换为 png 图像格式。
pdf 幻灯片示例。
地址:https://www.davidsilver.uk/wp-content/uploads/2020/03/intro_R「复L.pdf
代码如下:
from pdf2image import convert_from_path from pdf2image.exceptions import ( PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError ) pdf_path = "path/to/file/intro_RL_Lecture1.pdf" images&制+nbsp;= convert_from_path(pdf_path) for i, image in enumerate(images): fname = "image" + str(i) + ".png" image.save(fname, "PNG")
经过处理后,所有的 pdf 幻灯片都转换成 png 格式的图像:
检测和识别图像中的文本
为了检测和识别 png 图粘贴像中的文本,Soares 使用 ocr.pytorch 库中的文本检测器。按照说明下载模型并将模型保存在 checkpoints 文件夹中。
ocr.pytorch 库地址:https://github.com/courao/ocr.pytorch
代码如下:
# adapted from this source: https://github.com/courao/ocr.pytorch %load_ext autoreload %autoreload 2 import os from&nbs」,p;ocr import ocr import time import shutil import numpy as np import pathlib from PIL import Image from glob import glob import matplotlib.pyplot as plt import seaborn as&nb基于sp;sns sns.set() import pytesseract def single_pic_proc(image_file): image = np.array(Image.open(image_file).convert('RGB')) result, image_framed = ocr(image) return&深度nbsp;result,image_framed image_files = glob('./input_images/*.*') result_dir = './output_images_with_boxes/' # If the output folder exists we will remove it and redo it. if os.path.exists(res学习ult_dir): shutil.rmtree(result_dir) os.mkdir(result_dir) for image_file in sorted(image_files): result, image_framed = single_pic_proc(image_file) # detecting and recognizing th的Oe text filename = pathlib.Path(image_file).name output_file = os.path.join(result_dir, image_file.split('/')[-1]) txt_file = os.path.join(result_dir, image_file.split('/')[-1].sCRplit('.')[0]+'.txt') txt_f = open(txt_file, 'w') Image.fromarray(image_framed).save(output_file) for key in result: txt_f.write(result[key][,实1]+' ') txt_f.close()
设置输入和输出文件夹,接着遍历所有输入图像(转换后的 pdf 幻灯片),然后通过 single_pic_proc() 函数运行 OCR 模块中的检测和识别模型,最后将输出保存到输出文件夹。
其中检测继承(inherit)了 Pytorch CTPN 模型,识别继承了 Pytorch CRNN 模型,两者都存在于 OCR 模块中。
示例输出
代码如下:
import cv2 as cv output_dir = pathlib.Path("./output_im现Pages_with_boxes") # image = cv.imread(str(np.random.choice(list(output_dir.iterdir()),1)[0])) image = cv.imread(f"{output_dir}/image7.png") size_reshaped = (int(image.shape[1]),int(image.shape[0])) image = cv.resize(image, sizDFe_reshaped) cv.imshow("image", image) cv.waitKey(0) cv.destroyAllWindows()
下图左为原始 pdf 幻灯片,图右为转录后的输出文本,转录后的准确率非常高。
文本识别输出如下:
filename = f"{output_dir}/image7.txt" with open(filename, "r") as text: for line 转文;in text.readlines(): print(line.strip(" "))
通过上述方法,最终你可以得到一个非常强大的工具来转录各种文档,从检测和识别手写笔记到检测和识别照片中的随机文本。拥有自己的 OCR 工具来处理一些文本内容,这比依赖外部软件来转录文档要好的多。
谷歌开盘涨超4% 一季度营收、净利润超预期2026-08-09
标签: 可灵AI 可灵视频3.0 可灵图片3.0 AI影视生成2026-06-21
标签: 理想汽车 MEGA 广州地铁 T12026-07-24
推特CEO第一条推文拍出290万美元上热搜 网友:什么都能卖啊2026-07-08
OpenAI 宣布印度用户可享受一年免费 ChatGPT Go 服务2026-06-29
标签: 神龙汽车2026-11-03
亚马逊AWS新任CEO面临挑战:内部官僚主义、形式主义泛滥2026-08-22
云安全日报220211:红帽云计算应用平台发现操作系统命令执行漏洞,需要尽快升级2026-11-04
特斯拉:已在中国建立数据中心 中国大陆市场销售车辆数据将存储在境内2026-09-03
阿里云设立国际能力中心 升级海外技术及服务能力2026-06-27
国际权威大奖GCAs揭晓 秦淮数据包揽数据中心类两项大奖2026-06-03
标签: Rokid 春秋航空 智能眼镜 隐私保护2026-08-25
因窃取Facebook数据 9款热门Android应用遭谷歌下架2026-06-15
标签: 上海医药 中药业务 罕见病防治 CAR-T2026-08-31
Perplexity 成功融资 2 亿美元,估值飙升至 200 亿美元2026-05-23
标签: 红熊AI 温德亮 企业级AI 记忆科学2026-06-11
神秘AI换脸软件入侵全球社交网络!马斯克秒变文艺复兴贵族2026-08-15