1、安裝組件
pip install --upgrade paddlepaddle paddleocr
2、完整code
import cv2
import numpy as np
from paddleocr import PaddleOCR# 初始化 PaddleOCR
use_angle_cls=True, lang="ch", det_db_thresh=0.1, det_db_box_thresh=0.5)def preprocess_image(image_path):"""使用 OpenCV 對圖像進行預處理:param image_path: 圖像路徑:return: 預處理后的圖像"""# 讀取圖像image = cv2.imread(image_path)gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 轉換為灰度圖像blurred = cv2.GaussianBlur(gray, (5, 5), 0) # 高斯模糊去噪_, binary = cv2.threshold(blurred, 128, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) # 二值化return binarydef recognize_id_card(image_path):"""識別身份證信息:param image_path: 身份證圖像路徑:return: 識別結果"""# 預處理圖像preprocessed_image = preprocess_image(image_path)# 將預處理后的圖像轉換為 PaddleOCR 需要的格式img = cv2.cvtColor(preprocessed_image, cv2.COLOR_GRAY2BGR)# 使用 PaddleOCR 進行文字識別result = ocr.ocr(img, cls=True)print(result)# 提取識別結果for line in result:for elem in line:print(elem[-1][0]) # 打印識別的文本內容# 示例:識別一張身份證圖像
recognize_id_card("card.jpg")
3、調整 PaddleOCR 參數?
????????如果某些圖像無法識別,可以嘗試調整 PaddleOCR 的參數,例如檢測閾值、識別模型等。
ocr = PaddleOCR(use_angle_cls=True, lang="ch", det_db_thresh=0.3, det_db_box_thresh=0.6)
說明:
? ? ? ? 1、det_db_thresh
?????????? 作用:文字檢測的閾值。該參數控制檢測算法的靈敏度,值越低,檢測到的文字區域越多,但誤檢率也越高。
????????? 默認值: ?0.3
?????????? 范圍: ?0.0 ? 到 ? 1.0 ?
????????? 建議:如果檢測到的文字區域太少,可以嘗試降低該值;如果檢測到的區域太多且包含大量誤檢,可以提高該值。
? ? ? ? 2、?det_db_box_thresh ?
????????? 作用:文字區域的過濾閾值。該參數用于過濾掉低置信度的檢測結果,值越高,保留的檢測結果越少。
????????? 默認值: ?0.6 ?
????????? 范圍: ?0.0 ? 到 ? 1.0 ?
????????? 建議:如果檢測到的文字區域中有大量誤檢,可以提高該值;如果檢測到的區域太少,可以降低該值。