• ocr的场景应用--发票识别


    ocr识别

    一.什么是ocr

    OCR英文全称是Optical Character Recognition,中文叫做光学字符识别。它是利用光学技术和计算机技术把印在或写在纸上的文字读取出来,并转换成一种计算机能够接受、人又可以理解的格式。现在这技术已经比较成熟。实际应用:比如一个手机APP就能帮忙扫描名片、身份证,并识别出里面的信息;汽车进入停车场、收费站都不需要人工登记了,都是用车牌识别技术;我们看书时看到不懂的题,拿个手机一扫,APP就能在网上帮你找到这题的答案。太多太多的应用了,OCR的应用在当今时代确实是百花齐放啊。

    二.实现ocr识别

    paddleocr的检测训练
    paddleocr的识别训练

    模型调用,实现ocr识别

    from paddleocr import PaddleOCR, draw_ocr
    # 模型路径下必须含有model和params文件
    ocr = PaddleOCR(use_angle_cls=True,use_gpu=False)
    # 参数设置,det_model_dir:检测模型路径,rec_model_dir:识别模型路径,cls_model_dir:方向模型路径,rec_char_dict_path文本字典
    # det_model_dir='{your_det_model_dir}', rec_model_dir='{your_rec_model_dir}', rec_char_dict_path='{your_rec_char_dict_path}', cls_model_dir='{your_cls_model_dir}', use_angle_cls=True  
    
    img_path = '../ocr2.jpg'
    result = ocr.ocr(img_path, cls=True)
    for line in result:
        print(line)
     
    # 显示结果
    from PIL import Image
    image = Image.open(img_path).convert('RGB')
    boxes = [line[0] for line in result]
    txts = [line[1][0] for line in result]
    scores = [line[1][1] for line in result]
    im_show = draw_ocr(image, boxes, txts, scores, font_path='../PaddleOCR/doc/simfang.ttf')
    im_show = Image.fromarray(im_show)
    im_show.save('result.jpg') #结果图片保存在代码同级文件夹中。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    场景应用

    1.四类:
    数字原生类:
    淘宝商品图是最具有代表性的数字原生类文字图。
    特点:1)最复杂多样:各种字体、背景、排列、组合等(MTWI挑战赛-最大的OCR竞赛)。
    2)最有价值:商品信息载体
    3)图片量最大:千亿图片,每日不停更新。

    文档类:
    文档类OCR需求非常广,涉及各种公务场景。
    特点:1)100%识别率:人的输入准确率为98%,探索AI知识的极限;2)产品易用性:完善的功能,贴近业务需求;3)商业应用:文档类商业成熟。
    拍照表单类:拍照表单类OCR价值非常大,非常有挑战性。
    特点:1)场景&数据:数据具有隐私性,典型应用场景沉淀技术能力;2)产品通用性:专家知识+模板=文本理解,一套方案解决上百种类型。3)商业价值:和行业场景深度接入,AI能力改善行业数据流程。(提供定制的拍照表格识别和结构化云服务)
    自然场景类: OCR学术研究的重点方向。
    特点:1)数据:无具体数据类型定义,比如街拍数据;2)技术难点:不确定性,复杂环境干扰本质难点是定位和识别;3)商业价值:市场潜力巨大,如:车牌识别、摄像监控、自动驾驶。(技术能力领先,行业落地中)

    发票的识别

    一.确定发票的方向

    在这里插入图片描述
    电子发票、专用发票、普通发票,可以定位一个锚点,确定发票方向:
    比如:机器编码(定位锚点),就可以确定-----正向的在左上角,-90°的在左下角,90°的在右上角,180°的在右下角,这样判断,就可以确定发票方向。
    步骤:(也可以用YOLO等其余模型进行检测,比如:检测二维码的位置)
    1.先进行ocr第一次识别(可能识别不到)
    2.确定锚点位置信息
    3.判断方向

    二.识别信息截取

    方法一:根据需要识别的信息,需要将识别信息一一对应,所以需要截取对应位置图片,进行识别
    方法二:根据飞浆的最新的表格识别算法进行,定位识别飞浆表格识别

    注:不同的发票,需要定位识别的位置也不同,需要不同的确定方式

    三.结果

    在这里插入图片描述

    参考链接:
    https://blog.csdn.net/wurmyq/article/details/90755568?ops_request_misc=&request_id=&biz_id=102&utm_term=ocr%E7%9A%84%E5%9C%BA%E6%99%AF%E5%BA%94%E7%94%A8&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-90755568.142v44pc_ran_alice&spm=1018.2226.3001.4187

  • 相关阅读:
    Flink CDC 菜鸟教程-工具概念篇
    在JavaScript中,什么是尾递归优化(tail call optimization)?
    自定义类型详解(保姆级教程)
    Vue基础语法的进阶,事件处理器,自定义组件及组件通信
    一文看懂这些海外社媒平台属性,跨境外贸必看
    Python Selenium unittest+HTMLTestRunner实现 自动化测试及发送测试报告邮件
    深入探索Stable Diffusion:从原理到应用的全面解析
    目标检测算法——YOLOv5/YOLOv7改进之结合无参注意力SimAM(涨点神器)
    I.MX6U ALPHA裸机开发
    2022年山东省安全员C证复训题库模拟考试平台操作
  • 原文地址:https://blog.csdn.net/weixin_36723038/article/details/126654758