全部产品
Search
文档中心

内容安全:图片OCR识别

更新时间:Jul 31, 2023

本文介绍了如何使用Python SDK图片OCR接口,识别图片中的文字信息。

前提条件

提交图片同步检测任务

接口

描述

支持的Region

ImageSyncScanRequest

提交图片OCR同步识别任务,对图片中的文字进行识别(scene=ocr)。

  • cn-shanghai

  • cn-beijing

  • cn-shenzhen

  • ap-southeast-1

示例代码

#coding=utf-8
# 以下代码将调用OCR图片检测接口并实时返回检测结果。
from aliyunsdkcore import client
from aliyunsdkgreen.request.v20180509 import ImageSyncScanRequest
from aliyunsdkgreen.request.extension import HttpContentHelper
import json
import uuid

# 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
# 常见获取环境变量方式:
# 获取RAM用户AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
# 获取RAM用户AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
clt = client.AcsClient("建议从环境变量中获取RAM用户AccessKey ID", "建议从环境变量中获取RAM用户AccessKey Secret", "cn-shanghai")
# 每次请求时需要新建request,请勿复用request对象。
request = ImageSyncScanRequest.ImageSyncScanRequest()
request.set_accept_format('JSON')
task = {"dataId": str(uuid.uuid1()),
    "url":"https://example.com/test.jpg"
    }

print(task)
# 设置待检测的图片,一张图片对应一个检测任务。
# 多张图片同时检测时,处理时间由最后一张处理完的图片决定。
# 通常情况下批量检测的平均响应时间比单任务检测长,一次批量提交的图片数越多,响应时间被拉长的概率越高。
# 代码中以单张图片检测作为示例,如果需要批量检测多张图片,请自行构建多个任务。
# OCR检测按照实际检测的图片张数*检测单价计费。
request.set_content(HttpContentHelper.toValue({"tasks": [task],
                       "scenes": ["ocr"]
                       }))
response = clt.do_action_with_exception(request)
print(response)
result = json.loads(response)
if 200 == result["code"]:
  taskResults = result["data"]
  for taskResult in taskResults:
    if (200 == taskResult["code"]):
      sceneResults = taskResult["results"]
      print(sceneResults)