OCR统一识别接口支持识别多种图片类型,包括通用文字、个人卡证、发票等。您只需要通过Type参数指定图片类型,无须更换接口。
接口说明
如何使用本接口
| 步骤 | 概述 | 
|---|---|
| 1 | 开通OCR 统一识别服务。 开通此 API 后会赠送免费额度,可使用免费额度测试。 | 
| 2 | 购买OCR 共享资源包。您也可以不购买资源包,系统会通过“按量付费”方式按实际调用量自动扣款。 | 
| 3 | 可以参照调试页面提供的代码示例完成 API 接入开发。接入完成后,调用 API 获取识别结果。如果使用子账号调用接口,需要阿里云账号(主账号)对 RAM 账号进行授权。创建 RAM 用户的具体操作,请参考:创建 RAM 用户。文字识别服务提供一种系统授权策略,即 AliyunOCRFullAccess。具体授权操作,请参见在用户页面为 RAM 用户授权。 | 
重要提示
| 类型 | 概述 | 
|---|---|
| 图片格式 | 
 | 
| 图片尺寸 | 
 | 
| 图片大小 | 
 | 
| 其他提示 | 
 | 
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:- 对于必选的资源类型,用前面加 * 表示。
- 对于不支持资源级授权的操作,用全部资源表示。
 
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
| 操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 | 
|---|---|---|---|---|
| ocr:RecognizeAllText | none | *全部资源 * | 
 | 无 | 
请求参数
| 名称 | 类型 | 必填 | 描述 | 示例值 | 
|---|---|---|---|---|
| Url | string | 否 | 
 | https://example.png | 
| body | byte | 否 | 
 | 图片二进制文件 | 
| Type | string | 是 | 
 | Advanced | 
| OutputFigure | boolean | 否 | 
 | false | 
| OutputQrcode | boolean | 否 | 
 | false | 
| OutputBarCode | boolean | 否 | 
 | false | 
| OutputStamp | boolean | 否 | 
 | false | 
| OutputCoordinate | string | 否 | 
 | "" | 
| OutputOricoord | boolean | 否 | 
 | false | 
| OutputKVExcel | boolean | 否 | 
 | false | 
| PageNo | integer | 否 | 
 | 1 | 
| AdvancedConfig | object | 否 | 
 | |
| OutputRow | boolean | 否 | 
 | false | 
| OutputParagraph | boolean | 否 | 
 | false | 
| OutputTable | boolean | 否 | 
 | false | 
| OutputCharInfo | boolean | 否 | 
 | false | 
| IsLineLessTable | boolean | 否 | 
 | false | 
| IsHandWritingTable | boolean | 否 | 
 | false | 
| OutputTableExcel | boolean | 否 | 
 | false | 
| OutputTableHtml | boolean | 否 | 
 | false | 
| IdCardConfig | object | 否 | 
 | |
| OutputIdCardQuality | boolean | 否 | 
 | false | 
| InternationalIdCardConfig | object | 否 | 
 | |
| Country | string | 否 | 
 | India | 
| InternationalBusinessLicenseConfig | object | 否 | 
 | |
| Country | string | 否 | 
 | India | 
| MultiLanConfig | object | 否 | 
 | |
| Languages | string | 否 | 
 | eng,chn | 
| TableConfig | object | 否 | 
 | |
| IsHandWritingTable | boolean | 否 | 
 | false | 
| IsLineLessTable | boolean | 否 | 
 | false | 
| OutputTableExcel | boolean | 否 | 
 | false | 
| OutputTableHtml | boolean | 否 | 
 | false | 
- 本接口请求参数可分为三级,一级入参是必传的基础参数,例如图片链接、图片类型。二级参数可以控制识别内容输出,例如是否返回坐标等。 三级参数和特定的图片类型相关,用于控制是否输出特定信息,例如是否输出身份证的质量检测分数。注意,只有 Type 是必传参数,其余参数可以根据需要设置。
图片类型(Type)支持的请求参数补充说明
| Type | 类型描述 | 支持的参数 | 
|---|---|---|
| Advanced | 通用文字识别高精版 | 
 | 
| General | 通用文字识别基础版 | 
 | 
| Commerce | 电商图片文字 | 
 | 
| HandWriting | 手写文字 | 
 | 
| MultiLang | 多语言文字 | 
 | 
| Table | 表格 | 
 | 
| IdCard | 身份证 | 
 | 
| BankCard | 银行卡 | 
 | 
| InternationalPassport | 国际护照 | 
 | 
| ChinesePassport | 中国护照 | 
 | 
| SocialSecurityCard | 社保卡 | 
 | 
| PermitToHK_MO_TW | 往来港澳台通行证 | 
 | 
| PermitToMainland | 来往中国大陆(内地)通行证 | 
 | 
| HouseholdHead | 户口本首页 | 
 | 
| HouseholdResident | 户口本常住人口页 | 
 | 
| EstateCertification | 不动产权证 | 
 | 
| BirthCertification | 出生证明 | 
 | 
| HKIdCard | 中国香港身份证 | 
 | 
| InternationalIdCard | 国际身份证 | 
 | 
| Stamp | 公章 | 
 | 
| MixedInvoice | 混贴票证 | 
 | 
| Invoice | 增值税发票 | 
 | 
| CarInvoice | 机动车销售统一发票 | 
 | 
| QuotaInvoice | 定额发票 | 
 | 
| AirItinerary | 航空行程单 | 
 | 
| TrainTicket | 火车票 | 
 | 
| TollInvoice | 过路过桥费发票 | 
 | 
| RollTicket | 增值税发票卷票 | 
 | 
| BankAcceptance | 银行承兑汇票 | 
 | 
| BusShipTicket | 客运车船票 | 
 | 
| NonTaxInvoice | 非税收入发票 | 
 | 
| CommonPrintedInvoice | 通用机打发票 | 
 | 
| HotelConsume | 酒店流水 | 
 | 
| PaymentRecord | 支付详情页 | 
 | 
| PurchaseRecord | 电商订单页 | 
 | 
| RideHailingItinerary | 网约车行程单 | 
 | 
| ShoppingReceipt | 购物小票 | 
 | 
| TaxClearanceCertificate | 税收完税证明 | 
 | 
| UsedCarInvoice | 二手车销售统一发票 | 
 | 
| VehicleLicense | 行驶证 | 
 | 
| DrivingLicense | 驾驶证 | 
 | 
| VehicleRegistration | 机动车登记证 | 
 | 
| VehicleCertification | 车辆合格证 | 
 | 
| LicensePlateNumber | 车牌 | 
 | 
| CarVinCode | 车辆 vin 码 | 
 | 
| BusinessLicense | 营业执照 | 
 | 
| InternationalBusinessLicense | 国际企业执照 | 
 | 
| MedicalDeviceManageLicense | 医疗器械经营许可证 | 
 | 
| MedicalDeviceProduceLicense | 医疗器械生产许可证 | 
 | 
| CosmeticProduceLicense | 化妆品生产许可证 | 
 | 
| QrCode | 二维码 | |
| BarCode | 条形码 | |
| TaxiInvoice | 出租车发票 | 
 | 
| TrademarkCertificate | 商标注册证 | 
 | 
| FoodProduceLicense | 食品生产许可证 | 
 | 
| FoodManagementLicense | 食品经营许可证 | 
 | 
| ClassIIMedicalDeviceManageLicense | 第二类医疗器械经营备案凭证 | 
 | 
| WayBill | 电子面单 | 
 | 
| BankAccountPermit | 银行开户许可证 | 
 | 
返回参数
图片类型(Type)对应的 KV 信息字段说明。所有 KV 字段都是 String 类型。
| Type | 类型描述 | 返回 KV 信息字段说明 | 
|---|---|---|
| IdCard | 身份证 | 
 | 
| BankCard | 银行卡 | 
 | 
| InternationalPassport | 国际护照 | 
 | 
| ChinesePassport | 中国护照 | 
 | 
| SocialSecurityCard | 社保卡 | 
 | 
| PermitToHK_MO_TW | 往来港澳台通行证 | 
 | 
| PermitToMainland | 来往中国大陆(内地)通行证 | 
 | 
| HouseholdHead | 户口本户首页 | 
 | 
| HouseholdResident | 户口本常住人口页 | 
 | 
| EstateCertification | 不动产权证 | 
 | 
| BirthCertification | 出生证明 | 
 | 
| HKIdCard | 中国香港身份证 | 
 | 
| InternationalIdCard | 国际身份证 | 
 | 
| Stamp | 公章 | 
 | 
| Invoice | 增值税发票 | 
 | 
| CarInvoice | 机动车销售统一发票 | 
 | 
| QuotaInvoice | 定额发票 | 
 | 
| AirItinerary | 航空行程单 | 
 | 
| TrainTicket | 火车票 | 
 | 
| TollInvoice | 过路过桥费发票 | 
 | 
| RollTicket | 增值税发票卷票 | 
 | 
| BankAcceptance | 银行承兑汇票 | 
 | 
| BusShipTicket | 客运车船票 | 
 | 
| NonTaxInvoice | 非税收入发票 | 
 | 
| CommonPrintedInvoice | 通用机打发票 | 
 | 
| HotelConsume | 酒店流水 | 
 | 
| PaymentRecord | 支付详情页 | 
 | 
| PurchaseRecord | 电商订单页 | 
 | 
| RideHailingItinerary | 网约车行程单 | 
 | 
| ShoppingReceipt | 购物小票 | 
 | 
| TaxClearanceCertificate | 税收完税证明 | 
 | 
| UsedCarInvoice | 二手车销售统一发票 | 
 | 
| VehicleLicense | 行驶证 | 
 | 
| DrivingLicense | 驾驶证 | 
 | 
| VehicleRegistration | 机动车登记证 | 
 | 
| VehicleCertification | 车辆合格证 | 
 | 
| LicensePlateNumber | 车牌 | 
 | 
| CarVinCode | 车辆 vin 码 | 
 | 
| BusinessLicense | 营业执照 | 
 | 
| BusinessLicense | 国际企业执照 | 
 | 
| MedicalDeviceManageLicense | 医疗器械经营许可证 | 
 | 
| MedicalDeviceProduceLicense | 医疗器械生产许可证 | 
 | 
| CosmeticProduceLicense | 化妆品生产许可证 | 
 | 
| TaxiInvoice | 出租车发票 | 
 | 
| TrademarkCertificate | 商标注册证 | 
 | 
| FoodProduceLicense | 食品生产许可证 | 
 | 
| FoodManagementLicense | 食品经营许可证 | 
 | 
| ClassIIMedicalDeviceManageLicense | 第二类医疗器械经营备案凭证 | 
 | 
| WayBill | 电子面单 | 
 | 
| BankAccountPermit | 银行开户许可证 | 
 | 
示例
正常返回示例
JSON格式
{
  "RequestId": "E2A98925-DC2C-18FB-995F-BAF507XXXXXX",
  "Data": {
    "Height": 2000,
    "Width": 1000,
    "Content": "合同编号...",
    "SubImageCount": 2,
    "SubImages": [
      {
        "SubImageId": 0,
        "Type": "身份证正面",
        "Angle": 0,
        "SubImagePoints": [
          {
            "X": 100,
            "Y": 200
          }
        ],
        "SubImageRect": {
          "CenterX": 100,
          "CenterY": 200,
          "Width": 1000,
          "Height": 2000
        },
        "KvInfo": {
          "KvCount": 6,
          "Data": {
            "address": "XX省XX市XX街道XX号",
            "ethnicity": "汉",
            "sex": "男",
            "name": "王XX",
            "idNumber": "XXX",
            "birthDate": "2000年1月1日"
          },
          "KvDetails": {
            "key": {
              "KeyName": "address",
              "KeyConfidence": 100,
              "Value": "XX省XX市XX街道",
              "ValueConfidence": 98,
              "ValuePoints": [
                {
                  "X": 100,
                  "Y": 200
                }
              ],
              "ValueRect": {
                "CenterX": 100,
                "CenterY": 200,
                "Width": 50,
                "Height": 50
              },
              "ValueAngle": 0
            }
          }
        },
        "BlockInfo": {
          "BlockCount": 12,
          "BlockDetails": [
            {
              "BlockId": 0,
              "BlockAngle": 0,
              "BlockContent": "“合同编号...”",
              "BlockConfidence": 98,
              "BlockPoints": [
                {
                  "X": 100,
                  "Y": 200
                }
              ],
              "BlockRect": {
                "CenterX": 100,
                "CenterY": 200,
                "Width": 50,
                "Height": 10
              },
              "CharInfos": [
                {
                  "CharId": 0,
                  "CharContent": "“合”",
                  "CharConfidence": 95,
                  "CharPoints": [
                    {
                      "X": 100,
                      "Y": 200
                    }
                  ],
                  "CharRect": {
                    "CenterX": 100,
                    "CenterY": 200,
                    "Width": 10,
                    "Height": 10
                  }
                }
              ]
            }
          ]
        },
        "TableInfo": {
          "TableCount": 2,
          "TableDetails": [
            {
              "TableId": 0,
              "RowCount": 10,
              "ColumnCount": 3,
              "CellCount": 29,
              "Header": {
                "Contents": [
                  "12.1本合同当事人"
                ],
                "BlockId": 0
              },
              "Footer": {
                "Contents": [
                  "贷款人/抵押权人(盖章/电子签章):"
                ],
                "BlockId": 0
              },
              "CellDetails": [
                {
                  "CellId": 0,
                  "CellContent": "借款人/抵押人:",
                  "RowStart": 0,
                  "RowEnd": 0,
                  "ColumnStart": 2,
                  "ColumnEnd": 5,
                  "BlockList": [
                    0
                  ],
                  "CellPoints": [
                    {
                      "X": 100,
                      "Y": 200
                    }
                  ],
                  "CellRect": {
                    "CenterX": 100,
                    "CenterY": 200,
                    "Width": 20,
                    "Height": 20
                  },
                  "CellAngle": 0
                }
              ],
              "TablePoints": [
                {
                  "X": 100,
                  "Y": 200
                }
              ],
              "TableRect": {
                "CenterX": 100,
                "CenterY": 200,
                "Width": 100,
                "Height": 100
              }
            }
          ],
          "TableExcel": "https://example.xlsx",
          "TableHtml": "https://example.html"
        },
        "RowInfo": {
          "RowCount": 9,
          "RowDetails": [
            {
              "RowId": 0,
              "RowContent": "“合同编号...\"",
              "BlockList": [
                0
              ]
            }
          ]
        },
        "ParagraphInfo": {
          "ParagraphCount": 11,
          "ParagraphDetails": [
            {
              "ParagraphId": 0,
              "ParagraphContent": "“合同编号...”",
              "BlockList": [
                0
              ]
            }
          ]
        },
        "QrCodeInfo": {
          "QrCodeCount": 1,
          "QrCodeDetails": [
            {
              "Data": "“http://www.gsxt.gov.cn/indeXXX”",
              "QrCodePoints": [
                {
                  "X": 100,
                  "Y": 200
                }
              ],
              "QrCodeRect": {
                "CenterX": 100,
                "CenterY": 200,
                "Width": 100,
                "Height": 100
              },
              "QrCodeAngle": 0
            }
          ]
        },
        "BarCodeInfo": {
          "BarCodeCount": 2,
          "BarCodeDetails": [
            {
              "Type": "Code128",
              "Data": "1100011XXXXXX",
              "BarCodePoints": [
                {
                  "X": 100,
                  "Y": 200
                }
              ],
              "BarCodeRect": {
                "CenterX": 100,
                "CenterY": 200,
                "Width": 100,
                "Height": 10
              },
              "BarCodeAngle": 0
            }
          ]
        },
        "FigureInfo": {
          "key": {
            "FigureCount": 3,
            "FigureDetails": [
              {
                "Type": "face",
                "Data": "“”",
                "FigurePoints": [
                  {
                    "X": 100,
                    "Y": 200
                  }
                ],
                "FigureRect": {
                  "CenterX": 100,
                  "CenterY": 200,
                  "Width": 50,
                  "Height": 50
                },
                "FigureAngle": 0
              }
            ]
          }
        },
        "StampInfo": {
          "StampCount": 2,
          "StampDetails": [
            {
              "Data": {
                "CompanyId": "XXX",
                "OrganizationName": "XXX贸易有限公司",
                "AntiFakeCode": "3205823XXXXXX",
                "OtherText": "3205823XXXXXX",
                "TopText": "XXX贸易有限公司",
                "OrganizationNameEng": "",
                "TaxpayerId": ""
              },
              "StampPoints": [
                {
                  "X": 100,
                  "Y": 200
                }
              ],
              "StampRect": {
                "CenterX": 100,
                "CenterY": 200,
                "Width": 50,
                "Height": 50
              },
              "StampAngle": 0
            }
          ]
        },
        "QualityInfo": {
          "IsCopy": false,
          "IsReshoot": false,
          "CompletenessScore": 90.5,
          "QualityScore": 80.5,
          "TamperScore": 10.5
        }
      }
    ],
    "XmlResult": "",
    "AlgoVersion": "",
    "DebugInfo": "",
    "AlgoServer": [
      ""
    ],
    "IsMixedMode": false,
    "PageNo": 1,
    "KvExcelUrl": "https://example.xlsx"
  },
  "Code": 400,
  "Message": "illegalImageUrl"
}错误码
| HTTP status code | 错误码 | 错误信息 | 描述 | 
|---|---|---|---|
| 400 | invalidInputParameter | %s | - | 
| 400 | InvalidCountry | Specified parameter Country is not valid. | 不支持的国家。 | 
访问错误中心查看更多错误码。
变更历史
| 变更时间 | 变更内容概要 | 操作 | 
|---|---|---|
| 2024-06-04 | OpenAPI 错误码发生变更 | 查看变更详情 | 
| 2024-01-08 | OpenAPI 错误码发生变更、OpenAPI 入参发生变更 | 查看变更详情 | 
您可以参考下面的示例调用统一 API 接口
- 通过图片 URL 请求接口 Java 示例
package demo;
import com.aliyun.ocr_api20210707.Client;
import com.aliyun.ocr_api20210707.models.*;
import com.aliyun.tea.TeaException;
import com.aliyun.teaopenapi.models.Config;
import com.google.gson.Gson;
public class Demo {
    public static void main(String[] args) throws Exception {
        final String endpoint = "ocr-api.cn-hangzhou.aliyuncs.com";
        final String accessKeyID = "您的 AccessKeyID";
        final String accessKeySecret = "您的 AccessKeySecret";
        final String imageUrl = "https://example.png";
        final Config config = new Config().setEndpoint(endpoint).setAccessKeyId(accessKeyID).setAccessKeySecret(accessKeySecret);
        Client client = new Client(config);
        RecognizeAllTextRequest request = new RecognizeAllTextRequest()
                .setType("Advanced")        // 指定 Type(此参数为必填参数)
                .setUrl(imageUrl)           // 图片 url
                .setOutputOricoord(true);   // 设置返回原图坐标。您可以设置更多二级参数。
        // 您也可以在 request 中指定更多三级参数。例如对于 Type=Advanced,可以指定 OutputCharInfo=true(输出单字信息)
        RecognizeAllTextRequest.RecognizeAllTextRequestAdvancedConfig advancedConfig = new RecognizeAllTextRequest.RecognizeAllTextRequestAdvancedConfig()
            .setOutputCharInfo(true);
        request.setAdvancedConfig(advancedConfig);
        try {
            RecognizeAllTextResponse response = client.recognizeAllText(request);
            System.out.println(new Gson().toJson(response.getBody().getData().toMap()));
        } catch (TeaException e) {
            System.out.println(e.getStatusCode());
        }
    }
}
- 通过上传本地图片请求接口 Java 示例
package demo;
import com.aliyun.ocr_api20210707.Client;
import com.aliyun.ocr_api20210707.models.*;
import com.aliyun.tea.TeaException;
import com.aliyun.teaopenapi.models.Config;
import com.google.gson.Gson;
public class Demo {
    public static void main(String[] args) throws Exception {
        final String endpoint = "ocr-api.cn-hangzhou.aliyuncs.com";
        final String accessKeyID = "您的 AccessKeyID";
        final String accessKeySecret = "您的 AccessKeySecret";
        final Config config = new Config().setEndpoint(endpoint).setAccessKeyId(accessKeyID).setAccessKeySecret(accessKeySecret);
        final String localImageFileName = "~/example.png"; // 本地图片路径
        Client client = new Client(config);
        try (InputStream imageStream = new FileInputStream(localImageFileName)) {
            RecognizeAllTextRequest request = new RecognizeAllTextRequest()
                    .setType("Advanced")        // 指定 Type(此参数为必填参数)
                    .setBody(imageStream)       // 指定本地图片路径
                    .setOutputOricoord(true);   // 设置返回原图坐标。您可以设置更多二级参数。
            // 您也可以在 request 中指定更多参数。例如对于 Type=Advanced,可以指定 OutputCharInfo=true(输出单字信息)
            RecognizeAllTextRequest.RecognizeAllTextRequestAdvancedConfig advancedConfig = new RecognizeAllTextRequest.RecognizeAllTextRequestAdvancedConfig()
                    .setOutputCharInfo(true);
            request.setAdvancedConfig(advancedConfig);
            RecognizeAllTextResponse response = client.recognizeAllText(request);
            System.out.println(new Gson().toJson(response.getBody().getData().toMap()));
        } catch (TeaException e) {
            System.out.println(e.getStatusCode());
        }
    }
}
