目录
一、PaddleOCR
二、Tesseract
三、PyMuPDF
一、PaddleOCR
步骤:
1.安装PaddleOCR
2.准备pdf文件
3.将pdf转为图片,在对图片提取文字
安装:
1.安装PaddleOCR
pip install "paddleocr>=2.0.1"
2.安装paddlepaddle
pip install paddlepaddle
安装不了,目前paddlepaddle不支持arm64架构
安装指南-使用文档-PaddlePaddle深度学习平台
二、Tesseract
1.安装依赖
> yum install autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel make
报错,没限权。改为pip,报错。原因:libjpeg-devel
、libpng-devel
、libtiff-devel
和 zlib-devel
这些包通常是系统软件包管理器(如 yum)提供的,而不是通过 Python 包管理器(如 pip)安装的。它们是用于开发和编译过程中的依赖库,不是 Python 包。
2.安装依赖的Leptonica库
wget https://github.com/DanBloomberg/leptonica/releases/download/1.80.0/leptonica-1.80.0.tar.gz
tar -xzvf leptonica-1.80.0.tar.gz
cd leptonica-1.80.0
./configure --prefix=/home/tess4j/leptonica-1.80.0 && make && make install
3,将 Leptonica加入环境变量
vim /etc/profile
插入
export LD_LIBRARY_PATH=$LD_LIBRARY_PAYT:/home/tess4j/leptonica-1.80.0/lib
export LIBLEPT_HEADERSDIR=/home/tess4j/leptonica-1.80.0/include
export PKG_CONFIG_PATH=/home/tess4j/leptonica-1.80.0/lib/pkgconfig
退出后让配置生效
source /etc/profile
4.安装Tesseract-OCR
wget https://github.com/tesseract-ocr/tesseract/archive/refs/tags/4.1.1.tar.gz
重名名下压缩包
mv 4.1.1.tar.gz tesseract-4.1.1.tar.gz
tar -xzvf tesseract-4.1.1.tar.gz
cd tesseract-4.1.1/
./autogen.sh
./configure --prefix=/home/tess4j/tesseract-4.1.1 && make && make install
sudo ldconfig
5.配置Tesseract环境变量
vim /etc/profile
PATH=$PATH:/home/tess4j/tesseract-4.1.1/bin
export PATH
export TESSDATA_PREFIX=/home/temp/tessData ##注意:该位置是训练库所在文件目录
export PATH=$PATH:$TESSDATA_PREFIX
source /etc/profile
6.测试安装是否成功
tesseract --version
7.测试
识别图片命令
tesseract 567.png outputteee -l chi_sim+eng
参数说明
tesseract = 命令
567.png=当前目录文件
outputteee=会在当前目录生成outputteee.txt文件
-l chi_sim+eng=中文+英文,如果是单个语言-l chi_sim就可以了
参考:
Linux 最全安装Tesseract_linux安装tesseract-CSDN博客
三、PyMuPDF
1.安装PyMuPDF
pip install pymupdf
2.pdf转txt样例
import os
import datetime
import fitz # fitz就是pip install PyMuPDF
def pyMuPDF_fitz(pdfPath):
startTime_pdf2img = datetime.datetime.now() # 开始时间
text_list = []
pdfDoc = fitz.open(pdfPath)
for page in pdfDoc:
text = page.get_text()
text_list.append(text)
text_list = "\n".join(text_list)
try:
with open("/home/bingxing2/ailab/group/ai4agr/wzf/LLM/txt/test.txt", 'a+') as neirong:
neirong.write(text_list)
except IOError as e:
print("An error occurred while writing the file:", e)
endTime_pdf2img = datetime.datetime.now() # 结束时间
print('pdf2img时间=', (endTime_pdf2img - startTime_pdf2img).seconds)
def process_all_pdfs_in_directory(directory):
for filename in os.listdir(directory):
if filename.endswith('.pdf'):
pdf_path = os.path.join(directory, filename)
pyMuPDF_fitz(pdf_path)
if __name__ == "__main__":
# 指定PDF所在的目录
pdf_directory = r'/home/bingxing2/ailab/group/ai4agr/wzf/LLM/pdf/'
process_all_pdfs_in_directory(pdf_directory)
注:
pymupdf不能直接提取表格,要使用pdfplumber来实现
提取图片使用img=page.getImageList()
参考:
PaddleOCR—图片文字识别提取—快速使用教程_paddleocr使用教程-CSDN博客
Paddlepaddle-GPU版本安装_paddlepaddle-gpu 安装版本-CSDN博客
paddle实现获取pdf的内容_paddleocr识别pdf-CSDN博客
PaddleOCR详解和识别图片中文字_paddle ocr-CSDN博客
Python 实现 PDF 文件转换为图片 / PaddleOCR_python ptf 转图片-CSDN博客
【paddle-gpu2.5版本安装踩坑记录】_paddle2.5-CSDN博客