支持多学科教辅试卷的结构化识别,将整页练习册、试卷或教辅中的题目进行自动切题,并识别出其中的文字内容和坐标位置。
接口说明
本接口适用场景
- 阿里云精细版结构化切题,是阿里云官方自研 OCR 文字识别产品,适用于整页练习册、试卷或教辅种的题目场景。
- 阿里云 OCR 产品基于阿里巴巴达摩院强大的 AI 技术及海量数据,历经多年沉淀打磨,具有服务稳定、操作简易、实时性高、能力全面等几大优势。
- 本接口图片示例
本接口核心能力
分类 | 概述 |
---|---|
智能识别 | 自动切题,并识别其中的全部字段和坐标位置。 |
图像增强 | 默认支持图像增强,包括图像自动旋转、畸变自动矫正、模糊图片自动增强等能力。 |
多类型覆盖 | 支持模糊、光照不均、透视畸变、任意背景等低质量图像识别。 |
高精度识别 | 总体识别准确率可达 98%。 |
如何使用本接口
步骤 | 概述 |
---|---|
1 | 开通 教育场景识别 服务。开通服务前后,您可以通过体验馆免费体验本功能识别效果。 |
2 | 购买精细版结构化切题资源包。本 API 会赠送免费额度,可使用免费额度测试。 |
3 | 可以参照调试页面提供的代码示例完成 API 接入开发。接入完成后,调用 API 获取识别结果。如果使用子账号调用接口,需要阿里云账号(主账号)对 RAM 账号进行授权。创建 RAM 用户的具体操作,请参考:创建 RAM 用户。文字识别服务提供一种系统授权策略,即 AliyunOCRFullAccess。具体授权操作,请参见在用户页面为 RAM 用户授权。 |
重要提示
类型 | 概述 |
---|---|
图片格式 |
|
图片尺寸 |
|
图片大小 |
|
其他提示 |
|
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
ocr:RecognizeEduPaperStructed | none | *全部资源 * |
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
Url | string | 否 |
| https://example.png |
body | byte | 否 |
| 图片二进制文件 |
Subject | string | 否 |
| default:默认, Math:数学, PrimarySchool_Math:小学数学, JHighSchool_Math: 初中数学, Chinese:语文, PrimarySchool_Chinese:小学语文, JHighSchool_Chinese:初中语文, English:英语, PrimarySchool_English:小学英语, JHighSchool_English:初中英语, Physics:物理, JHighSchool_Physics:初中物理, Chemistry: 化学, JHighSchool_Chemistry:初中化学, Biology:生物, JHighSchool_Biology:初中生物, History:历史, JHighSchool_History:初中历史, Geography:地理, JHighSchool_Geography:初中地理, Politics:政治, JHighSchool_Politics:初中政治 |
NeedRotate | boolean | 否 |
| false |
OutputOricoord | boolean | 否 |
| false |
返回参数
返回参数说明
字段 | 类型 | 说明 |
---|---|---|
doc_layout | list | 版面信息。 |
doc_sptext | list | 特殊文字信息。 |
figure | list | 图案信息。 |
page_id | int | 页码。 |
page_title | string | 页标题。 |
part_info | list | 题型大类信息。 |
height | int | 算法矫正图片后的高度。 |
width | int | 算法矫正图片后的宽度。 |
orgHeight | int | 原图的高度。 |
orgWidth | int | 原图的宽度。 |
题目列表信息(doc_layout 字段)
字段 | 类型 | 说明 |
---|---|---|
layout_type | string | 文字类型(text:普通文字,special_text:特殊文字,table:表格,head:页眉,foot:页脚,side_column:侧栏)。 |
pos | list | 外矩形四个点的坐标按顺时针排列(左上、右上、右下、左下)。 |
特殊文字信息(doc_sptext 字段)
字段 | 类型 | 说明 |
---|---|---|
layout_type | string | 文字类型(bold:黑体,complex:特殊体)。 |
pos | list | 外矩形四个点的坐标按顺时针排列(左上、右上、右下、左下)。 |
图案信息(figure 字段)
字段 | 类型 | 说明 |
---|---|---|
type | string | 配图类型(subject_sline:分栏线,竖线;subject_bline:空格线/下划线,竖线;subject_bracket:括号;subject_quad:田字格和四线三格;subject_table:表格;subject_pattern:图案;subject_big_bracket:大括号;subject_match_question:连线题;subject_question:非材料题;subject_material:材料题)。 |
x | int | 图案左上角横坐标。 |
y | int | 图案左上角纵坐标。 |
w | int | 图案宽度。 |
h | int | 图案高度。 |
box | object | 图案坐标信息:中心横纵坐标,长宽,顺时针旋转角度。定义同 OpenCV 中 RotatedRect,请参见 OpenCV 文档。 |
points | list | 图案四个点坐标(左上、右上、右下、左下)。 |
题型大类信息(part_info 字段)
字段 | 类型 | 说明 |
---|---|---|
part_title | string | 题型标题(例如选择题,填空题,解答题)。 |
pos_list | list | 对应所有题型的外层大矩形的四个点的坐标数组。 |
subject_list | list | 题目列表。 |
题目列表信息(subject_list 字段)
字段 | 类型 | 说明 |
---|---|---|
index | int | 在 part_info 中的序号。 |
type | int | 题目类型(0:选择题;1:填空题;2:阅读理解(阅读+问答选择);3:完型填空(阅读+选择);4:阅读填空(阅读+填空);5:问答题;6:选择题,多选多;7:填空、选择题混合;8:应用题;9:判断题;10:作图题;11:材料题;12:计算题;13:连线题;14:作文题;15:解答题;16:其他;17:图;18:表格)。 |
text | string | 整题文本信息,可能包含 latex 公式,需要自行解析还原。 |
prob | int | 置信度。 |
post_list | list | 整题外矩形四个点的坐标按顺时针排列(左上、右上、右下、左下)。 |
element_list | list | 题目元素。 |
题目元素信息(element_list 字段)
字段 | 类型 | 说明 |
---|---|---|
type | int | 题目元素类型(0:题干;1:选项;2:解析;3:答案)。 |
text | string | 整题文本信息,可能包含 latex 公式,需要自行解析还原。 |
post_list | list | 外层大矩形的四个点的坐标数组。 |
content_list | list | 内容数组。 |
内容数组信息(content_list 字段)
字段 | 类型 | 说明 |
---|---|---|
type | int | 内容类型(0:图片;1:文本;2:公式)。 |
string | string | 整题文本信息,可能包含 latex 公式,需要自行解析还原。 |
pos | list | 外层大矩形的四个点的坐标数组。 |
示例
正常返回示例
JSON
格式
{
"RequestId": "43A29C77-405E-4CC0-BC55-EE694AD00655",
"Data": "{\"figure\":[{\"type\":\"subject_bracket\",\"x\":1039,\"y\":2625,\"w\":124,\"h\":42,\"box\":{\"x\":0,\"y\":0,\"w\":0,\"h\":0,\"angle\":0},\"points\":[{\"x\":1039,\"y\":2625},{\"x\":1163,\"y\":2625},{\"x\":1163,\"y\":2667},{\"x\":1039,\"y\":2667}]}],\"height\":3442,\"orgHeight\":3442,\"orgWidth\":2377,\"page_id\":7,\"page_title\":\"\",\"part_info\":[{\"part_title\":\"选择题\",\"pos_list\":[[{\"x\":245,\"y\":3260},{\"x\":2235,\"y\":3265},{\"x\":2235,\"y\":3353},{\"x\":245,\"y\":3352}]],\"subject_list\":[{\"index\":0,\"type\":0,\"prob\":0,\"text\":\"1.(疑难,★★☆)下列各组数据中,表示同一 时刻的是 ( ) A.前2s末、第2s末、第3s初 B.第1s末、第2s末、第3s末 C.前2s末、第2s末、前3s初 D.前2s初、第2s末、第3s初\",\"pos_list\":[[{\"x\":170,\"y\":417},{\"x\":1162,\"y\":416},{\"x\":1161,\"y\":757},{\"x\":170,\"y\":757}]],\"element_list\":[{\"type\":0,\"text\":\"1.(疑难,★★☆)下列各组数据中,表示同一 时刻的是 ( )\",\"pos_list\":[[{\"x\":170,\"y\":417},{\"x\":1162,\"y\":416},{\"x\":1161,\"y\":520},{\"x\":170,\"y\":518}]],\"content_list\":[{\"type\":1,\"prob\":0,\"string\":\"1.(疑难,★★☆)下列各组数据中,表示同一 时刻的是\",\"option\":\"\",\"pos\":[{\"x\":170,\"y\":417},{\"x\":1131,\"y\":416},{\"x\":1131,\"y\":453},{\"x\":170,\"y\":454}]},{\"type\":1,\"prob\":0,\"string\":\"( )\",\"option\":\"\",\"pos\":[{\"x\":1033,\"y\":481},{\"x\":1162,\"y\":483},{\"x\":1161,\"y\":520},{\"x\":1033,\"y\":518}]}]},{\"type\":1,\"text\":\"A.前2s末、第2s末、第3s初\",\"pos_list\":[[{\"x\":204,\"y\":541},{\"x\":746,\"y\":536},{\"x\":746,\"y\":572},{\"x\":204,\"y\":577}]],\"content_list\":[{\"type\":1,\"prob\":0,\"string\":\"A.前2s末、第2s末、第3s初\",\"option\":\"\",\"pos\":[{\"x\":204,\"y\":541},{\"x\":746,\"y\":536},{\"x\":746,\"y\":572},{\"x\":204,\"y\":577}]}]},{\"type\":1,\"text\":\"B.第1s末、第2s末、第3s末\",\"pos_list\":[[{\"x\":205,\"y\":601},{\"x\":742,\"y\":596},{\"x\":743,\"y\":632},{\"x\":205,\"y\":637}]],\"content_list\":[{\"type\":1,\"prob\":0,\"string\":\"B.第1s末、第2s末、第3s末\",\"option\":\"\",\"pos\":[{\"x\":205,\"y\":601},{\"x\":742,\"y\":596},{\"x\":743,\"y\":632},{\"x\":205,\"y\":637}]}]},{\"type\":1,\"text\":\"C.前2s末、第2s末、前3s初\",\"pos_list\":[[{\"x\":205,\"y\":660},{\"x\":743,\"y\":660},{\"x\":743,\"y\":696},{\"x\":205,\"y\":696}]],\"content_list\":[{\"type\":1,\"prob\":0,\"string\":\"C.前2s末、第2s末、前3s初\",\"option\":\"\",\"pos\":[{\"x\":205,\"y\":660},{\"x\":743,\"y\":660},{\"x\":743,\"y\":696},{\"x\":205,\"y\":696}]}]},{\"type\":1,\"text\":\"D.前2s初、第2s末、第3s初\",\"pos_list\":[[{\"x\":205,\"y\":721},{\"x\":746,\"y\":721},{\"x\":746,\"y\":757},{\"x\":205,\"y\":757}]],\"content_list\":[{\"type\":1,\"prob\":0,\"string\":\"D.前2s初、第2s末、第3s初\",\"option\":\"\",\"pos\":[{\"x\":205,\"y\":721},{\"x\":746,\"y\":721},{\"x\":746,\"y\":757},{\"x\":205,\"y\":757}]}]}]}]}],\"prism_version\":\"1.0.9\",\"prism_wnum\":0,\"prism_wordsInfo\":[],\"width\":2377}",
"Code": "200",
"Message": "message"
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2021-08-17 | OpenAPI 入参发生变更 | 查看变更详情 |