OCR识别图片表格

目录:

一、PP-Structure简介

二、安装PP-Structure

三、使用Jupyter Notebook编写代码


一、PP-Structure简介

     PP-Structure是一个可用于复杂文档结构分析和处理的OCR工具包,主要特性如下:

  • 支持对图片形式的文档进行版面分析,可以划分文字、标题、表格、图片以及列表5类区域(与Layout-Parser联合使用)
  • 支持文字、标题、图片以及列表区域提取为文字字段(与PP-OCR联合使用)
  • 支持表格区域进行结构化分析,最终结果输出Excel文件
  • 支持python whl包和命令行两种方式,简单易用
  • 支持版面分析和表格结构化两类任务自定义训练

二、安装PP-Structure

可根据官网操作(PaddleOCR/README_ch.md at release/2.3 · PaddlePaddle/PaddleOCR · GitHub)

1、打开命令提示符(Win+R),输入cmd

2、安装PaddlePaddle,输入pip install paddlepaddle

3、安装Layout-Parser,输入pip3 install -U https://paddleocr.bj.bcebos.com/whl/layoutparser-0.0.0-py3-none-any.whl

4、安装paddleocr,输入pip install paddleocr

(按步骤安装,安装时间有点慢)

三、使用Jupyter Notebook编写代码

1、导入需要用的包

from paddleocr import PaddleOCR,draw_ocr,draw_structure_result,save_structure_res,PPStructure
import os
import cv2
import pandas as pd

2、

table =PPStructure(show_log=True,use_gpu=True)

出现

[2022/05/03 16:11:39] ppocr DEBUG: Namespace(help='==SUPPRESS==', use_gpu=False, ir_optim=True, use_tensorrt=False, min_subgraph_size=15, precision='fp32', gpu_mem=500, image_dir=None, det_algorithm='DB', det_model_dir='C:\\Users\\yi/.paddleocr/whl\\det\\ch\\ch_PP-OCRv2_det_infer', det_limit_side_len=960, det_limit_type='max', det_db_thresh=0.3, det_db_box_thresh=0.6, det_db_unclip_ratio=1.5, max_batch_size=10, use_dilation=False, det_db_score_mode='fast', det_east_score_thresh=0.8, det_east_cover_thresh=0.1, det_east_nms_thresh=0.2, det_sast_score_thresh=0.5, det_sast_nms_thresh=0.2, det_sast_polygon=False, det_pse_thresh=0, det_pse_box_thresh=0.85, det_pse_min_area=16, det_pse_box_type='quad', det_pse_scale=1, scales=[8, 16, 32], alpha=1.0, beta=1.0, fourier_degree=5, det_fce_box_type='poly', rec_algorithm='CRNN', rec_model_dir='C:\\Users\\yi/.paddleocr/whl\\rec\\ch\\ch_PP-OCRv2_rec_infer', rec_image_shape='3, 32, 320', rec_batch_num=6, max_text_length=25, rec_char_dict_path='D:\\Anaconda\\lib\\site-packages\\paddleocr\\ppocr\\utils\\ppocr_keys_v1.txt', use_space_char=True, vis_font_path='./doc/fonts/simfang.ttf', drop_score=0.5, e2e_algorithm='PGNet', e2e_model_dir=None, e2e_limit_side_len=768, e2e_limit_type='max', e2e_pgnet_score_thresh=0.5, e2e_char_dict_path='./ppocr/utils/ic15_dict.txt', e2e_pgnet_valid_set='totaltext', e2e_pgnet_mode='fast', use_angle_cls=False, cls_model_dir=None, cls_image_shape='3, 48, 192', label_list=['0', '180'], cls_batch_num=6, cls_thresh=0.9, enable_mkldnn=False, cpu_threads=10, use_pdserving=False, warmup=False, draw_img_save_dir='./inference_results', save_crop_res=False, crop_res_save_dir='./output', use_mp=False, total_process_num=1, process_id=0, benchmark=False, save_log_path='./log_output/', show_log=True, use_onnx=False, output='./output', table_max_len=488, table_model_dir='C:\\Users\\yi/.paddleocr/whl\\table\\en_ppocr_mobile_v2.0_table_structure_infer', table_char_dict_path='D:\\Anaconda\\lib\\site-packages\\paddleocr\\ppocr\\utils\\dict\\table_structure_dict.txt', layout_path_model='lp://PubLayNet/ppyolov2_r50vd_dcn_365e_publaynet/config', layout_label_map=None, mode='structure', layout=True, table=True, ocr=True, lang='ch', det=True, rec=True, type='ocr', ocr_version='PP-OCRv2', structure_version='STRUCTURE')

3、写入自己的图片地址(我的图片直接放入的C盘),用cv2包把图片读进来

img_path="C:\yy.bmp"
img=cv2.imread(img_path)
result=table(img)

结果

[2022/05/03 16:19:05] ppocr DEBUG: dt_boxes num : 90, elapse : 0.449573278427124
[2022/05/03 16:19:08] ppocr DEBUG: rec_res num  : 90, elapse : 2.99617600440979

表示成功读取图片数据(读取图片大概需要几秒时间)

4、

result
[{'type': 'Table',
  'bbox': [0, 8, 631, 570],
  'img': array([[[253, 253, 253],
          [  0,   0,   0],
          [254, 254, 254],
          ...,
          [255, 255, 255],
          [253, 253, 253],
          [  0,   0,   0]],
  
         [[253, 253, 253],
          [  0,   0,   0],
          [254, 254, 254],
          ...,
          [255, 255, 255],
          [253, 253, 253],
          [  0,   0,   0]],
  
         [[253, 253, 253],
          [  0,   0,   0],
          [254, 254, 254],
          ...,
          [255, 255, 255],
          [253, 253, 253],
          [  0,   0,   0]],
  
         ...,
  
         [[253, 253, 253],
          [  0,   0,   0],
          [254, 254, 254],
          ...,
          [255, 255, 255],
          [253, 253, 253],
          [  0,   0,   0]],
  
         [[237, 237, 237],
          [ 12,  12,  12],
          [243, 243, 243],
          ...,
          [251, 251, 251],
          [243, 243, 243],
          [ 17,  17,  17]],
  
         [[255, 255, 255],
          [  3,   3,   3],
          [255, 255, 255],
          ...,
          [244, 244, 244],
          [255, 255, 255],
          [  1,   1,   1]]], dtype=uint8),
  'res': {'html': '<html><body><table><thead><tr><td>品名</td><td>规格</td><td>单位</td><td>出厂价</td><td>批发价</td><td>零售价</td></tr></thead><tbody><tr><td>双黄连口服液</td><td>10mlX10支(PVC)</td><td>元/盒</td><td>7.18</td><td>2</td><td>9.50</td></tr><tr><td>双黄连口服液</td><td>10mlX10支(玻瓶)</td><td>元/盒</td><td>8.96</td><td>10.30</td><td>11.85</td></tr><tr><td>柴胡口服液</td><td>10mlX10支(PVC)</td><td>元/盒</td><td>8.55</td><td>9.83</td><td>11.30</td></tr><tr><td>柴胡口服液</td><td>10ml×12支(玻瓶)</td><td>元/盒</td><td>11.04</td><td>12.70</td><td>14.60</td></tr><tr><td>健胃化积口服液</td><td>10mlX6支(PVC)</td><td>元/盒</td><td>3.64</td><td>4.18</td><td>4.80</td></tr><tr><td>解酒灵口服液</td><td>10ml×6支(PVC)</td><td>元/盒</td><td>3.60</td><td>4.14</td><td>4.76</td></tr><tr><td>银黄清毒口服液</td><td>10mlX6支(PVC)</td><td>元/盒</td><td>4.51</td><td>5.18</td><td>5.95</td></tr><tr><td>安神补脑口服液</td><td>10ml×10支(玻璃瓶)</td><td>元/盒</td><td>8.65</td><td>9.94</td><td>11. 43</td></tr><tr><td>浓汁金银花露</td><td>100mlx1瓶</td><td>元/瓶</td><td>4.00</td><td>4.60</td><td>5.29</td></tr><tr><td>虫草氨基酸口服液</td><td>250ml×1瓶</td><td>元/瓶</td><td>7.94</td><td>9.13</td><td>10.50</td></tr><tr><td>甘草片</td><td>100片×1瓶</td><td>元/瓶</td><td>4.00</td><td>4.60</td><td>5.29</td></tr><tr><td>板蓝根颗粒</td><td>10g×1袋</td><td>元/袋</td><td>0.69</td><td>0.79</td><td>0.91</td></tr><tr><td>妇乐冲剂</td><td>6g×10袋×1盒</td><td>元/盒</td><td>8.54</td><td>9.82</td><td>11.29</td></tr><tr><td>排石颗粒</td><td>15g×10袋×1盒</td><td>元/盒</td><td>7.29</td><td>8.38</td><td>9.63</td></tr></table></body></html>'}}]

将result改为result[0] ,出现结果同上,再改为result[0]['res'],出现

{'html': '<html><body><table><thead><tr><td>品名</td><td>规格</td><td>单位</td><td>出厂价</td><td>批发价</td><td>零售价</td></tr></thead><tbody><tr><td>双黄连口服液</td><td>10mlX10支(PVC)</td><td>元/盒</td><td>7.18</td><td>2</td><td>9.50</td></tr><tr><td>双黄连口服液</td><td>10mlX10支(玻瓶)</td><td>元/盒</td><td>8.96</td><td>10.30</td><td>11.85</td></tr><tr><td>柴胡口服液</td><td>10mlX10支(PVC)</td><td>元/盒</td><td>8.55</td><td>9.83</td><td>11.30</td></tr><tr><td>柴胡口服液</td><td>10ml×12支(玻瓶)</td><td>元/盒</td><td>11.04</td><td>12.70</td><td>14.60</td></tr><tr><td>健胃化积口服液</td><td>10mlX6支(PVC)</td><td>元/盒</td><td>3.64</td><td>4.18</td><td>4.80</td></tr><tr><td>解酒灵口服液</td><td>10ml×6支(PVC)</td><td>元/盒</td><td>3.60</td><td>4.14</td><td>4.76</td></tr><tr><td>银黄清毒口服液</td><td>10mlX6支(PVC)</td><td>元/盒</td><td>4.51</td><td>5.18</td><td>5.95</td></tr><tr><td>安神补脑口服液</td><td>10ml×10支(玻璃瓶)</td><td>元/盒</td><td>8.65</td><td>9.94</td><td>11. 43</td></tr><tr><td>浓汁金银花露</td><td>100mlx1瓶</td><td>元/瓶</td><td>4.00</td><td>4.60</td><td>5.29</td></tr><tr><td>虫草氨基酸口服液</td><td>250ml×1瓶</td><td>元/瓶</td><td>7.94</td><td>9.13</td><td>10.50</td></tr><tr><td>甘草片</td><td>100片×1瓶</td><td>元/瓶</td><td>4.00</td><td>4.60</td><td>5.29</td></tr><tr><td>板蓝根颗粒</td><td>10g×1袋</td><td>元/袋</td><td>0.69</td><td>0.79</td><td>0.91</td></tr><tr><td>妇乐冲剂</td><td>6g×10袋×1盒</td><td>元/盒</td><td>8.54</td><td>9.82</td><td>11.29</td></tr><tr><td>排石颗粒</td><td>15g×10袋×1盒</td><td>元/盒</td><td>7.29</td><td>8.38</td><td>9.63</td></tr></table></body></html>'}

5、保存表格(我直接保存到了C盘)

save_folder = 'C:/'
save_structure_res(result, save_folder,os.path.basename(img_path).split('.')[0])

C盘出现图片相同名字的文件夹,打开(有些表格可能有小小的错误,需要自己核对),完成

  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值