---
name: tencentcloud-ocr-general
description: 腾讯云广告文字识别(AdvertiseOCR)接口调用技能。当用户需要从图片中识别文字内容时,应使用此技能。支持中英文、横排、竖排及倾斜场景的图片文字识别,支持90度、180度、270度翻转场景的图片识别,返回文本框位置与文字内容。支持图片Base64和URL两种输入方式。
---

# 腾讯云广告文字识别 (AdvertiseOCR)

## 用途

调用腾讯云OCR广告文字识别接口，支持图片内文字的检测和识别，返回文本框位置与文字内容。具有较高召回率和准确率。

核心能力：
- **中英文识别**：支持中英文混合文字识别
- **多方向支持**：支持横排、竖排以及倾斜场景文字识别
- **翻转支持**：支持90度、180度、270度翻转场景文字识别
- **坐标返回**：返回每个文本行的四顶点坐标（Polygon）
- **置信度评估**：返回每个文本行的识别置信度（0~100）

官方文档：https://cloud.tencent.com/document/api/866/49524

默认接口请求频率限制：20次/秒。

## 使用时机

当用户提出以下需求时触发此技能：
- 需要从图片中提取文字信息
- 需要识别图片上的文字内容
- 涉及文字OCR识别的任何场景
- 需要获取图片中文字的位置坐标信息

## 环境要求

- Python 3.6+
- 依赖：`tencentcloud-sdk-python`（通过 `pip install tencentcloud-sdk-python` 安装）
- 环境变量：
  - `TENCENTCLOUD_SECRET_ID`：腾讯云API密钥ID
  - `TENCENTCLOUD_SECRET_KEY`：腾讯云API密钥Key

## 使用方式

运行 `scripts/main.py` 脚本完成图片文字识别。

### 请求参数

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| ImageBase64 | str | 否(二选一) | 图片Base64值，编码后不超过10M，分辨率建议600*800以上，支持PNG/JPG/JPEG/BMP |
| ImageUrl | str | 否(二选一) | 图片URL地址，建议存储于腾讯云COS。都提供时仅使用ImageUrl |

### 输出格式

识别成功后返回 JSON 格式结果：

```json
{
  "TextDetections": [
    {
      "DetectedText": "识别出的文本行内容",
      "Confidence": 99,
      "Polygon": [
        {"X": 0, "Y": 0},
        {"X": 100, "Y": 0},
        {"X": 100, "Y": 50},
        {"X": 0, "Y": 50}
      ],
      "AdvancedInfo": "{\"Parag\":{\"ParagNo\":1}}"
    }
  ],
  "TextCount": 1,
  "ImageSize": {
    "Width": 800,
    "Height": 600
  },
  "RequestId": "xxx"
}
```

**响应字段说明：**

| 字段 | 类型 | 说明 |
|------|------|------|
| TextDetections | list | 检测到的文本信息列表 |
| TextDetections[].DetectedText | str | 识别出的文本行内容 |
| TextDetections[].Confidence | int | 置信度 0~100 |
| TextDetections[].Polygon | list of Coord | 文本行坐标，四个顶点坐标（X, Y） |
| TextDetections[].AdvancedInfo | str | 扩展字段，含段落信息Parag(ParagNo) |
| TextCount | int | 检测到的文本行数量 |
| ImageSize | object | 图片分辨率信息，含Width和Height（单位px） |
| RequestId | str | 唯一请求ID |

### 错误码说明

| 错误码 | 含义 |
|--------|------|
| FailedOperation.DownLoadError | 文件下载失败 |
| FailedOperation.EmptyImageError | 图片内容为空 |
| FailedOperation.EngineRecognizeTimeout | 引擎识别超时 |
| FailedOperation.ImageDecodeFailed | 图片解码失败 |
| FailedOperation.ImageNoText | 图片中未检测到文本 |
| FailedOperation.LanguageNotSupport | 输入的Language不支持 |
| FailedOperation.OcrFailed | OCR识别失败 |
| FailedOperation.UnKnowError | 未知错误 |
| FailedOperation.UnOpenError | 服务未开通 |
| InvalidParameterValue.InvalidParameterValueLimit | 参数值错误 |
| LimitExceeded.TooLargeFileError | 文件内容太大 |
| ResourceUnavailable.InArrears | 账号已欠费 |
| ResourceUnavailable.ResourcePackageRunOut | 账号资源包耗尽 |
| ResourcesSoldOut.ChargeStatusException | 计费状态异常 |

### 业务逻辑说明

1. ImageBase64和ImageUrl必须提供其一，都提供时只使用ImageUrl
2. 图片经Base64编码后不超过10M，分辨率建议600*800以上
3. 支持PNG、JPG、JPEG、BMP格式
4. 始终计费

### 调用示例

```bash
# 通过URL识别图片文字
python scripts/main.py --image-url "https://example.com/ad_image.jpg"

# 通过文件路径(自动Base64编码)识别
python scripts/main.py --image-base64 ./ad_image.jpg

# 通过Base64文本文件识别
python scripts/main.py --image-base64 ./base64.txt

# 指定地域
python scripts/main.py --image-url "https://example.com/ad_image.jpg" --region ap-beijing
```
