关于架构:手把手教程构建无服务器通用文本识别功能

9次阅读

共计 4419 个字符,预计需要花费 12 分钟才能阅读完成。

前言

无服务器应用程序可保障您无需配置或治理服务器,即可轻松运行代码内容。本文介绍了一种基于无服务器架构的文本辨认 (Optical Character Recognition, OCR) 解决方案能够对天然场景图像中的文字进行精准辨认,其底层基于 Amazon Lambda 和 Amazon API Gateway 实现,Amazon Lambda 的按申请付费、主动扩大和易用性使其成为数据迷信团队的热门部署抉择。采纳预训练模型的文本辨认是指通过 Amazon Lambda 调用事后训练好的 OCR 机器学习模型,对文本材料的图像文件进行剖析辨认解决,获取文字及版面信息的过程,亦行将图像中的文字进行辨认,并以文本的模式返回。该解决方案具备十分宽泛的利用场景,可用于印刷体文字辨认,手写资料辨认,图像内容审核,出版物图像文本电子化等诸多畛域。

OCR 辨认成果

架构介绍

无服务器架构应用事件驱动型模型。Amazon Lambda 服务运行 Lambda 函数以响应事件。Amazon Lambda 函数能够间接从泛滥集成的 Amazon 服务(包含 API Gateway)中调用。本计划基于 Amazon CloudFormartion 设计实现,部署后,用户或程序发送 API 申请至 Amazon API Gateway,申请 payload 中须要蕴含被解决的图片 URL 或 Base64 编码信息,Amazon API Gateway 接管到 HTTP 到申请后,将申请数据发送给对应的 Lambda 函数,Amazon Lambda 函数通过调用存储在 Amazon EFS 外面的预训练模型实现推理,并将文字辨认后果(JSON 格局数据)返回给调用发动端。因为基于为无服务器架构设计,所以用户只需按理论调用量付费。

架构图

Amazon API Gateway:一种齐全托管的服务,能够帮忙开发人员轻松创立、公布、保护、监控和爱护任意规模的 API;

  • https://www.amazonaws.cn/api-…

Amazon Lambda:一种无服务器的计算服务,让您无需预置或治理服务器、创立可感知工作负载的集群扩大逻辑、保护事件集成或治理运行时,即可运行代码;

  • https://www.amazonaws.cn/lambda/

Amazon EFS:Amazon Elastic File System (Amazon EFS),提供可扩展性、弹性、可用性和耐用性,可作为企业应用程序和作为服务交付的应用程序的文件存储。为您的开发环境提供一个通用存储库,使您可能以平安有序的形式共享代码和其余文件。

  • https://www.amazonaws.cn/efs/

部署形式

首先,请通过浏览器登录您的 Amazon Web Service 账户。登录后在浏览器中关上亚马逊云科技解决方案库首页,而后在计划库里找到 AI Solution Kit 解决方案,点击关上链接后切换到”文本辨认(OCR)”选项卡(在页面右上角能够切换显示语言),在页面右侧点击须要部署到的区域(region)按钮在控制台中启动相应的部署模版。

  • https://www.amazonaws.cn/solu…

上面,以部署到中国(北京)区域为例,对通用文本辨认(OCR)计划进行部署。

请点击“从亚马逊云科技中国(北京)区域控制台中启动计划”按钮启动对应的 Amazon CloudFormation。在创立堆栈页面检查一下 Amazon S3 URL 的链接,而后点击“下一步”按钮持续。

在指定堆栈信息页面您能够批改堆栈名称和认证形式等参数,在参数选项里,因为本解决方案应用 Amazon API Gateway 来接管 API 调用申请,您能够应用 aikitscustomAuthType-xxx 参数指定 API 的调用形式,如果您心愿在北京或宁夏区域提供无需身份验证(NONE)即可拜访的 API 申请,则须要申请并确保您的 Amazon Web Services 账号已通过 Internet Content Provider (ICP) 备案,80/443 端口能够失常开启。您还能够在“modelType”下抉择轻量模型(Lite)。点击“下一步”持续。

  • 模型阐明

在审核页面上,查看并确认设置。选中确认模板将创立 Amazon Identity and Access Management(IAM)资源的复选框。最初单击“创立堆栈”按钮开始部署。

您能够在 Amazon CloudFormation 控制台的状态列中查看堆栈的状态。大概 15 分钟后看到状态成为 CREATE_COMPLETE 阐明创立胜利。在堆栈创立胜利后,可在 Amazon CloudFormation 的输入 /Outputs 标签页中看到以 aikitsInvokeURL 为前缀的记录,请记住对应的调用 URL。

实现这些步骤后,能够关上 Lambda Functions 控制台中的 Lambda 函数查看推理模型调用逻辑,目录构造如下所示,其中,infer_ocr_app.py 为 Lambda Function 调用预训练模型的逻辑代码:

测试 OCR 性能

REST API 接口

  • HTTP 办法: POST
  • Body 申请参数

  • 申请 Body 示例
{"url": "https://images-cn.ssl-images-amazon.cn/images/G/28/AGS/LIANG/Deals/2020/Dealpage_KV/1500300.jpg"}
  • 示例样图

测试步骤

在配置完结后能够进行 API 调用测试,首先须要下载 Postman 测试工具。

下载地址:https://www.postman.com/downl…

在 Postman 中新建标签页,并把上一步中的 API 调用 URL (aikitsInvokeURL) 粘贴到地址栏。抉择 POST 作为 HTTP 调用办法。关上 Body 配置项,选中 raw 和 JSON 数据类型。在 Body 中输出如下测试数据,单击 Send 按钮即可看到相应后果。

  • 返回参数阐明

如果在部署 OCR 解决方案时抉择的 AWS_IAM 验证形式,须要在申请前关上 Postman 的 Authorization 配置,在下拉列表里抉择 Amazon Web Service Signature,并填写对应账户的 AccessKey、SecretKey 和 Amazon Web Service Region(如 cn-north-1 或 cn-northwest-1)。

另外,也能够通过 Python 程序来进行测试,在命令行窗口执行如下命令,通过 pip3 装置好相干认证依赖项 aws_requests_auth。

pip3 install aws_requests_auth

把如下 python 源代码放弃到本地,并以.py 为文件的后缀名。

import requests
import json
from aws_requests_auth.boto_utils import BotoAWSRequestsAuth

auth = BotoAWSRequestsAuth(aws_host='[YOUR-API-ID].execute-api.us-east-1.amazonaws.com',
                           aws_region='us-east-1',
                           aws_service='execute-api')

url = 'https://[YOUR-API-ID].execute-api.us-east-1.amazonaws.com/standard/ocr'
payload = {'url': 'https://images-cn.ssl-images-amazon.cn/images/G/28/AGS/LIANG/Deals/2020/Dealpage_KV/1500300.jpg'}
response = requests.request("POST", url, data=json.dumps(payload), auth=auth)
print(json.loads(response.text))

在 Amazon CloudFormation 控制台页面,切换到“输入 /Outputs”,找到 aikitsInvokeURL 字段,复制 value 外面的 URL,用于替换 python 源代码外面 url 的地址,并且应用 URL 外面的 API ID 替换 Python 文件外面的 [YOUR-API-ID],保留后执行 python3 ocr-iam-auth.py,即可看到如下的测试文本输入后果:

% python3 ocr-iam-auth.py
[{'words': 'SALE', 'location': {'top': 38, 'left': 939, 'width': 73, 'height': 26}, 'score': 0.9969024062156677}, {'words': '镇店之宝', 'location': {'top': 89, 'left': 348, 'width': 194, 'height': 47}, 'score': 0.9993890523910522}, {'words': '同步寰球天天高价', 'location': {'top': 156, 'left': 367, 'width': 192, 'height': 27}, 'score': 0.9992773532867432}, {'words': '海内购', 'location': {'top': 208, 'left': 348, 'width': 68, 'height': 28}, 'score': 0.9987406730651855}, {'words': '折', 'location': {'top': 241, 'left': 664, 'width': 30, 'height': 25}, 'score': 0.9383366107940674}]

最初

AI 解决方案合集中的通用文本辨认计划通过主动部署预训练的文本辨认模型,联合精准的语言模型和大词库,加强了对中文语言的解决与辨认能力,进步输出转化效率。基于亚马逊云科技的 Amazon CloudFormation 主动在 Amazon API Gateway 中创立调用 RESTful API,用户在部署解决方案后只需将 HTTP(s)申请参数提交到 Amazon API Gateway 主动创立的 URL 即可实现文本辨认性能,就能够失去精确的返回后果。并且,该计划基于 Amazon Lambda、Amazon API Gateway 等无服务架构,用户无需放心在云中或本地治理和运行服务器或运行时。只需按理论使用量领取费用。整个无服务器架构中不会存储用户数据,从而爱护了用户的隐衷。敬请关注理解 AI 解决方案合集以体验更多的开箱即用的云上 AI 性能。

本篇作者

严一

亚马逊云科技翻新解决方案架构师,负责基于亚马逊云科技 的云计算计划的架构设计,在利用开发, Serverless, 大数据方向有丰盛的实践经验。

何孝霆

亚马逊云科技翻新解决方案架构师,负责基于亚马逊云科技的云计算计划的架构设计,在利用开发, 人工智能,Serverless 方向有丰盛的实践经验。

正文完
 0