在文字识别OCR如何识别上面的订单产品?

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

展开
收起
三分钟热度的鱼 2023-12-06 18:15:37 88 分享 版权
阿里云 AI 助理回答

在文字识别OCR中,针对订单产品的识别问题(一个订单有M个产品,每个产品有N个交付日期,且每页都有固定的表头),可以通过以下步骤实现高效、精准的识别和结构化处理。以下是详细的解决方案:


1. 确定适用的OCR功能模块

根据问题描述,订单数据包含表格形式的结构化信息(如产品名称、交付日期等),并且每页有固定的表头。这种场景适合使用表格识别文档结构化识别功能。

  • 表格识别:用于提取表格中的内容,包括表头和表格内的数据。
  • 文档结构化识别:用于将文档中的文字元素(如单字、文字块、行等)与版面格式(如标题、段落、表格)分离,并按逻辑顺序输出。

2. 数据准备与预处理

为了确保识别效果,需要对输入数据进行规范化处理:

(1) 图片或PDF文件要求

  • 图片格式:支持JPG、JPEG、PNG格式,单张图片大小不超过10MB,最长边不超过8192像素,最短边不小于15像素。
  • PDF格式:支持单页PDF文件,大小不超过20MB。
  • 清晰度:建议图片清晰无反光,避免模糊、扭曲或过暗的情况。

(2) 固定表头的处理

由于每页都有固定的表头,可以通过以下方式优化: - 在上传数据时,明确标注表头区域,避免重复识别。 - 如果表头内容固定,可以将其作为模板的一部分,减少后续处理的复杂性。


3. 使用自定义KV模板提升识别精度

如果订单数据的字段位置固定(如产品名称、交付日期等),可以使用自定义KV模板功能。具体操作如下:

(1) 上传模板图片

  • 上传一张清晰的模板图片,确保图片中包含完整的表头和示例数据。
  • 配置模板参数,例如支持的语言、文字类型、图像处理选项等。

(2) 框选参照字段

  • 在模板图片中框选固定不变的字段(如表头中的“产品名称”、“交付日期”等)。
  • 重要提示:框选至少4个参照字段,并尽量分散在图片的四角,以提高自动矫正和匹配的准确性。

(3) 定义Key-Value字段

  • 根据业务需求,定义需要提取的字段(如“产品名称”为Key,“具体产品名”为Value)。
  • 支持常规字段类型(如文本、数字)和自定义字段类型。

4. 调用OCR接口进行识别

完成数据准备和模板配置后,调用OCR接口进行识别。以下是调用流程:

(1) 接口选择

  • 使用RecognizeAllText接口,通过指定Type参数为TableDocument,实现表格和文档内容的统一识别。
  • 如果使用自定义KV模板,需在请求中指定模板ID。

(2) 请求参数

  • Url:提供图片或PDF文件的URL地址(长度不超过2048字节)。
  • Type:指定图片类型为TableDocument
  • OutputFigure(可选):是否需要图案检测功能。

(3) 示例代码

以下是一个Python示例代码,展示如何调用OCR接口:

from alibabacloud_ocr_api20210707.client import Client as ocr_api20210707Client
from alibabacloud_ocr_api20210707.models import RecognizeAllTextRequest
from alibabacloud_tea_openapi.models import Config
import os

def create_client():
    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"
    return ocr_api20210707Client(config)

def main():
    client = create_client()
    request = RecognizeAllTextRequest(
        url="https://example.png",  # 替换为实际图片URL
        type="Table"               # 指定图片类型为表格
    )
    response = client.recognize_all_text_with_options(request)
    print(response.body.data)

if __name__ == "__main__":
    main()

5. 结果解析与后处理

识别结果将以结构化数据的形式返回,包括表格内容、字段名称和对应值。对于复杂的订单数据,可能需要进一步后处理:

  • 去重处理:如果表头在每页重复出现,可以在后处理阶段去除重复数据。
  • 数据校验:检查识别结果的完整性,确保所有字段均被正确提取。
  • 格式转换:将识别结果转换为JSON、CSV或其他便于后续使用的格式。

6. 注意事项

  • 免费额度:开通OCR服务后,系统会赠送一定额度的免费调用量(如每月200次)。超出免费额度后,将按照调用次数计费。
  • 性能优化:建议使用小于1.5MB的图片进行识别,以提高接口响应速度。
  • 模型训练:如果订单数据样式复杂,建议上传至少50份同类数据进行模型训练,以获得更好的识别效果。

通过上述步骤,您可以高效地识别订单中的产品信息,并提取出每个产品的交付日期。

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

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

热门讨论

热门文章

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