在文字识别OCR怎么样识别上面的订单产品?

在文字识别OCR怎么样识别上面的订单产品?image.png
一个订单有M个产品,每个产品有N个交付日期,M,N都是不确定的,而且每页都有固定的表头。

展开
收起
三分钟热度的鱼 2023-12-13 18:20:16 77 分享 版权
阿里云 AI 助理回答

在文字识别OCR中,针对订单产品信息的提取(一个订单有M个产品,每个产品有N个交付日期,且每页都有固定的表头),可以通过以下步骤实现:


1. 数据准备与预处理

为了确保OCR模型能够准确识别订单中的产品信息,需要对输入数据进行预处理: - 图片质量优化:确保图片清晰、无反光、无扭曲。如果图片过大,建议压缩至小于1.5MB以提高接口响应速度。 - 固定表头处理:由于每页都有固定的表头,可以在数据标注阶段将表头区域排除,避免干扰模型对产品信息的识别。


2. 使用表格信息抽取功能

根据知识库资料,OCR支持表格信息抽取功能,适用于结构化数据的识别。以下是具体操作步骤:

(1) 确定图片类型

  • 在调用OCR接口时,需通过Type参数指定图片类型为Table(表格)。
  • 如果表格包含手写内容或无线表格,可通过以下参数进一步配置:
    • IsHandWritingTable:设置是否为手写表格(默认值为false)。
    • IsLineLessTable:设置是否为无线表格(默认值为false)。

(2) 配置输出格式

  • 为了便于后续处理,可以将识别结果导出为Excel或HTML格式:
    • OutputTableExcel:设置为true,将表格结果导出为Excel文件链接。
    • OutputTableHtml:设置为true,将表格结果导出为HTML格式文件链接。
    • 注意:开启上述参数会增加接口响应时间,建议仅在需要时启用。

3. 模型训练与优化

对于复杂的订单结构(如M个产品和N个交付日期),建议使用OCR文档自学习功能进行定制化模型训练:

(1) 数据标注

  • 字段标注:在标注工具中,将每个产品的名称、数量、单价、交付日期等字段逐一标注完整。标注框应尽量贴合字段文字,以提高识别精度。
  • 题目库复用:如果多个订单页面的字段相同,可以通过题目库功能复用标注任务,减少重复工作量。

(2) 模型调优

  • 数据量要求:一般情况下,模型训练需要至少100份以上的样本数据才能达到较好的效果。
  • 版式分布:确保训练数据的版式分布与真实业务场景一致,只有训练过的版式才能获得较高的识别率。
  • 高级选项:通过调整字段类型或高级选项(如语言列表Languages),可以进一步提高识别准确率。

4. 模型部署与调用

完成模型训练后,按照以下步骤部署并调用服务:

(1) 模型部署

  • 进入「模型中心-模型详情」页面,点击「去部署」按钮,等待模型部署完成。
  • 部署成功后,可以通过API调用模型服务,或在「在线使用」界面测试模型效果。

(2) API调用

  • 调用RecognizeAllText接口时,需传入以下关键参数:
    • Url:图片链接(长度不超过2048字节)。
    • Type:图片类型,设置为Table
    • TableConfig:配置表格相关参数(如是否为手写表格、是否为无线表格等)。
  • 示例代码(Python):

    from alibabacloud_ocr_api20210707.client import Client as ocr_api20210707Client
    from alibabacloud_ocr_api20210707.models import RecognizeAllTextRequest
    from alibabacloud_tea_openapi.models import Config
    
    # 创建客户端
    config = Config(
      access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
    )
    config.endpoint = "ocr-api.cn-hangzhou.aliyuncs.com"
    client = ocr_api20210707Client(config)
    
    # 调用接口
    request = RecognizeAllTextRequest(
      url="https://example.png",
      type="Table",
      table_config={"IsHandWritingTable": False, "IsLineLessTable": False}
    )
    response = client.recognize_all_text_with_options(request)
    print(response.body.data)
    

5. 结果解析与后处理

  • OCR返回的结果通常为结构化数据(如JSON格式),需要对结果进行解析:
    • 提取每个产品的名称、数量、单价、交付日期等字段。
    • 根据固定表头信息,过滤掉无关内容。
  • 如果存在多页订单,需合并所有页面的识别结果,并按产品和交付日期进行分组。

6. 注意事项

  • 免费额度与计费:开通OCR服务后,系统会赠送一定额度的免费调用次数(如每月200次)。超出免费额度后,将按照调用量计费。
  • 并发限制:如果默认并发数无法满足需求,可通过购买QPS叠加包进行扩容。
  • 数据安全:建议将AccessKey配置到环境变量中,避免在代码中显式暴露密钥信息。

通过以上步骤,您可以高效地使用阿里云文字识别OCR服务提取订单中的产品信息,并处理复杂的表格结构。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

文字识别技术可以灵活应用于证件文字识别、发票文字识别、文档识别与整理等行业场景,满足认证、鉴权、票据流转审核等业务需求。

热门讨论

热门文章

还有其他疑问?
咨询AI助理