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

目录

引言

在数字化时代,光学字符识别(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的示例代码:

csharp 复制代码
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的示例代码:

python 复制代码
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的示例代码:

go 复制代码
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将为更多企业带来便捷和高效的数据处理体验。

相关推荐
三掌柜6664 小时前
2025三掌柜赠书活动第一期:动手学深度学习(PyTorch版)
人工智能·pytorch·深度学习
云计算DevOps-韩老师5 小时前
【网络云SRE运维开发】2024第52周-每日【2024/12/31】小测-计算机网络参考模型和通信协议的理论和实操考题
开发语言·网络·计算机网络·云计算·运维开发
唯创知音5 小时前
基于W2605C语音识别合成芯片的智能语音交互闹钟方案-AI对话享受智能生活
人工智能·单片机·物联网·生活·智能家居·语音识别
说私域5 小时前
数字化供应链创新解决方案在零售行业的应用研究——以开源AI智能名片S2B2C商城小程序为例
人工智能·开源·零售
yvestine6 小时前
数据挖掘——支持向量机分类器
人工智能·算法·机器学习·支持向量机·分类·数据挖掘·svm
阿正的梦工坊6 小时前
PyTorch到C++再到 CUDA 的调用链(C++ ATen 层) :以torch._amp_update_scale_调用为例
c++·人工智能·pytorch
三万棵雪松6 小时前
5.系统学习-PyTorch与多层感知机
人工智能·pytorch·学习
AIGC大时代6 小时前
不只是工具:ChatGPT写作在学术中的创新思维与深度思考
人工智能·chatgpt·prompt·aigc·ai写作
陈序缘7 小时前
PyTorch快速入门
人工智能·pytorch·python·深度学习·算法·机器学习
钰见梵星7 小时前
机器学习策略Ⅱ
人工智能·深度学习·神经网络