aspose / aspose-omr-cloud
用于与 Aspose.OMR Cloud API 通信的 PHP 库
Requires
- php: >=5.5
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^6.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^1.12 || ^2.10
- phpunit/phpunit: 9.5
- squizlabs/php_codesniffer: ~2.6
This package is not auto-updated.
Last update: 2024-09-16 15:07:17 UTC
README
Aspose.OMR Cloud 是一个易于使用且功能丰富的在线服务,用于设计、渲染和识别手工填写的答题卡、试卷、调查问卷、选票和类似表格。使用它,您可以快速开发需要客户端资源最少的网页应用,用于光学字符识别 (OMR)。
此软件开发工具包 (SDK) 简化了与 Aspose.OMR Cloud 服务的交互,让您能够专注于业务逻辑而不是技术细节。它处理所有常规操作,例如建立连接、发送 API 请求和解析响应,将所有这些任务封装为几个简单的 PHP 代码中可用的方法。
本包内容
存储库包含
- Aspose.OMR Cloud SDK for PHP
- 演示项目 - 一个简单的网页应用,演示如何使用 Aspose.OMR Cloud SDK for PHP 生成和识别 OMR 表格。
- 演示数据 (aspose-omr-cloud-demo-data)
- 配置文件 (aspose-omr-cloud-demo-data/test_config.json);
- 调查问卷的源代码、相关图像以及识别测试的填写问卷的扫描图像 (aspose-omr-cloud-demo-data/Data);
- 存储生成的可打印表格、识别模式 (.OMR) 文件和识别结果的目录 (aspose-omr-cloud-demo-data/Temp).
许可
Aspose.OMR Cloud SDK for PHP、演示网站、文档和表格模板在 MIT 许可证 下分发。
先决条件
- PHP 5.6 及更高版本
- Composer
Windows 环境
确保本地存储库路径以及所有必需包的路径都不超过 255 个符号。
Aspose.OMR Cloud 使用 Guzzle 库执行 REST 请求。 Guzzle 框架使用 cURL (libcurl) 作为传输库。在 Windows 平台上,您可能会遇到访问 HTTPS 资源的问题,具体取决于您使用的 libcurl 版本。
-
如果您使用的是基于 OpenSSL 构建的 libcurl,请下载 CA 证书 并更新您的 php.ini
[curl] curl.cainfo="<full path to cacert.pem file>" [openssl] openssl.cafile="<full path to cacert.pem file>" -
如果您使用的是基于 WinSSL 构建的 libcurl,那么您已经准备好了,因为 WinSSL 使用 Windows 证书存储。
可以下载基于 OpenSSL 和 WinSSL 的 libcurl 版本,请访问 https://curl.haxx.se/gknw.net/7.40.0/。选择您的平台 (x86 或 x64),OpenSSL(在文件名中查找 ssl 字符串)或 WinSSL(在文件名中查找 winssl 字符串)。
授权
Aspose.OMR Cloud 遵循行业标准最佳实践,以保护您的数据安全。所有与 OCR REST API 的通信都使用 JWT 验证完成,这提供了一种开放标准、高度安全的信息交换方式。使用特定于每个应用程序的 Client ID 和 Client Secret 凭据生成时间有限的 JWT 令牌。
- 登录到 Aspose Cloud API 仪表板。
- 转到 应用程序 页面。
- 通过点击加号图标并按照要求的步骤操作来创建用于文件交换的存储。您可以使用自己的云存储,创建我们云中的新存储,或者重用现有的存储。
- 给应用程序一个容易识别的名字,这样它可以在长长的列表中快速找到。
- 点击保存按钮。
- 点击新建的应用程序,并复制客户端ID和客户端密钥字段的值。
安装和用法
-
克隆或下载存储库。
-
要通过Composer安装绑定,请将以下内容添加到
composer.json{ "repositories": [ { "type": "git", "url": "https://github.com/aspose-omr-cloud/aspose-omr-cloud-php.git" } ], "require": { "aspose/aspose-omr-cloud": "*@dev" } }然后运行
composer install。 -
运行演示项目。实际步骤可能因您的平台而异。
Web应用程序生成一个可打印的OMR准备好的表格(aspose-omr-cloud-demo-data/Temp/Aspose_test.png)以及识别模式文件(aspose-omr-cloud-demo-data/Temp/Aspose_test.omr)。后者由Aspose.OMR识别引擎使用,以匹配填充的气泡与模板字段。
然后识别已填充的调查问卷的扫描图像,并将结果保存到aspose-omr-cloud-demo-data/Temp/Aspose_test.csv文件中。
配置
配置文件(aspose-omr-cloud-demo-data/test_config.json)包含与Aspose.OMR Cloud一起工作的基本参数。
- app_key - 来自应用程序的客户端密钥字段的值(见授权)。
- app_sid - 来自应用程序的客户端ID字段的值(见授权)。
- base_path - Aspose.OMR Cloud服务的根URL。
- data_directory - 包含调查问卷源代码、相关图像和已填充调查问卷扫描图像的目录的路径。指定相对于配置文件的路径。
- result_directory - 存储生成的可打印表格、识别模式和识别结果的目录的路径。指定相对于配置文件的路径。
它是如何工作的?
Aspose.OMR Cloud支持端到端的OMR过程 - 从设计表格到识别其填充的副本。工作流程包括以下阶段
所有资源密集型任务(OMR表格的生成和识别)都在云中完成,从而释放了终端用户设备上的资源。所有云任务都排队,这防止了多个并发请求相互干扰并消耗过多的处理器时间。
Aspose.OMR Cloud SDK for PHP实现了包装类,允许您与Aspose.OMR Cloud REST API交互,而无需编写底层HTTP请求和解析响应。演示项目源代码中包含对代码所有主要部分的详细注释,因此您可以轻松理解基础知识,而无需查阅SDK参考文档。
生成可打印表格
要生成可打印表格和识别模式文件,将表格源和页面配置发送到Aspose.OMR Cloud队列,几秒钟后即可获得结果。
处理时间可能从几毫秒到几秒不等,具体取决于Aspose.OMR Cloud服务的当前负载。
GenerateTemplate
这个类包含从源代码生成可打印表格和处理表单生成队列的包装方法。
OmrGenerateTask
这个类允许您准备请求,将表单源代码、相关图像和页面布局发送到生成队列。
页面布局
通过将PageSettings对象传递给OmrGenerateTask构造函数来配置纸张大小、方向、字体和其他布局设置。
处理图像
Aspose.OMR Cloud允许您通过向其中添加图像(例如您的公司徽标)来自定义表格。除了在表格源代码中描述图像元素外,每个图像文件还必须直接提交到生成队列。
图像以HashMap的形式提供给OmrGenerateTask构造函数,其中键包含图像文件名,值包含图像文件内容,以字节数组形式。
OMRResponse
根据请求类型,此类包含
- 队列中表单生成请求的当前状态,以及如果已生成表单,则包含可打印的OMR表单和识别模式文件。
- 队列中表单识别请求的当前状态,以及如果已识别表单,则包含识别结果。
识别填写好的表单
要识别填写好的表单,将扫描的图像或照片以及识别模式文件发送到Aspose.OMR Cloud队列,几秒钟后即可获取结果。
处理时间可能从几毫秒到几秒不等,具体取决于Aspose.OMR Cloud服务的当前负载。
RecognizeTemplate
此类包含用于识别扫描或拍摄表单以及与表单识别队列一起工作的包装方法。
OmrRecognizeTask
此类允许您准备一个请求,将表单图像发送到识别队列。
表单必须附带识别模式(.OMR)文件,该文件告诉Aspose.OMR识别引擎如何将填写的气泡与模板字段匹配。请注意,识别模板文件必须与可打印的表单相同的生成响应一起获取,否则识别结果可能不正确。
识别精度阈值
受访者可以用笔、铅笔或记号笔填写表格,并在气泡内使用各种标记——从实心填充到小的十字或勾号。
识别精度阈值(recognitionThreshold)参数决定了在识别过程中如何处理标记。您可以提供一个0到100之间的值。较低的值允许识别甚至最轻的标记,但可能会将污渍或纸张缺陷视为标记。较高的值需要更坚实的填充,可能会忽略铅笔标记或小的勾号。
重要:指示受访者为所有气泡使用相同类型的标记。否则,识别结果可能不准确。如果您计划使用智能手机的相机而不是扫描仪,我们建议使用笔或记号笔的实心填充。