赞
踩
Python: 使用paddlepaddle需要3.6以上的Python版本
依赖库:
pip install pandas
; pip install opencv-python
;pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
;python -m pip install paddlepaddle-gpu==2.1.2.post101 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
;python -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple
;python -m pip install paddlepaddle-gpu==2.1.2.post110 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
;python -m pip install paddlepaddle-gpu==2.1.2.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
;pip install paddlehub
;pip install shapely
;pip install pyclipper
;import os
import paddlehub as hub
import cv2
from operator import itemgetter
# ------ CUDA 设置 ------ #
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # 获取GPU设备,不使用GPU时注释
os.environ["CUDA_VISIBLE_DEVICES"] = "0" # 设置GPU编号,不使用GPU时注释
# ------ 过滤ocr结果 ------ #
def filter_ocr_results(test_img_path, ocr_results):
for img_path, result in zip(test_img_path, ocr_results): # zip 合并两个list
data = result['data']
data = sorted(data, key=itemgetter('confidence'), reverse=True) # 按照置信度对list中的dict进行排序,置信度高的排在前面
for information in data: # 遍历全部识别结果、置信度(即识别结果正确的可能性)、识别框的位置(四个角点的坐标)
print(information)
if __name__ == "__main__":
# ------ 更改测试数据 ------ #
data_path = '1.jpg' # 获取图像文件的相对路径,可以是单张图片,也可以是图片数据集
# 接将path下所有图片加载
img_path_list = []
basedir = os.path.abspath(os.path.dirname(__file__)) # 获取当前文件的绝对路径
input_path_dir = basedir + '/' + data_path # 文件夹路径
img_path_list.append(input_path_dir)
# 读取测试文件夹中的图片路径
np_images = [cv2.imread(image_path) for image_path in img_path_list]
# OCR图片的保存路径,默认设为
output_path = basedir
# 输出图像文件路径和结果输出路径
print("input_path_dir: " + input_path_dir)
print("output_path: " + output_path)
# 加载预训练模型
ocr = hub.Module(name="chinese_ocr_db_crnn_server") # 在不使用GPU的情况下可以设置 enable_mkldnn=True 加速模型
# 进行OCR识别
ocr_results = ocr.recognize_text(
images=np_images, # 图片数据,ndarray.shape 为 [H, W, C],BGR格式;
use_gpu=False, # 是否使用 GPU;若使用GPU,请先设置CUDA_VISIBLE_DEVICES环境变量
output_dir=output_path, # 识别结果图片文件的保存路径;
visualization=True, # 是否将识别结果保存为图片文件;
box_thresh=0.0001, # 检测文本框置信度的阈值,越小识别的内容越多,但也更可能识别出不相关的内容,不可设置为0;
text_thresh=0.5) # 识别中文文本置信度的阈值,是指将内容识别为中文字符的阈值参数,由于也需要对英文和数字进行识别,该值不宜过小;
# 过滤识别结果
filter_ocr_results(img_path_list, ocr_results)
我们用一张图片来进行展示,原图:
识别结果:
程序输出:
{'text': '12', 'confidence': 0.9999337792396545, 'text_box_position': [[276, 211], [320, 211], [320, 254], [276, 254]]}
{'text': 'DAWNRAYS', 'confidence': 0.9993633031845093, 'text_box_position': [[682, 560], [763, 557], [764, 576], [683, 579]]}
{'text': '宜立舒', 'confidence': 0.9987321496009827, 'text_box_position': [[122, 203], [220, 202], [220, 234], [122, 235]]}
{'text': '与适宜抗生素合用', 'confidence': 0.9979811906814575, 'text_box_position': [[127, 544], [284, 540], [284, 562], [127, 566]]}
{'text': '复方雷尼替丁胶囊', 'confidence': 0.9938433170318604, 'text_box_position': [[101, 268], [474, 268], [474, 317], [101, 317]]}
{'text': '批准文号:国药准字H20030953', 'confidence': 0.9904718995094299, 'text_box_position': [[358, 184], [585, 187], [585, 205], [358, 202]]}
{'text': '治疗幽门螺旋杆菌感染', 'confidence': 0.9837646484375, 'text_box_position': [[128, 574], [320, 568], [320, 589], [128, 595]]}
{'text': '十二指肠溃疡', 'confidence': 0.9615536332130432, 'text_box_position': [[126, 515], [246, 512], [246, 534], [126, 537]]}
{'text': 'Compound RanitidineCapsules', 'confidence': 0.9529160857200623, 'text_box_position': [[99, 329], [475, 326], [475, 350], [99, 353]]}
{'text': '每粒含盐酸雷尼替丁(以CHNO,S计)', 'confidence': 0.9517455101013184, 'text_box_position': [[373, 221], [581, 223], [581, 241], [373, 239]]}
{'text': '良性胃溃疡', 'confidence': 0.9417906999588013, 'text_box_position': [[126, 485], [226, 482], [227, 507], [127, 510]]}
{'text': '适应症:', 'confidence': 0.9281517267227173, 'text_box_position': [[127, 451], [230, 451], [230, 479], [127, 479]]}
{'text': 'Capsules150mg、枸橡酸秘钾(以餐计)110mg', 'confidence': 0.9192306995391846, 'text_box_position': [[315, 237], [587, 238], [587, 259], [315, 258]]}
{'text': '东瑞制藥', 'confidence': 0.81662917137146, 'text_box_position': [[683, 535], [763, 533], [764, 559], [684, 561]]}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。