llm_aided_ocr适配昇腾开源验证任务心得
llm_aided_ocr适配昇腾开源验证任务心得
首先看了一下任务计划书:https://bbs.huaweicloud.com/blogs/437820,主要目的是将 llm_aided_ocr项目适配至华为的 Ascend(昇腾)处理器,确保其在这硬件平台上的高效运行,也就是说验证llm_aided_ocr能不能在 Ascend(昇腾)处理器中运行。
介绍
Llm_aided_ocr是一个基于LLM的OCR扫描PDF开源工具,旨在通过利用多模态大语言模型(LLM)将原始的OCR扫描PDF文本转换成高准确度、格式正确且易于阅读的Markdown文档。首先将PDF文件转图像,进行OCR扫描处理提取文本,再利用本地LLM或API(如OpenAI)纠正OCR错误,最后转换成高准确度、高质量的Markdown文本。
开发过程
明确目的后开始熟悉模型,llm_aided_ocr的github网址:https://github.com/Dicklesworthstone/llm_aided_ocr。
llm_aided_ocr项目的使用:参考GitHub项目说明及本开发过程说明
Python版本需要指定为3.12,
pip install -r requirements.txt
安装Tesseract OCR引擎,设置.env(根据实际情况提供API秘钥,我使用的是OpenAI)。
在安装Tesseract OCR引擎时可能会遇到错误,需要本地源码编译安装。它还依赖其他的库(Leptonica库、libcurl库),需要一起编译安装。
1.安装编译工具和依赖库:
sudo yum groupinstall "Development Tools"
sudo yum install gcc gcc-c++ autoconf automake libtool make
sudo yum install libpng-devel libjpeg-devel
2.下载Tesseract源代码:
wget https://github.com/tesseract-ocr/tesseract/archive/4.1.1.tar.gz
tar -xzf 4.1.1.tar.gz
cd tesseract-4.1.1
3.编译安装Tesseract(先编译安装Leptonica和libcurl再运行以下安装命令):
./autogen.sh
./configure
make
sudo make install
从源代码编译Leptonica和libcurl
编译安装Leptonica:
wget http://leptonica.org/source/leptonica-1.81.1.tar.gz
tar -xzf leptonica-1.81.1.tar.gz
cd leptonica-1.81.1
./configure
make
sudo make install
编译安装libcurl:
wget https://curl.se/download/curl-7.82.0.tar.gz
tar -xzf curl-7.82.0.tar.gz
cd curl-7.82.0
./configure
make
sudo make install
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
4.设置.env
USE_LOCAL_LLM=False
API_PROVIDER=OPENAI
OPENAI_API_KEY=your_openai_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
自行获取openai_api_key
5、运行脚本
环境配置好后运行脚本文件:python llm_aided_ocr-02.py
我还修改了输入的PDF文件,看是否还能运行成功,确保不仅仅是只有GitHub项目中的PDF文件能识别转换成功,结果是可以识别其他的PDF文件并转换成功的。
在NPU运行项目
(1)安装依赖包
使用NPU推理模型需要安装pytorch、CANN和torch_npu,
先安装CANN,参考:https://www.hiascend.com/zh/developer/download/community/result?module=cann。
torch_npu的安装参考:https://github.com/Ascend/pytorch/blob/master/README.zh.md。
其他的库参照开发过程安装。
(2)获取代码:
首先下载GitHub上的项目代码(git clone https://github.com/Dicklesworthstone/llm_aided_ocr)。
我参考项目中的llm_aided_ocr.py文件在此基础上修改代码至运行成功,代码已提交至gitcode项目(https://gitcode.com/m0_56308334/llm_aided_ocr/overview)。之后获取gitcode项目中的代码,参考此项目说明运行。
(3)涉及修改的部分
将从gitcode下载的llm_aided_ocr-02.py打开,可修改以下图片的地址,修改为您存放PDF文件目录的路径。
调用的参数修改:
模型可修改为其他的:
1 测试结果
1.1 Npu运行
运行程序前
运行程序后
运行命令:
可以看到文档被分为了6个部分调用openai处理;
运行成功后输出:
利用API(如OpenAI)纠正OCR错误,转换成的Markdown文本显示:
我使用了另一个英语文献进行测试,以下是英语文献原来的样式:
运行脚本前后输出:
打开.md文件查看:
- 点赞
- 收藏
- 关注作者
评论(0)