anaconda3+ paddleOCR安装使用

老实说,官网文档有点云山雾罩。

windows下又不让用nvidia-docker,只好anaconda的方式装

综合

https://www.paddlepaddle.org.cn/install/quick

https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/installation_en.md

 

配置conda 国内镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
conda config --set show_channel_urls yes

 

1 建立3.7虚环境

conda create --name paddle python=3.7
activate paddle

一定要有版本

2 安装 paddlepaddle-gpu 2.0.0版

只能用pip从百度的镜像里安装,conda和公网的pypi都没有这个版本

百度的镜像里只有2.0.0a0, docker版才有2.0.0b0

python -m pip install paddlepaddle-gpu==2.0.0a0 -i https://mirror.baidu.com/pypi/simple

3.7下只有 2.0.0a0 

 

3 paddleOCR

3.1 下载源码,安装依赖

git clone https://gitee.com/paddlepaddle/PaddleOCR
cd PaddleOCR
pip install -r requirments.txt

3.2 手动下载安装shapely

https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely

3.3 手动解改名、解压缩、复制dll!

https://github.com/PaddlePaddle/PaddleOCR/issues/212

从您提供的网址下载了 Shapely-1.7.0-cp39-cp39-win_amd64.whl,pip install 此whl文件不成功。

于是更名为Shapely-1.7.0-cp39-cp39-win_amd64.rar,

然后解压缩,从其子目录shapely\DLLs\中找到geos_c.dll,并将geos_c.dll拷贝到conda的环境(我的命名是ocr)目录 C:\Users\myusername\Miniconda3\envs\ocr\Library\bin中。问题解决。

 

3.4 修改PaddleOCR/paddleocr.py

然后参考

https://github.com/PaddlePaddle/PaddleOCR/issues/832

在PaddleOCR/paddleocr.py中,找到def parse_args():

在下面加入下面这行

parser.add_argument("--use_pdserving", type=bool, default=False)

 

否则后面运行会报错

 

Namespace(cls=False, cls_batch_num=30, cls_image_shape='3, 48, 192', cls_model_dir='C:\\Users\\xuqinghan/.paddleocr/cls', cls_thresh=0.9, det=True, det_algorithm='DB', det_db_box_thresh=0.5, det_db_thresh=0.3, det_db_unclip_ratio=2.0, det_east_cover_thresh=0.1, det_east_nms_thresh=0.2, det_east_score_thresh=0.8, det_max_side_len=960, det_model_dir='C:\\Users\\xuqinghan/.paddleocr/det', enable_mkldnn=False, gpu_mem=8000, image_dir=None, ir_optim=True, label_list=['0', '180'], lang='ch', max_text_length=25, rec=True, rec_algorithm='CRNN', rec_batch_num=30, rec_char_dict_path='./ppocr/utils/ppocr_keys_v1.txt', rec_char_type='ch', rec_image_shape='3, 32, 320', rec_model_dir='C:\\Users\\xuqinghan/.paddleocr/rec/ch', use_angle_cls=False, use_gpu=True, use_space_char=True, use_tensorrt=False, use_zero_copy_run=False)
Traceback (most recent call last):
File "D:\dev\chem\chart-nmr-spectrum\test_paddle_ocr.py", line 10, in <module>
ocr = PaddleOCR() # need to run only once to download and load model into memory
File "D:\Users\xuqinghan\anaconda3\envs\paddle\lib\site-packages\paddleocr-1.0.0-py3.7.egg\paddleocr\paddleocr.py", line 222, in __init__
super().__init__(postprocess_params)
File "D:\Users\xuqinghan\anaconda3\envs\paddle\lib\site-packages\paddleocr-1.0.0-py3.7.egg\paddleocr\tools\infer\predict_system.py", line 41, in __init__
self.text_detector = predict_det.TextDetector(args)
File "D:\Users\xuqinghan\anaconda3\envs\paddle\lib\site-packages\paddleocr-1.0.0-py3.7.egg\paddleocr\tools\infer\predict_det.py", line 77, in __init__
if args.use_pdserving is False:
AttributeError: 'Namespace' object has no attribute 'use_pdserving'

3.5 安装

cd PaddleOCR
python setup.py install

 

最终 运行个demo 应该不会报错了

import os
from paddleocr import PaddleOCR, draw_ocr

if __name__ == '__main__':

    PATH_IMG_IN = './in'
    filename = os.path.join(PATH_IMG_IN, '1.png')

    ocr = PaddleOCR() # need to run only once to download and load model into memory
    start = time.perf_counter()
    result = ocr.ocr(filename, rec=False)
    end = time.perf_counter()
    print('检测文字区域 耗时{}'.format(end-start))
    #每个矩形,从左上角顺时针排列

    for rect1 in rects:
        print(rect1)

 

 

小结:

       文档混乱,安装过程到处是坑。但是看在效果还凑合的份上,凑合用吧

posted @ 2020-10-19 15:58  永远的幻想  阅读(8112)  评论(0编辑  收藏  举报