Python?paddleocr快速使用及參數(shù)配置詳解
其它相關(guān)推薦:
PaddleOCR模型訓(xùn)練及使用詳細教程

官方網(wǎng)址:https://github.com/PaddlePaddle/PaddleOCR
PaddleOCR是基于PaddlePaddle深度學(xué)習(xí)框架的開源OCR工具,但它提供了推理模型/訓(xùn)練模型/預(yù)訓(xùn)練模型,用戶可以直接使用推理模型進行識別,也可以對訓(xùn)練模型或預(yù)訓(xùn)練模型進行再訓(xùn)練。支持約80種語言的文本識別,并具有較高的準確性和速度。
1. paddleocr快速使用
1.1 使用默認模型路徑
import cv2
from paddleocr import PaddleOCR
# 使用默認模型路徑
paddleocr = PaddleOCR(lang='ch', show_log=False)
img = cv2.imread('ch2.jpg') # 打開需要識別的圖片
result = paddleocr.ocr(img)
for i in range(len(result[0])):
print(result[0][i][1][0]) # 輸出識別結(jié)果1.2 設(shè)定模型路徑
import cv2
from paddleocr import PaddleOCR
# 設(shè)定模型路徑
paddleocr = PaddleOCR(lang='ch', show_log=False,
det_model_dir='.paddleocr\\whl\\det\\ch\\ch_PP-OCRv4_det_infer',
rec_model_dir='.paddleocr\\whl\\rec\\ch\\ch_PP-OCRv4_rec_infer') # 推理模型路徑
img = cv2.imread('ch2.jpg') # 打開需要識別的圖片
result = paddleocr.ocr(img)
for i in range(len(result[0])):
print(result[0][i][1][0]) # 輸出識別結(jié)果2. PaddleOCR其他參數(shù)介紹
PaddleOCR模型推理參數(shù)解釋
在使用PaddleOCR進行模型推理時,可以自定義修改參數(shù),來修改模型、數(shù)據(jù)、預(yù)處理、后處理等內(nèi)容,詳細的參數(shù)解釋如下所示。
全局信息
| 參數(shù)名稱 | 類型 | 默認值 | 含義 |
|---|---|---|---|
| image_dir | str | 無,必須顯式指定 | 圖像或者文件夾路徑 |
| page_num | int | 0 | 當(dāng)輸入類型為pdf文件時有效,指定預(yù)測前面page_num頁,默認預(yù)測所有頁 |
| vis_font_path | str | “./doc/fonts/simfang.ttf” | 用于可視化的字體路徑 |
| drop_score | float | 0.5 | 識別得分小于該值的結(jié)果會被丟棄,不會作為返回結(jié)果 |
| use_pdserving | bool | False | 是否使用Paddle Serving進行預(yù)測 |
| warmup | bool | False | 是否開啟warmup,在統(tǒng)計預(yù)測耗時的時候,可以使用這種方法 |
| draw_img_save_dir | str | “./inference_results” | 系統(tǒng)串聯(lián)預(yù)測OCR結(jié)果的保存文件夾 |
| save_crop_res | bool | False | 是否保存OCR的識別文本圖像 |
| crop_res_save_dir | str | “./output” | 保存OCR識別出來的文本圖像路徑 |
| use_mp | bool | False | 是否開啟多進程預(yù)測 |
| total_process_num | int | 6 | 開啟的進程數(shù),use_mp為True時生效 |
| process_id | int | 0 | 當(dāng)前進程的id號,無需自己修改 |
| benchmark | bool | False | 是否開啟benchmark,對預(yù)測速度、顯存占用等進行統(tǒng)計 |
| save_log_path | str | “./log_output/” | 開啟benchmark時,日志結(jié)果的保存文件夾 |
| show_log | bool | True | 是否顯示預(yù)測中的日志信息 |
| use_onnx | bool | False | 是否開啟onnx預(yù)測 |
預(yù)測引擎相關(guān)
| 參數(shù)名稱 | 類型 | 默認值 | 含義 |
|---|---|---|---|
| use_gpu | bool | True | 是否使用GPU進行預(yù)測 |
| ir_optim | bool | True | 是否對計算圖進行分析與優(yōu)化,開啟后可以加速預(yù)測過程 |
| use_tensorrt | bool | False | 是否開啟tensorrt |
| min_subgraph_size | int | 15 | tensorrt中最小子圖size,當(dāng)子圖的size大于該值時,才會嘗試對該子圖使用trt engine計算 |
| precision | str | fp32 | 預(yù)測的精度,支持fp32, fp16, int8 3種輸入 |
| enable_mkldnn | bool | True | 是否開啟mkldnn |
| cpu_threads | int | 10 | 開啟mkldnn時,cpu預(yù)測的線程數(shù) |
文本檢測模型相關(guān)
| 參數(shù)名稱 | 類型 | 默認值 | 含義 |
|---|---|---|---|
| det_algorithm | str | “DB” | 文本檢測算法名稱,目前支持DB, EAST, SAST, PSE, DB++, FCE |
| det_model_dir | str | xx | 檢測inference模型路徑 |
| det_limit_side_len | int | 960 | 檢測的圖像邊長限制 |
| det_limit_type | str | “max” | 檢測的邊長限制類型,目前支持min和max,min表示保證圖像最短邊不小于det_limit_side_len,max表示保證圖像最長邊不大于det_limit_side_len |
其中,DB算法相關(guān)參數(shù)如下
| 參數(shù)名稱 | 類型 | 默認值 | 含義 |
|---|---|---|---|
| det_db_thresh | float | 0.3 | DB輸出的概率圖中,得分大于該閾值的像素點才會被認為是文字像素點 |
| det_db_box_thresh | float | 0.6 | 檢測結(jié)果邊框內(nèi),所有像素點的平均得分大于該閾值時,該結(jié)果會被認為是文字區(qū)域 |
| det_db_unclip_ratio | float | 1.5 | Vatti clipping算法的擴張系數(shù),使用該方法對文字區(qū)域進行擴張 |
| max_batch_size | int | 10 | 預(yù)測的batch size |
| use_dilation | bool | False | 是否對分割結(jié)果進行膨脹以獲取更優(yōu)檢測效果 |
| det_db_score_mode | str | “fast” | DB的檢測結(jié)果得分計算方法,支持fast和slow,fast是根據(jù)polygon的外接矩形邊框內(nèi)的所有像素計算平均得分,slow是根據(jù)原始polygon內(nèi)的所有像素計算平均得分,計算速度相對較慢一些,但是更加準確一些。 |
EAST算法相關(guān)參數(shù)如下
| 參數(shù)名稱 | 類型 | 默認值 | 含義 |
|---|---|---|---|
| det_east_score_thresh | float | 0.8 | EAST后處理中score map的閾值 |
| det_east_cover_thresh | float | 0.1 | EAST后處理中文本框的平均得分閾值 |
| det_east_nms_thresh | float | 0.2 | EAST后處理中nms的閾值 |
SAST算法相關(guān)參數(shù)如下
| 參數(shù)名稱 | 類型 | 默認值 | 含義 |
|---|---|---|---|
| det_sast_score_thresh | float | 0.5 | SAST后處理中的得分閾值 |
| det_sast_nms_thresh | float | 0.5 | SAST后處理中nms的閾值 |
| det_box_type | str | quad | 是否多邊形檢測,彎曲文本場景(如Total-Text)設(shè)置為’poly’ |
PSE算法相關(guān)參數(shù)如下
| 參數(shù)名稱 | 類型 | 默認值 | 含義 |
|---|---|---|---|
| det_pse_thresh | float | 0.0 | 對輸出圖做二值化的閾值 |
| det_pse_box_thresh | float | 0.85 | 對box進行過濾的閾值,低于此閾值的丟棄 |
| det_pse_min_area | float | 16 | box的最小面積,低于此閾值的丟棄 |
| det_box_type | str | “quad” | 返回框的類型,quad:四點坐標,poly: 彎曲文本的所有點坐標 |
| det_pse_scale | int | 1 | 輸入圖像相對于進后處理的圖的比例,如640*640的圖像,網(wǎng)絡(luò)輸出為160*160,scale為2的情況下,進后處理的圖片shape為320*320。這個值調(diào)大可以加快后處理速度,但是會帶來精度的下降 |
文本識別模型相關(guān)
| 參數(shù)名稱 | 類型 | 默認值 | 含義 |
|---|---|---|---|
| rec_algorithm | str | “CRNN” | 文本識別算法名稱,目前支持CRNN, SRN, RARE, NETR, SAR, ViTSTR, ABINet, VisionLAN, SPIN, RobustScanner, SVTR, SVTR_LCNet |
| rec_model_dir | str | 無,如果使用識別模型,該項是必填項 | 識別inference模型路徑 |
| rec_image_shape | str | “3,48,320” | 識別時的圖像尺寸 |
| rec_batch_num | int | 6 | 識別的batch size |
| max_text_length | int | 25 | 識別結(jié)果最大長度,在SRN中有效 |
| rec_char_dict_path | str | “./ppocr/utils/ppocr_keys_v1.txt” | 識別的字符字典文件 |
| use_space_char | bool | True | 是否包含空格,如果為True,則會在最后字符字典中補充空格字符 |
端到端文本檢測與識別模型相關(guān)
| 參數(shù)名稱 | 類型 | 默認值 | 含義 |
|---|---|---|---|
| e2e_algorithm | str | “PGNet” | 端到端算法名稱,目前支持PGNet |
| e2e_model_dir | str | 無,如果使用端到端模型,該項是必填項 | 端到端模型inference模型路徑 |
| e2e_limit_side_len | int | 768 | 端到端的輸入圖像邊長限制 |
| e2e_limit_type | str | “max” | 端到端的邊長限制類型,目前支持min, max,min表示保證圖像最短邊不小于e2e_limit_side_len,max表示保證圖像最長邊不大于e2e_limit_side_len |
| e2e_pgnet_score_thresh | float | 0.5 | 端到端得分閾值,小于該閾值的結(jié)果會被丟棄 |
| e2e_char_dict_path | str | “./ppocr/utils/ic15_dict.txt” | 識別的字典文件路徑 |
| e2e_pgnet_valid_set | str | “totaltext” | 驗證集名稱,目前支持totaltext, partvgg,不同數(shù)據(jù)集對應(yīng)的后處理方式不同,與訓(xùn)練過程保持一致即可 |
| e2e_pgnet_mode | str | “fast” | PGNet的檢測結(jié)果得分計算方法,支持fast和slow,fast是根據(jù)polygon的外接矩形邊框內(nèi)的所有像素計算平均得分,slow是根據(jù)原始polygon內(nèi)的所有像素計算平均得分,計算速度相對較慢一些,但是更加準確一些。 |
方向分類器模型相關(guān)
| 參數(shù)名稱 | 類型 | 默認值 | 含義 |
|---|---|---|---|
| use_angle_cls | bool | False | 是否使用方向分類器 |
| cls_model_dir | str | 無,如果需要使用,則必須顯式指定路徑 | 方向分類器inference模型路徑 |
| cls_image_shape | str | “3,48,192” | 預(yù)測尺度 |
| label_list | list | [‘0’, ‘180’] | class id對應(yīng)的角度值 |
| cls_batch_num | int | 6 | 方向分類器預(yù)測的batch size |
| cls_thresh | float | 0.9 | 預(yù)測閾值,模型預(yù)測結(jié)果為180度,且得分大于該閾值時,認為最終預(yù)測結(jié)果為180度,需要翻轉(zhuǎn) |
其它相關(guān)推薦:
PaddleOCR模型訓(xùn)練及使用詳細教程
到此這篇關(guān)于Python paddleocr快速使用及參數(shù)詳解的文章就介紹到這了,更多相關(guān)Python paddleocr使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 元組拆包示例(Tuple Unpacking)
今天小編就為大家分享一篇Python 元組拆包實例(Tuple Unpacking),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Python語法學(xué)習(xí)之正則表達式的量詞匯總
通過正則的規(guī)則匹配到的信息都是一個單獨的字符存到輸出結(jié)果中的,如何更夠根據(jù)字符串中的詞組進行匹配呢?因此本文將帶大家學(xué)習(xí)一下正則表達式中的量詞符號與組的概念,感興趣的可以了解一下2022-04-04
Python中日志模塊logging的使用技巧和應(yīng)用詳解
在Python開發(fā)中,日志記錄是一個非常重要的環(huán)節(jié),它不僅有助于開發(fā)者追蹤程序的執(zhí)行流程,還能在出現(xiàn)問題時提供關(guān)鍵信息,幫助快速定位并解決問題,本文將結(jié)合實際案例,詳細介紹logging模塊的基礎(chǔ)用法和高級特性,需要的朋友可以參考下2024-08-08
numpy求矩陣的特征值與特征向量(np.linalg.eig函數(shù)用法)
這篇文章主要介紹了numpy求矩陣的特征值與特征向量(np.linalg.eig函數(shù)用法),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02

