前言
无服务器应用程序可保障您无需配置或治理服务器,即可轻松运行代码内容。本文介绍了一种基于无服务器架构的文本辨认 (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 requestsimport jsonfrom aws_requests_auth.boto_utils import BotoAWSRequestsAuthauth = 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 方向有丰盛的实践经验。