疫情防控常态化下,学校为了保证孩子身体健康和安全,要求所有入校人员提供通信行程码并审核。但是通过人工审核的方式,不仅工作量极大并且极易出错。作为一名软件开发工程师,我开始思考并着手调研,希望可以通过更智能的方式来解决。在调研过程中,发现腾讯云 AI 文字识别产品推出了健康码 OCR、行程卡 OCR 等多种自动化识别能力,刚好契合智能识别这个现实问题。
但是识别出来的结果是否准确呢?
查阅了官方介绍资料,发现腾讯云AI联合优图实验室针对文本检测和文字识别关键技术进行了优化和创新。在文本检测技术方面进行了深度优化,提出了 Compact Inception,通过设计合理的网络结构来提升各尺度的文字检测/提取能力。同时引入 RNN 多层自适应网络和 Refinement 结构来提升检测完整性和准确性。
在文本识别方面,经过大量实验和实践,对主流 CNN+RNN+CTC 方法进行了改进和创新:对 CNN 加入了横向非对称卷积和综合多种尺度感受野的特征,增强了网络对多尺度字体的支持。对 RNN 加入了 Attention 机制,Attention 机制的加入,可以在所有特征块的基础上,得到每一个特征块在全局中的权重信息,有效提升整行识别的准确率。这无疑给我们吃了定心丸,放心的采用腾讯云AI文字识别的自动化识别能力了。
根据产品能力介绍,通信行程卡识别能力,可以自动识别出行程卡颜色、途经地、存在中高风险地区的城市、电话号码等信息,实现了全自动的模式,极大的减轻了人工审核的工作量。
接下来,我将详细讲述我是如何使用通信行程卡识别能力。
准备工作
为了使用通信行程卡识别能力,我们需要进行一些准备工作。
- 腾讯云 AI 文字识别提供了体验服务(功能演示页面),我们先对通信行程卡能力进行了体验,demo 识别的效果很不错。
- 在使用腾讯云 AI 文字识别之前需要开通文字识别服务。在腾讯云 OCR 控制台页面,我们成功开通了文字识别服务。
- 服务开通成功后,腾讯云AI文字识别赠送了免费的资源包,50~1000次的免费额度。当免费资源包用尽后,我们先是购买了预付费资源包,后来又开通了后付费。
操作流程
通过下面几个步骤我们正式开始使用通信行程卡能力了
- 获取个人密钥
- 通信行程卡 API 文档
- 体验在线调用
- 使用集成腾讯云 OCR 的 SDK
- 查询调用量
获取个人密钥
第一步,我们需要个人密钥。在腾讯云访问管理的 API 密钥管理页面,我们新建了个人密钥。
通信行程卡识别 API 文档
第二步,就是查看具体的使用说明了,在文字识别的 API 文档中查看了 通信行程卡识别 的输入参数、输出参数、错误码等信息。
体验在线调试
第三步,腾讯云 AI 文字识别还提供了在线调用 API Explorer 工具,我们通过这个工具体验了下在线调用,更加直观的看到了请求参数和返回值。
使用集成腾讯云 OCR 的 SDK
第四步,就是真正的使用了。
云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言。在 API 文档文档的最下方,我们查看了 SDK 具体使用方法,十分简单方便。
我们使用的开发语言是 Node.js 。
- 通过 npm 安装
npm install tencentcloud-sdk-nodejs --save
- 使用 SDK 调用通信行程卡识别接口
const tencentcloud = require("../tencentcloud-sdk-nodejs"); const OcrClient = tencentcloud.ocr.v20181119.Client; const models = tencentcloud.ocr.v20181119.Models; const Credential = tencentcloud.common.Credential; const ClientProfile = tencentcloud.common.ClientProfile; const HttpProfile = tencentcloud.common.HttpProfile; let cred = new Credential(" SecretId ", " SecretKey "); let httpProfile = new HttpProfile(); let clientProfile = new ClientProfile(); /* 推荐使用 V3 鉴权。当内容超过 1M 时,必须使用 V3 签名鉴权。除 Node SDK 外,其他语言 SDK 都支持 V3。 clientProfile.signMethod = "TC3-HMAC-SHA256"; */ clientProfile.httpProfile = httpProfile; let client = new OcrClient(cred, "ap-guangzhou", clientProfile); let req = new models.RecognizeTravelCardOCRRequest(); req.ImageUrl = "https://test.jpg"; client.RecognizeTravelCardOCR(req, function(errMsg, response) { if (errMsg) { console.log(errMsg); return; } console.log(response.to_json_string()); });
查询调用量
第五步,调用成功后,我们在 腾讯云 OCR 控制台 查看了接口的调用明细,包括了调用量、成功量、失败量等信息。
主账号登录后查看了所有账号的调用量明细,子账号只能查询自己的调用量明细。
在 用量查询权限管理页面 给子账号赋权后,子账号也查询到了所有子账号的调用量明细权限了。