本文介绍了如何使用PHP SDK图片OCR接口,识别图片中的文字或卡证信息。
功能描述
通用OCR除了能够识别普通图片中的文字,还能识别结构化的卡证上的文字。关于参数的详细说明,请参见图片OCR检测API文档。
前提条件
提交图片同步检测任务
接口 | 描述 | 支持的Region |
ImageSyncScanRequest | 提交图片OCR同步识别任务,对图片中的文字进行识别(scene=ocr)。 |
|
示例代码
<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Green\Green;
try {
/**
* 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
* 常见获取环境变量方式:
* 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置。
->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置。
->regionId('cn-shanghai')
->asDefaultClient();
$task1 = array('dataId' => '业务数据ID',
'url' => '待检测图片链接地址'
);
// 示例:身份证正面识别。
$extras = array('card' => 'id-card-front');
/* 设置待检测的图片,一张图片对应一个检测任务。
* 多张图片同时检测时,处理时间由最后一张处理完的图片决定。
* 通常情况下批量检测的平均响应时间比单张检测要长。一次批量提交的图片数越多,响应时间被拉长的概率越高。
* 代码中以单张图片检测作为示例,如果需要批量检测多张图片,请自行构建多个检测任务。
* OCR检测按照实际检测的图片张数*检测的卡证类型单价计费。
*/
$result = Green::v20180509()->imageSyncScan()
->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效。
->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效。
->body(json_encode(array('tasks' => array($task1), 'scenes' => array('ocr'), 'extras' => array($extras))))
->request();
print_r($result->toArray());
} catch (Exception $exception) {
echo $exception->getMessage() . PHP_EOL;
}
文档内容是否对您有帮助?