当前位置: 首页 > article >正文

【玩转OCR | 腾讯云智能结构化OCR应用探索和场景实践】

目录

  • 引言
  • 一、产品介绍与技术优势
    • 1.1 产品概述
    • 1.2 技术优势
  • 二、功能特性与应用场景
    • 2.1 功能特性
    • 2.2 应用场景
  • 三、API调用与场景实践
    • 3.1 在线demo体验
    • 3.2 票据识别实践
    • 3.3 特定场景识别实践
      • 3.3.1 数学公式识别
      • 3.3.2 印章识别
  • 四、实际应用与未来展望
    • 4.1 实际应用
    • 4.2 未来展望
  • 五、总结

引言

在数字化时代,光学字符识别(OCR)技术已成为企业提升效率、降低成本的关键工具。腾讯云智能结构化OCR凭借其高精度、灵活性和易用性,正在推动跨行业高效精准的文档处理与数据提取新时代。本文将全面介绍腾讯云智能结构化OCR的功能、技术优势、应用场景以及通过实际代码示例展示其应用实践,帮助读者深入了解并有效运用这一强大的工具。

一、产品介绍与技术优势

1.1 产品概述

腾讯云智能结构化OCR是腾讯云推出的一款基于深度学习、图像检测技术及OCR大模型能力的智能文字识别服务。它能够实现对不限版式的结构化信息抽取,无论是固定卡证还是复杂的物流单据,均可实现智能识别。该产品分为基础版与高级版,满足不同企业的需求,广泛应用于政务、票据核销、行业表单和国际物流等场景。
在这里插入图片描述

1.2 技术优势

  • 高精度识别:腾讯云智能结构化OCR支持任意版式的卡证票据识别,文本基础识别准确率达到98%以上,文本结构化准确率达到85%以上,确保企业能够获取高质量的数据。
  • 完备性:该产品支持多种常见版式的数据结构化提取,如警察证、教师资格证、道路运输证等,适用于多个行业场景。
  • 易用性:用户仅需简单的几步配置,即可定制个性化需求模板,快速提取结构化数据,实现高效录入。腾讯云提供了丰富的API接口和详细的使用文档,开发者可以轻松集成OCR功能到自己的系统中。

二、功能特性与应用场景

2.1 功能特性

  • 智能KV格式信息提取:上传图片后,智能结构化OCR能够自动提取并结构化输出信息,以键值对(Key-Value)的形式呈现,便于后续的数据处理和分析。
  • 千种版式的自动提取:经过大规模验证,腾讯云智能结构化OCR支持超过6000种版面的证照单据识别,无需集成多个接口,单一接口即可解决诸多证照单据识别问题。
  • 亿级调用能力:腾讯云强大的基础设施支持亿级调用量,确保高并发场景下的稳定性和可靠性。

2.2 应用场景

  • 政务场景:身份证、护照、驾驶证等证件的快速识别和信息提取,提升政务服务效率。
  • 票据核销场景:发票、收据、报销单等票据的自动识别和数据提取,简化财务报销流程。
  • 行业表单场景:各类行业表单的自动化识别和填写,减少人工录入错误,提高工作效率。
  • 国际物流场景:跨境货代、快递快运、国际贸易与采购等单据的高精度结构化识别,加速物流信息处理。

三、API调用与场景实践

3.1 在线demo体验

这里首先可以点击demo试用,然后上传一份pdf文档进行解析,可以看到智能结构化能够实现不限版式的结构化信息抽取,无论是固定卡证还是复杂的物流单据,均可实现智能识别。
在这里插入图片描述

除了在线demo之外,腾讯云智能结构化OCR提供了详细的API接口文档,开发者可以根据文档指导进行接口调用,这里我也进行了初步的实践。

首先进入智能结构化控制台,点击开通服务:

在这里插入图片描述

3.2 票据识别实践

票据识别是指通过OCR技术对各类票据(如发票、收据、报销单等)进行文字识别和数据提取。
在这里插入图片描述

以下是一个使用.NET调用腾讯云票据识别API的示例代码:

using System;
using System.Threading.Tasks;
using Newtonsoft.Json;
using TencentCloud.Common;
using TencentCloud.Common.Profile;
using TencentCloud.Ocr.V20181119;
using TencentCloud.Ocr.V20181119.Models;
 
namespace TencentCloudExamples
{
    class VatInvoiceOCR
    {
        static void Main(string[] args)
        {
            try
            {
                Credential cred = new Credential
                {
                    SecretId = "********",
                    SecretKey = "********"
                };
                ClientProfile clientProfile = new ClientProfile();
                HttpProfile httpProfile = new HttpProfile();
                httpProfile.Endpoint = "ocr.tencentcloudapi.com";
                clientProfile.HttpProfile = httpProfile;
                OcrClient client = new OcrClient(cred, "", clientProfile);
 
                VatInvoiceOCRRequest req = new VatInvoiceOCRRequest();
                // 设置图片Base64编码,这里只是示例,实际使用时需替换为真实图片编码
                req.ImageBase64 = "data:image/png;base64,...";
 
                VatInvoiceOCRResponse resp = client.VatInvoiceOCRSync(req);
                Console.WriteLine(AbstractModel.ToJsonString(resp));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}

3.3 特定场景识别实践

3.3.1 数学公式识别

数学公式识别是指通过OCR技术对数学公式进行准确的识别和解析,支持复杂的公式结构和符号。核心在于将图像中的数学公式转换为可编辑的文本格式。
在这里插入图片描述
在实际使用中,腾讯云智能结构化OCR的公式识别功能表现出色。用户只需上传包含公式的图像,系统即可快速准确地识别并返回可编辑的文本格式。这一功能不仅简化了公式录入和处理的过程,还大大提高了工作效率和准确性。

以下是一个使用Python调用腾讯云数学公式识别API的示例代码:

import hashlib
import hmac
import json
import sys
import time
from datetime import datetime

if sys.version_info[0] <= 2:
    from httplib import HTTPSConnection
else:
    from http.client import HTTPSConnection

def sign(key, msg):
    return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest()

secret_id = "AKIDS***************bzE"
secret_key = "AD8rM*****************8S4f"
token = ""
service = "ocr"
host = "ocr.ap-shanghai.tencentcloudapi.com"
region = "ap-guangzhou"
version = "2018-11-19"
action = "FormulaOCR"
payload = '{"ImageBase64":"data:image/png;base64,**********需要的图片base64编码*********"}'
params = json.loads(payload)
endpoint = "https://ocr.ap-shanghai.tencentcloudapi.com"
algorithm = "TC3-HMAC-SHA256"
timestamp = int(time.time())
date = datetime.utcfromtimestamp(timestamp).strftime("%Y-%m-%d")

# 拼接规范请求串
http_request_method = "POST"
canonical_uri = "/"
canonical_querystring = ""
ct = "application/json; charset=utf-8"
canonical_headers = "content-type:%s\nhost:%s\nx-tc-action:%s\n" % (ct, host, action.lower())
signed_headers = "content-type;host;x-tc-action"
hashed_request_payload = hashlib.sha256(payload.encode("utf-8")).hexdigest()
canonical_request = (http_request_method + "\n" + canonical_uri + "\n" + canonical_querystring + "\n" + canonical_headers + "\n" + signed_headers + "\n" + hashed_request_payload)

# 拼接待签名字符串
credential_scope = date + "/" + service + "/" + "tc3_request"
hashed_canonical_request = hashlib.sha256(canonical_request.encode("utf-8")).hexdigest()
string_to_sign = (algorithm + "\n" + str(timestamp) + "\n" + credential_scope + "\n" + hashed_canonical_request)

# 计算签名
secret_date = sign(("TC3" + secret_key).encode("utf-8"), date)
secret_service = sign(secret_date, service)
secret_signing = sign(secret_service, "tc3_request")
signature = hmac.new(secret_signing, string_to_sign.encode("utf-8"), hashlib.sha256).hexdigest()

# 拼接 Authorization
authorization = (algorithm + " " + "Credential=" + secret_id + "/" + credential_scope + ", " + "SignedHeaders=" + signed_headers + ", " + "Signature=" + signature)

# 构造并发起请求
headers = {
    "Authorization": authorization,
    "Content-Type": "application/json; charset=utf-8",
    "Host": host,
    "X-TC-Action": action,
    "X-TC-Timestamp": timestamp,
    "X-TC-Version": version
}
if region:
    headers["X-TC-Region"] = region
if token:
    headers["X-TC-Token"] = token

try:
    req = HTTPSConnection(host)
    req.request("POST", "/", headers=headers, body=payload.encode("utf-8"))
    resp = req.getresponse()
    print(resp.read())
except Exception as err:
    print(err)

3.3.2 印章识别

印章识别是指通过OCR技术对印章进行准确的识别和解析,支持各种印章类型和样式。以下是一个使用Go调用腾讯云印章识别API的示例代码:

package main

import (
    "fmt"
    "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
    "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
    "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
    ocr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr/v20181119"
)

func main() {
    credential := common.NewCredential("SecretId", "SecretKey")
    cpf := profile.NewClientProfile()
    cpf.HttpProfile.Endpoint = "ocr.ap-shanghai.tencentcloudapi.com"
    client, _ := ocr.NewClient(credential, "ap-guangzhou", cpf)

    request := ocr.NewSealOCRRequest()
    request.ImageUrl = common.StringPtr("https://example.com/seal.jpg")

    response, err := client.SealOCR(request)
    if _, ok := err.(*errors.TencentCloudSDKError); ok {
        fmt.Printf("An API error has returned: %s\n", err)
        return
    }
    if err != nil {
        panic(err)
    }
    fmt.Printf("%s\n", response.ToJsonString())
}

四、实际应用与未来展望

4.1 实际应用

在实际应用中,腾讯云智能结构化OCR已经为众多企业带来了显著的价值。通过智能化的结构化信息抽取,企业能够更加高效地处理和分析图像数据,进一步推动业务流程的自动化和智能化。例如,在财务管理领域,票据识别功能可以自动化处理大量发票和报销单,减少人工审核成本,提高报销效率;在物流领域,跨境货代单据的自动识别可以加速物流信息处理,提升物流效率。

4.2 未来展望

随着技术的不断迭代和优化,OCR技术将会更加智能和高效,能够应对更复杂的应用场景,满足企业日益增长的数据处理需求。腾讯云智能结构化OCR将继续引领行业发展,为更多企业提供强有力的技术支持。未来,我们可以期待腾讯云智能结构化OCR在更多领域的应用拓展,如医疗影像识别、自动驾驶场景中的路标和交通标志识别等,为数字化转型贡献更多力量。

五、总结

腾讯云智能结构化OCR凭借其高精度、灵活性和易用性,已经成为企业数字化转型的重要工具。通过本文的介绍和实践示例,相信读者已经对腾讯云智能结构化OCR有了更深入的了解。未来,随着技术的不断进步和应用场景的不断拓展,腾讯云智能结构化OCR将为更多企业带来便捷和高效的数据处理体验。


http://www.kler.cn/a/464021.html

相关文章:

  • Wend看源码-Java-fork/Join并行执行任务框架学习
  • python3GUI--智慧交通监控与管理系统 By:PyQt5
  • 如何使用Termux 通过 SSH 连接到远程服务器
  • 【2024年-12月-11日-开源社区openEuler实践记录】深度探秘 libkperf:解锁系统性能剖析的开源宝藏
  • 【机器学习】 卷积神经网络 (CNN)
  • PHP框架+gatewayworker实现在线1对1聊天--发送消息(6)
  • 给vscode的新项目选择虚拟环境
  • 【漫话机器学习系列】032.代表点聚类算法(Representative-Based Clustering Algorithm)
  • STM32单片机芯片与内部57 SPI 数据手册 寄存器
  • k8s系列--通过docker拉取的镜像导入到 containerd中
  • misc-python脚本学习笔记
  • SPI通信-(STM32)
  • 机器学习代码中常用方法
  • 租用服务器还是服务器托管:哪种方案更适合您?
  • uni-app:实现普通选择器,时间选择器,日期选择器,多列选择器
  • SD-WAN组网:定义、优势与应用
  • 智能手机多源传感器融合的室内定位方法综述
  • html本地字符串处理工具|去重、分割、求交集、求并集
  • SQL 实战:联合查询与子查询 – 数据比对与关联查询优化
  • PyTorch 中 reciprocal(取倒数)函数的深入解析:分析底层实现CPP代码
  • 人工智能及深度学习的一些题目
  • 机器学习研究方向有哪些创新点
  • vulnhub Empire-Lupin-One靶机
  • 27.循环里赋值了,循环外使用提示变量未赋值 C#例子
  • C++软件设计模式之模板方法模式
  • Lumos学习王佩丰Excel第二十三讲:Excel图表与PPT