转自AI Studio,原文链接:[PaddleOCR]核酸检测证明复查统计?50行代码轻松搞定 - 飞桨AI Studio

1 背景

今日这个核酸检测130行代码刷屏的事件很火,如下:

看到复旦某博士130行代码搞定批量识别核酸证明的结果,心想PaddleOCR不也可以嘛?我来复现一下!

1.1备注

看看我用paddle可以多少行代码搞定呢?

这里特别注意,并不知道他采用的图片是什么格式,我这里使用四川的我近期刚做的核酸证明为样例进行试验。

我使用的报告如下拿本人的P了三张:(其实大家应该大差不差)

话不多说,直接开搞!

In [ ]

!pip uninstall paddlehub -y
!pip install paddlehub shapely pyclipper

2 代码实现

In [31]

import paddlehub as hub
import cv2
import os
import csv
# dirpath 为存图片的文件夹的路径,如这里的test,这里是为了取图片的路径
def manyImages(dirpath):
    dirpath = dirpath
    all_list = []
    all_list_path = []
    i = 0 # 标记总文件数量
    for root,dirs,files in os.walk(dirpath): # 分别代表根目录、文件夹、文件
        for file in files:
            i = i + 1        
            imgpath = os.path.join(root,file)
            all_list.append(imgpath+"\n")
            all_list_path.append(imgpath)

    allstr = ''.join(all_list)
    f = open('all_list.txt','w',encoding='utf-8')
    f.write(allstr)
    return all_list_path , i
all_list_path,all_lenth = manyImages("test")
ocr = hub.Module(name="chinese_ocr_db_crnn_server") # 可以换移动端轻量级 chinese_ocr_db_crnn_mobile
# 读取测试文件夹test.txt中的照片路径
np_images =[cv2.imread(image_path) for image_path in all_list_path] 
results = ocr.recognize_text(
                images=np_images,         # 图片数据
                use_gpu=False,            # 是否使用 GPU
                output_dir='ocr_result',  # 图片的保存路径,默认设为 ocr_result;
                visualization=True,       # 是否将识别结果保存为图片文件;
                box_thresh=0.5,           # 检测文本框置信度的阈值;
                text_thresh=0.5)          # 识别中文文本置信度的阈值;
with open('result.csv', 'w') as f:
    row=['姓名_身份证号码','采样时间','检测时间','结果']
    write=csv.writer(f)
    write.writerow(row)
    f.close()
for result in results:
    data = result['data']
    with open('result.csv', 'a',newline='') as f:
        write=csv.writer(f)
        r = []
        for information in data:
            if(("**" in information['text']) or ("时间" in information['text']) or ("阴性" in information['text'])):
                r.append(information['text'])
        write.writerow(r)
        f.close

3 结果

在最左侧生成csv,内容如下:

50行代码搞定,其中还包含注释等。还是很轻松的完成了的。

PaddleOCR在规则的文件提取方面上,还是可以有一定的使用地位的。

4 个人总结

全网同名:

iterhui

我在AI Studio上获得至尊等级,点亮10个徽章,来互关呀~

飞桨AI Studio - 人工智能学习与实训社区

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐