pycharm中配置paddleocr记录
一、环境及电脑配置
1.python3
2.pycharm
3.ubntu20
4.gpu-cuda11.1-cudnn
二、下载代码
1.链接:https://github.com/PaddlePaddle/PaddleOCR
2.解压
unzip PaddleOCR-release-2.4.zip
三、pycharm中配置环境
1.根据requirements.txt建立虚拟环境
之后该路径中就是paddleocr的环境了。也可以pycharm中创建虚拟环境后,使用指令:
pip install -r requirements.txt
注意:如果是没有安装paddle的话,提前安装paddle。安装指令在该网址查询:https://www.paddlepaddle.org.cn/
环境配置基本到此结束!
四、测试模型
1.下载模型
模型下载
下载结束后解压模型
tar -xvf ch_ppocr_mobile_v2.0_cls_infer.tar
tar -xvf ch_PP-OCRv2_det_infer.tar
tar -xvf ch_PP-OCRv2_rec_infer.tar
在paddleocr文件夹下新建models文件夹,并将解压后的模型放置在models文件夹中。
2.开始测试
快速开始
接下来就是跟着上面的链接走了。下面主要记录一下遇到的问题
1.使用paddleocr --image_dir ./ppocr_img/imgs/11.jpg --use_angle_cls true --use_gpu false时会继续下载上面的模型文件。
下载后的模型,需要在ubuntu主目录下按"ctrl+h",显示隐藏文件。即可找到“.paddleocr”文件夹,自动下载后的模型也放置在这里。
能输出结果就是测试通过了
3.脚本调用
这个也是参考上述的官网教程,同样的只记录问题。
在paddleocr文件夹下新建脚本,写入下面的脚本即可。
官网的中英文与多语言使用脚本如下:
from paddleocr import PaddleOCR, draw_ocr
# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
ocr = PaddleOCR(use_angle_cls=True, lang="ch") # need to run only once to download and load model into memory
img_path = './imgs/11.jpg'
result = ocr.ocr(img_path, cls=True)
for line in result:
print(line)
# 显示结果
from PIL import Image
image = Image.open(img_path).convert('RGB')
boxes = [line[0] for line in result]
txts = [line[1][0] for line in result]
scores = [line[1][1] for line in result]
im_show = draw_ocr(image, boxes, txts, scores, font_path='./fonts/simfang.ttf')
im_show = Image.fromarray(im_show)
im_show.save('result.jpg')
遇到的问题记录:
1.OSError: cannot open resource
这里需要修改两处:
(1)img_path为自己的测试图像文件
(2)im_show = draw_ocr(image, boxes, txts, scores, font_path=’./fonts/simfang.ttf’)
中ttf文件为字体文件,通过查看draw_ocr实现方法,可以看到 字体文件在doc/fonts文件夹中,故修改为:
im_show = draw_ocr(image, boxes, txts, scores, font_path='./doc/fonts/simfang.ttf')
可视化结果为paddleocr文件夹下的result.jpg。
效果真不错!
官网的版面分析脚本:
import os
import cv2
from paddleocr import PPStructure,draw_structure_result,save_structure_res
table_engine = PPStructure(show_log=True)
save_folder = './output/table'
img_path = './table/paper-image.jpg'
img = cv2.imread(img_path)
result = table_engine(img)
save_structure_res(result, save_folder,os.path.basename(img_path).split('.')[0])
for line in result:
line.pop('img')
print(line)
from PIL import Image
font_path = './fonts/simfang.ttf' # PaddleOCR下提供字体包
image = Image.open(img_path).convert('RGB')
im_show = draw_structure_result(image, result,font_path=font_path)
im_show = Image.fromarray(im_show)
im_show.save('result.jpg')
同样的将:
font_path改为doc/fonts文件夹中的字体。