算式识别

最近更新时间:2020-07-13 08:40:10

1. 接口描述

接口请求域名: ocr.tencentcloudapi.com 。

本接口支持作业算式题目的自动识别,目前覆盖 K12 学力范围内的 14 种题型,包括加减乘除四则运算、分数四则运算、竖式四则运算、脱式计算等。

默认接口请求频率限制:10次/秒。

推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。

2. 输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:ArithmeticOCR。
Version String 公共参数,本接口取值:2018-11-19。
Region String 公共参数,详见产品支持的 地域列表,本接口仅支持其中的: ap-beijing, ap-guangzhou, ap-hongkong, ap-shanghai, na-toronto
ImageBase64 String 图片的 Base64 值。
支持的图片格式:PNG、JPG、JPEG,暂不支持 GIF 格式。
支持的图片大小:所下载图片经Base64编码后不超过 3M。图片下载时间不超过 3 秒。
图片的 ImageUrl、ImageBase64 必须提供一个,如果都提供,只使用 ImageUrl。
ImageUrl String 图片的 Url 地址。
支持的图片格式:PNG、JPG、JPEG,暂不支持 GIF 格式。
支持的图片大小:所下载图片经 Base64 编码后不超过 3M。图片下载时间不超过 3 秒。
图片存储于腾讯云的 Url 可保障更高的下载速度和稳定性,建议图片存储于腾讯云。
非腾讯云存储的 Url 速度和稳定性可能受一定影响。

3. 输出参数

参数名称 类型 描述
TextDetections Array of TextArithmetic 检测到的文本信息,具体内容请点击左侧链接。
RequestId String 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

4. 示例

示例1 算式识别示例代码

输入示例

https://ocr.tencentcloudapi.com/?Action=ArithmeticOCR
&ImageUrl=https://xx/a.jpg
&<公共请求参数>

输出示例

{
  "Response": {
    "TextDetections": [
      {
        "DetectedText": "40*40=1600",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 92,
          "Y": 146,
          "Width": 201,
          "Height": 38
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "90-60+50=80",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 374,
          "Y": 147,
          "Width": 195,
          "Height": 37
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "30+22=52",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 102,
          "Y": 214,
          "Width": 172,
          "Height": 38
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "54-2+30=82",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 366,
          "Y": 216,
          "Width": 212,
          "Height": 38
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "46-20+9=17",
        "Result": false,
        "Confidence": 0,
        "ItemCoord": {
          "X": 383,
          "Y": 282,
          "Width": 193,
          "Height": 44
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "43+9=52",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 107,
          "Y": 284,
          "Width": 174,
          "Height": 40
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "48-20=28",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 105,
          "Y": 353,
          "Width": 172,
          "Height": 36
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "22+(37+3)=62",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 380,
          "Y": 351,
          "Width": 210,
          "Height": 40
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "96+3=99",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 112,
          "Y": 421,
          "Width": 160,
          "Height": 46
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "20-(13-6)=13",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 379,
          "Y": 420,
          "Width": 206,
          "Height": 43
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "50+40=90",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 107,
          "Y": 491,
          "Width": 177,
          "Height": 41
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "45-(17-10)=38",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 385,
          "Y": 492,
          "Width": 206,
          "Height": 38
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "34-(16+4)=14",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 387,
          "Y": 561,
          "Width": 213,
          "Height": 40
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "78-23=25",
        "Result": false,
        "Confidence": 0,
        "ItemCoord": {
          "X": 115,
          "Y": 567,
          "Width": 156,
          "Height": 38
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "48-31=17",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 121,
          "Y": 634,
          "Width": 136,
          "Height": 40
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "60-(2+18)=40",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 382,
          "Y": 631,
          "Width": 217,
          "Height": 38
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "78+(32-18)=92",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 382,
          "Y": 699,
          "Width": 222,
          "Height": 37
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "36+28=64",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 125,
          "Y": 707,
          "Width": 157,
          "Height": 41
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "40-(28-30)=38",
        "Result": false,
        "Confidence": 0,
        "ItemCoord": {
          "X": 375,
          "Y": 769,
          "Width": 235,
          "Height": 40
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      },
      {
        "DetectedText": "25-10=15",
        "Result": true,
        "Confidence": 0,
        "ItemCoord": {
          "X": 124,
          "Y": 779,
          "Width": 158,
          "Height": 41
        },
        "Polygon": [
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          },
          {
            "X": -1,
            "Y": -1
          }
        ],
        "ExpressionType": "1",
        "AdvancedInfo": ""
      }
    ],
    "RequestId": "f3c5fbb6-151d-4f93-98d8-4e3980212dd6"
  }
}

5. 开发者资源

API Explorer

该工具提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力,能显著降低使用云 API 的难度,推荐使用。

SDK

云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。

命令行工具

6. 错误码

以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码

错误码 描述
FailedOperation.DownLoadError 文件下载失败。
FailedOperation.EmptyImageError 图片内容为空。
FailedOperation.ImageDecodeFailed 图片解码失败。
FailedOperation.ImageNoText 图片中未检测到文本。
FailedOperation.LanguageNotSupport 输入的Language不支持。
FailedOperation.OcrFailed OCR识别失败。
FailedOperation.UnKnowError 未知错误。
FailedOperation.UnOpenError 服务未开通。
InvalidParameterValue.InvalidParameterValueLimit 参数值错误。
LimitExceeded.TooLargeFileError 文件内容太大。
ResourcesSoldOut.ChargeStatusException 计费状态异常。
目录