# PaddleOCR ## Installation Guide 官方網站:[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)、[CUDA Doucument](https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-versions-714-721) 1.安裝 [CUDA 10.2](https://developer.nvidia.com/cuda-10.2-download-archive) * 需要 [Visual Studio C++套件](https://pydatascience.gitbooks.io/pythondeeplearning/content/an-zhuang-nvidia-cuda-ji-cudnn.html) 2.下載(需要註冊)安裝 [CUDNN 7.6+(GPU)](https://pydatascience.gitbooks.io/pythondeeplearning/content/an-zhuang-cudnn.html) * 覆蓋 CUDA 資料夾並<font color="#f00">將路徑加入環境變數 Path</font> (參考網頁中範例),並重新開機 * cmd 輸入 nvcc --version 檢查 **(封裝後執行環境到此結束)** 3.根據 CUDA 版本,安裝(pip) [PaddlePaddle 2.0](https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/windows-pip.html) `pip install paddlepaddle-gpu==2.0.2 -i https://mirror.baidu.com/pypi/simple` * 加入環境變數 Path (example) `.\p38\Lib\site-packages\paddle\include\paddle\fluid\platform\dynload` * 查看 path : `import paddle` , `paddle.__path__` 4.使用 [Github](https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.1/doc/doc_ch/installation.md) 內的 requirements.txt 進行安裝 `pip3 install -r requirements.txt` 5.Python 輸入 `import paddle` ,再輸入 `paddle.utils.run_check()`,確認是否安裝成功 * 若出現 `geos_c.dll missing` ,輸入 `pip uninstall Shapely` * 手動安裝 [Shapely](https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely),example : `pip install Shapely‑1.7.1‑cp38‑cp38‑win_amd64.whl` ## CUDA Toolkit and Minimum Required Compatible Driver Versions CUDA Toolkit Linux x86_64 Required Driver Version CUDA 11.3 >= 450.80.02 CUDA 11.2 >= 450.80.02 CUDA 11.1 (11.1.0) >= 450.80.02 CUDA 11.0 (11.0.3) >= 450.36.06 CUDA 10.2 (10.2.89) >= 440.33 CUDA 10.1 (10.1.105) >= 418.39 CUDA 10.0 (10.0.130) >= 410.48 CUDA 9.2 (9.2.88) >= 396.26 CUDA 9.1 (9.1.85) >= 390.46 CUDA 9.0 (9.0.76) >= 384.81 CUDA 8.0 (8.0.61 GA2) >= 375.26 CUDA 8.0 (8.0.44) >= 367.48 CUDA 7.5 (7.5.16) >= 352.31 CUDA 7.0 (7.0.28) >= 346.46 ## Sample Code ``` from paddleocr import PaddleOCR import cv2 import numpy as np # 同样也是通过修改 lang 参数切换语种 ocr = PaddleOCR(lang="ch") # 首次执行会自动下载模型文件 img_path = r'D:\PaddleOCR\image\init.bmp' img = cv2.imread(img_path) result = ocr.ocr(img) for i in range(len(result)): pts = np.array([result[i][0]], np.int32) pts = pts.reshape((-1,1,2)) cv2.polylines(img,[pts],True,(0,255,0)) cv2.putText(img, result[i][1][0], (int(result[i][0][3][0]), int(result[i][0][3][1])), cv2.FONT_HERSHEY_DUPLEX, 0.5, (0, 0, 255), 1, cv2.LINE_AA) cv2.imshow("img",img) cv2.waitKey(0) ``` ## 參數 Namespace( cls_batch_num=6, cls_image_shape='3, 48, 192', cls_model_dir='C:\\Users\\A00613/.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=1.6, det_east_cover_thresh=0.1, det_east_nms_thresh=0.2, det_east_score_thresh=0.8, det_limit_side_len=960, det_limit_type='max', det_model_dir='C:\\Users\\A00613/.paddleocr/2.1\\det\\en', drop_score=0.5, enable_mkldnn=False, gpu_mem=8000, image_dir='', ir_optim=True, label_list=['0', '180'], lang='en', max_text_length=25, rec=True, rec_algorithm='CRNN', rec_batch_num=6, rec_char_dict_path='./ppocr/utils/en_dict.txt', rec_char_type='ch', rec_image_shape='3, 32, 320', rec_model_dir='C:\\Users\\A00613/.paddleocr/2.1\\rec\\en', use_angle_cls=False, use_dilation=False, use_gpu=True, use_pdserving=False, use_space_char=True, use_tensorrt=False, use_zero_copy_run=False) ## Pyinstaller 封裝 ``` pyinstaller --noconfirm --onedir --console --specpath "C:/Paddle/spec" --distpath "C:/Paddle/dist" --workpath "C:/Paddle/build" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/paddle;paddle/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/decorator-4.4.2.dist-info;decorator-4.4.2.dist-info/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/decorator.py;." --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/google;google/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/setuptools;setuptools/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/setuptools-49.2.1.dist-info;setuptools-49.2.1.dist-info/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/gast;gast/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/gast-0.3.3.dist-info;gast-0.3.3.dist-info/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/astor;astor/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/astor-0.8.1.dist-info;astor-0.8.1.dist-info/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/PIL;PIL/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/imgaug;imgaug/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/imgaug-0.4.0.dist-info;imgaug-0.4.0.dist-info/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/imageio;imageio/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/imageio-2.9.0.dist-info;imageio-2.9.0.dist-info/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/skimage;skimage/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/scipy;scipy/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/scipy-1.6.3.dist-info;scipy-1.6.3.dist-info/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/pywt;pywt/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/pyclipper-1.2.1.dist-info;pyclipper-1.2.1.dist-info/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/pyclipper.cp38-win_amd64.pyd;." --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/shapely;shapely/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/Shapely-1.7.1.dist-info;Shapely-1.7.1.dist-info/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/lmdb;lmdb/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/lmdb-1.2.1.dist-info;lmdb-1.2.1.dist-info/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/paddleocr/tools;tools/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/site-packages/paddleocr;paddleocr/" --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/timeit.py;." --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/imghdr.py;." --add-data "C:/Users/A00613/AppData/Local/Programs/Python/Python38/Lib/distutils;distutils/" --add-data "C:/Users/A00613/Desktop/PaddleOCR-release-2.1/ppocr;ppocr/" "C:/Users/A00613/Desktop/PaddleOCR-release-2.1/PaddleOCR_Base.py" ```