全部產品
Search
文件中心

Content Moderation:圖片OCR識別

更新時間:Jul 06, 2024

本文介紹了如何使用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)