图像

通用 OCR 文字识别

0次调用
4 积分/次

无论您是需要实现票据的自动化录入,还是在网页前端对图片上的文字进行坐标框选,这个高精度的 OCR 接口都能为您提供强大的基础能力。

POST
uapis.cn
/api/v1/image/ocr
Body
file
file

待识别的图片文件。支持 JPG、JPEG、PNG、BMP、GIF、WebP 等常见格式,最大不超过 10MB。请勿与 url 或 image_base64 同时提交。

拖动文件到此处,或点击上传

待识别的图片文件。支持 JPG、JPEG、PNG、BMP、GIF、WebP 等常见格式,最大不超过 10MB。请勿与 url 或 image_base64 同时提交。

url
string

公网可直接访问的图片地址。请勿与 file 或 image_base64 同时提交。

image_base64
string

图片的 Base64 字符串。可以传完整 Data URI,也可以只传纯 Base64 内容。请勿与 file 或 url 同时提交。

image_name
string

自定义图片文件名。传链接或纯 Base64 时建议一起传,便于保留或推断扩展名。

need_location
string

是否返回文字坐标信息。请传 truefalse,不传时默认是 true

return_markdown
string

是否额外返回整理后的 Markdown 文本。请传 truefalse,不传时默认是 false

enable_cls
string

是否开启额外的文字方向校正。请传 truefalse,不传时默认是 false

功能概述

重要

如果您只关心图片上写了什么(例如截图取字或内容安全审核),强烈建议将need_location 设置为 false。这会大幅精简返回的 JSON 数据体积,提升网络传输与系统解析效率。

除了常规的图片转文字,这个接口还针对实际开发场景做了一些实用设计:

  • 前端文字高亮与结构化分析:默认返回每一段文字的矩形坐标和四个顶点坐标。这非常适合使用 Canvas 在原图上画框高亮,或者在后端根据相对位置提取票据中的键值对信息。
  • 复杂拍摄环境下的抗畸变:针对手机拍摄导致的旋转或倾斜,可以开启 enable_cls=true。服务端在识别前会自动进行方向预校正,显著提升识别准确率。
  • 灵活的输入与请求要求:接口支持 fileurlimage_base64 三种方式输入。请确保请求格式为 multipart/form-data,且图片链接在公网可直接访问。

请求体

包含待识别图像及可选配置的表单数据。无论使用哪种输入方式,请求体均需采用 multipart/form-data 格式。请在 fileurlimage_base64 中选择一种作为输入源。

file
file可选

待识别的图片文件。支持 JPG、JPEG、PNG、BMP、GIF、WebP 等常见格式,最大不超过 10MB。请勿与 url 或 image_base64 同时提交。

url
string可选

公网可直接访问的图片地址。请勿与 file 或 image_base64 同时提交。

image_base64
string可选

图片的 Base64 字符串。可以传完整 Data URI,也可以只传纯 Base64 内容。请勿与 file 或 url 同时提交。

image_name
string可选

自定义图片文件名。传链接或纯 Base64 时建议一起传,便于保留或推断扩展名。

need_location
string可选

是否返回文字坐标信息。请传 truefalse,不传时默认是 true

return_markdown
string可选

是否额外返回整理后的 Markdown 文本。请传 truefalse,不传时默认是 false

enable_cls
string可选

是否开启额外的文字方向校正。请传 truefalse,不传时默认是 false

响应

200 / 请求成功

识别成功,返回统一的 OCR 结果对象。默认会带坐标信息;当 need_location=false 时,坐标相关字段会省略。

JSON
{
  // 按阅读顺序拼接后的识别文本。
  "text": "收件人:张三\n联系电话:13800000000",
  // 纯文本结果,适合做搜索、索引或直接展示。
  "plain_text": "收件人:张三\n联系电话:13800000000",
  // 根据图片中的标题、段落和表格整理出的 Markdown 文本。只有在 `return_markdown=true` 时才会返回。
  "markdown": "# 快递面单\n\n收件人:张三\n联系电话:13800000000\n\n| 字段 | 内容 |\n| --- | --- |\n| 地址 | 上海市浦东新区世纪大道 100 号 |",
  // 逐段文字结果。适合做高亮、框选和逐项解析。
  "words_result": [
    {
      // 当前文字片段的识别结果。
      "words": "收件人:张三",
      // 当前文字片段的矩形坐标。只有在 `need_location=true` 时才会返回。
      "location": {
        "left": 56,
        "top": 128,
        "width": 240,
        "height": 32
      },
      // 当前文字片段的顶点坐标列表。只有在 `need_location=true` 时才会返回。
      "vertexes_location": [
        {
          "x": 56,
          "y": 128
        }
      ],
      // 当前文字片段的置信度。部分结果会返回。
      "score": 0.992
    }
  ],
  // 识别出的文字片段数量。
  "words_result_num": 2,
  // 本次响应是否包含坐标信息。
  "need_location": true,
  // 耗时拆分信息,适合做性能统计或排查。
  "timing": {
    "total_ms": 324
  },
  // 识别结果的统计摘要。
  "summary": {
    "line_count": 2,
    "block_count": 1
  },
  // 图片本身的基础信息。
  "image": {
    "width": 1280,
    "height": 720
  },
  // 按行组织的详细识别结果。
  "lines": [
    {}
  ],
  // 按块组织的详细识别结果。
  "blocks": [
    {}
  ],
  // 按页组织的详细识别结果。
  "pages": [
    {}
  ],
  // 补充识别结果对象,适合需要继续解析更多细节字段的场景。
  "raw": {}
}

400 / 错误的请求

请求参数不正确,比如没有传图片来源、提交了多重图片来源,或者布尔参数和 Base64 格式不合法。

格式 1缺少图片来源
JSON
{
  "code": "INVALID_PARAMETER",
  "message": "file、url、image_base64 三个来源里至少要传一个"
}
格式 2输入源冲突
JSON
{
  "code": "INVALID_PARAMETER",
  "message": "file、url、image_base64 请勿同时提交,只能选择一种方式"
}
格式 3Base64 格式错误
JSON
{
  "code": "INVALID_PARAMETER",
  "message": "image_base64 不是有效的图片 Base64 数据"
}

413 / 请求实体太大

图片大小超过当前限制。

JSON
{
  "code": "FILE_TOO_LARGE",
  "message": "图片大小不能超过 10485760 字节"
}

415 /

上传内容不是可识别的常见图片格式。

JSON
{
  "code": "UNSUPPORTED_MEDIA_TYPE",
  "message": "当前只接受常见图片格式"
}

502 / 网关错误

识别处理失败,请稍后重试。

JSON
{
  "code": "REQUEST_FAILED",
  "message": "文字识别失败,请稍后再试"
}

503 / 服务不可用

文字识别服务暂时不可用,请稍后再试。

JSON
{
  "code": "SERVICE_TEMPORARILY_UNAVAILABLE",
  "message": "文字识别服务暂时不可用,请稍后再试"
}